Fork me on GitHub

Mar 24, 2008

Application for Google Summer of Code 2008, Mono Project

Git# a fully managed Git implementation
=======================================

Igor Guerrero Fonseca <igfgt1@gmail.com>

Summary
~~~~~~~

Git is a fast, scalable, distributed revision control system, that is used in fairly big projects, one of the biggest problems of Git is his inclusion in tools(mostly IDE's), GUI clients, CLI applications and non-Unix platform like Windows. A very good way to solve this problems is making a Git implementation in managed code that can run on multiple platforms.

Benefits
~~~~~~~~

In my opinion Git is very good doing his job, the benefits of making a fully managed implementation are very interesting. With Git# a lot of paths will be open to Git, a Monodevelop plugin and also Visual Studio can benefits with this. Also Git can be used as a storage system to build rich desktop distributed applications, I can see software like Tomboy using Git# to handle notes remotely and in a distributed way, the same can go for Banshee and F-spot. Having a complete distribute system is having endless possibilities.

Understanding Of The Project
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The project can be separated in operational levels, all of this aims to implement a low level API and a high level API:

* Contributor: In this level is the more typical level in any community people without developer access will download a copy of the repository or modules. Some features to be implemented: git-show-branch, git-log, git-checkout, git-diff, git-reset, git-tag.

* Developer: In this level we have the people that are part of the project, developing it constantly and are completely trusted persons to give them accesses to change the project tree, also he will take care of reviewing the code from a "Contributor". Some features to be implemented: git-add, git-commit, git-clone, git-pull, git-push, git-fetch, git-format-patch

* Integrator: This is the high level developer that takes responsibility of applying all the patches from a "Contributor" and resolving the conflicts between "Developers". Some features to be implemented: git-diff*, git-am, git-merge*, git-pull, git-revert, git-push.

* Repository Administration: This is a level where all the other levels are involved because in Git we all manage a branch in our local repository. Some features to be implemented: git-fsck, git-init, git-init-db, git-clone.

Organization
~~~~~~~~~~~~

I and another fellow student will work in this project spliting it in two parts:

* Low level API: This includes the filesystem operations and the object model. This includes git-fsck, git-init, git-init-db, git-clone, git-cat-file, update-index, .

* High level API: This includes operational task to be able to manipulate the content in the branch. This includes git-merge, git-pull, git-push.

Plan
~~~~

* Week 1 May 26 - June 1: Automate using Nant and Nunit the creation, running and logging of the tests. Begin work in basic filesystem operations.
* Week 2 June 2 - June 8:
Week 3 June 9 - June 15:
Implementation of low level filesystem.
* Week 4 June 17 - June 22:
Implementation of filesystem database, tag system, index(cache) system.
* Week 5 June 23 - June 29:
Week 6 June 30 - July 6:
Implementation of Objects API, tree operation can be done after this.
* Week 7 July 7 - July 13 (Mid-Term):
Milestone: Filesystem, object and tree operations done.
Begin merge of the low and high level branches, identification of missing features to get a successful merge.
Begin work on basic merge low level api
* Week 8 July 14 - July 20:
Week 9 July 21 - July 27:
Begin work on checkout functionality
* Week 10 July 28 - August 3:
Week 11 August 4 - August 10:
checkout functionality done, implement missing tests
* Week 12 August 11 - August 17:
Final Milestone: Successful merge of both layers. Low level
features to manage the database objects indexes and basic merge operations and high level ones like merge, pull and push.
August 18 (Pencils Down)

Deliverables
~~~~~~~~~~~~

* Project plan
* Fully managed Git# implementation
* Set of tests to the Git# API
* Full set of documentation

Qualifications
~~~~~~~~~~~~~~

I'm sure that I can manage to finish this task, because I always exited about making developer tools, I work in a software company that makes developer tools for database connectivity(mertechdata.com) using C++, C# and a high level language called Dataflex. Also I have worked in Java using Cocoon for writing web applications with ASF member Antonio Gallardo.

I have used in all my experience SCM tools including SVN, CVS, Bazar and Sourcegear producs. Able to understand the process.

Personal Info
~~~~~~~~~~~~~

I have over 2 years of professional experience on various areas of Software Development and System Administration, includes job experience in ASF Member Antonio Gallardo's ISV company in Nicaragua writing web applications using Cocoon, developing desktop applications using Visual Basic .NET for a educational institution, being a member of the CC of Ubuntu­NI local users group of Ubuntu in Nicaragua and part of the QA team in Mertech Data Systems in Florida able to test their products in Unix and Windows platforms and with all types of database engines. More info, read my online resumé: http://igordevlog.blogspot.com/2007/06/my-resum.html

References
~~~~~~~~~~

* http://groups.google.com/group/google-summer-of-code-discuss/files
* http://git.or.cz/#documentation

Mar 23, 2008

Updated Resumé

My Resumé has been updated check it out here: http://igordevlog.blogspot.com/2007/06/my-resum.html

NIN Right where it belongs

Heck of a song men!:



The rhythm is kinda how I feel sometimes ;)

VMware 6.0.3 in Ubuntu Hardy 8.04 kernel 2.6.24

Hi, its me again with another howto VMware :), this time the task is harder :(. Based on Ubuntu Hardy 8.04 Beta

Steps:

1. Get VMware from www.vmware.com(I used VMware Workstation because I have the licence for that version) since we're using Ubuntu you should get the tar.gz file.

2. Install build-essential linux-kernel-devel and linux-headers-generic(or the one you're using), extract the vmware tar.gz file right click -> "extract here" or:

tar xvvzf dir/VMware-workstation-6.0.3-80004.i386.tar.gz
3. Run the installer:
cd vmware-distrib
sudo ./vmware-install.pl
follow all the instructions... but DO NOT RUN vmware-config.pl

4. Copy vmware drivers source code in a directory:
mkdir $HOME/temp
cd $HOME/temp
cp /usr/lib/vmware/modules/source/vmmon.tar .
cp /usr/lib/vmware/modules/source/vmnet.tar .


5. Get the patches, save them in $HOME/temp/:

vmmon-2.6.24.patch: http://pastebin.com/pastebin.php?dl=f58553c1f
vmnet-2.6.24.patch: http://pastebin.com/pastebin.php?dl=f681c5c13

File downloads: vmmon: http://www.mediafire.com/?zizfzmutmnp, vmnet: http://www.mediafire.com/?yign2immy0m

Also for the any-update: http://groups.google.com/group/vmkernelnewbies/files?hl=en

6. Apply the patches:
cd $HOME/temp

tar xf vmmon.tar
cd vmmon-only
patch -p1 < ../vmmon-2.6.24.patch
cd ..
mv vmmon.tar vmmon.tar.orig
tar cf vmmon.tar vmmon-only
sudo cp vmmon.tar /usr/lib/vmware/modules/source/

tar xf vmnet.tar
cd vmnet-only
patch -p1 < ../vmnet-2.6.24.patch
cd ..
mv vmnet.tar vmnet.tar.orig
tar cf vmnet.tar vmnet-only
sudo cp vmnet.tar /usr/lib/vmware/modules/source/
7. Run vmware-config.pl
sudo vmware-config.pl
Read the instructions and when it says "Compile drivers" you type yes to compile your patched modules.

Mar 20, 2008

Get lost DRM!


100_2179
Originally uploaded by Naufragio
See this thing should disappear people from Apple and the music industry pushed this so hard in the last couple of years, but its so unfair with the users... I just hate it.

Defective by design for sure!

>:( DRM get lost right now!

Mar 19, 2008

Banshee 1.0pre screenshots

Banshee is going to hit 1.0 soon, these are some screenshots:

[iTunes-like view]

[Banshee cover view]

Mar 18, 2008

Going to college... again?

I'm starting on thinking about going to college again... and this time is serious, I'll do it for a number of reasons:

  1. Its been a year since I came to this country and... I have no friends :(, I'm really piss off with this situation, going really crazy! :@. I hate people here, nobody is friendable for me, at least I know that Miami sucks! yeah, its a nice place to party but, who can make real friends in a party? that's why I need people to have intellectual relationships not just "hey I like Hip Hop... and you?"... WTF!!!, really this place is for losers, and I'm not a looser!
  2. Google Summer Of Code deadline(for enrollment) is April 14th so... I need to be enrolled by that time.
  3. Fuck it... I'll like to have the paper that says "graduated".
  4. And... my mom would like to be proud of me.
Ok, so the plan is have my previous documents translated by Saturday(or at least in progress of translation), even though I have some things that want to stop me, I'll go trough them as I usually do... life haven't been easy for me... AT ALL, but I have been in tougher situations and I always win.

Mar 17, 2008

Super weekend!

This weekend was very cool, on the news we got:

  1. Banshee hits 1.0 alpha: http://banshee-project.org/Releases/0.98.1
  2. Monodevelop hits 1.0: http://monodevelop.com/MonoDevelop_1.0_Released
  3. Mono hits 2.0 Beta: http://www.go-mono.com/archive/1.9/
On my personal improvements:
  1. I finally manage to install Banshee from trunk(for me it was broken weeks ago) :)
  2. I installed Monodevelop 1.0 :)
  3. I submitted a patch to gTwiter: http://code.google.com/p/gtwitter/issues/detail?id=51
  4. Also I read about .NET and C++ development :)

Mar 16, 2008

Document Freedom Day @ Nicaragua

Mar 10, 2008

Ubuntu Hardy, damn it's cool

As usual I begin to test Ubuntu months before is ready, but, for my surprise this release, is the best ever, because as I use to say: "if it works for you then is ok" then I'm so happy to say that "IT WORKS FOR ME".

Everything in my laptop works: suspend, hibernate, volume control, compiz, video card(an Intel chipset), all the apps, it also bringing the latest Mono version and a preview of Monodevelop :), Pidgin, Banshee the very latest(not from trunk), as I suggest to the people of deskbar-applet they now allow me to change the gui to be stick it to the panel.

A screenshot:

Announcing my retirement from blogging

J/K, I'm just trying Twitter, even though I think it's still a very stupid way of blogging, still I feel so alone these days that I need something to do :P, and quickly. The problem with blogging is that you tempt to post interesting stuff, and not crap, but in Twitter, it really doesn't matter at all :D

Mar 3, 2008

Linux do inflicts Microsoft patents

Since Microsoft does not want to show up their 200+ patents that they say that Linux inflicts(or violate), I searched them for Microsoft.

Microsoft owns 5834 patents(and counting), that's why they need a lot of developers.

disclaimer



Things written in this blog are my personal thoughts or points of view, and do not represent at all the position of my employer.

Code in the website is licensed under The MIT License

Content of this blog is:
Creative Commons License
Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.