This is a mirror of official site:

Curiosity – What's Inside the Cube?

| Sunday, April 21, 2013
Inline image 2

Curiosity – What's Inside the Cube? is an experiment by Peter Molyneux's new studio 22Cans. Originally called "Curiosity", the game was later renamed to avoid confusion with the Mars rover.


Curiosity is a multiplayer social experiment. The game setting is a featureless and minimalist white room in the middle of which floats a giant cube made of billions of smaller cubes ("cubelets") and white, floating text across each layer, usually topic related (hashtag, notifications etc.), with small messages. Players tap the cubelets to dig through the surface of each layer and reveal the next layer below. The goal is to reach the centre and to discover what is inside the cube. Each layer, which has a distinct look or design, contains a clue as to what is in the centre of the cube.[2] Each cubelet destroyed by a player awards them coins. Coins can be spent on tools that temporarily enhance the player's abilities, such as picks ranging from iron to steel to diamond that increase the number of cubelets destroyed with each tap, or firecrackers that can be laid on the cube in long strings to chain together explosions.[citation needed]

22Cans intends to add more gameplay mechanics as the players progress through the cube. Version 2 released on Dec. 7th has included 3 new features: Draw mode, Badgers and Golden Badgers as well as a page graphing various statistics about the cube against time. In addition, Peter Molyneux suggests there may be more to the game than it would seem: "There is something we haven't told everybody about when you play the cube. When you play the cube you're also doing something else. You don't realize you're doing it. [...] You're not just doing things in the cube. You don't realize it but you're doing something in something else as well at the same time." [2]

Peter Molyneux has said that "what is inside the cube is life-changingly amazing by any definition".[3] Critics have stated that the game designer might be over-promising. Wired wrote that "That its contents will have proven to be as world-altering as Molyneux promised." When it was suggested to him that he might want to temper his expectations, to tone down the enthusiasm, he responds that they’re looking at the wrong side of the equation. “I don’t want to believe less in something,” he says. “I want to make something that is worthy of the emotion behind it.”[3] Curiosity is actually one of the few games that can be successfully played by a simple robot.[4]

According to the new statistics pages available in game from version 2, as of 8th Dec the game currently has over 3 million users. 22Cans did not anticipate such widespread interest in the game, and were not prepared to handle the extreme load, causing connectivity issues to persist from launch day to nearly a week afterward.[5]

The floating text across the layers usually carry the hashtag for this 'game experiment', #Curiosity, or short, informal messages from the staff.

Read more: Wikipedia
Read more: Google Play
QR: Inline image 1

Posted via email from Jasper-net

What does the langversion switch do?

| Thursday, April 18, 2013
The C# compiler has a /langversion switch that is rarely used; most people do not know what it is for, and if asked to guess, most guess wrong. So let me disabuse you of your wrong guess right away: the purpose of the langversion flag is not to decide what C# language version to use. It is not a "go into compatibility mode" switch or a "use a previous version of the compiler" switch. The only effect of the langversion switch is to put the compiler in a mode in which use of features from a version of the language higher than the given version cause the compiler to emit an error.

Let me illustrate with a hilariously contrived example:

class C
    public static bool operator < (C c1, C c2) { return true; }
    public static bool operator > (C c1, C c2) { return true; }
    public static bool operator < (bool b1, C c2) { return true; }
    public static bool operator > (bool b1, C c2) { return true; }

    static C H = new C();
    static C I = new C();
    static C J = new C();
    static void G(bool b) { }
    static void Main()
        G ( H < I > ( J ) );

This ridiculous program compiles successfully in C# 1.0; it invokes the < operator on H and I, and then invokes the > operator on the resulting bool and J.

QR: Inline image 1

Posted via email from Jasper-net

Microsoft.Bcl.Async is Now Stable

Inline image 2

It’s done. About five months ago, we shipped our Microsoft.Bcl.Async NuGet package which provides support for the async/await keywords for pre-.NET 4.5 platforms, such as .NET 4, Silverlight 4, and Windows Phone 7.5. Of course, this includes support for portable class libraries as well.

We believe we’ve baked Microsoft.Bcl.Async enough to flip the switch and mark it as stable. This might not sound like a big deal but it is the NuGet equivalent of shipping an RTM.

QR: Inline image 1

Posted via email from Jasper-net

My relationship with SOLID - The big O

Open closed is dead, long live Open closed

I'm blogging about SOLID for some reason, and now we're onto the beast that set me off:



 They are “Open For Extension”. This means that the behavior of the module can be extended. That we can make the module behave in new and different ways as the requirements of the application change, or to meet the needs of new applications.

 They are “Closed for Modification”. The source code of such a module is inviolate. No one is allowed to make source code changes to it.
Thanks Uncle Bob, you're right, this is over-stated, and because it's so over stated, I believe it to be the cause of so many of the over-designed pieces of crap I've had to deal with in my career :-)

This is the conversation I imagine developers having with themselves when writing this stuff, I don't have to imagine too hard because I've been there too:

 What if somebody at some point wants to change this so they can have another behaviour for this value, I'd better use the strategy pattern here instead of this switch statement, but oh my word now I've done that what if somebody wants to use this code from some other system than this one, I'd better stick a command system in front of this and use double dispatch for handling them - but wait, what if other code needs to react from this and do something else, I'd better raise a pile of events, but what if those aren't enough I'd better make sure I split all this behaviours out into their own interfaces so they can be overridden and...
And on it goes until suddenly what was a couple of classes behind a controller or presenter blow up into a mess of a hundred classes that all do the square root of diddly squat, but together manage to cause a lot of headaches for anybody coming across the code in the future.

Now, I'm sure this wasn't the intent behind these statements, and it sure isn't now - but you know what?

Read more: Rob Ashton
QR: Inline image 1

Posted via email from Jasper-net

How to Watch YouTube Videos in VLC Media Player

Inline image 2

How to Watch YouTube Videos in VLC Media Player
You will first need to open VLC, then click on the Media menu followed by Open Network Stream…

Read more: How-to geek
QR: Inline image 1

Posted via email from Jasper-net

If you don't know what you're going to do with the answer to a question, then there's not much point in making others work hard to answer it

A customer asked the following question:

We've found that on Windows XP, when we call the XYZ function with the Awesome flag, the function fails for no apparent reason. However, it works correctly on Windows 7. Do you have any ideas about this?

So far, the customer has described what they have observed, but they haven't actually asked a question. It's just nostalgia, and nostalgia is not a question. (I'm rejecting "Do you have an ideas about this?" as a question because it too vague to be a meaningful question.)

Please be more specific about your question. Do you want to obtain Windows 7-style behavior on Windows XP? Do you want to obtain Windows XP-style behavior on Windows 7? Do you merely want to understand why the two behave differently?

The customer replied,

Why do they behave differently? Was it a new design for Windows 7? If so, how do the two implementations differ?

I fired up a handy copy of Windows XP in a virtual machine and started stepping through the code, and then I stopped and realized I was about to do a few hours' worth of investigation for no clear benefit.

QR: Inline image 1

Posted via email from Jasper-net

How to Extend Your Office 2013/365 Trial to 180 Days

Inline image 2

In recent years it has become common for Microsoft to release trial or preview versions of its big-name products. This has been the case with Windows 8 as well as Office 2013 giving consumer the chance to try before they buy. If you downloaded the trial version of the suite, you can gain some extra try-out time with this handy hack.

The trial version of Office 365 is only meant to be used for 30 days. After this time you are expected to by a license or stop using the software. In practice, Office does not become unusable, but instead enters a ‘reduced functionality’ mode.

But if you are not sure about committing to the purchase, you can extend you trial period so you can test drive the office suite for a little longer.

It is possible to ‘rearm’ the trial version of the software five times – essentially giving you six 30-day trial periods, or 180 days in total.

While there are various tools that can be downloaded that can do this job for you, there’s no need – everything you require is already available to you. The only thing you need to remember is to run through the rearming process before you trial periods run out; make sure you do it on the thirtieth day of the trial.


You can also navigate direct to C:\Program Files\Common Files\Microsoft Shared\OfficeSoftwareProtectionPlatform or C:\Program Files (x86)\Common Files\Microsoft Shared\OfficeSoftwareProtectionPlatform and type OSPPREARM.EXE into Explorer’s address bar before hitting Enter.

That’s all there is to it. It’s not quite a free copy of Office, but you do get to use it for a little longer.

Read more: How-to geek
QR: Inline image 1

Posted via email from Jasper-net

Big list of LINQ interview questions and answers compiled

| Wednesday, April 17, 2013
I have had a number of users ping me asking about writing interview questions on LINQ. I actually have a 8 detailed posts on LINQ interview questions. Here is a compilation of the posts:


QR: Inline image 1

Posted via email from Jasper-net

Postgres 9.3 feature highlight: JSON data generation

Postgres 9.2 has introduced JSON as a server data type. At this point, the data was simply stored on server side with integrated wrappers checking that data had a correct JSON format. It was a good first step in order to store directly JSON data on server side but core features in 9.2 have its limitations in terms of JSON data manipulation and transformation.

Two new sets of JSON features have been added to PostgreSQL 9.3 planned to be released this year: functions related to data generation and a new set of APIs for data processing. The one this post deals with the ability to generate JSON data based on existing data types. The second set of features (operators and new processing functions) will be explained in a future post.

So… Functions for JSON data generation have been added by this commit.
commit 38fb4d978c5bfc377ef979e2595e3472744a3b05
Author: Andrew Dunstan 
Date: Sun Mar 10 17:35:36 2013 -0400
JSON generation improvements.
This adds the following:
 json_agg(anyrecord) -> json
 to_json(any) -> json
 hstore_to_json(hstore) -> json (also used as a cast)
 hstore_to_json_loose(hstore) -> json
The last provides heuristic treatment of numbers and booleans.
Also, in json generation, if any non-builtin type has a cast to json,
that function is used instead of the type's output function.
Andrew Dunstan, reviewed by Steve Singer.
Catalog version bumped.

The first function called to_json permits to return a given value as valid JSON.
postgres=# create table aa (a bool, b text);
postgres=# INSERT INTO aa VALUES (true, 'Hello "Darling"');
postgres=# INSERT INTO aa VALUES (false, NULL);
postgres=# SELECT to_json(a) AS bool_json, to_json(b) AS txt_json FROM aa;
bool_json | txt_json
true | "Hello \"Darling\""
false |
(2 rows)

Boolean values are returned as plain true/false, texts are quoted as valid JSON fields.

json_agg is a function that can transform a record into a JSON array.
postgres=# SELECT json_agg(aa) FROM aa;
[{"a":true,"b":"Hello \"Darling\""}, +
(1 row)

Read more: Michael Paquier
QR: Inline image 1

Posted via email from Jasper-net

“Hacking Secret Ciphers with Python” Released

Inline image 1

My third book, Hacking Secret Ciphers with Python, is finished. It is free to download under a Creative Commons license, and available for purchase as a physical book on Amazon for $25 (which qualifies it for free shipping). This book is aimed at people who have no experience programming or with cryptography. The book goes through writing Python programs that not only implement several ciphers but also can hack these ciphers.

QR: Inline image 2

Posted via email from Jasper-net

Using GridFS in MongoDb from C#

GridFS is a specification for storing large files in MongoDB. GridFS will chunk a file into documents, and the official C# driver supports GridFS.

The following class wraps some of the driver classes (MongoDatabase and MongoGridFS):

public class MongoGridFs
    private readonly MongoDatabase _db;
    private readonly MongoGridFS _gridFs;
    public MongoGridFs(MongoDatabase db)
        _db = db;
        _gridFs = _db.GridFS;
    public ObjectId AddFile(Stream fileStream, string fileName)
        var fileInfo = _gridFs.Upload(fileStream, fileName);
        return (ObjectId)fileInfo.Id;
    public Stream GetFile(ObjectId id)
        var file = _gridFs.FindOneById(id);
        return file.OpenRead();           
The following code uses the above class to put a file into MongoDB, then read it back out.

var fileName = "clip_image071.jpg";
var client = new MongoClient();
var server = client.GetServer();
var database = server.GetDatabase("testdb");
var gridFs = new MongoGridFs(database);

Read more: Ode to code
QR: Inline image 1

Posted via email from Jasper-net

Remote Controlling a Car over the Web. Ingredients: Smartphone, WebSocket, and Raspberry Pi.

| Tuesday, April 9, 2013
Inline image 2

At Kaazing, we have been experimenting with using a smartphone as a remote control for quite some time now. Those familiar with our demos may have seen our Zing-Pong demo (which is a “Pong”-style game using smartphones to control the paddles over WebSocket) or our Racer demo (which is a 3D Formula One car rendered in WebGL as a Chrome Experiment, and remotely controlled with a smartphone). These demos, along with the other demos we’ve created with Kaazing’s platform, use no plug-ins. You simply point a browser on your computer to the address of the object you want to control (for example, the gorgeous Formula One car rendered in WebGL) and a browser from your smartphone to the address of the remote control (an ID we generate for you). Once connected, you just…go!

A couple of our Visionary Zingers, Prashant Khanal and David Witherspoon, then experimented with communicating with a Raspberry Pi using WebSocket–or, more specifically, using Kaazing’s JMS-over-WebSocket Gateway to tell Raspberry Pi to turn on and off a lightbulb. When the lightbulb turned on in this experiment, another lightbulb turned on: could we in fact turn a remote, radio-controlled car into a remote, WebSocket-controlled car? By controlling the car over the Web, could we control the car from another room? From another continent?

The Racer Demo

Let’s first take a closer look at the Racer demo. The Racer demo uses the reflector pattern: where we connect devices through a WebSocket server, thus simulating peer-to-peer connectivity, a very easy-to-achieve task using pub/sub. When we developed the Racer demo, we walked through the steps to build it in The Simplest Way to Use Your Smartphone as a Game Controller: A WebSocket Race Car Demo. By examining how to use pub/sub concepts to control a virtual car, it’s not so farfetched to consider doing the same with a radio-controlled car.

Read more: The Zinger
QR: Inline image 1

Posted via email from Jasper-net


Inline image 2

What is it?

Terminology is a new terminal emulator. It started life during a vacation in Thailand in June of 2012. So it is young and fresh, so it's not perfect, but it's getting there.

What does it do?
It emulates a slightly extended vt100 with some extensions and bling thrown in.
  • Most escapes supported by xterm, rxvt etc. work
  • Xterm 256 color escapes work
  • Backgrounds (bitmap, scalable/vector, animated gif, videos)
  • Transparency
  • Bitmap and scalable fonts supported
  • Themes for the layout and design
  • URL, file path and email address detection and link-handling
  • Inline display of link content
  • Multiple copy and paste selections and buffer support
  • Works in X11
  • Works in Wayland
  • Works directly in the linux framebuffer (fbcon)
  • Can be finger/touch controlled
  • Scan scale by UI scaling factors
  • Can render using OpenGL or OpenGL-ES2 (not a requirement - just an option)
  • Can display inlined media content (images, video, documents)
  • Can do multiple "tabs"
  • Can do splitting into multiple panes
  • Block text selection
  • Drag and drop of text selections and links
  • Can stream media from URLs
  • Tab switcher has live thumbnail content
  • Single process, multiple windows/terminals support
  • Fast (gives urxvt a run for its money)
  • Themable visual bell
  • More...

Read more: Terminology
QR: Inline image 1

Posted via email from Jasper-net

April 2013 Security Release ISO Image

This DVD5 ISO image file contains the security updates for Windows released on Windows Update on April 9, 2013. The image does not contain security updates for other Microsoft products. This DVD5 ISO image is intended for administrators that need to download multiple individual language versions of each security update and that do not use an automated solution such as Windows Server Update Services (WSUS). You can use this ISO image to download multiple updates in all languages at the same time.

Important:   Be sure to check the individual security bulletins at prior to deployment of these updates to ensure that the files have not been updated at a later date.

The below Operating Systems will contain the following number of languages unless otherwise noted: 

Windows XP - 24 languages
Windows XP x64 Edition - 2 languages
Windows Server 2003 - 18 languages
Windows Server 2003 x64 Edition - 11 languages
Windows Server 2003 for Itanium-based Systems - 4 languages
Windows Vista - 36 languages
Windows Vista for x64-based Systems - 36 languages
Windows Server 2008 - 19 languages
Windows Server 2008 x64 Edition - 19 languages
Windows Server 2008 for Itanium-based Systems - 4 languages
Windows Server 2008 R2 x64 Edition - 19 languages
Windows Server 2008 R2 for Itanium-based Systems - 4 languages
Windows 7 - 36 languages
Windows 7 for x64-based Systems - 36 languages

Read more: MS Download
QR: Inline image 1

Posted via email from Jasper-net

Finch — консольный клиент для мгновенных сообщений

| Sunday, April 7, 2013
Каждый программист трепетно относится к своему программному окружению. Очень важно добиться максимального комфорта в работе. В качестве своей операционной системы я использую Linux. Как минимум это полезно для меня на профессиональной почве. Изначально я выбирал Linux по этой причине — чем больше предпосылок будет для самосовершенствования, тем меньше останется моей лени. Linux помогает мне не забывать, что не все программы могут быть оконными. Рабочие и тестовые серверы, с которыми мне приходится работать, управляются из консоли. Доступ к удаленным серверам осуществляется по SSH. Без знания консоли трудно поднять, обновить или внести правки на сервере, потому я стараюсь осваивать эту оболочку по мере сил. Терминал постоянно радует меня своими возможностями, открывая то одну, то другую полезную программу или утилиту. Недавно я открыл для себя программу, позволяющую использовать IM в консоли.

В своем окружении я предпочитаю минимализм. Основные требования к программам, которые я выбираю:
быстрый отклик
полнота функционала
удобство использования

Об одной из таких программ хочется рассказать больше. Она не так хороша в удобстве, но идеально подходит под мое рабочее окружение.

Finch — это консольный клиент на базе библиотеки libpurple, которую также использует Pidgin. О ней я узнал случайно, просматривая список альтернативных программ. 

Finch is a text/console-based, modular instant messaging client capable of using multiple networks at once. Currently supported are: AIM/ICQ, Yahoo!, MSN, IRC, Jabber/XMPP/Google Talk, Napster, Zephyr, Gadu-Gadu, Bonjour, Groupwise, Sametime, SIMPLE, ySpaceIM, and MXit

Read more:
QR: Inline image 1

Posted via email from Jasper-net

.NET Memory Allocation Profiling with Visual Studio 2012

| Saturday, April 6, 2013
Inline image 1

Visual Studio 2012 has a wealth of valuable functionality, so much so that I periodically hear developers that already use Visual Studio asking for a feature the IDE already has and that they’ve just never discovered. Other times, I hear developers asking about a specific feature, thinking it’s meant for one purpose, not realizing it’s really intended for another.

Both of these cases apply to Visual Studio’s .NET memory allocation profiler. Many developers that could benefit from it don’t know it exists, and other developers have an incorrect expectation for its purpose. This is unfortunate, as the feature can provide a lot of value for particular scenarios; many developers will benefit from understanding first that it exists, and second the intended scenarios for its use.

Why memory profiling?

When it comes to .NET and memory analysis, there are two primary reasons one would want to use a diagnostics tool:

To discover memory leaks. Leaks on a garbage-collecting runtime like the CLR manifest differently than do leaks in a non-garbage-collected environment, such as in code written in C/C++. A leak in the latter typically occurs due to the developer not manually freeing some memory that was previously allocated. In a garbage collected environment, however, manually freeing memory isn’t required, as that’s the duty of the garbage collector (GC). However, the GC can only release memory that is provably no longer being used, meaning as long as there are no rooted references to the memory. Leaks in .NET code manifest then when some memory that should have been collected is incorrectly still rooted, e.g. a reference to the object occurs in an event handler registered with a static event. A good memory analysis tool might help you to find such leaks, such as by allowing you to take snapshots of the process at two different points and then comparing those snapshots to see which objects stuck around for the second point, and more importantly, why.

Posted via email from Jasper-net

Visual Studio 2012 Update 2

This update is the latest in a cumulative series of feature additions and bug fixes for Visual Studio 2012. Periodic updates enable us to enhance and expand Visual Studio more frequently to support the latest software development innovations for building and managing modern apps. For information about the latest update, see Visual Studio Updates. 

Updates for these other products are also available:

Microsoft Visual Studio Team Foundation Server 2012
Microsoft Visual Studio Team Foundation Server Express 2012
IntelliTrace Collector for Visual Studio 2012
Remote Tools for Visual Studio 2012
Agents for Microsoft Visual Studio 2012
Agents for Microsoft Visual Studio 2012 Language Pack

Read more: MS Download

Posted via email from Jasper-net

Google Super Sync Sports Turns Your Phone Into A Gamepad

| Thursday, March 21, 2013
Using a mobile device to control an application on a PC, media player or video game console, isn't too uncommon, but it is when the content being controlled is a game. Just how possible would it be to play a fairly fast-paced game on your PC via your mobile device? Google wanted to find out, so it crafted a game called Super Sync Sports, where you control an athlete on your desktop or notebook via controls on your phone or tablet. To make a game like this possible, Google turned to WebSockets for real-time collaboration between two devices, HTML5 for the audio, Canvas for the graphics, and CSS3 for the styling and transitions.

Read more: Slashdot
QR: Inline image 1

Posted via email from Jasper-net

List Of Windows Services That Can Be Safely Disabled

Inline image 2

Windows Services are executable programs that run constantly in the background and perform specific functions on their own. Users with administrator privileges can choose a default startup behavior for these services. For instance, they can be set to start at system boot, paused and restarted whenever required, or simply disabled. While some services come with the operating system by default, at times different third party software also add their own services. While leaving the services running in the background allows certain tools and utilities to function better, disabling the ones you don’t need can also increase the performance of your system. In what follows, we’ll guide you through the process of starting, stopping and disabling Windows Services.

How To Disable Windows System Services
Before you start or stop a service, it is important to know its function so that stopping it does not disrupt any important Windows feature or task. If you know the exact nature of a particular service, you can disable it if you don’t need that feature. For example, if you do not use Bluetooth devices with your system, there no need to have its service running all the time and you can easily disable the Bluetooth Support Service without an issue. Since you can start or stop a service anytime that you like, you can even use this feature for the services that you use very rarely to keep them disabled or stopped and enabling them only when required. Continuing with the aforementioned example, if you connect a Bluetooth device to the computer once every two weeks, you can turn on the service whenever needed and keep it off by default.

You can easily access the Services dialog box from the start menu to view and control all services. Moreover, third party tools, such as Windows Service Monitor and Services Monitor can also be used to manage Windows services, both locally and remotely.

Read more: Addictive tips
QR: Inline image 1

Posted via email from Jasper-net

How to write your first USB client driver (UMDF) (Windows Drivers)

Inline image 1

In this topic you'll use the USB User-Mode Driver template provided with Microsoft Visual Studio 2012 to write a user-mode driver framework (UMDF)-based client driver. After building and installing the client driver, you'll view the client driver in Device Manager and view the driver output in a debugger.

UMDF (referred to as the framework in this topic) is based on the component object model (COM). Every framework object must implement IUnknown and its methods, QueryInterface, AddRef, and Release, by default. The AddRef and Release methods manage the object's lifetime, so the client driver does not need to maintain the reference count. The QueryInterface method enables the client driver to get interface pointers to other framework objects in the Windows Driver Frameworks (WDF) object model. Framework objects perform complicated driver tasks and interact with Windows. Certain framework objects expose interfaces that enable a client driver to interact with the framework.

A UMDF-based client driver is implemented as an in-process COM server (DLL), and C++ is the preferred language for writing a client driver for a USB device. Typically, the client driver implements several interfaces exposed by the framework. This topic refers to a client driver-defined class that implements framework interfaces as a callback class. After these classes are instantiated, the resulting callback objects are partnered with particular framework objects. This partnership gives the client driver the opportunity to respond to device or system-related events that are reported by the framework. Whenever Windows notifies the framework about certain events, the framework invokes the client driver's callback, if one is available. Otherwise the framework proceeds with the default processing of the event. The template code defines driver, device, and queue callback lasses.
For an explanation about the source code generated by the template, see Understanding the UMDF template code for USB client driver.

Read more: MSDN
QR: Inline image 2

Posted via email from Jasper-net