Win a copy of Java by Comparison (eBook) this week in the Java in General forum!

R. Grimes

Ranch Hand
+ Follow
since Aug 23, 2009
Cows and Likes
Cows
Total received
0
In last 30 days
0
Total given
0
Likes
Total received
13
Received in last 30 days
0
Total given
0
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by R. Grimes

Passion counts for a lot. Here's how I've gotten to where I'm at over the past 30 years. This is just to give you ideas.

For my first job, I worked for free for six months just to get the experience. When a position opened up, they gave it to me because I had proven myself.

Twice, I've taken significant downgrades in pay to get a job with another company because I knew, in the long run, it was a step up.

I remember another job that I got because they required a code sample, and I didn't have one. Nor could I get a copy of something I had done because I had already left my job. I offered to sit down for a couple hours and pop out a batch report program, based on a design spec they had available. No, I didn't finish the program in two hours, but it gave them something to look at and judge my coding skills. It also impressed them that I would take that kind of initiative. They hired me almost immediately.

There is ALWAYS a door open to the ambitious, enthusiastic, and willing to humble themselves enough to take a step down in order to take an eventual step up.

Finally, and I don't mean to insult you, but you should really ask for a heart-to-heart conversation with the person who moved you from development to administration. I have seen this happen before, and it's usually because the person is not a very good developer, but is well liked and so they wanted to find a place within the company for them. I guess what I'm saying is you need to gain an honest objective perspective on your developer abilities. If for no other reason than to find out what level you're truly at and what you should shoot for when looking to get back into it all.

If after doing so, you objectively judge that you truly have what it takes to be a developer, then I would look for an entry level position in a company where they have ongoing needs for developers of all levels. Just be frank, and tell them you are looking to get back into development and are willing to come in as an entry level person for a few months with the condition that they do a re-evaluation of your level after that period and place accordingly within the company.

It's a small gamble for the company to make and they'll be impressed. What companies are looking to avoid is risk (hiring a dud at a high salary and turns out to be a non performer). You need to mitigate that risk so they see they are risking nothing or little.
4 years ago

Richard Tookey wrote:R. Grimes presented an argument that ECC was superior to RSA but since I was not advocating RSA as the primary encryption algorithm the argument was irrelevant.



Oh, I'm sorry. I thought that, in your post I was responding to, you said:

"Even then I would probably use RSA rather than ECC since RSA is ubiquitous and ECC is not (at this time) ."
5 years ago

Richard Tookey wrote:

R. Grimes wrote:I think if I had to encrypt that large of a file, I might explore ECC (Ellliptic Curve Cryptography).



I wouldn't ! Ellliptic Curve Cryptography is slow compared to AES which is the industry standard.



Well, readers can refer to this document from Oracle, who apparently has a different view, and decide which is best. See link.

A couple of noteworthy quotes:

"The Elliptic Curve Cryptosystem
(ECC), off ers the highest strength per bit of any known
public-key cryptosystem today."


"We repeated these experiments using 2048-bit RSA keys
and 193-bit ECC keys. We found ECC to perform better
than RSA without any exceptions, "

For a bit more recent document, if the above is too dated for you, I would refer to this 2010 abstract.

A noteworthy quote from this document is:

"From the above we conclude that, computationally speaking,
cracking 160-bit ECC is at least three orders of magnitude
harder than cracking 1024-bit RSA. "

Or, perhaps this presentation, given by QualComm in Nov 2012. See page 10 for speed comparisons.
5 years ago
I think if I had to encrypt that large of a file, I might explore ECC (Ellliptic Curve Cryptography).
5 years ago

Rob Spoor wrote:

R. Grimes wrote:s.isNullOrEmpty()?


That would cause a NullPointerException if s is null, because you can't call any (non-static) methods on a null reference. It would be better if an isEmpty(String) method made it into a java.util.Strings utility class, like how they introduced java.util.Objects in Java 7.



Makes sense. Hadn't thought of that when I was throwing out the ideas last night. But, yeah, if s is null, you can't call a method off of it. So, your way is a better fit. I guess my main point is, like Joe said, a lot of us use some pretty common StringUtil methods from non-core packages. Seems like some of them, if not a lot of them, ought to be incorporated in the jdk.
I"m a simple guy. My wishes are small, since I don't think I'll ever come close to using the full power of Java as it already exists. But, I really hate having to do repetitive stuff like



There's already equalsIgnoreCase. How about equalsIgnoreWhitespace? Or, equalsIgnoreCaseAndWhiteSpace?

Also, I hate having to to check strings for both null and empty. So, instead of



s.isNullOrEmpty()?


Yes, I know there are Util packages out there that does that kind of stuff, but this is pretty basic stuff and should come with the basic JDK. Simple things like this can remove a lot of clutter. I'm always amazed at how Java makes hard things simple, and simple things overly complex or verbose to achieve.

Ron
Oh, oh. That's not a good sign if you want to know the minimum score. ;)
I think there is a mentality amongst the younger developers that development languages are like iPhones - the newer it is the better. And, you must adopt the newest for fear your friends will laugh at you for not being up with the times. And, this is a good reason why a company's development stack should NEVER be left to the decision making of anyone under the age of 35. They just haven't seen enough to know what's best, and the decisions are more likely to be based on what's cool than what works.

Ron
I must admit, I come to jQuery (via ZKoss) quite reluctantly. We (my company) changed last year after Flex was made the red headed step-child by Apple and Adobe. Quite frankly, I've always felt the only insulation from cross-browser hell was through something such as Adobe's AVM, so as protect the developer against browser idiosyncrasies. Now, I guess jQuery is meant to insulate us from all that. Just curious, how confident are you that, in five years, we won't find that the currently acclaimed HTML5, along with supporting technologies like jQuery, are made obsolete or passé?

I can't help but wonder, "Really! Is HTML and JS the best we can do?"

Ron
Well, I'm happy to be part of the 1,000,000,000 "no ones" who use Java via the Android O/S. I guess someone forgot about Oracle's lawsuit against Google over its Dalvik VM.

Seriously though, the reason I opted for Java as part of our stack is due to the enormous community involvement, which is really unparalleled. Need a cryptography package, someone has created it. Need a package to create spreadsheets or office documents, someone has created it free of charge. Need a package to marshall and unmarshall XML, someone has provided it. The list is endless.

Choose another language, and you'll be asking on their forum, "Hey, does this language have something like JAXB - you know like Java has?"

I suspect that the reason a lot of the original poster's friends have chosen other languages is not because those languages are better, but are easier to learn than Java. Let's face it. Java is not for the lazy.

Ron

Eric Pascarello wrote:
You insulated yourself by putting the scripting logic in another developer/company's hands. The server is not running the code, that framework is outputting the code onto the client.

There are plenty of frameworks that do this, you have to hope that everything you need is supported by their framework.



I think you need to do a little more studying up on ZK. Your assumptions are false. First, it's open source. Second, read up on the difference between their script and zscript tags. You'll see it's not simply a matter of producing the code and outputting it to the client. Not to be insulting, but I don't think you have any experience with ZK to be making these assertions.

Eric Pascarello wrote:
If you have been away from the technology, you are basing assumptions on old facts. At one time smoking was good for you and recommended by 2 out of 3 doctors!



Again, you're mistaken. You've made an assumption that, just because I don't currently develop in HTML5, I'm not abreast of what it takes to do so. Take a look at elladesign.com, which is cited by 1stwebdesigner.com as the best example of an HTML5 website. Just love that code ...

if it's IE9, do this. If it's IE7, do something different. If it's less than IE7, do something else.

Yeah, modern HTML5, as evidenced by the award winning elladesign.com, sure has gotten us past that cross-browser compliance hell.


Ron Grimes
My question is a bit more philosophical, rather than a "how do I?" question.

We (the company where I work) had been using Flex on the front-end since 2006. I liked the idea of an AVM interpreting the bytecode in the browser so that I could truly write-once and run-anywhere without testing on multiple browsers and multiple versions within each browser, such as I had to do in my previous DHTML days. But, Adobe has kicked Flex out the door to go live with the neighbors. So, I don't really feel like it (Flex), along with FlashBuilder, has a roadmap I can rely upon.

Consequently, we looked for a new client-side technology. In spite of Adobe saying it felt HTML5 was the future of enterprise web application development, it just seemed to me HTML5 is far from delivering what Flex can do right now. Further, I have a problem committing to HTML5, which, to me, is really nothing more than DHTML 2.0. And, the reason I abandoned DHTML is because I could not rely on browser manufacturers (hello Microsoft) to not try and co-opt things by going around/beyond the W3C specs.

So, now everyone is jumping back on the HTML bandwagon, apparently suffering from amnesia as to the hell it was to make your web apps work across all browsers and their multiple versions.

Finally, my question is, "How confident are you that HTML5 will not suffer the same fate as DHTML, and we'll be stuck in cross-browser compatability hell...again?"

As for us, we decided to go with ZK. I now feel the only way to insulate ourselves from these problems is placing on the server the scripting logic that normally breaks the browser on the client side.

Very interested in your point of view.

Ron Grimes
The only thing you can do is either enable or disable "integration with browser navigation" on the "Flex Compiler" options panel. But, you cannot prohibit the user from using the browser back button.
6 years ago
I've been getting this a lot lately (see below). This happens randomly with different classes. To fix it, all I generally have to do is run Project -> Clean, and then repackage the war, and all is fine.

My environment:

Tomcat 6.0.32
Spring 3.0.5
Windows Server 2003

But, I've seen this with Tomcat 5.5.23 and Spring 2.5, as well.

If anyone has a clue as to what causes this, would love to know. Btw, I use MyEclipse on a a Windows 7 system to develop, package, and build the war.


SEVERE: Context initialization failed
org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [com.soc.ds.dao.CardTypeDaoImpl] for bean with name 'cardTypeDao' defined in class path resource [applicationContext.xml]: problem with class file or dependent class; nested exception is java.lang.ClassFormatError: Truncated class file
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1253)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:576)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1319)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:885)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:562)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4205)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4704)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1383)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1385)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1649)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1658)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1638)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassFormatError: Truncated class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:257)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:408)
at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1271)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1242)
... 25 more
6 years ago
Are you sure you didn't create them in the "user variables" section instead of the "system variables" section of the environment variables panel?

Ron Grimes
6 years ago