First experience with Groovy and Grails support in NetBeans 6.1 (Marcel Overdijk)

March 26th, 2008

Marcel Overdijk writes about his first experience with Groovy and Grails support in NetBeans 6.1:

Recently many blog postings related to NetBeans with Groovy and Grails integration appeared on groovyblogs.org. See Guillaume Laforge’s Groovy / Grails support in NetBeans and GlassFish blog entry for a complete summary and links to related postings.

When I was reading those posting I felt it was time to try it out myself.
After downloading the latest NetBeans 6.1 nightly build and installing the Groovy and Grails plugin, I was ready for a testdrive.

Creating a Grails project

Creating a Grails project has never been easier. The NetBeans 6.1 Groovy and Grails plugin contains a New Project wizard for creating a new Grails project.

After creating the project (NetBeans is calling the Grails create-app command underwater), NetBeans displays a nice project structure specially for Grails projects.

See how NetBeans nicely devides all Grails artifact types (like Controllers, Domain classes, Scripts, Services, etc.) in separate folders.

Creating Grails artifacts

The NetBeans 6.1 Groovy and Grails plugin features context menus for creating Grails artifacts like Domain classes etc easily. After clicking the context menu item, a dialog is opened to enter information needed to create the Grails artifact.

After creating the domain class a context menu is available for generating the controller and views.

NetBeans is always calling the Grails commands underwater and this means that when generating the Views from within NetBeans also customized templates can be used. As far as I could find the install-templates command could not be executed from within NetBeans, so you still need the Grails command line.

Code-completion and syntax color highlighting

The NetBeans 6.1 Groovy and Grails plugin offers Groovy code completion and syntax color highlighting. To bad the current version does not yet include code-completion for Grails dynamic methods.

Running a Grails application

From within NetBeans the Grails application can be started (run-app) using a context menu on application level.

Notice also the context menu item to generate a war archive or to see statistics.

Deploying a Grails application to GlassFish

Reading the other blog posting it is also possible to deploy your Grails application in GlassFish, but I didn’t tested this myself yet.

Summary

My first experience with the NetBeans 6.1 Groovy and Grails plugin is good. Nice to have those context menu for executing the Grails commands from the IDE. However code completion, and specially for Grails dynamic methods, need to improve to really compete with IntelliJ. But I really believe this will happen in the near future!

Tags:

More Than 250,000 Travel Shoppers Using Yapta (MarketWire)

March 26th, 2008

Via MarketWire:

SOURCE: Yapta, Inc.

Mar 26, 2008 08:00 ET

More Than 250,000 Travel Shoppers Using Yapta for Immediate Airfare Tracking and Price Drop Alerts

Online Personal Travel Assistant Helps a Quarter-Million Travelers Get the Most Value for Their Online Travel Spending

SEATTLE, WA–(Marketwire - March 26, 2008) - Yapta, Inc. (www.yapta.com), an online travel shopping service that tracks airline ticket pricing for leisure and business travelers, today announced that more than 250,000 travelers have registered for the service since it launched in May 2007. Yapta also announced that its users have tracked over $400 million worth of flights and that it has alerted travelers to more than $25 million in total airfare savings.

“Serving as the personal travel assistant for a quarter of a million people is not only a milestone achievement for Yapta, but it also represents the increasing demand for an easier way to plan travel online and to optimize travel spending,” said Tom Romary, president and CEO of Yapta. “Yapta’s users are savvy and appreciate having travel planning tools that make finding the ideal flight more convenient and provide assurance that they’re getting the most value for their travel dollar.”

According to current customer data, 73 percent of all flights tracked by Yapta are tracked during the planning phase prior to purchase, meaning the majority of travelers use the service to shop for the lowest available price on the flights they want to take. Meanwhile, the remaining 27 percent of flights are being tracked on a post-purchase basis, allowing travelers to be alerted when they’re eligible for travel credits or refunds from their airline. Approximately 44 percent of all flights tracked by Yapta have resulted in a price drop below the initial tracking price.

“As a small business owner, I travel over 100,000 miles a year and it’s impossible for me to be constantly re-checking prices on my own,” said Warren Avny of Mt. Prospect, Illinois. “In addition to saving me a tremendous amount of time and effort, Yapta has also helped me save approximately $600 on airfare since I registered in January.”

Earlier this year, Yapta was named the “2008 Consumer Product or Service of the Year” by the Washington Technology Industry Association and one of the “Best New Airline Web Sites” by Travel + Leisure Magazine. In 2007, TIME.com named Yapta one of the “50 Best Websites” and PC Magazine listed Yapta amongst its “Top 100 Undiscovered Websites.”

“We’ll continue to build upon our early success by providing travelers with enhanced price-tracking ability, broader shopping functionality, and a more personalized travel planning experience,” Romary said. “Yapta is committed to innovating new services for the frequent traveler and to making travel planning quick, easy and as personable as possible.”

About Yapta, Inc.

Yapta, Inc. was founded in January 2006 with the mission to help frequent travelers receive the optimal value out of their online travel planning. Yapta’s freeware enables travelers to bookmark their preferred flights while shopping airline websites and to be alerted when the best prices on those flights become available. Yapta is used by hundreds of thousands of travelers and many small businesses to not only obtain the best deals on airfare, but also to quickly and easily consolidate all preferred flights into a single, online list that reflects updated pricing. Bringing to light pro-consumer “guaranteed airfare” policies offered by many airlines, Yapta also helps air travelers obtain travel vouchers — and in some cases, cash refunds — when the price decreases on tickets that have already been purchased. For more information about Yapta and how to optimize your travel planning, visit www.yapta.com.

Contact:
Jeff Pecor
Yapta, Inc.
206-625-2301
Email Contact

Tags:

The 3 Problems with the Financial Services Industry (TickerHound Blog)

March 26th, 2008

The The TickerHound Blog mentions our portfolio company Cake Financial:

Here are the main problems with the financial services industry as I see it:

1. Broker/Client Interests are NEVER Aligned

You may be asking, “Well if I make more money doesn’t my broker make more money? And isn’t that good for the both of us?”

Theoretically, yes. However, as long as an adviser is paid based on the number of trades you make or the amount of money you keep in your account then he or she is NEVER motivated to do well for you.

They are not paid based on how well your stocks perform – whether or not your account goes up or down they still get paid a commission every single time you buy and sell a stock.

That’s like having a car mechanic who gets paid for the number of times he fixes your car – he’ll just make sure it stays broken for as long as possible and will continue to steal your money!

2. It’s Never About Making You Wealthy

The other thing to realize is that the people who work on Wall Street don’t want you to become insanely wealthy. If that happened then there’s a chance you’d leave them.

There’s a chance you’d stop playing the game.

So why would they try to make you wealthy? Answer: they won’t!

Instead they feed you products like Mutual Funds and Index Funds so you’ll just mimic the market and do average! Not good, not bad, just average.

3. They Always Keep Control

And one of the biggest scams that Wall Street has going for them is that they convince the investing public that investing on their own is dangerous. They convince everybody that in order to do well you need an army of analysts and bankers to tell you which stocks are good and which stocks are bad. Then, and only then, can you profit in the market!

If that were the case then why do most Mutual Funds have a tough time beating the market? And on the flipside of that argument, why does the most successful investor in the history of the world have an office of only 8 people?

Bottom line: There’s no good reason why you can’t do just as well investing on your own if you equip yourself with the right information!

Blurring The Line

As you can see there’s a serious problem in this business – there’s always a clear line in the sand: “you” and “them”. It’s never “us”.

We need to change that and we need to change it fast. We need to come up with a way where you and those you take advice from are sitting on the same side of the table.

The only way that gets done is if we change the nature of the client-advisor relationship – it can no longer be a “one way relationship”, it has to become a relationship of reciprocation, a “two way relationship”. Let me explain what I mean…

As of right now what happens when you buy a stock?

Your broker calls you (or vice versa) and rattles off a couple of stocks – you pick the one that sounds best and you buy it. That’s a one directional relationship – your advisor pushes information toward you.

Now, think about it this way – what if you could sit down at the same table as your advisor and have him teach you his process for digging through stocks?

Well, we know that would never happen due to the reasons we talked about before – if they gave away the “secret sauce” then you wouldn’t need them anymore. If they showed you how to invest, then you could go off and do it on your own.

Well, for most established companies in this industry that logic makes a lot of sense – it wouldn’t be in their best interests to make you a great investor. It would be in their interests to make you dependent upon them.

That’s why I’m so excited about what we’re doing at TickerHound - we have a distinct advantage here and that’s why our perspective on the situation is dramatically different from most. Our business isn’t predicated upon keeping you (and other individual investors) under our control.

We want to set the information free and allow you to live up to your fullest investing potential!

There are other companies in this space doing the same thing - Covestor.com, CakeFinancial.com, Wikinvest.com - all great companies and all looking to do the same thing: level the playing field so the individual investors out there have a shot at taking their financial futures into their own hands and making better financial decisions today!

Tags:

Heroku, Rails, and Grails (VentureBeat)

March 25th, 2008

VentureBeat has a post on Heroku, which makes deployment of Ruby on Rails (RoR) apps easier:

San Francisco startup Heroku has found a fresh approach to helping developers build and deploy applications from the popular Ruby on Rails programming framework. It’s the only company to combine automated deployment — in other words, you just upload the code onto your browser and it will go live on the web — with an exclusive focus on Rails, says co-founder James Lindenbaum. Even more exciting is a recently released feature that moves Rails development into the Internet cloud.

At one point I had chatted with Graeme Rocher, CTO of G2One, the company created to shepherd Groovy and Grails technologies, and a portfolio company of ours, about why there isn’t an equivalent in the Java/Grails world, and whether it makes sense to create one.

He reminded me that Heroku is very useful in the Rails world because deployment is very painful in Rails. Many articles, including this one by Matthew Porter, CEO Contegix [How Ruby on Rails Could be Much Better] speak of this pain.

Graeme believes that if Rails had a solid deployment model, then products such as Heroku would be unnecessary. For instance, in Java, a lot of containers allow you to upload a war file via web interface, which achieves essentially what this product does.

So apparently this is very good (and revolutionary) for the Rails crowd, but nothing new or special for the Java crowd since Grails’ deployment model is based on Java’s deployment model, neither of which have these issues.

Salil Deshpande

Tags:

Marketocracy Gurus Make Bank On Financials (Forbes.com)

March 25th, 2008

Joshua Lipton of Forbes.com writes:

Financial companies have fumbled on big, bad bets that continue to make headlines for all the wrong reasons. Those news-making errors have sent a lot of investors running for cover over the past 12 months, as they’ve stayed spooked by poor earnings and worrying forecasts. But other stock market watchers have decided to play the sector very differently: They want to profit from the panic.

That was the decision made last week by the best-performing online investors, Marketocracy’s M100. These gurus saw that the financials, as a sector, continue to get hammered, perhaps beyond the point at which it makes sense. The Financial Select Sector SPDR (amex: XLF), an exchange-traded fund that tracks a broad swath of financial stocks in the S&P 500, is down about 25% in the past year.

In Pictures: Five Buys, Five Sells

But last week, the M100 saw that U.S. policymakers are making moves to help out this beaten-down sector. Fed Chairman Ben Bernanke and the gang slashed another 75 basis points off the federal funds rate, cut a full percentage point off the discount rate, expanded access to the New York Fed’s discount window beyond commercial banks, and accepted $30 billion worth of Bear Stearns illiquid assets to facilitate its takeover by JPMorgan Chase. (See “Street Soars Into Break.”)

Those moves by U.S. central bankers looked smart and appropriate to the M100, who figured that all of these bold policy measures would help lift the confidence of the market and provide a pop for the financials. So the gurus piled aggressively into Ultra Financials ProShares (amex: UYG), an ETF that seeks investment results corresponding to twice the daily performance of the Dow Jones U.S. Financials index.

That move was a good bet. On Monday, the UYG popped 6% to $35.06. Other big dogs in the financials sector also leaped out of their leashes. In the past five days, Goldman Sachs has jumped 16% to $182.23, and Citigroup has surged 21% to $24.02.

Besides the ETF, the M100 also bought into a financial firm directly: Credit Suisse Group.

Last week, the stock of the financial services conglomerate tanked as details of write-downs it warned of in February proved to be worse than expected, and a profit warning suggested that Credit Suisse would book a loss in the first quarter. (See “Credit Suisse Crumbles.”)

But analysts following the stock point to some reasons for optimism here: Credit Suisse, they say, has one of the top private-banking franchises in the world and a lucrative alternative-asset-management business.

Also, compared with its industry peers, Credit Suisse has better operating margins, and it is way cheaper, on a trailing 12-month basis. The M100 last week took advantage of the pullback and carved out a stake. That looked to be a wise play: Credit Suisse surged 4.5% to $51.73 on Monday.

In Pictures: Five Buys, Five Sells

The M100 also played the pain in the market a different way last week: They shorted the consumer.

Specifically, the gurus moved very aggressively into UltraShort Consumer Goods ProShares (amex: SZK). This little ETF moves double in the opposite direction of the Dow Jones U.S. Consumer Goods index. That index tracks the performance of consumer spending in the goods industry of the U.S. equity market. The component companies in the index include everything from automakers to brewers and cosmetics companies.

Reuters, relying on S&P 500 forecasts from Wall Street strategists and industry analysts, finds that for the first quarter of 2008, earnings are projected to fall 5.5%. One of the worst performers, according to Reuters’ estimates, will be the consumer cyclical sector.

Other buys for the M100 included software maker SAP, oilfield services firm Smith International and marine and rail leasing company GATX .

The M100 also bought into Manpower. Bulls on that staffing company write that Manpower, given its size (it’s the second-largest staffing company in the world), can provide workers for nearly any industry in most countries. They also point out that the company is very well diversified geographically, which protects it against local economic downturns.

The M100 also liked the fact that Manpower is nice and cheap, with a price-to-earnings-growth ratio of just 0.73. The gurus decided it was time to stake out a position.

One the sell side, the M100 no longer felt comfortable owning supermarket operator Kroger and military contractor ITT.

They also bailed on Canadian National Railway. Compared with competitors, the rail company is a bit pricier, relative to its expected growth. Analysts covering the stock do point to the company’s strong profitability, cash flow generation, balance sheet and diverse customer base. But they also note its exposure to economic cycles and fuel prices.

CNI has dropped about 7% in the past four weeks. The M100 decided it was time to take profit.

In Pictures: Five Buys, Five Sells

Guru Buys

Ultra Financials ProShares

Credit Suisse

UltraShort Consumer Goods ProShares

SAP

Manpower

Guru Sells

Kroger

ITT

Canadian National Railway

Reliant Energy

Tredegar

Marketocracy.com tracks more than 60,000 online stock portfolios. Of those, the top 100 performing portfolios, the M100, are used to create a real-life mutual fund, the Masters 100 Fund, which is managed by founder Ken Kam. Each week, Guru Picks analyzes the buys and sells of the M100. Click here for more information about Marketocracy.com and its money management services.

Tags:

Three Grails Articles : Starting, GORM, Groovy Server Pages

March 24th, 2008

Charles Ditzel writes:

Scott Davis has a nice Mastering Grails series on Grails. He has three articles. In the first article, Building Your First Grails Application, he shows how to build a quick Grails app. In the second article, GORM: Funny name, Serious technology, he introduces the Grails Object Relational Mapping (GORM) a persistence framework. He demonstrates how easy it is to create relationships between tables, enforce validation rules and change the relational databases in your apps. Finally, in the third article, Changing the View with Groovy Server Pages, Scott introduces Groovy Server Pages and shows how to use Grails TagLibs, mixes partial fragments of GSP and customizes the default templates for the automatically generated (scaffolded) views. >


Tags:

Beer Pong Comes to Facebook (AllFacebook.com)

March 24th, 2008

Nick O’Neill of AllFacebook.com writes:

When the Facebook platform first launched, you wouldn’t believe how many people contacted me and said “I’m going to make a beer pong application.” It has been 10 months since the platform launched and finally a top notch beer pong application has been launched. As you would expect, it’s also very popular. In just a few days almost 15,000 people have added the application and the growth is steady.

Mike Lazerow of Buddy Media, the company that developed this game, sent me an email when it launched and I had to check it out. I ended up playing the game for a couple hours trying to get on the leader board. Interesting enough I came very close to reaching the top 10 but I didn’t make it. I had however perfected my game so if you want to test the master, I suggest you challenge me to a round of beer pong.

As has been predicted, social gaming applications have become the focus of Facebook for the most part. There are also utility applications but there is only so much value that you can easily add to Facebook profiles. I think games are the way to go and from an advertising perspective, custom games are highly valuable. You get targeted individuals engaged in a branded environment for an extended period of time. If you want to play a round of beer pong, go check out the Campus U Beer Pong application.

Beer Pong Screenshot

Rating: 1 Star2 Stars3 Stars4 Stars5 Stars (5 out of 5)

Tags:

Triggit among 10 Best at WebVentures

March 21st, 2008

Triggit CEO Zach Coelius writes:

We presented yesterday at the Dow Jones Web Ventures conference. It was awesome. We had a packed room and the audience was kind enough to name us as one the top companies of the conference. Being so fresh out of stealth it was a really cool to see people so interested in what we are up to.

Triggit got the most number of votes. The ten best were:

 Ten companies were given top marks by attendees and expert panelists at VentureWire’s Web Ventures 2008 conference this week.

The conference, held in Redwood City, Calif., and subtitled “Making Internet Investments Click,” featured two days of panel presentations and keynotes by venture capital professionals and company executives, and breakout sessions in which start-up companies presented their business plans.

Here are the top ten companies from the breakout sessions (in alphabetical order), chosen through a combination of audience voting through a text-messaging service provided by Zuku; popularity of the presentations as judged by the number of attendees in each session; and voting by the expert panel of VCs:

BuzzLogic Inc., San Francisco, a provider of online advertising technology within social media. The company allows advertising to tap the ongoing conversations taking place on social networks and blogs and leveraging contextual advertising to engage those audiences. http://www.buzzlogic.com

ChaCha Search Inc., Carmel, Ind., a service that allows users to text questions to human guides and receive the answer within minutes. The name is derived from the number users can text to: 242242, or “chacha” on a mobile keypad. http://www.chacha.com

Get Satisfaction Unlimited Inc., San Francisco, a connector of customers and companies. Companies can use the service - which allows for feedback, idea generation and brand-building conversations - as a complement to their traditional customer service or even the primary conduit to its customers. http://www.getsatisfaction.com

Gigya Inc., Palo Alto, Calif., a company providing free technology for content publishers and widget developers. Through Gigya, content can be installed on a users’ social network profile page, blog, bookmarking site or desktop, or it can be e-mailed to friends. It also features a widget ad network designed to guarantee installs on a pay-for-performance basis. The company is targeting large brand advertisers and helping them create and distribute their widgets. http://www.gigya.com

Komli/PubMatic, Palo Alto, Calif., a provider of online advertising services, with an online ad network in India, as well as a system to help Web publishers identify appropriate ad networks and improve the layout of their ads. http://www.komli.com

Lending Club Corp., Sunnyvale, Calif., a social lending network where members borrow and lend money among themselves. Borrowers can receive an interest rate on average 25% lower than bank loans and credit cards, and lenders have been earning a return of 12%. http://www.lendingclub.com

Meebo Inc., a Web instant message service in more than 50 different languages that allows users to access multiple IM accounts within one Web page. Third party developers can also create applications that run on the service. http://www.meebo.com

RealTime Content Ltd., Ipswich, England, a developer of technology to tailor video ads to individual Web users. Video ad segments are tagged with data that can later be matched to personal information existing within a users’ computer. The completed, personalized videos are assembled in real time as a user clicks on a Web site. http://www.realtimecontent.com

Triggit Inc., San Francisco, a developer of technology that enables long-tail publishers and bloggers to source and optimize ads from multiple networks and integrate a variety of ad units with a drag-and-drop interface and track and optimize the results. Normally small publishers would have to set up these advertising relationships separately. http://www.triggit.com

WidgetBox Inc., San Francisco, a provider of free tools for developers to create widgets out of RSS feeds, blogs, images or Flash files, as well as the means to easily distribute the widgets. The company says it has 26,000 developers, 33,000 widgets in its gallery, 12 million daily widget-views, 15% of Facebook Inc. applications and 60% of Bebo Inc. applications. http://www.widgetbox.com

The panel of venture capitalists that helped select the top ten companies included: David Feinleib, partner, Mohr Davidow Ventures; David Hornik, general partner, August Capital; Will Price, former managing director, Hummer Winblad Venture Partners, and CEO, WidgetBox Inc.; Barry Schuler, managing director, Draper Fisher Jurvetson; Chi-Hua Chien, partner, Kleiner Perkins Caufield & Byers; Doug Pepper, partner, InterWest Partners; Scott Raney, partner, Redpoint Ventures; and David E. Siminoff, general partner, Venrock.

Tags:

GlassFish Support for Groovy & Grails (Eduardo Pelegri-Llopart)

March 21st, 2008

Eduardo Pelegri-Llopart of Sun’s GlassFish Open Source Application Server project writes:

ALT DESCR NetBeans and GlassFish are making good progress with many scripting languages, the latest being Groovy, which is a particularly easy match to the Java infrastructure.Matthias reports on the new NetBeans 6.1 PlugIn Functionality for Groovy, which includes deploying to GF v2. On the runtime-side, we recently reported on improved Grails Support on v3, and you can track our plans at the GF wiki uder GroovyGrailsPlanning.

GF and NB are collaborating with multiple scripting groups including those on Ruby, Python, JavaScript, PHP and Groovy. Stay tuned for more progress as we get closer to JavaOne.

Tags:

Really Enjoying Grails (Okke Tijhuis)

March 21st, 2008

 

Lately I’ve been trying out Grails. It’s a terrific framework for creating web applications and written in Groovy/Java. It’s similar in a lot of ways to Ruby on Rails (written in Ruby). Since I already work a lot with Java and I just prefer Groovy’s syntax to that of Ruby I decided on using Grails (this is a very personal decision, both are terrific and I urge you to try one of them if you are into creating web applications!).

Grails uses Hibernate and Spring as underlying technologies. While those were already great to use in Java,I really hated the amount of xml configuration required. Grails makes things soooo much easier.

Here is an example of how I used Grails’ Spring DSL and auto-wiring amongst other things. I wanted to create a monitoring application that had to extract information from one of several datasources based on the choice of the user. So all datasources needed to be available in the application and I should be able to select which one to use dynamically. (Btw, there are no domain objects associated with those datasources so I didn’t need GORM)

Here are some code snippets:

First up is Resource.groovy. In this file you can declare extra Spring configuration that’s needed using the BeanBuilder DSL.

Look ma! No XML!

 

 

  1. import org.apache.commons.dbcp.BasicDataSource
  2. // Place your Spring DSL code here
  3. beans = {
  4. dataSourceTest(BasicDataSource) {
  5. driverClassName = “oracle.jdbc.driver.OracleDriver”
  6. url = “jdbc:oracle:thin:@localhost:1521:TEST”
  7. username = “someone”
  8. password = “something”
  9. }
  10. dataSourceProduction(BasicDataSource) {
  11. driverClassName = “oracle.jdbc.driver.OracleDriver”
  12. url = “jdbc:oracle:thin:@localhost:1521:PROD”
  13. username = “someone”
  14. password = “something”
  15. }
  16. }

So, that was easy, and no XML involved! So how do we get to those datasources in the application? Well, for this task I created a Grails service. Services in Grails are by default singletons. That’s why there’s no ‘static’ keyword to be found which is often used in java. Also, when you look at the code you’ll notice that I define the variables for the datasources but I never load them. This is another great feature of Grails. It auto-wires the datasources to the variables because they have the same name, so only declaring the variables is enough. That’s it.

Here is DatabaseService.groovy:

 

 

  1. class DatabaseService {
  2. def TEST = “Test”
  3. def PRODUCTION = “Production”
  4. def dataSourceTest
  5. def dataSourceProduction
  6. boolean transactional = true
  7. def getDataSource(dbEnv) {
  8. switch(dbEnv) {
  9. case TEST:
  10. return dataSourceTest
  11. case PRODUCTION:
  12. return dataSourceProduction
  13. }
  14. }
  15. }

Great, now we have a way to get to the datasources. Now to actually use them. In the next code block another example of the Grails auto-wiring is displayed, in this case in a controller. Grails also automatically wires services to variables if they are declared with the same name as the service (without the first character capitalized). We’ll use the Groovy DSL for SQL here as well. It makes it incredibly easy to retrieve some data from the datasource.Here is the source for SomeController.groovy:

 

 

  1. import groovy.sql.Sql
  2. import grails.converters.XML
  3. class CronacleController {
  4. def databaseService
  5. def index = { redirect(action:getSomeXML,params:params) }
  6. def getSomeXML = {
  7. def sql = Sql.newInstance(databaseService.getDataSource(databaseService.TEST))
  8. render sql.rows(“select column from table”) as XML
  9. }
  10. }

Well, this concludes my first post on Grails/Groovy. I’m REALLY enjoying using both. It’s so much fun trying new things out without all the bloat usually surrounding it!Btw, I’m still not sure if I’m happy with the code for the service so don’t hesitate to comment :). I’m still in the early stages of learning Grails/Groovy so I’m sure things could be optimized.

Okke Tijhuis

Tags: