Sunday, January 27, 2008

Monica Lewinsky: I Am Voting Republican, The Democrats Left A Bad Taste In My Mouth

Monica Lewinsky: I Am Voting Republican, The Democrats Left A Bad Taste In My Mouth

Monica Lewinsky: "I Am Voting Republican, The Democrats Left A Bad Taste In My Mouth"

Mmmm, who will she vote for?
Mitt Romney
John McCain
Mike Huckabee
Ron Paul
Rudy Giuliani

Saturday, January 26, 2008

SQL Server 2008 To RTM In Q3 2008

Francois Ajenstat on his blog writes that

"Microsoft is excited to deliver a feature complete CTP during the Heroes Happen Here launch wave and a release candidate (RC) in Q2 calendar year 2008, with final Release to manufacturing (RTM) of SQL Server 2008 expected in Q3."


You can read the whole blog post here: http://blogs.technet.com/dataplatforminsider/archive/2008/01/25/microsoft-sql-server-2008-roadmap-clarification.aspx

Pearly Gates

A man appeared before St. Peter at the Pearly Gates.

'Have you ever done anything of particular merit?' St. Peter asked.

'Well, I can think of one thing,' the man offered. 'On a trip to the Black Hills of South Dakota, I came upon a gang of bikers who were threatening a young woman.

I directed them to leave her alone, but they wouldn't listen.

So, I approached the largest and most heavily tattooed biker and smacked him in the face, kicked his bike over, ripped out his nose ring, and threw it on the ground.

I yelled, 'Now, back off, or I'll kick the shit out of all of you!'

St. Peter was impressed .. 'When did this happen?'

'Couple of minutes ago.'

Friday, January 25, 2008

SQL Tip: Find all The Rows Where Any Of The Columns Is Null Or Zero Or Both

This question is asked every now and then so I decided to do a little blog post. How can you quickly without writing a bunch of OR statements determince if any columns have a NULL value, a value of 0 or if the value is 0 or NULL.
To test for NULL is very easy, you just concatenate the columns since NULL + anything else is always NULL. Okay that also depends on a setting.

Run this

SET
CONCAT_NULL_YIELDS_NULL ON
SELECT
NULL + '1' --NULL

SET CONCAT_NULL_YIELDS_NULL OFF
SELECT
NULL + '1' --1

As you can see if CONCAT_NULL_YIELDS_NULL is OFF then the result is 1

Now take a look at this


SET CONCAT_NULL_YIELDS_NULL ON
SELECT
NULL + 1 --NULL



SET CONCAT_NULL_YIELDS_NULL OFF
SELECT
NULL + 1 --NULL


So with numeric values it behaves differently. Either way by default CONCAT_NULL_YIELDS_NULL is set to on
To test for NULLS or zeroes you use NULLIF
To test for zeros you can combine COALESCE and NULLIF

Here is the code which shows all of that

CREATE
TABLE #test(column1 int,column2 varchar(4),column3 float)

INSERT
#test VALUES(2,'2',2)
INSERT #test VALUES(0,'1',0)
INSERT #test VALUES(null,'1',0)
INSERT #test VALUES(1,null,0)
INSERT #test VALUES(0,'1',null)
INSERT #test VALUES(null,null,null)



--Any column is Null
SELECT * FROM #test
WHERE column1 + column2+column3 is null

Output
------------
NULL 1 0.0
1 NULL 0.0
0 1 NULL
NULL NULL NULL



--Any column is Null or zero
SELECT * FROM #test
WHERE NULLIF(column1,0) + NULLIF(column2,0)+NULLIF(column3,0) is null

Output
-------------------
0 1 0.0
NULL 1 0.0
1 NULL 0.0
0 1 NULL
NULL NULL NULL




--Any column is zero
SELECT * FROM #test
WHERE NULLIF(COALESCE(column1,1),0) +
NULLIF(COALESCE(column2,1),0)+
NULLIF(COALESCE(column3,1),0) is null

Output
-------------------
0 1 0.0
NULL 1 0.0
1 NULL 0.0
0 1 NULL


DROP TABLE #test

Tuesday, January 22, 2008

Screen Cast: Parallel Extensions for the .NET Framework - ParallelFX

Jeff Barnes presents an Architect Point of View (arcPOV) presentation on ParallelFX - the Parallel extensions to the .NET framework currently in CTP. In this segment, Jeff provides a brief oveview of this exciting new breakthrough in muti-core processing using the .NET framework and shares with you some of his findings for the potential performance gains that this framework extension provides on dual and quad-core machines.


Watch the screencast(WMV)

Monday, January 21, 2008

Thursday, January 17, 2008

Screen Cast: Debugging Into the .NET Framework Source Code with Visual Studio 2008

With Visual Studio 2008 you can debug right into the .NET Framework libraries source code. Watch this video to learn how.

download the video here: http://channel9.msdn.com/ShowPost.aspx?PostID=373468#373468

Screen Cast: SQL Server 2008 – FILESTREAM, WPF and HTTP

This screencast shows how videos stored in SQL Server 2008 varbinary(max) using the FILESTREAM attribute can be server to a WPF Windows client application via an ASPX.NET web application over HTTP.
You can download the sample code from the SQL Server End to End Community Samples here.

Watch the screencast(WMV)

LIFE IN THE 1500'S

LIFE IN THE 1500'S

The next time you are washing your hands and complain because the water temperature isn't just how you like it, think about how things
used to be. Here are some facts about the 1500s:

Most people got married in June because they
took their yearly bath in May, and still smelled pretty good by June .
However, they were starting to smell, so brides carried a bouquet of
flowers to hide the body odor. Hence the custom today of carrying a
bouquet when getting married.

Baths consisted of a big tub filled with hot
water. The man of the house had the privilege of the nice clean water,
then all the other sons and men, then the women and finally the
children. Last of all the babies. By then the water was so dirty you could
actually lose someone in it. Hence the saying, Don't throw the baby out
with the Bath water..

Houses had thatched roofs-thick straw-piled
high, with no wood underneath. It was the only place for animals to get
warm, so all the cats and other small animals (mice, bugs) lived in
the roof When it rained it became slippery and sometimes the animals
would slip and fall off the roof.
Hence the saying . It's raining cats and dogs.

There was nothing to stop things from
falling into the house.. This posed a real problem in the bedroom where bugs and
other droppings could mess up your nice clean bed. Hence, a bed with
big posts and a sheet hung over the top afforded some protection.
That's how canopy beds came into existence.

The floor was dirt. Only the wealthy had
something other than dirt.Hence the saying, Dirt poor. The wealthy had
slate floors that would get slippery in the winter when wet, so they
spread thresh (straw) on floor to help keep their footing. As the
winter wore on, they added more thresh until, when you opened the
door, it would all start slipping outside. A piece of wood was placed
in the entranceway. Hence the saying a thresh hold.


In those old days, they cooked in the kitchen with
a big kettle that always hung over the fire. Every day they lit the
fire and added things to the pot. They ate mostly vegetables and did not
get much meat. They would eat the stew for dinner, leaving leftovers in
the pot to get cold overnight and then start over the next day.
Sometimes stew had food in it that had been there for quite a while. Hence
the rhyme, Peas porridge hot, peas porridge cold, peas porridge in
the pot nine days old..

Sometimes they could obtain pork, which made
them feel quite special. When visitors came over, they would hang up
their bacon to show off. It was a sign of wealth that a man could,
bring home the bacon. They would cut off a little to share with
guests and would all sit around and chew the fat..

Those with money had plates made of pewter.
Food with high acid content caused some of the lead to leach onto the
food, causing lead poisoning death. This happened most often with
tomatoes, so for the next 400 years or so, tomatoes were considered poisonous.

Bread was divided according to status.
Workers got the burnt bottom of the loaf, the family got the middle, and guests
got the top, or the upper crust.

Lead cups were used to drink ale or whisky.
The combination would sometimes knock the imbibers out for a couple of
days. Someone walking along the road would take them for dead and prepare
them for burial. They were laid out on the kitchen table for a couple
of days and the family would gather around and eat and drink and
wait and see if they would wake up. Hence the custom of holding a wake.

England is old and small and the local folks
started running out of places to bury people. So they would dig up
coffins and would take the bones to a bone-house, and reuse the grave. When
reopening these coffins, 1 out of 25 coffins were found to have
scratch marks on the inside and they realized they had been burying
people alive. So they would tie a string on the wrist of the corpse,
lead it through the coffin and up through the ground and tie it to a
bell. Someone would have to sit out in the graveyard all night (the
graveyard shift.) to listen for the bell; thus, someone could be, saved
by the bell or was considered a ...dead ringer..

And that's the truth...Now, whoever said
History was boring ! ! !

Wednesday, January 16, 2008

Rudy Giuliani's Last Chance To Save New York


Yes this is Rudy's last chance to save New York :-0

Sun Microsystems Announces Agreement to Acquire MySQL, Developer of the World's Most Popular Open Source Database

Sun Microsystems, Inc. (NASDAQ: JAVA) today announced it has entered into a definitive agreement to acquire MySQL AB, an open source icon and developer of one of the world's fastest growing open source databases for approximately $1 billion in total consideration. The acquisition accelerates Sun's position in enterprise IT to now include the $15 billion database market. Today's announcement reaffirms Sun's position as the leading provider of platforms for the Web economy and its role as the largest commercial open source contributor.

With millions of global deployments including Facebook, Google, Nokia, Baidu and China Mobile, MySQL will bring synergies to Sun that will change the landscape of the software industry by driving new adoption of MySQL's open source database in more traditional applications and enterprises. The integration with Sun will greatly extend the commercial appeal of MySQL's offerings and improve its value proposition with the addition of Sun's global services organization. MySQL will also gain new distribution through Sun's channels including its OEM relationships with Intel, IBM and Dell.

"Today's acquisition reaffirms Sun's position at the center of the global Web economy. Supporting our overall growth plan, acquiring MySQL amplifies our investments in the technologies demanded by those driving extreme growth and efficiency, from Internet media titans to the world's largest traditional enterprises," said Jonathan Schwartz, CEO and president, Sun Microsystems. "MySQL's employees and culture, along with its near ubiquity across the Web, make it an ideal fit with Sun's open approach to network innovation. And most importantly, this announcement boosts our investments into the communities at the heart of innovation on the Internet and of enterprises that rely on technology as a competitive weapon."

MySQL's open source database is widely deployed across all major operating systems, hardware vendors, geographies, industries and application types. The complementary product line-ups will extend MySQL's database reach and are expected to bring new markets for Sun's systems, virtualization, middleware and storage platforms.

"The combination of MySQL and Sun represents an enormous opportunity for users and organizations of all sizes seeking innovation, growth and choice," said Marten Mickos, CEO, MySQL. "Sun's culture and business model complements MySQL's own by sharing the same ideals that we have had since our foundation -- software freedom, online innovation and community and partner participation. We are tremendously excited to work with Sun and the millions of members of the MySQL open source ecosystem to continue to deliver the best database for powering the modern Web economy."

MySQL's open source database is the "M" in LAMP - the software platform comprised of Linux, Apache, MySQL and PHP/Perl often viewed as the foundation of the Internet. Sun is committed to enhancing and optimizing the LAMP stack on GNU/Linux and Microsoft Windows along with OpenSolaris and MAC OS X. The database from MySQL, OpenSolaris and GlassFish, together with Sun's Java platform and NetBeans communities, will create a powerful Web application platform across a wide range of customers shifting their applications to the Web.

More than 100 million copies of MySQL's high-performance open source database software have been downloaded and distributed and an additional 50,000 copies are downloaded daily. This broad penetration coupled with MySQL's strength in Web 2.0, Software as a Service (SaaS), enterprise, telecom and the OEM embedded market make it an important fit for Sun. With MySQL, Sun will have the ability to deepen its existing customer relationships and create new opportunities with companies seeking the flexibility and ease-of-use of open source systems.

Following completion of the proposed transaction, MySQL will be integrated into Sun's Software, Sales and Service organizations and the company's CEO, Marten Mickos, will be joining Sun's senior executive leadership team. In the interim, a joint team with representatives from both companies will develop integration plans that build upon the technical, product and cultural synergies and the best business and product development practices of both companies. MySQL is headquartered in Cupertino, CA and Uppsala, Sweden and has 400 employees in 25 countries.

As part of the transaction, Sun will pay approximately $800 million in cash in exchange for all MySQL stock and assume approximately $200 million in options. The transaction is expected to close in late Q3 or early Q4 of Sun's fiscal 2008. Completion of the transaction is subject to regulatory approval and other customary closing conditions. The deal is expected to be accretive to FY10 operating income on a GAAP basis.

The management teams of both companies will host a media and analyst conference call today at 10:00 am EST, 7:00 am PST. The call can be accessed at http://www.sun.com/investors. For those unable to listen to the live conference call, a telephone replay will be available for one week following the call by dialing (888) 566-0103 or outside of the U.S. by dialing (402) 998-0958. No passcode is required to access the replay.

About MySQL
MySQL AB develops and supports a family of high-performance, affordable database products. The company's flagship offering is 'MySQL Enterprise', a comprehensive set of production-tested software, proactive monitoring tools, and premium support services. MySQL is the world's most popular open source database software. Many of the world's largest and fastest-growing organizations use MySQL to save time and money powering their high-volume Web sites, business-critical systems and packaged software -- including industry leaders such as Yahoo!, Alcatel-Lucent, Google, Nokia, YouTube and Booking.com. With headquarters in the United States and Sweden -- and operations around the world -- MySQL AB supports both open source values and corporate customers' needs. For more information about MySQL, please visit http://www.mysql.com/ .

About Sun Microsystems, Inc.
Sun Microsystems develops the technologies that power the global marketplace. Guided by a singular vision -- "The Network is the Computer" -- Sun drives network participation through shared innovation, community development and open source leadership. Sun can be found in more than 100 countries and on the Web at http://sun.com/.

Sunday, January 13, 2008

The last two days have been the worst of my life, the Oxycodone is not really helping

The last two days have been the worst of my life; it feels like he combination of a really bad hangover, the flu and a massive toothache. It all started on Wednesday afternoon; my tooth and the gum fell a little sore. Instead of going to the dentist like a normal person I decided to wait because it will go away. Thursday it fell worse and I had to ask for Motrin at work. I did not sleep at all Thursday night, I called my dentist at 6AM but he couldn’t see me until 12:20 PM. I figured he’ll give me a shot, clean out the tooth and I’ll be back at work at 2PM.
Well it turns out a root canal I had done 10 years ago acted up and they have to do a root end resection. My dentist doesn’t do root canals; he referred me to a specialist. The specialist is fully booked and doesn’t have an opening till Tuesday morning.
My dentist prescribed Oxycodone W/APAP (also known as Oxycontin or Roxicodone) and Amoxicillin. That stuff is pretty intense, your pain goes away but you are pretty much useless. The pain is gone but now my right cheek is swollen and I have to throw up every hour or so. I just hope all this ends by Tuesday, the fix the root canal and I can be at my desk by 12PM.
The reason I wrote this is that next time I say “I have no time to floss for five5 minutes I’ll do one minute instead” I can look back at this post and hopefully change my mind

Thursday, January 10, 2008

SQL Server 2008 Date Teaser

It has been a while since my last teaser but here we go

What do you think the following returns?


SELECT CONVERT(datetime,'1/1/1') -CONVERT(datetime,1) + CONVERT(datetime,0)


How about this on SQL Server 2008


SELECT CONVERT(datetime2,'1/1/1'),CONVERT(datetime2,'01/01/01'),CONVERT(datetime2,'0001/01/01')


Now run this on SQL Server 2008

SELECT
ISDATE('1/1/1'),
ISDATE('01/01/01'),
ISDATE('001/01/01'),
ISDATE('0001/01/01')


Now just for fun run these 4 on SQL Server 2008, one of them will fail so run them one by one

SELECT CONVERT(datetime2,'1/1/1')
SELECT CONVERT(datetime2,'01/01/01')
SELECT CONVERT(datetime2,'001/01/01')
SELECT CONVERT(datetime2,'0001/01/01')

Compare the isdate output to the select statement, see the inconsistency?

Monday, January 7, 2008

Has Anyone Succeeded In Creating A Collision Between NEWID and NEWSEQUENTIALID

SQL Server 2005 introduced a new type of function to create a uniqueidentifier; the NEWSEQUENTIALID(). This new function has been created for performance reasons, each new value is greater than the previous value. In theory this means that the value will be inserted at the end of a page and not in the middle which can cause splits.

Let's run this code to see the difference

CREATE TABLE #TableSeqID (ColumnA uniqueidentifier DEFAULT NEWSEQUENTIALID(),
ColumnB uniqueidentifier DEFAULT NEWID())

INSERT #TableSeqID DEFAULT VALUES
INSERT #TableSeqID DEFAULT VALUES
INSERT #TableSeqID DEFAULT VALUES
INSERT #TableSeqID DEFAULT VALUES
INSERT #TableSeqID DEFAULT VALUES
GO


SELECT * FROM #TableSeqID

Output
-----------
BBF765FE-57BD-DC11-875F-000D5684F8D8 CE51B9E4-1640-47E2-87C6-6ADD46C63A87
BCF765FE-57BD-DC11-875F-000D5684F8D8 CA220BAB-462E-440E-829A-E0037CAF0D1F
BDF765FE-57BD-DC11-875F-000D5684F8D8 01748772-8155-4F83-A58F-CC3253DDD3F3
BEF765FE-57BD-DC11-875F-000D5684F8D8 9C4B2C87-AE33-4432-8310-3BE731179382
BFF765FE-57BD-DC11-875F-000D5684F8D8 1F84B827-F42A-4C47-8A1B-4B672B4402F1


As you can see ColumnB is random (Or at least pseudo-random) while ColumnA is not
Let's say you have a table with a billion rows, this table used NEWID() up till now. What will happen when you change the table to use NEWSEQUENTIALID(), could you get a duplicate?
I tried my best and filled up my 400GB External Seagate drive without success

Have you run into a collision, is it even possible?

Sunday, January 6, 2008

I won't be flying on the 787 anytime soon

FAA: Boeing's New 787 May Be Vulnerable to Hacker Attack

Boeing's new 787 Dreamliner passenger jet may have a serious security vulnerability in its onboard computer networks that could allow passengers to access the plane's control systems, according to the U.S. Federal Aviation Administration.

The computer network in the Dreamliner's passenger compartment, designed to give passengers in-flight internet access, is connected to the plane's control, navigation and communication systems, an FAA report reveals.


http://www.wired.com/politics/security/news/2008/01/dreamliner_security

Friday, January 4, 2008

Necessary updates for Windows Vista

Are you running Windows Vista? Then you're going to want these two updates,which are not Windows Update at the moment:

An update that improves the performance, responsiveness, and reliability of Windows Vista is available
This update improves performance, responsiveness, and reliability of Windows Vista in various scenarios. This update resolves the following issues on a Windows Vista-based computer:

You receive a "Stop 0x000000A0" error when you try to switch the computer to the hibernate state.

You receive a "Stop 0x0000009f" error when you switch the computer to the hibernate state or to the standby state. Or, you receive this Stop error when you resume the computer from the hibernate state or from the standby state. This problem occurs on a computer that has a wireless network connection.

The disk does not spin down after a specified time of inactivity.Additionally, this update can help improve performance when you perform operations that are related to large disk I/O. After you apply this update, you may notice up to a 15 percent performance improvement in some copying operations and when moving some large files.



December 2007 Windows Vista Application Compatibility Update
The December 2007 Windows Vista Application Compatibility Update is a package of software updates that address common application compatibility issues in Windows Vista. When you try to install and run certain legacy games or applications in Windows Vista, you may experience one or more of the following symptoms:

The game, the application, or the firmware may not be installed correctly.

The game, the application, or the firmware may cause system instability.

The primary functions of the game, the application, or the firmware may not work correctly. This update is cumulative, and it supersedes update 935280. In addition to the fixes that are contained in update 935280, this update improves support in Windows Vista for the following games, applications, and firmware:

Adobe Acrobat Reader 7.0 - 7.07

WinAntivirus Pro 2007 v5.0.356

Webroot Software Spy Sweeper 5.0

Omniquad Total Security 2.0.3.0

Windows Internet Explorer 7 This update also includes fixes that are contained in update 932246. These fixes improve support in Windows Vista for the following applications:

Absolute Poker Version 5.7

ACDSee 8

Adobe Creative Suite CS2

Adobe Photoshop 7.0.1

Adobe Photoshop CS 8.0

Adobe Photoshop Elements Version 4.0

Adobe Premiere Elements 3

AOL 9.0 - x64

AOL Safety and Security Center 2.5.4.1

ArcSoft PhotoImpression 5

Auslogics Disk Defrag 1.0.3

AVG Anti-Spyware 7.5.0.47

Azureus 1.0

Battlefield 2 Deluxe

BeatJam 2006 SE

BitLord 1.1.5.6

Bitvise Tunnelier 4.20

Calyx Point 5.3

Crystal Player Professional 1.97

CyberLink PowerCinema 4.0

Delphi 7 Professional

Deterministic Network Extender (DNE) Driver - 3.12.2

Digital Zenkoku Map Townpage Database 7

Doranet Kids Nyugaku Jyunbi Taikenban

Doranet Shogaku Ichinensei Taikenban

EasyRecovery Professional Version 6.04

Family Feud Online Party

Google Desktop 4.2006.1008

HD Tach 3

HD Tune 2.5.1

IBM Rescue and Recovery with Rapid Restore 3.00

IBM SmartSuite Millennium Edition - Freelance Graphics 9.8

Justsystems Ichitaro 2006

Jv16 Power Tools

Label Mighty 6

LEGO Star Wars

Lenovo Presentation Director 1.0.0.1

LimeWire 4.12

Macromedia ColdFusion MX 7 Enterprise Edition

Macromedia Fireworks MX2004 7.0.2.295

Microsoft Age of Empires III : The Asian Dynasties Expansion Pack

Microsoft Age of Empires III : The WarChiefs Expansion Pack

Microsoft Age of Empires III

Microsoft DevStudio 9.0

Microsoft Digital Image Suite 2006

Microsoft Dungeon Siege II

Microsoft Dungeon Siege: Legends of Aranna

Microsoft Encarta Standard 2007

Microsoft Fable: The Lost Chapters

Microsoft Flight Simulator X

Microsoft Money 2005

Microsoft Money 2006

Microsoft Office 2003 Web Folders

Microsoft Office Outlook 2003

Microsoft Rise of Nations: Rise of Legends

Windows Small Business Server 2003 R2

Windows Small Business Server 2003 Service Pack 1 (SP1)

Windows Server 2003 Service Pack 1 (SP1) Administration Tools Pack

Microsoft Zoo Tycoon 2: African Adventure Expansion Pack

Microsoft Zoo Tycoon 2: Endangered Species Expansion Pack

Microsoft Zoo Tycoon 2: Marine Mania Expansion Pack

Microsoft Zoo Tycoon 2: Zookeeper Collection Expansion Pack

Microsoft Zoo Tycoon 2

Minna de TV Denwa Starter

Minna de TV Phone Starter 2.1.0.1

MotionDV STUDIO 5.8J for FUJITSU

Opera 9.02

Palm Desktop 6.0

Power Utility - Remote administration 3.1.0.0

RealNetworks RealPlayer 6.0.12

Rosetta Stone 2.1.3

Roxio Easy Media Creator 7.5

SG TCP Optimizer 2.0.3

SmartInstall 2.16

Softex OmniPass 1.0.0.1

Sony FeliCa Port (PaSoRi) 3.0.0.0

Speedbit Download Accelerator Plus (DAP) 8.1.5.6

SpeedFan 4.31

Sun Microsystems J2SE Runtime Environment 5.0 Update 9

Sun Microsystems Java Control Panel

The Weather Channel Desktop 5.0.1

Toshiba Tecra M7 1.70

Total Commander 6.55

Trend Micro Internet Security 2006 (PC-cillin) 14.0 – 14.59

Trend Micro Internet Security 2007 (PC-cillin) 15.0 – 15.19

TweakNow PowerPack 2006

Ulead DVD MovieFactory 5 Plus

Virtual CD 8

WinRaR 3.5-3.7

Yahoo AutoUpdater 8.1.0.249

Wednesday, January 2, 2008

Use the *1 trick to do math with two varchars, this prevents the Invalid operator for data type. Operator equals subtract,type equals varchar message

Someone had code like this on the tek-tips forum

DECLARE @v varchar(24)
SELECT @v ='06029202400250029'

SELECT RIGHT(@v,4) -SUBSTRING(@v,10,4)

If you run this code, you will get the following message
Server: Msg 403, Level 16, State 1, Line 4
Invalid operator for data type. Operator equals subtract, type equals varchar.

Instead of casting to integers you can also use this little trick. You basically multiply one of the values by 1

DECLARE @v varchar(24)
SELECT @v ='06029202400250029'

SELECT RIGHT(@v,4) *1 -SUBSTRING(@v,10,4)



Another example. This doesn't work
SELECT '2' - '1'

This does work
SELECT '2' * 1 - '1'

Use ProcessStartInfo.WindowStyle Property To Hide The Window Of A Process

ProcessStartInfo.WindowStyle Property
Gets or sets the window state to use when the process is started.

Property Value
A ProcessWindowStyle that indicates whether the process is started in a window that is maximized, minimized, normal (neither maximized nor minimized), or not visible. The default is normal.


Example


[Visual Basic]
Imports System
Imports System.Diagnostics
Imports System.ComponentModel


Namespace MyProcessSample
_
'/
'/ Shell for the sample.
'/

Public Class MyProcess


'/
'/ Opens the Internet Explorer application.
'/

Public Sub OpenApplication(myFavoritesPath As String)
' Start Internet Explorer. Defaults to the home page.
Process.Start("IExplore.exe")

' Display the contents of the favorites folder in the browser.
Process.Start(myFavoritesPath)
End Sub 'OpenApplication


'/
'/ Opens urls and .html documents using Internet Explorer.
'/

Public Sub OpenWithArguments()
' url's are not considered documents. They can only be opened
' by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com")

' Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
End Sub 'OpenWithArguments


'/
'/ Uses the ProcessStartInfo class to start new processes, both in a minimized
'/ mode.
'/

Public Sub OpenWithStartInfo()

Dim startInfo As New ProcessStartInfo("IExplore.exe")
startInfo.WindowStyle = ProcessWindowStyle.Minimized

Process.Start(startInfo)

startInfo.Arguments = "www.northwindtraders.com"

Process.Start(startInfo)
End Sub 'OpenWithStartInfo


Public Shared Sub Main()
' Get the path that stores favorite links.
Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

Dim myProcess As New MyProcess()

myProcess.OpenApplication(myFavoritesPath)
myProcess.OpenWithArguments()
myProcess.OpenWithStartInfo()
End Sub 'Main
End Class 'MyProcess
End Namespace 'MyProcessSample



[C#]
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
///
/// Shell for the sample.
///

public class MyProcess
{

///
/// Opens the Internet Explorer application.
///

public void OpenApplication(string myFavoritesPath)
{
// Start Internet Explorer. Defaults to the home page.
Process.Start("IExplore.exe");

// Display the contents of the favorites folder in the browser.
Process.Start(myFavoritesPath);

}

///
/// Opens urls and .html documents using Internet Explorer.
///

public void OpenWithArguments()
{
// url's are not considered documents. They can only be opened
// by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com");

// Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}

///
/// Uses the ProcessStartInfo class to start new processes, both in a minimized
/// mode.
///

public void OpenWithStartInfo()
{

ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
startInfo.WindowStyle = ProcessWindowStyle.Minimized;

Process.Start(startInfo);

startInfo.Arguments = "www.northwindtraders.com";

Process.Start(startInfo);

}

public static void Main()
{
// Get the path that stores favorite links.
string myFavoritesPath =
Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

MyProcess myProcess = new MyProcess();

myProcess.OpenApplication(myFavoritesPath);
myProcess.OpenWithArguments();
myProcess.OpenWithStartInfo();

}
}
}



[C++]
#using
#using

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;


///
/// Opens the Internet Explorer application.
///

void OpenApplication(String* myFavoritesPath) {
// Start Internet Explorer. Defaults to the home page.
Process::Start(S"IExplore.exe");

// Display the contents of the favorites folder in the browser.
Process::Start(myFavoritesPath);
}

///
/// Opens urls and .html documents using Internet Explorer.
///

void OpenWithArguments() {
// url's are not considered documents. They can only be opened
// by passing them as arguments.
Process::Start(S"IExplore.exe", S"www.northwindtraders.com");

// Start a Web page using a browser associated with .html and .asp files.
Process::Start(S"IExplore.exe", S"C:\\myPath\\myFile.htm");
Process::Start(S"IExplore.exe", S"C:\\myPath\\myFile.asp");
}

///
/// Uses the ProcessStartInfo class to start new processes, both in a minimized
/// mode.
///

void OpenWithStartInfo() {

ProcessStartInfo* startInfo = new ProcessStartInfo(S"IExplore.exe");
startInfo->WindowStyle = ProcessWindowStyle::Minimized;

Process::Start(startInfo);

startInfo->Arguments = S"www.northwindtraders.com";

Process::Start(startInfo);
}

int main() {
// Get the path that stores favorite links.
String* myFavoritesPath =
Environment::GetFolderPath(Environment::SpecialFolder::Favorites);

OpenApplication(myFavoritesPath);
OpenWithArguments();
OpenWithStartInfo();
}

Tuesday, January 1, 2008

Wow, talking about a rant against Ruby On Rails

Take a look at this post: Rails Is A Ghetto
This is probably one of the longest rants I have ever seen, interesting but be warned NSFW