Just sharing some of my inconsequential lunch conversations with you... RSS  

Monday, August 18, 2008

Multiple Monitor support

Now that I got used to multiple monitors I find it difficult to live without them.

Noah Coad from the Visual Studio Platform posted about future possibilities on multiple monitor support from future Vistual Studio V10. Though this is not the way I use them (I often use one monitor for Outlook, Visual Studio, FeedDemon and another one for Windows Forms / Browser / Applications), this kind of usage can be cool with more than 2 monitors.

But what I really lack is multiple monitor support on Hyper-V (and VMWare Player). May be one of the great advantages of VMWare Workstation 6.

Smartcode reader on your PDA

devcatharsisSmartCodeHere's a cool smartcode reader application: i-nigma. With your phone camera, you can now read this smartcode 2d barcode information, containing a website link, a message or contact details. Check this bar code and you'll get into devCatharsis! Cool, beeing in devCatharsis :S

Though not new (my company has a lot of experience on this kind of technology on eTicketing), it his cool to see this for everyone, where newspapers can put it everywhere to link the experience back into the web.

What didn't work has planned: on my HTC 3300 the video is inverted, making useless the QR Code option and very difficult to aim. And above all, it can't read good old standard barcode, neither link to barcode databases, so Android Scan is still the killer app to get.

Thursday, August 14, 2008

Powershell to the rescue

Yes, I know, I have the strange habit of shutdown down as many services as I can, and sometimes I shutdown services I still need. Here's how I start them all at once, just to check if some service is needed:

Get-WmiObject Win32_Service -Filter "State='Stopped' and StartMode <> 'Disabled'" | Start-Service

Not impressive, I'm afraid. But it works!

Tuesday, August 12, 2008

How I got my Windows Server 2008 to burn DVDs...

Yesterday I've found out I my explorer couldn't write DVDs - no recording tab on the DVD properties.Luckily my PortableApps folder had DeepBurner so I could write the bloody DVD - not before running it as administrator.

So I've googled about it for a while and didn't find a reason. I've finally disabled UAC, rebooted, et voilá! So (at least on my Windows Server 2008 install) you have to disable UAC to burn DVDs on explorer?!?! Can it get more silly and unsafe than this?

Needless to say I'm enabling UAC again. Thank god for DeepBurner....

<update>

If someone knows of a policy configuration that can help us here, or of a service that I could have stopped and that guarantees burning experience with UAC on, please let me know :) Thanks in advance.

</update>

Visual Studio 2008 Service Pack 1 (SP1) and .NET Framework 3.5 SP1

Here they are:

Monday, August 11, 2008

The sky isn't falling

For those of you that were concerned with How to Impress Girls with Browser Memory Protection Bypasses  (hear about it at Vista's Security Rendered Completely Useless by New Exploit), rest assure, the sky isn't falling. As the article states:

These techniques are being seen as an advance that many in the security community say will have far-reaching implications not only for Microsoft, but also on how the entire technology industry thinks about attacks.

Ok, this is not absolutely related to Microsoft (being co-written by IBM and VMWare, Vista was the obvious choice), and some kind of user intervention is probably needed (or not?).

As ARSTechnica states, the fact is the problem seems to be related with where the DEP checking is made:

One of the key mechanisms used is the fact that the protections are not always applied. Internet Explorer 7 and Firefox 2 both opt out of DEP, and many third-party libraries such as the Flash plugin opt out of ASLR (and other protection mechanisms). Plugins can also do things that can deliberately defeat the OS's countermeasures; Java, for example, marks all of its memory as executable, meaning that a Java applet can place into memory executable code that's immune to DEP protection.

Ok, it seems like applications do have to much control over what is and isn't DEP verified, but still there is much Microsoft can do about it. Let's wait for their answer - and for the corresponding hungry answer from the users :)

Sunday, August 10, 2008

When old technology strangely works

In the nineties I've collected a lot of experience on application localization - while working on an Office Automation product, Elenix. For that I've been regularly called to help other teams architecting for localization.

It is in that context that I'm helping a team that is working on... Interdev 6! Yes, me, the guy that is always hooked on the next platform still in beta, working with Interdev 6. Uau!...

Interdev 6 localization support is resumed to near nothing, so we had to build some helpers from scratch. Our design decision was to mimic the ASP.NET resources localization approach, preserving the resource schema to facilitate future portings to ASP.NET.

This application depends highly on XSL, so a simple localization template solved most of our problems.

But anyway, I diverge, back to the old technology. Apart from being trapped in time, with poor language, framework, tooling and library support, one thing was cool: scripting! Yes, though a little strange hearing this from a type safe compile-ahead fanatic, it really felt great to get back into such a fast and light development life-cycle. Mental note to self, is scripting always as bad as I've remembered it?...

Is Linux mature enough for the consumer market?

Geeks like me can and do use Linux - I use it as a complement, can't actually totally substitute Windows.

But on the consumer market news are not so pleasant for Linux. According to The Register:

Ubuntu-based things do pretty well in techie circles. The consumer space is a different beast.

Now that most of the desktop experience problems have been addressed, the OEM lack of support seems to be the greatest problem remaining to be solved.

David Liu, chief executive of Emeryville, California-based gOS:

Linux companies like ourselves need to work closely with people making the next wave of appliance or netbooks... we need to seize it before other people fill the gap," Liu told a LinuxWorld panel on life, now that OEMs are shipping Linux PCs.

"The business model of Microsoft will adjust down [to netbooks and appliances]. We can do it, but it's a really small window of time. The PC world is moving on.

So what does Linux need right now? Above all, critical mass in usage. When  this happens, OEM will really be forced to support it. Business and customers aren't likely to support this critical mass building, so Linux now depends on one and only specialized market: education.

Education market is not without its flaws - above all it isn't really as appealing from an investment view as the consumer market. But it can evangelize a new generation.

Thursday, August 07, 2008

SQL Server 2008 is in RTM!!

Yeap, the rumors where real - though I didn't believe in them :) SQL Server is in RTM!

SQL Server 2K8 now has 7 versions. Simple to choose, no?

  • SQL Server 2008 Enterprise. SQL Server 2008 Enterprise is a comprehensive data management and business intelligence platform that provides enterprise-class scalability, data warehousing, security, advanced analytics and reporting support for running business-critical applications. With this edition, it is possible to consolidate servers and perform large-scale online transactional processing.
  • SQL Server 2008 Standard. SQL Server 2008 Standard is a complete data management and business intelligence platform that provides best-in-class ease of use and manageability for running departmental applications.
  • SQL Server 2008 Workgroup. SQL Server 2008 Workgroup is a reliable data management and reporting platform that delivers secure, remote synchronization and management capabilities for running branch applications. This edition includes core database features and is easy to upgrade to the Standard or Enterprise edition.
  • SQL Server 2008 Web. SQL Server 2008 Web is designed for highly available, Internet-facing Web-serving environments running on Windows Server. SQL Server 2008 Web provides the tools necessary to support low-cost, large-scale, highly available Web applications or hosting solutions for customers.
  • SQL Server 2008 Developer. SQL Server 2008 Developer allows developers to build and test any type of application with SQL Server. This edition features all of the functionality of SQL Server Enterprise but is licensed only for development, test and demo use. Applications and databases developed on this edition can easily be upgraded to SQL Server 2008 Enterprise.
  • SQL Server 2008 Express. SQL Server 2008 Express is a free edition of SQL Server that features core database functionality including all of the new SQL Server 2008 data types, in a small footprint. This edition is ideal for learning and building desktop and small server applications, and for redistribution by ISVs.
  • SQL Server Compact 3.5. SQL Server Compact is a free embedded database designed for developers and is ideal for building stand-alone and occasionally connected applications for mobile devices, desktops and Web clients. SQL Server Compact runs on all Microsoft Windows platforms, including the Windows XP and Windows Vista operating systems, and on Pocket PC and smartphone devices.

Just kidding, the more the merrier, our clients are entitled to a broader choice of features and prices.

Wednesday, August 06, 2008

Serializing problem

Well, not exactly a problem, more like an annoyance... a friend of mine was having some trouble deserializing a DTO from a web service he was consuming. The problem seemed to be related with an array of int being represented as an atribute. We reversed the web service assembly (yeap, we didn't have the sources but we it resided on the same server) and found the probable source of the problem:

myDTO.MyIntAsArray = new int[0];


Uhm, though not as I'd prefer, still clearly legal, right? The problem is how .NET handles this. On serialization, it doesn't seem to check it against null, and on deserialization it just throws an exception. Here's a sample:



        public class MyDTO
{
[System.Xml.Serialization.XmlAttribute]
public int[] MyCountlessIntArrayAsAttribute;

public int[] MyCountlessIntArrayAsElement;

[System.Xml.Serialization.XmlAttribute]
public int[] MyNullArrayAsElementAsAtribute;

public int[] MyNullArrayAsElementAsElement;
}


        [WebMethod]
public MyDTO HelloWorld()
{
MyDTO myDTO = new MyDTO();

myDTO.MyCountlessIntArrayAsAttribute = new int[0];
myDTO.MyCountlessIntArrayAsElement = new int[0];
myDTO.MyNullArrayAsElementAsAtribute = null; // just re-stating the obvious
myDTO.MyNullArrayAsElementAsElement = null; // just re-stating the obvious

return myDTO;
}



With this representation, here's what gets serialized:



<?xml version="1.0" encoding="utf-8" ?> 
- <MyDTO MyCountlessIntArrayAsAttribute="">
<MyCountlessIntArrayAsElement />
</MyDTO>



I won't argue of the fact that an array of 0 elements is not probably what we should use here, neither if an element is the best way to represent this array of int. One thing seems clear here, this is a .NET bug, and it remains since .NET 1.1 till .NET 3.5. So beware of int[] attribute representations :)



 



 

Sunday, August 03, 2008

Mac OS: the polite Operation System

One thing I like about Mac OS is how it kind of ask you permission to talk. When an application that doesn't have it's attention needs to communicate with you, the application starts jumping on the dock bar, almost like a student raising its hand asking for permission to talk.

Windows just brings up the message.

Summer of NHibernate Screencast Series

Here's a cool site with NHibernate screencasts and samples. Even if you already feel comfortable with NHibernate, you will probably have something to learn about alternative ways to make better use of NHibernate - I know I did :)

Development Catharsis :: Copyright 2006 Mário Romano