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 7 years ago.
Improve this question
I've been learning Java for the last 2 months with a Core Java book. Now I want to write something real, but at first I decided that I need to improve my knoweledge about algorithms and data sturctures so I'm currently reading a book on that.
I want to join an open-source project which is mature enough to learn from it but is still growing so I can really contribute to it. I browsed the whole apache and sourceforge looking for something interesting and the project I became really excited about is Apache Hadoop. Although it's quite complicated I don't think it's going to be a problem if I'm interested enough.
So the question is: does anybody here has expereince contributing to Hadoop? What can you say? Is there enough room for futrher development?
Yes, Hadoop has a whole ecosystem of projects to get associated with. Like HDFS, Hadoop Map-Reduce, Pig, Hive, Oozie etc. You might poke around using any of the VMs available like http://www.cloudera.com/downloads/
This will help you get acquainted with what all different projects are involved and thereafter you can contribute to make things better.
cheers
We certainly always welcome new contributors. Although it sounds trite, all open-source projects, Hadoop included, need improved documentation and tests. While this work may not be the sexiest, it does provide new contributors with experience in the code and the opportunity to provide useful patches that committers love to see. I'd caution against an anti-pattern I often see: announcing or signing up for too much work or suggesting too radical a change before establishing experience and credentials within the project.
There's always room for further development.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
so here I got an open-source Android app which I must analyze and identify the structure of, things like its libraries, high-level architecture, configuration management, and testing facilities.
Now I understand where and how to look for the last two, but I still rather confused on how can I identify the libraries and architecture.
So what I'm asking is, how do I identify the architecture of an app and the libraries it uses? where do I look for it? what part of the source code? are there any tips to do this?
If there is any other info that I should provide, please do tell me.
Edit1: this is what I meant by high-level architecture, using Firefox as an example, but it doesn't have to be this technical, something more simple is also okay >>>
There are 1000s (maybe even millions) of questions on stack-overflow regarding Android development. The android documentation is itself highly exhaustive. And a simple query like "add library android project" can lead someone to answers like this.
What I am really trying to say is, a lot is already there. You just need to use it.
As for the original question :
Libraries
The dependencies can be found here. These are the external libraries that are used by this app.
-
Architecture
About that, you will mostly have to go through the code. Using Android-studio for that can be really helpful. You can use tools like this, but mostly, you will have to go through the code and understand it.
Furthermore, since its opensource project, there should be good documentation about it.
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 6 years ago.
Improve this question
About 3 month ago, I was charged to do a presentation and a demo explaining what is SOA composition.it wasn't easy to do it because latest eclipse version (neon) doesn't support BPEL projects any more, Eclipse Luna and an extension helped me in this situation.
From that time there's some questions that roam around in my mind :
why there's no new tutoriel about SOA composition ?
Are these architectures are deprecated ? if yes why are they ?
I do think (and this is an opinion) that SOAP/SOA/ESB/BPEL is obsolete and taken over by RESTful Architectures. By RESTful I don't mean things that have a primitive JSON+HTTP API, but real distributed applications, where endpoints are not dumb, but define the part of the workflow that belongs to them.
So, the two conceptual things colliding are: Do I want a central "smart" component (like ESB, and pure BPEL services) and dumb (for example SOAP) endpoints. Or do I rather have no central components and smart "endpoints" (like REST resources).
I think conceptually the latter is the clear winner in many cases (not all arguably). There are practical problems however. Companies always like to centralize. Centralization looks "neat" and "tidy", especially for an Enterprise Architect. Until the central components grow out of proportions that is.
One of my clients introduced an ESB just last year, so it's definitely not over. But I do think (again, this is just my opinion), that we already tried centralized architectures and monoliths. They always end in the "legacy system" bin, that can not be replaced because it does everything. So we know where they lead, we need to try something different. :)
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
They seem identical to java.util counterparts.
In a project I have to review these apis are used and an external jar is present for that.
But...in what they are different from java.util ones?
The Guava libraries, much like the Apache Commons libraries, are intended to complement the core java libraries, as outlined in the Philosophy Explained document:
Guava is a productivity multiplier for Java projects across the board: we aim to make
working in the Java language more pleasant and more productive. The JDK utilities, e.g.
the Collections API, have been widely adopted and have significantly simplified virtually
all Java code. We hope to continue in that tradition.
That article goes on to explain how they realise that you could implement the procedures they provide to fill the gaps in the core API yourself, but believe there are a number of advantages to using their code:
Guava has been battle-tested in production at Google.
Guava has staggering numbers of unit tests: as of July 2012, the guava-tests package
includes over 286,000 individual test cases. Most of these are automatically generated,
not written by hand, but Guava's test coverage is extremely thorough, especially for
com.google.common.collect.
Guava is under active development and has a strong, vocal, and involved user base.
The best libraries seem obvious in retrospect, but achieving this state is notoriously
challenging.
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 recently learned java by reading the book Head First Java and I also bought the book Effective Java which I'm planning to finish later. I've been searching the ways to improve Java programming skills online but all I found are algorithm practice questions just like questions in the book Cracking the Coding Interview. I finished about a hundred of them and I found they are useful; however, I still cannot see how this is related to making real object oriented applications like desktop softwares or Android Apps.
Every time I visit stackoverflow.com, under tag Java I see those questions about things that I have never heard of. I'm really frustrated. Am I on the wrong track to the real programming world?
Thanks.
There are many options you might resort to, to improve your development and design skills. And all come through developing real-purpose applications. If you are at loss yourself to find a problem interesting enough and complex enough for you to exercise and hone your skills, you can always contribute to opensource projects. For instance you might go through java projects hosted in github, pick one you like, and have a look at its todo list if any, or pick a an issue and investigate it, fix it if you can and contribute a patch.
This exercise will expose you to product-grade codebases (depending on the project your chose) and several aspects of software development and will most certainly help you improve your skills.
link for java projects hosted at github
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 9 years ago.
Improve this question
I've recently learned core Java and want to develop my skills further with practice of programming. Instead of starting out with my own project, i would like to follow a well documented and organized project which would help me understand the language better.
Can anyone please suggest some open source projects to get involved in ?
look at http://java-source.net/
my personal favourite open source java project is JDownloader
I would advise you go through some of the Free / Open Source Software sites that host the projects and start filtering your searches for Java projects with a high number of users / downloads, as they tend to be fairly mature and will allow you to start looking through them.
My main recommendation is Arianne (http://arianne.sourceforge.net/). It's won several awards and is quite professional. There are only two listed developers, and they seem quite friendly. Plus, it's a multi-tier video game engine, so there's plenty of fun you could get out of working on it.
Otherwise, check-out java.net, kenai.com, and sourceforge.net for more possibilities.
If you want an early project with potential, there are plenty, but it can often be the luck of the drawer with those.
Following are good places to contribute in open source projects..
Sourceforge
IBM DEV
I also Advise you to use Android (Mobile development) . You can make business apps and Mobile Apps using Android.