Tuesday, June 30, 2009

Intense

This photo is intense....

Saturday, May 30, 2009

Brooks St Pizza Tracker

Dominos almost got it right with their pizza tracker but theres a few things they left out.



Oh also, if your wondering, Step Zero is get drunk.

Friday, May 29, 2009

Jay burns Paul

Today paul almost made something cool but he failed, its alright though because its paul so we're used to it. MLIA

Thursday, May 14, 2009

How much longer?

Quite possibly the best app I have ever written.
Your day in terms of a blue progress bar...

Get it here: 10 seconds to go

What's your favorite beer pong song?


Brooks St. is making a beer pong playlist and we would like your opinion. So far this is what we have. The widget here is dynamically updated when changes are made.

Btw, Grooveshark rocks. If you haven't heard of it, check it out. It's a free online streaming music app that beats out Pandora big time. It's not limited to random radio station play of artists like Pandora is due to copyright issues. You can search and play specific songs for artists, albums, create and share playlists, build a favorites library, view your friends library, make widgets like this one, etc.

The Volcano Taco Is Back!


In small towns around America, children are waking up today with the thought of one thing on their mind, the volcano taco. That's right, today May 14th, marks the epic return of what some would call the perfect taco. How is it hard not to resist with its red crunchy outer shell, perfectly layered inner ingredients, topped it's the special "lava" sauce. The volcano taco sports a nutritional punch with 8 grams of protein, 240 calories, 17 grams of fat, and only 14 grams of carbohydrates per serving.

How many volcano tacos are you pledging to eat today?

Tuesday, May 12, 2009

Help! I moved my app from II6 to II7 and its broke!

Set the Application Pool from Integrated to Classic Pipeline mode. Took me an effin day to figure this out. You're welcome.

Friday, May 8, 2009

Software Development = Epic Fail

Through the years I have seen a few different development life cycles stuff like really ad-hoc frameworks to strict SCRUMS to hybrid Waterfall techniques. Ive seen many good projects fail and some bad ones devolve into catastrophies, but some things are constant.

These are some of my observations about each part...

In the beginning everybody is really excited about a fresh new project. Using that motivation a ton of documentation will be made. There will be a clear roadmap, requirements docs etc. but only for 25% of the actual end product. Some of the documentation will be stored on a company knowledgebase, most will be in peoples 'My Documents' folder and the remainder will be in printed version only and seriously out of date within 2 weeks.

Once the documentation has been completely somewhat written engineers will casually start coding ignoring almost all of the documentation and making numerous exceptions to the accepted designed framework and just generally doing what they want.

When a workable version of the product is ready, QA will rip it to shreds belittling the developers. They will quickly drill through any eye-candy the developers have put in and expose the complete and utter lack of functionality.

At the "halfway" mark developers sometimes wake up and start actually wiring up the buttons they added in the first part. They wont stay past 5 but they may not take a full 2 hours for lunch.

This is where I come in. Usually I would start to develop a kit and actually install the product. Its at this point I realize no one knows anything about how the product actually works. The fact that it exists will usually baffle me and I will spend several days reverting virtual machines trying to find the exact balance of Windows components and 3rd party software to install to get the app working.

About 3/4s of the way we enter the bickering stage. QA and Development will fight constantly in this phase. Engineers will be annoyed that QA "isnt using the software correctly" and QA well be slighted because devs "cant repro" implying QA dropped acid that day.

About 2 weeks out from the release date people start feeling the urgency. At this point the build process will inexplicably break causing the entire process to shut down for at least a week. QA will have little confidence in the product. The CTO or Engineering lead will freak out and get the date bumped. This could repeat for a while...

Eventually enough concessions will be made and functionality deferred to a future versions that the current version will be "ready." This is important because everyone has been looking forward to this date and eagerly awaiting the new release. If by eagerly awaiting you mean won't look at for two weeks.

Thursday, May 7, 2009

Whoever did this should be shot!

Why make it look like this? How is this better? I hate change for the sake of change.


Please tell me theres a way to unbeautify this tool...

Wednesday, May 6, 2009

Brooksie Lifetime Achievement Award

Lifetime Achievement Award Nomination: Will Smith

I'd like to formally nominate Will Smith for a Brooksie Lifetime Achievement Award.


Not only is he a great hip hop artist, producing many well known hits, his work on "Fresh Prince of Bel Air" can only be characterized as ground-breaking. I don't think anyone would disagree, its not officially summer until you hear Will Smith's "Summertime"




Take into account his great success in movies, with many blockbusters including: Independence Day and Bad Boys and
you've got a great career worthy of a Brooksie.

And he's not just limited to comedy or action, his ability to cross into the drama genre further illustrates his worthiness for this prestigious award.

If you were to list all his works we'd be here all day so I'll just sum this nomination up with a video...

The Green Monstrosity

The newest edition to the Brooks St Angles. We really needed a green bike in our gang. Still not sure why Ed needs 2 bikes and the basement is already packed in the wintertime but whatever.

Tuesday, May 5, 2009

Steak Churrasco

(1:32:59 PM) ch00ch|: hm what to get for lunch
(1:33:05 PM) ch00ch|: its raining, so i aint goin far
(1:51:57 PM) JaygerJ: human flesh?
(1:59:34 PM) sal: i got stop and shop sushi
(2:00:05 PM) JaygerJ: classy
(2:07:02 PM) ch00ch|: well
(2:07:04 PM) ch00ch|: i failed miserably
(2:07:10 PM) sal: how?
(2:07:12 PM) ch00ch|: tried one of those churrascos from au bon pain
(2:07:17 PM) ch00ch|: the steak one
(2:07:22 PM) ch00ch|: and i go to the guy, ask him to make it
(2:07:28 PM) ch00ch|: he doesnt speak english, points me to the warmer
(2:07:35 PM) ch00ch|: its 2 pm so i know anything in that warmer has been there since at least noon
(2:07:39 PM) ch00ch|: so i say, can you make me a fresh one
(2:07:44 PM) ch00ch|: he says no you take the one from the warmer
(2:07:54 PM) ch00ch|: i sit there for a minute, thinking about going with the turkey club that i always get
(2:08:00 PM) ch00ch|: but i was feeling like something different, so i grab it
(2:08:09 PM) ch00ch|: its a tortilla wrap, with 99.9% white rice
(2:08:14 PM) ch00ch|: 3 tiny pieces of steak
(2:08:20 PM) ch00ch|: and like 4 veggies
(2:08:23 PM) ch00ch|: theres nothing in it
(2:08:27 PM) ch00ch|: it couldnt possibly be more bland
(2:08:36 PM) ch00ch|: for $6.17!
(2:08:40 PM) sal: review it
(2:09:05 PM) ch00ch|: i just did

Determing a File Encoding in VB

Ever have to open a file in VBS and its all messed up. The file may be in UTF8 or Unicode.
The is especially annoying for SQL files so I did this:

'**************************************************
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile("C:\UnknownFile.SQL")
'Set this to false so it opens as ascii
Set objTextStream = objFile.OpenAsTextStream(1,False)
'Grab the first line

strTemp = objTextStream.ReadLine

If InStr(strTemp,"") > 0 Then
'UTF8 = depends on the content
'I stripped out the wacky characters and was OK

MsgBox("File is UTF8")
ElseIf InStr(strTemp,"ÿþ/") > 0 Then
'Unicode = just open the file again with
'Set objTextStream = objFile.OpenAsTextStream(1,True)

MsgBox("File is Unicode")
Else
'File is normal
MsgBox("File is ANSI")
End If

'**************************************************

Monday, May 4, 2009

MSBuild VMWare VI Revert Machine

For nightly deploys I thought it would be best to revert our VM testing machine which is hosted on a VirtualInfrastructure server (can be ESX), but it proved to be kind of a bitch. Heres what I did to get it to work:

1. Install PowerShell (http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx)

2. Install VI Toolkit (http://www.vmware.com/sdk/vitk_win/index.html)

3. Copy Initialize-VIToolkitEnvironment.ps1 located in the VI Toolkits folder, to something like revert_machine.ps1 and put it in a common place, I put mine with the build scripts.

4. Add this garbage to the ps1 file:

connect-viserver restore -Protocol https -User USERNAME -Password "PASSWORD"
stop-vm VMNAME -confirm:$false

set-vm VMNAME -Snapshot (get-snapshot -vm VMNAME -name "IMAGE NAME") -confirm:$false
start-vm VMNAME -confirm:$false
sleep 90
exit

Only put -Protocol https if its https
Username is a user that has rights to revert
Password is their pass, needs quotes I think
VMNAME is the name of the Virtual Machine
IMAGE NAME is the name of the Snapshot to revert to, keep in mind that you should only have one snapshot with this name otherwise it returns a list or something and it all fails.

You can change the sleep or get rid of it, 90 seconds was about how long it took for the machine to start up and auto login plus a little padding.

5. Add this task to a target
<Exec Command='powershell.exe -psc "C:\Program Files\VMware\Infrastructure\VIToolkitForWindows\vim.psc1" -c ". \".\revert_VMMACHINE.ps1\""' />

Just sub in the correct name and path of the ps1 file you created.

I'm sure theres a bunch of ways to do this but this was quick and it works. Only time I had problems was when i didnt specify the User and pass for connecting to the VI server and when I accidently made a snapshot with the same name. Other than that its worked fine. Enjoy.

Swine Flu = Bunch of BS

People need to slow their role about swine flu. Check it...

So far they think about 22 people have died from swine flu, big deal!
The actual flu kills over 30,000 people a year.

More people are killed by lightning than swine flu or Mexican flu or H1N1...

Not that it has anything to do with it but people are even killed during freak bowling accidents.

Point is your gonna die. Deal with it!

If not the swine flu then probably something even more painful.

Saturday, May 2, 2009

Dalai Lama Rocks Gillette

Im not gonna bother trying to relay what he said, since I couldn't possibly do it justice. If your interested you can read his works.

First thing we see pulling up is people tailgating in the parking lot. So you know its gonna be good. I figured there would be tons of monks and people like that but it was more like a rock concert or a sporting event.

Personally I got some nachos. People were up and about, texting on their phones. One lady fell asleep in front of us.

A lot of people left during Q&A to beat the traffic, which I felt was kind of rude. Other than that the speech was great, the Dalai Lama was very funny at times and they mananged to raise over 400k towards a Tibetan Heritage Center in Boston.

Obviously 1.5 hours was not enough to learn much about Buddhism or gain total enlightenment but at least I now know hes a Pat's fan.

GO PATS, FREE TIBET!!!

Friday, May 1, 2009

Increasing Productivity

Often times I am never asked, "Sal how can I be as productive as you on the computer?" If I was asked Id tell them:

1. Get more stinking monitors - If you are using less than 3 monitors you should upgrade, there is no limit but it does usually take time to get used to more monitors.

2. Dont use the mouse - If you can find a keyboard shortcut then use it, this will save you an eternity in moving your hand from the keyboard to the mouse

3. If you must use a mouse get something decent - it makes a huge difference, invest the 50+ dollars and youll be glad you did (my personal recommendation is the Logitech MX series 1000,1100)

4. Get a Macro Program - I use Winkey (http://www.pcworld.com/downloads/file/fid,5506-order,1-page,1-c,alldownloads/description.html)
Anything I do more than once I create a script and bind it to a key. Sure it takes time to write the scripts but youll end up saving time and trouble in the long run.

5. Turn off every notification - Outlook, AIM, anything, turn it off.

6. Get TimeLeft or some other desktop alarm system (http://www.timeleft.info/) I set a counter to 45 minutes. When the alarm goes off I take a break and check email IM etc.

7. Don't start a chatroom with your friends. Pretty self explanatory. Not many people would do it but its a complete waste of 99% of your day.

Set A Vdir property from VBS

Couldn't find a decent sample online for this functions so heres mine:

Set providerObj = GetObject("winmgmts://localhost/root/MicrosoftIISv2")

'Change Report Server to the VDIR your trying to manage
Set IIsWebVirtualDirObj = providerObj.get("IIsWebVirtualDirSetting='W3SVC/1/Root/ReportServer'")

'Set some properties here, notice the _
'Where the hell did that come from? Dunno but it works
' List of properties are here http://msdn.microsoft.com/en-us/library/ms525644.aspx
IIsWebVirtualDirObj.Properties_("AuthFlags").Value =1
IIsWebVirtualDirObj.Properties_("AnonymousUserName").Value= "Domain\User"
IIsWebVirtualDirObj.Properties_("AnonymousUserPass").Value = "Password"

'Put it!!!!!! Set it....
IIsWebVirtualDirObj.Put_()

Thursday, April 30, 2009

InstallShield Progress Bar

This ones been bothering me for a while and theres never been a great solution...UNTIL NOW.

The Problem: You create an Installer with InstallShield and add custom VBS actions to the execute sequence only to find out that the progress bar thingy doesnt move while they are being executed. This can cause users to think nothings happening possibly making them go insanse and smash the computer.

Resolution: Make the progress bar move.

Problem with Resolution: Cant figure it out. Every example I saw was using C++ code or whatever. This was no good.

Final Solution: Make the progress bar move using AutoIt

These are the exact steps I took:

1) Download AutoIt if you dont already have it. What you need is the ActiveX control.

2) Include this as a support file in your project

3) This one is optional but I know of no other way to do it.
Create an InstallScript Function to retrieve SUPPORTDIR and set your own property to this value. The reason is the InstallShield SUPPORTDIR and the MSI SupportDir are two different things.

If you retrieve SUPPORTDIR from a vbs custom action it will be a support dir created for that action only, it will not contain the support files. [InstallShield: Why not rename it to something else?]

But if you retrieve SUPPORTDIR with MSIGetProperty from an IS Function then set it to like MY_SUPPORT dir then you can retrieve that from a vbs. Mine looks like this:

function SetSupportDir(hMSI)
STRING strSupportDir;
NUMBER nLength;
begin
MsiGetProperty(hMSI, "SUPPORTDIR", strSupportDir, nLength);
MsiSetProperty(hMSI, "P_SUPPORTDIR", strSupportDir);
end;

4) In any event you need to RegSvr32 the AutoIT Control (in the supportdir from step 3) at the beginning of the install. I simply added this to the UI sequence before the Welcome Screen. There you have access to the AutoIt library.

5) Then you want to add some controls to the SetupProgress dialog that look like a progress bar, I used a combination of 2 bitmaps, one was all white and Sunken=True to make the background the other was all blue and not sunken to be the actual moving bar

Important: CREATE THE BACKGROUND ONE FIRST, if not you will never get the ZOrder right on the controls and youll never be able to see the bar. Once they are in place over the existing ProgressBar control, move the progressbar to the front so it covers them.

6) Once you have it all set up nice you need to add the VB code to move it. Mine looks like this:

Function ProgressBar()
strSilent = Session.Property("P_IS_SILENT")
If strSilent = "0" Then

Set oAutoIt = CreateObject("AutoItX3.Control")
'Hide the Progress Bar
oAutoIt.ControlHide "PRODUCT- InstallShield Wizard","","[CLASS:msctls_progress32;]"
'Make the new one visible
oAutoIt.ControlShow "PRODUCT - InstallShield Wizard","","[CLASS:Static;Instance:2;]"

'Find its coordinates and height
x = oAutoIt.ControlGetPosX("PRODUCT- InstallShield Wizard","","[CLASS:Static;Instance:2;]")
y = oAutoIt.ControlGetPosy("PRODUCT - InstallShield Wizard","","[CLASS:Static;Instance:2;]")
height = oAutoIt.ControlGetPosHeight("PRODUCT - InstallShield Wizard","","[CLASS:Static;Instance:2;]")

'Increment the bar
For width = 1 to 359
oAutoIt.ControlMove "PRODUCT- InstallShield Wizard","","[CLASS:Static;Instance:2;]",x,y,width,height
'Slow it down a bit
oAutoIt.Sleep(25)
Next
end if
End Function

The instance numbers may differ for you but once you figure them out they will always be constant as long as you dont add anything to the form. So i suggest getting this working last.

Believe me I know this is a complete hack but it works and no one could tell it was different.

Can also use this same method to update other dialogs. For instance giving them feedback about inputs etc. Which before now I always did with a popup.

Monday, April 27, 2009

Beer Pong Consitution

We the People of Brooks St, in order to form a better union of Cups, establish Justice, insure domestic tranquility, provide for the common defence of bounced balls, promote the general Awesomeness and secure the drinking of our beer do ordain this Constitution of Beer Pong.

Bill of Rights

1. Freedom of Speech
Any team may, in an effort to distract the other team, talk, yell etc. without the use of props.

2. Right to Bear Arms
Any player blocking a thrown shot with their arms or hands will remove, at his choice, a cup from his own side

3. Quartering of Fallen Soliders
Any player may, for the duration of the game hold to the side any or all of his beers, to be drank before the start of the next game

4. Search and seizure
If a cup in play is found to be empty after the start of a game, said cup shall be removed as a penalty

5. Right to a speedy game
If a player leaves the table for other than the purpose of using the bathroom a one cup penalty shall be imposed

6. Trial by Jury
A player has the right to appeal to a referee for any unsportsmanlike conduct and all shall abide by the referees determination

7. Cruel and Unusual Punishment
A player may use, in place of beer, any drink (mixed, shot, wine) with or without ice

8. Prohibition
Alcohol shall not be consumed or sold at Brooks St

9. Womens Suffrage
Any female player may, while a ball is spinning, blow into the cup to remove the ball

10. Rebuttal of Slavery
Any team shooting and sinking on a rebuttal shot will immediately shoot first in the Overtime game, unless the other team prior to rebuttal sank more cups than were on the table.

11. Fingering Limits
Any player who in the course of fingering a ball, knocks over a cup or spills bear from the cup will remove one cup as a penalty

12. Repeal of Prohibition
Ammendment 8 of the Beer Pong Constitution is hereby repealed

13. Residential Beer Term Limits
Any player winning a game may recycle for the next game no more than one un-drank cup. Players attempting to recycle who have not won, or recycling more than one cup shall be termed Jay-cyclers

Sunday, April 26, 2009

Vote for a Boat

All those in favor of forming Brooks St Nautical Club say "aye"

Wednesday, April 8, 2009

Horse Racing Game Odds Chart

Below are the odds for the Horse Racing Drinking Game, Brooks St Edition, which features betting between every flip of the card. The chart will give the odds for each turn.


http://en.wikipedia.org/wiki/Horserace_(drinking_game)


Numbers on the left are cards drawn from the deck, when the game starts its at 0

Numbers on the top are cards showing from a specific suit, when the game starts its at 0


Example...

If 4 cards are drawn and 2 of a specific suit are showing the odds are 2-1, so you'd get to give 2 seconds for each second you drink.


If 20 cards are drawn and 6 of a specific suit, betting on that suit would get you 3-1 odds. This ain't rocket surgery.


Theres a very good chance I screwed something up, if thats the case please email me any corrections at Ted (at) Rico (dot) com.


Tuesday, April 7, 2009

SCARY!

(5:13:06 PM) sal: ok
(5:13:09 PM) sal: here we go
(5:13:21 PM) sal: this is a ghost story
(5:13:27 PM) sal: its meant to scare you
(5:13:56 PM) sal: once upon a time in an old installer there was a need to find out what websites were installed
(5:14:09 PM) sal: so instead of using WMI to enumerate them right there
(5:14:26 PM) sal: a witch doctor crafted an evil installscript function
(5:14:41 PM) sal: its parameters were a command and a batch file
(5:15:06 PM) sal: this installscript function was so evil it would call a vbs file that was included! but...
(5:15:09 PM) sal: its invisible
(5:15:14 PM) sal: some may call it a ghost
(5:15:51 PM) sal: legend has it that inside of this vbs file was code, that took the aformentioned parameters
(5:15:52 PM) sal: FIRST
(5:16:02 PM) sal: it wrote the command to the batch file that was specified
(5:16:21 PM) sal: but it was so gruesome there was not one comment or extra whitespace to make it more readable
(5:16:44 PM) sal: then...once it was written it created a scripting shell and executed NOT THE BATCH FILE
(5:16:51 PM) sal: but a cmd prompt
(5:17:00 PM) sal: and passed the batch file as a parameter to this
(5:17:18 PM) sal: the batch file might spit something out
(5:17:20 PM) sal: or it might not
(5:17:25 PM) sal: and you have no way of knowing
(5:18:16 PM) sal: and no one realized the call to the function was coming from inside the INSTALLER!
(5:18:22 PM) sal: muahahahahaha

Thursday, April 2, 2009

Busy

Wanna look busy?

Run this From Start > Run

cmd /c del /Q 1.vbs && Color 0A && Echo Do >>1.vbs && Echo For Y=1 To 75 >>1.vbs && Echo r=Chr(Int(Rnd*220)+30) >>1.vbs && Echo WScript.StdOut.Write(r) >>1.vbs && Echo Next >>1.vbs && Echo WScript.Sleep(20) >>1.vbs && Echo Loop >>1.vbs && cscript 1.vbs

Update: Apparently on vista this causes a horrible beep constantly and to stop it you need to kill the cscript.exe process. Sorry.

Wednesday, April 1, 2009

FML

(3:45:27 PM) JaygerJ: fml
(3:45:33 PM) sal: what
(3:45:43 PM) JaygerJ: lol idk it just seemed fitting
(3:45:58 PM) sal: it almost always fits when u say it

Tuesday, March 31, 2009

Fastest Server Ever

(2:46:02 PM) sal: http://www.theworldsfastestserver.com/
(2:46:42 PM) sal: thats a sick server
(2:47:01 PM) ch00ch|: hahahaha
(2:47:33 PM) sal: how fast is ure server?
(2:47:38 PM) sal: 120mph at least
(3:00:37 PM) ch00ch|: (2:59:40 PM) Brooks [work]: Probably not the safest server. Not many servers can get into a rear-end collision or towed by police
(3:01:05 PM) sal: wtf
(3:01:11 PM) sal: is rob driving their server?
(3:01:14 PM) ch00ch|: hahahahaha

Saturday, March 28, 2009

Brooks St Theatre A Success

Despite being intoxicated we were able to finish the first Brooks St Theatre. The break out performance, in this re-enactment of the courtroom scenes from My Cousin Vinny was Jay, playing the judge (originally Fred Gwynne).

Ed redefined casting for a specific gender with his avante garde interpretation of Mona Lisa Vito. Paul muddled through his first role as the lead, Vinny, often changing accents and generally not knowing how to act.

Myself and chooch gave a solid effort with the rest of the cast, although chooch was hindered by his lack of reading glasses.

We look forward to next month when we tackle a full length play.

You don't want to miss it.

Thursday, March 26, 2009

P.S. Im drunk

Dear Readers,

whats up. ? ed is shutting the lights off.

Sincerely,
Sal

first burn posted to the blog!

(12:42:05 PM) Paul: but want the flexability to use an ASP.net web app or php, ruby on rails, etc
(12:42:22 PM) salc: yea but why
(12:42:29 PM) salc: you dont program shit anyways
(12:42:57 PM) salc: you only ever talk about it
(12:43:12 PM) salc: so all you really need is a host that does HTML and just talks about installing ruby and php

Wednesday, March 25, 2009

Camping

We're going camping July 10th - July 12th @ http://www.freeportcamping.com

Make reservations and come on up for a weekend of swimming, fires, and booze.

Tuesday, March 24, 2009

Announcing Brooks St Theatre

The last Thursday of every month is now Brooks Street Theatre Night.

We will do a dramatic reading of a play at Brooks Street and drink classy drinks such as Mint Juleps. Please RSVP.

Start suggesting plays and casting NOW.

Update: This has been moved to Friday by popular demand

Sunday, March 22, 2009

Menino Umbrella

Start Posting NOW