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
Please help me identify some small to medium sized open source projects that embody object oriented design (preferably in C++ or Java). I would like to use these projects to demonstrate how real world problems (as opposed to contrived text book examples) can be solved with an object oriented design. I want to be able to present a plausible explanation of why certain things were chosen to be objects and how they all work together to solve a problem.
Google Chromium (C++): windows, tabs, plugins etc. are all classes.
The Unreal Tournament Public Source Code (432 Headers) contains the declarations of the Unreal engine class library written in C++. I found it to be a rich example of a large object-oriented program. It taught me a lot about how to modularize and object-orient my code. It also demonstrates many tactics for getting a handle on a large code base.
Also, because all you can read are header files, you'll have a fun (and educational) time trying to figure out how the whole thing comes together. (I actually ended up writing my own x86 disassembler so I could cheat and read some of the definitions!)
On the same note, the Doom 3 SDK contains a large chunk of the Doom/Quake engine written in very readable C++.
Just about any large project designed in Java is object-oriented, almost by definition. You can take a look at Apache Hadoop as a large-scale, open-source, objected oriented project written in Java. Another is Apache Ant.
Eclipse would be a good example on the Java side: the plugin architecture is all object oriented.
I asked the same thing to my OO mentor. He pointed me to the JUnit sources, with the recommendation to see how it evolved version by version. This would show you how Kent Beck writes Java code.
Another example on this vein would be the sources of Fit by Ward Cunningham.
Related
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 trying to learn JavaCV. As you all know, the lack of educational materials on this subject is a very big problem. In JavCV home page, they have provided lot of examples for the C++ examples in book "OpenCV CookBook". But the case is, they are not Java, they are in SCALA!!!! Now I have already gone crazy! I know lot of examples are in web, but I want to learn it from beginning to advance, then only I can do it properly. "OpenCV CookBook" is a very good book but it is all about OpenCV in C++, not anything about Java.
Someone please help me to find a better place to learn JavaCV. Provide me whatever, URL, Book, etc. But it must be about learning JavaCV in 100% Java, not in Scala, C++, C or whatever other language! Please help!
< update >
Times change - and so does OpenCV. Right now, a pure Java wrapper (not Android) is growing fast, allowing anyone to use OpenCV functions directly in desktop Java apps/
< /update >
You can find some tutorials in Java in the OpenCV samples directory: samples/android.
You can also find some more info here.
Now, I am pretty sure you will say you want Java, but not Android :). But this requires an explanation.
For various reasons - the main one being efficiency and the second one portability to embedded platforms, computer vision is done almost entirely in C/C++. It is the de facto standard. Everybody uses it, with good reasons, and good results.
There are different adapters to the C++ code base, like Python and Java, but they exist to fill some specific gaps: Python is used for fast prototyping, and Java for interfacing the Android main language. But in all scenarios, the 'real' algorithm development is done with C/C++. This is why nobody cares about tutorials/books/examples in other languages.
Conclusion: If you want to learn image processing, learn C++ or Python. If you want to build some app, learn the OpenCV java interface from docs/android tutorials. But do not expect flexibility or control over performance.
Updated note
There are two more things to specify here.
First, as Android gets on its wheels, and Python proves more and more popular, the content available in the two languages (and others) are increasing dramatically. But for the years to come, the core development group - and the best docs - will be in the C++ area.
Last, but not least, you should keep in mind that in any work or programming area, if you stick to one language, you're dead. Principles matter, and you should be able to implement them in a variety of languages, and you should be able to read and understand from a variety of sources. What about a programmer that says he is not able to translate pseudo-code into Java? It's quite the same with other languages.
You can read the great blog post Don't call yourself a programmer to understand why you should forget about programming in one language.
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 3 years ago.
Improve this question
I am looking for a library/API that has some out of the box data and control dependence analyses for Java programs. This would be a static analysis on the control flow graph (CFG) of the given program to compute data dependences and control dependences. I would like to avoid reimplementing these techniques/algorithms if they have already been done. An inter-procedural analysis would be great, but I could work with a library that does an intra-procedural one as well.
Any suggestions would be greatly appreciated.
Edit: One thing I have found is jChord, but I haven't been able to determine yet if it actually has any of the out of the box functionality that I am looking for or if I would have to implement it myself.
Another possibility is the joeq library which seems to at least have the infrastructure necessary for doing this, but the documentation (or lack thereof) is making it difficult for me to tell what it is actually capable of.
I am sure Eclipse does plenty of data flow analysis underneath the hood, but I haven't seen anything yet that is public facing. Anyone know of the Eclipse API having stuff like this?
Try http://www.sable.mcgill.ca/soot/
OP says he is interested in non-open source systems too.
Our DMS Software Reengineering Toolkit with its Java Front End can parse Java source code in all dialects 1.4-1.7, producing full ASTs, build symbol tables, compute types of expressions, and determine control and dataflows within methods, including explicity control dependence as requested by OP.
Usually folks that are interested in advanced analyses have something other than the raw analysis in mind. DMS is an ecosystem of program analysis and transformation tools, that can be used to leverage such analyses into diagnostics about the existing code in terms of source location (drawn directly from the ASTs) or source code (prettyprinted from a subtree of interest), or to generate new code fragments (by assembling ASTs and prettyprinting them) or finally by actually changing the original code (by modifying the ASTs using procedural modifications or better yet, source-to-source transformation, and prettyprinting the modified AST).
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 8 months ago.
Improve this question
Is there a good library on the web to visualize big data in Java? Perhaps a library for statistical outputs? I know the programming language R is used to visualize statistical data in R, and I have seen a solution to connect Java and R, but it would be better if I can have a pure Java solution.
might want to check out http://processing.org/
I've had success with visualizing graphs with a commercial tool called yFiles. For more general purpose statistical data visualization, you could try Mondrian, which is GPL licensed. These both are Java libraries.
Have to mention Piccolo2D -- using it very frequently. It does not provide the ready to use data structures as Prefuse does, but it surely scales and provides a great degree of freedom in how one would want to visualise the data.
JFreeChart is a good Option. I have tried it, and is easy to set up with Eclipse too. BIRT is also nice, but if you are using it for reporting that is.
Prefuse is a pretty nice library for Java, and even lets you publish animations in Flash using a layer called Flare:
prefuse visualization toolkit
prefuse visualization gallery
On the R side, you only need to browse the gallery to see what it's capable of:
R Graphics Gallery
There's a library for Clojure (not quite Java but still on the JVM) called Incanter.
It is built on Colt and JFreeChart. It may be possible that you can just use Colt directly, but I wouldn't know.
The Weka project might be able to help you. It's an open source library of data mining algorithms written in Java. If they don't have the visualization themselves, it might be in their "related projects" section.
http://www.cs.waikato.ac.nz/ml/weka/
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 3 years ago.
Improve this question
My company has acquired several companies lately. We are a Java shop but have both VB .NET and C# .NET code bases now. I am about to start supporting these systems and am having trouble find good resources for finding the parallels/differences in .NET and Java. I have seen a few books but cannot decide which to buy, they all seem basically the same. It would be nice if anyone knows of resources that are online instead of having the information buried in a 700 page black and white book.
Specifically, I would like to find some resources that compare the macro and micro level differences. Including things like "what is the .NET equivalent of HashMap, ArrayList and Queue", and "How do I interact with a database" or "What are the differences between ASPs and JSPs".
I am really looking for some opinions about which resources are the best from people who have been in a similar situation (Java developer to .NET).
Thanks.
Read this, most importantly the Programming Guide, and bookmark the Reference.
I'm from a Java background and recently started using C# and found the MSDN very helpful. The auto-complete search field often found me the reference page I was looking for.
Force yourself to learn LINQ. It's beautiful once it clicks.
MSDN. Seriously, MSDN is quite possibly the best-technical level documentation there is for the nuts and bolts of the C# libraries. Alternately, if you want a more exhaustive treatment, something like "CLR via C#" by Jeffrey Richter really gives you a good feel for what the CLR is capable of.
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
For the past few years, I've been working on a team that does .NET and SQL Server. I'll soon be joining a team that is Java and Oracle. What can I read/do to get up-to-speed.
Start here: http://java.sun.com/javase/6/docs/
Sun's documentation is pretty good.
See also:
Hidden Features of Java
Best Java Book you have Read So Far
Overriding Equals and Hashcode in Java
What is the Most Freequent Concurrency Problem You've Encountered in Java
Javapassion is a site that offers free courses on Java. If you are on a hurry, there are 1 to 5 days courses available. You should have no problem following it, if you have experience in Java.
There are many good books for Java, but Thinking in Java is free and is good both for getting started and using as a reference.
If you need conversion of things from one language to the other here is a great website:
http://www.25hoursaday.com/CsharpVsJava.html
This, similar, SO Thread might be helpful.
Josh Bloch's Effective Java is a fantastic book. If you want to learn modern Java idioms there are few better places to look at.
Be prepared to do a lot of reading. C# (assuming this was the language you have been using)is generally regarded as an improved Java, so the Java basics will not be hard to grasp. Java development tools are generally not as tightly integrated as the Microsoft stack, thus allowing for choices to be made. Lots of discussions in Javaland revolve around choosing tools.
Get to know something about the way Java packages things (jar, war, ear).
Learn about the classpath (an endless source of joy and grief).
Build a mental picture of how things work at compile time and run time (generics and type erasure, for instance).
Visit the JavaRanch (http://www.javaranch.com/) and test your Java knowledge with the Rules Roundup! Think of it as a certification mock exam, but with cows. ("No cows were harmed in the making of Rules Roundup.")