Ph: 0764558315

Posts tagged as:

jdbc

Daily del.icio.us for June 24th through June 27th

by Vinny Carpenter on June 27, 2008

vmcNetFlix - Official Site - vmcNetflix is an add-in for Microsoft Windows Vista Media Center which allows you to manage your NetFlix subscription, stream NetFlix "WatchNow" movies directly to the Media Center player, or download the movies for playback later from a "WatchLater" ga The LinkedIn Blog: LinkedIn is 99% Java but 100% Mac - The post is titled LinkedIn Is Written in 99% Java, so to complete the picture I responded to the community with a message about how LinkedIn is 99% Java but 100% Mac. Mercedes to Cut Petroleum Out of Lineup by 2015 | EcoGeek - In less than 7 years, Mercedes-Benz plans to ditch petroleum-powered vehicles from its lineup. Focusing on electric, fuel cell, and biofuels, the company is revving up research in alternative fuel sources and efficiency. Jericho HTML Parser - Jericho HTML Parser is a powerful java library allowing analysis and manipulation of parts of an HTML document, including server-side tags, while reproducing verbatim any unrecognised or invalid HTML. It also provides high-level HTML form manipulation fun Software Sensation Inc. - jWebApp Web Application Framework, Install&Update, MemSL - Memory Structures Library - jPersist is an extremely powerful object-relational persistence API that is based on the Active-Record and Data-Mapper patterns. jPersist wraps JDBC functionality and can work with any relational database, and any type of connection resource Java Entrepreneur: We screwed up on open source, says Sun Chief Open Source Officer - Open source developers have been much more skeptical of Sun; a lot of open source developers don't remember the fact that Sun was pretty much the first open source start-up in 1982. All they can remember is what happened in 2001/2002 when, to be quite fra InfoQ: Liferay Portal 5.0 Released, Sun Joins the Team - Last month at JavaOne, Liferay, Inc. announced the release of the 5.0 version of their Liferay Portal product. The Liferay press release highlights a handful of the key tools and uses in the portal product: How Hard Could it Be?: Glory Days - Bill Gates - working for Microsoft - Bill Gates was amazingly technical, and he knew more about the details of his company's software than most of the people who worked on those details day in and day out. Unit testing with JUnit and EasyMock - Michael Minella - I hope this gives you a more in depth view into JUnit and EasyMock. Unit testing is something that once you get used to it, makes you code better, provides you with a safety net for future refactoring and protects you from being burned by API changes Unit Testing With TestNG and JMockit | Javalobby - TestNG is a testing framework for unit test development. JMockit is a framework for mock objects that provides mock object functionality using the java.lang.instrument package of jdk 1.5. Together, these frameworks can provide the tools to create very rob
Tags: ajax, apple, architecture, article, blog, blogs, business, collaboration, database, design, development, easymock, eclipse, enterprise, environment, extender, framework, freeware, fusion, future, green, groovy, html, htmlparser, interesting, java, jdbc, jmockit, joelonsoftware, junit, library, linkedin, mapping, mediacenter, microsoft, netflix, opensource, ORM, parser, persistence, portal, programming, software, streaming, sun, tagging, tags, tdd, testing, testng, tutorial, Vista, wiki, windows, xbox360

Related posts

{ 0 comments }

Daily del.icio.us for June 1st through June 4th

by Vinny Carpenter on June 4, 2008

Firefox 3 for developers - MDC - If you're a developer trying to get a handle on all the new features in Firefox 3, this is the perfect place to start. This article provides a list of the new articles covering features added to Firefox 3 InfoQ: Is Google Gears Positioned to Add Features to the Web? - There is no doubt that Rich Internet Applications remain a major battleground for the industry along with and complementary to Ad-based revenue models and cloud-computing. Will Gears take a similar path as Flash and become as much adopted by Web sites and Use Flex Builder 3 to create a JavaScript AIR application - I have tried today to create an AIR application. My tool of choice was Flex Builder 3 as I knew you can create AIR applications using it. Official Google Blog: At long last, real-time stock quotes are here - We're very excited to tell you that real-time quotes on NASDAQ securities are now available on Google Finance. This is an important (and way overdue) development for everyone who consumes financial information. InfoQ: Erlang - software for a concurrent world - How do you program a multicore computer? Easy - do it in Erlang. Erlang is a concurrent functional programming language designed for programming fault-tolerant systems. With share-nothing semantics and pure message passing, Erlang programs scales on multi Design Stencils - Yahoo! Design Pattern Library - Yahoo! Design Stencil Kit version 1.0 is available for OmniGraffle, Visio (XML), Adobe Illustrator (PDF and SVG), and Adobe Photoshop (PNG), and covers the following topics: DBSight: Instant Scalable Full-text database search platform/engine - Instead of weeks or even months to develop a full-text search for your data, if you know how to use DBSight, you can easily create the full-text search literally in minutes. Brain Freeze » Storing JasperReports in a database using iBATIS and Oracle 10g - This article shows how I solved the file system issue by storing JasperReports report definitions in a database. I’ll assume familiarity with the iBATIS “ORM” database framework since I am not showing a full iBATIS setup here. JetBrains' Dmitry Jemerov on IntelliJ 8, Flex, and Scala - Dmitry Jemerov is a lead developer on JetBrains' IntelliJ IDEA. In this wide-ranging interview with Artima, Jemerov discusses the main focus areas for the upcoming IntelliJ 8 release, as well as his views on IntelliJ's support for Flex and Scala. » HOW TO: Use JDBC Batching for 7-8X throughput gains - Using the batched statement capability of your JDBC driver can give you 7-8X throughput gains. Not only is batching significantly faster, it’ll save database CPU cycles and be easier on the network, too Why Java? Because it's everywhere. - The value of this enterprise capabilities is still very high, and in my opinion, it is one of the most important differentiators of Java. Once you know how to deal with it, it saves you lots of time in development and production. Roku's Netflix Player sells out | Tech news blog - CNET News.com - There's more proof that the Netflix Player is a hit. Start-up Roku, the company behind the device that enables Netflix subscribers to watch movies streamed from the Internet to their TVs, has run out of inventory two weeks after launching. InfoQ: Exadel’s Flamingo Project for Rapid Flex and Java Development - Exadel’s Flamingo project is a tool for bootstrapping RIA applications built with Java backends. The tool offers support for both Seam and Spring in the middle tier. On the presentation tier, Flamingo supports both Flex and JavaFX
Tags: adobe, air, ajax, api, application, architecture, browser, business, cache, concurrency, css, database, design, desktop, development, economics, engine, enterprise, erlang, exadel, finance, firefox, firefox3, flex, flex3, fulltext, gears, google, hibernate, iBATIS, ide, infoq, integration, intellij, J2EE, jasper, jasperreports, java, javafx, javascript, jdbc, jruby, lucene, mozilla, netflix, offline, omnigraffle, opensource, oracle, performance, presentation, programming, python, realtime, ria, roku, Ruby, scala, scalability, seam2.0, search, spring, stock, templates, ui, video, web, webdesign, wireframe, yahoo

Related posts

{ 0 comments }

Daily del.icio.us for April 14th through April 16th

by Vinny Carpenter on April 17, 2008

Searchable javadocs - Javadocs are good but not great as they miss a key feature of being able to do a full text search. Enter Documancer - It allows you to point to the index.html Javadoc file of a given library and one can then run full text searches through the Javadocs DataCleaner - eobjects - DataCleaner is an open source project concerned with creating a data quality solutions for business and organizations wishing to measure and increase the quality of their data. DataCleaner includes functionality to profile and compare data, to validate da IntelliJ IDEA Blog » Blog Archive » Announcing New Release of JetGroovy Plugin - We’re glad to announce the general availability of the new release of JetGroovy Plugin for IntelliJ IDEA. Version 1.5 brings yet more of IntelliJ IDEA´s smart, advanced features to Groovy and Grails developers HtmlUnit 2.1 Released « A Public Scratchpad - The HtmlUnit team is pleased to announce a new release of HtmlUnit. This latest version includes a number of bug fixes and performance enhancements, and sports excellent support for GWT, jQuery and Sarissa, decent support for Prototype and Dojo, and basic Enterprise 2.0: A Computer Security Nightmare? - Bits - Technology - New York Times Blog - One conclusion, the report notes, is that users are routinely, and fairly easily, circumventing corporate security controls. And that is because traditional firewall technology was not meant to grapple with the diversity of Internet applications of recent Amazon's cloud computing will surpass its retailing business | Between the Lines | ZDNet.com - Everyone else–Google and Microsoft–are working on their cloud computing services, but they are really in the first revision of their respective offerings. Amazon is ahead and tweaking It’s Only Software » 5 Minute Guide to Spring and Simple[r!] JDBC - I recently worked on a personal project to learn how one can write dead-simple plain old JDBC applications using only Spring Framework 2.5 without an ORM layer. Spring 2.5 has many features that provide some of the convenience of ORM libraries ajax, amazon, appengine, aws, bigtable, business, cloud, cloudcomputing, computing, data, database, design, development, ec2, enterprise2.0, firewall, google, grails, groovy, gwt, htmlunit, ide, idea, innovation, intellij, java, javadoc, jdbc, malware, opensource, profiling, programming, python, qa, s3, saas, search, security, software, spring, SpringFramework, SQL, storage, testing, tool, web, Web2.0, webservices

Related posts

Daily del.icio.us for Jan 17, 2007

by Vinny Carpenter on January 17, 2007

The Java Persistence API is a lightweight, POJO-based framework for object-relational mapping. The mapping between Java objects and a relational database is achieved with the help of Java language metadata annotations and/or XML deployment descriptors
Tags: database, ejb3, hibernate, J2EE, jdbc, jdo, jpa, persistence

Related posts

Daily del.icio.us for Jun 23, 2006

by Vinny Carpenter on June 23, 2006

Are you learning JSP-2? Would you like to learn JSTL , an important part of JSP-2,IN A SINGLE HANDS-ON TUTORIAL, the EASIEST WAY? This tutorial is especially meant for learners in a hurry.
ver the years, I have had the opportunity to work with various code review systems, and I have come to believe that one particular approach works better than the other. Here is what I've learned.
Acharya introduces JDBC's XML-friendly interface for working with results, converting to and from XML, and performing updates by manipulating the WebRowSet object
Tags: J2EE, jdbc, jsp, jstl, webrowset, xml

Related posts

WebLogic 9.0 - First look at the GA release

by Vinny Carpenter on September 1, 2005

BEA released the latest version (v9.0) of their flagship application server, WebLogic in early August. I have been playing with the latest release of WLS to see what's new, what's cool and what are the features that will make me push to upgrade ASAP.

In addition to J2SE 1.5 or Java SE 5.0 support, WLS 9.0 is also fully compliant with the J2EE 1.4 Specification and is fully buzzword compliant. This release includes support for EJB 2.1, Web Services 1.1, JMS 1.1, JMX 1.2, JDBC 3.0, WS-Security, SAML 1.1, Profile 1.0, WS-Policy, WS-Reliable Messaging and WS-Addressing among others. The specification notably missing is EJB 3.0 – WLS 9.0 does not support EJB 3.0 and will support it as a service-pack, when EJB 3.0 JSR finally gets approved. This was kind of disappointing as WebLogic has always been on leading/bleeding edge in terms of specifications. I know I would have used the built-in support for the 3.0 spec, knowing full well that things may change and break with service-packs. The reality is that we won't be pushing apps in production under 9.0 till SP1 is out and we've truly gone through and understood all the changes from 8.1 and their impact to our applications and processes. (More information of all the API alphabet soup is available here here).

One of the newest and biggest additions to WebLogic is the new functionality called 'Production Deployment' or 'side-by-side deployment'. This new feature allows you to redeploy a new, updated version of a production application without affecting existing clients of the application that have valid sessions, and without interrupting the availability of the application to new client requests. So all the old users continue to use the old version of the application and any new users get directed to the new application. As old sessions timeout and/or users log out, the old application is retired. This also works in a clustered environment where you may have many WebLogic instances. The one thing I haven't tested yet is whether in-memory (session) replication still works as before. The scenario I hope to test soon is where Server A and Server B participate in a cluster. User 1 comes in and logs into Server A – in-memory replication will replicate User 1's session over to Server B. While User 1 is still active, I deploy a new version of the application to the cluster. Once the application is deployed, I kill Server A and then have User 1 attempt to use the application. Will the old version of the application still be there on Server B even though it didn't have any users using it?

WLS 9.0 also includes a completely new administration console built on top of the WebLogic Portal framework as a set of JSP's with Struts and Beehive. This allows you to extend the console and add your own custom admin screens. I think this is a pretty useful concept as developers can add custom JMX hooks in their applications and then surface that data via the custom admin console interface. I've always built custom admin-consoles for applications to turn on/off things, resources inside the applications or failover, etc. Being able to add that functionality inside the console gives you the additional authentication and authorization capabilities to your custom admin screen. WLS supports JMX 1.2 and JMX Remote API 1.0 (JSR-160) in this release, which deprecates BEA's proprietary API for remote JMX access, MbeanHome.

One of the nicest new features is the ability to create 1 log file for 1 day. This was always a missing feature that annoyed me to no end as you could rotate logs based by time but it was always elapsed time and so you couldn't create 1 log file for 1 day that automatically rotates to a new log file at midnight. That is now enabled and all I can say is that it's about time.

Another great enhancement is the use of DataSources instead of connection pools by default. Instead of configuring a JDBC connection pool and then configuring a data source to point to the connection pool and binding to the JNDI tree, you configure a data source that encompasses a connection pool. Before JDBC 2.0 and the concept of DataSource, people created a connection-pool and then used the pool driver (JDBC) to get a connection. But now everything is in the context of a DataSource and so you have to create a DataSource to create the underlying connection pool and that will force people to rewrite their legacy code that gets a connection from the pool directly. It's a good thing, as it will make their code more portable.

There are quite a lot of simple enhancements that I find useful. For example, hitting CTRL-C to interrupt a running server that you were running inside a DOS window or UNIX shell used to just kill the server. Now the start script catches the interrupt and calls the WLS shutdown hook. Another minor but useful thing is that the auto-generated start scripts have support for JPDA (Java Platform Debugger Architecture). The command line includes all the parameters needed to fire up the debug listener on port 8453 but it's configurable at each startup script level.

I know I've only scratched the surface with WebLogic 9.0 in the weeks of playing. I'll continue to blog about anything that's interesting or cool or broken.

Links of Interest:

WebLogic, WLS, WebLogic 9, WLS 9.0, BEA, J2EE

Tags: ejb, J2EE, java, jdbc, jmx, security, WebLogic, webservices

Related posts

iBATIS - Where have you been all my life!

by Vinny Carpenter on January 31, 2005

iBATIS SQL Maps is an open-source JDBC framework that provides a very simple and flexible means of moving data between your Java objects and a relational database. The SQL Maps framework helps reduce the amount of Java/JDBC code that is needed to access a relational database. The framework allows you to map JavaBeans to SQL statements using a very simple XML descriptor that allows you to create complex queries, and inner/outer joins. The beauty of it all is that this is achieved without any special database tables, bytecode manipulation, or code generation.

iBATIS is not meant to replace Object-Relational Mapping (ORM) tools such as Hibernate, OJB, Entity beans or TopLink to name a few. Rather it is a low-level framework that allows you to directly hand-code your SQL statements and map them to Java object. Once you map your persistence layer to your object model, you are all set. You don't need to lookup DataSource, get connections, create prepared statements, parse ResultSet or even cache the results – iBATIS does it all for you. Under the covers, iBATIS creates a PreparedStatement, sets the parameters (if any), executes the statements and builds a Map or JavaBean object from the ResultSet. If the SQL statement was an insert or an update, the numbers of rows affected by the SQL are returned. Here's a little sample to illustrate the features of iBATIS: We'll start with a simple database that ships with the JpetStore application from iBATIS.

First you configure SQL Maps by creating a XML configuration file, which provides configuration details for DataSources, SQL Maps and other options like thread management. Here is a simple example of the SQL Map configuration file:

In my case, I am deploying this code in WebLogic and I have already created a connection pool and a datasource on the WebLogic side. I am just referring to the name of the datasource by using jdbc/jpetstoreDS. You can also create your own datasource via. the SQL Map configuration file:

The SQL Map configuration file includes a reference to another SQL Map file that contains your SQL statements for insert, update, delete as well as results and parameter mapping. Here is a simple example of the file Account.xml:

The Account.xml SQL Map file is pretty self-explanatory — In the file, we are describing a select statement that takes an Integer as it's argument and returns an instance of com.j2eegeek.ibatis.domain.Account. Insert, updates, deletes work the same way along with stored procedures and dynamic queries. The programming API for SQL Maps is really straightforward and provides the developer with the ability to: configure an SQL Map, execute an SQL update (including insert and delete), execute a query for a single object, and execute a query for a list of objects.

A pretty simple example but it should illustrate the simplicity of iBATIS SQL Maps and show you the potential of this framework. SQL Maps takes away all of the work required to create Statements, validate and parse inputs, create and parse ResultSets and all of the nitty-gritty details of working with SQL by hand. Instead, you are working at the object level and not really worrying about how your data is stored or retrieved. I've found that this also enables a good separation of work where your 'data-guy' can create up the appropriate SQL statements for you and you just plug them in, assuming you have a 'data-guy'. I've found that SQL Maps really helps me in my development process (In most cases, I am working with existing databases) as I spend time looking at the data-model as part of my overall design process and will typically mock-up the SQL statements I am going to use to manipulate the data at hand. Now I can just take my SQL statements and plug them into the SQL Map XML files and half my app is already built.

iBATIS SQL Maps is really powerful and you can take this one step further by using Spring's DAO framework in conjunction with iBATIS. Using Spring's DAO framework and the iBATIS template classes provided by Spring, you will write even less code that you would have normally written using iBATIS by itself.

Tags: DAO, database, iBATIS, java, javabeans, jdbc, jndi, ORM, spring, SpringDAO, SQL, sqlmap, WebLogic, xml

Related posts

Book Review: Expert One-on-One J2EE Development without EJB

by Vinny Carpenter on November 26, 2004

Book CoverExpert One-on-One J2EE Development without EJB by Rod Johnson, Juergen Hoeller
Paperback: 576 pages
Publisher: Wrox (June 21, 2004)
ISBN: 0764558315

I've read this book several times since the day it shipped and I have to say that this is an excellent book for anyone working as a developer or architect working in the Enterprise Java arena. I absolutely love this book given my bias – I guess I should start by stating my bias. EJB bashing is a favorite past time of a lot of people. I happen to love EJB's, with the exception of entity beans and think EJB's are a great way to create software solutions are remotable, loosely coupled and powerful. I will agree that EJB's are way too complicated with all the stupid artifacts that you need to create to create and deploy an EJB. Having worked with EJB's since 1999, I guess I am so used to all of nuances of EJB's, I can write up deployment descriptors in my sleep. Having said that, I approached this book with a little apprehension as I hate these EJB-sucks book that don't really offer any intelligent discussion about the shortcomings of EJB nor do they offer a viable alternative. Another assumption I brought to the book was that this was just a Spring book with a little EJB bashing thrown in for good measure.

To my pleasant surprise, Rod Johnson and Juergen Hoeller have written an awesome book. This book does not take cheap shots – Instead there is a intelligent, thought provoking discussion about the pros and cons of EJB. In fact, the first 120 pages (Chapter 1-5) are just a great breakdown of application architecture with a through treatment of EJB. I loved this section and re-read it several times and I found myself agreeing with pretty much everything in this section. I would equate this to a great meaningful discussion you would have with someone who really understood application architecture and development and you could debate the pros and cons of the many alternative approaches that exist today.

Chapter 6 starts the discussion of Lightweight Containers and the idea of Inversion of Control (IoC). This is not a chapter on Spring; rather it is an overview of Inversion of Control and strategies like Dependency Injection in the context of Spring and PicoContainer.

The next chapter offers a quick introduction to the Spring Framework. As everyone already knows, the Spring Framework is a very popular open source application framework created by Rod Johnson. The co-author Juergen Hoeller is another lead developer of Spring. The chapter is Spring is fairly light and people hoping for a in-depth Spring tutorial will be disappointed. Instead this chapter offers a rather high-level overview that will get you some basic understanding of the Spring Framework. I guess it's hard to cover Spring in 43 pages. [image]

After the cursory introduction to Spring, the book moves into Aspect-Orientated programming (AOP) concepts. This section starts with a very introduction to AOP before jumping into AOP implementation strategies. After a brief discussion of AspectJ, AspectWerkz, and JBoss AOP, the authors move into SpringAOP. After AOP, the books moves into Transaction Management where current J2EE approaches are discussed and then contrasted with the Spring approach.

Persistence is the next item tackled in the book and this section includes a really nice discussion of why you need a persistence strategy, when to choose O/R mapping vs. straight JDBC. After a walkthrough of the Java persistence technologies, the book moves into practical items and discusses Persistence in detail. Starting with JDBC, the authors contrast that approach with iBATIS SQL Maps, JDO, and Hibernate. The section on Data Access Object (DAO) pattern discusses the J2EE pattern and discusses some of the common design issues faced by developers. After the discussion, the book moves into discussing how data access works with the Spring framework and discusses Spring's DAO framework and how it works transparently with persistence technologies including iBATIS, Hibernate, JDO and straight JDBC. As an aside, if you haven't looked at Spring or just it's DAO framework, you should explore it as it simplifies the development process and minimizes the amount of code you write. I just rewrote some of my POC applications using Spring's DAO framework that used iBATIS and Hibernate under the covers. By using the template classes provided by Spring, I wrote about 30-40% of the code I would have normally written using iBATIS or Hibernate by themselves. The Spring Framework includes a reworked version of the original JPetStore application that uses Spring's DAO framework along with iBATIS SQL Maps.

After persistence, the book moves to Remoting and the idea of exposing business logic or services to remote client. One of the major benefits of EJB is the ability to remote anything exposed at the bean layer. This chapter starts off by discussing how to access an EJB from a Spring application using the JndiObjectFactoryBean. The setup is so simple and IoC makes lookup, creation of home, etc so easy with the declarative configuration. After EJB, the chapter moves to Web Services and JAX-RPC. Again the authors walk through the steps needed to consume JAX-RPC via. JNDI and demonstrate the elegance and simplicity with which Spring integrates into and consumes existing J2EE services. This chapter also includes discussion of Hessian and Burlap and the concept of lightweight remoting.

The next chapter in the book discusses the other EJB services that the container provides and talks about how to replace them. This section breaks down the do's and don'ts in terms of threading and pooling that is typically provided by an EJB container. There is a brief mention of security in this chapter.

The next section of the book discusses web tier design and dives into the current state of Web Model2 MVC frameworks. The section starts off with a look at Struts before jumping into WebWork. After the intros, the authors describe the Web MVC framework built into Spring. One of the things that I absolutely love about this book is the use of the dark gray boxes to summarize a topic, offer tips and advice or offer a best practice.

The next chapter is one of my favorite chapters in this book and it deals with the idea of unit testing and testability. Anyone that has written a J2EE application will attest to the fact that J2EE apps are really hard to test. There are a lot of testing frameworks in the market now but they require either too much setup or are really cumbersome to use and end up diluting the value they were supposed to offer. This section discusses some of the anti-patterns that are the de-facto standards in J2EE. I love the techniques offered in this section to improve testability. After an overview of testing, the book moves into a discussion of Mock Objects and the how, why and when of using Mock Objects in your development/testing lifecycle. The book then moves into Test-driven development (TDD) and offers a case study of how TDD has helped with the development of the Spring framework itself.

The last section before the sample application is on performance and scalability. This is another great chapter that should be mandatory reading for every developer. In this chapter, the authors discuss the challenges faced in building distributed multi-tier applications. There is a section that breaks down the architectural tiers and some of the common issues faced by every application developer. Very nicely written chapter and I glad the authors included a section on Profiling.

After performance, the book jumps into the sample JPetStore application that ships with the Spring Framework. The authors start off by discussing some of the shortcomings on the JPetStore application and then employ Spring to solve some of those issues. The JPetStore application is a great tutorial application for anyone learning Spring.

The book closes out with the conclusion section where the authors wrap-up and summarize some of their points outlined throughout the book.

Having read this book several times, I have to say that this has to be one of my favorite books of 2004. I love the clear, concise writing style of the authors. This is a great book and a must for every developer's library. While this is not a Spring tutorial book, you will learn enough about Spring to want more, a lot more. I highly recommend this book and encourage you to run to your local bookstore or computer and get this book.

If you are looking for a Spring book from the source, you'll have to wait for Rod's new book entitled Professional Java Development with the Spring Framework co-authored with Juergen Hoeller, Alef Arendsen, Thomas Risberg, Dmitriy Kopylenko or wait for Keith Donald's Spring book.

Tags: book, DAO, ejb, hibernate, iBATIS, J2EE, java, jdbc, jdo, rod_johnson, spring, tdd

Related posts


You are viewing a mobilized version of this site...
View original page here

Mobilized by Mowser Mowser