Which language to choose? #suggestions - api

I know this question might have been asked many times but I could not found any suggestions that might help me. What I have is a tool written in php and a service written in java. I will be moving the service part into cloud based architecture, So currently I have to make a API for database which I want should be independent module from service and the tool. So my question is which language to choose to write this database API php or java. This database api in future we plan to move to apache cassandra. Suggestions would be highly appreciated.
Thanks!!!

Right now the DataStax Java driver 1 is more up to date than its younger brother the DataStax PHP driver 2 (though the latter will catch up soon).

Related

How to start with a DBMS project

We are supposed to make a web-based project using postgres. The topic is library management system, where on a website a user can search whether a book is available in the library, if it is present then where, and so on.
The problem is just that I don't know anything about web development. I do have a pretty good knowledge of sql, but I'm confused a bit in that too, because I don't know if I'll just have to run the queries in my laptop in postgres and link if it "somehow" to the website, or will I have to upload my data on some server (for eg., firebase in case Android development) to be used in my website.
So briefly, I've just two questions:-
How should I start, because I have no idea where to begin with(I do have all the data needed btw)?
About postgres, will the queries run on my laptop or some server?
Please help me with this. Some online resources for the same are way more than just welcome, because I was unable to find any. Thank you!
First of all, you'd take a look at some design pattern in order to learn some theory on how to make (web) apps in the right way. You can visit Martin Fowler's web site and read them.
Once studied, you'd follow my advice. If you've got Java expetise, I'd start by learning Spring Boot, which has every piece you need to achieve your goal. This project follows lot's of design patterns (MVC, Repository, DAO, AOP, IoC/DI...) and lets you follow others (DTO). Anyway, choose the right template engine (I like Thymeleaf) or any other framework (Angular 2...).
Hope it helps.
welcome to development world. When starting out it seems very confusing but it is not that much.
Start slow, there are many tutorials across which helps.. just do a bit of google.
To answer your question :
How should I start, because I have no idea where to begin with(I do have all the data needed btw)?
-- Google simple website with postgres db. For that you will require the database to be installed and a webserver on your machine. All of which will be used when you host the website
About postgres, will the queries run on my laptop or some server?
-- It will run on where you have installed the database..
hope this helps :)

Load testing tools for SpringBoot Web applications

Currently we use soap-ui/manual posting of xmls etc for load testing our spring boot webapplications.
Looking for any free load testing tools that others have been using and want to recommend?
Thanks for your help!
The specific load testing or in general testing tool is the one you will "like" more by lots of personal/company needs. There are plenty of them, here is the short list of them I used:
Blazemeter
Gatling
JMeter
I presonally spent most of load testing time in Gatling, first of all it is using scala development language and quite easy to include in your Java project via maven/gradle, secondaly apart from other benefits it have direct JDBC connection possibilty which let's you to have your test data directly in database. Lots of other pros. But one more time it is strongly my opinion and my preferences. E.g. if you are big fan of XML you will most probably like JMetter, in general Blazemter is kind of a next level of JMeter.
I usually code the test using my current favorite language, Python in recent times. For example in python this would be some code around the requests library, and possibly some multi-process code- nothing to heavy or complex.
I find it more flexible to code myself, on average having more control over the load (there are pros and cons to using a prebuilt tool in this sense) and it usually integrates better with other code in my automation suite.
But the answer is somewhat context dependent, is there someone with the knowledge and resource to develop a tool ? do you have to document the results or make them comparable with other systems?

ZF2 Server Requirements/Recommendations

Hi I did a search on what would be the recommended or atleast requirements to run a nifty zf2 application.
I know I need PHP 5.3.3 or higher, but what abou the RAM and CPU requirements?
I found nothing. Magento for example needs A LOT of resources to run smooth, but I found nothing comparable for ZF2.
Have you guys met any experiences? Let me know.
This type of answer is really only one you'll be able to answer yourself by loading up your application and testing. Depending on your application you may need more resources than the typical application would.
You mentioned Magento so here is a link to their requirements:
http://www.magentocommerce.com/system-requirements
However this still won't fully answer your question. There are many factors involved here such as the web server you will be running. Other applications running on the same machine. The amount of users you will have at any given type. There really is no true calculator to define what resources you'll need.
ZF2 specifically does not have many system requirements but you can find more information on that here: http://zf2.readthedocs.org/en/latest/user-guide/overview.html
If you're just throwing a machine together to test with, then you'd probably be fine with a 20+ gig hard drive and 2 Gigs of ram to get started.

Easiest API to learn/methdology to create web applications for running mapreduce on hadoop?

I have hadoop 1.0.4 running on my ubuntu 11.04,configured with eclipse I want to make a web application to run hadoop jobs, or may be Cassandra,Hbase and Hive might be a way but I don't have much time to learn thoroughly all these and I want to do it as quickly as possible.Any advice which one might prove the easiest to get started with ?
I don't know if this question really qualifies to be here on SO in its current form. This is the reason I did not write this initially. But, a lot of SO experts are out there to decide this(they can do it much better than me) :)
Having said that, I would like to share a few things with you based on my personal experience, so that you proceed towards the correct path. First of all, Hadoop jobs(MapReduce) and Hive are actually not a good fit for web services kinda use cases. They are most suitable for offline, batch processing kinda stuff. HBase/Cassandra can be used though, if you have real time needs(like web services).
Coming back to your actual question. Before diving into Hadoop, Hive, HBase etc, I would suggest you to get some hold on web services first(if you are new to web services as well). Reason being, a web service is something which has much wider scope of applicability as compared to tools like Hadoop, Hive, HBase etc. These tools are specific to some particular use cases and cannot be used everywhere. But, web services are used almost everywhere and with n number of different things, like RDBMSs, NoSQL datastores etc etc. So if you know web service concepts you definitely have that extra edge. To begin with you can visit these links :
Web Services Tutorial by W3Schools(Nice n easy. Would serve the quick start guide purpose).
For a detailed tutorial you can visit the oracle web services tutorial.
This link by IBM developerworks has references to some really good web services learning stuff.
You might find this one really helpful to start with(Shows how to create web services using Eclipse).
And you can obviously Google web service tutorials anytime.
One last thing. Although it's not mandatory to be a pro in things like Hadoop, Hive, HBase etc, but having some decent amount of understanding of the concepts would be really helpful in developing your solution in a much better manner. It'll allow you to think accurately in the correct direction.
HTH.

Experiences and tips for programming with and for Amazon's cloud servers/apps/tools?

We're looking into developing a product that would use Amazon's cloud tools (EC2, SQS, etc), and I'm curious what tips/gotchas/pointers people that have used these technologies have.
One tip/whatever per post, please.
The Elasticfox plug-in for Mozilla makes doing a lot of the EC2 stuff easier. It can be found at: Elasticfox Firefox Extension for Amazon EC2. This page has links specifically to download the Elasticfox plug-in and also the associated Sourceforge project. Well worth using...
Get a developer account at Right Scale. It's free and a god-send for a guy who hates remembering those dumb commands and arguments. If you only resort to Amazon-supplied tools, you're throwing away your human rights.
We're interested in EC2 where i work. We don't care about web-serving or enterprisey stuff, just massive number crunching for physics, using python. This EC2 stuff had me befuddled, with most documentation oriented toward businessy applications and using C# or Java, but this slide show clarified much for me, especially for using python: http://www.datawrangling.com/pycon-2008-elasticwulf-slides
As for SimpleDB, it has a very limited query language and it is very restrictive. If you planning on having lot of complex queries, you must first sit down and think how to organize your data to make those queries possible. One thing missing, but that will probably will be added, is the ability to count the results of a given query, much like SQL's COUNT.
Performance is ok, but I consider the latency maybe a little high.
An important concept to grasp: the file system your EC2 instance lives on while it's running is not persistent. There are tools/services available that let you mount file systems backed by S3 storage, or you can upload to S3 or other storage service from the instance, but when an instance closes the associated file system is no more.
As for tools, I've found Amazon's tools to be great, but you should probably be comfortable with the command line if you're taking this route.
For managing your EC2 instances, etc. Amazon also offers - in beta since a couple of days - the management console which has similar functionality to the Elasticfox Firefox plugin but is a pure web console.
https://console.aws.amazon.com