Categories
Uncategorized

Microsoft’s Open Source Party in Montreal

Here’s a little hint: if you ever get an invitation to a Microsoft party from High Road Communications – they’re Microsoft Canada’s PR firm – accept it. They’re always in great places, have great tapas and drinks and they always invite interesting people. You’re guaranteed to have fun, and that guarantee is doubled if I’m there.

The W’s “Extreme Wow” Suite

On Thursday, right after the end of Day 2 of TechDays Montreal, my fellow developer evangelist Christian Beauclair and I made our way from Centre Mont-Royal (the TechDays Montreal venue) to the W Hotel. That’s where we were holding a little party to which we invited a number of local open source developers, some of who were at the previous night’s Career Demo Camp Montreal.

w hotel montreal

Montreal’s W hotel is a building that has undergone a radical personality change. It used to be the Banque du Canada building, the home of one of our federal government’s most stuffy, buttoned-down organizations. W hotels tend to be the exact opposite: everything about them suggests that they were designed by people who usually design nightclubs, what with DJ booths in their lobbies, electronica and funk music piped into every nook and cranny, dimly-lit hallways with lighting straight out of Blade Runner and other little touches that make it seem as if you’ve somehow managed to get into one of those secret clubs in New York City’s Meat Packing District. Simply put, it’s a pretty good place to hold a swanky cocktail party,

Christian and I followed the directions to the “Extreme Wow” suite that High Road had booked for the party. Here’s what we saw when we entered the room:

01 empty suite 1

The suite was located on the top floor of the W. It was one large room with a 20 foot-high ceiling and an equally high set of windows revealing a balcony looking out onto Square Victoria and a good chunk of Montreal’s skyline. I had a sense of deja vu and soon realized that the place reminded me a little bit of Tony Prince’s swanky condo in the videogame The Ballad of Gay Tony, minus the mobsters to whom Tony owed money and wanted him dead.

02 empty suite 2

Near the back of the suite was the bathroom, which in the spirit of open source, was itself open concept and had nothing to hide. Rather than being tucked into a separate room, the shower, tub and sinks were poised on a split level four or five steps above the rest of the room, with the shower stall being a glass-and-brick enclosure in the middle of it all, looking like the monolith from 2001. The tub was recessed into the floor beside it and covered with a sheet of plywood for the party, either in order to prevent people from falling into it or to prevent me from attempting to start a party hot tub:

03 shower

(Thankfully, the toilet had its own separate “water closet” room, just off to the side.)

The room had been rearranged to better suite a party than overnight guests. The bed had been removed and replaced with a hybrid couch/chaise lounge:

04 shower and chaise

Just about everything in the room could be commanded via the master remote control, which Christian found. It controlled lights, the TV, sound system and even the curtains and skylight blinds (which could be opened and closed via remote-controlled servos):

05 christian and remote

Here’s a view of Square Victoria from the balcony:

06 view from balcony

Christian also found a table centrepiece that reminded him of an M.C. Escher image that I had used in my slide presentation at Career Demo Camp Montreal:

07a christian

For reference, here’s that M.C. Escher piece:

07b escher

Having checked out the place and taken my first set of photos, I did what I always do in such a setting: I got got a drink from the bar and made myself comfortable.

The Presentations

It wasn’t just cocktails and conversations at the party. We had some presentations as well, starting with Nik Garkusha, part of Microsoft Canada’s Open Source Strategy team. He talked about how Microsoft views open source, as well as the work we’re doing in order to make Microsoft and open source work better together.

I split his presentation into two videos. Here’s the first…

…and here’s the second:

Brendan “Digibomb” Sera-Shriar, developer with Optimal Payments, WordPress evangelist, founder of PHP Toronto and WordCamp Toronto and organizer of WordCamp Montreal, talked about his experience working with The Empire: “They’re actually doing open source!”, his use of Windows and the Windows Platform Installer and how open source and Windows can work together:

Yann Larrivee, developer, founder of PHP Quebec, FooLab and the upcoming ConFoo conference, spoke next. He talked about how he enjoyed Make Web Not War 2009, the importance of “playing well with others” both inside and outside the world of open source and how Microsoft is participating in ConFoo:

Marc Laporte, developer of TikiWiki, and among other things, talked about PHP running under IIS. It’s in French, and if anyone would like to give me a hand translating, I would appreciate it greatly!

The Party

As nice as the photos of the suite above are, the place looks far better when it’s filled with guests:

08 full suite 1

09 full suite 2

10 full suite 3

11 full suite 4

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

There’s Still Time to Register for “Make Web Not War”

Make Web Not War

If you’d like to know more, see yesterday’s article about Make Web Not War. If you’d like to register, visit the registration page.

Categories
Uncategorized

“Make Web Not War” in Toronto This Wednesday!

Make Web Not War: Toronto - Wednesday, June 10th

About Make Web Not War

If you’re interested in web design and development, you should attend Wednesday’s Make Web Not War conference. It’s being presented by Microsoft Canada and is about the how open source tools like PHP and Microsoft technologies like IIS and SQL Server 2008 can be used together to make great web sites and applications. No matter how much (or how little) Microsoft technology you use in your web development, there’s a lot to see at Make Web Not War!

Who’s Speaking?

We’ve got a number of speakers, each talking about some different aspect of the interoperability between Microsoft and open source technologies, as well as their experiences and lessons learned working in the web industry:

David Crow

David Crow, Microsoft

David Crow is an emerging technology and start-up advocate. At Microsoft Canada, he is responsible for helping Canadian start-ups through programs like BizSpark (details at microsoft.com/bizspark). David helps companies understand emerging technology and design practices for creating compelling digital experiences. David focuses on helping companies to extend their customers’ reach with next generation technology for the desktop, digital devices, standards based applications for the Web, and rich media applications. He has been named Toronto’s Best Web and Tech Evangelist for his efforts in DemoCamp, BarCampToronto, Founders & Funders and StartupEmpire.

Mano Kulasingam

Mano Kulasingam, Digiflare

Mano Kulasingam is a founding partner and principal interactive designer /developer with Digiflare, focusing on presentation layer technologies like Microsoft Silverlight, Windows Presentation Foundation and SharePoint 2007. He also has several years of experience developing B2B and B2C eCommerce and Content Management Web applications using ASP.NET (2.0 and 3.5) and Visual C#. His design skills include working with the latest professional design tools including Microsoft Expression Studio 2, which has earned him a Microsoft Expression MVP nod. He is a co-founder and host of the Toronto Silverlight User Group.

Brendan Sera-Shriar

Brendan Sera-Shriar, PHUG.ca

Brendan is a prominent member of FlashinTO, PHUG – Open Source Culture, has taught web design at Long Island University Brooklyn campus, and has been a professor at Seneca College in the School of Communication Arts for over 7 years. Brendan currently owns and operates BackSpaceStudios, a web company specializing in WordPress development, social media applications. He is also the founder of PHUG, an open source community for designers and developers with currently over 4000 members, faculty at Seneca College, and organizer for WordCamp Toronto 2009. Brendan has contributed to many open source projects including papervision3D, red5, Firefox, WordPress, and Drupal, just to name a few.

Stephen Nichols

Stephen Nichols, Softcom

Under the brand myhosting.com we offer Shared and Virtual Web Hosting as well as Exchange 2007 and WSS hosting to customers around the world.

Stephen is Vice President of Sales at Softcom, a Gold certified Microsoft Partner based in Toronto and specializing in transactional hosting with a focus on the SMB market. His key role is to oversee the customer life cycle experience and drive new sales opportunities through the direct, affiliate and partner channels.

Yann Larivee

Yann Larivee, PHP Quebec

Yann Larrivée has been developing web applications for over 7 years and is currently offering PHP consulting services. In the past he has worked in many position from, project manager for a Linux consulting company to web architect for a well know company in the gaming industry. He also founded the PHP Quebec community in 2003 and organizes an international PHP conferences and an IT JobFair.

Get Windows Server 2008 R2 for Free!

Windows Server 2008 R2 logo

Windows Server 2008 R2 is a great server operating system, and this is your chance to take it out for a spin! Bring a machine to the Make Web Not War Installfest – it could be a server, desktop or even a laptop – and we’ll walk you through the process of installing your own free copy (which is good for a year). Space is limited – we’ve only got room for 100 people, so sign up soon!

See the Utltimate FTW! Throwdown

The Ultimate FTW! Throwdown was a challenge pitting student developers against professionals to develop a new PHP-on-Windows app or port an existing PHP-on-LAMP app to run on Windows Server with IIS. There were even bonus points for apps that made use of SQL Server as their database!

We took in a bunch of submissions, and the judges have narrowed it down to two finalists, one student, one professional:

Dac Chartrand In the professional corner is Dac Chartrand, whose submission is Sux0r, a content-management system incorporating blogging, RSS aggregation, bookmark repository and photo publishing, all with a focus on naive Bayesian categorization and probabilistic content. The extra Bayesian/probabilistic goodies allow Sux0r to auto-categorize its content and users to train it to categorize better.

Casron Lam His student opponent, Carson Lam, submitted Transit DB, which aims to transform the way commuters interact with public transit information system. The application is Carson’s answer to the question “How can we provide a modern, clean and user-friendly interface for transit data in cities?” The current version covers public transit for the Metro Vancouver region.

Dac and Carson will be competing for bragging rights and cold hard cash – may the best project win!

(For more details about the Ultimate FTW! Throwdown, see its page on PHPonWindows.ca.)

Interact

Telav audience device

We don’t want to do all the talking at Make Web Not War, we also want to hear from you!

That’s why, when you arrive at the event, one of the first things we’ll do is hand you an AVW-TELAV audience response doohickey. It’s a microphone for the Q&A sessions at the end of each presentation, but it’s also an instant audience polling device for quick surveys that we’ll have throughout the day.

Chill Out

All work and no play makes you a dull and burned-out web designer or developer, which is why we’ve also got a lounge where you can just hang out, meet the speakers, ask me questions about Microsoft’s web tools and tech and play XBox games.

Win prizes

We’ve got all sorts of prizes that you can win throughout the day, from software to books to trainign courses to Zune media players to XBox games to a brand new laptop.

Get Fed

Yup, we’re providing breakfast and lunch. You can’t conference on an empty stomach!

Okay, How Much to Attend?

Around this much:

Canadian $10 bill

Instead of charging a standard admission, we’re charging a “Donate what you can” rate, with all proceeds going to PREVNet.ca, an anti-bullying group. The suggested donation is a mere $10.

When and Where?

Once again, Make Web Not War takes place this Wednesday, June 10th and runs from 8:30 a.m. to 5:00 p.m..  It’s happening in Toronto at Ryerson University’s Ted Rogers School of Management (55 Dundas Street West – that’s Dundas between Bay and Yonge, right by the Best Buy and Canadian Tire). There’s parking aplenty in the area, and it’s right by Dundas Station on the Yonge/University/Spadina subway line.

Map picture

 

How Do I Register?

Visit the Make Web Not War registration page and fill out your details, and we’ll see you there on Wednesday!

Categories
Uncategorized

The “Make Web Not War” Accordion Video

This article also appears in Canadian Developer Connection.

The Make Web Not War event in Toronto takes place in exactly one week! We’ve been spreading the word about the event and I thought I’d do my part by helping out with a video, accordion-style:


MAKE WEB NOT WAR – VIDEO FOUR – TORONTO from The Biz Media on Vimeo.

There’s only one mistake in the video – “accordion” is misspelled. If you’d like the follow me on Twitter, the correct ID is AccordionGuy, not AccordianGuy.

For more details about Make Web Not War, see:

Categories
Uncategorized

“Make Web Not War” in Vancouver and Toronto

"Make Web Not War" - Vancouver, June 2nd / Toronto, June 10th - Microsoft and open source technology, together on the web

The “sea change” that’s been going on at Microsoft for the past little while is one of the things that convinced me to join the company and one of the factors in their even asking me to come in for a job interview. One of the most telling signs of this sea change is in Microsoft’s new approach to open source and web, with initiatives like the Open Source Lab, improved standards support in IE8, PHP on Windows, the Web Platform Installer and Open Source Initiative-approved MS-PL license, to name a few.

We know that the web is a big salad bar of various technologies put together by different vendors and organizations, and at long last, it seems that we’re cool with that. We’ve been reaching out to web developers of all stripes, from Microsoft “true believers” to people who don’t typically build their stuff with or on our stuff.

Make Web Not War is an event being held in Vancouver on June 2nd and Toronto on June 10th where we invite people building solutions on the web – whether you build on Microsoft tech or not – to get together and:

  • Hear from people who build on open source and Microsoft technologies
  • Network with other web developers living and working in your area
  • Learn about the latest Microsoft technologies and how they work with open source
  • Get technical training to build your web development portfolio
  • Win prizes and get your Web Warrior DVD featuring all the latest Microsoft Web Resources

The Vancouver event takes place today, June 2nd at Microsoft’s Vancouver office (1111 W. Georgia, 11th floor). It’s a half-day event featuring a presentation by Morten Rand-Hendriksen from Pink and Yellow Media as well as breakfast, a web partner community showcase and a lunch social.

The Toronto event takes place on Wednesday, June 10th at the Ted Rogers School of Management (use the entrance at 55 Dundas Street W.) and runs from 8:30 a.m. to 5:00 p.m.. It’s a full-day event with presentations by:

The Toronto event will feature breakfast, keynote, web partner community showcase, another keynote, lunch, breakout sessions, a Windows Server 2008 InstallFest, a web developer technical session and the FTW! competition final showdown. It’s be a very full day.

The registration fee for both the Vancouver and Toronto events is “donate what you want”, with a suggested donation of CAD$10. The money will go to a good cause: PREVnet.ca, the anti-bullying network.

Whether you’re a died-in-the-wool ASP.NET type, think in PHP or create new web applications by typing in rails mynewapp at the command prompt, Make Web Not War has something for you. For more details about Make Web Not War, check out the official site.

Categories
Uncategorized

Installing MySQL Server 5.1 on Windows

MySQL dolphin balancing Windows "ball" logo on its snout

You’ve probably heard of Microsoft’s Web Platform Installer, a free-as-in-beer tool that makes it a snap to install a variety of Microsoft and Open Source web applications and development tools, ranging from “The Usual Suspects”, such as Visual Web Developer, IIS and SQL Server 2008 Express to stuff you might not expect, such as PHP and WordPress. It makes installing these goodies a simple of matter of checking the items you want and clicking the Install button. (While the old way of installing PHP on Windows wasn’t rocket science, it involved enough steps and configuration changes to justify my writing a whole article on the topic in an old developer blog of mine.)

One necessary thing that the Web Platform Installer doesn’t do for you – and I assume it’s because of licensing restrictions of one kind or another – is install MySQL, which many PHP apps, including a number that the Web Platform Installer installs, use. You’ll be told that you need to install MySQL, but it leaves installing it up to you.

Hence this article, where I walk through the steps of installing MySQL Server 5.1 on Windows for a developer machine. Whether you just need PHP and MySQL so that you can experiment with WordPress template designs or are the “I build on Windows, but deploy on Linux” type or are developing for a server setup where IIS is serving both ASP.NET and PHP apps (and yes, IIS does that!), you’re going to want MySQL on your dev box.

Get the Installer

The version we’re interested in is the free-as-in-both-speech-and-beer Community Edition, which is available at the MySQL site. Here are the links to the installers:

Both these options provide you with three different installers. I recommend getting the .msi (Windows Installer) as it’s the lowest-headache option. It’s also the version I use in this walkthrough.

By the way, the screenshots provided in this walkthrough are from my actual installation process on my laptop, which runs the 64-bit edition of Windows 7 Beta, Build 7000 (I’m not installing the Release Candidate until later this week). I’m installing the 64-bit version of MySQL Server 5.1 Community Edition, but whether you’re installing the 32- or 64-bit version on Windows XP, Vista or 7, your experience should be roughly the same.

Here’s what you should see when you launch the installer:

01

Which Setup Type?

The first choice you have to make is the type of setup you want:

02

The three choices offered are:

  1. Typical: Installs the basic components for MySQL to the default installation path, C:\Program Files\MySQL\MySQL Server 5.1\, including:
    • The MySQL server
    • The mysql command-line client
    • Other command-line utilities like mysqldump, myisamchk and more.
  2. Complete: Installs all the MySQL components to the default installation path, C:\Program Files\MySQL\MySQL Server 5.1\, including those listed in the Typical setup, plus:
    • Documentation
    • The embedded server library
    • The benchmark suite
    • Support scripts
  3. Custom: Gives you complete control over the components installed and the installation path.

Although the components in the Typical setup will work fine for most web development purposes, I like having the docs handy, so I went with the Complete setup.

Once you’ve selected the setup, you’ll be shown a confirmation window like the one below:

 03

Once MySQL has been installed, you’ll see the window below:

 04

You’ll be given the choice to configure MySQL server, which I recommend. You can do so by leaving the Configure the MySQL Server now checkbox checked and then clicking Finish.

The Configuration Wizard

Here’s the first window of the Configuration Wizard:

 05

Which Configuration?

You’ll be asked which configuration type to use:

 06

The two choices offered are:

  1. Detailed Configuration: Gives you fine-grained control over the configuration process. I’m familiar with the options being offered, so this is the option I chose. If you choose this option, you will have to make some additional choices in the windows that follow.
  2. Standard Configuration: If you’re new to MySQL and need a server configured as a single-user developer machine, this configuration should suit your needs. If you choose this option, you’ll skip the next few steps and go directly to the Root Password window.

Detailed Configuration Options

If you chose to use the Detailed Configuration, you will see the following windows.

Server Type

The first choice in the Detailed Configuration is Server Type:

 07

The three options are:

  1. Developer Machine: This setup assumes that MySQL will be running on a machine used to write applications, where the database will be used for basic developer proofs of concept and simple testing. MySQL will be configured to use minimal system resources. This is the option I selected.
  2. Server Machine: This setup is for server systems where MySQL will be running along with other server applications such as a web server, mail server, FTP server and so on. MySQL will be configured to use a moderate portion of the system resources.
  3. Dedicated MySQL Server Machine: This is for machines that will be running only MySQL. in this configuration, MySQL will be configured to use all available system resources.

Storage Engines

The next choice to make is selecting the storage engines to be used: MyISAM or InnoDB. If you’re not familiar with MySQL, you’re probably asking “What’s the difference between InnoDB and MyISAM?”

Of the two engines, MyISAM is the older of the two, and the default engine. The general consensus is that in most cases, it’s faster than InnoDB for typical CRUD operations. It supports up to around 4 billion rows of data and 64 indexed fields per table. MyISAM uses table-level locking, which means than when a row is being updated, the table is locked and no other operations can update any other rows until the first row is updated and the lock on the table is released.

InnoDB is the newer (and some would say sexier) engine. It’s called “the transactional one”, and it’s built with data integrity in mind. It supports foreign key constraints, meaning that changes to a table (say, “Actors”) that references another table (say, “Movies”) are allowed only if those changes leave both in a valid state. For example, you wouldn’t be able to delete a row from the “Actors” table if it referenced any rows in the “Movies” table (that is, you can’t remove an actor from the database if s/he’s listed as starring in any movies). It also supports row-level locking, which means that so that more than one row can be updated at the same time.

The general guidelines for choosing between MyISAM and InnoDB are as follows:

  • Will your use of the database be mostly reading? That is, will you be doing mostly select operations and few insert, update and delete operations? Then you want MyISAM.
  • Will your use of the database involve at least as many writes as reads, if not more? That is, will you be doing as many insert, update and delete operations as select operations? Then you want InnoDB.
  • Do you need full-text search? You want MyISAM.
  • Do you need to conserve disk space and RAM? You want MyISAM.
  • Does the idea of using a non-SQL Server database irk you? You might feel better going with InnoDB, since it has the row-level locking, transaction safety and generally more “relational” feel.

Keep in mind that when adding a table to a MySQL database, you can specify which engine it uses. Lately, I’ve been in the habit of specifying InnoDB for most tables except those on which I want to provide full-text search; for those, I’ve specified MyISAM. (For more on specifying engines when creating tables, see MySQL’s page on the create table command.)

Now that I’ve done a quick review of MyISAM and InnoDB, let’s look at the storage engine choices that the Configuration Wizard offers.

 08

The three choices are:

  1. Multifunctional Database: This enables both InnoDB and MyISAM storage engines and divides resources evenly between the two. This is the recommended option for developers who use both storage engines on a regular basis. It’s the option I chose, since it yields the most flexibility.
  2. Transactional Database Only: This enables both InnoDB and MyISAM storage engines, but dedicates more resources to the InnoDB engine.
  3. Non-Transactional Database Only: This option completely disables InnoDB; all resources are dedicated to the MyISAM storage engine.

If you chose Multifunctional Database or Transactional Database Only, you’ll be presented a windows asking you where to put the InnoDB tablespace:

 09

I went with the default, which puts the tablespace in the MySQL installation directory.

Concurrent Connection Settings

The next window is all about the number of concurrent connections supported:

 10

The three choices offered are:

  1. Decision Support (DSS)/OLAP: This assumes an average of around 20 concurrent connections, with a maximum of 100 concurrent connections supports. I chose this option, as it works for most development scenarios.
  2. Online Transaction Processing: This supports up to 500 concurrent connections and is generally for production use.
  3. Manual Setting: This lets you specify a specific number of connections. I’ve seen it used mostly for testing.

Networking Options

The next window concerns itself with networking options:

11

Port 3306 is the default MySQL port, so that’s what I went with; I also checked the Add firewall exception for this port checkbox. I also left the Enable Strict Mode checkbox checked.

Default Character Encoding

Now it’s time to select the default character encoding:

 12

You’re given a number of options, but I suggest you go with my choice. I chose UTF-8 because it’s the encoding of the Web.

Service Options

Here’s the next window:

 13

I strongly recommend:

  • Checking the Install As Windows Service checkbox. When installed as a Windows service, MySQL can be started automatically at system startup and restarted in the event of a service failure.
  • Going with the default service name of MySQL unless there’s already an instance of MySQL installed, in which case you’ll want to provide a different name. Note that service names should be 255 characters or less and can have any legal character except for the forward-slash (/) or backslash (/).
  • Checking the Launch the MySQL Server automatically checkbox.
  • Checking the Include Bin Directory in Windows PATH checkbox. You’ll save yourself a lot of typing if you do this.

Security Options

And now, the Security Options window…

 14

You’ll be asked to provide a password for the root user twice.

You can also choose to:

  • Enable root access from remote machines. I don’t really need this on my development machine, so I didn’t check this checkbox.
  • Create an anonymous account. I don’t need this either, so I didn’t check this checkbox.

Go!

That’s it for all the option setting. You’ll now be presented with this window:

 15

If you’re satisfied with your configuration choices in the previous windows, click the Execute button. You’ll be presented with this window as your reward:

 16

…and you’re done!

Taking it for a Quick Spin

Let’s take MySQL for a quick spin to confirm it’s working. We’ll do this using the mysql command-line client and logging in as root. There are a couple of ways to do this. One is by firing up the MySQL Command Line Client from your Windows menu (or Start Menu on XP):

start_menu

A command-line window will pop up, where you’ll be prompted to enter the root password. Enter it, and you’ll be in the command-line client!

prompt_01

The other way is to fire up the Command Prompt and (if you specified that you wanted MySQL’s bin directory included in Windows’ PATH, which you should have), enter mysql –u root –p. The -u switch is for specifying a username, and the -p switch is for specifying that you will be providing a password for the specified username.

You’ll be prompted to enter a password. Enter the root password and you’ll be in the command-line client:

prompt_02 

And MySQL is ready to use! You can now use the Web Platform Installer to install PHP-based apps that require MySQL.

I can’t give you a walkthrough of MySQL’s command line – that’ll have to wait for another article, or you might want to check out this article – but here’s a quick one: the show databases; command (don’t forget the semicolon at the end!) will return a list of all the databases currently in the system.

Happy MySQLing!