Riyad Kalla

MyEclipse Support
+ Follow
since Jul 30, 2007
Merit badge: grant badges
For More
Cows and Likes
Cows
Total received
In last 30 days
0
Forums and Threads

Recent posts by Riyad Kalla

Jordan (and anyone else interested),

A few years ago I was working on implementing a robust feed parser; for anyone that has done real-world feed parsing you know that following the specs is one thing, but being able to parse the mess of illegal characters and mis-used tags out there, even on some of the biggest sites, is another.

I went from using SAX, to XPath to eventually using pull-parsing which was the fastest way to parse (faster than SAX in the exhaustive testing that the Sun team did for the Pull Parser RI).

Working on the parser month after month I kept adding more and more abstractions to the parsing, realizing the reoccurring pieces of logic that could be pulled out. It eventually resulted in me created a brand new parser: SJXP (Apache 2 license)

SJXP encapsulates the ease of XPath (minus dynamic expressions) with the raw speed and low overhead of XML Pull Parsing. To speak to the raw performance, you can check out the benchmarks (it's included directly in the bundle if you want to try it yourself).

This is not a re-implementation of a core parsing library, but rather a VERY thin abstraction layer on top of one of the fastest XML parsers out there: XPP. For those that don't know, XPP is the backing implementation for XML parsing on the Android platform, so SJXP works with no dependencies on Android out of the box and on any other platform you just need to include the 1 xpp JAR.

Usage of SJXP is all based around defining "paths" pointing at elements or attributes that you want to be parsed, giving the rules to the parser along with callbacks and the parser will call your code every time the rule is matched, giving you an opportunity to do something with the information.

For example, if I wanted the title out of the snippet example you gave, I would define a rule like:



then give that rule to an XMLParser instance:


Now when I use the parser instance to parse content like that from any input source, your rule will get called for every title element. The actual character data (title of the book) will be contained in "text", and userObject is an optional reference to a user-object passed through from the parser IF you want and use it. For example, this might be a database DAO or some other storage class to hold the parsed value (even a List<String> if that is all you wanted would be fine).

All this is similar if you want an attribute value, just change the type of the rule and the overridden default method (handleParsedAttribute).

One of the biggest boons I think SJXP adds is how easy it is to support parsing elements and attributes that are qualified by a namespace. SJXP does this with [] notation, more specifically: assume you were parsing an RSS feed like TechCrunch (http://techcrunch.com/feed/) and you wanted the author name out of EACH post.

If you open up the feed, you see that the author name is stored in the <item> elements in a <dc:creator> subelement. If you are familiar with prefixed elements, you know that "dc" must be a prefix defined somewhere up in the root element of the feed.

So you scroll up and look at the root element and see that "dc" is the prefix for the Dublin Core specification of tags defined by the URI "http://purl.org/dc/elements/1.1/".

So, given that, the rule you would define in SJXP to parse out the author information would look like this:


You'll notice that you just include the full URI in []-notation before the element name to fully qualify it. The same even goes for prefixed attributes!

I've really tried to make the API as simple as possible and think it might offer you what you want in a much easier-to-use package with some of the fastest runtime and lowest-memory overhead performance out there.

If anyone is interested, you can read through the closed bugs on GitHub to get an idea of the optimizations that have been made that place the overhead of SJXP ontop of XPP to something like 1-2k of memory, it is really tiny because of things like using the hashcodes of the paths to match them instead of String comparisons and caching the locations in the doc as it's parsed so the hashcodes aren't recalculated all the time since XML is a structured language, this was a huge win.

I would encourage anyone skeptical to run HPROF on the Benchmark class to see SJXP in action and look at the memory and CPU allocations directly from the VM to see how tight the library is.

The project has been getting more pickup in the Android community and gotten a lot of good feedback. If any of you give it a try and have comments, please let me know!
Kobe,

We found that with a huge majority of our users, the difference between "Free" and "$30" for MyEclipse was almost no difference. You figure you can go to a fast food place with a friend, and get two super sized meals for about $20 and that's just for lunch, what's $30 for a *year* for an IDE that helps you work?

It's 8 cents a day.

I don't think we have plans on doing a Free version any time soon.
Rizwan,

You can create that WAR file a number of different ways from a MyEclipse Web Project. I would encourage you to walk through our Web Project Tutorial.
Vijay,

Yes, there is a "TCP/IP Monitor" tool in MyEclipse, you can open it under Window > Show View > Other... > MyEclipse Common > TCP/IP Monitor

You can then setup a listen/redirect port and route your traffic through that, like a proxy, and the monitor will show you everything passing through.
Peg,

MyEclipse is specifically geared at Web and Enterprise development, so the comparison that might be more applicable for you is NetBeans + J2ME tools versus Eclipse + EclipseME or some other J2ME tooling for Eclipse.
Keith,

Prasad is correct, not that this immediate point in time... but who knows what will happen in a future release
Ganesh,

MyEclipse includes one of the best Swing GUI Designers out there: Matisse4MyEclipse (based on the excellent Matisse designer from NetBeans but integrated completely into the MyEclipse workbench)

You can check out some of the features of Matisse4MyEclipse on the feature page and also check out any of the introductory documentation on Matisse4MyEclipse from our documentation page.

The design of the GUI panels is straight forward, enhanced by Drag and Drop "snap to" guidelines that are determined by the designer to adhere to platform specific standards and creating custom Panels and adding them to your Palette for later use further enhances the experience and speeds up development.

If you haven't tried it out yet, I'd highly encourage you to.
Arulk,

I think I've covered this in quite a bit of detail at a few other threads already. Try here, here and here.
Arulk,

In short yes, we provide a lot of JSF-specific tooling; for more detail please check out our detailed JSF Feature Overview.
Phal,

If you mean general network topology or diagramming, no, Vizio is a dedicated tool for this process.
Chris,

Great question. For production we never recommend Milestone releases (always Beta, we never release Alpha because it's hardly usable), but that doesn't stop our early adopters

There are quirks in 7.0 so far that are percolating up from Ganymede, that is one of the reasons we pushed our 7.0 GA release out, so we could pick up the 3.4.1 patch release from Ganymede in the process and have a more stable experience for everyone.

While there are some quirks, we didn't come across any full breaks of functionality. What I would suggest is doing a dual-install of MyEclipse 6.5 and 7.0, side by side (in different directories) and you can go ahead and fall back to 6.5 if you run into some snags in 7.0 that are show-stoppers. Otherwise it should be smooth sailing for you.
Gregg,

I know you want the full detailed break down, but I can't provide it. I am not familiar enough with IntelliJ to do a good comparison for you. My suggestion to you would be to make a list of the 5 technologies you use the most (e.g. Spring, code formatting is important, web projects, deployment, GUI design) and then look at how well either IDE supports those things that you do the most of.

These questions used to be easier back in the day when there were like 3 or 4 IDEs and most frameworks were just a series of config files and a few JARs... now with *entire IDEs* springing up around individual frameworks it's impossible to try and give a line by line comparison about which IDE is "Better", I have no idea what your work flow is.

Maybe I say "we do complete Hibernate, JPA, EJB3 entity generation with Spring integration the best in the industry" and you say "I don't use any of that stuff", then that means that feature has no value to you and you just have to compare the IDEs at some other level.

Some people purchase MyEclipse soley for the DB tools (no joke) because they replace TOAD for them... other people use MyEclipse only because it's based on Eclipse and that allows them to use their 4 or 5 favorite plugins that are "must haves" that NetBeans/IntelliJ could never have.

I really do think the best thing is to evaluate what you do typically during your day, and then see which IDE helps you out the best.
Nickolas,

Awesome news, we really appreciate the 14th Weather Squadron's developer team support of MyEclipse.

As far as the thumb-drive goes, there are a surprising amount of folks (atleast to us) that like to do this. If you drop me an email at [email protected] ATTN Riyad with a more detailed description of exactly what kind of hickups you are hitting I can try and help.

I would also point out (NOTE: Commercial product pitch coming...) that Pulse's Freelance subscription level will more or less provision not only completely custom software stacks for you (MyEclipse + Favorite Plugins + Custom Update Sites) but also a complete workspace (CVS, SVN, etc. Repositories, Projects from specific Branches, Entire workspace preferences, etc.) all saved against a profile and shared with everyone on your team... so you pretty much share say the "Weather Squadron MyEclipse Profile" with your team of guys, and they all just hit "Run", and Pulse sucks down all the software and all the workspace information to materialize that *exact* setup you prepared on everyone's machines.

The Freelance subscription is $6/mo per developer if that sounds compelling.

If you already have a strategy in place with the thumb drives I completely understand, I just wanted to toss that out there; some of our bigger teams fell in love with this feature and some others could care less, just depends on the team.
Lakshmee,

I am not personally aware of an Eclipse plugin for WebUIJSF, sorry.
Mary,

Yes "MyEclipse Tomcat" is an embedded version of Tomcat 6 in MyEclipse. Right out of the box on a clean install of MyEclipse you can start/stop MyEclipse Tomcat from the Toolbar (with the server drop-down control), or from the Servers view, or by right-clicking on a project and selecting "Debug As" or "Run As" then "MyEclipse Server Application", thsi will auto-deploy your project and fire up the app server and open a browser to the default app page.