Experiences OrientDB vs Neo4j [closed] - neo4j

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I am looking for the right Graph DB for a project. I tested Neo4j and really liked it. But the AGPL licensing issues put me off a little (you can read about it here).
I then found a couple of articles claiming that OrientDB is actually much faster. But they aren't really up to date. You find them here and here. And it is licensed under Apache 2, which is good.
So I just want to ask the great people of stackoverflow for your opinion.
Scalability is important and OrientDB claims to be better at that (here)
Licensing should be open
I have a complex model of vertexes/edges and need to retrieve relationships up to 3 levels deep
The mixture of document-graph that OrientDB offers seems to be a benefit
Thanks for your feedback!

Note: I am on the OrientDB team, my opinion is definitely slanted. I am also replying in a decidedly casual tone.
On your points:
1) On the topic of clustered deployment, currently it's not even a comparison. Neo4j is master-slave replication, they state themselves that it is generally only suited to single digit node deployments and the entire graph must belong on one machine. Hear it from them directly: http://www.infoq.com/interviews/ian-robinson-neo4j?utm_source=infoq&utm_medium=videos_homepage&utm_campaign=videos_row1
OrientDB has a full ability to do multi-master replication (every node can accept reads and writes), has the ability to shard data, intelligently distribute data using clusters and automate distributed queries and transactions. Our CEO recently did an excellent webinar for hazelcast showing our setup in this area: http://hazelcast.com/resources/orientdb-hazelcast-memory-distributed-graph-database/
2) Apache 2.0 is our community license, this is extremely liberal. You can even embed OrientDB community edition at no cost. (A)GPL worries some that their closed source code will be polluted. This may or may not be a threat, but it's sometimes hard to determine. Our community license is very feature rich including full distributed, multi-master replication and sharding.
3) Traversing relationships is kind of the point of graph databases. So either Neo4j or OrientDB will suit you just fine here... go 2000 levels in depth and it will still be performant.
4) The document-graph capabilities are great, but you knew I would say that. The product we've built is a production grade system designed to be a full on database not a side database used as a supplement to a RDBMS or other datastore.
I am coming off strong here. But I have good reason. Over the past 3 weeks a full team of developers at a world leading tech company have been testing OrientDB against Neo4j. For their very demanding use case, we were the better choice for a variety of reasons. Money was not the issue, we earned the business with our technology.
Take it for what it's worth, I've stated my bias up front. From my experience, once you work with OrientDB, there will be no looking back. Let us know if you need any help!

Related

Suggestions for the best Rails collaborative development stack? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
Looking for some suggestions from the community for development stacks for collaborative environments. Could you share what you have and what has worked for you or your team?
The following is probably too verbose for some and an expression of just some rambling thoughts I've had about my particular scenario as I'm working with a hatchling dev group. SO, if you read it 1UP for you, otherwise, please just feel free to just share your thoughts re: the first question and what's worked for your team.
I have a situation where myself and a couple other developers are working together and I'd like to set up the "best" dev environment possible for Ruby on Rails development. At the moment I use git and some of the usually accepted best practices for development, however the other guys are new and not terribly familiar with the shell, git, etc. They're more from a php and monolithic environment.
I do have a central linux server that has been used hitherto for LAMP based dev for them. I can retool it to anything I'd like it to be as I'm quite adept and experienced at Unix system and network admin.
Could someone please suggest what may work well in this scenario? Again, ultimately we need to do collaborative development that has the lowest learning curve. I'll be the only one deploying to Heroku until I feel comfortable with their experience.
I would like to put something together that can get us all up to speed quickly in a matter of a day vs a longer learning curve and then allow them to grow into the shell and so forth over the next couple weeks.
What I was thinking was more of a shared SMB (mixed Windows and Mac workstations) and SFTP unified projects folder that has either apache virtual hosts for each project or thin rack. I'd continue to use my methods, but this could provide the flexibility for them to grow into this and be able to restart httpd or thin as per need.
Am I on the proverbial right track or has someone seen a better alternative? A lot of things have crossed my mind such as Gitorious (since we'll have a lot of small projects needing to be tracked and an enormous GitHub account is not feasible), Heroku, OpenShift and a lot of other things, but I have enough uncertainty that I'd like to get some input from the community as to the right mix for great collaborative agile development.
I have an answer but I think you have conflicting requirements: i.e. lowest learning curve vs low/free cost.
You say that GitHub is not feasible but it does offer unparalleled features for novice users. They can see commits on a website instead of on the commandline, can even edit files right in the browser (since yesterday, uses Ace) and gain insight into the branching/merging process.
Another paid option is http://cloud9ide.com/ which is also web-based.
I use my own development server as well but only use it for experienced people who need no hand-holding. If I were to let everyone on there the amount of support would consume my entire day.
It is my opinion that doing Rails development people should adopt the best practices in the field. See it like this: at least you won't burden them with learning Subversion or --eek-- CVS. Just seeing the commits on GitHub and having a discussion right after puzzling pieces of code is worth the money.

What databases are people using in Cloud environments with ASP.NET / ASP.NET MVC? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I am looking at hosting a new site on a cloud service. It looks like cool technology, pricing is attractive, and I can scale in case my plans for global internet domination come to fruition.
I have spent a good chunk of time figuring out what back-end to use thought. The site is in ASP.NET MVC, and I have hit a brick wall when it comes to SQL Server. I am not keen on paying the licensing for a small site just starting up. It's great for the day job but I am looking past it for this new site.
SQL Azure looks like it's price is perfect, however the price of their computing scared me off, and Development Accelerator Core is too much risk with its contract stipulations.
I have been checking out all sorts of alternative approaches:
Open Source Databases (MYSQL, Postgres) with Entity Framework
Nosql (MongoDB, CouchDB, SimpleDB, DB40, Cassandra)
Dedicated SQL Server
SQL Server Web Edition
Calling SQL Azure from another cloud
Right now my plan is to host the web server (IIS) and the database server on the same instance (1GB RAM Windows 2008 R2) and then scaling out as needed.
At this point I welcome what others have figured out, what has worked, what hasn't worked. I appreciate any experiences you want to share.
db4o isn't free and their licensing is chaotic, or at least was when I spoke with them last. As a result, I'd stay away.
Don't forget about RavenDB by Ayende & crew. The licensing is about $700 but they say that they will consider waiving the first license fee for startups. I've been dabbling around with it and I've got to say, it's quite impressive NoSQL solution. It's similar to CouchDB but very .net oriented with some one ups on Couch (imo).
Finally, if you join BizSpark by Microsoft, they will give you some free airtime on Azure. Pretty sure some sql love is included with it.
Cheers and good luck mate.
Sql Azure here. You don't need the computing time to use the database, it only exists if you're running an application on Azure.
MySql with EF: so far only real issue I've faced was a bug with a very long running query in the MySql connector / a trip to the issue tracker revealed a workaround that one could use by modifying + compiling the source of the connector ... just until the fix went into the next patch.
db4o: this is in a recent project / already in place when I joined. 2 issues so far:
It doesn't have much support to efficiently aggregate data. As I understand this is usual in NoSql / you just use a different design for it (at least that's what we have done and have worked).
You need to understand well the various modes involved for the database and the operations. Trying to jump too far ahead easily gets you into performance issues at even small loads. It's more a learning curve issue, using the right bits performs very well.
I have to admit that Chance answer worried me for a moment. When I joined the project with db4o it was already in place, so I didn't look at license considerations at the time. This said, I've always understood that you can use GPL code on web sites. Similar to this answer: https://stackoverflow.com/questions/94346/can-i-legally-incorporate-gpl-lgpl-open-sourced-software-in-a-proprietary-clo/94468#94468, if you don't distribute you can use it. Based on the last comment posted by Chance, I'd say it's likely there was some sort of communication issue there.
orcsweb.com offer cloud servers for US$99 per month. Pretty good deal considering that I was paying US$300 to them for a virtual server.
The thing that sets orcsweb.com apart is their technical service. For US$124 per month, they provide a fully managed service on the server.
So for US$223 per month, I get it all and don't have to worry about the server for all my clients.
Database is thrown in for free: sql express 2005 or 2008. This sounds enough for your initial requirements. We run full blown eCommerce catalogues on this and it is fine. If the website grows, well then you that is good news and you can afford to pay for a sql server licence.
If this sounds like a plug for orcsweb, it is, but I don't get anything out of it... We have had great service from them. My job is to write apps, not run a server. We have about 30 clients and we host them all on our one account with orcsweb. That works out a US$7 per client. Can't be bad.
EDIT:
Important!!:
Please note that the above prices are for a Web Server. It host any number of websites and has a SQL Express installation thrown in.
I may have misunderstood the question, but the answer is still valid because the SQL Express will run your app in its early stages.
Not sure how much data you are dealing with, but are the SQL Express skus an option? They can handle just about anything a web app should be doing with the data while being at the right price point and an easy upgrade path.
Failing that, I'd go with the nosql option as that seems to make quite a bit more sense these days and its designed with the cloud in mind.

What framework would allow for the largest coverage of freelance developers in the media/digital marketing sector [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
This question is not about which is the best, it is about which makes the most business sense to use as a company's platform of choice for ongoing freelance development.
I'm currently trying to decide what framework to move my company in regarding frameworks for web application work.
Options are
ASP.NET MVC
Django
CakePHP/Symfony etc..
Struts
Pearl on Rails
Please feel free to add more to the discussion.
I currently work in ASP.NET MVC in my Spare time, and find it incredibly enjoyable to work with. It is my first experince with an MVC framework for the web, so I can't talk on the others.
The reason for not pushing this at the company is that I feel that there are not many developers in the Media/Marketing world who would work with this, so it may be hard to extend the team, or at least cost more.
I would like to move into learning and pushing Django, partly to learn python, partly to feel a bit cooler (all my geeky friends use Java/Python/c++). Microsoft is the dark side to most company's I work with (Marketing/Media focused). But again I'm worried about developers in this sector.
PHP seems like the natural choice, but I'm scared by the sheer amount of possible frameworks, and also that the quality of developer may be lower. I know there are great php developers out there, but how many of them know multiple frameworks? Are they similar enough that anyone decent at php can pick them up?
Just put struts in the list as an option, but personally I live with a Java developer, and considering my experience with c#, I'm just not that interested in learning Java (selfish personal geeky reasons)
Final option was a joke
http://www.bbc.co.uk/blogs/radiolabs/2007/11/perl_on_rails.shtml
As you said for the media/digital marketing sector php is the way to go.
I love .Net (it would be my first choice if the target market wasn't a factor).
I would really look for good well rounded developers regardless of their tech or market as opposed to ones with "media/digital marketing sector" experience.
It is possible to find good/experienced/reliable developers with knowledge of multiple frameworks. If this is a requirement, it is of course possible to vet candidates accordingly.
Given that you're referring to freelance development, it would probably make sense to add the dimension of "where the developer is based" into your thinking, as dealing with someone who's a stone throw's away compared to dealing with someone abroad or another city may affect how you work together. This means that where you are based also affects your choice: if you're based in a small town, there will be less quality canditates close to you with suitable skill sets.
I'm currently learning Symfony for myself, and work as a freelance advisor/product developer for a site that's built with CakePHP. Although an experienced PHP developer should be able to make the leap from one of the above to the other quite quickly, there's a fair amount of framework-specific intricacies that can only really be learnt by coming across the problem and then searching for the solution, or by being guided by someone who already knows. Symfony is considered to have good documentation, but I feel that there's a quite a lot in it that's also not in the documentation and that can really only be learnt by doing it.
I also worked for a company quite recently who used Symfony, hired high-quality PHP developers only, and if I recall correctly, it was about a month or two for new guys to get familiar with the code and the workings of Symfony, and start becoming properly productive.
Hope that helps.
In my (heavily biased) opinion, Django is gaining some traction in this sector. Off the top of my head I can think of a number of high-profile news organizations that are making significant use of Django and I've seen reports of organizations utilizing Django for putting up special one-off sites quickly for unique coverage of special events or circumstances. I know firsthand that PBS and National Geographic also use Django extensively for their web properties and I understand Discovey Channel does as well. There is a nice testimonial about how Michael Moore's site was rebuilt quickly using Django: http://blog.concentricsky.com/2009/10/michaelmoore/. I'm not sure if MSNBC has begun utilizing Django internally, but they did acquire Everyblock.
A few others I'm aware of that use Django heavily:
Mahalo
NASA
University of Texas
I've also seen that Django is being used by startups outside the media sector so I wouldn't say it is specialized toward a particular business sector. There are a lot of organizations out there that have been sort of silently using Python internally over the years and so Django is quickly becoming a natural option for web-based services. Python actually has decent roots in the scientific communities, financial sector, and I've spoken with a number of people in the entertainment industry who use Python in their digital effects / post production pipelines.
Maybe not the most riveting content overall, but there is some good info in here: http://djangocon.blip.tv/file/3041158
Look at your clients. Frameworks are just tools, you will have to go with the tool that suits the particular job. This also means your choice to dive into a framework will choose your future clients.
Many SMB shops need PHP because that it is the easiest to host and is interoperable on many layers of "platform" (not just OS, but also supports all DBs etc.)
ASP.NET MVC: I heard a lot of awesomeness about it, I like C# as well. But I can't afford to go only with the options Microsoft provides (database for example) and Microsoft products only really support they own stuff.
Django: Expected to gain huge momentum, but I'll wait until the language itself (syntax) becomes stable.
CakePHP/Symfony: CakePHP is very easy to pick up and is a good choice if it fits all the requirements.
Struts: Quite heavy, I would learn Spring (MVC) instead.
Pearl on Rails: Haven't really used/seen it, so no idea.
You could also consider to learn a framework that is radically different from you current knowledge.
So I love Symfony. It does all I need for a Framework to work fast and clean.
The structure and the architecture is pre-defined so everybody knows where to put stuff, so you can easily work together with a whole bunch of developers.
I would never chose CakePHP over Symfony, because if you have to make changes to a model, you can never again generate code after the development has started.
CakePHP just overwrites everything.
I sure lost all my code a few times. Really annoying.
Symfony just extends the generated code and that is where you develop.
Here you find a good discussion about CodeIgniter (with which I develop at the moment, and it is no MVC and PHP4-based) and Symfony: codeigniter-vs-symfony
The learning curve is a bit steeper for Symfony, but it has enough complexity for all situations I ever encountered.
My next project will again base on Symfony 1.4. And if you can wait, there will soon be Symfony 2.0
ASP.NET MVC, but only if you can use both a frontend and a backend developer for each project. It'll probably be harder to find developers with both competences and you might have to push .net-developers a bit to get them to use MVC.

How to convince "The Management" to use all aspects of Visual Studio Team System? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
Currently we have several defect and bug tracking systems, which include Quality Centre and bespoke support systems (both team and company wide). Also we use Microsoft Project - although I haven't seen a task list in months...
But what I find difficult to understand is why our company purchases VSTS and only utilises part of it - we currently use source control, automated overnight builds and team testing functions.
How can our team convince "The Management" to use project task items, defect tracking, reports and process guidance parts of the system? Surely this would save time and money once implemented correctly ?
If you already have the VSTS licenses then why does your team management need to sign off on anything? Start the features amongst your team for small areas and gradually ramp it up. Would you ask management to sign off on which text editor you use?
Management have a basic fear of anything that in any way may disrupt productivity, and rabid adoration for anything that increases productivity at no risk to themselves. Start small and let the results sell themselves.
This is how I've introduced both Unit Testing and Wikis at previous companies. When the results begin to show people quickly want to get involved.
Tell them if they not decide to, then in one hour you start to kill hostages every five minutes 10 at the time...
But more serious do the meeting with management or write some kind of request and show what time consumption it takes to use disintegrated system, and how powerfull and underused newly bought system is, but before do soem analyses if system does really fit all current ne4eds. But be carefull with your words and names,. If it really comes out that company got underused equipmentsoftware which got negative impact on productivity and information flow in company, and it means less of valuable work even heads can fall for this. It all depend how serious is your company in that cases.
Be aware that it would be not quire fluent process to switch frome one soft yo another, people got own habbits and things that they are used to so you will have to do this in some steps which include graduall introducing people to new system

How to balance zone time against open and active communication within a development team? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
How to balance "zone" time against open and active communication within a development team?
Read "Peopleware"
Offices with doors.
phones you can turn off.
emails
Usable common areas with whiteboards.
There are some phases of development when lots of collaboration is very productive and other times where individual focus is important. Also, people work differently - you don't wantt o interrupt folks who do better when left alone and you don't want to isolate those who need feedback and help. I would avoid rules and just make it clear to t ateam that this is an issue and it is up to each developer to enforce their own desired environment. Management should support it.
USEFUL meetings are great, but open bullpens as work environments for "open communication" is a fantasy dreamed up by beancounters or managers who want to keep an eye on all their staff.
Our office converted recently to the "bullpen" style Tim referred to. Software people were unimpressed, to say the least. To work around this we implemented the following things:
1) Division internal mailing list
2) Dev-team internal mailing lists
3) Every developer is available via Google Talk for discussions without leaving our desks
4) Headphones means "it better be important"
5) If more than 2 people need to talk together, you find a meeting space so you don't disturb your colleagues.
6) We usually only use e-mail for speaking with clients or providing individuals with files through attachments.
The result of these actions is that the Signal-to-Noise ratio in communication is much better, since you are not bombarded with e-mail all day long.
One thing we tried that did not work so well was the "party chat" feature of Google Talk (basically using a Google Talk Contact as a stripped-down IRC chatroom). It could be because many of our developers are young (we have between 3-15 University co-ops year-round) but "party chat" became a very apt name for what it ended up being used for.
Whiteboards are scarce where I work but we sold management on the concept of a room that was to be used for 6 people maximum who could hole up and do intense design and development. It has a couple whiteboards, a DOOR, and all the lights except one can be shut off so it doesn't feel like a fluorescent sun is above your head. This may not be possible in your work environment, but if it is consider it as the room for intense "zone" time.

Resources