what is subsonic? - subsonic

I'm lost here, can someone explain to me what subsonic is?
is it a code generator type tool?

"SubSonic is A Super High-fidelity Batman Utility Belt that works up your Data Access (using Linq in 3.0), throws in some much-needed utility functions, and generally speeds along your dev cycle."
Depending on how you use it, it does involve code generation (t4 templates used to create classes that represent your database objects).

This website, Wikipedia, tells me its an ORM (Object-Relational Mapper)

As it's creator Rob Conery says, it's the Swiss Army Knife of ORMS.
Here are some other questions where you can find out about SubSonic:
What ORM is the best when using stored procedures
Best free ORM to use with .Net 3.5
If you haven't go to SubSonic's site and watch some of the tutorials. You find that it is easy to become in under 30 minutes.

Related

Standalone and open source library in java that allows document clustering similar to carrot2

I am looking to cluster short text documents, each a few hundred character long.
I have been using carrot2 workbench and I really like its capabilities but the API is really archaic and difficult to understand / use.
I am looking for a replacement that has similar capabilities (clustering algorithms) but with a better API.
I'm really looking for something in Java or Python and it has to be open source and free as in beer
So lingpipe (http://alias-i.com/lingpipe/) does not qualify.
Thanks.
scikit-learn is in Python, supports a wide range of machine learning algorithms (including clustering) and is very well documented.

Resources for getting started with Lotus Notes and LotusScript

I recently joined a company. I need to work on Lotus Designer software, and command and Lotus Script. I really have no idea of where to start. I have to learn from scratch on my own. Can any of you please help me on the materials I need to start with (since there are billions on internet) and how to proceed. It will be of a great help.
Thank you,
Priya.
The following books will be helpful.
"Lotus Notes and Domino 6 Programming Bible" by Brian Benz and Rocky Oliver.
"Teach yourself LotusScript® for Notes/Domino 4.6" by Bill Kreisle, Rocky Cliver and Rocky Oliver
The first is newer, but isn't exclusively devoted to LotusScript. The fact that it covers topics other than Lotusscript may be helpful to you if you're new to Notes. The second is older and won't cover some of the newer object types. It's still fine for the basics.
Bill Buchan's blog has a list of links to Lotusscript presentations he has given:
http://www.billbuchan.com/presentations/
Many can be downloaded. Some are quite advanced; others are more basic. If you avoid doing the things he references in "Worst Practices", you'll be off to a great start.
If you're interested in object-oriented programmingm, my own article on Object-Oriented Lotusscript is here:
(revised link) http://www.ibm.com/developerworks/lotus/library/ls-object_oriented_LotusScript/
I started with the built-in templates. Get to know how they work first, then open up Designer and look at all the design elements, the views, forms, etc. Read the formulas and LotusScript thoroughly and learn what they are doing. You'll learn good practices at the same time since the templates are thoughtfully designed.
Do the same for the databases you will be supporting at your company.
Understand the difference between an RDBMS and a document database. Notes is the latter and that can be confusing coming from SQL or other relational databases.
If you need any basics on LotusScript, it is closely related to VB script and you might find more examples for VB. once you know the basics, though, I'd stick to the Notes docs for learning about what each function does.
I'd also read the Lotus Notes questions and answers on StackOverflow. Not all apply but look through for interesting ones. There are only about 400 right now.
Check out The Learning Continuum Company. They have a variety of courseware for Notes and Domino, and they always have a couple of free and demo courses in their offerings.

Subsonic and CSLA.NET

Can SubSonic be used with CSLA.NET? Has anyone tried this. From my understanding
SubSonic is a DAL
CSLA.NET is a BAL (BLL)
I can't seem to find any information on this.
SubSonic could be used as a DAL. I had a some trouble implementing a DAL at first when I was learning CSLA just because there is little documentation on this subject. I would recommend checking out our templates. We have a complete working Parameterized SQL or Stored Procedure driven DAL. This is all sub templated out so you could easily implement or copy 8 sub templates and change it to use SubSonic and all of your BO's would now be driven by SubSonic in a very small amount of time.
Thanks
-Blake Niemyjski (Author of the CodeSmith CSLA Templates)
It looks as though you will need to kludge around some issues to get CSLA to talk via your own DAL - see http://www.lhotka.net/Article.aspx?area=4&id=2e6468d6-9a02-4f0e-a31c-a7eecc268e1b
There is also a more detailed forum discussion on the subject at http://forums.lhotka.net/forums/thread/3714.aspx
SubSonic is pretty well encapsulated so you can use it with just about anything. You can put the DAL that SubSonic generates in its own separate class library and/or namespace.
No experience with the CSLA.NET side of things.

If you had one wish for SubSonic what would it be?

I know this question seems subjective but it's really pretty simple. As a long term user, and part time contributor to SubSonic I'm interested in what the community thinks would be the single best way to improve it.
So what's your opinion, how would you make SubSonic even better? What one thing would make you more likely to use/recommend/evangelise/stop complaining about it?
As I said I know this is a bit subjective and may get closed but as SO is the main support forum for SubSonic I think this could be a useful way to solicit opinion and/or contributions.
To keep this from turning into a general discussion here's the rules:
No omnibus wishes
No duplicate wishes
Up-vote those you agree with rather than re-posting them
Ability to run in MediumTrust out of the box
In all honesty the biggest thing thats lacking is solid documentation and HowTo's
Its got better but I think it needs a lot more.
Ability to automatically map collections of other objects, like Fluent NHibernate does.
When SubSonic throws an exception that isn't clear, I'd like to be able to use Google or some other mechanism to discover more information about how to keep my development effort moving forward. Right now it's too easy to get into a situation where you have to go spelunking into the SubSonic source code since SubSonic doesn't seem to be very proactive when the user goes off the "happy path".
This critique is hardly specific to SubSonic. Many (most?) software products suffer from this same problem. I have not really had this problem with NHibernate though, which is SubSonic's most clear competitor.
Faster and higher quality releases
Binary types for SimpleRepository (Images)
Left Outer Joins
Support more database-independent code generation...
What I mean by this is that it is truly a real pain if your application wants to talk to different databases (e.g. SQL Server and Oracle) and you want to only have one set of generated DAL objects. I would love it if you had the option of specifying that any SQL code that gets sent to the DB would be as compatible with most engines as possible, since right now if you generated your objects targeting SQL Server then all queries will be of the form:
SELECT [schema].[table_name] FROM ....
Sadly, this does not work in Oracle, so basically you're out of luck there.
Perhaps this isn't a huge concern for most of you, but I'm currently writing a commercial app that touts one of its main features as being able to run on various database engines just by changing its configuration and I chose SubSonic because I thought it could handle the job pretty easily, but I'm honestly having second thoughts now because of all the hoops I may have to jump through just to get this to work correctly under different environments.
Support MS Access ,Postgres and FireBird database :)....

How to manage application resources?

We are developing a web application which is available in 3 languages.
There are these key-value pairs to translate everything. At this moment we use Excel (key, german, french, english) for this. But this does not work well ... if there is more than 1 person editing this file, you have no chance to automatically merge the different files.
Is there a good (and free) tool which can handle this job?
--- additional information ---
(This is a STRUTS application) But the question is how to manage these kinds of information in general (or at least in an conveinient way, which also supports multiple users editing this single file ("mergeable" filetypes))
Why not use gettext and manage separate .po files? See that blog entry.
If you can store this information in plain text then you will be able to use a version control system like subversion to help you with merging changes. Subversion is free.
The free guide (the "Red Book") to subversion gives a fairly good explanation of how this kind of merging works.
http://svnbook.red-bean.com/en/1.5/svn.basic.vsn-models.html#svn.basic.vsn-models.copy-merge
EDIT: Another thought - if you really want to stay using a spreadsheet - Google Docs supports simultaneous editing of a spreadsheet. You could import your existing spreadsheet and get your multi-user merging wishes for free with very little change to how you work.
Good Question.
There are some "Best Practice" depending on what you actually code in (java, ms-windows c#).
I solved this (but I think there must be a better way) by using a SQL db instead of excel file, and a wrote a plug for VS (VB6,........,..., emacs) that was able to insert new keys into the db without going to round trip with version control. The keys are the developers name of what they think is a best guess for a label. (key => save, sv => "spara", no => "", en => "save").
This db can then be generated as a module, class, obj, txt, to appropriate code(platform)
and can be accessed, depending on the ide, so in c#, bt,label = corelang.save;
Someone else can then do all the language stuff, and then we just update the db and rerun the generation to the platform resources.
After years of seeing localization done, including localization at large companies like Sony. I can only say the "standard" is Excel :)
There are tons of good ideas around, and probably many better ways to do it, but in real-life excel seems to be the best/cost effective solution that doesn't require training or making complex new tools to get the job done.
Found out, that Intellij Idea (at leas in version 7 and 8) has an editor for application resources. But it is not free at all. And it does not scale for bigger resource files with more than 1.000 keys.
Another good choice would be to use Google's spreadsheets ... for those who don't know it - it is like an "online Excell web-application". It can handle concurrent access from multiple users. Yay! But sadly, it comes from Google. This makes it impossible to be used in commercial projects.
So,
still searching...
cheers,
mana

Resources