Second last breath of the almost RIP extenal USB drive

Its tombstone is halfway carved already.

Last night, or I should say few hours ago, I did a very bad thing to that very dying drive — stabbing it in the back when it’s already bleeding, which was thought almost died just about three month ago. This time, no matter what I did, it just hung there after a few noises from read access attempts, and fsck hung on with this message always:

/backup: recovering journal

I unplugged the USB cord while it was busy reading and writing data. It was late and I would just let it do its thing, was going to bed. As usual, I unplug USB mouse, but this time, I pulled the wrong cable. They were stacking together, disk drive on the top port and mouse on the bottom, and you know what happened next.

I frakkingly pulled the wrong one, as soon as the plug out of socket, without even checking the screen, I cried out ‘oh shit, oopsie’ inside. I knew what I just did.

Attempted remounting, re-powering, fscking, nothing could get the drive mount. It just hung there and no physical read access as I could see. I turned off computer and went to bed, mentally prepared myself for the round two after.

After a few hours of sleep, it didn’t go as I hoped. Retried everything I had learned, nothing worked. I was almost giving up, since there actually was nothing important on the disk, but I tried another with Backup superblock:

# dumpe2fs /dev/sdb1 | grep superblock
dumpe2fs 1.42.10 (18-May-2014)
  Primary superblock at 0, Group descriptors at 1-5
  Backup superblock at 32768, Group descriptors at 32769-32773
  Backup superblock at 98304, Group descriptors at 98305-98309
  Backup superblock at 163840, Group descriptors at 163841-163845
[snip]

# fsck -b 32768 /dev/sdb1
fsck from util-linux 2.24.1
e2fsck 1.42.10 (18-May-2014)
Superblock needs_recovery flag is clear, but journal has data.
Recovery flag not set in backup superblock, so running journal anyway.
/backup: recovering journal
[*** Still hangs, so I unplugged like the millionth time ***]
Error reading block 30878 (Attempt to read block from filesystem resulted in short read).  Ignore error<y>?

During the course of cursing myself for being an utter idiot, I noticed that block number and all those in dmesg started with exact same starting numbers over and over. However, I honestly didn’t know what to do.

I tried to see if I could somehow disable journal as the last attempt, but didn’t get the useful information at first until I found this post about unreadable journal, I think that’s exactly the same problem I was having.

It did work, I could mount it now:

# debugfs -w -R "feature ^needs_recovery" /dev/sdb1
debugfs 1.42.10 (18-May-2014)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super large_file

# tune2fs -f -O '^has_journal' /dev/sdb1
tune2fs 1.42.10 (18-May-2014)

# mount -t ext2 -o ro /dev/sdb1 /mnt/usb
# [Hooray, it mounted and read normally, or it seemed]

I was not entirely sure, but I though the partition has been converted (back) to ext2, which was fine with me. I didn’t care about the recovery capability as long as the entire drive can still be accessible, losing data because of failures was fine with me.

But not like this hanging issue causing me almost re-formating the drive, while the data was still all there. I could lost everything for nothing even the everything was basically meaning nothing much to me and still is.

Nonetheless, it’s not all good, I noticed this message while trying operate on a file:

[Aug27 10:29] EXT2-fs (sdb1): error: ext2_lookup: deleted inode referenced: 5472723

Apparently, a good fsck was needed:

# fsck -pf /dev/sdb1
fsck from util-linux 2.24.1
/backup: Inode 5472718, i_blocks is 36104, should be 45208.  FIXED.
/backup: Inode 5472686 has illegal block(s).

/backup: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
        (i.e., without -a or -p options)

# fsck -f /dev/sdb1
fsck from util-linux 2.24.1
e2fsck 1.42.10 (18-May-2014)
Pass 1: Checking inodes, blocks, and sizes
Inode 5472686 has illegal block(s).  Clear<y>? yes
Illegal block #12 (3134239992) in inode 5472686.  CLEARED.
Illegal block #13 (3223730326) in inode 5472686.  CLEARED.
[snip]
Too many illegal blocks in inode 5472686.
[snip for more fixes, a lot more]

/backup: ***** FILE SYSTEM WAS MODIFIED *****
/backup: 1473/10059776 files (81.3% non-contiguous), 5744993/20103331 blocks

After fixing these while realizing how frakked the drive was just by accidental unplug, I decided to convert it back to ext3 by re-enabling the journal:

$ grep sdb /etc/mtab
/dev/sdb1 /mnt/usb ext2 rw 0 0

# tune2fs -j /dev/sdb1
tune2fs 1.42.10 (18-May-2014)
Creating journal inode: done
This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

$ mount /mnt/usb
$ [mounted without any errors]

$ grep sdb /etc/mtab
/dev/sdb1 /mnt/usb ext3 rw,noatime,noexec,nosuid,nodev,user=livibetter 0 0

Back in the business before its last breath.

Choice: Vegan or B12?

1   Disclaimer

This blog post is:

  • not to be, by any means, as medical or health suggestions or recommendations,
  • not promoting vegetarianism or veganism, and
  • not banishing omnivore.

2   What is this about?

The choices of life, the decisions, and the consequences.

My path and reasons of choosing to be vegetarian, then vegan, and going back to be a vegetarian. It doesn’t mean to be anything for others, but for myself as a reminder or so, why and how I’ve become.

And how evolution goes, how us, human and animal, really are. Things I had never really put my thoughts in; and conjectured terribly wrong about Vitamin B12. How we human still physically need to have ingested B12 just to be alive.

Moreover, how I still being ignorant to the fact of need of B12, how I thought about food and whatever in ingredients.

3   History of being vegetarian and vegan

June 4, 2010, after watching an episode about tuna farming, I realized the scale of farming animals, even they were seafood. I converted to lacto vegetarianism.

Just one year later, little after first anniversary of being a vegetarian, on June, 25, 2011, I became vegan after watching a Flickr video about cow milk.

August 25, 2014, after being vegan for 3 years and 62 days, I’ve converted back to be an lacto vegetarian plus ovo vegetarian, that’s ovo-lacto vegetarian.

I become vegetarian was not because of health issue, religious reason, or ethical thought as others. At least, not exactly the same. I have my own reasons, but I can’t put them into words clearly.

If you are still wondering the reasons, you need to ask how do cow produce milk? What’s on the checklist? First and foremost, pregnancy. How do a cow get pregnant? Think about those thoroughly, before the pregnancy and after the pregnancy in detail step-by-step, you would understand. If you don’t, go search if you do care.

If that’s not enough, read about lobster and think about why I also don’t consume honey. Even I am back to be vegetarian, I will not consume honey, because it’s not essential to my health.

Health is never the reason. Eating healthy and counting whatever you eat without medical reason in my view is really sad and overly obsessive, and possibly baseless, especially if one doesn’t confirm with tests to see if things do make them healthier.

I have seen many people have incredible amount of bottles labeling as healthy food and/or using a lot of “anti-” words, I just couldn’t wonder if they truly do understand those, or just read from some blogs.

4   Realization of the importance of Vitamin B12 to animal

Few days ago, August 22, after watching probably the most important television show episode in my life, a decision had to be made.

Horizon: Should I Eat Meat? - The Big Health Dilemma on BBC Two, the first half of two-part mini-series, the presenter, Michael Mosley, explored the processed meat and red meat mostly, beef, steaks, as you would think of. It’s educational even for a vegan. For example, the fat part in the red meat might not as bad as we would think, conversely, the lean meat might not, L-carnitine in it is linked to heart disease.

When I was watching that part, about the statistics showed no improvements after doctors suggested the patients on low-fat diet, in fact, the numbers got worse. I know it’s not fair to say, but just couldn’t help to wonder if the doctors were sending patients to deaths over the decades.

In the ending, as a conclusion, he suggested whoever wants to give up red meat — whether entirely or partially, or already vegetarians or vegans, need to seek means to supplement Zinc, Iron, and Vitamin B12. The good stuff in red meat was mentioned in his article:

There are lots of good things in red meat. Beef, whole or minced, is a great source of protein and essential nutrients, like iron and vitamin B12, which are vital for health.

[…]

The researchers concluded that “a low - but not a zero - consumption of meat might be beneficial for health. This is understandable as meat is an important source of nutrients, such as protein, iron, zinc, several B-vitamins as well as vitamin A and essential fatty acids.”

I must admit that I didn’t 100% concentrate on watching this episode, but I somehow caught “Zinc, Iron, and B12.” Needless to say, I am really glad I caught that part. It was hours, even a day later, when finally did a search on Internet. The first two did not worry me, because even vegan wouldn’t have problem with them, you just need to eat the right sources and good amount for them.

However, Vitamin B12 is an entire differently story, and solely the focal point of this blog post. From Wikipedia and all sources I have read:

Neither fungi, plants, nor animals are capable of producing vitamin B12. Only bacteria and archaea have the enzymes required for its synthesis, although many foods are a natural source of B12 because of bacterial symbiosis.

It’s clearly to me, as a vegan, I only have a few options, from NHS of the United Kingdom:

  • yeast extract, such as Marmite
  • breakfast cereals fortified with vitamin B12
  • soya products fortified with vitamin B12

Or B12 supplements like tablets, patch, spray, etc. Basically, two categories:

  • specially made supplements
  • fortified food products or ingredients

Frankly, I don’t like either of them, not a little bit and that’s why I’ve not only been back to be lacto vegetarian but also ovo-lacto.

5   Why go back to be vegetarian?

After the realization, I asked myself:

Ingesting B12 to still be a vegan or change my diet?

Don’t get me wrong, taking a pill would not change the fact of still being a vegan. However, when I started being a vegetarian, I made a deal with myself. When I go out, if I have to skip more than one meal just to keep my vegetarianism diet, then I would not hesitate to order a meal with animal products.

I am fully aware that how human progress to these days, other animal play a big part in it, there is no denial about the fact. Yes, I can make the choice of not eating animal products anymore. But I’d not insist on that to harm myself by not eating animal products when the situation ain’t permitting.

Of course, I would do everything to prevent myself to be under that situation. Nonetheless, if unfortunately, it occurs, I eat what I need to eat.

Based on that, I’d not take a pill just to be a vegan. This might not be for other vegans, but to me, taking a pill is a medical condition. I’m not ill, so I’d rather going back to vegetarian than taking the pill.

Yes, there seems to be natural food sources, but from everything I read, only a couple and they don’t seem to be very promising, say the algae. So, in order to be a vegan, supplement is only the reliable and safe source in my opinion.

6   Why add eggs?

I first was a lacto vegetarian, why I not only back to it but also add eggs to my diet?

A while after I became vegetarian, I was kind of regretting of choosing dairy over eggs, and since I need B12 and I like the diversity, therefore eggs are on the list.

Speaking of egg, it seems B12 is only contained in egg yolk. For a large egg (17g), it contains 5% of Daily Value, while egg while has 0%, according to USDA via Google Search.

7   End of line of my life

I think I am lucky, because I hadn’t experienced any signs, at least, I didn’t believe, if any, they were be caused by Vitamin B12 deficiency.

Three years and sixty-two days, I could be just at the end of line:

The total amount of vitamin B12 stored in the body is between two and five milligrams in adults. Approximately 50% is stored in the liver, […]. While bile is the main vehicle for B12 excretion, most of the B12 secreted in bile is recycled via enterohepatic circulation. Due to the extreme efficiency of this mechanism, the liver can store three to five years worth of vitamin B12 under normal conditions and functioning.[9] However, the rate at which B12 levels may change when dietary intake is low depends on the balance between several variables.

Although I didn’t test my B12 status, but I had not consumed any animal products nearly strictly, except a few times of accidental consumptions. It’s reasonably to presume that the B12 in my body was running low.

8   The meals

When I made my decision, I knew I would have to take it easy and very seriously, because it’s not a celebration, but rather a sad come-back if you will. Some might see adding dairy and egg back to diet is an addition, but to me, it’s a subtraction. I have to get B12 somewhere, and if I am not willing to take pills, then the only reliable food sources are animal ingredients.

I was forced to add dairy and egg to my diet, the choice of choosing not to consume any animal product was no longer there. I have to eat those.

So, as a reminder, I ate the first meals with those ingredients with a special mindset, after three years, because I now need to eat those.

Breakfast, lunch, and afternoon snacks.

https://farm4.staticflickr.com/3874/14844724107_59eeab6c59_z.jpg
https://farm6.staticflickr.com/5595/14844601470_c8864297cd_z.jpg
https://farm6.staticflickr.com/5563/14844528339_49dded90e8_z.jpg

One thing to note, there were two slices of processed cheese in scrambled eggs and the pasta sauce. The best before date was 2013-03-28. If this blog have not had any more blog posts, need not to worry, I would probably be sent to ER and die of food poison or some sort. They had been sitting in the fridge the whole time, other just didn’t eat them, no idea why they bought in the first place. Every time, when I opened fridge door, I saw them and thought of ‘what a waste.’ Now, I felt obliged to use them, hopefully, I’d not regret.

Those slices ain’t the only ones. There were two coffee creamers, one was past for nearly two months, another would be a year this September.

I really don’t like factory made prepared food, that mushroom creamy soup was too flavorful to me. And one slice of cheese was too salty. Another thing is, cold egg does smell or taste funny to me, I think I already knew that.

Those cookies, pastry, chocolate, should also provide some B12 since they would have eggs or dairy content. As for the beer, I found it’s an interesting source, 1% for one can. Of course, if you try to get B12 from beer, you would probably end up with alcoholic liver disease.

9   PSA

9.1   Don’t think less of others

I also want to take this chance to tell everyone, whether you eat meat or don’t. Please:

  • Don’t criticize others’ diets

    You don’t know why someone don’t eat meat or they do, or whatever they eat or don’t. It could be medical reason, or whatever the reason is.

    Since I am a vegetarian, I think I have the right to tell my fellow meatless eaters, don’t think meat eaters less. Eating meat or not, do not change the fact we are still part of affecting other animals. It’s just not animal being part of the diet to make you categorize as an abuse, as a modern human, everything we do are hurting other animals one way or another. So, who are we to judge other people who do eat animals?

  • Don’t joke about others’ diets

    When I became a vegetarian, someone joked by using the word “hippie.” Which was not addressed to me, but in a blog post about vegetarian complaint to coffee shop for using insect to producing coloring, if I recall correctly.

    Frankly, I don’t know much about hippie, and I don’t think the person know much about hippie, either. So, this kind of jokes can only demonstrate how ignorant the person was.

  • Don’t yuck on whom eats that

    Every since I stopped eating meat, I began to notice people would yuck on certain things other people do eat, or other cultural or cuisines.

    For instances, offals, snails, insects, smelly food, fermented foods.

    One time, in a chat room, someone around 40 claimed offals are not safe to eat and even harmful to health. I was really shocked when I heard that. Before that, I really didn’t think those chefs in cooking shows talking about people are put off of offals were entirely true. After the chat room experience, I knew there did have some people are ill-educated.

    Maybe it’s supermarket, lots of people have lost the connection to food. A lot of people get scared if you ask them to touch raw fish. It’s really sad to see that. Not only education has failed, food education has also failed.

    Another decade, children might really think food only comes in plastic boxes, or do they already do?

  • Don’t self-diagnose medical conditions

    Internet is a terrible place to learn about health. Try to search for pain, say on upper back, you will see a ridiculous list of possible syndromes.

    And just by looking at the signs of B12 deficiency, I bet many people would at least have one on that list unless you are currently in perfect health.

    You may have heard of gluten-free many times, and Coeliac disease definitely is real, but many people go for gluten-free is simply unnecessary when they are not diagnosed by medical doctors. 1 in around 100 in USA and UK, that’s quite high, but do you really have?

    Really don’t go on a diet because you think you have a disease or that can make you healthier. You don’t have scientific proof, yes, there might be proof on other, but you need to check out to see if it does. Everyone’s body is different, eat as you like, don’t because you think you have a medical condition.

    And if someone tells you that he or she has certain disease, you have to 100% believe in that, or you might kill that person on your dinning table. But if you suspect that’s just bogus, don’t invite them next time.

9.2   Not vegan, be one for just a month

To close up this post, I’d urge whoever has been paying attention to healthy, green, local, these sorts of keywords or marketing terms, and still a omnivore, please be a vegan for month, then go back.

You will be amazed how you can learn about food you eat from being a vegan, that’s not eating what you want to eat, you will learn to read labels, search for more information about the ingredients, and things you have never thought about.

You probably would end up subscribing to 50 YouTube channels, 100 blogs of cookery, watching cooking shows on television. Thinking and planning meals for next week, from the courses, down to cooking methods or seasoning, they will be replaying in your mind over and over until you cook them.

Believe me, you will definitely learn a lot about what you put into your mouth.

weirdify, or stupidify, the text using Python unicodedata

Once in a while, or weirdness, some strange package or project would show up somewhere. weirdify is yet another weird proof. From its README:

Weirdify input text

$ python3 weirdify.py Make this text look stupid
Ⓜªₖᵉ ᵗℎⁱₛ ₜᵉⅹⓣ ⓛⓞᵒₖ ⓢⓣᵘₚⁱⅾ

Before I checked the source code, I thought it probably had a huge list of mapping for the characters, but, no. The entire code only has 38 lines including blank lines. It turns out there is already a standard Python module for Unicode data called unicodedata. Of which, it utilizes the normalize function with NFKD form to convert the characters:

The normal form KD (NFKD) will apply the compatibility decomposition, i.e. replace all compatibility characters with their equivalents.

While skimming over the code, another caught my eyes, the os.EX_USAGE, which probably was first time I have seen in being used in Python code. I recognized it because I knew a few C code uses that.

Not sure if this has any usefulness outside of weird or stupid domains. Maybe in chat room, like this?

Kªₚₚⓐ Kᵃₚᵖⓐ Kₐⓟᵖₐ Ⓚₐⓟᵖₐ Kªᵖⓟª

weirdify is written in Python 3 by Sebastian Hanula under the GPLv2.

Ⓐⓡⓔ ⓨₒⓤ ₛᵗⓤⓟⓘⓓ ᵒⓡ ⓦℎₐₜ?

Copying example shell commands of guides to execute

While I was reading Z-Shell guide, here is one thing that I have never thought about: using alias to work around example commands in order to execute them:

If you’re reading an electronic version of this guide, and want to copy lines with the `%' in front into a terminal to be executed, there’s a neat way of doing this where you don’t even have to edit the line first:

alias %=' '

Warning

You should never ever copy-and-paste commands and execute without even understanding them fully.

It got me thinking, you can even alias to echo, so you can get parameter expansion to work for you and get a list of ready-to-run command that’s already expanded. Again, read the warning above.

However, even this is ingenious in some way, it might not work if the leading character isn’t the right one. In Bash, % is fine, but not for more common $ and #, which are conventionally representing the commands are meant for normal user and root user, respectively.

The former, if you do run with $ directly, you get a “command not found” error; the latter, that’s a comment. For that, for a guide, it’s a much better using leading character to write example commands, because even users copy-and-paste, they wouldn’t do any harm, they would just be comments.

If you try to alias or make them functions, since they are not valid names or identifiers, so this alias trick wouldn’t work on them. Nonetheless, you can still make an executable $ script, set the PATH, run example commands with leading $.

Or you can simply write a script, processing one line at time, dropping first argument, and executing with the rest.

After all, alias %=' ' is nice to know, but should anyone use it? No.