"social networking services that really work are the ones that are built around objects. (...) Flickr, for example, has turned photos into objects of sociality. On del.icio.us the objects are the URLs. EVDB, Upcoming.org, and evnt focus on events as objec
XRX is a new web development architecture that is a milestone in elegant simplicity. XRX stands for: XForms on the client REST interfaces and XQuery on the server Because XRX uses a single model for data (XML) it avoids the translation complexity of other architectures. The simplicity and elegance of XRX allows developers to focus on other value-added features of web application development and enables non-programmers to create a rich web interaction experience without the need to use procedural programming languages.
Herein part six in my hobby project to rewrite my personal publishing software in Haskell. In part five (and its addendum), I roughed-out a persistence and concurrency model for the back-end. The next two pieces are rendering content (which will be done programmatically using the Text.XHtml.Strict module; that's a separate post) and integrating with a web server via FastCGI. This post covers FastCGI integration for Lighttpd and Apache2 in the form of smoke-testing a simple FastCGI handler.
I have been using Wicket for a while now and I’ve occasionally wondered if GWT provides any kind of advantage over Wicket. Here is a comparison and instead of coding a simple “Hello World” kind of example, here is something a little more complex. Functionality The target functionality is a one-page application that shows data in a single table. Item counts are displayed categorized under multiple “spaces” (workspaces). There is a summary row. The user can click on a space to expand the count of items grouped by status. Some of the tricky parts are: * The number and names of the possible status types can be different for different spaces. * Some of the table cells have to be merged to represent the grouping by space and then by status. * the style / color of the different cells has to be controlled to differentiate the total count from that grouped by status. Let's look at the Java code common to the GWT and Wicket implementations.
This post takes a look at the speed - latency and throughput - of various subsystems in a modern commodity PC, an Intel Core 2 Duo at 3.0GHz. I hope to give a feel for the relative speed of each component and a cheatsheet for back-of-the-envelope performance calculations. I’ve tried to show real-world throughputs (the sources are posted as a comment) rather than theoretical maximums. Time units are nanoseconds (ns, 10-9 seconds), milliseconds (ms, 10-3 seconds), and seconds (s). Throughput units are in megabytes and gigabytes per second. Let’s start with CPU and memory, the north of the northbridge:
If you have C# code and just try to transliterate it directly to F#, the F# code you wind up with is unlikely to be idiomatic or "good". Nevertheless, when you are new to a language (F#), it is sometimes useful to know how to transliterate from a well-known language (C#) for those cases where you just don't know the idioms yet, but don't want that to prevent you from making progress. So today's blog entry takes the general form of "here's some C# code, how do I write the same thing in F#". It is intended to be used as a reference or as casual reading to discover some little-used or lesser-known F# syntax/operators/functions. Today's blog entry covers only code that goes inside a method body, so you won't find anything about declaring classes or using namespaces here. Instead I will be covering the following bits of C#: * casts * operators * expressions * statements and show a way to transliterate those C# forms into F#.