It looks like Nerdfest will be shutting down operations very soon, after a good 8 years of consistent free community hosting, because our upstream provider is going away. Yes we started in 2000! Btw, if you can provide free colo for Nerdfest (low bandwidth requirements), or can take over some of our users’ accounts, please contact me.
This is a tip for Nerdfest account holders who are unable to locate alternative hosting. Google has a free apps service which lets you host your webpages, email (including IMAP), chat, etc. for your domain. I see at least one user who has already switched partly to it. The hosting isn’t as good as rolling your own.. you host static content, and you can have a blog too. But this is better than nothing, and Google is bound to be around for a long time. Think about it.
GIMP 2.4 has been released! It is the culmination of many man-years of real effort by several developers from around the world. There are many new things to expect in the new version, with more features, better usability and less bugs. Uncork your champagne and enjoy by upgrading to it.
What a series it has been.. England, South Africa, Australia and now Pakistan back to back. Amazing series and we are loving it here. They said we couldn’t win in every one of these matches. The quality of cricket was also awesome in these matches. When my country wins a major tournament in our favorite sport after many many many years, it sure is sweet! We were screaming our heads off in the cafeteria.
I don’t follow the rationale behind SSL site seals, which are usually marketed as an add-on to higher-priced X.509 certificates. What is the advantage of asking a visitor apparently on your website to click on an image, and go to a 3rd party website to verify a site’s certificate? It brings a false sense of security, as users who don’t know about SSL can be fooled into visiting a dummy non-SSL webpage with the site seal.
Your web browser already verifies the CA’s signature on the presented certificate. Many popular browsers also let you view information about the Subject and the Issuer in the certificate. If the site seal was created because a certificate may have been revoked and the browser hasn’t checked that, then the same can be said for the certificate that the CA’s website hosting the site seal sends.
On the subject of SSL certificates, it is high time that Firefox added a box next to the location bar, which displays the organization (O) of the Subject DN in the X.509 certificate when visiting a website over HTTPS. Right now, hovering over the padlock displays the certificate authority that signed the certificate. A user like me would be more interested in seeing the organization that it was issued to.
I bit the bullet and updated this blog to use Wordpress, due to its fancy WYSIWYG editor thing and overall ease of use. This blog will be more or less about my work and personal life from now on.
The Hemingway theme was picked as I liked the look of John Lilly’s blog.
It would be very worthwhile for someone to add support for variadic macros to Splint (a C static analysis tool similar to lint but better). While it is not as good as Coverity Prevent and generates several false positives, it can be made to work with GLib/GTK+ application code and would be very helpful in eliminating several types of programming errors. It is certainly much better than lint. It has been used on GIMP trunk, along with other static analysis tools and it found errors which were fixed. Another tool called href=”http://www.cubewano.org/oink”>Oink doesn’t compile on my x86_64 box, but seems interesting nevertheless as it claims to support C++.
I dream of a day when C/C++ programmer editors do static analysis as I type, and suggest corrections to stupid mistakes. NetBeans (Java) has really spoiled me, by how productive one can be using it.
Subversion’s lack of good merging support is proving to be difficult. Over the last 2 weeks, my colleagues and I have been bitten by at least the following issues (perhaps due to our arrangement of branches which make these issues conspicuous):
- The multiple merge problem which is documented in the Subversion manual: create a branch and when you merge from one to another more than once, you have to 1. record the number of the revision you’re merging upto in the commit log, and 2. supply this revision number when you merge the next time. Otherwise, if you have changed some lines that were brought in when you merged last, you will get conflicts. And be careful when recording the point you merged till if you are looking up its revision number again, as the from-branch may have more revisions since you merged. Cherry picking is also not possible unless you track every changeset you merged.
- You may have to resolve the same conflict again when merging into a working copy from your colleauge’s branch, even if your colleaugue already merged your latest changes, picked his change over yours in that conflict in his working copy and committed this into his branch. Subversion does not seem to be able to record and use this info.
- If multiple developers merge into their checkout of trunk and commit into trunk, from their private/topic branches in an office environment where merging can happen often, these merges may happen at nearby times. In some of these cases, you may reverse out some changes of your colleagues without any warning even though you ran svn up before you committed. When I hit this issue, I started wondering if this was the reason for Git’s index (I never quite followed the need for it).
char*a=" $#,.';:nt",*s="�000at�31r1�20�21�05",*d="215266333
S3�32�04321232L32176233346;346�30J~G200317251373O�01237h
3371C233317211274317371�23364235�33314377221276a360371
f~341342303326361277353~O207307h337365277\"�34o304ygb
3146317333|�33355�03�16�333063773411264�04375�336202a
242~3061",i,j,r=0,b=0;main(){for(i=0;i<98;i++){for(;;){r<<=1;r|=(*(d+i)
>>(7-b++))&1;for(j=0;j<10;j++) if(*(s+j)==r){putchar(*(a+j));r=0;break;}
if(b>=8){b=0;break;}}}}
Eek! Look at all that terrible code. Anyway, main() implements a well-known algorithm. Can you figure out what it is?
When I was pursuing a B.Sc. degree in Loyola Academy about 11 years ago, we used DOS and diskless machines with floppies. There was a pretty terrible virus called Die Hard 2 doing the rounds in the labs. We didn’t have a cleaner utility for this virus, and even if the McAfee SCAN.EXE and CLEAN.EXE that we had could detect and clean it (which they couldn’t anyway), they were way too slow to run. Simply loading either off a floppy into memory and program setup took a minute on those 8088 machines and then scanning took what seemed to be forever. It was during this time when I was getting better at assembly and also going through virus disassembly
. I wrote a program called DH2C.COM (Die Hard 2 cleaner) in 8086 assembly which got used a lot on campus for its high speed, so much so that some people changed strings in it using a hex editor and called it their own. You could clean an entire disk in less time than SCAN.EXE took to load. This was due to DH2C’s use of file truncation and very little disk reading to check for infection.
Here is the program DH2C.COM. I seem to have lost the original source code over the years, but here is a disassembly of it. I don’t know if I can release this disassembler-generated code as free software, but the COM file is released under the modified BSD license or GNU GPLv2 and higher (no warranty, no liability). If time permits, I will comment it in the future but it should be fairly straightforward to anyone who has done DOS programming.
Last night I wrote a couple of Python scripts to create a static website tree from input XML documents, and switched this website to use it. The blog is also gone and replaced with a date-ordered journal (the title attribute seemed a bit silly). Now I can edit documents in emacs and post—which is far more nicer to use than a website form—and also put the journal in version control. Whee!
Now I hope to put some old programs such as a DOS virus cleaner written in 8086 assembly with source code on the website. Blast from the past!
Thanks to Andreas Nilsson for creating this hackergotchi for me:
