beautyOfCode: jQuery Plugin for Syntax Highlighting

UPDATE: Support for Syntax Highlighter 2.0 + jQuery Listed + bitbucket Repository

The Syntaxhighlighter by Alex Gorbatchev is the best I have seen so far. As you see in this post, wordpress.com uses it, too.

But the required syntax is not xhtml-compliant (name on pre is forbidden).

<pre name="code" class="javascript">
  // my code
</pre>

In order to enable compliant xhtml I had to rewrite a small part anyway, so I just made a small jQuery-Plugin that just uses Alex’s scripts right away (thanks Alex!).

Beautify explicitely

<pre id="myCode">
  <code>
     // my code
  </code>
</pre>

Using beautyOfCode you don’t have to decorate your html in order to enable syntax highlighting. Just call beautifyCode on any selected pre or textarea

$(function(){
    $.beautyOfCode.init('clipboard.swf');
    $("#myCode").beautifyCode('javascript');
});

Beautify all

If you prefer to decorate your html and then just let the highlighter take care of the rest, you may use following notation.

<pre class="code">
  <code class="javascript">
     // my code
  </code>
</pre>

<pre class="code">
  <code class="css boc-nocontrols">
    body {
      font-size: 2em;
    }
  </code>
</pre>

Make sure you have these few lines

$(function(){
    $.beautyOfCode.init('clipboard.swf');
    $.beautyOfCode.beautifyAll();
});

Settings

Default Settings

{
   noGutter: false, // hide line numbers?
   addControls: true, // copy, view plain, ...
   collapse: false, // show controls with expand link
   showColumns: false, // show column numbers
   firstLine: 1 // start with another line number?
}

Change Settings with Javascript

$(function(){
  $.beautyOfCode.init('clipboard.swf', {
    // add global settings here
    firstLine: 4,
    collapse: true
  });

  // change options per listing
  $("#myCode").beautifyCode('javascript', {
    noGutter: true
  });
});

Change Settings in Element-Decoration

Settings with in the html are added as additional classes on the code-element.

<pre class="code">
  <!-- You dont have to specify default values. -->
  <code class="javascript boc-firstline&#91;3&#93;
    boc-nocontrols
    boc-nogutter
    boc-showcolumns
    boc-collapse">
     // my code
  </code>
</pre>

kick it on DotNetKicks.com

Source Code

Notice: beautyOfCode is using Syntaxhighlighter. You need to link in SyntaxHighlighter.css, shCore.js and the brushes you want to use.

jQuery.beautyOfCode = {
  initialized: false,

  settings: {

    // hide line numbers?
    noGutter: false,

    // show copy, plain, ... links
    addControls: true,

    // collapse to control bar. cant be used
    // with addControls set to false
    collapse: false,

    // show column numbers
    showColumns: false,

    // start with another line number?
    firstLine: 1
  },

  brushByAlias: {},

  init: function (clipboardSwf, settings) {
    dp.SyntaxHighlighter.ClipboardSwf = clipboardSwf;

    if (settings)
      jQuery.extend(jQuery.beautyOfCode.settings, settings);

    if (jQuery.beautyOfCode.isInitialized)
      return;

    // creates a map of each registered brush by alias
    jQuery.each(dp.sh.Brushes, function (i, brush) {
      var aliases = brush.Aliases;

      if(aliases == null)
       return;

      jQuery.each(aliases, function (ii, alias) {
        jQuery.beautyOfCode.brushByAlias[alias] = brush;
      });
    });

    jQuery.beautyOfCode.isInitialized = true;
  },

  addCssForBrush: function (brush, highlighter) {
    if (brush.isCssInitialized)
      return;

    var headNode = $("head")[0];
    if(highlighter.Style && headNode)
    {
      var styleNode = document.createElement('style');
      styleNode.setAttribute('type', 'text/css');

      if(styleNode.styleSheet) // for IE
        styleNode.styleSheet.cssText = highlighter.Style;
      else // for everyone else
        $(styleNode).text(highlighter.Style);

      headNode.appendChild(styleNode);
    }

    brush.isCssInitialized = true;
  },

  beautifyAll: function() {
    jQuery("pre.code:has(code[class])").each(function (i, item) {

      function getOptionValue(name, list)
      {
        var regex = new RegExp('^' + name + '\\[(\\w+)\\]$', 'gi');
        var matches = null;

        for(var i = 0; i < list.length; i++)
         if((matches = regex.exec(list[i])) != null)
          return matches[1];

        return null;
      }

      var $item = jQuery(item);
      var $code = $item.children("code");
      var code = $code[0];

      var options = code.className.split(" ");
      var language = options[0];

      var settings = {};

      if ($code.hasClass("boc-nogutter"))
        settings.noGutter = true;

      if ($code.hasClass("boc-nocontrols"))
        settings.addControls = false;

      if ($code.hasClass("boc-showcolumns"))
        settings.showColumns = true;

      if ($code.hasClass("boc-collapse"))
        settings.collapse = true;        

      var firstLine = getOptionValue("boc-firstline", options, 1);
      if (firstLine)
        settings.firstLine = firstLine;

      $item.beautifyCode(language, settings);
    });
  }
};

jQuery.fn.beautifyCode = function (language, settings) {

  var saveLanguage = language;
  var saveSettings = settings;

  // iterate all elements
  this.each( function (i, item) {
    var $item = jQuery(item);

    var settings = jQuery.extend({}, jQuery.beautyOfCode.settings, saveSettings);

    var brush = jQuery.beautyOfCode.brushByAlias[saveLanguage];

    if (!brush)
      return;

    // instantiate brush
    highlighter = new brush();

    // set brush options
    jQuery.extend(highlighter, settings);

    jQuery.beautyOfCode.addCssForBrush(brush, highlighter);

    // IE Bug?: code in pre has to be skipped
    // in order to preserver line breaks.
    if ($item.is("pre") && ($code = $item.children("code")))
      $item.text($code.text());

    highlighter.Highlight($item.html());
    highlighter.source = item;

    $item.replaceWith(highlighter.div);
  });
}
[/sourcecode]
Advertisement

Modeling Through the Ages – More on Oslo

Update: Post-PDC: Again, what is “Oslo”? M, MGrammar, Quadrant, Repository, textual DSLs, DSL Tools, UML-Modeling (November 2008)

Just a couple of minutes ago the Session “A lap around Oslo” (Link added) began at PDC 2008 in Los Angeles. But sadly I’m sitting at home in Germany and just have to wait 24 hours to get to see the records.

But I found an really interesting Video on Channel9 with the first “Screenshots” of Quadrant I got to see so far. Enjoy it!

Another website Microsoft made on OSLO: MODELS remixed.

Modeling Through the Ages

 

Interview with Michele Leroux Bustamante

In my opinion the most interesting interview from MODELS remixed. Absolutely worth listening!

  • Somehow embedding videos doesn’t work here. Go on Videos on the Site MODELS remixed and then click on the fourth video.

Screenshots from Modeling Through the Ages

Bild 54Bild 56Bild 57Bild 58Bild 59

Paul Gielens:ThoughtsService

Oslo CTP available!

The Oslo SDK is available for download: Oslo Developer Center

Microsoft also did a good job writing a lot of examples, documentation and tutorials about Oslo, M and MGrammar and the Oslo Repository.

M vs. MGrammar

MGrammar looks quite interesting. As I can see, M is defined using MGrammar while MGrammar itself is self-describing.

M just seems to be a general-purpose modeling DSL. This is where “building textual DSLs” comes in. When you want to define a model you can either define it with M, or create an own more specific DSL using MGrammar. MGrammar will then generate a parser and hopefully a good intellisense-enabled editor.

Screenshots

I’m really to tired to run all of the samples and tutorials and come up with good conclusions. But I got some screenshots 🙂

That’s what “M” looks like. Unfortunately I could not find any examples or screenshots about Quadrant, which should show the same data just graphically.

tmp201

 

More than 300 built-in models.

tmp1FF

 

The Intellipad helps writing Models with M or defining textual DSLs with MGrammar.

tmp20D

 

A part of MGrammar defined in MGrammar

tmp213

 

A part of M defined in MGrammar

tmp215

 

A textual DSL built with MGrammar

tmp217

 

An instance of this DSL

tmp219

 

More tomorrow!

It’s 01:42 am here in Germany, and I just want to sleep now 🙂

Microsoft PDC 2008 – Sessions on Oslo (M+Quadrant), .NET/WF/WCF 4.0 and Dublin

Update: Post-PDC: Again, what is “Oslo”? M, MGrammar, Quadrant, Repository, textual DSLs, DSL Tools, UML-Modeling (November 2008)

I just “scanned” the PDC Session Timeline and the Sessions I would have liked to attend if I were in LA.

As soon as I find resources like videos or blog entries regarding these sessions, I’ll add the links below each session.

Monday, October 27, 2008 (updated video links)

Keynote – Cloud Computing Takes Center Stage
08:30 AM PST (LA) / 16:30 CET (Berlin) – Video

TL02 Under the Hood: Advances in the .NET Type System
Misha Shneerson, Andrew Whitechapel
11:00 AM PST / 19:00 CET

Enhancements to the type system in the next version of .NET Framework allow for loose type-coupling of components comprising your application. This talk is an in-depth examination of the changes in the Common Language Runtime and managed languages. See how these changes help to simplify versioning and deployment of components targeting either COM based and/or fully managed applications. For Office developers, learn how to eliminate the need to redistribute primary interop assemblies.

TL40 “Dublin” and .NET Services: Extending On-Premises Applications to the Cloud
Jacob Avital, 12:45 PM / 20:45 CET

Would you like to extend your existing SharePoint and .NET applications both on-premises and to the cloud in a non-intrusive way? This session will show you real-world examples of how to harness .NET Services workflow, access control and service bus to enhance business processes and add new capabilities to your application. We will demonstrate the use of “Dublin” Windows Application Server technologies to build extended application functionality. Lastly, you will see how workflow can be used to integrate across multiple organizations and the cloud. For ISVs, this session will provide a blueprint for how to sell more products to your installed base without requiring them to upgrade.

PC20 ASP.NET 4.0 Roadmap
Scott Hunter, 1:45 PM / 21:45 CET

Take a walk through the 4.0 landscape from ASP.NET and learn how you can get involved in shaping ASP.NET future. This talk focuses on the next release of ASP.NET including web forms and MVC. Do you love web forms? See how you can taking control of your control IDs, display images using the new DynamicImage control, learn about better ViewState managment in GridView and ListView, and get more control over the CSS markup of ASP.NET server controls. See how Dynamic Data makes building you data-driven apps easy. If you’re interested in AJAX, we show you further advancements in client rendering and binding. If you’re considering MVC, we look at the feature set and understand how to create applications with this technology.

PC21 ASP.NET MVC: A New Framework for Building Web Applications
Phil Haack, 3:30 PM / 23:30 CET

Learn how the new ASP.NET MVC framework differs from the current ASP.NET Web Forms framework. Learn to take advantage of ASP.NET MVC to build loosely coupled, highly testable, agile applications. See how ASP.NET MVC provides you with fine-grained control over HTML and JavaScript.

TL17 WF 4.0: A First Look
Kenny Wolf, 5:15 PM / Oct 28th, 1:15 CET

Programs coordinate work. The code for coordination and state management often obscures a program’s purpose. Learn how programming with Windows Workflow Foundation (WF) 4.0 provides clarity of intent while preserving the functional richness of the .NET framework. See how easy it is to build workflows with the new Visual Studio workflow designer. Learn about text-based authoring options for WF. Hear how WF integrates well with other Microsoft technologies (WCF, WPF, ASP.NET). If you’ve looked at WF before, come and see the changes to data flow, composition, and new control flow styles. Significant improvements to usability, composability, and performance make Workflow a great fit for a broad range of solutions on both the client and the server.

Tuesday, October 28, 2008 (updated video links)

Keynote – Building the Next Generation of User Experiences
08:30 AM / 16:30 MET – Video

TL38 WCF: Zen of Performance and Scale
Nicholas Allen, 12:45 PM / 20:45 CET

Join us for an interactive lunch discussion about different kinds of performance and scale requirements that are a crucial part of any distributed systems development life cycle. Learn the principles of Windows Communication Foundation (WCF) throughput and responsiveness optimization. Hear about WCF scalability improvements in the next version of the Microsoft .NET Framework.

TL23 A Lap around “Oslo”
Douglas Purdy, Vijaye Raji, 1:45 PM / 21:45 CET

“Oslo” is the family of new technologies that enable data-driven development and execution of services and applications. Come and learn how to capture all aspects of an application schematized in the “Oslo” repository and use “Oslo” directly to drive the execution of deployed applications.

TL27 “Oslo”: The Language
Don Box, David Langworthy, 3:30 PM / 23:30 CET 

The “Oslo” language, at the heart of the Oslo modeling platform, allows developers to quickly and efficiently express domain models that power declarative systems, such as Windows Workflow Foundation and “Dublin.” In this session, we’ll get you started writing models for your own domains by introducing you to key features of the language, including its type system, instance construction, and query. You’ll learn to author content for the Oslo repository and understand how to programmatically construct and process the content to target your own specific runtime environment.

TL20 Entity Framework Futures
Tim Mallalieu , 5:15 PM / Oct 29th, 1:15 CET

The next version of the Entity Framework adds scenarios in the areas of model driven development, domain driven development, simplicity, and integration. See a preview of production and prototype code for the next version of the Entity Framework as well as a candid discussion with members of the development team.

Wednesday, October 29, 2008 (updated video links)

Keynote – From the Lab
08:30 AM / 16:30 CET – Video

TL06 WCF 4.0: Building WCF Services with WF in Microsoft .NET 4.0
Ed Pinto, 10:30 AM / 18:30 CET

Eliminate the tradeoff between ease of service authoring and performant, scalable services. Hear about significant enhancements in Windows Communication Foundation (WCF) 4.0 and Windows Workflow Foundation (WF) 4.0 to deal with the ever increasing complexity of communication. Learn how to use WCF to correlate messages to service instances using transport, context, and application payloads. See how the new WF messaging activities enable the modeling of rich protocols. Learn how WCF provides a default host for workflows exposing features such as distributed compensation and discovery. See how service definition in XAML completes the union of WF and WCF with a unified authoring experience that simplifies configuration and is fully integrated with IIS activation and deployment.

TL61 Panel: The Future of Unit Testing
Euan Garden, Jim Newkirk, Peter Provost, Nikolai Tillmann
12:00 PM / 20:00 CET

Unit testing means different things to different people. To Agile developers, it enables Test Driven Development. To researchers, it enables test generation from static and dynamic analysis. To others, it’s a means to test protocols, APIs, and other functionality below the presentation layer. Others still see it as a means to do conformance testing. Hear four experts debate the perspectives on the advances of the last decade and the trends of the next. Audience participation is encouraged.

TL18 “Oslo”: Customizing and Extending the Visual Design Experience
Don Box, Florian Voss, 1:15 PM / 21:15 CET

“Oslo” provides visual tools for writing data-driven applications and services. Learn how to provide a great experience over domain-specific schemas, and explore the basic user model, data-driven viewer construction, user-defined queries, and custom commands. See how the design experience itself is an “Oslo” application and is driven by content stored in the “Oslo” repository.

BB18 “Dublin”: Hosting and Managing Workflows and Services in Windows Application Server
Dan Eshner, 3:00 PM / 23:00 CET

Hear about extensions being made to Windows Server to provide a feature-rich middle-tier execution and deployment environment for Windows Workflow Foundation (WF) and Windows Communication Foundation (WCF) applications. Learn about the architecture of this new extension, how it works, how to take advantage of it, and the features it provides that simplify deployment, management, and troubleshooting of workflows and services.

TL28 “Oslo”: Repository and Models
Chris Sells, 3:00PM / 23:00 CET 😦

“Oslo” is making news. We’re taking silos of proprietary, platform, and application data and opening it up for sharing. What gets shared? Deployment configuration, web services definitions, workflow definitions, and that’s just a start. Learn how to utilize platform models, how to extend models, and how to add your own models to the repository using the “Oslo” modeling language. Also learn how to version, secure, and deploy models.

ES15 Web Application Packaging and Deployment
Saad Ladki, 4:45 PM / Oct 30th, 0:45 CET

In this session, you will learn how to use powerful new UI and command line tools for Web application packaging and deployment, and you’ll dive under the hood of Visual Studio 10 to see how it will support one-click deployment to IIS. You’ll learn how to transform your development settings to make them production ready and how a real world shared hosting environment may be securely connected to a developer web application in VS10. You will also hear best practices for setting up your server and development environment to get huge productivity gains.

Thursday, October 30, 2008 (updated video links)

TL35 WCF: Developing RESTful Services
Steve Maine, 8:30 AM / 16:30 CET

Learn the latest features in Windows Communication Foundation (WCF)for building Web 2.0-style services that use URIs, HTTP GET, and other data formats beyond XML. See how these features can be applied to AJAX web sites, “REST” applications, and data feeds.

BB12 .NET Services: Messaging Services – Protocols, Protection, and How We Scale
Clemens Vasters, 10:15 AM / 18:15 CET

Look under the hood of the Microsoft .NET Services service bus, the protocols we use, and how to use the services from non-Microsoft platforms and languages. Learn which part of the messages and requests the Building Block service inspects, which parts are not inspected, and how you can verify this. Also, learn how to work through NAT and Firewall limitations Last, hear about the architecture on the Data Center side that enables “Internet scale.”

TL31 “Oslo”: Building Textual DSLs
Chris Anderson, Giovanni Della-Libera,  12:00 PM / 20:00 CET

The “Oslo” modeling language can define schemas and transformations over arbitrary text formats. This session shows you how to build your own Domain Specific Language using the “Oslo” SDK and how to apply your DSL to create an interactive text editing experience.

TL11 An Introduction to Microsoft F#
Presenter: Luca Bolognese, 1:45 PM / 21:45 CET

Learn about Microsoft’s new language, F#, a typed functional programming language for the Microsoft .NET Framework. F# combines functional programming with the runtime support, libraries, tools, and object model of .NET. Understand how F# asynchronous workflows help tame the complexity of parallel and asynchronous I/O programming and how to use F# in conjunction with tools such as Parallel Extensions for .NET.

Microsoft Buzzword-bingo with Oslo, M, Quadrant, Dublin and some facts about .NET Framework 4.0 and Visual Studio 2010 (October 2008, Pre-PDC)

Update: Post-PDC: Again, what is “Oslo”? M, MGrammar, Quadrant, Repository, textual DSLs, DSL Tools, UML-Modeling (November 2008)

One month ago I posted on Microsoft and their heavily discussed facts and rumors about the “Oslo” modeling initiative. Since then VS2010 and .NET Framework 4 has officially been released. But still “Oslo” isn’t totally unveiled!

Oslo Facts and Rumors

Microsoft will be showing a lot of new technologies on PDC. Many topics that were mentioned in context to “Oslo” are not that related anymore. Have a look at the Microsoft PDC Session Calendar in order to get an overview over all the new buzzwords.

In my last post about Oslo I cited David Chappell and Douglas Purdy saying what Oslo is about. Now Steve Martin took Douglas’ list and just decorated it with some nice code names.

M and Quadrant  – Modeling Language, Tools and Repository and Oslo

We got new code names! M and Quadrant.

  • A language – codenamed “M” – that helps people create and use textual domain-specific languages (DSLs) and data models
  • A relational repository – that makes models available to both tools and platform components
  • A tool – codenamed “Quadrant” – that helps people define and interact with models in a rich and visual manner

Steve Martin, Introducing “M” and “Quadrant”

As I understand, M textually defines models, while Quadrant can be used to view and build those graphically. Where textual DSLs comes in here, and wether M defines meta models, represent models, or both is still not clear to me.

Don Box, Oslo – Don Box’s Spoutlet – Pluralsight Blogs

With Oslo, we’re doing two things:

  1. We’re making it easier for people to write things down in ways that make sense for the domain they are working in – the common term for this in the wild is modeling.
  2. We’re making the things people wrote down accessible to platform components during program execution.

… so we’ve built a design tool for working with the same information our text-centric friends produce and consume….

…Our goal is to make it possible to build real apps purely out of data. For some apps, we’ll succeed – for others, the goal is to make the transition to traditional code as natural as possible…

I can’t yet figure out what he means by saying “out of data”. I hope, Microsoft does not try to make the world even worse with their data-centric viewpoint.

“The language was designed with an RDBMS [relational DBMS] as very, very, very much top-of-mind, so that we have a very clean mapping,” Lovering said. “But the language is not hard-wired to an RDBMS or relational model. And the language is actually built against an abstract data model. We represent the program itself also in that same abstract data model, which is a very LISP-ish idea—you know, where the whole program itself is the same data structure on which it operates.”

The Oslo language also is partially based on TLA+, a language developed by Microsoft researcher Leslie Lamport, Lovering said.

Page 2 – The Origins of Microsoft’s Oslo Software Modeling Platform 

I’m really looking forward to see some samples written in this language!

It’s been tried before and it’s never worked – I have to admit that was my first thought…

…So it’s going to really interesting to see where this all goes. I hope Microsoft pulls it off.

Some Thoughts on Oslo by Andrew Tokely

Windows Workflow Foundation and Oslo

The new WF comes with a new designer and a new runtime which most likely will be a part of the .NET Framework 4.0. The relation to Oslo seem to be the ability to define workflows using the new Oslo Language and to store them in the Oslo Model Repository.

WF 4 is announced to be 10 times faster and will contain a lot new built-in activities and workflow types.

Dublin – The Process Server and Oslo

The process server David mentioned got a own code name, too: Dublin!

Dublin will be extending the IIS Information Services with a more managed way to host distributed WCF and WF Services. Firstly it will be available as an extension to Windows Server 2008, but it is planned to become a part of new Windows Server releases.

Is this the Application Server we have been waiting for so long time?

The fun doesn’t stop here. Next week, you’ll hear more from us on how “Oslo” fits into the picture…

Steve Martin, http://blogs.msdn.com/stevemar

 

Visual Studio 2010 (formerly Rosario) + .NET Framework 4.0

Visual Studio Codename “Rosario”, has now officially been dubbed Visual Studio 2010 and was announced at September 29th.

General Information

Some general information links VS2010. But what I’m interested in more, is the Architecture Section below 🙂

Architecture with VS2010

David Skinner talks about the features VS2010 leverages for .NET Architects. Generally VS2010 suppose to support both Top-down and Bottom-up modeling approaches. One of the key features is the linking between the models at all different abstraction layers.

All the diagrams were built with a improved version of the the DSL Toolkit. The six main diagrams shipped are:

  • The Layer Diagram
  • UML 2.1 Use Case Diagram
  • UML 2.1 Component Diagram
  • UML 2.1 Activity Diagram
  • UML 2.1 Class Diagram (Logical Class Diagram)
  • UNL 2.1 Sequence Diagram

Model = Code?

The diagrams shipped in VS2010 are not just other views on code, they are real abstractions. But still, there is a connection. One feature I really like is to validate code against models. This validation can even be ran within the build process. Using the Layer Diagram for example, it is possible to enforce that developers don’t violate the relation constraints. If someone then would code a call from business to data layer, the build just fails.

Top-down

I’ll just show some screenshots I took while watching the video “Top-down” design with Visual Studio Team System 2010 on Channel 9.

Top-down in this context means, starting with modeling and then creating the software and code.

Bild 20

Bild 22

Bild 23

Bild 24

Bottom-up

Means exploring existing code and use models to understand how things work or don’t work.

“Bottom-up” Design with Visual Studio Team System 2010 Architect | VisualStudio | Channel 9

Bild 35

Bild 29 Bild 30

Bild 31

Bild 34

EfA-Fontsize zerstört Session Cookies

Das Problem

Das ASP.NET Session Cookie funktioniert nicht mehr wie es soll. Befindet man in einer Webapplikation und ist angemeldet, oder hält irgendeinen anderen Status in der ASP.NET Session, teilt sich diese Information auch mit neu geöffneten Browsern oder Fenstern. Es ist also beispielsweise nicht möglich, sich mit einem anderen Benutzer in einer zweiten Browserinstanz an derselben Applikation anzumelden.

Der Übeltäter

Nach langer Suche haben wir festgestellt, dass der Cookie-Manager im EfA-Fontsize Skript buggy ist. Das eingebundene Cookie-Skript geht alle Cookies (vorher in this.cookies abgelegt) durch und schreibt sie neu.

for(var name in this.cookies) {
  expires = (this.expiration[name])?this.expiration[name]:this.defaultExpiration;
  path = this.defaultPath;
  domain = this.defaultDomain;
  if(name) {
    var cookies = name + '=' + this.cookies[name] + '; expires=' + expires + '; path=' + path + '; domain=' + domain;
    if(cookies != '') {
      document.cookie = cookies;
     }
   }
}

Dabei wird die expires auf Heute+7 Tage gesetzt. Der Wert wird zwar über this.expiration[name] vermeintlich "wiederhergestellt", er wurde aber nie abgelegt. Dadurch werden temporäre Cookies zu permanenten. Auch path und domain für alle Cookies auf den gleichen Wert zu setzen ist ein kleines Verbrechen.

Cookiemanager.prototype.getExpiration = function() {
  var date = new Date();
  date.setTime(date.getTime()+(7*24*60*60*1000));
  return date.toGMTString();
}

 

Die Lösung

Das Skript für die EfA-Fontsize-Switcher scheint nicht mehr verfügbar zu sein: http://www.einfach-fuer-alle.de/artikel/fontsize/

Also habe ich mir auch nicht die Mühe gemacht, dass Skript zu patchen, sondern den Cookiemanager durch ein jQuery Plugin ersetzt.

  1. Plugin herunterladen und einbinden: Plugins | jQuery Plugins | Cookie
  2. Die Datei efa_fontsize.js anpassen

  3. Efa_Fontsize06.prototype.getCookie = function() {
      var cookie = $.cookie(this.cookieName);
      return (cookie)?cookie:false;
    }
    Efa_Fontsize06.prototype.setCookie = function(cookieValue) {
      return $.cookie(this.cookieName, cookieValue, { expires: 7, path: '/' });
    }
    
  4. Alle anderen Referenzen auf cookies.js aktualisieren oder entfernen und die Skript-Datei löschen.

.NET Open Space 2008 in Leipzig

Auf der Heimreise vom Open-Space-Wochenende in Leipzig…

Ein Open Space ist eine selbstorganisierende Konferenz. Wenn man es so will: eine lange Kaffeepause. Der Tag wird in einige Zeitfenster unterteilt. Aus Themenvorschlägen bilden sich in jedem Zeitfenster Sessions in „entkoppelten“ Arbeitsgruppen. Trotz eines groben zeitlichen Rahmens ist alles freiwillig, was man auch tut ist OK. Die Kosten werden in Form freiwilliger Wert- und Sachbeiträge von Teilnehmern und Sponsoren übernommen. Es gibt jedoch keine unverlangte Werbung und SPAM-Vorträge. Wer auf dem Basta Architecture Day im Sybase-Vortrag war, mag ahnen was ich meine. 🙂 Auch ohne Microsoft-Werbung

Mein Fazit vorweg: Schon von den ersten drei Stunden hatte ich mehr als von drei Tagen Basta!

Zuallererst habe ich viele tolle Menschen kennengelernt. Leute, die bereit sind in Vorleistung zu treten und auch mal ein Wochenende zu investieren. Menschen, die festgestellen, dass wir unseren Kunden nur dann langfristig Nutzen stiften, wenn wir die Qualität in der Softwareentwicklung maximieren, die Prozesse optimieren.

Die Kunst der Softwareentwicklung ist jung, die Strukturen zugleich dynamisch und gebrechlich. Es wäre kühn zu behaupten, man könne gute Softwareentwicklung betreiben ohne regen Austausch, ohne horizontale Kommunikation. Ob als Einzelkämpfer oder Gruppe – alles selber machen ist out und alles was man macht für sich zu behalten auch!

Vielen Dank für die tollen Tage, und nochmals: Ein DICKES LOB an die Organisation!

Kommentare erwünscht 🙂