SQL Server 2008 Major Updates

April 21st, 2009

Microsoft has released numerous updates for SQL Server 2008: Service Pack 1, Express Edition SP1, April Feature Pack, 2008 Upgrade Advisor, Reporting Services Report Builder 2.0, Reporting Services SharePoint Add-In, Data Mining Add-In for MS Office.

SQL Server 2008 Service Pack 1 includes the following updates (release notes):

  • Roll-up of Cumulative Update 1 to 3
  • Quick Fix Engineering (QFE) updates
  • Slipstream – You are now able to integrate the base installation with service packs (or Hotfixes) and install in a single step.
  • Service Pack Uninstall – You are now able to uninstall only the Service Pack (without removing the whole instance)
  • Report Builder 2.0 Click Once capability

SQL Server 2008 Express Edition SP1 is a similar update for the free edition of SQL Server.

Microsoft SQL Server 2008 Feature Pack, April 2009 is a "collection of stand-alone install packages that provide additional value for SQL Server 2008." Visit the download page for full details; the feature pack contains many useful utilities, including:

  • Microsoft ADOMD.NET ADOMD.NET is a Microsoft .NET Framework object model that enables software developers to create client-side applications that browse metadata and query data stored in Microsoft SQL Server 2008 Analysis Services. ADOMD.NET is a Microsoft ADO.NET provider with enhancements for online analytical processing (OLAP) and data mining.
  • Microsoft Core XML Services (MSXML) 6.0
  • 2008 Management Objects The SQL Server Management Objects (SMO) is a .NET Framework object model that enables software developers to create client-side applications to manage and administer SQL Server objects and services. This object model will work with SQL Server 2000, SQL Server 2005 and SQL Server 2008.
  • PowerShell Extensions for SQL Server
  • 2008 Replication Management Objects
  • Sync Framework
  • Remote Blob Store

Microsoft SQL Server 2008 Upgrade Advisor, April 2009 analyzes instances of SQL Server 2000 and SQL Server 2005 to help prepare servers for upgrades to SQL Server 2008.

Microsoft SQL Server 2008 Reporting Services Report Builder 2.0, April 2009 offers a report authoring environment similar to MS Office 2007. There is a lot in this tool; if a system currently has users creating reports in Access or Excel, the new Report Builder is definitely worth reviewing. This new 2.0 version is focused on simplying the process of creating and editing reports.

Microsoft SQL Server 2008 Reporting Services Add-in for Microsoft SharePoint Technologies, April 2009 facilitates leveraging SQL Server 2008 report processing and management capabilities within Windows SharePoint Services (WSS) 3.0 or Microsoft Office SharePoint Server 2007. The Add-In includes a report view web part that provides report viewing capability, export to other rendering formats, page navigation, search, print, and zoom. The Add-In also includes support for creating SRS subscriptions and standard WSS managements of SRS report server content types.

Microsoft SQL Server 2008 Data Mining Add-ins for Microsoft Office 2007, April 2009 exposes more of SQL Server 2008 predictive analytics to Office Excel 2007 and Office Visio 2007.

from infoq.com

Share/Save/Bookmark

.NET , , ,

SABLE, a Smalltalk-Inspired Language for .NET

April 21st, 2009

Keith Robertson, the founder of Kuler Software Tools, has written a Smalltalk-inspired language for the .NET platform called SABLE, a language meant to draw upon the qualities of Smalltalk’s syntax and the benefits of running on CLR.

SABLE is a general purpose, imperative, OOP language with a syntax similar to Smalltalk’s, but the object and deployment model show its affiliation to the .NET family. SABLE programs run on ECMA CLR. SABLE wants to be Smalltalk for the web, a language that preserves the high readability and type safety of the Smalltalk language but with type information included in assemblies and a smaller binary output to make it usable for web deployment.

Robertson declares that his ultimate purpose with SABLE is:

To create a fluid, flexible, Smalltalk-style environment for development, but when you are ready, the application compiles down to an ordinary assembly. … This will give you a highly dynamic development experience without requiring a dynamic runtime.

One of the key benefits of SABLE would be Smalltalk’s messaging syntax allowing for messages to be chained or cascaded. The language is supposed to do type checking at compile time and to support type casting even through message chains, but not only:


|typeDecl| := nodeStack pop.

nodeStack peek ~ {BLOCK_NODE} argumentNodes last~ {ARGUMENT_NODE} typeDeclNode: typeDecl.

The language can do bi-directional type inference, deducting the type of a variable or a method from the expression’s type (outward inference), or deducting the expression’s type from the expected type (inward inference).

SABLE uses method, class and assembly structure definitions for documentation purposes but, unlike Smalltalk, the metadata stays with the assemblies. Macros are always inline methods. An interesting use of macros is to augment existing closed libraries.

SABLE does not have reserved words, but it has a number of predefined identifiers. Other important features are: class extensions, contracts, full access to CLR features like generics, nested types, metadata attributes, etc.

Useful links: The SABLE Compiler (ZIP), the SABLE language web site

from infoq.com

Share/Save/Bookmark

.NET ,

JRuby on Google App Engine Roundup: DataMapper Adapter for DataStore, Reggae

April 21st, 2009

After the announcement of Google App Engine’s Java support, JRuby was shown to work on GAE.  There are limitations, though, and JRuby’s Nick Sieger lists a few of the limitations; some examples are:

- No RMagick/ImageScience/attachment_fu. No ImageVoodoo even (no javax.image APIs). Google has it’s own image manipulation API. [..]
- 1000-files limit per application. In order to work around this, I ended up jarring up all the Rails gems when deploying a Rails application.

Tom Enebo recently twittered about having added GAE support to image_vodoo.  Nick also points to the JRuby app he deployed on GAE.

Deploying a JRuby application is not yet completely automated, but some tools are worked on right now. One is reggae, which helps to deploy Rack applications to GAE.

Finally, while JRuby largely works on GAE, some popular libraries don’t; the biggest example is ActiveRecord because Google only offers its own DataStore, which is not relational.
However, another ORM is now supported on Google’s DataStore: DataMapper. Genki Takiuchi created the dm-datastore-adapter, which allows to use DataStore with DataMapper. Currently, a few query options are supported with DataStore.

Share/Save/Bookmark

ruby on rails , , , , , , ,

Ruby Performance Roundup: GC Tuning, MagLev, MacRuby

April 20th, 2009

 

The Garbage Collector in Ruby 1.8 has received a lot of attention in the past year. The developers behind Ruby Enterprise Edition (REE), have hacked the GC to share memory across processes (details in InfoQ’s interview with the creators). REE has become a popular way to deploy and run Rails applications, with 37Signals and many others using it.
Recently the GC in REE was improved with a few bug fixes that removed sporadic freezes.
Users of a standard Ruby 1.8.x can also soon get some improvements from the MBARI patches that fix many GC problems and related memory leaks, and are now sponsored by EngineYard.

Evan Weaver gives GC tuning tips and recommends some patches that allow to monitor the GC. The results of the presented tuning:

Now the GC runs only every 13 requests, at a slightly higher cost, for a per-request cost of 0.009 seconds. This translates to a general speedup of 34%. The frequency of GC calls corresponds quite directly to the change in RUBY_GC_MALLOC_LIMIT, but if we increase it much more the memory usage balloons.

Another way to get more performance is to look at other Ruby implementations, such as JRuby which profits from the maturity of GCs in modern JVMs. Other implementations are aiming to improve the state of the art as well. Rubinius is improving steadily, and MacRuby has recently made news with its experimental branch which showed performance improvements. The work on the experimental branch is progressing:

- The compiler is now able (AFAIK) to compile all the language specs, so I guess it’s now roughly complete.[..]
- Thanks to everything above, IRB is now running!

More improvements:

- Tail-call elimination was introduced. This optimization transforms recursive calls into local loops, in order to prevent stack overflows. [..]
- The LLVM IR interpreter was investigated in order to interpret faster #eval expressions. The result of this investigation has been committed and works pretty well with simple expressions, however it is not activated by default yet because of limitations when it comes to call the VM primitives. We will have to modify the LLVM interpreter a little bit in order to fully use it from MacRuby. This will be done in the near future.

Finally, GemStone’s Ruby implementation MagLev is now in a private Alpha test, with a Beta coming in Q2. Now, compatibility (RubySpec) and benchmarking results are available at the MagLev website. Updates of the projects are also available on Twitter.

from infoq.com

Share/Save/Bookmark

ruby on rails , , ,

Dojo 1.3 and PlugD Released: Q&A with Dylan Schiemann

April 18th, 2009

The most obvious feature is official support for IE8 and Chrome. Microsoft made a number of changes that primarily impacted Dijit, and Chrome is not exactly the same as Safari.  Beyond that, significant improvements were made to documentation ( http://docs.dojocampus.org/ ), and hundreds of stability and performance improvements, and API improvements to increase developer productivity.  I’m also pretty excited about the new DataChart widget, which makes it super easy to create native charts backed by Dojo data stores, including real-time Comet sources.

InfoQ: It has been reported that Dojo is at least 2 times faster than other toolkits on common DOM operations. Would you like to comment on that?

While Alex announced TaskSpeed a bit early, at a minimum I’m very happy in that I can proudly say that for several releases now, Dojo is not the slow, bloated toolkit it was back in the days of 0.4.  Whether it is the fastest is still debatable in my mind because TaskSpeed and SlickSpeed are still far from perfect.

InfoQ: With this release came also the PlugD plugin which adds to Dojo functionality we were used with jQuery. Do you see Dojo core moving in that direction also in the future?

Absolutely, because the jQuery API for accessing and manipulating the DOM has proven to be very popular.  This work was started by Dojo project lead Peter Higgins, and done in a side project or plug-in for a few reasons.  One was to demonstrate how easy it is to add significant functionality to Dojo in plugin form.  Another reason is that we promise our users that features in Dojo Core and Dijit are stable and will not be backwards incompatible across .x releases.  So we wanted to get this functionality right before introducing it into Dojo Core.  I expect that we’ll see much of this functionality in Dojo 1.4.

InfoQ: Dojo 1.3 now has a new selector engine, Acme, but it can also use the Sizzle engine transparently. Do you think that the sharing of components between JavaScript frameworks will become something common in the future?

Acme was started by Alex prior to the announcement of Sizzle.  Going forward, my hope is that at some point Sizzle and Acme will become one and the same unless they are philosophically incompatible and our users care.  jQuery co-founder John Resig obviously contributed Sizzle to the Dojo Foundation to encourage collaboration and usage of Sizzle across toolkits, and I believe we’ll see more collaboration across toolkits going forward as it makes sense.  Off the top of my head, DOM manipulation is another candidate, as well as agreement on common names and idioms for CSS class names to make it easier to theme components when mixing in widgets while using multiple toolkits.

InfoQ: Dojo became widely known probably around release 0.4. Since then it has grown in several directions, so where do you see it going in the following years?

I consider our 0.2 release the tipping point for the project with interest from IBM, AOL, Sun and others.  Dojo 0.4 had significant buzz around OSCON 2006, but we had to complete a significant rewrite to avoid jumping the shark.  Each successive release has had more downloads than the previous release, and we continue to be impressed with the ways in which people are using Dojo.  One of the most recent high profile examples is Mozilla’s Bespin.

Today, people frequently choose between Dojo, jQuery, Ext, MooTools, and YUI when building an Ajax-based application, with Dojo achieving substantial adoption in the space of larger or more advanced applications.  In the more traditional web site realm, Dojo adoption currently trails jQuery and Prototype by a wide margin, and we might also trail YUI and MooToolsin this area.

While your standard web site with a little bit of Ajax sprinkled in has never really been our target audience, the latest performance metrics show that Dojo can provide a powerful, feature-rich option for this audience as well. Beyond becoming more relevant among traditional web sites, we’re also working to make Dojo highly relevant as a toolkit for mobile web apps, sites, and widgets.

Finally, with regards to features, we continue to listen to our users and work on the features that matter most to them.  The Dojo Grid has received substantial interest and usage over the past year, and will continue to receive attention to perfect it and make it very modular as grids can quickly become complex if you try to add in every feature request for all users.

InfoQ: In the last years there have been several projects joining the Dojo Foundation like Cometd, Persevere, DWR and quite recently TIBCO’s General Interface. Would you like to explain to us what is the function of the Foundation and how does it benefit these projects and the community?

Originally the foundation was started by Alex and I as an owner of the copyright of the Dojo Toolkit, so that it would not be Copyright Alex and Dylan.  We considered applying for membership at a place like Apache, but we really wanted something with as little process as possible, keeping the emphasis on great code above all else including money and traditional foundation functions.

While the Dojo Foundation can always use donations to support better server operations and minimal annual expenses, the emphasis on code contributions, the budgetary autonomy for each project, and the extremely high level of distributed control by each project lead to run their project as they see fit is a very compelling story.  We place few constraints on our projects: be a true 100-point open-source project (see Dojo Foundation web site), and offer your code under an approved license (currently BSD, AFL, and Apache).  Once a project is accepted to the Dojo Foundation, we offer server operations assistance and other benefits.  If you have a project that you would like to contribute to the Dojo Foundation, contact me for more details.

You can start using this latest release of Dojo either by downloading it directly or getting it from the Google CDN. You can also check out integrations for Dojo like Spring Web Flow (Java), Dojango (Django/Python), DRails (Ruby/RoR), Tatami (Java/GWT), Zend (PHP), or Dojomino (Domino Server).

Share/Save/Bookmark

javascript/ajax/web2.0, web standardization , , ,

Dynamic Drive DHTML scripts- Recall Form Values script

March 24th, 2009

This script remembers the value entered into any form textbox (<input type=’text") by the visitor, and upon his/her return, preloads the textbox with that value. It’s very useful for forms that get used repeatedly by the same visitors and contain the same values each time, such as the "name" or "email" field of a "Recommend Site" form or blog comments form. Just as useful is this script’s ease of installation- specify a form textbox value to be retained just by giving it a class="memorize" attribute!

 

Demo: In the below form, the script will remember the values entered into "Name" and "Email" fields below:

 

 


Directions:

Step 1: Add the below script to the HEAD section of your page containing the form:

Select All

The above script references an external .js file. Download "formretain.js" (by right clicking and selecting "Save As"), and upload to the directory where your webpage resides.

Step 2: Now inside any form, for the textboxes you wish the values to be remembered, just give it a class="memorize" attribute. For example:

<form>
Name:<input type="text" class="memorize">
Email: <input type="text" class="memorize">
Comments: <textarea rows="5" cols="20"></textarea>
Phone: <input type="text" class="myclass memorize">
</form>

Notice how in the "Phone" textbox, "memorize" is inserted as a secondary class in addition to any class you may already have (ie: "myclass"). In other words, this script supports multiple class names.

Currently this script only retains textbox values, so you should ONLY add class="memorize" to <input type="text"> elements.

1) Name:*

 

2) Email address:*

 

3) Comments:

 

*Field value will be remembered upon revisit.

Share/Save/Bookmark

javascript/ajax/web2.0

Open select links in new window

March 24th, 2009

This one of a kind script makes it easy to specify certain links on your page open in a new window, and with greater control than HTML’s "target" attribute. You can designate arbitrary links- or even entire groups of links- open in a new window by doing one of the following:

 

1) Give the link a class="nwindow" attribute.
2) Or, to get an entire group of links to open in a new window, wrap them all inside a container with class="nwindowcontainer", such as <div class="nwindowcontainer">links here</div>.

And to make it all worthwhile, this script supports two modes of operation- automatic or manual. In the former, the designated links (by doing one of the above steps) will automatically open in a new window. In "manual" mode however, visitors use a checkbox to toggle between the designated links opening in a new window or current instead. Control and versatility is what this script is all about!

Demo: (mode 2 "manual" shown)

Open designated* links in new window

Last two links below given class="nwindow" Links below wrapped in <td class="nwindowcontainer">

Directions:

Simply add the following script to the <BODY> section of your page, at the very end following all links on the page:

Select All

Usage notes

As noted, the script lets you designate links to open in a new window using two ways:

1) Give the link a special class:

<a href="http://www.dynamicdrive.com" class="nwindow">Dynamic Drive</a>

2) Wrap groups of links in a container with a special class:

<div class="nwindowcontainer">
link 1
link 2
etc
</div>

Furthermore, you have the option of letting the visitor decide whether these links should open in a new window, by adding a checkbox to your page:

<form name="targetmain"><input type="checkbox" name="targetnew" checked
onClick="applywindow(targetlinks)">Open designated links in new window</form>

The mere presence of this checkbox will cause the script to switch to "manual" mode.

Share/Save/Bookmark

javascript/ajax/web2.0

Random Content Colors script

March 24th, 2009

This script draws inspiration from the age old random background color scripts, but to create something practical! It lets you randomly change the background color of select elements on your page, such as a DIV or table cell, each time the page loads. Not only that, you can optionally change the element’s text and link color at the same time. It’s a highly effective yet simple way to maintain your visitors’ focus on content you want to highlight on the page, such as an announcement or advertisement.

 

Demo (try reloading page to see a random background (and text) color applied to the below:

This DIV randomly changes background color, and for one color combination, text color, and link color as well.
This table cell’s colors randomly changes.
Another table cell.

Another table cell.


Directions:

Step 1: Insert the following script in the HEAD section of your page

Select All

Once the script is installed, you can easily randomize the colors of any element by giving it a class="randomcolor" attribute. For example:

<div class="randomcolor">...</div>

Can it get any easier?

Configuration info

As explained in the script comments, the list of random background colors to apply to desired elements is done via the line:

var randombgcolors=["green:white:yellow", "#DDF4FF", "#FFFF97", "#CFFF9F"]

The first entry "green:white:yellow" illustrates how you can split a background color value into "background color:text color:link color" instead. This is useful if the specified background is dark, for example, and it’s necessary to change the other two colors in response.

Share/Save/Bookmark

javascript/ajax/web2.0

Switch Menu II

March 24th, 2009

Switch Menu II is a XP style
menu that you can stack on the your page to categorize your links. These
menus are inline rendered so any HTML that is around them when they slide
open will be "pushed" out of the way. If the user has cookies enabled the
script will use it to remember the last state of the menu upon his return.
The fade effect is optional, and can be turned off.

Demo: Click
on below menu items.



Directions

Simply download xpmenuv2_2.zip,
and refer to menu.htm inside.

Share/Save/Bookmark

javascript/ajax/web2.0

Fixed Tooltip script

March 24th, 2009

Looking for a tooltip script where the tooltip is anchored to the link’s position rather than following the mouse around? Fixed Tooltip script behaves in just this manner, unlike Cool DHTML Tooltip I or II. Whichever way you like it, we got you covered now!

 

Demo (move your mouse over):

JavaScript Kit | CodingForums.com


Directions:

Step 1: Insert the following stylesheet into the <head> section of your page:

Select All

Step 2: Insert the below code into the <body> section of your page:

Select All

Step 3: As shown in the code of Step 2, for links that will carry a tooltip, they look like:

<a href="http://www.javascriptkit.com" onMouseover="fixedtooltip(’Comprehensive JavaScript tutorials and over 400+ <b>free</b> scripts.’, this, event, ‘150px’)" onMouseout="delayhidetip()">JavaScript Kit</a>

where the first parameter of "fixedtooltip()" is the tooltip text, and the final parameter ("150px"), an optional string you pass in to modify this particular tooltip’s width, if different from the default tooltip width. Enter a blank string instead ("") if the tooltip width will be the same as the default width specified in the global variable near the top of the script.

Share/Save/Bookmark

javascript/ajax/web2.0

WordPress Loves AJAX