Adam Hathcock's Life in Software http://adam.hathcock.us Be Explicit posterous.com Tue, 31 Jan 2012 07:23:00 -0800 Found - Lync for Mac 2011 crashes on 10.7.2 http://adam.hathcock.us/found-lync-for-mac-2011-crashes-on-1072 http://adam.hathcock.us/found-lync-for-mac-2011-crashes-on-1072


The Lync client for Apple’s OSX platform was released recently - much to a sigh of relief from most Apple users. While Communicator 2011 was ‘OK’ it was on OCS 2007 R2 experience, not Lync, and so felt like the poor cousin of your fellow Windows Lync users.


Anyways, I ran into a problem. On all of my Mac machines Lync just wouldn’t run - I’d fire it up, sign in, and bang, it would crash. Nothing in the crash logs indicated much. It’s been infuriating. My google skills on this issue were pretty weak - searching for Lync for OSX/Mac didn’t result with any useful posts as the client was so new.


So, with much gritting of teeth I set about trying to track it down. Built up a new OSX Machine in this order:


Lion 10.7.0 -> Worked

Lion 10.7.1 -> Worked

Lion 10.7.2 -> Borked


RIght, easy you think - it’s 10.7.2 right? Oh if only it were that simple. Essentially what I worked out was that if I logged in to a machine that had syncronised Keychains from another machine running 10.7.2 then bang, Lync wouldn’t run.


So, to be clear, this machine running 10.7.0 on new account - just fine. Log in to account with sync’ed Keychain from another machine running 10.7.2 and it didn’t work.


Got closer then....So, after much digging around in the Keychain, I noticed something a bit odd in certificates - namely an ‘Unknown’ certificate:




After checking a clean 10.7.0/10.7.1 account this was not there - it’s only there on 10.7.2 generated accounts. Guess what - delete it, and your Lync client will work just fine.


How infuriating is that?

Reblogging this.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Mon, 30 Jan 2012 01:26:00 -0800 Maslow's Hierarchy of Needs of Software Development http://adam.hathcock.us/maslows-hierarchy-of-needs-of-software-develo http://adam.hathcock.us/maslows-hierarchy-of-needs-of-software-develo
Media_httpwwwhanselma_wslfj

Just remember the point that you're not cool until you have continuous integration.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Thu, 29 Dec 2011 07:43:00 -0800 The interesting bits on the recent Hash Table Collisions vulnerability http://adam.hathcock.us/the-interesting-bits-on-the-recent-hash-table http://adam.hathcock.us/the-interesting-bits-on-the-recent-hash-table
Check out this website I found at packetstormsecurity.org

It's interesting that normal .NET is not affected but ASP.NET is since it uses a different hash function than the one available in the framework.

Also, it is interesting how many platforms are affected as well.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Thu, 29 Dec 2011 07:26:00 -0800 Another Microsoft mention http://adam.hathcock.us/another-microsoft-mention http://adam.hathcock.us/another-microsoft-mention

Use Compression

You can reduce network bandwidth requirements by employing a compression scheme, such as gzip. Using compression is even more important when using an XML-based format like Atom. You should consider using compression to reduce the network requirements when you use the OData client for Windows Phone, which only supports the Atom XML format.

Implementation
Enable compression at the server, and make sure it is configured for the MIME type of the response from your service (such as application/json or application/atom xml). For more information, see the post on IIS Compression in Windows Azure. To request a compressed response from the web server, set the Accept-Encoding header in the request to the supported compression scheme, such as gzip. Windows Phone does not currently have its own compression library, so you must use a third-party compression library, such as SharpCompress. The OData library for Windows Phone enables you to set the headers to request compression. It also provides an API to access a compressed response stream and return the decompressed response for the library to materialize into objects. For an example of how to use compression with the OData client for Windows Phone, see the article OData Compression with Windows Phone 7.5 (Mango).

The using Windows Phone on Azure page mentions using SharpCompress for the GZipStream. I guess no one else has bothered compiling the GZipStream into Silverlight/Windows Phone 7 :)

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Mon, 05 Dec 2011 02:25:00 -0800 Simple Producer Consumer With Tasks And .NET 4 http://adam.hathcock.us/simple-producer-consumer-with-tasks-and-net-4 http://adam.hathcock.us/simple-producer-consumer-with-tasks-and-net-4
Threading was never so easy since .NET 4 with the TPL has been released. I know I am a bit late but there are so many nice things which might still be new to many of us. The IEnumerable interface has become famous with the introduction of LINQ but many of us have not yet realized that IEnumerable<T> and  T[] or List<T> can be exchanged in many cases but there are cases where it is important to fall back to a pure IEnumerable<T> if you want to support lazy evaluation. .NET 4 has for example taken advantage of the lazy nature of IEnumerable<T> with the introduction of Directory.EnumerateFiles which returns immediately until the first file is found. Previously you had only the option to call Directory.GetFiles which does potentially search for a long time and will only return when all matching files have been found. This can make a big difference if you search recursively in a big file tree or a directory with many files. I had up to 40s delays in some applications which did process a large directory. 40s waiting time until you can process the first file is certainly not something you want. I did solve this issue in .NET 3.5 with DirectorySearcherAsync which did work quite well.

I'm needing to remember this to keep responsive UIs.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Wed, 16 Nov 2011 07:18:00 -0800 SharpCompress 0.7 http://adam.hathcock.us/sharpcompress-07 http://adam.hathcock.us/sharpcompress-07
  • Reworked API to be more consistent. See Supported formats table.
  • Added some more helper methods - e.g. OpenEntryStream (RarArchive/RarReader does not support this)
  • Fixed up tests

Another fine release.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Wed, 09 Nov 2011 01:40:00 -0800 Petzold Book Blog - .NET Streams and Windows 8 IStreams http://adam.hathcock.us/petzold-book-blog-net-streams-and-windows-8-i http://adam.hathcock.us/petzold-book-blog-net-streams-and-windows-8-i

PETZOLD BOOK BLOG

Charles Petzold on writing books, reading books, and exercising the internal UTM

Recent Entries
< PreviousBrowse the Archives
Subscribe to the RSS Feed

.NET Streams and Windows 8 IStreams

November 8, 2011
New York, N.Y.

I am currently engaged in writing an EPUB viewer for Windows 8. EPUB is a popular format for electronic books. The standard is maintained by the International Digital Publishing Forum (IDPF), and that's where you can find the documents that make up the EPUB specification. (I am basing my work on version 2.)

The specification has three parts: the Open Container Format (OCF), which describes how the book is assembled into a ZIP file, the Open Packaging Format (OPF), which describes the two required files in the package, and the Open Publication Structure (OPS) which describes the subset of XHTML used in EPUB documents. Anyone writing an EPUB viewer will also need to examine other specifications as well, in particular, XHTML, HTML 4, and CSS 2.

An EPUB viewer first needs to open a ZIP file, and then extract a small XML file named META‑INF/container.xml. This file references an OPF file (also XML) that contains information about the book — title, author, subject, publisher, etc. — and a "manifest" that lists all the files that contribute to the book (mostly HTML files, CSS files, image files, font files), as well as a "spine" that indicates the reading order of the HTML files. The OPF file also references an NCX file, which is a table of contents for the book. Each chapter in the book has an HREF starting position, which is a particular HTML file with a possible ID appendage.

An EPUB viewer can take one of two strategies in rendering the HTML: It can make use of a web browser, or it can do all the work itself. It wasn't quite clear to me if that first option was possible in Windows 8 at this time, and besides, I thought it would be more fun parsing and rendering the HTML and CSS myself.

Except for the CSS files, all the text files in the EPUB package are XML, including the HTML files, which are actually XHTML. Thus, besides some way to open the ZIP file, the availability of an XmlReader class is very useful for an EPUB viewer.

Fortunately, Windows 8 has both. The System.IO.Compression namespace includes a ZipArchive class, with a constructor that takes a Stream object. ZipArchive has an Entries property that lists all the files in the archive. More useful for accessing EPUBs is GetEntry, which returns a ZipArchiveEntry object for a particular file path within the archive. The ZipArchiveEntry class defines an Open method that returns a Stream object.

The Windows 8 System.Xml namespace includes the familiar XmlReader class with a static Create method that lets you create an XmlReader object based on either a Stream or a TextReader.

So far, so good. But the novice Windows 8 programmer's optimism might start to fade with a little glimpse into the System.IO namespace. The Windows 8 version of this namespace has been stripped of everything involving the file system. It is missing FileSystemInfo, File, FileInfo, Directory, DirectoryInfo, Path, and FileStream. The System.IO namespace still has a Stream class, but the only thing that derives from Stream is MemoryStream.

As I discussed in yesterday's blog entry Asynchronous Processing in Windows 8, a Window 8 program references a disk file with a StorageFile object (defined in the Windows.Storage namespace). StorageFile has methods named OpenAsync and OpenForReadAsync but these methods don't provide Stream objects. They provide IRandomAccessStream and IInputStream objects, respectively.

These Windows 8 stream interfaces are defined in the Windows.Storage.Stream namespace. IRandomAccessStream has a Size property and defines two methods, GetInputStreamAt and GetOutputStreamAt, which return IInputStream and IOutputStream objects, respectively.

The IInputStream interface defines just one method, ReadAsync, which lets you read bytes into an IBuffer object. Windows.Storage.Stream also includes a DataReader class that you create based on an IInputStream object and then read numerous .NET objects from the file as well as arrays of bytes.

In short, it's very clear how you can get from a StorageFile to a DataReader to read the contents of a disk file. However, if you need to use ZipArchive or XmlReader, you need a .NET Stream object, and how you get from a StorageFile to a Stream object is not so clear.

I ran into a related problem when trying to use the Windows 8 version of WriteableBitmap, and I described the solution in my blog entry SpinPaint for Windows 8. The PixelBuffer property of WriteableBitmap is an IBuffer, and I was able to use an extension method named AsStream defined in the System.Runtime.InteropServices.WindowsRuntime to convert the IBuffer into a .NET Stream object. But I still couldn't quite find the right components to get the current task to work.

It slowly dawned on me why all the file-system stuff has been removed from the Windows 8 System.IO namespace: These classes access the file system, so it's likely that they would require more than 50 milliseconds to complete. Hence, they violate the "fast and fluid" rule. The Windows.Storage.* namespaces contain more modern classes for using the file system, and they are asynchronous when necessary.

I mentioned DataReader that you can create from an IInputStream object. But after you create a DataReader, you can't just call ReadBytes on it to read a chunk of the file into a buffer. It won't work. You'll get back zero bytes. Why is that? It's because the file is still on the disk and ReadBytes obviously doesn't read that file from the disk into memory because that might well require more than 50 milliseconds, and the method is named ReadBytes rather than ReadBytesAsync. It's not an asynchronous method, which means it's not hitting the disk.

What you need to do first with the DataReader is call LoadAsync, which has an argument indicating a number of bytes that you want to transfer from the disk into memory. This method is asynchronous, and after it returns you can then call ReadBytes.

So here's a little method I wrote in a static class called Helpers:

public static Task<byte[]> ReadStorageFileAsync(StorageFile storageFile)
{
    return Task.Run<byte[]>(async () =>
    {
        ulong size = storageFile.Size;
        IInputStream inputStream = await storageFile.OpenForReadAsync();
        DataReader dataReader = new DataReader(inputStream);
        await dataReader.LoadAsync((uint)size);
        byte[] buffer = new byte[(int)size];
        dataReader.ReadBytes(buffer);
        return buffer;
    });
}

Notice that this method is asynchronous, and it calls two other asynchronous methods. You can call it like so:

byte[] buffer = await Helpers.ReadStorageFileAsync(storageFile);

From the array of bytes, you can create a .NET MemoryStream and pass that to the ZipArchive constructor or the XmlReader.Create method.

So far, my New Epublic program stops short of accessing the HTML files included in the package. The MainPage is a "library" view. To add EPUBs to the library, you press the "Add EPUB to Library" button on the application bar. This invokes a FileOpenPicker that lets you navigate around My Documents and lists any .EPUB files you might have. (Free EPUBs are available from Project Gutenberg, epubBooks.com, Web Books Publishing, and other sources.) When you select one, New Epublic opens the ZIP file to extract the title, author, and other information, and saves that together with a reference to the filename in persistent application settings. The library is a GridView. This screen shot is half size:

Yes, I know, it's not very pretty yet. Notice my book Programming Windows Phone 7 among these. You can get that free EPUB from a link on the a Microsoft Press blog.

Click any book to go into a reading view, except that so far the reading view only displays a scrollable list of chapters with (temporary) HTML references:

This view requires that the original EPUB file be accessed again, this time with a call to the static (and asynchronous) StorageFile.GetFileFromPathAsync. I discovered that while my program was allowed to load a file from the FileOpenPicker, it couldn't load that same file later with StorageFile.GetFileFromPathAsync. The solution was to change the program's capabilities stored in the Package.appxmanifest. I had to check the Document Library Access button, at which point I had to define the type of files I wanted with File Type Associations.

Doing this made my program associated with EPUB files, and the program seemed to be activated by selecting an EPUB from Windows Explorer or Internet Explorer — as long as the program was already running. Obviously I'll be exploring this feature in the future.

Meanwhile, if you're interested in looking at messy source code, here's the New Epublic project as it stands today.

Next up on the agenda: Start parsing and rendering those HTML files.

Comments:

Looking forward to this series...

Does the specification declare a subset of (X)HTML - or does anything go? Seems to be a huge undertaking to render your own HTML.

I realize that writing an HTML renderer could be fun, but wouldn't using the WebView be a better bet?

http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.webview

Joe, Tue, 8 Nov 2011 15:05:48 -0500

There's an XHTML Modularization spec that defines a bunch of modular subsets of HTML, each with its own well-defined set of tags and attributes. The EPUB spec lists the modules allowed in the EPUB. Tables and lists are supported, but not much else. No scripting, for example.

If I were just interested in scrolling through the book, something like WebView would be fine. But I want pagination, and for that I'm pretty sure I'd need a more versatile type of web-browser control, and some JavaScript. Also, since I want to re-use the code on Windows Phone, I think a platform-independent HTML renderer is the way to go. (Plus, there's the fun factor.) — Charles

Submit comment:

NOTE: Comments are examined personally and generally posted within 12 hours.

Recent Entries
< PreviousBrowse the Archives
Subscribe to the RSS Feed

(c) Copyright Charles Petzold
www.charlespetzold.com

Tagging for future thoughts and work.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Wed, 02 Nov 2011 02:51:00 -0700 Opportunistic Refactoring http://adam.hathcock.us/opportunistic-refactoring http://adam.hathcock.us/opportunistic-refactoring
My sense is that most teams don't do enough refactoring, so it's important to pay attention to anything that is discouraging people from doing it.

Agreed

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Tue, 25 Oct 2011 03:06:00 -0700 Windows 8 Development Platform Clarified http://adam.hathcock.us/windows-8-development-platform-clarified http://adam.hathcock.us/windows-8-development-platform-clarified
Media_httpwwwlhotkane_sfqrs

Stuff all Metro interested people need to understand. It's easy to see why it's confusing.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Fri, 07 Oct 2011 03:54:00 -0700 SharpCompress mentioned by WCF Data Services team. http://adam.hathcock.us/sharpcompress-mentioned-by-wcf-data-services http://adam.hathcock.us/sharpcompress-mentioned-by-wcf-data-services

They're just using one specific part since GZip isn't implemented in Windows Phone. It's still cool and I like just knowing people are using my stuff.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Thu, 29 Sep 2011 00:06:00 -0700 CQRS is too complicated http://adam.hathcock.us/cqrs-is-too-complicated http://adam.hathcock.us/cqrs-is-too-complicated
Media_httpcodeofrobco_ujtey

Great summary post. I like the lol at the mapped domain objects.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Thu, 22 Sep 2011 07:47:00 -0700 Look what I did: SharpCompress 0.6 Release http://adam.hathcock.us/look-what-i-did-sharpcompress-06-release http://adam.hathcock.us/look-what-i-did-sharpcompress-06-release

Added 7Zip support and RAR SOLID support, plus lots of fixes and little additions. Check out the release page

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Thu, 22 Sep 2011 01:02:00 -0700 “foreach” vs “ForEach” extension http://adam.hathcock.us/foreach-vs-foreach-extension http://adam.hathcock.us/foreach-vs-foreach-extension
“foreach” vs “ForEach” blogs.msdn.com

This is a blog post from 2009 that I should have read. I keep making a ForEach extension method. Eric is right though. Side effects should be explicit.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Wed, 14 Sep 2011 08:10:00 -0700 Testing Metro with VS 11 and C# http://adam.hathcock.us/testing-metro-with-vs-11-and-c http://adam.hathcock.us/testing-metro-with-vs-11-and-c

So I loaded up the Dev preview of VS11 and started with a default grid project.  I was just curious to see what stuff is being loaded.  .NET, WinRT, whatever...

The first point of confusion was that there were no References on the VS project.  Looking at the csproj I see this:

<ItemGroup>

<!-- A reference to the entire .Net Framework and Windows SDK are automatically included -->

</ItemGroup>

I can see Visual Studio loading up .NET 4 assemblies, a new Interop with Windows Runtime and some new things: winmd files.

I'm guessing the WinMetadata stuff under Windows\system32 is the new WinRT?  Not 32 bit?

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Wed, 31 Aug 2011 01:50:00 -0700 Google thinks I am in a different country. - Google Chrome Help http://adam.hathcock.us/google-thinks-i-am-in-a-different-country-goo http://adam.hathcock.us/google-thinks-i-am-in-a-different-country-goo

Since my work ISP is in Switzerland, I need to change my search country so everything isn't in German.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Wed, 22 Jun 2011 08:09:00 -0700 SharpCompress 0.4 http://adam.hathcock.us/sharpcompress-04 http://adam.hathcock.us/sharpcompress-04
Check out this website I found at sharpcompress.codeplex.com

I'm actually using this in-house at work. Helps stamp out bugs and usage.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Thu, 26 May 2011 10:21:00 -0700 Silverlight, Out of Browser and GZip http://adam.hathcock.us/silverlight-out-of-browser-and-gzip http://adam.hathcock.us/silverlight-out-of-browser-and-gzip

Much to my dismay, Silverlight 4 going out of browser with GZip compression just isn't supported.  With Silverlight in the browser, the browser will likely add the Accept Encoding header with gzip (and probably deflate) for you.  Then the browser will also decode the optionally gzipped data automagically.

I guess that's why there is no GZipStream in Silverlight at all :)

Fortunately, I can use my own project SharpCompress to help me out.

Using the WCF WebAPI, I compress everything on the server and inspect the content on the Silverlight client then just ungzip.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Thu, 12 May 2011 03:29:00 -0700 WCF WebAPI Preview 4 pains http://adam.hathcock.us/wcf-webapi-preview-4-pains http://adam.hathcock.us/wcf-webapi-preview-4-pains

I've switched over to the WCF WebAPI from just vanilla WCF with some fairly bad pains.

1) You're not supposed to used WCF Contracts with .NET clients.

According to this stackoverflow post WebAPI wants you to use a generic HttpClient instead of a contract.  This, frankly, sucks.  I want .NET clients to use the contract and non-.NET clients to use http straight up.  The only issue has been the trailing slash that the post describes.

I've had to hack a IClientMessageFormatter in Silverlight to do JSON properly already with contracts so I just added a bit of code to remove trailing slashes.

2) Caching is on by default

I hated HTTP caching results by default.  Maybe most data isn't supposed to be very volatile but I can't really see that being the case.  I've had to add in a DelegatingChannel to make each response minimize the caching header on each HTTP response.

3) Objects were being serialized to XML by default.

I had to remove all MediaTypeFormatters besides JSON to get this right.

I'm sure there are better ways to do what I've wanted or the code is just incomplete.  I just wish there was more documentation (or stuff that was easily findable.  I've done endless googlings) giving high-level guidance.  The best stuff so far is on http://weblogs.asp.net/cibrax/default.aspx

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Tue, 10 May 2011 05:02:00 -0700 NuGet gallery - NUnrar http://adam.hathcock.us/nuget-gallery-nunrar http://adam.hathcock.us/nuget-gallery-nunrar
Recommended Version

NUnrar - Unrar in pure C# - 1.0.0

NUnrar for extracting rar files in .NET with forward-only reading and file random access APIs.

PM> Install-Package nunrar

Packages details

Rating:
  • Ratings: 0
  • Average: 0
Tags:
Total Downloads: 2
Last updated: 5/10/2011
Package ID: nunrar

Version history

Version Downloads Last updated Rating Actions
NUnrar - Unrar in pure C# 1.0.0 1 10 May 2011
- - - - -
Show More

Reviews

Finally did it.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock
Tue, 10 May 2011 04:49:00 -0700 NUnrar 1.0 http://adam.hathcock.us/nunrar-10 http://adam.hathcock.us/nunrar-10
This is the same as 0.9 plus some bug fixes.
Most of my attention is focused on SharpCompress.

Finally got around to packaging this. Now to attempt NuGet

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/283001/4420_82894097946_523447946_1935553_6126313_n.jpg http://posterous.com/users/36uaCH4p1i4p Adam Hathcock adamhathcock Adam Hathcock