I know how to write programs in Java and C++, and would like to learn how servers, databases and Internet based applications work so I could start developing them.
Where should I start? What should I learn first? What books would you recommend for me?
Thank you, in advance :)
I would start by either trying Tomcat which would let you create fairly basic web applications. I would start by playing around with either servlettes or JSPs. There is a lot documentation and examples.
Or you could start by downloading and playing around with a database. PostgreSQL is really good. It is free and they have a tool called pgadmin which is a really good ide.
Once you have been able to get these set up and working I would then start taking a look at some various frameworks that exist to make using these tools a lot easier. For example, you could take a look at Guice or Spring for dependency injection or a range of other tools. This is a comparison of each.
You will also probably want to also look into Velocity, Freemarker, or struts, or something similar. These will make your life a lot easier.
For the database you could look at: Hibernate or MyBatis, both are really good and function slightly differentially. Hibernate is very commonly used and they cache objects very efficiently.
I don't know what you mean by "cells", anyway you may start from open source technologies and their online docs, like Apache, MySQL, and PHP.
Related
I need some advice on the project im working for fun during the summer. Say im writing a software that helps creating the roster base on the availiabilities of the staffs. I need some advice on how to implement these items below:
A database that holds the infomation of the staffs (ie.
availiabilities, minimum hours, maximum hours).
The core of the software where the process of arranging staffs on a day base on the database.
A GUI that displays the final version of roster after step 2 above so it can be printed out by the manager.
Im thinking of using Java but not sure how i to implement and connect the database, the core and the GUI together? Can i do everything listed using Java?Can anyone please suggest me a solution or an article for this?
There are many different paths you could follow, depending on what your end goals are.
DO you want to learn Java or are you just trying to practice application development ? I am assuming you are interested in an application that runs on the web.
For me, the best choices are either Java or PHP, but this is largely based on my own experiences. Others might argue that Python or Ruby would be a better to start.
For a Java based solution, you would use: Java JSPs with HTML for the front end (Javascript and JQuery optional); Java (Servlets) for the middle tier; JDBC, JPA, Spring, and/or Hybernate to connect to the DB; MySQL is a good candidate for the DB, but there are other options.
For a PHP based solution, you would use: PHP, HTML for the frond end (Javascript and JQuery optional); PHP for the middle tier (there are frameworks you coulse here as well); PHP to connect to the DB; MySQL is a good candidate for the DB, but there are other options.
If you dont know either, I think PHP is easier to setup and run for beginners, and is the basis for many open source and commercial web applications (e.g., WordPress); but Java is used for most large scale applications.
So my company installed PostgreSQL on my computer, which I use, rarely and without understanding, for one specific function.
I'm trying to follow Lynda etc. tutorials to understand (Postgres)SQL better, since that's what we use, but all the tutorials ask students to reconfigure certain aspects of their system in order to follow along with example files (which I would really like to do).
Since I've messed up my dev env once already, I'm hesitant to touch anything that will cause issues with the local versions of our project.
I know this is an extremely wide-angle question with no easy answer, but if anyone has any general advice for playing with sample databases in MAMP Pro (or anywhere else) using Postgres without interfering with the servers I'm currently running, it would be a huge help.
i would recommend you use Vagrant and set up a isolated postgresql instance. Here is a great wiki you can follow to do this.
UPDATE: Given your comment,An easy solution is to just backup your data and proceed trying out the the Postgres examples you can always restore your data after you are done..
I have a device which generates a bunch of statistics once per second. All of the statistics are stored in a PostgreSQL database on a Ubuntu server.
I'd like to create a web interface to prompt the user for a time range and which values to graph. I'm also thinking this kind of thing is common when people have databases full of numbers, so it must already exist. Problem is I don't know what terms to google to find relevant software packages. So far, the only 2 I've found are php5-rrd, and Carbon/Graphite.
The PHP5-RRD solution seems simple enough, though I'm worried I'll be needlessly re-inventing the wheel. Can anyone recommend other similar software packages that can help generate a bunch of "live" charts or graphs with a web front-end?
Try this d3.js tutorial. Depending on your needs it might solve your problem with a way simpler solution than whatever you were thinking.
Edit: if you want to learn the very basics of d3.js, I recommend Scott Murray's tutorials.
Depending on your needs, you can try:
BIRT
Saiku
Shiny (RStudio)
Or you can google charting library or try something from this article
Instead of storing things in a heavy PostgreSQL database, I did eventually change my app to use RRD (round robin database). Lots of ways to easily get and store information in RRDs.
# on Ubuntu:
sudo apt-get install rrdtool
Once I had my RRD files, it was trivial to use the usual RRD tools combined with PHP and the free Google Charts to generate the many different graphs I needed. Google Charts by itself is an amazing project worth highlighting: https://developers.google.com/chart/
I am currently investigating possible options of a migration framework/tool. I like the idea of ruby migrations on which the above frameworks are based.
So I am asking for your experience, opinions and maybe a comparison between them. Are you using them in production?
thanks for responses. The goal of this question was to get a feeling about which tools is used most in the developer community but it seems that migrations are not a hot topic here.
Anyway, I have decided to go with MigSharp as the codebase seem to be pretty clean and it is quite easy to handle and had build in support for MS SQL CE. Second runner up would have been FluentMigrator where I was not able to produce a working example for compact edition.
Cheers
I use FluentMigrator in production, and am a longtime contributor to FM. I think your question is to general; be more specific. Also, FM has a google group which is fairly active if you want FM information.
FM is derived from migrator.net, as I recall. It uses a fluent-syntax, and supports multiple databases. We have taken some inspiration from rails migrations, but it's definitely not a port. Worth checking out.
One thing I've learned is not to put your migrations in the same assembly as you app code. Separate them into a migration assembly, and use that for migrating your databases.
Also, you should always work on multiple environments to avoid problems with migrations run straight against production. I always have at least a development and production environment, and most of the time there is a testing environment as well.
I use mig#.
It works well, but you will need to have some guidelines for usage - as migrations can get complicated.
We use sequence number on the end of our migrations rather than a date-time stamp. This is because we don't know when the date time stamp was set (when they begun the source code change-set; just before committing; some time inbetween) different developers could use different approaches.
Names such as Migration_0000034.cs give you plenty of space.
At this point, I would stick with migrator.net. I like the promise of FluentMigrator, but it seems to not have any better active development than migrator.net (see the issues and pull requests that have languished on their github site).
There is also no easy way to do an ExecuteScalar(). I'd add it, but I don't want to create my own fork, and I see no reason that a pull request would actually land in the master. (Execute.WithConnection is an Action so it will fire on demand rather than when I need it to fire)
So for me, I'm heading back to migrator.net.
We are looking for a way to automate windows forms for acceptance testing. Our requirements are:
Must be usable by non-developers (ie: people with no development environment installed)
Must have a recorder
Must support third-party controls
Must have basic functionality (allow clicking on buttons, inputing text, validating results, accros multiple windows if necessary)
Basically, something like Selenium, but for windows forms.
For what it's worth, I've been testing for 15 years, and to this day have never seen ROI on tests created in this fashion. Automated testing, is obviously a good thing, but if you are just taking test cases that should be manual test cases and having minimum wage workers "automate" them, you will almost always end up with a mass of unmaintainable fragile tests that save no time in the end and get thrown out quickly.
The FitNesse suggestion from paiNie is a great suggestion.
Must be usable by non-developers
Any not-web test automation tool will need either dev`s well-known ide (Eclipse etc.) or test tool ide. SilkTest, TestComplete etc. will also make u to write some code.
U can separate work between devs and testers using tool for creating "executable requirements" like "Fitnesse" or Concordion
AutomatedQA TestComplete meets your requirements AFAIK
HP QuickTest Pro is a good tool, even for non-developers
Posting this on behalf of my wife :)
We were using a tool from Compuware called TestPartner to create the test scripts for testing a WinForms client-server application. For managing and controlling the scripts execution we were using Compuware QA Director.
TestPartner uses VBA which is quite easy to understand and to use. Some non-developers could even know it because they write Excel macros.
It has good record-and-replay functionality and is very good with objects recognition.
So you could use it for both simple scripts created by your business users and to create a framework of advanced scripts by your developers and test engineers.
Never used it but Borland SilkTest seems to be another meeting your requirements.
Basically, something like Selenium, but for windows forms.
You could try AutoIt. It's free and has a community site where you could find already created solutions.
However I'm generally concerned about your goal. Acceptance criteria are informal.
Have you got already ideas how would you be translating informal stuff to technical requirements?
We use TestComplete for automating our Windows forms test cases. It is a pretty good product overall.
The main issue you will run into is that while most of these products will meet all of your requirements, you are going to run into a lot of maintenance issues, especially having non-developers recording the tests.
Although it may seem like a good idea to quickly record all of your tests then have them run from the recordings, you will have a much better ROI by actually treating your automated tests like regular development. Recordings will leave you with a lot of duplicated code, which is very difficult to maintain. By properly designing the tests and breaking out reusable code you will end up with much more stable tests and you will be able to get your results much quicker.
The Vermont HighTest:
http://www.vtsoft.com/vcsproducts/index.html
The 30 day trial looked pretty good!
Check out Oracle/Empirix e-Test.
Check the perfect solution. TestComplete is a great tool for record and play and creating your own scripts using VB, C#, C++ or anything else you want. It beats Silk, Compuware, Mercury hands down. It has very low price per license. You can get 5 license for price of 1 license in Compuware and silk, and 1/4 license for price Mercury.
You can try Sikuli. It's free and easy. No programming skills needed.