China Viagra

29Jun/103

Cialis On Line Pricing In Canada

Cialis on line pricing in canada Ever wanted a quick/easy/automated way to get syntax highlighted code from your editor of choice into PowerPoint?

Cialis on line pricing in canada EVERY time I do a technical presentation I need this.  Usually I resort to taking a screenshot, cialis on line pricing in canada or finding an “export to html” type plugin for the editor I’m using at the time (Visual Studio, cialis on line pricing in canada Vim, cialis on line pricing in canada IntelliJ IDEA, cialis on line pricing in canada etc.) and then try to get that somehow into my slides.

Cialis on line pricing in canada The problem I usually run into, cialis on line pricing in canada is that while I like coding on a dark background with a 14pt font, cialis on line pricing in canada that’s not usually that great for presentations.  So I switch to my “presentation settings” that has a light background and bigger font size, cialis on line pricing in canada and then switch back once I’m done taking screenshots or outputting to html. Cialis on line pricing in canada [ugh, cialis on line pricing in canada what a pain… terribly manual].

Cialis on line pricing in canada Then what happens when I spot a bug in code that’s in PowerPoint, cialis on line pricing in canada or I want to add a comment, cialis on line pricing in canada or I need to change the syntax highlighting theme of the entire presentation because it doesn’t go well with the lighting in the room.  UGH!  What a disaster.

Cialis on line pricing in canada Basically, cialis on line pricing in canada it’s always an uphill struggle, cialis on line pricing in canada and it really bothered me… so I decided to fix it once and for all.

Solution

Cialis on line pricing in canada I’m going to solely discuss PowerPoint (for Windows or Mac) here.  I don’t have a copy of iWork, cialis on line pricing in canada and I’m too cheap to buy one.  The reason I have Office for the Mac, cialis on line pricing in canada is because I got it for free… KeyNote/Mac zealots: feel free to be zealous, cialis on line pricing in canada but don’t hate on me because I’m frugal… unless you want to buy me a copy of iWork.

Cialis on line pricing in canada First, cialis on line pricing in canada download: http://www.andre-simon.de/doku/highlight/en/highlight.html

Windows Solution

Cialis on line pricing in canada The highlight tool can output many formats, cialis on line pricing in canada but the important one for Windows is RTF.

Cialis on line pricing in canada So something like:

Cialis on line pricing in canada highlight < infile > outfile –-rtf --syntax=rb  --style=vim --font=”Lucida Console” --font-size=18

Cialis on line pricing in canada This will  take the source code file ‘infile’ and syntax color it as Ruby to an RTF file and output it to ‘outfile’.  The text will be 18pt Lucida Console and syntax highlighted with the “vim” color scheme.

Cialis on line pricing in canada There are lots of themes included, cialis on line pricing in canada you can ask highlight for help (highlight --help), cialis on line pricing in canada and it’ll tell you all the options available, cialis on line pricing in canada as well as all the options available for output, cialis on line pricing in canada and for languages that it supports.

Cialis on line pricing in canada Next, cialis on line pricing in canada in PowerPoint, cialis on line pricing in canada do “Insert Object” on your target slide, cialis on line pricing in canada and choose “Create from file”.  Make sure you check the “Link” checkbox before pressing OK.

Cialis on line pricing in canada Now, cialis on line pricing in canada whenever your source changes, cialis on line pricing in canada re-run your command line, cialis on line pricing in canada then you can choose “Update Link” on your embedded object in PowerPoint, cialis on line pricing in canada or if you close and then re-open PowerPoint, cialis on line pricing in canada it’ll give you the option to update all your links.

Mac Solution

Cialis on line pricing in canada My version of PowerPoint for Mac doesn’t like being able to link to RTF files, cialis on line pricing in canada but it does allow linking to images.

Cialis on line pricing in canada Highlight can output to SVG, cialis on line pricing in canada but my PowerPoint doesn’t like that either.

Cialis on line pricing in canada Now download inkscape, cialis on line pricing in canada if you haven’t already.  It will allow you to rasterize the SVG into a PNG, cialis on line pricing in canada which PowerPoint does like.  You can export your PNG from inkscape from the command line like this:

Cialis on line pricing in canada <path to inkscape> –export-png=<png file> <svg file>

Cialis on line pricing in canada The path to my inkscape command line runner is at:

Cialis on line pricing in canada /Applications/Inkscape.app/Contents/Resources/bin/inkscape

Cialis on line pricing in canada It turns out that inkscape doesn’t like external CSS files, cialis on line pricing in canada which is what highlight gives you with your SVG, cialis on line pricing in canada so you can merge your CSS file into your SVG file with a little script.  The other cool bit about SVG, cialis on line pricing in canada is you can tweak it, cialis on line pricing in canada if you want, cialis on line pricing in canada since it’s just XML.

Cialis on line pricing in canada Now, cialis on line pricing in canada in PowerPoint, cialis on line pricing in canada choose “Insert Picture” and browse to your newly generated PNG.  Make sure the “Link to File” checkbox is checked.

Cialis on line pricing in canada I wrote a script to do this for the latest presentation I did on dependency injection.  You can take a look at the script here [source.rb].   It’s Ruby, cialis on line pricing in canada and you can see where I merge the CSS and SVG files together, cialis on line pricing in canada and where I mess with the line spacing as well (I wasn’t happy with the default line spacing, cialis on line pricing in canada so I tweaked it to my preference).  All the source/images/PowerPoint for that presentation are available here [dependencies presentation] if you want to check them out to see how the whole process works.

Cialis on line pricing in canada Now, cialis on line pricing in canada when I need to change the font and syntax theme throughout my entire presentation because it doesn’t match the lighting in the room, cialis on line pricing in canada it’s super-simple: I change the configuration, cialis on line pricing in canada re-run my script, cialis on line pricing in canada update PowerPoint, cialis on line pricing in canada and chill.

Average Rating: 4.7 out of 5 based on 157 user reviews.

Tagged as: , , 3 Comments
23Sep/091

Viagra Pill Splitter

Viagra pill splitter The first time I saw autotest (presented by Anthony), viagra pill splitter the idea of Continuous Testing captured me.

Viagra pill splitter I live in a .NET world most of the time, viagra pill splitter and I know of no similar solution for .NET.  It’s been awhile since that first time, viagra pill splitter and I’ve tinkered here and there trying to get something comparable, viagra pill splitter but usually come up short.  That is until I found watchr.

Viagra pill splitter Watchr gave me the file change detection capabilities I needed, viagra pill splitter and the extensibility to do whatever I want when a file has been detected as changed.  This made it incredibly easy to hook up some autotest goodness in my .NET world.

Viagra pill splitter You'll have to have ruby installed, viagra pill splitter and gems.  Then, viagra pill splitter the very first thing you'll have to do is

Viagra pill splitter gem install watchr --source=http://gemcutter.org

Viagra pill splitter Here is my watchr script:

require 'autotest.rb'

watch( '^.*UnitTest.*.cs$' ) do |match|
  run_test(match.to_s)
end

Viagra pill splitter This is basically just a regex that says to watch any *.cs files that also contain the string “UnitTest”, viagra pill splitter and when it finds a change in a file matching that description, viagra pill splitter call run_test with the matched file name.

Viagra pill splitter So all the magic is in autotest.rb… lets check it out:

require 'rexml/document'

def build(test_project)
  `msbuild /nologo #{test_project}`
end

def mstest(test_container, viagra pill splitter test_results_file, viagra pill splitter tests_to_run)
  tests_to_run = ([""] << tests_to_run).flatten

  File.delete(test_results_file) if File.exists?(test_results_file)
  `mstest /nologo /resultsfile:#{test_results_file} /testcontainer:#{test_container} #{tests_to_run.join(" /test:")}`
  test_results = process_mstest_results(test_results_file)
  File.delete(test_results_file) if File.exists?(test_results_file)

  return test_results
end

def process_mstest_results(results_file)
  results = {}
  File.open(results_file) do |file|
    xml = REXML::Document.new(file)

    results[:num_tests] = xml.get_elements("//UnitTestResult").length
    failures = []
    xml.elements.each("//UnitTestResult[@outcome='Failed']") do |e|
      failure = {}
      failure[:message] = e.elements["Output/ErrorInfo/Message"].get_text

      stack = e.elements["Output/ErrorInfo/StackTrace"].get_text.value
      stack_match = /^.*at (.*) in(.*):line (\d+)$/.match(stack)

      failure[:stack] = stack_match[1] if stack_match
      failure[:location] = stack_match[2] if stack_match
      failure[:line] = stack_match[3] if stack_match

      failure[:stack] = stack if !stack_match

      failures << failure
    end
    results[:failures] = failures
  end

  return results
end

def show_results(results)
  puts "#{results[:num_tests]} tests run (#{results[:failures].length} failures)"
  results[:failures].each do |failure|
      puts "---------------------------------------"
      puts "Message: #{failure[:message]}"
      puts "Location: #{failure[:location]}"
      puts "Line: #{failure[:line]}"
      puts "Stack Trace: #{failure[:stack]}"
  end
end

def run_test(file_name)
  test_container = ""
  test_results_file = "result.trx"
  test_project = ""

  system("cls")
  system("echo Detected change in:")
  system("echo   #{file_name}")
  system("echo Building and Testing")

  test_namespace = ''
  test_class = ''
  test_names = []

  File.open(file_name, viagra pill splitter "r") do |f|
    f.each do |line|
      ns_match = /^namespace (.*)$/.match(line)
      test_namespace = ns_match[1] if ns_match

      class_match = /^\s*public class (.\w*).*$/.match(line)
      test_class = class_match[1] if class_match

      test_name_match = /^\s*public void (\w*).*$/.match(line)
      test_names << test_name_match[1] if test_name_match
    end
  end

  test_names = test_names.map { |n| "#{test_namespace}.#{test_class}.#{n}" }

  build(test_project)
  results = mstest(test_container, viagra pill splitter test_results_file, viagra pill splitter test_names)
  show_results(results)
end

Viagra pill splitter The key parts (I think) are the fact that I’m using MSTest to run my tests (this can easily be modified to run your framework of choice… note MSTest is not my choice ;) ).  The result parsing is also specific to the MSTest output format, viagra pill splitter but should be simple enough for any framework that can output XML. Viagra pill splitter Also, viagra pill splitter I'm making some assumptions based on my project... Viagra pill splitter we've got one unit test project, viagra pill splitter so I know I can run tests in a single DLL, viagra pill splitter and rebuilding only that project, viagra pill splitter I don't have to worry about choosing the correct project and output dll to build and run tests in.

Viagra pill splitter To get the thing up and running, viagra pill splitter just run

Viagra pill splitter watchr <path to watchr script>

Viagra pill splitter Please, viagra pill splitter use/adapt/give feedback/whatever at will.

Viagra pill splitter Go forth and autotest, viagra pill splitter .NET comrades!

Average Rating: 4.6 out of 5 based on 261 user reviews.

23Feb/090

Online Cialis

Online cialis Last time we talked about using RAKE instead of NAnt/MSBuild to build .NET projects.  Start there if you're curious, online cialis or if you missed that episode.  I'll wait.

Online cialis I've recently been helping out a colleague to get his build server up and running for his new project.  It has been a major pain.  The source code repository is TFS, online cialis the build automation tool is MSBuild, online cialis and the CI server is Cruise Control .NET.  While these three are all decoupled from each other (TFS/TeamBuild, online cialis does really like MSBuild, online cialis however), online cialis its a bit of a pain to configure all of the XML, online cialis get plugins in the right place, online cialis etc. Online cialis to get everything to work just right.  I've been there, online cialis done that myself several times, online cialis its doable, online cialis but not always the easiest thing to do.

Online cialis Installing CruiseControl.rb is a breeze, online cialis except there is an issue with the latest release when trying to run it on Windows.  So instead of downloading it from the website, online cialis I would suggest pulling the repository with git, online cialis and using that version instead.  First, online cialis install msysgit.

Online cialis Then you can execute the following command in your console

git clone git://rubyforge.org/cruisecontrolrb.git

Online cialis The rest of the steps are pretty simple and straightforward:

cruise add projectname -u https://path.to.your.svn.repo/yourproject/trunk
cruise start

Online cialis That will start up the builder and the dashboard.  The dashboard, online cialis by default will live on port 3333, online cialis so browse to http://yourmachine:3333 to view your dashboard.  The path you use above should point to the directory where your RAKE file lives, online cialis that will make it easiest for CruiseControl.rb to get it right.

Online cialis It's pretty dead-simple to configure your project's builder too, online cialis you get sample configuration by default in your %USERDIR%/.cruise/projects/projectname/cruise_config.rb that you can modify however you want.  Here is what that sample looks like:

# Project-specific configuration for CruiseControl.rb

Project.configure do |project|

  # Send email notifications about broken and fixed builds to email1@your.site, online cialis email2@your.site (default: send to nobody)
  # project.email_notifier.emails = ['email1@your.site', online cialis 'email2@your.site']

  # Set email 'from' field to john@doe.com:
  # project.email_notifier.from = 'john@doe.com'

  # Build the project by invoking rake task 'custom'
  # project.rake_task = 'custom'

  # Build the project by invoking shell script "build_my_app.sh". Online cialis Keep in mind that when the script is invoked, online cialis
  # current working directory is [cruise data]/projects/your_project/work, online cialis so if you do not keep build_my_app.sh
  # in version control, online cialis it should be '../build_my_app.sh' instead
  # project.build_command = 'build_my_app.sh'

  # Ping Subversion for new revisions every 5 minutes (default: 30 seconds)
  # project.scheduler.polling_interval = 5.minutes

end

Online cialis Since it is just ruby code, online cialis I find that much more appealing than a big nasty XML configuration file, online cialis but I guess that's just my opinion.

Hooking it up to TFS

Online cialis I live in a TFS world at the office, online cialis so I have to play by those rules.  But I learned from Morpheus that "... Online cialis rules of a computer system... Online cialis can be bent. Online cialis Others can be broken."  I'm just bending them.

Online cialis The SvnBridge provides this rule bending behavior, online cialis by letting your subversion clients talk to your TFS repository, online cialis thereby allowing CruiseControl.rb to poll against what it thinks is a Subversion repository, online cialis but is actually a TFS repository.  It's really simple to checkout your TFS repository against it using your favorite SVN repository, online cialis so I won't go into it here.

Build Outputs

Online cialis The one thing I wanted to make super simple was putting things in the right place for build outputs.  Turns out this is fairly simple after a few minutes with the docs.  CruiseControl.rb sets an environment variable telling you where to put things.  I abstracted a getter over top of it, online cialis so I can conditionally pick a different output location if I'm not inside of a CruiseControl.rb build.  It looks like this:

def output_dir
  if ENV.keys.include?('CC_BUILD_ARTIFACTS')
    return ENV['CC_BUILD_ARTIFACTS']
  else
    return 'results'
  end
end

Online cialis As mentioned last time, online cialis you can see the latest version of the full RakeFile mentioned above here: http://jonfuller.googlecode.com/svn/trunk/code/CoreLib/RakeFile

Online cialis I'm feeling some serious CI/Build Automation bliss, online cialis hopefully this will get you on your way there too!

Average Rating: 4.9 out of 5 based on 225 user reviews.

23Feb/095

Cialis Soft Pills

Cialis soft pills When I first started with build automation, cialis soft pills I started out with NAnt.  I loved NAnt. Cialis soft pills NAnt loved me. Cialis soft pills We were happy.  I could program anything with the NAnt XML goodness.  If there wasn't a function or task to do what I wanted, cialis soft pills I simply wrote one, cialis soft pills compiled it, cialis soft pills  and wrote some more XML; it couldn't be any more simple!  I think the part I liked the most was the instant gratification I had with being able to automate something that would/could not otherwise be automated [at least not in a simple manner] with a little bit of XML programming.

Cialis soft pills Soon after NAnt gained popularity, cialis soft pills MSBuild was released from Microsoft, cialis soft pills which eventually effectively squashed NAnt (IMHO, cialis soft pills no stats to back this up).  We never migrated our scripts over to MSBuild because we had significant investment in NAnt already, cialis soft pills but it wasn't hard to shell off to MSBuild to compile our solutions.  Eventually I worked on a new project (at a new company) and needed to learn how to use MSBuild since we were using TFS on that project.

Cialis soft pills Shortly after I started integrating MSBuild into NAnt, cialis soft pills and then started learning MSBuild, cialis soft pills I started feeling a twinge.  Now that automation is a given, cialis soft pills I need something more than programming in this extremely limited XML environment.  Sure, cialis soft pills I can write a new MSBuild task just like I did in NAnt, cialis soft pills but is it worth it?  My answer is an emphatic no.  I need a great user experience.  Something that feels nice AND is powerful.

Cialis soft pills Enter RAKE.

Cialis soft pills It sounds like MAKE; if it looks and feels like MAKE, cialis soft pills I might vomit!  No thanks!

Cialis soft pills Glad you brought that up, cialis soft pills Dear Reader (If Hanselman can reference you like that, cialis soft pills I can too).  It's not really like MAKE.  In fact, cialis soft pills the things you do inside of a RAKE file, cialis soft pills is write Ruby code!  RAKE really gives you a nice [internal] DSL for automating tasks.  If there is something you want to do that isn't built in, cialis soft pills write a little ruby code to do it.  No compilation and putting the dll in the write place, cialis soft pills etc. Cialis soft pills etc.  Programming in Ruby vs. Cialis soft pills XML... Cialis soft pills now that feels nice (requirement #1 above).

Cialis soft pills But wait!  RAKE is for building Ruby and Rails apps, cialis soft pills we can't possibly use it for .NET!

Cialis soft pills RAKE, cialis soft pills just like Ant, cialis soft pills NAnt or MSBuild, cialis soft pills is a general purpose, cialis soft pills task based automation tool.  It may be written in Ruby, cialis soft pills but it can build .NET solutions (with the help of MSBuild), cialis soft pills Java projects (with the help of Ant or Maven), cialis soft pills or Flex, cialis soft pills or whatever.  I call that powerful (requirement #2 above).

Cialis soft pills Please note I'm not claiming to be the first person to do this in .NET, cialis soft pills I've found lots of other guys doing it too.

Cialis soft pills Here is an example of my first rake script for .NET (some pieces borrowed heavily from the Fluent NH guys... Cialis soft pills thanks!).

Cialis soft pills Enjoy/Discuss.

Cialis soft pills An always updated version of this file can be found here: http://jonfuller.googlecode.com/svn/trunk/code/CoreLib/RakeFile

require "BuildUtils.rb"
include FileTest
require 'rubygems'
gem 'rubyzip'
require 'zip/zip'
require 'zip/zipfilesystem'

#building stuff
COMPILE_TARGET = "debug"
CLR_VERSION = "v3.5"
SOLUTION = "src/CoreLib.sln"
MAIN_PROJECT = "CoreLib"

# versioning stuff
BUILD_NUMBER = "0.1.0."
PRODUCT = "CoreLib"
COPYRIGHT = "Copyright © 2009 Jon Fuller"
COMPANY = "Jon Fuller"
COMMON_ASSEMBLY_INFO = "src/CommonAssemblyInfo.cs"

desc "Compiles, cialis soft pills tests"
task :all => [:default]

desc "Compiles, cialis soft pills tests"
task :default => [:compile, cialis soft pills :unit_test, cialis soft pills :package]

desc "Update the version information for the build"
task :version do
  builder = AsmInfoBuilder.new BUILD_NUMBER, cialis soft pills
    :product   => PRODUCT, cialis soft pills
    :copyright => COPYRIGHT, cialis soft pills
    :company   => COMPANY
  builder.write COMMON_ASSEMBLY_INFO
end

desc "Prepares the working directory for a new build"
task :clean do
  Dir.mkdir output_dir unless exists?(output_dir)
end

desc "Compiles the app"
task :compile => [:clean, cialis soft pills :version] do
  MSBuildRunner.compile :compilemode  => COMPILE_TARGET, cialis soft pills
    :solutionfile => SOLUTION, cialis soft pills
    :clrversion   => CLR_VERSION
end

desc "Runs unit tests"
task :unit_test => :compile do
  runner = NUnitRunner.new :compilemode => COMPILE_TARGET, cialis soft pills
    :source       => 'src', cialis soft pills
    :tools        => 'tools', cialis soft pills
    :results_file => File.join(output_dir, cialis soft pills "nunit.xml")
  runner.executeTests Dir.glob("src/*Test*").map { |proj| proj.split('/').last }
end

desc "Displays a list of tasks"
task :help do
  taskHash = Hash[*(`rake.cmd -T`.split(/\n/).collect { |l| l.match(/rake (\S+)\s+\#\s(.+)/).to_a }.collect { |l| [l[1], cialis soft pills l[2]] }).flatten] 

  indent = "                          "

  puts "rake #{indent}#Runs the 'default' task"

  taskHash.each_pair do |key, cialis soft pills value|
    if key.nil?
      next
    end
    puts "rake #{key}#{indent.slice(0, cialis soft pills indent.length - key.length)}##{value}"
  end
end

desc "Packages the binaries into a zip"
task :package => :compile do
  source_files = Dir.glob("src/#{MAIN_PROJECT}/bin/#{COMPILE_TARGET}/**/*")
  dest_files = source_files.map{ |f| f.sub("src/#{MAIN_PROJECT}/bin/#{COMPILE_TARGET}/", cialis soft pills "#{MAIN_PROJECT}/")}
  Zip::ZipFile.open(File.join(output_dir, cialis soft pills "#{MAIN_PROJECT}.zip"), cialis soft pills 'w') do |zipfile|
    0.upto(source_files.size-1) do |i|
        puts "Zipping #{source_files[i]} to #{dest_files[i]}"
        zipfile.add(dest_files[i], cialis soft pills source_files[i])
    end
  end
end

def output_dir
  if ENV.keys.include?('CC_BUILD_ARTIFACTS')
    return ENV['CC_BUILD_ARTIFACTS']
  else
    return 'results'
  end
end

Average Rating: 4.7 out of 5 based on 256 user reviews.