Archive for August, 2007|Monthly archive page

Beer Game: Brain Damage

A fantastic game. Undoubtedly when you first explain this game, people give blank stares and are confused, but after a quick round, everyone usually gets the hang of things. You’ll need a deck of cards with all 8’s, 9’s and the red 10’s removed, people, and the ever-important beer. The buzz factor starts out low, but with lots of people, dealing last can be dangerous at best.

The ranks of the cards are:

Face cards: .5 points
Aces 1.0 point
2-7 face value
10’s wild

The game is played just like BlackJack but to 7.5 points.

First, lay out all cards face down; everyone “cuts for deal”. Highest card deals first (10 would be 7.5, 7 is very good). Deal will go from highest draw to lowest. Very important: you cannot leave the game until after you have dealt. That’s why dealing first is great, dealing last has been known to result in “Brain Damage.”

Dealer takes deck, deals one card face down to first player, one card face down to self. Player looks at card, then bets any amount of beer, a large shot glass is usually a good limit.

Player keeps first card face down, and can take as many hits as he wants. If he goes over 7.5, he must announce that fact, and then drink the bet. If not, when he stops, dealer turns over his card, and then hits until he thinks he has the player beat. If dealer busts, he drinks the bet.

When the dealer is satisfied with his hand, the player turns over his card. Lower total drinks. Ties mean player drinks. The dealer then goes to the next player, repeating the process until the deck is exhausted.

If the player gets a “five card charlie” (5 cards, not busted), he wins immediately, dealer cannot draw, dealer loses even with a 10 in hand. If player draws to 7.5, dealer can of course try to tie (win).

If the dealer begins dealing with six or less cards, the penalty is to deal again. With six or less cards, dealer lays them face down, the player bets, they both draw a card, loser drinks (tie == player drinks). Play continues until everyone has dealt.

Facebook Code

I don’t post stuff about programming, but I will this one time. Here is the facebook source code.

include_once $_SERVER['PHP_ROOT'].’/html/init.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/home.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/requests.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/feed/newsfeed.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/poke.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/share.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/orientation.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/feed/newsfeed.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/mobile/register.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/forms_lib.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/contact_importer/contact_importer.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/feed/util.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/hiding_prefs.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/abtesting.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/friends.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/statusupdates.php’;

 

// lib/display/feed.php has to be declared here for scope issues.

// This keeps display/feed.php cleaner and easier to understand.

include_once $_SERVER['PHP_ROOT'].’/lib/display/feed.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/monetization_box.php’;

 

// require login

$user = require_login();

print_time(‘require_login’);

param_request(array( ‘react’ => $PARAM_EXISTS));

 

// Check and fix broken emails

// LN – disabling due to excessive can_see dirties and sets when enabled.

//check_and_fix_broken_emails($user);

 

// migrate AIM screenname from profile to screenname table if needed

migrate_screenname ($user);

 

// homepage announcement variables

$HIDE_ANNOUNCEMENT_BIT = get_site_variable(‘HIDE_ANNOUNCEMENT_BIT’);

$HIDE_INTRO_BITMASK = get_site_variable(‘HIDE_INTRO_BITMASK’);

 

// redirects

if (is_sponsor_user()) {

redirect(‘bizhome.php’, ‘www’);

}

 

include_once $_SERVER['PHP_ROOT'].’/lib/mesg.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/invitetool.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/grammar.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/securityq.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/events.php’;

include_once $_SERVER['PHP_ROOT'].’/lib/rooster/stories.php’;

 

// todo: password confirmation redirects here (from html/reset.php),

// do we want a confirmation message?

 

param_get_slashed(array(

‘feeduser’ => $PARAM_INT, //debug: gets feed for user here

‘err’ => $PARAM_STRING, // returning from a failed entry on an orientation form

‘error’ => $PARAM_STRING, // an error can also be here because the profile photo upload code is crazy

‘ret’ => $PARAM_INT,

’success’ => $PARAM_INT, // successful profile picture upload

‘jn’ => $PARAM_INT, // joined a network for orientation

‘np’ => $PARAM_INT, // network pending (for work/address network)

‘me’ => $PARAM_STRING, // mobile error

‘mr’ => $PARAM_EXISTS, // force mobile reg view

‘mobile’ => $PARAM_EXISTS, // mobile confirmation code sent

‘jif’ => $PARAM_EXISTS, // just imported friends

‘ied’ => $PARAM_STRING, // import email domain

‘o’ => $PARAM_EXISTS, // first time orientation, passed on confirm

‘verified’ => $PARAM_EXISTS)); // verified mobile phone

 

param_post(array(

‘leave_orientation’ => $PARAM_EXISTS,

’show_orientation’ => $PARAM_INT, // show an orientation step

‘hide_orientation’ => $PARAM_INT)); // skip an orientation step

 

// homepage actions

if ($req_react && validate_expiring_hash($req_react, $GLOBALS['url_md5key'])) {

$show_reactivated_message = true;

} else {

$show_reactivated_message = false;

}

tpl_set(’show_reactivated_message’, $show_reactivated_message);

 

 

// upcoming events

events_check_future_events($user); // make sure big tunas haven’t moved around

$upcoming_events = events_get_imminent_for_user($user);

 

// this is all stuff that can be fetched together!

$upcoming_events_short = array();

obj_multiget_short(array_keys($upcoming_events), true, $upcoming_events_short);

$new_pokes = 0;

//only get the next N pokes for display

//where N is set in the dbget to avoid caching issues

$poke_stats = get_num_pokes($user);

get_next_pokes($user, true, $new_pokes);

$poke_count = $poke_stats['unseen'];

 

$targeted_data = array();

home_get_cache_targeted_data($user, true, $targeted_data);

$announcement_data = array();

home_get_cache_announcement_data($user, true, $announcement_data);

$orientation = 0;

orientation_get_status($user, true, $orientation);

$short_profile = array();

profile_get_short($user, true, $short_profile);

// pure priming stuff

privacy_get_network_settings($user, true);

$presence = array();

mobile_get_presence_data($user, true, $presence);

feedback_get_event_weights($user, true);

// Determine if we want to display the feed intro message

$intro_settings = 0;

user_get_hide_intro_bitmask($user, true, $intro_settings);

$user_friend_finder = true;

contact_importer_get_used_friend_finder($user, true, $used_friend_finder);

$all_requests = requests_get_cache_data($user);

// FIXME?: is it sub-optimal to call this both in requests_get_cache_data and here?

$friends_status = statusupdates_get_recent($user, null, 3);

memcache_dispatch(); // populate cache data

 

// Merman’s Admin profile always links to the Merman’s home

if (user_has_obj_attached($user)) {

redirect(‘mhome.php’, ‘www’);

}

 

if (is_array($upcoming_events)) {

foreach ($upcoming_events as $event_id => $data) {

$upcoming_events[$event_id]['name'] = txt_set($upcoming_events_short[$event_id]['name']);

}

}

 

tpl_set(‘upcoming_events’ , $upcoming_events);

 

// disabled account actions

$disabled_warning = ((IS_DEV_SITE || IS_QA_SITE) && is_disabled_user($user));

tpl_set(‘disabled_warning’, $disabled_warning);

 

// new pokes (no more messages here, they are in the top nav!)

if (!user_is_guest($user)) {

tpl_set(‘poke_count’ , $poke_count);

tpl_set(‘pokes’ , $new_pokes);

}

 

// get announcement computations

tpl_set(‘targeted_data’ , $targeted_data);

tpl_set(‘announcement_data’ , $announcement_data);

 

 

// birthday notifications

tpl_set(‘birthdays’ , $birthdays = user_get_birthday_notifications($user, $short_profile));

tpl_set(’show_birthdays’ , $show_birthdays = (count($birthdays) || !$orientation));

 

// user info

tpl_set(‘first_name’ , user_get_first_name(txt_set($short_profile['id'])));

tpl_set(‘user’ , $user);

 

// decide if there are now any requests to show

$show_requests = false;

foreach ($all_requests as $request_category) {

if ($request_category) {

$show_requests = true;

break;

}

}

tpl_set(‘all_requests’, $show_requests ? $all_requests : null);

 

$permissions = privacy_get_reduced_network_permissions($user, $user);

 

// status

$user_info = array(‘user’ => $user,

‘firstname’ => user_get_first_name($user),

’see_all’ => ‘/statusupdates/?ref=hp’,

‘profile_pic’ => make_profile_image_src_direct($user, ‘thumb’),

’square_pic’ => make_profile_image_src_direct($user, ’square’));

 

if (!empty($presence) && $presence['status_time'] > (time() – 60*60*24*7)) {

$status = array(‘message’ => txt_set($presence['status']),

‘time’ => $presence['status_time'],

’source’ => $presence['status_source']);

} else {

$status = array(‘message’ => null, ‘time’ => null, ’source’ => null);

}

tpl_set(‘user_info’, $user_info);

 

tpl_set(’show_status’, $show_status = !$orientation);

tpl_set(’status’, $status);

tpl_set(’status_custom’, $status_custom = mobile_get_status_custom($user));

tpl_set(‘friends_status’, $friends_status);

 

// orientation

if ($orientation) {

if ($post_leave_orientation) {

orientation_update_status($user, $orientation, 2);

notification_notify_exit_orientation($user);

dirty_user($user);

redirect(‘home.php’);

} else if (orientation_eligible_exit(array(‘uid’=>$user)) == 2) {

orientation_update_status($user, $orientation, 1);

notification_notify_exit_orientation($user);

dirty_user($user);

redirect(‘home.php’);

}

}

 

// timezone – outside of stealth, update user’s timezone if necessary

$set_time = !user_is_alpha($user, ’stealth’);

tpl_set(‘timezone_autoset’, $set_time );

if ($set_time) {

$daylight_savings = get_site_variable(‘DAYLIGHT_SAVINGS_ON’);

tpl_set(‘timezone’, $short_profile['timezone'] – ($daylight_savings ? 4 : 5) );

}

 

// set next step if we can

if (!$orientation) {

user_set_next_step($user, $short_profile);

}

 

// note: don’t make this an else with the above statement, because then no news feed stories will be fetched if they’re exiting orientation

if ($orientation) {

extract(orientation_get_const());

 

require_js(‘js/dynamic_dialog.js’);

require_js(‘js/suggest.js’);

require_js(‘js/typeahead_ns.js’);

require_js(‘js/suggest.js’);

require_js(‘js/editregion.js’);

require_js(‘js/orientation.js’);

require_css(‘css/typeahead.css’);

require_css(‘css/editor.css’);

 

if ($post_hide_orientation && $post_hide_orientation <= $ORIENTATION_MAX) {

$orientation['orientation_bitmask'] |= ($post_hide_orientation * $ORIENTATION_SKIPPED_MODIFIER);

orientation_update_status($user, $orientation);

} else if ($post_show_orientation && $post_show_orientation <= $ORIENTATION_MAX) {

$orientation['orientation_bitmask'] &= ~($post_show_orientation * $ORIENTATION_SKIPPED_MODIFIER);

orientation_update_status($user, $orientation);

}

 

$stories = orientation_get_stories($user, $orientation);

switch ($get_err) {

case $ORIENTATION_ERR_COLLEGE:

$temp = array(); // the affil_retval_msg needs some parameters won’t be used

$stories[$ORIENTATION_NETWORK]['failed_college']=affil_retval_msg($get_ret, $temp, $temp);

break;

case $ORIENTATION_ERR_CORP:

$temp = array();

// We special case the network not recognized error here, because affil_retval_msg is retarded.

$stories[$ORIENTATION_NETWORK]['failed_corp'] = ($get_ret == 70) ? ‘The email you entered did not match any of our supported networks. ‘ .

‘Click here to see our supported list. ‘ .

‘Go here to suggest your network for the future.’

: affil_retval_msg($get_ret, $temp, $temp);

break;

}

 

// photo upload error

if ($get_error) {

$stories[$ORIENTATION_ORDER[$ORIENTATION_PROFILE]]['upload_error'] = pic_get_error_text($get_error);

}

// photo upload success

else if ($get_success == 1) {

$stories[$ORIENTATION_ORDER[$ORIENTATION_PROFILE]]['uploaded_pic'] = true;

// join network success

} else if ($get_jn) {

$stories[$ORIENTATION_ORDER[$ORIENTATION_NETWORK]]['joined'] = array(

‘id’ => $get_jn,

‘name’ => network_get_name($get_jn));

// network join pending

} else if ($get_np) {

 

$stories[$ORIENTATION_ORDER[$ORIENTATION_NETWORK]]['join_pending'] = array(

‘id’ => $get_np,

‘email’ => get_affil_email_conf($user, $get_np),

‘network’ => network_get_name($get_np));

// just imported friend confirmation

} else if ($get_jif) {

$stories[$ORIENTATION_ORDER[$ORIENTATION_NETWORK]]['just_imported_friends'] = true;

$stories[$ORIENTATION_ORDER[$ORIENTATION_NETWORK]]['domain'] = $get_ied;

}

 

// Mobile web API params

if ($get_mobile) {

$stories[$ORIENTATION_ORDER[$ORIENTATION_MOBILE]]['sent_code'] = true;

$stories[$ORIENTATION_ORDER[$ORIENTATION_MOBILE]]['view'] = ‘confirm’;

}

if ($get_verified) {

$stories[$ORIENTATION_ORDER[$ORIENTATION_MOBILE]]['verified'] = true;

}

if ($get_me) {

$stories[$ORIENTATION_ORDER[$ORIENTATION_MOBILE]]['error'] = $get_me;

}

if ($get_mr) {

$stories[$ORIENTATION_ORDER[$ORIENTATION_MOBILE]]['view'] = ‘register’;

}

 

if (orientation_eligible_exit($orientation)) {

tpl_set(‘orientation_show_exit’, true);

}

tpl_set(‘orientation_stories’, $stories);

 

//if in orientation, we hide all feed intros (all 1’s in bitmask)

$intro_settings = -1;

 

}

tpl_set(‘orientation’, $orientation);

 

// Rooster Stories

if (!$orientation &&

((get_site_variable(‘ROOSTER_ENABLED’) == 2) ||

(get_site_variable(‘ROOSTER_DEV_ENABLED’) == 2))) {

$rooster_story_count = get_site_variable(‘ROOSTER_STORY_COUNT’);

if (!isset($rooster_story_count)) {

// Set default if something is wrong with the sitevar

$rooster_story_count = 2;

}

$rooster_stories = rooster_get_stories($user, $rooster_story_count, $log_omissions = true);

if (!empty($rooster_stories) && !empty($rooster_stories['stories'])) {

// Do page-view level logging here

foreach($rooster_stories['stories'] as $story) {

rooster_log_action($user, $story, ROOSTER_LOG_ACTION_VIEW);

}

tpl_set(‘rooster_stories’, $rooster_stories);

}

}

 

// set the variables for the home announcement code

$hide_announcement_tpl = ($intro_settings | $HIDE_INTRO_BITMASK) & $HIDE_ANNOUNCEMENT_BIT;

// if on qa/dev site, special rules

$HIDE_INTRO_ON_DEV = get_site_variable(‘HIDE_INTRO_ON_DEV’);

if ((IS_QA_SITE || IS_DEV_SITE) && !$HIDE_INTRO_ON_DEV) {

$hide_announcement_tpl = 0;

}

 

tpl_set(‘hide_announcement’, $hide_announcement_tpl);

if($is_candidate = is_candidate_user($user)) {

tpl_set(‘hide_announcement’, false);

}

$home_announcement_tpl = !$hide_announcement_tpl || $is_candidate ? home_get_announcement_info($user) : 0;

tpl_set(‘home_announcement’, $home_announcement_tpl);

tpl_set(‘hide_announcement_bit’, $HIDE_ANNOUNCEMENT_BIT);

 

$show_friend_finder = !$orientation && contact_importer_enabled($user) && !user_get_hiding_pref($user, ‘home_friend_finder’);

tpl_set(’show_friend_finder’, $show_friend_finder);

if ($show_friend_finder && (user_get_friend_count($user) > 20)) {

tpl_set(‘friend_finder_hide_options’, array(‘text’=>’close’,

‘onclick’=>”return clearFriendFinder()”));

} else {

tpl_set(‘friend_finder_hide_options’, null);

}

 

$account_info = user_get_account_info($user);

$account_create_time = $account_info['time'];

 

tpl_set(’show_friend_finder_top’,

!$used_friend_finder);

 

tpl_set(‘user’, $user);

 

 

// MONETIZATION BOX

$minimize_monetization_box = user_get_hiding_pref($user, ‘home_monetization’);

$show_monetization_box = (!$orientation &&

get_site_variable(‘HOMEPAGE_MONETIZATION_BOX’));

tpl_set(’show_monetization_box’, $show_monetization_box);

tpl_set(‘minimize_monetization_box’, $minimize_monetization_box);

 

if ($show_monetization_box) {

$monetization_box_data = monetization_box_user_get_data($user);

txt_set(‘monetization_box_data’, $monetization_box_data);

}

 

 

// ORIENTATION

if ($orientation) {

$network_ids = id_get_networks($user);

$network_names = multiget_network_name($network_ids);

$in_corp_network = in_array($GLOBALS['TYPE_CORP'], array_map(‘extract_network_type’, $network_ids));

$show_corp_search = $in_corp_network ||

get_age(user_get_basic_info_attr($user, ‘birthday’)) >= 21;

$pending_hs = is_hs_pending_user($user);

$hs_id = null;

$hs_name = null;

if ($pending_hs) {

foreach (id_get_pending_networks($user) as $network) {

if (extract_network_type($network['network_key']) == $GLOBALS['TYPE_HS']) {

$hs_id = $network['network_key'];

$hs_name = network_get_name($hs_id);

break;

}

}

}

//$orientation_people = orientation_get_friend_and_inviter_ids($user);

$orientation_people = array(‘friends’ => user_get_all_friends($user),

‘pending’ => array_keys(user_get_friend_requests($user)),

‘inviters’=> array(), // wc: don’t show inviters for now

);

$orientation_info = array_merge($orientation_people,

array(‘network_names’ => $network_names,

’show_corp_search’ => $show_corp_search,

‘pending_hs’ => array(‘hs_id’=>$hs_id,

‘hs_name’=>$hs_name),

‘user’ => $user,

));

tpl_set(‘orientation_info’, $orientation_info);

 

tpl_set(’simple_orientation_first_login’, $get_o); // unused right now

}

 

 

// Roughly determine page length for ads

// first, try page length using right-hand panel

$ads_page_length_data = 3 + // 3 for profile pic + next step

($show_friend_finder ? 1 : 0) +

($show_status ? ($status_custom ? count($friends_status) : 0) : 0) +

($show_monetization_box ? 1 : 0) +

($show_birthdays ? count($birthdays) : 0) +

count($new_pokes);

 

// page length using feed stories

if ($orientation) {

$ads_page_length_data = max($ads_page_length_data, count($stories) * 5);

}

tpl_set(‘ads_page_length_data’, $ads_page_length_data);

 

$feed_stories = null;

if (!$orientation) { // if they’re not in orientation they get other cool stuff

// ad_insert: the ad type to try to insert for the user

// (0 if we don’t want to try an insert)

$ad_insert = get_site_variable(‘FEED_ADS_ENABLE_INSERTS’);

 

$feed_off = false;

 

if (check_super($user) && $get_feeduser){

$feed_stories = user_get_displayable_stories($get_feeduser, 0, null, $ad_insert);

} else if (can_see($user, $user, ‘feed’)) {

$feed_stories = user_get_displayable_stories($user, 0, null, $ad_insert);

} else {

$feed_off = true;

}

 

// Friend’s Feed Selector – Requires dev.php constant

if (is_friendfeed_user($user)) {

$friendfeed = array();

$friendfeed['feeduser'] = $get_feeduser;

$friendfeed['feeduser_name'] = user_get_name($get_feeduser);

$friendfeed['friends'] = user_get_all_friends($user);

tpl_set(‘friendfeed’, $friendfeed);

}

 

$feed_stories = feed_adjust_timezone($user, $feed_stories);

 

tpl_set(‘feed_off’, $feed_off ? redirect(‘privacy.php?view=feeds’, null, false) : false);

}

tpl_set(‘feed_stories’, $feed_stories);

 

render_template($_SERVER['PHP_ROOT'].’/html/home.phpt’);

Drink of the week:Halley’s Comet

Ingredients for a Halley’s Comet

  • Vodka
  • Cointreau
  • Strawberry Liqueur
  • White Cranberry Juice
  • Lemon Juice

Quantities for one drink:

  • 1.01 oz Vodka
  • 0.51 oz Cointreau
  • 1.01 oz Strawberry Liqueur
  • 1.01 oz White Cranberry Juice
  • 15 oz Lemon Juice

Blending Instructions:

  • Pour all ingredients over ice in a shaker
  • Shake and strain into glass
  • Garnish with a fresh strawberry

Serving Glass

Cocktail GlassCocktail Glass

Also known as a martini glass. The shape of the glass helps keep ingredients from separating, and the stem allows the drink to stay cool while holding.
Size: 4 to 6 ounces

Drinking games: Signage

Requires

lots of beer atleast 5 crazy friends

Gameplay

Each player picks a sign.(ie grab your lip, grab your ear, when you get good at this game you get creative by pretending to wack off ….).The first player begins by doing his/her sign then any of the other players.That player then does his/her sign then anothers.This game goings on till someone fuck’s up.When they do they must drink then they start over.The key to this game is speed.(Example of a game:Brenda sticks her tongue out then does Tacha’s sing which is cuffing her chin.Tacha in turn cuffs her chin then does Keltie’s sign, grabs her lip…..on and on till someone drinks).

Advanced

You may not deek ( go for ear then go for lip) If your not paying attention and miss someone doing your sign then that is a mess up You may not go to washroom till your drink is gone If you do a sign that does not exist, drink You’ll catch the drift….