Our company has pretty much banned us from using open-source libraries in our commercial products due to licensing issues. We are currently looking for a commercial .NET library that can read and parse CSV files - does anyone have any ideas ?
As far as functionality goes, I really need to be able to read a CSV file into a strongly typed DataTable - with appropriate conversion and flagging of type conversion failures.
.NET has a built-in CSV parser. A real one that follows the RFC to the letter and provides error recovery when some lines are bad but the rest of the file can be parsed.
http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser.aspx
I think it would be well worth studying what the differences are between different open source licenses, so that you can explain to whoever is 'banning' you from using them, what they all mean and what the implications are for your company.
For instance, I would never advocate using a GPL'ed library in one of our closed source programs, but an L-GPL'ed could be made to work. Other licenses are similarly less encumbered.
Also bear in mind that just because a library is published on the web as GPL, quite often, if you email the author(s), you may find that they have other licensing options. For instance I was interested in one GPL library, emailed the author and he said he would be happy to license for closed source projects for $100 per year for support and no runtime cost (that's $100 in total for anyone in our company to use the library on any number products we ship).
This is a damn sight better than $3000 for the development version and $500 per runtime for the commercial library I was also considering. Admittedly the commercial library did much more than the open source library, but we didn't need all that extra functionality at the time.
CSVReader did the trick for us.
FileHelpers v 2.0
Sébastien Lorion's excellent CSV library is licensed under the MIT license, so you can do pretty much anything with it so long as you acknowledge the original copyright.
How about using built in OleDb in .NET with Jet Engine. It handles different file delimiter type as well. See this article
http://www.codeproject.com/KB/cs/UsingJetForImport.aspx
Try CSV Helper (which I wrote). It has a Ms-PL license. If you can use Microsoft products, you should be able to use this also.
Related
I'm working on my graduation thesis and my project consists on the extraction of knowledge from documents containing parsed comments about products or services, using ontologies to indicate the "characteristics" of these products or services, so each can be rated as positive or negative individually, instead of having a single rating for the whole review.
While I can, and if need be I will, tie to a single ontology and specialize my work, the main idea would be to create a framework out of it, so I'd receive the comments on a file and would have the ontology on another file, either OWL or RDF.
The problem with most libraries or frameworks I've seen is that they rely on code generation, while I'd need this to be dynamic, just change the file and read it.
From what I've seen, even SPARQL relies on knowing the ontology structure, so that's also a no-go for me, since I'd need to create queries specialized for each different ontology.
Is there already any library, either for .NET or Python (the languages I consider using for writing my code in) which allows me to work this way with ontologies, or is it up to me to write this? :)
In my opinion the most mature and actively developed RDF library for .Net is dotNetRDF (disclaimer - I am the lead developer)
SemWeb is capable but abandonware, the last update is almost 3 years ago and it doesn't support many of the newer standards that have come along since such as SPARQL 1.1, RDF/JSON, RDFa etc.
If you are interested in running SPARQL queries then SPARQL 1.1 is a key feature because it is far more powerful and comprehensive than the older SPARQL 1.0 specification.
dotNetRDF has full SPARQL 1.1 query support (see SPARQL 1.1 Implementation Reports from the W3C) - note that the Python library you've been recommended RDFLib also has near full SPARQL 1.1 support.
RDFlib is probably the most mature library for working with RDF in python. I have used it for hobby projects, and for those needs (ie. somewhat limited), it has not failed me.
easy_install rdflib
to get the newest stable version.
In C#-land, I would go with SemWeb.NET (as also mentioned in the linked SO post in the comment to your question). I haven't used the library, but Joshua Tauberer, the author, is a pretty capable guy IMO.
I've recently been given a task to populate a Word 2007 file with information retrieved from Rhapsody using the Rhapsody API. I'm not super familiar with Rhapsody, but I'll learn. I'm having difficulty tracking down a good way to write a program that can write to a formatted (read: tables) word document. I'm best at java, but I'm capable of using C#, C++, or VB. The problem seems to be that all options for java require the use of 3rd party libraries, and I'm not sure if I'm comfortable using them. All of the languages available in the Microsoft Visual Studio seem to have options for writing out to a Word Document, but I can't seem to figure them out. What would be my simplest option in attempting to tackle this task?
Aspose words does a really good job integrating C# with MS word.
http://www.aspose.com/categories/.net-components/aspose.words-for-.net/default.aspx
I am not sure if you already tried all features of Rhapsody Reporter Plus (in built) and Rational Publishing Engine (additional licenses might be required). With them you can produce html, pdf, word documents...
If this is not your use case and you need your own plug ins in java, we have good experiences with Apache POI, which I could recommend.
I don't understand why you might have issues using 3rd party libraries, when you write everything by yourself you might end doing such a similar library, expending of course "some" time and "some" headaches until having it ready...
I need to test various famous classification methods like kNN, ID3 and ... on a huge data-set of a project, and choose one for future use.
I have no limitation on language but performance and readable code both in learning and classification phase are very important.
therefore, I'm looking for a good library with following features:
includes various classification methods
high performance
easily usable
any suggestions?
You shuold take a look at PyBrain, a great machine learning module for Python. Can't tell you much about it, because I never really used it (just read about it and looked at several projects solved with it), but it seems to be very good.
You may also want to take a look at this list of Python machine learning modules:
http://web.media.mit.edu/~stefie10/technical/pythonml.html
Or at this SO question:
Is there a recommended package for machine learning in Python?
Try scikit learn - it is written in python and has variety classifiers and also metods for testing them.
Take a look at RapidMiner which comes with a Java-API and graphical tools for data mining. The community edition is free, I think.
I used the predecessor of this tool/library as a student but do not have professional experience with it, though.
I'm looking for some tool that can be used to create .chm (or something else that works with .NET) help files for my .NET application. I realize that Microsoft offers a free product that works perfectly fine, but here is the caveat: I work for a contractor that gets it's money from the gov't. As you can imagine, we have certain processes in place that are simply there to waste time and money. One of these is our process for approving "Free and/or Open Source Software." Given that this microsoft tool is free, program management wants nothing to do with it..they'd much rather find one that they can buy and get a license for to remove any ambiguity about our legal rights to use it. So yes, even though there is a perfectly good, free tool available, to satisfy management who doesn't want to deal with stupid, expensive, time consuming processes, I'm looking for something (that is probably less capable) that costs us money and will accomplish the same/similar thing.
I use Help & Manual which is extremely capable. It provides multiple outputs - chm, pdf, hlp and others. It is easy to use; can take very large help sources; and supports multiple languages and external translators; and can be used to generate application help (tool tips, etc.) I have no connection with the product or company, except as a very satisfied user. I do believe that its capabilities far outstrip Microsoft's free tool, though it is some years since I used the MS tool.
In a .NET C# program, is it easy to transition from FTP to SFTP? I'm trying to get a sense of how muh time it would take the contractor to make the transition. My personal experience is mostly with PHP, so I have no idea.
Basically, what I'm talking about, what steps would have to be made? Obviously, different commands, but would anything else in the code itself? Like do the commands require different formats, etc.?
Also, if anyone has a list of all the .NET/C# FTP and SFTP commands, that would be really helpful.
Clarification, as requested: The program is uploading extremely small files (20 KB) to a server. By format, I mean visually, because I was wondering about a find/replace job.
This is a pretty vague question. You haven't told us what the C# program is doing with FTP. Is it a server, is it a client, is it doing directory listings, is it uploading 100 GB files? What library is it using?
According to this forum post , there is no built-in support for SFTP in .NET, so you would have to use third-party libraries such as SharpSSH or Granados SSH.
I don't really know what you mean, "do the commands require different formats". Obviously, the code will use different:
Libraries
Types
Wire protocol.
It will obviously appear somewhat similar, thanks to the abstraction of the libraries. I suggest you provide more information, and a clearer question.
One thing that you'd need to consider is how well your current code is written. If your existing FTP implementation is horribly designed spaghetti code then converting it to SFTP may be next to impossible and take way longer than you'd like. Without knowing the current state of the code, it would be difficult for anyone to make a good estimation. And even if you do get an estimation from people on this site, I wouldn't recommend trusting it (even though the people on this site are great) since without all the information in front of them it will be next to impossible for anyone to come up with a reliable estimate.
Perhaps you should consider hiring a good consultant or business analyst to do a thorough estimate for you.
It really depends on what C# library your developer has used to implement FTP.
If, for example, they used edtFTPnet, a widely available open source library, then the upgrade path is trivial if you replace it with edtFTPnet/PRO. The PRO version has the identical API and just a few extra lines of code would be needed.
I've been down this road.
It depends, but keep in mind that SFTP, FTP-SSL and FTP are different.
If he's writing the SFTP libraries himself, a month or two, since it's a lot of work to make it perfect and compatible. But he should NOT do that.
In short, get him to use an external library to add SFTP functionality. This will make it pretty short. Maybe a week or two of full-time work, but it depends on how involved it is. There's open-source options.. But for $50-150 you can get a license to well-maintained code that's really easy to use. will save him days of work.
There's links above, but I'd look at:
Free:
http://www.enterprisedt.com/products/edtftpnet/overview.html
Commercial:
http://www.weonlydo.com/