What are the good sources to learn Apache solr for Java developers?
Assuming that you are a experienced developer, have designed and implemented databased applications and understand the concepts of NoSQL (Documented oriented databases), Webservices (REST) before it would be easy to pick up Apache Solr regardless of your programming background.To learn Apache solr implementation itself, then it would be easy for you as its purely written in Java (written on top of Lucene engine)To implement Solr with your existing project, Solr has SDK's (Client APIs) for most of the programming languages. So long you have understanding of REST/Webservices, it would be easy for you to start with Solr.List of Client API's for Solr Apache Solr Reference Guide If you are a beginner, start with understanding What is Solr, how does solr helps you with your existing application infrastructure. We all are familiar with Full-Text search feature available in our existing DBMS and their overhead and limitation. Solr offers much more then full-text search (Look through its features and compare them with available database systems).To get better understanding of Solr and its fit in application develop, I would suggest you to go through Slides in SlideShare.net . Just glance through few slides and you would roughly get an idea of what is Solr is all about.Few Slideshare slides Introduction to Apache Solr. http://www.slideshare.net/arafal... Note that, Solr is not a replacement to existing Database systems but its an advantage to use Solr with your existing database to leverage its features over database systems.
Is AWS for Java professionals?
AWS is cloud based platform that is used to building various applications with various programming languages. So it is not the case that it is only for Java professionals or programmers, the programmers of PHP, C, BigData, and Python can also go for AWS. Having a sound knowledge of any programming language is okay for understanding the deployment part of any web application.But you should have a sound knowledge of operating system and networking to learn more deeply and easily about AWS concepts.
So I learned the basics and some more advanced concepts in Java. Where do I go from here?
tl;dr accept that you will never know everything you need to know at the start of your project, and if you could, coding it would be boring as hell. Now get in there, code, and struggle a bit.This is the problem with everyone saying "learn to code...learn to code!". Learning to code gets you nothing. It gives you lots of power, but it gets you zip, squat, zero. This next step is hard. You need to pull yourself away from all the "Learn java in 24 hours" books and even the "Learn how to use java generics to make your data structures super effective" articles. You probably had enough knowledge for your next step, which is to make something of interest to you, a while ago. What do you want to make with java? For instance, a website, a game, something to solve a particular problem? If you feel lost, unable to use what you know to make what you're trying to make, good. That's the nature of creative work. The project that you're making has never been made before. You should feel lost, think hard about what you're trying to do, ask for help, and then try again. Solving real problems is an order of magnitude harder than learning syntax and concepts, because there's no right and wrong. So just do. Write some code. Some will be good; some will be shitty. But after you're done with that project, do another, and another, and all of a sudden, you have some decent code; and look you've "mastered a language", whatever that means anyway.I wish I'd given myself permission to go in not knowing everything - even anything - about the languages / frameworks I'm about to use. It's really exciting and you learn so freaking fast this way. It's just not what we're used to; in school, you just learn learn learn and don't apply. Coding isn't school; go fuck around a bit and have fun!Perhaps not the answer you were looking for, but the one I've come to time and again.
What are TCP, UDP, Proxy, port, local host, ip address?
TCP and UDP are simply put two ways of sending data from one place to another. TCP ensures that the data you get is always right, so it does a lot of checks for you. That makes TCP connections a bit slow. UDP tried to make the data reach you as fast as possible. It sometimes makes small mistakes because of being in such a hurry I would suggest that if you are downloading text documents like ebooks etc. use TCP If you are listening to songs, use UDP (you will not even notice the difference of sloppy delivery) Proxy (Server) is a large computer that does the surfing for you. So assume that you want to go to yahoo.com, yahoo will find it very hard to handle all the people who want to see yahoo.com at the same time. A proxy server can then visit it for say 100 people and next time, if you ask for yahoo.com, it can send you the page all by itself (so yahoo is not overloaded) and you think the service is faster. IP address is a way all the computers connected in the internet identify themselves. Each computer is given 1 unique IP address (much like we all have postal addresses). So if you know the IP address of each computer, its easier to reach that computer, rather than meander arounding asking people whether they know where this computer is connected. An IP address looks like 192.168.12.234 Port is like an electric socket at your home. Assume that you hv two TVs at your place, and both are tuned to different channels. So even if the channels knew that they are broadcasting the stuff to the same house (or IP address), they know that eventually it goes to two different sockets (or ports). Your computer has one IP address, but multiple ports. These port are numbers like 80, 3012 etc I am simplifying all these terms for you to understand. I will recommend that you talk to your ISP or a local "computer-expert" to help you identify the exact proxy, IP address, port etc for you. All the best!
Is it possible to write a GUI code in Java without NetBeans or Eclipse?
First of all, you got a wrong notion about GUI. GUI's are code fragments written entirely in programming languages. Java for example has separate packages written entirely for GUI's like awt package and swing package. For example: When you create a class in Java and extend it from JFrame, the output will be a frame on the screen(window more precisely). Similarly you can create buttons, textfield, combobox.. Ofcourse you can do this with GUI builder plugins, but coding is the actual way. When you create GUI with Eclispse or NetBeans, what happens is, the particular code for developing the GUI is automatically entered into the source code by the GUI builder (Eclipse and NetBeans are just IDE's) and can serve no other purpose than helping developers to code better (like syntax highlighting, GUI builder, support for git.. ).