Showing posts with label Documentation. Show all posts
Showing posts with label Documentation. Show all posts

Friday, August 24, 2018

Export Confluence HTML to Github Wiki

Confluence allows its HTML pages to be exported in a single zip. There is a Confluence-to-Github-Markdown tool that allows automatic export of these HTML files to markdown .md files with a single command from the core directory:
$ confluence-to-github-markdown

Now you can create separate pages in the GitHub wiki with these md files. However, there are a certain limitations that need to be manually handled to complete the process.

1. Image. GitHub wiki does not support uploading images. Images are posted via URLs in the wiki. Therefore, currently we need to upload the images to a public location and access the URL from there.

2. Metadata. The tool also converts metadata (which is actually good I think) to md. We need to manually remove them wherever unnecessary instead of showing them as plain text in the GitHub wiki.

3. The converter tool creates the name of the md file from the html title. If you have ' or any special characters in the title of your html, it will fail to convert and throw js errors. To fix, change the title header from something such as "Rakshak’s RESTful API" to "Rakshak RESTful API" before executing the converter tool.

4. Internal links (links to named anchors in the markdown) are not handled by the converter.  The anchors must be manually added.

5. Links to other pages in the confluence wiki are preserved as it is, rather than having them as a relative link. Therefore they need to be replaced by the respective new link in the markdown wiki.

6. Video embedding is not supported in Markdown. Therefore, the converter tool simply ignores any video files embedded in the HTML. To fix this, in the final wiki pages, manually add the videos as a simple HTML links as in, [screencast](https://www.youtube.com/embed/S8juo0Dx68I).

Tuesday, August 7, 2012

Why you should wait more to upgrade to the next LTS..

Notify me for long-term support versions
There are still a few of us, who prefer to be safer. We often upgrade only when an LTS of Ubuntu is released. However, not most of us realize that we should wait till the point release is available, letting the critical bugs found by the users fixed. The point releases are usually made available around the end of July. Ubuntu 12.04.1 will be available this month. Update manager will list 12.04 as available for the 10.04 users, only when 12.04.1 is released. That means, it won't be shown to the users who have set their system to notify only when LTS is released, till the first point release is released.

However, if you are still in a haste to go 12.04 from your stable 10.04, you can do this by "update-manager -d" I tried above, and it was a failed attempt, and hence will discourage anyone else to go to 12.04, directly from their 10.04, for their mission critical systems. Once 12.04.1 is released, it will be listed as 12.04 in your update manager, and that will be the ideal time to upgrade. I tried as above, which successfully downloaded the upgrades (took 26 hours in a speed of 60 kB/s), installed, and restarted. But it failed to restart, even after attempting all the suggestions on the Internet. When I tried with the 11.10 DVD (I didn't have 12.04 DVD with me, and I didn't have time to download and burn one, or get one from someone else), it showed the current operating system as 10.04, and from there I picked the option to "Upgrade" using the DVD. My file system was safe, along with all my documents. Some of the applications I had in my 10.04, had to be reinstalled for my new 11.10. Anyway, I smoothly upgraded 11.10 to 12.04, as expected, within 5 hours. I then installed the missing applications. Everything is safe, and now I am with 12.04.

Now I am just analyzing what might have happened initially to cause failure in my upgrade. It seemed to be an issue that happened when upgrading the Operating System during the final restart, as the operating system was still detected as 10.04 when I inserted 11.10 DVD. (It considered it an upgrade from 10.04, and not an installation replacing 12.04). I like that installing on top of 10.04 option, without formatting the entire disk, or without leaving the previous data in another partition, wasting the space.

Post-mortem

The page started to show the below message after the restart.
The disk drive for / is not ready yet or not present. 
Continue to wait; or Press S to skip mounting, or M for manual recovery.

Clicking S complained missing /tmp. Further S lead me to an empty black screen that takes nowhere. Go for M 
Root filesystem check failed.
A maintenance shell will now be started.
CONTROL-D will terminate this shell and reboot the system.
Give root password for maintenance 
(or type Control-D to continue):

and the manual fsck attempts did no fix.
fsck -f /dev/sda1

vi /etc/fstab 
showed
/mnt/4096 Mb.swap none swap sw 0 0
and
vi /etc/mtab
showed
/dev/sda1 / ext3 rw 0 0

Copying the contents of fstab to mtab and restart did no help, though suggested in some forums.  

mount /dev/sda1 /
mount: /dev/sda1 already mounted or / busy
mount: according to mtab, /dev/sda1 is already mounted on /

Remounting with rw permissions to follow the below commands as suggested.
mount -w -o remount /
dpkg --configure -a
apt-get install -f

dpkg --configure -a
gave
dpkg: error: parsing file '/var/lib/dpkg/status' near line 28305 package 'xmind'.
blank line in value of field 'Description'.

Removed the paragraphs defining xmind from the files /var/lib/dpkg/status and /var/lib/dpkg/available. It also complained about virtualbox-2.2, which I eventually removed as well.

Further fix attempts took me to the below shell.
Gave up waiting for root device. 
Common problems: 722988907ca
-  Boot args (cat /proc/cmdline)
- Check rootdelay = (did the system wait long enough?)
- Check root - (did the system wait for the right device?)
ALERT
/dev/disk/by-uuid/c67309e6-6099-40db-8b1b-1722988907ca does not exist. Dropping to shell.

Removed the UUID definitions,
root=UUID=.....7ca
from the entries in
/boot/grub/menu.lst
Making 
/boot/vm......generic
root=UUID=.....7ca ro quiet splash
to 
/boot/vm.....generic
ro quiet splash 
in the entries, as discussed here.

However, these fixes eventually took me to the shell from all the kernel images, letting me explore further issues. I finalized, installing from DVD would be a smarter option, as nothing I will lose.

Conclusion 

Lack of documentation or help is surely a frustration for an average user, in case of a failure like this, though it is not so common. We should focus more on community documentation to avoid turning the users off. My suggestion for a normal user to take a backup before upgrading such, and in case of failure, try if you can fix it, and if not, go for reinstalling on the same partitions, without formatting.

Sunday, June 10, 2012

Moments with Twitter..

I was recently playing with a few tools, that let you have a look into your past tweets. All My Tweets is an interesting service, that lets you view all your tweets in a simple page, from the beginning. Interestingly, another service, named Twitario gives a view of all your tweets, as a diary. Though Twitario provides a nice interface to find the tweets easily, based on the calendar, it doesn't support Unicode characters, which is surely a minus for those who tweet in Unicode languages. "All My Tweets" include the link to the original tweet itself, where Twitario provides the option to delete the tweets. Having analyzed these tools, I should mention that these tweets were really useful, and brought a few interesting memories back.

Now time to look into the trail of my tweets. Here are some of my tweets, since the 26th of March, 2009.

is finishing the documentation. Mar 26, 2009
It is notable that my first tweet is on documentation. It was probably on the documentation on the project done during the internship. I have always been a supporter of good documentation - It helps the blood flow of open source.

Abiword Cross-compiling using wine successful on Ubuntu. Apr 16, 2009
At that time, uwog was still completing the MSVC build for AbiWord. I found Cross-building useful, since it was complete and gave me a usable AbiWord build for Windows, with no issues. This was indeed a remarkable point, which gave me further confidence to work on AbiWord Windows API, using Ubuntu as my platform.

Summer Love with Abiword... Apr 20, 2009
This was a happy announcement of me getting into the Google Summer of Code 2009. This was my first Google Summer of Code, and I was pretty much excited. AbiWord community was super-friendly, and I am proud to be a member, since then.

with Anjuta.. an IDE similar to Visual Studio... for Linux. May 08, 2009
Anjuta DevStudio is a Gnome Integrated Development Environment. I have mostly used Anjuta as a syntax highlighter for my C/C++ projects including AbiWord development. For compiling and building of AbiWord, I just use make directly.

needs a mute option and filtering for facebook messages. Any suggestions... Jun 01, 2009  
At that time, there was no way to opt-out from the Facebook notifications from the photos that we commented, or to remove ourselves from the facebook threads. I was annoyed, when someone sends group messages directly to inbox. It is great to see that these options are now available for facebook. Now we can remove ourselves from the messages. However, filtering is still not possible. Neither muting (receiving the messages, but not getting the notification of that red one for the new message, for the uninteresting thread).

#AbiWord Turns 11! Happy Birthday to dear Abiword! Happy Birthday to you... Jul 16, 2009
That was remarkable to mark the 11th year of AbiWord, since it started as an open source project in the year 1998.

My computer never complained abt me repeating the same build million times, and I've never complained abt its time delays. We <3 each other. Aug 17, 2009  
Some romance with my computer.. ;)

10 reasons to avoid talking on the phone http://theoatmeal.com/comics/phone from @oatmeal Feb 23, 2010  
Oatmeal never fails to amuse me. Many of its posts deserve a tweet.

my #javascript has gone wild and bigggggg and GO #bananascript GOO.. http://www.bananascript.com/ Compress it.. :) #fb Mar 03, 2010  
Bananascript is a nice online tool to compress javascript files.

A periodic table of visualization methods http://www.visual-literacy.org/periodic_table/periodic_table.html Apr 04, 2010  
Each of these visualization methods deserves a blog post on its own. Visual-Literacy.org provides interesting learning resources, such as an introduction to argumentum. I have also enrolled to their online courses, full of study materials.

I should create some of my own thought experiments as well.. :D http://plato.stanford.edu/entries/thought-experiment/ Jun 06, 2010  
Thought experiments are fun, and it enhances your ability to think, weird. ;) Follow the above link to realize that. Again, each of these thought experiments deserves a post on its own.

GSoC welcome package once more. Special thanks and love OGSA-DAI, OMII-UK and Google. Reminds me the lovable days of GSoC2009 - Abiword too. Jun 19, 2010  
A blog post that happily announces my second welcome package from Google. Yes, this was for my Google Summer of Code with OMII-UK.

Also make sure to read Moments with Twitter - II, the successor of this post.

Saturday, February 5, 2011

I concluded, my computer is asexual (or engaged with something else).

Just noticed the following as a friend's facebook status update.
Is Your Computer a Boy or a Girl?

It’s pretty easy to find out what gender your computer is.

Follow the instructions.
.........
1) Open your notepad
2) Type or copy paste: CreateObject("SAPI.SpVoice").Speak"I love you"
3) Save as computer_sex.vbs
4) Run the file. (just double click)

If you hear a male voice, congratulations, you have a boy if woman’s, well, it’s a girl.

I have a baby boy :)

What about you?

So I opened my gedit editor, and copy-pasted, and saved it in the desktop of my Ubuntu machine, and double clicked it. Instead of *saying* anything, it just opened the file in another gedit window with the warning header,
"This file (/home/pradeeban/Desktop/computer_sex.vbs) is already open in another gedit window. gedit opened this instance of the file in a non-editable way. Do you want to edit it anyway?"

I concluded, my computer is asexual or engaged with some other stuff (already open in another.. ;)).

Wait; at least you could have mentioned the fact that your sex-trick works only on a windows machine.. :D

Sunday, August 30, 2009

Let's do FOSS!

Free and Open Source Software (FOSS) projects are community maintained and most of them depends on the volunteers for their existence. You can help them in many ways regardless of your computer literacy. I have been asked several times, "How can I contribute to a free and open source software project?". So finally I thought of sharing some of my understanding regarding this. This post is just how I see the stuff going there, and not the solution.

1. First make sure that you really have some time, interest on the particular project, willingness, and the basic domain knowledge. Though contributions often come from developers, it doesn't mean that it is the only possibility. Search the web and find an open source community that matches your interest.

2. You should have a basic knowledge of the version control systems [SVN, Git, or CVS], and the project management tools like maven, and be able to use them, as they are common in most of the open source projects.

3. Get some experience in building projects from source and creating and applying simple patches for the projects.

4. Search the web and find an open source community that suits your interest. You can find some interesting FOSS communities from the List of participating organizations in Google Summer of Codes.

5. Communities like Abiword are small, and there are huge communities like Apache as well, which have sub-communities themselves. In small communities, you will be dealing with the entire community, where in case of a large community, you will again have to pick a suitable project which will have a 'sub-community' itself.

6. Read the online references and make sure that new developers are mostly welcomed at the community, at the given time. Almost all the FOSS communities encourage newcomers as there is nothing like 'NO VACANCY' in FOSS communities. You are always more than welcomed, as a developer, technical writer, or a translator.

7. Check the possible areas where you can enter. Join the user and developer mailing lists and hang on the community IRC, listen to the ongoing developer architecture and design level discussions. You can try to break ice with other developers, via IRC.

8. Build the project from the source, check for the possible additions and improvements, check the mail archives and the bugs database for the bugs or the future implementation, to which you can contribute.

9. Now make sure that you have got some idea and understanding about the community, codebase, their practices, and how you are going to contribute.

10. Write a descriptive mail to the developer list clearly explaining your interest in becoming a potential contributor to the community. Don't forget to include the design level details of your suggestions, your time frame, and the amount of contribution you can offer to the community, also give a hint of your strong interest by making the ice break impressive to the community.

11. You can also query about the potential contribution you can give to the community. Mostly you will be replied personally or through the mailing list pointing you the possible areas you can work. Pick a suitable one from the suggested projects and considering your own interests and decisions, and make sure to describe and confirm your involvement in the project to the community.

12. After discussing with such a project community about your interest in contributing, you can start by Localizing the products into your local languages,  polishing the documentation, writing reviews and blog posts, providing ideas, spreading the word, or by the other possible means which are specific to the community, apart from being a developer in the community. Open source projects are for the users. Being a user itself is a great contribution for a project. You can help the community by timely updates on the bugs and request for the feature enhancements that you expect. By being an active contributor you can earn self-satisfaction and recognition.

13. Make sure to be in a close contact with your community, once you start implementing your idea (or contributing to the community in some other way). Feel free to ask questions from the developers via the mailing list or even personal emails.

14. Make sure to be active in your community and very soon once you become a committer/community developer, continue contributing. Always try to welcome and help the freshers and help them becoming active contributors.

Let's do FOSS.

[This post is based on the experience I got from Abiword community as a GSoC Student.]