Skip to main content


Showing posts from 2013

SQL Workshop - Selecting columns without including a non-aggregate column in the group by clause

Thinking in terms of sets and set operations can be difficult at first but after a while you discover that you can do things without needed to drop down to procedural approaches.

This scenario requires us to be members of a hospital's Dietary Department and with the end of the year approaching we are assigned the task of estimating the amount of money needed for next year’s resource shopping, to keep the patients fed for the coming twelve months.

So we need to find the sum of the mean amount spent on the resources/raw material (vegetables, fruit, meat etc) grouped by Account Category (i.e. the account that serves for fruit) and Account Id (actual account number) used for their shopping, and use that as the basis for our new season’s budget estimate.
When a request for, say, fruit comes in, we translate that request into the amount of money consumed using a formula based on the fruit’s dynamically updated Mean Value, the Quantity of the request and a Ratio.
When the uni…

SQL Workshop - Subselects And Join

SQL Workshop is where we confront the type of problems SQL devs face on a day to day basis. The example here is based on a real problem encountered in Ingres - but it has been simplified for the purpose of illustration. What do you do when you can't use a subselect within a Join?

Full article here (i-programmer)

Exam Ref 70-483: Programming in C# book review

This book deserves the subtitle “The fat-free guide to C# and the .NET framework” and should not be overlooked just because you have no plans to take the exam
This title cleverly addresses the IT's professional's limited time available to acquire new skills. Nowadays, having knowledge in multiple programming languages, databases, BI, and in other CS fields, is increasingly essential. This book's fast paced approach gets the reader started in C# and the .NET framework in a snap, fulfilling today's demands when working under restricted time requirements.
The rest of the review on i-programmer

Loading match and drawing information using node.js

The latest news on the programming languages' typing topic wants a team of Swedish students releasing a paper that compares Node.js/Javascript to C# and suggests, including the aspect of typing, which one is a better fit for a  betting company's IT operation.

It refers to the Weakly typed languages article, and looks interesting in that it gives the typing debate a much practical value, through a real world example.

The only caveat is that it is written in Swedish and only the abstract is in English; so if anybody finds it interesting and knows Swedish then I would much appreciate a translated overview!

RedGate SQL Server Concurrency: Locking, Blocking and Row Versioning - Book Review

Although this began as a usual book review, it quickly grew into an all-encompassing article as a result of the additional and extended commentary

While concurrency is always covered as part of a book on SQL Server, this title is totally dedicated to it. Exaggerated one might say; quite the opposite and with good reason I would say. It aims to raise awareness of this frequently underrated subject whose incomprehension can result in massive performance complications.

The problem lies in that no matter how well designed your application, database, or SQL queries are, all working harmonically in isolation, going multi-user without putting considerable effort into understanding concurrency (and how your specific DBMS goes about it), will sooner or later lead your edifice into collapsing, shaken by performance degradation, unacceptable waiting time or even corrupted data state.
So this is where this slim guide comes in, to properly educate anyone working with the RDBMS in k…

All about Perl 6 – interview of Jonathan Worthington (Part 3 of 3)

NV: The JVM has been primarily designed with statically typed languages in mind. The same goes for the CLR, and that is why the DLR (build on top of CLR) came into existence.  Have you at some point considered the DLR (maybe combined with Mono instead of the CLR) or JVM’s Dynalink, both of which admittedly have a good Meta Object protocol infrastructure, as a potential backend to Rakudo?

JW: One interesting thing to note about Perl 6 is that it’s  a gradually typed language, which means the considerations are a little different from if it was dynamically typed. In that sense, VMs which explicitly seek to do both static and dynamic typing well are especially interesting for Perl 6.
I can’t speak too well to the DLR, but I do know that Niecza, the Perl 6 on CLR implementation, went the way of not using it for a range of reasons. By contrast, the JVM’s invokedynamic instruction has been rather interesting from a Perl 6 implementation point of view.
Dynalink is certainly of …

All about Perl 6 – interview of Jonathan Worthington (Part 2 of 3)

NV: What does that say about the JVM’s project’s life expectancy? Will it run in parallel with MoarVM’s development? Does all this forecasts Parrot’s demise?

JW: The JVM is playing that difficult “second backend” role. Going from one target VM to two exposes all kinds of assumptions, such as places where things are not sufficiently well abstracted and so forth.  Such abstractions are not easy to design because you’re not only thinking about how to hide differences, but how to convey enough semantic information downwards in order to allow good code generation.

Having the second VM that  is already mature and well established is a huge help. OK, I did manage to segfault the JVM thanks to the odd invokedynamic bug I managed to hit upon. But by and large, if something is wrong, I can be pretty sure that the JVM itself will not be to blame. So, the JVM porting leads the way.

That naturally means we’ll get to a rather complete Rakudo on JVM some way ahead of getting there with …

Book review of 'Beginning Perl' by Ovid

Ovid takes an interesting approach. He attempts to fill the gap between learning a language and actually applying that knowledge for landing a job.

Most books on Perl teach the language itself, its constructs and how to use them, while the code examples and practical exercises re-enforce comprehension, but that can only take you so far.

They do not address the questions
'what do you do with that knowledge?', 
or 'which technical area should I focus on for landing a job?'

full review on i-programmer

All about Perl 6 – interview of Jonathan Worthington (Part 1 of 3)

The latest news is that Parrot Virtual Machine is no longer the only one enjoying Rakudo’s exclusivity.
Not long after Rakudo had been successfully ported to the JVM a new hosting candidate that aims to change the rules of the game, MoarVM, went public.
All that activity has raised a lot of questions regarding Parrot, Rakudo and the direction Perl 6 is heading for:
Is Parrot dead ? Why yet another VM and what’s up with the JVM?How does Perl 6 stack up against other modern languages like C# ?Is there any room in the programming world for it, after all? For getting the definitive answers to these intriguing questions, we’ve managed to get hold of Jonathan Worthington for an exclusive interview. Jonathan is the architectural mastermind and primary driving force behind not only Rakudo’s implementation, but also all the projects revolving around it, such as NQP, the port on the JVM, and now the brand new MoarVM.
As if simultaneously engaging in these cognitively demanding activit…

Perlito - An Interview With Flávio Glock

In this interview, which completes a trilogy on implementations of Perl 6, we talk to Flávio Glock about Perlito, the compiler collection that implements a subset of Perl 5 and Perl 6. It is a very interesting discussion that revolves around topics like parsing, bootstraping, VM's, optimizations and much more.
Flávio Glock Soibelmann has developed several CPAN modules for the DateTime Dashboard. He is currently one of the developers of Perl and Perlito is his main current project.
Full interview on i-programmer