the hamstu » The Typography of Code

fixed_prop.png

Cool post with a lot of great history and font samples!

As a self proclaimed programmer/designer I enjoy not only the logical and practical things in life, but also the beautiful and well designed. And I find the greatest pleasure when these things converge to produce something extraordinary.One such thing is Typography. Typography is the art of language, the visualization of the spoken word. A medium by which non-verbal communication is made possible. And though I profess no expertise in this art, I have come to deeply appreciate it’s power and ability to convey the same message in so many different ways. Each with a unique feeling and style.

The Messenger

In 1956 Howard Kettler designed the typeface Courier. It was made for IBM’s new (and revolutionary) line of electric typewriters. Originally called “Messenger”, Courier is one of the earliest fixed-pitch (also known as Monospace) fonts, meaning each character takes up the same amount of space on a line; allowing for easy tabular alignment and legibility.

Courier was a hit, and as many made the transition from typewriter to computer, this classic typeface wasn’t far behind. It was included in all early Apple computers, and while creating the core fonts for Windows 3.1, Microsoft hired Monotype Typography to give Courier a makeover. And so Courier New was born, as a thinner and cleaner version of it’s former self.

via the hamstu » The Typography of Code.

Microsoft Support: Console (CMD) Fonts

Update: You can use the following registry script to automate this process – just copy/paste the code block below into a text file called “Add Consolas to CMD.reg” and run it:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont]
"0"="Lucida Console"
"00"="Consolas"
RegEdit -  Console Fonts
RegEdit - Console Fonts

If you’d like to use an alternative console font for CMD.exe in Windows, check out the scoop from Microsoft Support on how to set it up…

The fonts must meet the following criteria to be available in a command session window:

  • The font must be a fixed-pitch font.
  • The font cannot be an italic font.
  • The font cannot have a negative A or C space.
  • If it is a TrueType font, it must be FF_MODERN.
  • If it is not a TrueType font, it must be OEM_CHARSET.

Additional criteria for Asian installations:

  • If it is not a TrueType font, the face name must be “Terminal.”
  • If it is an Asian TrueType font, it must also be an Asian character set.

In Windows 2000, the installation of Console Fonts is no longer automated. This was done to give the console window greater stability in multilanguage environments. An unsupported work around is available by adding the following font specific entry:

Add a String Value
Name=00
Data= “Font Name” (without “”)

Into the following registry:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont

The name needs to be incrimented with “0” for each additional font. The Data entry needs to match the font’s entry in the following registry location:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts

via Necessary criteria for fonts to be available in a command window.

And, if you’re itching to find a nice replacement for Courier New or Lucida Console:

  • Consolas:
    If you have Windows Vista or windows 7, this is already installed, otherwise you’ll need to download the PowerPoint Viewer 2007 from Microsoft to get the font legally. (As an added bonus, the rest of the Windows Vista fonts come with it – see here for details: Download Windows Vista Fonts from Microsoft Office Website)
  • DejaVu Sans Mono:
    This font comes pre-installed with many current Linux distributions and is released under a free license, which makes this font arguably the best of the bunch. Find it here: http://dejavu-fonts.org/wiki/index.php?title=Download
  • Droid Sans Mono:
    Straight from the Android SDK comes the Droid Sans Mono font, which is quite similar to the DejaVu Sans Mono font listed above. You can grab this from the Android SDK download, or you can get it directly from the damieng blog here: Droid Sans Mono great coding font

C# Corner: How to get distinct rows from a DataSet or DataTable

Not without its typos, but quite a helpful article nonetheless… 😉

One of the common issues in data layer is avoiding duplicate rows from dataset or datatable. I saw many people are writing separate function and looping through the datatable to avoid the duplicates. There is more simple ways available in .Net but people are unaware about this. I thought of writing a blog about this because I saw many blogs which mislead the people from right path. Thers is no need of looping or no need of logic are required to avoid the duplicates.

Following single line of code will avoid the duplicate rows.

ds.Tables[“Employee”].DefaultView.ToTable(true,”employeeid”);

ds – Dataset object

dt.DefaultView.ToTable( true, “employeeid”);

dt – DataTable object

First option in ToTable is a boolean which indicates, you want distinct rows or not?

Second option in the ToTable is the column name based on which we have to select distinct rows.

Simple right, this option is the last one so most of the people didn’t got the time to find it. Now your code will look much cleaner without those junk codes.

via How to get [distinct] rows from a DataSet or Datatable? by shyju.

#region: Awesome or Horrible?

While coding in Java recently, I decided to do a little research to see if Java supported the #region directive (or something similar) and found a ton of articles knocking its usage as poor programming style.

Personally, I love the #region directive in C#, as it allows me to keep my code more organized (and yes, I am aware of the exisiting code-folding functionality in Visual Studio). In the files I work with, I’ve become pretty meticulous about organizing the code blocks into regions, partially because I like the organization, and partly because I was previously under the impression that it was good form to keep source files organized in this way. I use the following regions myself, generally:

  • Private/Protected Members
  • Public Accessors
  • Constructors
  • Public Methods
  • Protected Methods
  • Private Methods
  • (Anything class specific)

I agree with the sentiment in the articles I’ve read that it is *not* good practice to sweep bad code under the rug by hiding it from the developer in a folded #region, but I think that organizing relatively good code into regions like the ones I’ve mentioned above makes it a lot easier to get directly to the code I want to work on.

What do you think? I’m curious to see justifications for/against this directive, and as always, thanks for reading!

Additional links:

ASP.NET: Starter Kits and Community Projects

In relation to the last post, here are some starter kits and projects officially listed at Microsoft’s own ASP.NET site (http://www.asp.net/community/projects/)

Starter Kits

 

DotNetNuke® Web Application Starter Kit

DotNetNuke is an open source web application framework ideal for creating, deploying and managing interactive web, intranet and extranet sites. The combination of an enterprise portal, built-in content management system, elegant skinning engine, and the ability to display static and dynamic content makes DotNetNuke an essential tool for ASP.NET developers.

TheBeerHouse: CMS and E-commerce Starter Kit

TheBeerHouse starter kit enables you to implement a website with functionality typically associated with a CMS/e-commerce site. This website demonstrates key features of ASP.NET 2.0 and is the sample used in the book, “ASP.NET 2.0 Website Programming / Problem – Design – Solution.”

Small Business Starter Kit

The Small Business Starter Kit provides a sample of a business promotion website suitable for small and medium-sized businesses. It provides a template for customizing and creating a site for your own business out-of-the-box, with advanced features including integration with SQL and XML data sources for content and data management.

Open Source

dasBlog

dasBlog is a blogging engine that offers elegant visual aesthetics, powerful easy to use features, and a unique application architecture. dasBlog requires no database engine, using file-based content management with an architecture that ensures excellent performance.

Visit the dasBlog Web Site

ScrewTurn Wiki

ScrewTurn Wiki is a fast, powerful and simple ASP.NET wiki engine, installs in a matter of minutes and it’s available in different packages, fitting every need. It’s even free and open source.

Visit the ScrewTurn Wiki Web Site

BlogFodder: List Of Free / Open Source ASP.NET Web Applications

I started looking for free/open-source ASP.NET applications to run on my development instance of IIS (since IIS is already running on my machine), and stumbled upon this list today:

As a big ASP.NET advocate, I’m loving the recent surge in open source / free ASP.NET applications that are hitting the web – And what’s more because Microsoft have given us some great building foundations with the frameworks like the ASP.NET Membership Provider, a lot of these open source programs are very high quality!  More so than some of the paid applications.

I thought it would be a good idea to create an ever growing list of all the open source ASP.NET applications I could find – Obviously I haven’t had chance to download or install every application so I can’t vouch for them

Notable applications:

Full list available at:
http://www.blogfodder.co.uk/post/2008/07/List-Of-Free–Open-Source-ASPNET-Web-Applications.aspx)

Making XAMPP (Apache) work with IIS on Windows XP/Vista

Update: This application will help you track down which applications are using which ports on Windows – very helpful for debugging if the steps below don’t solve your problem, or if IIS is not the only application answering on port 80: http://winnetstat.zapto.org/

Also, if you don’t specifically need all the features of XAMPP, but would like to run PHP/MySQL applications through IIS, give Web Platform Installer a try. Through WPI, you can choose to install PHP directly within IIS (so that IIS can serve both ASP.NET and PHP applications on port 80, for example) and you can also have a ton of applications installed and configured automatically for you, such as Drupal, WordPress, and Moodle (among many others). However, if you are still looking to run XAMPP specifically, or just run an Apache instance along with IIS, check out the instructions below. Thanks for visiting!

Continue reading “Making XAMPP (Apache) work with IIS on Windows XP/Vista”

[g++] warning: deprecated conversion from string constant to ‘char*’

Just stumbled on to this problem/fix while writing some C++ code for my CS courses…

warning: deprecated conversion from string constant to ‘char*’

I hadn’t really thought about this much, as previous versions of g++ (such as the 3.4.3 version we’re using on our university systems) never complained about this issue, but g++ 4.2.3 does. The fix, as I found from multiple posts around the web, is to change all function arguments that will be expected to take a string constant from “char *” to “const char *”. For example:

Function Call:

class.someFunction("");

Original Function Prototype:

void class::someFunction(char *);

Updated Function Prototype:

void class::someFunction(const char *);

I’m somewhat new to C++ (OSU taught Java and I code in C# for the day job), so please give me a bit of slack on this one if you’re a seasoned pro. 😉

As always, comments and questions are welcome via my comment box. Thanks for reading!

Multi-Targeting VS2005 and VS2008 Web Application Projects, a Gotcha!

Great post on how to share a solution between VS2008 and VS2005, from stevenharman.net/blog:

One of the things I’m most excited about with Visual Studio 2008 is it’s ability to target various versions of the .net framework, a feature known as multi-targeting.

I recently rebuilt a (hand-me-down) laptop for use at developer group meetings, conferences, and coding from the couch. When building out the machine I decided to only install VS2008 and make use of multi-targeting to work on my various .net 2.0 projects… like Subtext. Today I finally got around to loading Subtext up in VS2008 and I was expecting some heartache.

But I did a little research first and luckily came across Rick’s great post explaining how VS2008 and VS2005 can be made to play nice together, allowing you to work with your projects in either IDE. The gist is, the project files (i.e.- your .csproj files) will work in either environment, but you’ll need to maintain separate solution files. Not a huge deal as most of the churn is usually in the individual project files, and not the solution.

(via Multi-Targeting VS2005 and VS2008 Web Application Projects, a Gotcha!)

Regarding Base-64: Trying to solve an ASP.NET issue…

Update: Thanks to WordPress.com automagically linking related posts to each other, I think I may have found a potential solution to this issue here: Invalid character in a Base-64 string (ASP.NET)

The problem seems to be with the ViewState. The ViewState is encrypted, and when an attempt is made to decrypt it on postback, the error is triggered.  The solution is actually quite simple: in the web.config file, set the ViewState not to be encrypted, like this:

<system.web>
<pages viewStateEncryptionMode=”Never”>
</pages>
</system.web>

You should really check out the rest of that article; it looks like it’s got a great explanation for what is actually occurring.

Also, this seems to be related to another message, “Invalid Viewstate.”

My original article is below the fold…

Continue reading “Regarding Base-64: Trying to solve an ASP.NET issue…”

Performance and Editor fixes for VS2008…

KB946581 Install

In regard to my previous post, Visual Studio 2008 Is Pretty Damn Slow, a couple engineers from Microsoft have contacted me to let me know that a hotfix has been made public which should address the performance issues I mentioned in that previous post.

The blog entry regarding this hotfix can be found here:
Downloadable Hotfix: Performance and Editor fixes for Microsoft Visual Studio 2008 and Visual Web Developer Express 2008

More info from Scott Guthrie’s Blog:
VS 2008 Web Development Hot-Fix Roll-Up Available

More info from Rick Stahl’s Blog:
Visual Studio Hotfix for Slow Web Forms Editing and Input Focus Issues

And the hotfix itself, here:
Connect.Microsoft.Com (DownloadID=10826)

Quote from the MSDN blog linked above (Downloadable Hotfix…):

Continue reading “Performance and Editor fixes for VS2008…”