Achievements
~~~~~~~~~~~
* Setup our development infrastructure:
* http://github.com/igorgue/git-sharp
* http://devel.unionccs.net/projects/show/git-sharp
* Define our approach with mentor and fellow student(Hector, the guy that will be doing the high level API)
* Study some the git implementation(work in progress):
* CGit (commonly known as plain git)
* jGit (implementation created by a CGit developer)
* ruby-git ruby implementation
* git-ruby another ruby implementation
* Initial work on Git core, some classes infrastructure defined, also Hashing is done with the help of Hector, check github repo(git clone git://github.com/igorgue/git-sharp.git).
* Core diagram: http://devel.unionccs.net/projects/git-sharp/documents missing Index API
* Some work done on the API Design: http://devel.unionccs.net/wiki/git-sharp
Objectives
~~~~~~~~
* Finish design... we just have to do this to continue
* Somethings have to be figured out first:
* Create a base for Hector work(so he can develop the high level part)
* How does Index works and how are we going to implement it(its different on every implementation)
* Continue working on "Core" which is Object, Tree, Commit, Blob and Tag
* Start work in Index
Bonus
~~~~~
* I have been getting dirty with 'unsafe' code, anyway we are not going to use any unsafe code if its not needed(and it should not be needed)
* Learned how to correctly use Mono's encryption API to allow me to create the SHA1
Love
~~~~
* massi: Even though we have talked just a little, he gave us very nice tips :)
* spouliot: He told us to use SHA1.Create() instead of SHA1Managed or SHA1CryptoServiceProvider
* alan(monotorrent guy): This guy did some cool stuff in Mono's SHA1 :) thanks
Notes
~~~~~
* Everybody twitts these days... even Git#: http://twitter.com/gitsharp like I twitt before he is a lonely guy... so he will not follow anybody :) or even reply to anybody
May 26, 2008
A&O 2008-05-26: GitSharp low level API
Posted by
Igor
at
5:53 PM
0
comments
Links to this post
Labels: git, gitsharp, gsoc, opensource, planeta
May 24, 2008
My place
PS: It was worst but, we _threw_ away the _trash_, some pizza boxes was pissing me off so we got rid of those... but, still unorganized|dirty
Anyway... I still can hack in that place hehe.
Posted by
Igor
at
11:02 PM
2
comments
Links to this post
Labels: I have life, planeta
May 3, 2008
Installing VMware Server 1.0.5 in Ubuntu 8.04 Hardy Heron
It's me again with another how-to VMware in Ubuntu...
Well as you might know, VMware have not updated their VMware versions to the latest kernel(nor GCC nor Gnome libs), so the task is kinda hard... the best advice for newbies is to wait, wait, and wait for VMware to release a supported version.
Steps:
1. Get VMware Server from www.vmware.com(don't forget to get the serial too) 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 VMware-server-1.0.5-80187.tar.gz3. Run the installer:
cd vmware-server-distribfollow all the instructions... but DO NOT RUN vmware-config.pl
sudo ./vmware-install.pl
4. Get vmware-any-any-update-116.tgz from http://groups.google.com/group/vmkernelnewbies/files?hl=en
5. Run the any-any updates:
tar xvvf vmware-any-any-update-116.tgzAnd select yes on run vmware-config.pl
cd vmware-any-any-update116
sudo ./runme.pl
6. Select your favorite options :)
7. Now, you have it installed... then RUN IT :)
vmwareNice error... I like that hehe, we're screw... are we?... well nop actually.
/usr/lib/vmware/bin/vmware: /usr/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_3.4' not found (required by /usr/lib/libcairo.so.2)
/usr/lib/vmware/bin/vmware: /usr/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/libstdc++.so.6)
/usr/lib/vmware/bin/vmware: /usr/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_3.4' not found (required by /usr/lib/libcairo.so.2)
/usr/lib/vmware/bin/vmware: /usr/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/libstdc++.so.6)
/usr/lib/vmware/bin/vmware: /usr/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_3.4' not found (required by /usr/lib/libcairo.so.2)
/usr/lib/vmware/bin/vmware: /usr/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/libstdc++.so.6)
8. VMware is complaining about some missing libraries, and these are mainly GUI libraries(libcairo)... so what we do? we copy them to the VMware libs directory:
cd /usr/lib/vmware/lib/9. Try to run your VMware again... and yes, we see the light at the end of the tunel :):
sudo mv libpng12.so.0/libpng12.so.0 libpng12.so.0/libpng12.so.0.disabled
sudo ln -sf /usr/lib/libpng12.so.0 libpng12.so.0/libpng12.so.0
sudo mv libgcc_s.so.1/libgcc_s.so.1 libgcc_s.so.1/libgcc_s.so.1.disabled
sudo ln -sf /lib/libgcc_s.so.1 libgcc_s.so.1/libgcc_s.so.1
Posted by
Igor
at
2:20 AM
9
comments
Links to this post
Apr 21, 2008
I'm in!
I'll be working on the Git# implementation, a very hard project but I really like it. Thanks Mono Project for putting their trust on me.
Posted by
Igor
at
8:05 PM
2
comments
Links to this post
Labels: gsoc, opensource, planeta
Apr 19, 2008
What is Ubuntu still missing
Ubuntu is just days ahead(test the RC: http://iso.qa.ubuntu.com/), I have been using it for about 2 months now, and its really hard to tell "What is Ubuntu missing". So I'll try to list some of the "missing features" and|or "improvements".
- Updates and integration with proprietary drivers: For me there's no need of having software like Envy, Ubuntu should update this already-released-drivers, just like Windows(via notification) and OSX do.
- Improve hardware support: This is like a dog following its tail, but I think Ubuntu will potentially do better.
- Improve compiz support: OpenSuSE does this thing very good, Ubuntu should not allow people even try to activate compiz if their video card is not in the database. The im-trying-but-no-workee is not cool.
- A nice One-click-install: no comment, is very needed and we already have the architecture to do it.
- Make some smart software-to-be-included-by-default decisions: We want Banshee, Beagle, Monsoon, Cheese, Elisa and Inkscape.
- Install ndiswrapper by default: You know there is a wireless problem and in lots of cases can be resolved installing ndiswrapper, well INCLUDE THE THING BY DEFAULT THEN :)
- Improvements in Pidgin: Add video-conference IM, is the future.
- Improve system configurations via a GUI: Not everything should be configurable by a GUI, but things like Samba, Grub, drivers and partitions should be fully configurable using a GUI.
- Include a pulse audio based volume control: In other words just include the one on Fedora and make it better.
- Make more metapackages: mono-development, rails-development, java-development, django-development, gamers-stack, officeusers-stack, web2.0-stack etc.
Posted by
Igor
at
1:02 PM
9
comments
Links to this post
Labels: opensource, planeta, ubuntu
Apr 13, 2008
Command history meme
igor@igorlaptop:~$ history|awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn|head
242 git
101 ls
28 cd
24 vi
22 gitk
16 gedit
15 rm
11 man
10 tree
6 e
igor@igorlaptop:~$
Pretty cool commands... I type ls more than I need to though.
Posted by
Igor
at
11:35 AM
0
comments
Links to this post
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 UbuntuNI 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
Posted by
Igor
at
11:00 PM
4
comments
Links to this post
disclaimer

Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.




