Inside Colin's Head

Home to the wise, unwise, flippant and thoughtful musings that pass through my head. 
Filed under

software

 

Visual Studio 2010 .NET 4 Build Bug

I just encountered a crazy bug in Visual Studio 2010 that I need to document. I hope this helps someone as I was banging my head against the wall!

Scenario
I had a .NET 4 class library project that I was referencing from a WinForm project (the project type probably doesn't matter). Everything was building fine for days, maybe weeks. A few completely innocuous changes later and the build broke in a mysterious way. It told me that a namespace I was using (defined in the referenced project) did not exist:

"MyApplication.Biz.Core does not exist"

Intellisense also failed to show that this namespace existed, even though it does. I removed the project reference and added it back. Before I built the project again, I checked Intellisense and it showed the namespace properly. After a build, the above error came back. After triple checking my code, I can assure you that nothing was wrong. 

The Fix
Changing the target framework on both my class library and WinForm project from ".NET Framework 4 Client Profile" to ".NET Framework 4" fixed everything magically. I never choose "Client Profile," it must have picked that automatically when I created a new project.

That's some crazy shit.

Filed under  //   software  

Comments [0]

Everyone should have a basic understanding of these topics

Media_httpwww20things_ijanf

Awesome read for anyone wanting a basic knowledge of how the Internet works. There are a few topics for novice programmers, but most of this content is stuff that everyone should make an effort to learn. Learning this stuff will help you stay safe on the net and take advantage of all of the cool tricks that only tech-heads know about.

http://20thingsilearned.com

Filed under  //   software  

Comments [0]

Holy shit. Now you really can't trust what you see.

Filed under  //   software   video  

Comments [0]

My vision of the future of computing

One day in the not-too-distant future, the Internet will be much faster than it is today and resilient connections will become so ubiquitous that Internet outages will be treated like electricity outages.

In today's world of always designing for transition in technology, developers are forced to deal with old browsers, slow connections, offline access, cross-device incompatibilities, installation complexities, search engine optimizations, accessibility guidelines for users with disabilities, decisions on requiring cookies/JavaScript/etc., and dealing with the archaic world of email (design, delivery, etc.). Hell, file uploads over the web are still ridiculously clunky in most browsers.

Developer paradise is a world where the only hard stuff is *gasp* actually building the product. Browsers should understand websites and provide tools for disabled users. Native applications should be run and delivered via web technologies and have access to device APIs. Installations should be a thing of the past, at least in the eyes of customers and product developers. All software should be able to be built once and easily ported to different form factors.

Internet access is almost exactly analogous to road access. It should be free to everyone because it is a foundation on which we build commerce, social interactions, etc. No one should be able to censor or throttle Internet traffic. That'll surely be an adjustment for some companies and governments, but a free Internet is the strongest path towards global peace.

When the big Internet pipe arrives, everything we know about computing will be drastically improved. We'll finally be able to reach a world where software really does "just work." Install CDs will be a thing of the past -- everything, including big bundles like Starcraft II will run directly from the Internet. Piracy will be much easier to fight while at the same time providing consumers with more options and fairer policies. Computers and devices will be able to be much simpler and dedicate more resources to managing the user experience instead of exhaustively trying to support every ancient API and peripheral.

Of course this comes with new issues (security topping that list), but I don't see a truly sustainable computing world happening any other way.

Google Chrome OS, Android, and iOS are all steps in this direction, but we have a long way to go.

The App Store, opponents of net neutrality, and governments requiring encryption keys for private, electronic communications are really hurting this potential.

Filed under  //   software  

Comments [1]

It's been a while since we've seen something awesome come from Microsoft

Filed under  //   software  

Comments [0]

How To Install PHP on Windows (IIS)

I needed to install YUI's PHP loader on my server recently so that I could deliver combo'd CSS/JS files over SSL. Somehow the Google and YAHOO CDNs don't support all the features I needed (SSL, YUI 3 / YUI 2 support, combo'd delivery). This process was a pain in my ass, so I hope I can make it easier for the next person!

There are lots of tutorials on how to do this, but for some reason I had a problem with just about every one of them. Please don't take my word as gospel, but maybe this info will help you:

PHP Install Steps

  1. Download PHP 5.
    Even this part was confusing. I've packaged up my PHP installation (download) including my adjustments to get everything working.
  2. Extract the contents of the PHP zip file to C:\PHP
  3. Add C:\PHP to your system PATH.
    Open the System dialog (from Control Panel), click the "Advanced" tab and click "Environment Variables." Edit your PATH variable to include C:\PHP (you will probably need to append ";" to the end of the existing path before adding C:\PHP).
  4. In the C:\PHP folder, rename php.ini-recommended to php.ini (not needed if you downloaded my installation from step 1)
  5. For Windows 64-bit only:
    You must run IIS in 32-bit mode for PHP to work. Open a command prompt and run this command to enable IIS in 32-bit mode:
    cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

    Now navigate to C:\WINDOWS\Microsoft.NET\Framework\v2.xxx. Run "aspnet_regiis.exe -i" (it's imperative that you are in the "Framework" folder and not the "Framework64" folder).

    Open IIS, expand Web Service Extensions, and make sure that ASP.NET 32-bit is set to "Allowed."

  6. Open IIS, expand Web Service Extensions, and click the link to add a new extension. Name it something like "PHP ISAPI Extension" and select the C:\PHP\php5isapi.dll file. Make sure the extension is set to "Allowed."

  7. Open IIS, right-click "Web Sites", and then "Properties." Under the "Home Directory" tab click "Configuration." Add a new extension mapping, setting ".php" as the extension and C:\PHP\php5isapi.dll as the executable path. You can limit verbs to "GET,POST,HEAD" if you like.

  8. Install the PHP registry settings. I've packaged them up for conveinence (just extract and then double-click the .reg file).
  9. I had to copy my php.ini file to the C:\WINDOWS directory and run "iisreset" to get everything working.

  10. Create a file in one your sites named "phpinfo.php" and include the text below. After doing so, navigate to that page in a browser and you should be able to see a dumping of PHP information.
    <?phpphpinfo();?>


YUI PHP Loader Install Steps

I also had a few problems with the out-of-the-box PHP Loader for YUI (download my finished YUI folder):

  1. In combo.php, I had to change getenv("QUERY_STRING") to $_SERVER("QUERY_STRING").
  2. In combo.php you'll need to change PATH_TO_LIB to your server's web url.
  3. In all of the files in /lib/meta, you'll need to change the urls to match your server.

  4. I had to adjust my PHP install to ensure that the cURL was working. If you didn't download my PHP installation above, you need to ensure that php_curl.dll is in your C:\PHP\ext folder. Then edit your php.ini file: set the extension_dir value to C:\PHP\ext\ and uncomment the line extension=php_curl.dll

After all of that mess, the combo loader worked perfectly for me!

You can test your installation by visting your server's url at /phploader/test/test-loader.php. Use the checkboxes to select a few items and then visit the CSS/JS urls that it creates to see if the YUI loader works for you.

UPDATE: Looks like the PHP Loader isn't quite working correctly for me. Lots of extra data is being pulled; when I compare a sample request on YAHOO!'s loader to mine, there is a huge discrepency in the number of KBs written. After spending over a day on this I had to move on to a different solution.

Filed under  //   howto   software  

Comments [0]

Why You Can’t Work at Work

Amen!

Filed under  //   software  

Comments [0]

Microsoft: 'Humbling' that IE 8 top browser

We launched just less than a year ago, so it's both humbling and thrilling to see so many people choose our product so quickly--making it the most popular browser of choice worldwide," Microsoft communications manager Brandon LeBlanc wrote.

Here's some more corporate bullshit coming from Microsoft. Using words like "choose" as a description of IE 8 installations is a big stretch seeing as how their browser is bundled in OS updates. And what does it mean for them to be so "thrilled" to be the number one browser? Everyone is quite aware that their position is not due to having a quality product, but rather momentum from their more monopolistic days. Not to mention that IE's overall use is steadily declining each month.

Filed under  //   software  

Comments [0]

I can't wait for multi-touch technology...

...to become mainstream. Truth is, we currently only use a small percentage of our body to interact with computers. Think of how much more intricate an interaction climbing a tree is compared with driving a car—there are so many more dimensions to your activity. When computers get this (and actually do it well), I for one will be so much more productive.

Filed under  //   software  

Comments [0]

It's all about the product

It remains, and will always be about the product. And we’re always out there hunting for the next great one. If you’re not getting the coverage you feel your product deserves, remain focused on improving it. Focus on making it better than the ones getting all the coverage. Don’t be bitter, be better. If you stick to that, eventually someone will find it. And then the complaints will start rolling in that your product is getting too much coverage. And that we’re kingmakers.

I believe in this wholeheartedly. Although I'm working hard at garnering attention for our website (https://www.dialawg.com), I know that my role is best played in continuing to make the product better. Continual improvements and refinements are what make products truly great in my opinion—connecting dots that you can't necessarily see right away.

Filed under  //   marketing   software   start-up journey  

Comments [0]