Saturday, April 17, 2010

Petite Porter

This is intended to be a lighter version of the potbelly porter. Suitable for the post lawn mowing or motorcycle rides of summer. Left everything the same, but backed down the specialty grains with the exception of the crystal and ditched the carapils.

1.3:1 liquor/grist ratio 4 gals @169 1 hr for 155. 1.75 gals boiling added and let sit 15 minutes. Got 4 gals runoff at 1.064 adjusted. Batch sparge with 3 gals @ 170 for 15.

10lbs British 2 row pale
5 oz Chocolate
4 oz Brown
3 oz Black Patent
.5 Crystal 60



60 1oz Challenger 7%
10 1 oz UK Kent Golding 5%
5 .5oz Fuggles 4.8
3 .5oz Fuggles 4.8


Pitched Wyeast 1028 @70

Totally forgot to take OG. Transferred to secondary 2/24/10 1.016

5/18/2010 Transferred to keg. FG of 1.017? Way high, not sure why. Warm and flat it's a winner. Pancake syrup kind of color, very smooth, very excited to get back from Canada and wack a few cold and carbonated. Maybe push the Kent Golding back to 30 minutes? It could use some more hops early and late for a more Americanized version, but it is very English ale'y, exactly like I like it.

Saturday, January 23, 2010

Climbing

I have been indoor climbing now since right after Thanksgiving at North Summit Climbing Gym in Wind Gap, PA. It has been nothing short of fantastic. Starting with the staff, they have been incredibly helpful and eager to share knowledge. The people who go are are just a really nice group of similar souled people that make it a pleasure without exception.

Initially it was tough. These keyboard hands with years of abuse were not up for the task and the first month was rife with forearm aches and slow moving fingers the next day. It took about a month for that cycle to subside. I learned the hard way that I need at least a 3 day break between visits or I was shot for a while. Gradually that shifted and the finger and forearm piece improved drastically and now it is about the core and flexibility.

Still have not done a lot of top rope stuff. Stamina isn't there for a lot of it, but bouldering is really fantastic. This week was the start of the bouldering league. I had some hesitation going in since it is team based, but decided to do it anyway and quite glad that I did. Curious what my thoughts will be if spring ever arrives, but for now, it was money well spent and a decision with no second guessing.

Friday, December 25, 2009

Irish Christmas Red Ale

OK, so I'm not irish, but it is christmas, and what's more festive than red ale and green hops?

Found the grain bill and inspiration for the hops from a Smithwicks clone. Only 5 more months...

8lbs Marris Otter
.75 Crystal 60
.5 Carapils
.16 Roasted Barley

60 1oz Kent Goldings 5%
20 .5oz Fuggles 4.5%
5 .5oz Fuggles 4.5%

Preheated with 2 gals boiling
3 gals @ 167 for a 154 mash 1 hr 1.3:1 ratio
1.5 gals boiling mashout 15
3 gals @170 sparge

FG 1.045
Wyeast 1084 Irish Ale @68
Fermenting happily @64

1/3/10 - Moved to secondary 1.010. Not really red, we will have to see in a pint glass. Curious why fg is so high again. Perhaps the higher mash temps?

Wednesday, November 04, 2009

INTP

I am working on a post here. For now, I am amassing resources and I have too many computers and browsers for that job.

Pretty much perfect.
http://www.intp.org/intprofile.html

This should be required reading material, should I ever happen upon a girlfriend:
http://homepage.mac.com/bahlberg/iblog//B1386252977/C707866389/E1956473041/index.html


http://www.personalitypage.com/INTP_rel.html


http://intp.tribe.net/

Saturday, October 17, 2009

Potbelly Porter

Great day of brewing. Not even any mini disasters and I will take that every time. Porter turned out fantastic, though way over gravity 1.058 (planned 1.052). 1.3:1 liquor/grist ratio 4 gals @169 1 hr for 155. 1.75 gals boiling added and let sit 15 minutes. Got 4 gals runoff at 1.064 adjusted. Batch sparge with 3 gals @ 170 for 15. 65.2% efficiency!

Finally got to use brown malt!
10lbs British 2 row pale
.5 Chocolate
.5 Brown
.25 Black Patent
.5 Crystal 60
.25 Carapils

Changed up the Hops quite a bit
60 1oz Challenger 7%
10 1 oz UK Kent Golding 5%
5 .5oz Fuggles 4.8
3 .5oz Fuggles 4.8


Pitched Wyeast 1028 @70


1/6/2010 - Just had to comment for when I looked this up again. Friggin fantastic. Wouldn't change a thing.

Tuesday, October 06, 2009

Yup

Fat, drunk and stupid is a great way to go through life actually.

Friday, October 02, 2009

F*in Percentiles in SQL

The thousands of readers of this world class blog recognize my affinity for math and unconditional love for those who proclaim it's value. This week was a banner week in this department as I was able to dedicate portions of several days to working with percentiles and debating the utter failures of various methods with people who care only for equations, not if they make any logical sense. All work fairly well enough with large datasets, each having their quirks. Unfortunately for me, many times I am asked to calculate p90 on a 4 record set. The interpolative options skew significantly to the outer bands in these cases IMNSHO. Excel method is the closest to representing the actual dataset.

In case any developers are out there who are asked to create percentiles in sql, and have reached the end of their rope by finding this heinous blog, here are some of your options. Wish me luck, I am guessing that next week may involve creating the other 4 sas methods.

This is my least favorite. It appears to be known as SAS v4 or MiniTab
create PROCEDURE [dbo].[sp_CalcPercentile_Minitab]
@PVal float,
@PType varchar(255),
@JobID int,
@ReturnVal float OUTPUT
AS
BEGIN
SET NOCOUNT ON;
create table #ptemp
(id int IDENTITY,
val decimal(8,2)
)
declare @RecordCount as int
declare @TargetRow as float
declare @Difference as decimal(8,2)
declare @m as decimal(8,2)
declare @val as float
declare @val2 as float
declare @intcheck as int
declare @sqlCommand as varchar(max)

--set the records up since identity is needed.
insert into #ptemp (val) select x from table Y
set @RecordCount = @@identity

set @TargetRow = (@RecordCount + 1) * @Pval
set @intcheck = convert(int, @TargetRow)

If @TargetRow = convert(float, @intcheck) begin --no need to make up numbers, get crazy and use an actual value
set @ReturnVal = (select val from #ptemp where id = @intcheck)
end
else begin --time make stuff up
set @val = (select val from #ptemp where id = @intcheck)
set @val2 = (select val from #ptemp where id = @intcheck + 1)
set @Difference = @val2 - @val
set @m = @targetrow - @intcheck
set @Difference = @Difference * @m
set @returnVal = @val + @Difference
end
end


Version 2 is known as the excel method. Math nerds hate this. Perhaps because it makes the most sense and allows for a way to check your work?

create PROCEDURE [dbo].[sp_CalcPVal_Excel]
@PVal float,
@ReturnVal float OUTPUT
AS
BEGIN
SET NOCOUNT ON;

DECLARE @percentile FLOAT
SELECT @percentile = @pval;
WITH emp_sal(base, prev_rank, curr_rank, next_rank)
AS
(
SELECT base,
(ROW_NUMBER() OVER ( ORDER BY base ) - 2.0) / ((SELECT COUNT(*) FROM #somewhere) - 1) [prev_rank],
(ROW_NUMBER() OVER ( ORDER BY base ) - 1.0) / ((SELECT COUNT(*) FROM #somewhere) - 1) [curr_rank],
(ROW_NUMBER() OVER ( ORDER BY base ) + 0.0) / ((SELECT COUNT(*) FROM #somewhere) - 1) [next_rank]
FROM #somewhere
)
SELECT @ReturnVal =
CASE
WHEN t1.base = t2.base THEN t1.base
ELSE t1.base + (t2.base - t1.base) * ((@percentile - t1.curr_rank) / (t2.curr_rank - t1.curr_rank))
END
FROM emp_sal t1, emp_sal t2
WHERE (t1.curr_rank = @percentile OR (t1.curr_rank < @percentile AND t1.next_rank > @percentile))
AND (t2.curr_rank = @percentile OR (t2.curr_rank > @percentile AND t2.prev_rank < @percentile))

end


My personal favorite is this one (seriously, no sarcasm here). I like it because it uses actual numbers to slot results, not "interpreted" numbers which by definition skews results. I realize it is slightly less useful, but at least it isn't a lie.

alter PROCEDURE [dbo].[sp_CalcPVal_ActualPercentile]
@PVal float,
@ReturnVal float OUTPUT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

Set @ReturnVal = (select max( expr1 )from (select top (@pval) percent val as expr1 FROM #somewhere where base is not null order by val asc) as expr2)

END