Skip to main content

Posts

Showing posts from 2008

Did you like Npgsql? Send us a postcard!

Hi all! Some time ago, a friend of mine, Horita, told me about a project whose owner asked people who liked his software to send him a postcard. I liked the idea and yesterday, while cooking the 2.0.2 release with Josh Cooley, I told him about this idea and he also liked it. So, if you like Npgsql you can send us a postcard. Here are the addresses: Josh Cooley 102 Boston Harbour Way Madison, AL 35758 USA Francisco Figueiredo Jr. QMSW 05 Lote 02 Bloco C Apto 116 Sudoeste - Brasilia - DF - Brazil Zip Code: 70680-500 Thank you very much!

Npgsql 2.0.2 released!

Hi all! Npgsql Development Team is proud to announce we just released Npgsql 2.0.2! This release brings the usual bug fixes and minor improvements from previous release. Here are the release notes: Fixes: Fix the fix for datetime.MinValue and MaxValue. Only MinValue was fixed. Now both Min and Max are fixed. Thanks Andrus Moor for heads up.(fxjr) Fixed problem with parameter sizes and prepared statements.(fxjr) [#1010488] NgsqlParameter of type containing DBNull values throws NullReferenceException [#1010521] NpgsqlInterval should be quoted. Datetime with negative values (thanks to Mathieu Fenniak ) and singular values such as "1 day" [#1010495] Bad performance calling a (empty) function very often. New additions: Added documentation about how to use Npgsql with Provider Factory. Thanks Alaric for heads up. Ensure refcursors work with System.Transactions. (Josh) On this release, Josh Cooley fixed some bugs on Entity Framework support and System.Transactions. For mo...

NpgsqlCommand optimizations and usage tip

Hi, all! Some days ago, I fixed a slow performance problem with Npgsql when calling functions . The problem was that Npgsql was doing a lot of expensive checks (in fact, 3) to verify parameter information and return type. The solution was to cache those checks so that new calls to the same function don't need to pass through the same checks again. In order to not have problems with outdated caches and etc and after talking to Josh on gmail, I decided to make the cache local and it would be invalidated as soon as the command text is changed. This semantics lead me to write this blog to share the idea that you can get a big performance improvement if you "cache" your NpgsqlCommands which will be used with function calls. This way, instead of creating and releasing the command object after its usage, you can create all your NpgsqlCommand objects associated to function calls and reuse them as needed. This way you pay for the costly checks only once. I hope this tip can help ...

Npgsql2 2.0.1 released!

Hi, all! Npgsql Development Team has just released Npgsql2 2.0.1. This is a minor bug fix release with highlights to entity framework fixes. Check out release notes for more information. You can grab it from the usual location: http://downloads.npgsql.org Enjoy.

Npgsql2 Final Released!!

Hi, all! The Npgsql Development Team is proud to announce the Npgsql2 RTM! Npgsql is a .Net Data provider written 100% in C# which allows .net programs to talk to postgresql backends. Npgsql is licensed under BSD. More info can be obtained from http://www.npgsql.org After almost two years of development since Npgsql 1.0, Npgsql 2 brings new features and support for newer versions of .Net. Although externally Npgsql2 doesn't seem very different of Npgsql1 regarding features, internally Npgsql2 had a lot of improvements which represents a much more stable product, more bugs fixed and many implemented methods. It is strongly advised that current users update from Npgsql1 to Npgsql2. Main features are: Support for .Net 2.0 and 3.5 Josh Cooley did a great job and added support for EntityFramework. Npgsql2 now doesn't read all table contents before returning control to user code. This makes Npgsql much more memory efficient when dealing with large tables. Thanks Jon Hanna for this. C...

Npgsql2 RC2 Released!!

Hi all! It's a great pleasure to say that Npgsql2 RC2 is released. From release notes: This version contains some fixes and updates for latest entity framework release. We are already in feature freeze and not so many things were added this time. Highlights include: Npgsql2 rc2 now supports .NET 3.5 sp1 with Entity Framework support. We support model generation by the command line edmgen.exe tool. This requires the Npgsql be registered in the provider section of machine.config. A lot of fixes were done on connection pool handling. Also, when running under Mono, Npgsql wasn't using connection pool. Now it is. We added some code to better handle threadabort when executing queries with Npgsql. It isn't perfect but is much better than with previous versions. Grab it from http://downloads.npgsql.org Thank you everybody who helped with bug reports, comments and patches!

Committed fix to make Npgsql use Pool when running under Mono

Yes, you read it right, Npgsql wasn't using connection pool when running under Mono!! The problem seemed to be that Npgsql was using one key to get a connection to pool and another one to return it back. The issue is that although it is wrong, those two values were supposed to be the same. You can see here and here bug reports about it. Well, the fix is already on cvs, so if you were using Npgsql on Mono, you should definitely give it a try so you can see if your code works ok. Sorry for this problem. Later I will bring a full analysis of what can be the problem.

Stream seek error

Hi all! Since Npgsql RC1, we started to receive some error reports about problems when closing connections. The typical stack trace looked like this: System.NotSupportedException : This stream does not support seek operations. at System.Net.Sockets.NetworkStream.Seek(Int64 offset, SeekOrigin origin) at System.IO.BufferedStream.FlushRead() at System.IO.BufferedStream.WriteByte(Byte value) − at Npgsql.NpgsqlQuery.WriteToStream(Stream outputStream) in C:\Npgsql\Npgsql2\src\Npgsql\NpgsqlQuery.cs:line 62 − at Npgsql.NpgsqlReadyState.QueryEnum(NpgsqlConnector context, NpgsqlCommand command) in C:\Npgsql\Npgsql2\src\Npgsql\NpgsqlReadyState.cs:line 64 − at Npgsql.NpgsqlConnector.ReleasePlansPortals() in C:\Npgsql\Npgsql2\src\Npgsql\NpgsqlConnector.cs:line 373 − at Npgsql.NpgsqlConnectorPool.UngetPooledConnector(NpgsqlConnection Connection, NpgsqlConnector Connector) in C:\Npgsql\Npgsql2\src\Npgsql\NpgsqlConnectorPool.cs:line 541 − at Npgsql.NpgsqlConnectorPool.ReleasePooledConnector(NpgsqlConn...

Server donation received!

Hi all! Today, Npgsql received a server donation from a person who prefers to remain anonymous. With it, we will be able to provide nightly builds as well as a continuous integration build service. We are thinking about using CruiseControl.Net Thank you very much for the donation!

Pé quebrado - Broken foot

Olá, pessoal! Ontem eu quebrei o meu pé descendo as escadas!! Tristeza total. :( Vou ficar 30 dias com gesso e esperar pelo melhor. A parte boa disso é que eu vou ter mais tempo para o Npgsql e para ver TV :) ------------- Hi, all! Yesterday I broke my foot while I was going down the stairs!! Absolute sadness :( I'm going to stay 30 days in plaster e hope for the best. The good part of all this is that I'll have more time for Npgsql and to watch TV :)

Npgsql2 RC1 Released!

Hi, all! It's a great pleasure to say Npgsql Development Team made a new release of Npgsql2. We are closer to the final release! On the highlights, thanks to Josh Cooley, we have support for newer version of EntityFramework 3.5sp1beta. Another highlight is that we fixed the cast problem some people had when using Npgsql2 beta4. Now, Npgsql will only use casts if the user explicitly specify a DbType or NpgsqlDbType value. Also, thanks Andreas Schönebeck, who provided us with testcases and feedback, we have a much better threadabortexception handling. Those exceptions were making Npgsql be instable and sometimes unusable. Please, if you had any problem, give RC1 a try and help us to improve Npgsql for final release. Other changes can be seen in our changelog . Donwload Npgsql2RC1 from our usual place Thank you to all who helped us with this release with feedback, bug fixes, bug reports and comments.

Ohloh

Yesterday Daniel Nauck showed me Ohloh  site.  There was even  Npgsql project registered there! I never heard about this site until yesterday. And it is very nice! Thank you, Ricardo Stuven for creating the project. At least this is the person who appears as the project creator on the history page. From the project page you can see a timeline of commits, code analysis, miniblogs like twitter about development and many other things. Cool! Thank you very much for the tip, Daniel. I think this site will be a great addition to provide more information about the project to our users and other developers.

Cleaning up the patches list

Wow! I think our patch list is too big and I need to do something about it! :) Sorry all who sent your patches and didn't have them applied yet. I'm starting to run through the list and reviewing/discussing/applying them. If you have any patch you think needs urgent attention, please let me know. Thanks in advance.

And today I knew Shiira...

And I loved it! I know I said about using firefox 3 and liking it, but after some days I was not confortable with it. I think I could get more. After some research, I found about Shiira on google search and decided to give it a try. I loved its speed. Also it needs very few resources. At least processor power. I'm still investigating memory usage which I thought it was a little too much for some pages I opened.  I also liked it because if uses WebKit rendering engine which I think is faster than gecko. Also, it is opensource, so I'm very happy and for while doesn't need to use the proprietary Safari. For while I'm enjoying it very much. Shiira homepage: http://shiira.jp/en.php

Update: Two complains: Screen Responsiveness and SuspendToRam/Disk

Hi all! You may have seen I had two main complains about gnu/linux desktop. Today I updated my ubuntu with some long standing pending updates. I could see there was updates for firefox 3.0 and ati binary drivers. Well, I can see that now firefox responsiveness is much, much better. It is not so good as I'd like it to be, but it is in the right direction for sure!. I also see that desktop has a better screen responsiveness than before. That's great! I hope things get better and better as I want to see gnu/desktop as the best user experience possible. Thanks all who are working on those issues and fixing them.

Getting control back...

Hi all! After some testing with Firefox on OSX I confess I was a little bit disappointed because with only a blank page firefox was taking up 10%-13% of cpu time! Today celebrating the firefox download day and of course to test the new version I give it a try again, thinking it could be something with the beta version. No luck :( Firefox was still getting something like 10%-13% of cpu. It was then I tried to google about it and I found something about problems with add-ons. And then I remember I installed del.icio.us add-on. I disabled it and immediately firefox started to use 0.4%-0.1% of cpu time! :) Sweet!! Now I can use firefox as my primary browser again. Thank you guys for such a great product. Version 3 rocks even more! Another change I made was to give songbird another try. After playing a little bit, I found out there is the 0.6 version available. Wow! What a difference... As they said in songbird release notes, browing music library is much, much faster! Great!! Also, after i...

Two complains: Screen Responsiveness and SuspendToRam/Disk

Hi all! Firstly, I'd like to say that I love Gnu/Linux and please don't take me wrong. What I'm saying here is based on what I see after using Gnu/Linux for the last 4 years. About the suspend to ram/disk I understand because it may be very difficult to have it working on all type of hardware. But as it was already pointed out on Ubuntu Brainstorm and I think they are already working on it. But now, at least to me, the biggest complain I have is the performance of screen responsiveness of gnu/linux desktop. I don't know if this is the correct term, but what I mean is the speed the text is draw in the screen, the speed the windows are rendered and so on. In summary, the perception I have of how fast the screen is drawing its contents. My experience is based on my old notebook. A Pentium4m with an intel 855gm with shared video memory. I'm using Ubuntu 8.04 with Gnome. When I open firefox on my gmail page, for example, the scroll is not so good. The scroll is too slow...

One week of MacBook later....

Well, Macbook continues to be awesome, but I already have some complains with the software... :( No ABNT2 keyboard support! Just after one week of research and I still had to make a modification in the keyboard layout, I finally could find one which worked on my ABNT2 keyboard. Thanks to this post  I could get a 99% working keyboard layout. I just had to swap back the \ | and ' " mappings. I have to admit I'm really upset with Apple for not providing a keyboard mapping which works on Brazilian Portuguese ABNT2 keyboards. Another difficult I faced was to use the external monitor only. On gnu/linux I just used the xrandr command xrandr --output LCD off and it was done. Thanks to this post  I could get it working by connect my external LCD monitor, close the lid, wait for macbook to sleep and so wake it up with my external keyboard. At least it is working ok now. Another thing which is making me nuts is that the spaces feature always wants to bring to front the finder window ...

Thank you for so many OSX tips!!

Wow! I was very surprised by the big number of feedback I got when asking tips for my new MacBook! I'd like to say you a big THANK YOU! You are great. I already installed iStat Pro. I liked it very much. I also installed Adium, NoeOffice, Transmission, Songbird and I'm still downloading and installing other suggestions. One drawback I saw was that after installing some applications, my solid rock brand new MacBook started to hang when shutting down! :O I uninstalled iStat Pro as I think it is the only low level thing which could give me this type of problem. Until now, I already shut down my laptop two times and the problem seems to be solved. I installed the 4.6 version on my OSX 10.5.3. I will try another version or a previous one later. I don't now but I didn't like the SongBird. I don't know why yet. I liked very much the Rhythmbox and I'm sad I can't get it on my Mac :(. For while I think I will keep using iTunes. But I'd rather use some other open...

I finally got my MacBook!! Tips???

Hi all!! I finally got a MacBook 13.3"!! This baby is awesome!! I'm enjoying it very much. :) I still didn't install Ubuntu on it because I'd like to play a little bit with MacOS. My first impressions of MacOS is that it is a very nice OS. I'd like the Aqua UI was opensource so I could have a complete OpenSource OS stack. At least Darwin is OpenSource. Now I need to familiarize with MacOS and its utilities. So, if you have tips, links, suggestions for nice opensource applications I can install on my MacOS, please let me know. I already have Mono installed. Thanks mono guys who provide the MacOS install package. It was pretty easy to install. I'd like to know if I can use Banshee on my Mac. I know iTunes is very good, but I'd like to use an OpenSource player. Do you know of anyone for MacOS? I couldn't find anyone. I also installed MPlayer which worked perfectly! The MacOS sound is awesome!! I also would like to know of a good IRC client, a good torrent...

Back to Brazil!!!

Hi, all! I'm back to Brazil! And I have to say that I loved Canada!! I'm seriously thinking about applying for an immigration process. Let's see what I can get... I could see a lot of things and I liked very much Canadian people. They are very nice! For me it was a great pleasure to be in such a place! I hope to go back there some day. I visited Niagara Falls, went for the first time to a casino. In Brazil they are not allowed. I met a lot of people from many places in the world: Korea, Japan, Belgium, England, Australia, USA and so on. I enjoyed very much to stay in a hostel. I never stayed in one before and I liked very much the experience. That's it! I will post some pictures later and more impressions too.

Life after PGCon2008...

PGCon 2008 was awesome!!! I could meet a lot of people from postgresql community and take a lot of pictures!! I even got a picture with Tom Lane! Thank you very much, Selena! :) I finally could meet Dave Page in person. Dave has helped Npgsql project in the beginning, 2002 and we never have met before! I also could meet Magnus Hagander in person. He is a very nice person. I saw some of his talks and was very good! I also could meet Hiroshi Saito and Josh Cooley. Hiroshi Saito is a big evangelist of Npgsql in Japan and has done a great work to talk to others about Npgsql there. Josh Cooley has been working on Npgsql adding nice features, like System.Transactions and entity framework support, and fixing bugs. I enjoyed very much to meet them and doing the presentation. Our presentation was very nice considering this was my first time doing a presentation in english. Josh said my english was good, so I was ok. Thank you Josh! Another person I enjoyed very much to talk to was Selena. She i...

And now going to Toronto to see Niagara Falls

Hi all!! Tomorrow I'm leaving Ottawa heading to Toronto to see Niagara Falls. I'll be taking a bus to go there and I hope to be able to get some guided tour to Falls. If not, I will go by myself anyway :) I will be at Backpackers on Dundas hostel and I plan to stay there until next Tuesday when I will go back to Ottawa for PG Con. So, if you are in Toronto and would like to talk about Npgsql, Postgresql or Mono, or just want to talk, please, drop me a mail. P.S.: Kangaroo (Mono irc, sorry if this isn't exactly your nickname) please, drop me a mail so we can have some beers in Toronto! See you.

Going to Canada...

Hi, all!! It's a great pleasure to say I'm going to attend PGCon2008 this year!! :) I'm going to Canada tomorrow (May, 11) and hope to enjoy Ottawa and Canada before conference starts. If you live in Ottawa and would like to talk about Npgsql, Mono, .Net or anything else, please drop me a mail. About Npgsql, I posted on npgsql-devel list about an Npgsql2 beta4 release this week . But unfortunately it won't be possible. Josh is fixing some last bugs and will be doing a release next week. Sorry for any problems this announce may have caused. So, that's it! Stay tuned!

VirtualBox is amazing!!! Thank you VirtualBox developers!!

Man... I used to cry every time I thought about the beauty VMWare is about virtualization. But now, I have another one to cry for: VirtualBox. Why? First of all it is OpenSource. Only this is already a motivation by itself. Second: It flies!!! I know VMware is very fast, but VirtualBox is a piece of magic. I don't know how to describe it. It is very fast, runs very smoothly and consumes very little resources!! I think there is no need for saying that I'm very excited with VirtualBox, is there? :) Third: Starting with 1.6.0 It has support for Seamless integration for GNU/Linux and Solaris guests!! Man!! Seamless integration is the next step in the way of virtualization... It is really nice!! I'm doing some tests here and it works very well! I'd like to thank you VirtualBox developers. And I also would like to say that Sun did a big step in the right direction buying VirtualBox. I hope many more features come and that 1.6 version is just the first of many excellent releas...

Looking for accommodation tips at Ottawa, Canada

Hi all! I'm right now looking for accommodations in Ottawa, Canada. I'm going to do a presentation about Npgsql at PGCon2008 and as I never went to Ottawa I don't know of any good place to stay. If you have any tips about cheap hotels, hostels or anything , please, let me know. Thanks in advance. Update : I'd really really thank you all of those who gave me tips about places in Ottawa. I already did my reservation and hope to see you there at PGCon2008!!

Back from FISL 9.0!

Hi all! FISL 9.0 was very, very nice!! I enjoyed very much to be able to talk to so many people about FLOSS! I had the great pleasure to meet Josh Berkus and David Fetter! I took a picture with Josh I will post here later. Josh is a very nice person! I enjoyed very much to be able to talk to him. Unfortunately I talked almost nothing with David Fetter. I hope when I'm at PGCon I can talk to him a little bit more :) I also met for the first time Everaldo Canuto on this presentation about Mono. It was very funny. Suddenly on his presentation, Everaldo stops and asks: "Is Francisco here?" After I put my hand up, he asks again: "Are you the Francisco I'm thinking you are?" and everybody started to laugh... :) Anyway, Everaldo is a very funny person. He has a very particular way of doing presentations... I also found my old friend Alessandro Binhara! I didn't know he would be there! It was a very nice surprise. We talked a little bit but unfortunately he sai...

FISL 9.0

Hi, all!! I'm right now at FISL ( Fórum Internacional de Software Livre ) 9.0 at Porto Alegre - RS - Brazil! FISL is an annual conference about FOSS where we have a very nice opportunity to talk to many people about FOSS. I will post more info about FISL later in another post.

I'm now a twitter

As you now can see on my sidebar, I'm now a twitter So, now you can see, or better, read to know what I'm doing. This is a youtube video a friend of mine Osny ( who is also my first twitter contact ) sent me about twitter: http://www.youtube.com/watch?v=ddO9idmax0o Good twitting for you!

Npgsql2 Beta3 released!!

Hi all!! Npgsql2 Beta3 has been released! You can see full release notes here . You can download files from here . I'd like to thank everybody involved. This wouldn't be possible without your help. I will post with more details about the new features and updates we had with this release. Stay tuned!!

Bye Gentoo... Welcome Ubuntu

Hi all! After long time using Gentoo distribution (since June 2004) , I decided to try another distribution. I think one of the reasons I'm leaving Gentoo may be because I'm getting older and I'm not getting fun anymore of tweaking it. ;) Just kidding. Gentoo was and still is my best Gnu/Linux experience I had until now. I love the freedom you have to choose what you want and not want compiled and all the tweaks you can do. I learned very much about Gnu/Linux with it. Because of my aging, I think I'm getting lazier too :) Now I want my system to have everything automagically configured to me. I want to concentrate on other things besides the OS and desktop itself. So, after some time trying to find another distribution, I decided to try Ubuntu Gutsy (7.10) Wow!! It is working perfectly! Just the way I wanted and it is super fast! Awesome! I have to admit I was a little skeptical about overall performance ( I think this is normal as I was coming from Gentoo) and also bec...

Npgsql at PGCON2008! Here we go!

Hi, all! It's a great pleasure to say that "Introducing Npgsql" will be presented at PGCON2008 by me, Josh Cooley and Hiroshi Saito! To me is a great pleasure to be able to meet such great guys! It will be very nice to meet Dave Page too! He helped me very much since beginning of the project. Also, I will have the opportunity to meet other great people from Postgresql community! I'm very excited! I already have my passport and now I'm waiting to get my visa to enter in Canada! This is my first international trip and I think I'm starting very well! I hope to be able to attend international open source meetings more often. This is my first time in Canada and I'm planning to stay from May 12 through May 30. If you have any tips about accommodation, places to eat, sleep and go in Canada (day and night :) ), please, let me know! Thanks everybody and thanks God for this opportunity. See you in Canada at PGCON2008!!

Array support commited in Npgsql2 cvs

Hi, all! As previously stated , array support was in the works and now it is commited to cvs! So, from now on you can start persisting array data to postgresql. Thanks very much to Jon Hanna for getting this work done. Now, you can persist arrays and, as Jon said in previous post's comments: "Anything that implements IEnumerable<T> where T is a type already supported by npgsql will be treated the same as T[], anything that implements IEnumerable<U&gt where U implements IEnumerable<T&gt will be treated the same as T[,] (but cause an error if it's a "jagged" array, as postgres doesn't support them) and so on. In order to use it, just use an array or IEnumerable<T&gt as parameter value." So, let the game begin! Also, thanks to Michael Parshin for his help fixing bugs on array type support.

Array support in the works!

Hi all, Jon Hanna is working to add Array support to Npgsql. He already sent a patch which I applied to my working copy and it is working very well! Now it is possible to write code like that: NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;User id=npgsql_tests;password=npgsql_tests;"); conn.Open(); NpgsqlCommand d = new NpgsqlCommand(); Int32[] a = new Int32[2]; a[0] = 4; a[1] = 2; NpgsqlCommand command = new NpgsqlCommand("select :arrayParam", conn); command.Parameters.Add(new NpgsqlParameter("arrayParam", a)); Console.WriteLine(command.ExecuteScalar()); conn.Close(); And get this logged on server: LOG: statement: select array['4','2']::int4[] Also, Npgsql is able to receive an array from server as the example above shows. Npgsql will print to console: System.Int32[] Which shows it received an int32 array as expected! Excellen...

Parameters explicit typing support commited in cvs

Hi all! Today I commited a patch ( here , here , and here ) to allow parameters explicit typing on plain queries. What this means? This means that all parameters are sent to backend carrying its explicit type as specified by DbType and/or NpgsqlDbType enums. This will allow better typing matching between client and server. See here for Jon Hanna discussion about it. This explict typing isn't completely new. It was already being applied to function calling. We just decided to apply it to plain queries too. Now queries are sent this way: select * from tablea where field_serial = '4'::int4 where they were being sent as: select * from tablea where field_serial = 4 This modification may lead to problems, as said in discussion above (end of first post), but we hope this can be easily fixed. Please, send your comments about it. Please, grab a cvs copy of it and give it a try. We soon will be doing a new beta release which will contain this code. Thanks Jon Hanna, Agrinei and Jos...