Friday, 29 October 2010

Calculating magnet link using Ruby

It took me a couple of days to get this right even though it's really simple. The problem was that I didn't notice Some clients require Base32 of info_hash in magnet link specs. I'm hoping this will save at least a couple of hours for someone.

content = BEncode.load(file)
info_bencoded = content['info'].bencode
info_hash = Digest::SHA1.digest(info_bencoded)
info_hash32 = Base32.encode(info_hash)
info_hash32_escaped = URI.encode(info_hash32)
puts "magnet:?xt=urn:btih:#{info_hash32_escaped}"


This code requires bencode and base32 gems.

Tuesday, 6 January 2009

Buildix 2.1 on Ubuntu 8.10 (Interpid Ibex)

On Ubuntu 8.10 Buildix 2.1 install fails with
subprocess post-installation script returned error exit status 10
But it can be hacked to work. The following steps need to be made:

- Add buildix to you app sources just like its shown here
- Run apt-get install buildix and wait for install to fail
- Open /var/lib/dpkg/info/buildix.postinst in our favorite editor and comment out there lines
# Get the port that Mingle is using
. /usr/share/debconf/confmodule
db_get mingle/port
MINGLE_PORT=${RET}
db_stop

ed -s /etc/apache2/sites-available/buildix << END
,s/localhost\:\(.*\)\/mingle/localhost\:${MINGLE_PORT}\/mingle/g
,s/}:[0-9]\+/}:${MINGLE_PORT}/g
w
END

- Change a2enmod mod_python to a2enmod python
- Download trac extract archive then copy folder contrib to /usr/share/doc/trac/ and folder cgi-bin to /usr/share/trac/
in /usr/share/doc/trac/contrib run gzip trac-pre-commit-hook
- Run aptitude install buildix again this time it should finish properly.
- Navigate your browser to http://localhost/
- Login with username:buildix password:buildix, open config
- Uncheck enabled checkbox under Mingle options, click save.

Buildix 2.1 doesn't play well with Track 0.11 so you need to modify /usr/share/buildix/lib/buildix/modules/trac.py Find line
_execCmd("trac-admin " + trac + " initenv " + name + " sqlite:db/trac.db svn " + repo + " /usr/share/trac/templates",
"Error creating Trac Project: ")
and change it to
_execCmd("trac-admin " + trac + " initenv " + name + " sqlite:db/trac.db svn " + repo,
"Error creating Trac Project: ")

and comment out this line
_execCmd("trac-admin " + trac + " permission add anonymous CRUISECONTROL_VIEW", "Error enabling Trac-CC")

restart apache
/etc/init.d/apache2 restart


Buildix should work properly. Have fun :)

Friday, 12 December 2008

Package Load Failure Microsoft.VisualStudio.Xaml

Few days ago all of the sudden VisualSudio 2008 popped out this error message "Package Load Failure Microsoft.VisualStudio.Xaml blah blah yes/no" I didn't pay much attention to it (because it was yes/no message box and in that case i always click yes :)) After that Visual Studio didn't load 2 of 5 C# projects in my solution complaining that project type is not supported by current installation. Of course i was baffled because I din't connect error message to this problem right away. Apparently by clicking Yes I've disabled Visual Studio package (because it failed to load obviously). OK, no problem devenv /reset will fix this right? Wrong! Visual Studio tries to load Microsoft.VisualStudio.Xaml but fails for no apparent reason. I've googled up bunch of "fixes" for this problem but none of devenv switches or even Visual Studio Repair works. So this is what worked for me:

Uninstall Visual Studio
Install Visual Studio
Apply Visual Studio SP1

I hope this helps.

Cheers!

Tuesday, 4 November 2008

Did you hear?

Visual Studio 2010 CTP is out!!! Can't wait to check it out!

Friday, 17 October 2008

My fist Open Source Project - OfficePackage

Today I've started my first Open Source project!!! The project is called OfficePackage and it can be found here http://www.codeplex.com/OfficePackage It's my project exactly, it's based on ExcelPackage. OfficePackage goal is to create a library for creating/editing OOXML (aka Office 2007) documents from .NET. At his point OfficePackage has limited implementation of creating/editing Excel 2007 documents. Anyone willing to contribute please drop me an email. Cheers!

Thursday, 2 October 2008

Another LINQ bug: DataContext.GetCommand throws InvalidCastException

Today I've found yet another LINQ bug :( Couldn't find solution on google so I've submitted bug to Microsoft. Bug report can be found here. Waiting for reply from MS...

Tuesday, 19 August 2008

Frustrating .NET Framework SP1 Bootstrapper Issue

If you'll try to bootstrap your project with .NET Framework 3.5 SP1 you'll get the following error:

error MSB3152: The install location for prerequisites has not been set to 'component vendor's web site' and the file 'DotNetFX35SP1\dotNetFX20 aspnet.msp ' in item '.NET Framework 3.5 SP1' can not be located on disk. See Help for more information.


This because MS guys forgot to make correct bootstrapper package. Solution is posted here

And the solution itself:

Update the Package Data

1. Open the [Program Files]\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\DotNetFx35SP1 folder or %ProgramFiles(x86)%\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\DotNetFx35SP1 on x64 operating systems
2. Edit the Product.xml file in Notepad.
3. Paste the following into the < PackageFiles > element:
< PackageFile Name="TOOLS\clwireg.exe" />
< PackageFile Name="TOOLS\clwireg_x64.exe" />
< PackageFile Name="TOOLS\clwireg_ia64.exe" />


Download and Extract the Core Installation Files

1. Navigate to the following URL: http://go.microsoft.com/fwlink?LinkID=118080
2. Download the dotNetFx35.exe file to your local disk.
3. Open a Command Prompt window and change to the directory to which you downloaded dotNetFx35.exe.
4. At the command prompt, type:
dotNetFx35.exe /x:.
This will extract the Framework files to a folder named “WCU” in the current directory.
5. Copy the contents of the WCU\dotNetFramework folder and paste them in the %Program Files%\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\DotNetFx35SP1 folder (%ProgramFiles(x86)%\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\DotNetFx35SP1 on x64 operating systems). Note: Do not copy the WCU\dotNetFramework folder itself. There should be 5 folders under the WCU folder, and each of these should now appear in the DotNetFx35SP1 folder. The folder structure should resemble the following:
o DotNetFx35SP1 (folder)
* dotNetFX20 (folder
* dotNetFX30 (folder)
* dotNetFX35 (folder)
* dotNetMSP (folder)
* TOOLS folder)
* en (or some other localized folder)
* dotNetFx35setup.exe (file)

You may now delete the files and folders you downloaded and extracted in steps 2 and 4.