Jayesh A Lalwani

+ Follow
since Jan 17, 2008
Jayesh likes ...
Eclipse IDE Spring Tomcat Server
Merit badge: grant badges
For More
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
expand Rancher Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Jayesh A Lalwani

One thing you might try to do is rent a whole server rather than rent hosting for a web application. If the differrence is not clear, let me try to explain it. Usually, when you go to a web hosting provider and tell them to host your web application, they will host your web application on a Tomcat that is shared with other people's web applications. If you need a database, they will create a schema for you on a database server that is shared with other people. This is cheaper for them (and for you). Also, if one of the applications starts having more load, they can automatically deploy your application on multiple servers. This reduces your headache

What you can do is get a whole server. This is costlier. However, you will be able to install whichever software you want to install. You can install Tomcat and SQL Server yourself just like you have installed on your local machine. They will also assign a fixed IP address to the server for a price. This might be costlier, and also you will have to do the work of getting more servers when your load increases. I am assuming you are not worried about load because it;s just you using it.

Google for Windows Server Hosting. There are plenty of providers. Actually, Amazon will give you a small server for free for 1 year. Other providers have reduced introductory prices too.

The right thing to do is, like Tim said, write your code  so you can switch databases easily. If you use ORM layer like Hibernate, it isolates the specifics of the database from you. It makes your code database agnostic. You could get a server for free/cheap using the introductory offers and install your software as-is. Then you can work on making your code agnostic to the database.
7 years ago
IBM modified RUP to be closer to Agile principles and released to open source community as OpenUP A guy named Scott Ambler has also modified RUP into a more Agile like variation called Agile Unified process. The wikipedia article says that AUP was superceded by Disciplined Agile Delivery

Practically, no company I have ever seen follows any pure Agile methodology. Every company adapts agile to it's own use. More often than not, people bring their previous experience into Agile, and adopt Agile accordingly. It's very very likely that there are companies in which the Director of R&D is a person who used to follow RUP, and has now some sort of Agile-RUP hybrid going on. Or a company might have adopted RUP, and then some consultant told them "you need to do agile". So, they said "We are doing agile", and adapted their RUP to be more agilish so they can get a box checked

I would say RUP has more or less morphed. You won't find anyone saying "Yes, we follow RUP". Actually, now days, you won't find any company who is going to say "You know, we are not agile. In fact, we re a big proponent of phased development" Like Junilu said earlier, this company going to have a hard time attracting talent. They will say they are agile, even if they are RUP-agile
Yes. I've met several people who take short term (6-month to year long) contracts. Usually, companies hire them because they have an expertise in a skill that the company wants to develop, or they have expertise in a skill that the company wants to use but doesn't want to hire long term. Sometimes, companies do this because hiring employees is costlier in the long run. When you are a contractor, you move from contract to contract every year or so. You won't get additional responsibilities, and you will get exposed to lot of differrent technologies. To be hired, you will need to know the technology well enough that you can do the work without training. THis means you will be responsible for your own training. The hardest part of being a contractor is that you will have to continuously learn new things by yourself. Also, some companies tend to overwork contractors. Some people don't like this, because you might end up spending 12 hours at the job + 2 hours training yourself. This leaves you 8 hours for sleep and 2 hours to eat and get dressed. You may not get time for hobbies or family. Some people are made for this lifestyle. If you are the kind of person who is glued to his computer all day, then this is perfect. You are basically making a lot of money for something you are going to do anyways. Many of these people end up taking a 2 month break between contracts just so they can relax. You come in, understand what they need, work hard and deliver. Recharge for 2 months and then get ready for next round. No other political or management bullshit. Wham bam, thank you ma'am. It's not bad, if you have the aptitude.

There are a lot of people who do this in my area. I live near Washington DC, and the government is a big employer here. It's a lot costlier for the government to hire employees than to hire contractors, so a lot of government jobs are done by contractors. There are a lot of companies whose main job is to hire people that can be contracted out to the government. The government has preferred contractors that they work with. Of course, it is difficult to become a preferred contractor, and a preferred contractor can't find everyone, so the preferred contractors contract with sub-contractors, who contracts with other sub-contractors. There's like a whole supply chain of contracting going around here. This is my job ecosystem. You might need to explore your job ecosystem to understand this better.


Or alternatively, you can look at startups. usually, startups need people who can roll up their sleeves and get the job done. Since the entire company will probably be a 2-pizza team, there's probably going to be very little bullshit. You work there, get to them the point where they get funding to get to the next level, and take your exit to the next startup. You will probably be paid more in equity than in salary, and you will be taking risk. If the startup tanks, you won't get paid. You can say you did some cool things, though. You will have good stories to tell your friends. You should do this only if you can afford it. Agian, it depends on how many startups are there in the place you work. Very easy to do this in San Francisco. A lot harder in Podunk town
7 years ago
In the software industry, if you aren't growing, you are dying. The easiest way to make yourself obsolete is to do the same thing day after day for years. Sooner or later, someone will find a way to do your job in a better way, or find a way to automate parts of your job. So, if your question is "Should I look for new roles?" Yes, you definitely should!

However, the big question is "As what?" One thing that is constant in all software engineering roles is that the role can became very tiring if you don't like it, and can be a breeze if you love it. And if you hate your role, you are going to leave it. It doesn't matter what it is. So, one thing is for sure, don't take a job that you know you are going to hate.

So, what kind of job should you take? You might need to do a little more introspection here, and you might want to do more research into your job ecosystem. There are various ways one can grow in software industry without becoming an Architect. One way is to become a contractor and work short term gigs. However, you will need to understand what you are getting into. There are pros and cons in every job.

Personally, I've taken challenges that I have opened up. I haven't really a plan for my career. I just go where I find something interesting. Yeah, after 20 years, I'm not a CTO of some company. But, I've had interesting experiences, and I have made lot of money.
7 years ago
I know a big bank in New York that adopted SenchaJS as it's platform for front end development. They are building using SenchaJS at an enterprise scale. Unfortunately, I cannot say the name of the bank.

I believe the reason why they adopted Sencha is because it has a huge library of components, and it allows the components to be extended easily. Angular, OTH, has a huge library of components in the extended open source ecosystem, and enterprises tend to be nervous about that. Also, extending components in Angular is a bit hokey. AFAIK, you can create components in Angular by using directives, but it's rather limited in extending directives. You can wrap a directive in another directive, but you can't truly override behavior in an OOP sense. Sencha, OTH, is designed to override behavior in the components. Take this last part with a grain of salt, because I'm still learning angular, and would love to be corrected.

IMO, SenchaJS is to Javascript what Spring is to Java. Highly componentized, highly extensible, hard to master. It fits in nicely with the mentality of "enterprise architecture". Angular. OTH, is rather quick to start and build apps with. It fits more into mentality of microservices. The reason you don;t hear about SenchaJS is because it doesn't fit in with the cool kids.
Used to be that the File upload Input box was seriously limited. It used to be very frustrating to deal with it.

In HTML5, there was a major improvement to the File chooser, and there is a Javascript API that lets you do advanced querying of file attributes and filtering. https://www.html5rocks.com/en/tutorials/file/dndfiles/ However, this means that you will have to upload the files using Javascript. It's more complicated to implement than dropping a control on an HTML page. I believe I have seen someone create an angular directive that allows you to drop a HTML tag in an HTML page that supports more features than the standard file upload (and if you are not using angular and didn't understand a word of the preceding line, don't worry about it :lol:)

Obviously, this won't work if your user has disabled Javascript. Most websites will provide a feature rich uploader that works only when Javascript is enabled, and fall back to the standard uploader when Javascript is disabled.
How are you managing your dependencies? You need to make sure you don't have multiple versions of the same library in your classpath. Intermittent Classloader problems (they usually show up as NoClassDefFoundError or No SuchMethodError) are usually because of this. I would look at the class that it's complaining about and try to see if the class is in multiple jar files

Since, you are familiar with C++ you are probably familiar with the term DLL hell. This happens when 2 versions of the same DLL are in Path. Sometimes the application picks one, sometimes the other, which results in intermittent problems. This is Java's version of DLL Hell, which I call Jar Hell. You have 2 versions of the Jar in your classpath, and sometimes it picks one and sometimes the other. Which one it picks depends on many factors, including but not limited to a) what you have done before b) which house Mars is in, and c) how many crows are flying over New York
8 years ago
Yeah, if the format changes, maven builds will fail all over the world. They might change the format when a major version of maven comes out.

If you are making a Mojo, you might have a way to do this using the Maven api. I don;t know enough to give you an answer. However, if do a little digging, you might find an API that maven provides. of course, you will be able to use it inside a Mojo only
8 years ago
Maven repositories follow a standard format. You can easily enumerate all the artifacts by browsing through the maven repository. You don't need a REST API (although it would be nice to have one) mvnrepository.com, despite the URL, isn;t the maven repository. It's just a website built on top of the real maven repository. The real maven repository is at http://central.maven.org/maven2/

So, what you can do is write a program that
a) opens up a connection to http://central.maven.org/maven2/org/apache/derby/derbyclient/
b) gets the response which is an HTML file. THe HTML file will list out all the versions of the module
c) Parse the HTML file.
8 years ago
Yes, Tim is right. You want to import the project as a Maven project. If you can build your maven project from command-line, and you are have imported the project as a maven project into eclipse, then you should be able to build the project without any problem. All eclipse does is run the same command-line that you run

If you are unable to build your project from command-line, then there is something wrong with your project, and you need to fix that first before it runs in eclipse.

If you haven't imported the project as a maven project, then you should do so right now. Eclipse doesn;t stop you from creating a normal java project and importing your source files into it. You will create a lot of headaches if you do this

8 years ago
Let me put it this way: The "disagreement" is between a person who gets paid to improve software processes, and has been a contributing member of this board for 10 years and another member who has been kicked out of the board for presenting wrong information in multiple forums. If you want to give equal weight to both opinions, then it's your loss. I have bridge to sell. You want to buy it?

Software development is not a democracy. Just because 2 people say conflicting opinions doesn't mean that they are equally valid. You need to understand the analysis behind opinion. I have given you a pretty detailed explanation of why it is a bad idea to push artifacts right from your repo into production. The other guy has said "Sure, I did it. you can do it too!"
Right, way back, back when C++ and Java were competing with each other,one of the main differences was that Sun was a big player in the open source ecosystem, whereas Microsoft was a big proponent of closed source development. As a company, Sun adopted, and even enabled open source ecosystems. On the other hand, Microsoft believed (and still believes) that they are the final arbiter of what tools developers should use. It prescribed a list of technologies that came with Visual Studio, and it was difficult to step out of it.

Both methods have their merits. Within a open-sourced ecosystem, you have a lot of choices for the same thing, and some time, one of these choices wins out over the other choices. This has an advantage that you are not stuck with the limitation of one library. If a library doesn't suit your need, you find another. However, the problem is that making the choice is the hardest thing about a project. Most developers don't realize this because someone has already chosen a tech stack for them, and their challenge is to learn and use the tech stack. However, being in a position of selecting a Java based tech stack is very challenging. They only way to know if a tech stack works is by using it. However, you need to decide before hand. If you are an architect, and someone asks you to recommend a tech stack, you know that you are making your best judgement , and your job depends on it. On the other hand, your job in a Microsoft ecosystem is easy: You use the tool that Microsoft gives you, and you know everything will work together. If the tool doesn't do what you want it to do (or makes it difficult), you shrug your shoulders and say something about technical limitations or such. You can squarely put the blame on Microsoft's shoulder and Microsoft is more than happy to take that blame. They get a good excuse to sell your company the next version of Visual Studio.

10 years down the line, this lead to fundamental differences in philosophy. Java development had become more about people. Microsoft development had become about process. When, you have a Java based tech stack, you will ultimately need to switch your tech stack, sooner or later. You know you don't have the best tech stack now, and even if you do, a better one will come in 3-5 years. So, if you are planning for long term, you need to hire smart people who can learn the new tools by themselves easily. If you are in a Microsoft stack, you aren't competing with other companies like you on the strength of your developers or technology choices. You are competing on how well you can manage your projects. So, emphasize on the process. Streamline it to heck. As a result, Java shops eventually evolved into kind or organized chaos, where everyone is trying to pull the tech stack in differrent directions, and what you get is something that either the head honcho loves, or no one hates. Whereas, Microsoft shops became these efficient machines of beauty. In other words, Java shops are meritocratic democracies, whereas Microsoft shops are hierarchical dictatorships.

Of course, what do large companies prefer? Hierarchical Dictatorships?! It fits nice into how bean counters think companies should work. They don't like the mess that goes on in the dungeon of a Java shop. So, there was a need for "prescribed tech stacks", or in other words, Microsoft like tech stacks that tell you exactly what you need to use, and you don't have to go hunting for solutions. There are 2 such stacks that I know of (maybe there are more): Spring and Oracle ADF. Spring is free. Oracle is paid. Spring doesn't provide support (unless you consider hiring a Spring consultant as paying for support) and makes it's source available for you to look at. Oracle provides support.

So, coming back to main challenges of a Java developer. It entirely depends on the company you work for. You are working in a company that tries out and adopts every open source solution out there, then you will be struggling with learning new technologies and figuring out how to make them work with each other. If you are working at a company that s using a prescribed stack, then you will be spending most of the times fitting square pegs into round holes.

8 years ago
This will work, but it's the wrong way to do this. What you should do is create another Jar module with the classes that are shared, and add a dependency to the jar module in the 2 war modules. maven will build the jar and then package the jar inside both wars.
8 years ago
With Spring Boot, I can create a new web application project in 2 minutes. Maybe you are taking longer because you are not using the right tools
8 years ago
I'm not an expert on Wildfly, but reading the error sounds like you already have a jar deployed with that name. Maybe try undeploying and deploying again
8 years ago