Blog entries for category "Greg's blog":
Some of my friends already know that I have been working on something new over the last few months. Having helped shipping Windows 8, its Store App runtime for .NET applications, and the Async language and Framework features in .NET 4.5 was an awesome experience. I am very proud of our work. But over the last several moths I worked on something new – first a side project, it has now become a full feature. I wished I could have done this as a part of the .NET Team, but resource constraints and business priorities did not make this possible. Today I can talk about it publically, as my own boss. Exciting!
I continue working very closely with the Framework teram, and together we are announcing todfay a crucial update to Windows 8 Store App API Framework.
Happy New Year 2013!
— Greg & Stacy.
с Новым Годом 2013!
— Гриша и Настя.
Glückliches Neues Jahr 2013!
— Greg & Stacy.
Asynchronous programming is one of the central themes of the .NET Framework 4.5 release. The
await keywords in C# 5 and Visual Basic 11 bring a new quality to working with asynchronous code. I had heaps of fun working on the underlying technologies.
The Windows Runtime (WinRT) has also adopted the asynchronous programming model. The WinRT APIs, introduced in Windows 8, are central to writing Windows Store Apps. WinRT async APIs are different than the .NET Task-based async APIs. However, you can use WinRT async APIs as seamlessly as pure .NET APIs, with the same keywords and the same usage principles. In this article I go into detail on how you can do that.
I review the most important types in the WinRT async infrastructure, and how they relate to similar .NET concepts. After that I walk over creating a complete Windows Store App with several different asynchronous operations. I show how to start asynchronous operations, how to retrieve results, and how to work with cancellations and progress monitoring.
Want to know more? Read on..
My sample App can be downloaded from MSDN.
This article assumes that you have a basic familiarity with using the
await keywords with .NET APIs in C#. Thanks to Rich and Brandon who helped with the editing, upload and publication or this article.
Update (Feb 2013): Late last year my colleagues published a new version of the Async Targeting Pack, titled "Microsoft.Bcl.Async". It adds support for Windows Phone 7.5 and the Portable Class Libraries.
[More info on the BCL blog]
[NuGet page for the Microsoft.Bcl.Async package]
One of the things I have been working on over the past year or so is the end-to-end experience with Asynchronous Programming in the .NET Framework. This is a very large effort involving dozens of people. Today I'd like to advertise one component of this experience we have recently released:
The Async Targeting Pack for Visual Studio 2012 is now available for .NET 4 and Silverlight 5.
The Async Targeting Pack (available via NuGet) allows Visual Studio 2012 to use the new async / await language features in projects that target .NET 4.0 and Silverlight 5.
I really would like to get this off my chest. I know that many people feel similar, so I won't hold back the right words..
You are a bunch of poor dirty motherfuckers and the world would be so much better if only one of you choked on a piece of shit and died. I create capchas, and you have nothing better to do in your sad lives than wasting time and spamming people manually. I delete all your posts within a few hours, yet you keep trying just to cause pain. You do not engage in legitimate business; you waste people's time and make internet a worse place to be and to do business in. You are simply incapable to do better. You are sad little wankers and I wish you all sent to a remote island where you can suck on each other until your dicks won't need any more enlargements and you can go do normal jobs. Please leave the universe at your earliest convenience.
I am so very happy to let you know that in a couple of weeks my princess - Anastasia - will become my Queen!
I am really looking forward to it!
Я буду в России и Германии во второй половине июля
С нетерпением жду встречи!
A memory mapped files is virtual memory mapped to a physical file on disk, byte-by-byte. Or is it? Like with all advanced technology, the devil is in the detail...
Memory mapped files offer a number of benefits over traditional stream-based I/O. Advantages include random access performance, or the ability to share data across processes. The .NET framework provides built-in support for memory mapped files starting from version 4. In most cases using memory mapped files in .NET is as easy as using traditional file streams: just map a file into memory, open a seekable memory stream, and use it like a normal file while enjoying the performance benefits.
However, some tricky details lurk behind a corner: For instance - what are those weird bytes where an EOF was expected? Wanna know? Read on..
Regular Expressions are a powerful, yet a deceptive text mining tool. There are many pitfalls. One pit that is particularly easy to fall into is that a (sub-)expression can obtain a completely different meaning if it is put within the context of a another (sub-)expression. For instance, using the presumably straight-forward Set operator can be quite tricky..
Evolutionary algorithms, genetic programming and self-correcting systems have long remained in the realm of research prototypes and academic experiments. Not any more. It appears that many years of research, cross-team collaboration and internal testing are about to culminate in a main stream product that utilises evolutionary techniques in a real main-stream software development framework.
Today the Microsoft .NET Framework and Base Class Libraries Team is happy to announce some very exciting news..
I hope that everyone is having a great Holiday Season and I wish you a Happy New Year 2011!
My 2010 was a year of conclusions and a year of commencements. If was a year of hard work and of earned achievements. Great things became a part of the past and even greater dreams became present life.
I wish you a bright, energising and enlightening New Year 2011! It will be the first year of a new decade. Hard earned success will set in and long chased goals will come closer.
Please forgive me if I have not been in touch this year, and let us give it another chance in 2011.
Happy New Year!
In the name and the authority of the Council be it known that Gregory Paperin having fulfilled all the requirements and having passed all the prescribed examinations has been admitted to the degree of Doctor of Philosophy. In token thereof the Council has authorised the Common Seal of Monash University to be hereto affixed.
I am planning to be in Hamburg over Christmas and New Year:
Between the 25/12 and the 07/01.
I'd like to manage to see everyone. Let's plan ahead and make it happen. Contact me and we will set a date and a time to meet. I am really looking forward to it!
Every year again comes the DST change...
And every year again .NET developers get confused about a whole hour mysteriously missing from their logs. Others, in contrast, seem to experience an unwelcome déjà vu and to encounter things twice.
In this brief article I discuss how the
DateTime type causes many of these problems and give a few tips on using the
DateTimeOffset type to avoid most of the problems associated with
DateTime in the context of DST transitions.
Do you know why "
Greenwich Standard Time"-zone has no daylight saving time? And why "
US Eastern Standard Time" does not actually apply anywhere on the Atlantic coast of the United States? In this brief article I talk about the pitfalls of name IDs in the Windows time zone database and about what to look out for when doing time zone programming under .NET.
Life has been very busy recently, and training has not always been the top priority, but racing without due preparation was nothing new to me, so I was not too worried before my first triathlon event since I moved to Seattle. However, I have grossly underestimated the role of the geographical layout of the race course: What used to be a "hilly" course in Melbourne turned out to be a lot flatter than a "largely flat" course around western Washington State. However, although the difficult course resulted in slower times compared to what I was used to in Australia, I am happy with my placement relative to other competitors.
It’s been a few months since I moved from Melbourne to Seattle, and it is definitely time to write a blog post to update friends and family on how I am doing. I wished I had done this sooner, but things have been busy and so my constant failure to keep in touch more frequently has been perpetuated once again. Recently, however, I have been overwhelmed with a torrent of birthday wished from all over the world, and I feel, I really owe all my friends to write at least a few lines on what I was up to over the last few months (you may notice that it took me over a month to write and publish this post :) ). So, here are some random impressions of my new life.
Just wanted to share this real quick:
There is a really annoying Facebook scam making the rounds - be careful to avoid it!:
You will see that a friend likes a site titled "WOW, This GUY Went A Little Too Far WITH His REVENGE On His EX GIRLFRIEND!" or something along those lines. This is likely to make you curious because it can appear posted by friends who are not typically interested in scandals, quasi-porn and other things like that.
If you click on the link it will take you to the site "shockingxrevenge
dot com". Of course, there is no promised video or any kind of other useful or curious information. Instead, if you make the mistake to click the Verify-button on that page, a "Like" note/link will appear on your Facebook profile referencing the scam site. Your friends will see it and the scam will continue spreading.
The wankers who set up the scam obviously do not offer an "Unlike" option. However, you can trick them by clicking the Verify-button again; it will remove the scam link from your profile. (See the Facebook help link: http://www.facebook.com/help/?faq=17219&tq.)
Help spreading this warning, hopefully it will reduce the spread of the scam!
Just catching up on the race results form the last season (Summer 2009/2010) - mainly for archiving purposes:
The season finished a while ago and if I was still in Australia, I'd be preparing for the new season right now. I do not really remember many race details and I will save myself the effort to remember the specifics. In fact, I had even trouble remembering a list of all the races I did during the season.
So here is request to all my friends who happen to read this: If you know a race where I took part that is not listed here, please let me know! (Comment of this post, email or in any other way.)
Remember how all flights were grounded in April this year and then resumed again - for some airlines days earlier than for others? I am convinced that the link between the ash cloud (B), the danger and the need to ground flights (A) was made and publicised just like in this picture.
I'd like to share a little story that is, in my personal opinion, very typical of how Monash University operates. Enjoy a good laugh!
I have not blogged for a while.. Some will have heard - I have been quite busy writing up my thesis. I call it pain train. But I can see the light at the end of the tunnel - just a couple of weeks to go.
Soon after I submit, I will have to leave Australia. I am very sad to leave all my friends and the great city of Melbourne behind, but a new exciting job and new adventures are waiting for me elsewhere.
I'd like to catch up with everyone once or twice more before I leave. I have a giant heap of things to sort out before I leave in mid-May, and very little time, so there are only two good occasions: I want to come together for a few drinks around the uni, and I also will have a house party before leaving. Everyone I know is invited and I hope that everyone can make it at least to one of the two events. It would be great if you came to both, but in case of doubt - come to the party. For details, click on the links below:
- Leaving drinks (Sat, 24/04/2010): Click here for info.
- Leaving party (Sat, 08/05/2010): Click here for info.
Looking forward to seeing you all!!
I hope that everyone is having a great Hanukkah and Christmas season and I wish you a Happy New Year 2010!
My 2009 was a year of change and surprise. What was set has vanished, and what was unattainable became reality. Much has been lost, and even more has been found. End whenever there was doubt - action, not inactivity, was the right answer.
I wish you a warm, joyful, and successful New Year 2010! It will be the last year of the first decade of the new millennium. Things that have been started will be finished, and new amazing things will begin. It will be a year of new success and a year of love. And I wish, it will be a year of reunion with old friends.
Happy New Year!
In case of doubt - always do it; and although I did not have any serious doubt, I did it. Beating all of my personal competitors I have completed a half-marathon! This will stay with me for life.
If you want to know more about the pain and the gain, the experience of agony and of joy I endowed myself with by successfully completing this race, then read on.
They say I was in Amsterdam, and for a change I still remember. I knew I would have a stopover here on the way from Madeira back to Oz, but I neglected to realise that it was quite a long one. Only having arrived at the Schiphol airport I realised that there was plenty of time to dump my carry-on luggage into a storage locker and to take the train to the city for a few hours.
I'd like to briefly report about the bad experience of staying in the Tivoli resort hotel in Funchal (Madeira) and why I recommend to avoid that place at all costs.
I went to Madeira to attend the ICEC'09 conference (International Conference on Evolutionary Computation) where I presented my and Suzanne's work on Dual Phase Evolution. The presentation went extremely well and there were some interesting questions during the following discussion.