Wednesday, July 16, 2014

How to use select2 to create a multiple item selector

How to use select2 to create a multiple item selector

<link href="//cdnjs.cloudflare.com/ajax/libs/select2/3.5.0/select2.css" rel="stylesheet" type="text/css" />
<script src="//cdnjs.cloudflare.com/ajax/libs/select2/3.5.0/select2.js" type="text/javascript"></script> 
 
<input type="hidden" id="e2"/>
<input type="button" value="Go" id="btnGO"/> 
 
<script type="text/javascript">
    container.Content.find("#e2").select2({
        createSearchChoice: function (term, data) {
            if ($(data).filter(function () {
                                return this.text.localeCompare(term) === 0;
                            }).length === 0) {
                return {
                    id: term,
                    text: term
                };
            }
        },
        multiple: true,
        width: '400px',
        data: [
            {id: "AL", text: "Alabama"},
            {id: "AK", text: "Alaska"},
            {id: "CA", text: "California"}
        ]
    });
 
    container.Content.find("#btnGO").click(function () {
        console.log("Val=" + container.Content.find('#e2').val());
    });
</script>
 

Tuesday, July 08, 2014

Adding TortoiseSVN commands to Visual Studio 2010

How to integrate TortoiseSVN (Subversion) into Visual Studio 2010

Tools --> External Tools... --> Add button

Title: Subversion Diff
Command: C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe
Arguments: /command:diff /path:"$(ItemPath)"

Others I added:
Subversion Check for Modifications
Arguments: /command:repostatus /path:"$(SolutionDir)" /notempfile

Subversion Update
/command:update /path:"$(SolutionDir)" /notempfile

Subversion Show Log
/command:log /path:"$(SolutionDir)" /notempfile

Subversion Revert
/command:log /path:"$(ItemDir)" /notempfile

Adding these external tools should make them show in your tools menu. You may need to add them to the menu (using Tools --> Customize) if you have deleted other Add-Ons.




Additionally, you can add items to the context menus in the Solution Explorer or to the tabs of files:
















You can do this by adding the items using the Tools --> Customize. You can add to the context menu of files using "Item" and add to the context menu of folders using "Folder":



This site really helped me do this:
http://tortoisesvn.net/visualstudio.html

This site also helped:
http://3dmpengines.tistory.com/652

Friday, June 13, 2014

CSharpPad.com for writing simple C# code online

http://csharppad.com/gist/2711c117666faa563f8e
http://csharppad.com/gist/333405964a24ee36a07d
http://csharppad.com/gist/84a787039938ef21f730

List digits = new List(new int[]{0,1,2,3,4,5,6,7,8,9});

DateTime birthDate = new DateTime(1973, 1, 29);

int index;
while(digits.Count > 0)
{
    index = digits.Count - 1;
    Console.WriteLine(digits[index]);
    digits.RemoveAt(index);
}

string userInput = Console.ReadLine();

Console.WriteLine("userInput={0}", userInput);
Console.WriteLine("birthDate={0}", birthDate);
Console.WriteLine("birthDate compare={0}", DateTime.Compare(birthDate, DateTime.Today));
Console.WriteLine("birthDate diff in seconds={0}", (DateTime.Today - birthDate).TotalSeconds);
Console.WriteLine("Birth Time={0}", DateTime.Parse("1973-01-29 09:30"));
Console.WriteLine("1 Trillion seconds old={0}", (DateTime.Parse("1973-01-29 09:30") + new TimeSpan(0, 0, 1000000000)));
Console.WriteLine("1.5 Trillion seconds old={0}", (DateTime.Parse("1973-01-29 09:30") + new TimeSpan(0, 0, 1500000000)));
Console.WriteLine("2 Trillion seconds old={0}", (DateTime.Parse("1973-01-29 09:30") + new TimeSpan(0, 0, 2000000000)));


Monday, March 03, 2014

Standard looking buttons with different colored backgrounds

<style type="text/css">
    #ContinueButton#CancelButton {
        backgroundlinear-gradient(to bottom, #FFF 0%, #EEE 9%, #E7E7E7 44%, #DDD 45%, #CCC 91%, #FFF 100%);
        background-webkit-gradient(linear, left top, left bottom, from(#F6F6F6), to(#DDD));
        -moz-appearancetextfield;
        border-radius3px;
        -webkit-border-radius2px;
        border1px #999 solid;
        padding2px 6px 3px;
    }
    #ContinueButton {
        backgroundlinear-gradient(to bottom, #FFF 0%, #ECF2EC 9%, #E5EBE5 44%, #DBF1DB 45%, #CAD0CA 91%, #FFF 100%);
        background-webkit-gradient(linear, left top, left bottom, from(#F4FAF4), to(#DBE1DB));
    }
    #CancelButton {
        backgroundlinear-gradient(to bottom, #FFF 0%, #F2ECEC 9%, #EBE5E5 44%, #F1DBDB 45%, #D0CACA 91%, #FFF 100%);
        background-webkit-gradient(linear, left top, left bottom, from(#FAF4F4), to(#E1DBDB));
    }
</style> 
 

Tuesday, January 14, 2014

How to format a date exactly as you want M/d/yyyy

I was having issues formatting a date in ASP.NET MVC3, and I tried everything to get my dates formatted M/d/yyyy. It turned out I needed to set the datatype to text. Before I did that, my dates had leading zeros, which is exactly what I did not want.
[DisplayName("Date Start")]
[DataType(DataType.Text)]
[DisplayFormat(DataFormatString = "{0:M/d/yyyy}", ApplyFormatInEditMode = true)]
public DateTime? DateStart { get; set; }
Remember to use @Html.EditorFor to get the formatting to come through. TextBoxFor will not look at display format, even if ApplyFormatInEditMode is true.

Monday, December 03, 2012

jQuery plugin: showKeyPressed

jQuery plugin: showKeyPressed

This plugin allows you to show the user the characters typed (temporarily) in a password field. The following would run on any password fields with the secure class.

Usage: $(":password.secure").showKeyPressed();

____________________

(function($){
    var ShowKeyPressedLib = {
        show: function (e, refNum, source)
        {
            e = e || window.event;
            var refId = "KP__" + refNum;
            var keycode = e.which;
            if (keycode == 32 ||
                keycode >= 41 && keycode <= 44 ||
                keycode >= 47 && keycode <= 111 ||
                keycode >= 146)
            {
                $(".keypressed").remove(); // Remove all previously shown first
                var coords = $(source).offset();
                var addPixels = 6 * source.value.length;
                $("<div></div>").attr("id", refId)
                                .css({ top: (coords.top - 20) + 'px', left: (coords.left + addPixels) + 'px' })
                                .addClass("keypressed")
                                .html(String.fromCharCode(keycode))
                                .appendTo("body");
            }
        },
        hide: function (refNum)
        {
            $("#KP__" + refNum).remove();
        },
        counter: 0
    }

    $.fn.showKeyPressed = function(){
     return $(this).bind('keypress', function(e){
            var refNum = ShowKeyPressedLib.counter++;
            ShowKeyPressedLib.show(e, refNum, this);
            setTimeout(function(){ ShowKeyPressedLib.hide(refNum) }, 999);
        });
    };
})(jQuery);

Thursday, June 28, 2012

Display the results of any query in Classic ASP

Display the results of any query in Classic ASP:

    If rs.EOF Then
        %>No record found<%
    Else
        Response.Write "
"
        Response.Write ""
        For i = 0 to rs.Fields.Count -1
            Response.Write ""
            Response.Write ""
            Response.Write ""
            Response.Write ""
        Next
        Response.Write "
Login Info
" & GetFieldName( rs.Fields(i).Name, fGeekMode ) & "" & rs.Fields(i).Value & " 
"

        %>
       

        Note: "Minutes Logged In" is not accurate if the session is not active, or if the session is inactive,

        and the user didn't logout (i.e., they closed their browswer instead of clicking Logout).

       

       

        Click Here to Kill This Login Session

            You would want to kill a session if the user is getting Read-Only access, and does

            not want to wait for their current session to time-out. Beware, this will log out the user if

            they are still using this session.
        <%
    End If

PRE
    If rs.EOF Then
        %>No record found<%
    Else
        Response.Write ""
        Response.Write ""
        For i = 0 to rs.Fields.Count -1
            Response.Write ""
            Response.Write ""
            Response.Write ""
            Response.Write ""
        Next
        Response.Write "
Login Info
" & GetFieldName( rs.Fields(i).Name, fGeekMode ) & "" & rs.Fields(i).Value & " 
" %>
Note: "Minutes Logged In" is not accurate if the session is not active, or if the session is inactive,
and the user didn't logout (i.e., they closed their browswer instead of clicking Logout).
 
 
Click Here to Kill This Login Session
    You would want to kill a session if the user is getting Read-Only access, and does
    not want to wait for their current session to time-out. Beware, this will log out the user if
    they are still using this session. <% End If
End

Thursday, February 16, 2012

My HTML is not updating during multiple AJAX calls

http://amolnw.wordpress.com/2009/10/08/ie6-offsettop-issue-and-solution/
http://stackoverflow.com/questions/1397478/forcing-a-dom-refresh-in-internet-explorer-after-javascript-dom-manipulation
function flushThis(id){
   var msie = 'Microsoft Internet Explorer';
   var tmp = 0;
   var elementOnShow = document.getElementById(id);
   if (navigator.appName == msie){
      tmp = elementOnShow.parentNode.offsetTop  +  'px';
   }else{
      tmp = elementOnShow.offsetTop;
   }
}


Element.addMethods({
  redraw: function(element){
    element = $(element);
    var n = document.createTextNode(' ');
    element.appendChild(n);
    (function(){n.parentNode.removeChild(n)}).defer();
    return element;
  }
});

You may also use some kind of addClass/removeClass combo. That would result into the same effect but without creating unused DOM elements. We use this method in qooxdoo and it works well.

Tuesday, January 24, 2012

Non-8dot3 format of a Windows path

I was trying to find out to get the non-8dot3 format of a Windows path to a file, and found this blog post that said at the bottom of the page:

1. start -> run: cmd
2. go to desired folder, i.e. cd "C:\Documents and Settings\All Users\Start Menu\Applications"
3. type command.com you'll get command prompt like C:\DOCUME~1\ALLUSE~1\STARTM~1\APPLIC~1>

Runner up: dir /x 

Monday, October 24, 2011

"Prepend" doesn't mean what you think it means

For years, I thought prepend text meant something similar to append text, accept it meant to add text to the beginning instead of the end of a word. Turns out that even though lots of other people seem to think the same thing, it actually means something else:
"Prepend" is a very obscure word which means literally to premeditate, as in, "He looked at her with malice prepended."
Source: http://cygwin.com/ml/cygwin/2001-07/msg01544.html Now I'm going to have to retrain my brain to start using another word. I'm not even sure what word works best here. Prefix text?

Thursday, February 17, 2011

Finally got a regular expression to validate a number between zero and eleven, allowing a leading zero. It allows only two digits to be entered maximum, and you can put one whitespace character before or after a single digit. Tested in Firefox 3.6 and IE 6.

It should be simple, but "simple" wasn't working in Firefox 3.6. I didn't bother testing other browsers with the one that didn't work in Firefox.

<asp:RegularExpressionValidator ControlToValidate="txtNumberOfMonths"
ErrorMessage="Months At: Please use a rounded number from 0 to 11"
ValidationExpression="^[\s]*((0?[0-9])|(1[0-1]))[\s]*$" runat="server"/>

The simple regex that didn't work was: "\s*(0?\d|1[01])\s*

Monday, May 04, 2009

I've been following the market share of Internet Explorer 8 in hopes that it would take off an people would get off of IE6 and IE7. In April 2009, IE8 doubled it's market share, and then some.

It looks like most of the converts came from IE6 and IE7. Firefox 3 picked up almost a half a percent, but it looks like Chrome only picked up a fifth of a percent.

Web Browser Market Share Trend
http://marketshare.hitslink.com/browser-market-share.aspx?qprid=1

Wednesday, September 24, 2008

Yikes! The general area near my parents house will be pretty close to sea level if levels go up 7 meters (~23 feet):

http://flood.firetree.net/?ll=33.7313,-117.9295&z=4

How much did Al Gore say sea levels will rise?

Monday, August 11, 2008

Tuesday, June 17, 2008

I had the ASP.NET problem that I could not give focus to my UserControl. I solved the problem by creating a method in my UserControl which overrides the Focus method of the Control class.

public override void Focus()
{
txtTextBox.Focus();
}

This only works in the 2.0 Framework and beyond. If you are using Framework 1.1, visit here:
http://ryanfarley.com/blog/archive/2004/12/21/1325.aspx

Wednesday, March 12, 2008

I just found this modern art facilitator. It's fun to make art and then if you choose "watch," you can see a slideshow of the latest artwork...

http://windowseat.ca/viscosity/

My first piece of art was crap, but still fun to make. I'll be back to make another when I'm inspired...

Funny SNL skit about the democratic race, Hillary about Obama:


http://www.hulu.com/watch/11933

Wednesday, February 13, 2008

Crap! 50/50 chance Lake Mead will be gone by 2021!! 10% chance it'll be gone by 2014!

Ouch!! And to add to that, the hydro-electric capabilities will be gone before it dries up, so that'll come first. That'll hurt a lot of us in the South West.

crave.cnet.com article

Friday, February 01, 2008

I read something today on TreeHugger.com that got me thinking about global warming -- what a surprise! Bill Nye, the Science Guy, was thinking about heavily traded commodities. These are the products that are causing traffic (sea, land and air) all over the world. The second most heavily traded commodity is coffee (after oil). Bill Nye suggested thinking about the affect coffee consumption has on the world, and it's true. The ships that pollute the world would be used less if we were not importing (and exporting) so many goods. I'm no isolationist, but maybe cutting back on unnecessary imports would be a good place for everyone to start.

The part of the interview I'm referring to:
Tree Hugger: And maybe you can give us one great eco-experiment or investigation that you can suggest our readers try at home to better understand environmental issues?

Bill Nye: You know, I did some research into what were the most heavily traded commodities in the world. The first, of course, is oil... But the second is coffee, which surprised me. It’s not something you need, like wheat or rice, but something you can choose to buy... So I’d ask you to keep a running record of how much you spend on coffee and bottled water for a week or even a month, and compare them. It’s amazing what you’ll find... And if you can convince people to change some really basic habits you can really change the world... Just think of the enormous impact coffee consumption has on the planet.

Full interview:
treehugger.com interview with Bill Nye

About 15% of America's air pollution came from ships at the beginning of this century, and the EU thinks up to 40% of their pollution could come from ships in the next two years.
bbc.co.uk article
usatoday.com article
Wikipedia: Ship Pollution

Friday, November 30, 2007



The kindle by Amazon looks pretty cool, but I can't figure out if it will be a niche market for a long time, or whether this is the breakthru product that will make ebooks really take off. I don't think it will be for commuters, but maybe for people who are on the road a lot of the time. I can see avid readers who don't like killing trees or storing used books to buy into this big time as well. But I just don't know if that's a big enough market to make it really take off. What do you think?