From 6d28165c0d90aedd86dc8f7c941383beccc9b63a Mon Sep 17 00:00:00 2001 From: James Anderson Date: Fri, 17 Jul 2026 16:44:11 -0700 Subject: [PATCH 01/10] feat(llm-bench): add ragged prompt batches Co-authored-by: Cursor --- llm_bench/distinct_prompts_512.jsonl | 512 +++++++++++++++++++++++++++ llm_bench/gen_load_test.py | 274 +++++++++----- llm_bench/requirements.txt | 1 + 3 files changed, 707 insertions(+), 80 deletions(-) create mode 100644 llm_bench/distinct_prompts_512.jsonl diff --git a/llm_bench/distinct_prompts_512.jsonl b/llm_bench/distinct_prompts_512.jsonl new file mode 100644 index 0000000..2fd61f5 --- /dev/null +++ b/llm_bench/distinct_prompts_512.jsonl @@ -0,0 +1,512 @@ +{"text": "Sony on Thursday announced the transaction to acquire Ericsson’s 50% stake in Sony Ericsson has been completed. Sony and Ericsson announced the deal last October, which was worth €1.05 billion in cash and made Sony Ericsson a wholly-owned subsidiary of Sony. The company will be renamed to Sony Mobile Communications and will “further integrate the mobile phone business as a vital element of its electronics business, with the aim of accelerating convergence between Sony’s lineup of network enabled consumer electronics products, including smart phones, tablets, TVs and PCs.” Read on for Sony’s press release. More →\nMicrosoft announced on Friday that it has completed its $8.5 billion purchase of Skype. Skype will exist as a new division within Microsoft and Skype CEO Tony Bates will continue to serve as the head of the Skype team. In addition, Skype’s employees around the globe will remain in their current offices. Microsoft confirmed that it will work to integrate Skype into its existing products, but it did not specifically say which products or when that would begin to happen. “We look forward to working with the Skype team to create new ways for people to stay connected to family, friends, clients and colleagues — anytime, anywhere,” Microsoft CEO Steve Ballmer said. The acquisition is still pending completion in several other countries. Read on for the full press release. More →\nFor those of you who were completely underwhelmed by the realities of Project Dark and have a fear of post-paid contract rate plans, T-Mobile has something new for you. Say hello to “T-Mobile Complete.” T-Mobile Complete, and the accompanying “Complete Kits”, will come with the phone of your choice and, uh, well…that’s about it. No contracts, commitments, or legalities involved. Now, we know what you are thinking, why is this news? Well, T-Mobile has stated that the BlackBerry 8520 will be included in these plans as well, and for the first time in the States you can get yourself a BlackBerry device and not be locked into a contract. Sounds good to us. Details are still scarce on the exact pricing of the 8520 and the accompanying pre-paid plan, but we’ve heard that the kits will start at $59 with unlimited talk plans starting around $50/month. What do you guys think? Good idea? No details on the T-Mobile website just yet, but you can hit the jump to read about the release.\nVerizon Wireless announced on Friday that it has completed its acquisition of Alltel. Verizon paid $5.9 billion for the equity of Alltel and assumed all of Alltel’s approximately $22.2 billion in debt. Verizon will gain an additional 12.9 million customers, making Verizon the largest wireless carrier in the US with 83.7 million total customers. Verizon will maintain the Alltel brand and customers of Alltel will retain their current handsets and calling plans during the transition. Verizon will notify customers about changes that will impact future service so we assume at some point Alltel customers will have to forfeit their Alltel plan and select one of Verizon’s calling and/or data plans. Most customers will be able to keep their current handsets after the transition since both networks support the same CDMA technology. Verizon will also maintain Alltel’s existing GSM networks. Re-branding will begin in Q2 2009 and will continue through Q3 2009. No imminent layoffs were announced but the press release states:\nAlltel employees below executive level will continue in their present jobs as Verizon Wireless assesses staffing needs required to best serve customers and achieve synergies.\nWhen a company starts throwing around buzz words like “assess staffing needs” and “achieve synergies”, you can assume that layoffs will be announced at some point before the merger and re-branding is complete. As part of the conditions of the merger, Verizon Wireless will also divest overlapping properties in 105 markets that span 24 states and will affect nearly 2.1 million customers. When all is said and done, some of you will be leaving Verizon and a whole bunch of you will be joining Verizon. if you’re among those who will be affected, let us know in the comments if you are pleased, disappointed or ambivalent about the impending changes to your cellular service."} +{"text": "I love living in the future. Technology is fantastic. Remember pencils? Seriously, how fucking stupid were they?\nHave you ever forgotten your sharpener and had to resort to chipping away the wood with your fingernail? And don't even get me started on the Erasermate.\nI'm not saying you don't still need to write on paper once in awhile. Of course you do. It's just that if you're going to do it you should treat it like the special occasion that it is by using something like a steampunk pen:\nOr even a quill pen:\nIn places like Brooklyn and Portland, quill pens are the new MacBook. Walking into a cafe in Prospect heights is now like stepping into the Constitutional Convention, and the barista can hardly hear your order over all the scratching.\nI wonder what kind of writing implement Pete Hamill's brother uses to pen his limp anti-bike lane screeds. Probably some overblown reminder that he's from Old Brooklyn, like a stickball bat dipped in marinara sauce. By the way, returning to his column this morning to see if it was as stupid as I remembered it (it was), I couldn't help noticing the following testament to The Daily News's formidable editorial skills:\nHere's a closer look:\nHe was lives, now he is dies. And so goeth the circle of life and grammar.\n[Update: I also see according to item #7 that a Parke Avenue penthouse sold for big money. Where's Parke Avenue?]\nSpeaking of Ed Koch, since this is sort of a bike blog, I should note that he did have an interesting and disparate relationship with the bicycle during his time in office--from opening bike lanes in Manhattan in 1980:\nTo closing them a month later and ultimately unveiling the Midtown Bike Ban in 1987:\nI'm certainly not trying to pee-pee on his legacy the day after he's passing; it's just an interesting chapter in New York City cycling history that's worth noting, especially given all the current bike lane bickering and the ever-present possibility that municipal support from them will wane. If you're one of the two or three people who also find New York City cycling history interesting, you may also enjoy this article from way back in 1971:\nHere's then-Congressman Koch on bike lanes:\n\"To encourage bike riding without providing the necessary safety precautions is foolhardy,\" Mr. Koch said in a statement. \"The only way to insure safety for the many thousands of New Yorkers who want to bicycle is to designate official and exclusive bike lanes, and the city has failed to do this.\"\nAnd here's some doofus on the idea of opening bike lanes on 5th Avenue:\n\"Sure,\" he said, \"I can see those matronly women coming to Bergdorf's on a bicycle.\"\n\"I favor bike riding like I favor motherhood [sic] and apple pie,\" Mr. Grosso said, \"but we've had it. I think the city should explore other areas.\"\nSome things never change, and one of them is that people seem to think cycling is too precious for the working class, yet it's also too dirty for the rich. (And as for the middle class, who has the time?)\nWhile I'm on the subject of bike lanes and smugness, here's how many pedestrians and cyclists \"is dies\" in traffic in New York City in 2012:\ncommercial cyclists are going to have to take online safety courses now:\nDOT also announced that enforcement of a package of laws passed by the City Council last October will start in April. The new laws, which include a requirement that commercial cyclists take an online safety course, were touted by City Council Transportation Chair James Vacca as a way to end the “wild, wild west” environment on city streets.\nI'd love to get a look at some of the questions on that test:\nYou have sixteen bags of Chinese food hanging from the handlebars of your ebike. You're traveling at 25mph and the light turns red. What do you do?\nB) Take to the sidewalk\nC) Circle in the crosswalk until there's a gap in traffic\nD) Close your eyes, twist the throttle, and hope for the best\nI'm not sure what the answer is, but the only one of these I've never seen is A.\nSpeaking of tests, I'm pleased to present you with a quiz. As ALWAYS, STUDY THE ANSWER, THINK, TURN OFF YOur caps lock (sorry about that), and click on your answer. If you're right you'll know, and if you're wrong you'll see Andy Rooney's illegitimate child.\nThanks very much for reading, ride safe, and avoid foul odors.\n--Wildcat Rock Machine\n(\"I don't see what the problem is.\")\n1) Due to flooding, the Cyclocross World Championships in Louisville, KY is being rescheduled.\n(Landis enjoying a good novel.)\n2) Floyd Landis is launching a:\n--Sequel to \"Positively False\" entitled \"Negatively Positive\"\n(Professional cycling: why bother?)\n3) Professional cycling is being destroyed by:\n--Lack of sponsorship\n--Deeply embarassing team photo shoots\n(Not him, his brother.)\n4) What did Pete Hamill's brother used to deliver by bicycle?\n--\"100 pounds of meat\"\n--\"500 cords of wood\"\n--\"1,000 smiling knuckles\"\n--\"Beets and stuff\"\n(No, that's not Bruce Campbell.)\n5) What is a \"prepper?\"\n--Someone who prepares for the collapse of civilization\n--Someone who wears polo shirts and sockless loafers\n--Someone who chops vegetables and scales fish in a fancy restaurant\n--Someone who helps the actors maintain their erections between takes during pornographic movie shoots\n(Photo via yesterday's comments.)\n6) Using modern aerodynamic equipment, Greg LeMond beat a bare-headed Laurent Fignon in the final time trial of the 1989 Tour de France, winning the general classification by only eight seconds.\n(\"In your face!\")\n7) People totally don't want to own cars anymore.\n***Special Vintage \"Woo-Hoo-Hoo-Hoo!\" Speed Bonus Video***"} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/account_server/billing_summary.go. Lines: 592.\n\npackage accountserver\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"buf.build/go/protovalidate\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/auth\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/database\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/fwerror\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\tresourcename \"github.com/fw-ai/fireworks/go/resource_name\"\n\t\"github.com/rs/zerolog/log\"\n\t\"google.golang.org/genproto/googleapis/type/money\"\n\t\"google.golang.org/protobuf/types/known/timestamppb\"\n\t\"gorm.io/gorm\"\n)\n\n// getValue returns the value of an optional string pointer, or empty string if nil\nfunc getValue(s *string) string {\n\tif s == nil {\n\t\treturn \"\"\n\t}\n\treturn *s\n}\n\n// stringPtr returns a pointer to a string, or nil if the string is empty\nfunc stringPtr(s string) *string {\n\tif s == \"\" {\n\t\treturn nil\n\t}\n\treturn &s\n}\n\n// addMoney adds two Money values in int64 space to avoid floating point precision errors.\n// It converts both to total nanos (units * 1e9 + nanos), adds them, then converts back.\nfunc addMoney(a, b *money.Money) *money.Money {\n\tif a == nil && b == nil {\n\t\treturn nil\n\t}\n\tif a == nil {\n\t\treturn &money.Money{CurrencyCode: b.CurrencyCode, Units: b.Units, Nanos: b.Nanos}\n\t}\n\tif b == nil {\n\t\treturn &money.Money{CurrencyCode: a.CurrencyCode, Units: a.Units, Nanos: a.Nanos}\n\t}\n\n\t// Convert to total nanos (int64 arithmetic only)\n\taTotalNanos := a.Units*1e9 + int64(a.Nanos)\n\tbTotalNanos := b.Units*1e9 + int64(b.Nanos)\n\ttotalNanos := aTotalNanos + bTotalNanos\n\n\t// Split back into units and nanos\n\tunits := totalNanos / 1e9\n\tnanos := totalNanos % 1e9\n\n\treturn &money.Money{\n\t\tCurrencyCode: a.CurrencyCode,\n\t\tUnits: units,\n\t\tNanos: int32(nanos),\n\t}\n}\n\n// parseStringToMoney parses a decimal string directly into Money to avoid float precision errors.\n// For example, \"45.980701\" becomes {Units: 45, Nanos: 980701000} without float rounding.\nfunc parseStringToMoney(s string, currency string) (*money.Money, error) {\n\tif s == \"\" || s == \"0\" {\n\t\treturn &money.Money{CurrencyCode: currency, Units: 0, Nanos: 0}, nil\n\t}\n\n\t// Handle negative values\n\tnegative := false\n\tif strings.HasPrefix(s, \"-\") {\n\t\tnegative = true\n\t\ts = s[1:]\n\t}\n\n\t// Split on decimal point\n\tparts := strings.Split(s, \".\")\n\n\t// Parse units (whole dollar part)\n\tunits := int64(0)\n\tif len(parts) > 0 && parts[0] != \"\" {\n\t\tparsed, err := strconv.ParseInt(parts[0], 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse units from '%s': %w\", s, err)\n\t\t}\n\t\tunits = parsed\n\t}\n\n\t// Parse nanos (fractional part)\n\tnanos := int32(0)\n\tif len(parts) > 1 {\n\t\t// Pad or truncate to exactly 9 digits\n\t\tfractional := parts[1]\n\t\tif len(fractional) > 9 {\n\t\t\tfractional = fractional[:9] // Truncate\n\t\t} else {\n\t\t\tfractional = fractional + strings.Repeat(\"0\", 9-len(fractional)) // Pad with zeros\n\t\t}\n\t\tparsed, err := strconv.ParseInt(fractional, 10, 32)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse nanos from '%s': %w\", s, err)\n\t\t}\n\t\tnanos = int32(parsed)\n\t}\n\n\t// Apply negative sign\n\tif negative {\n\t\tunits = -units\n\t\tnanos = -nanos\n\t}\n\n\treturn &money.Money{\n\t\tCurrencyCode: currency,\n\t\tUnits: units,\n\t\tNanos: nanos,\n\t}, nil\n}\n\n// Orb API response structures\ntype OrbSubscriptionCostsResponse struct {\n\tData []OrbCostData `json:\"data\"`\n}\n\ntype OrbCostData struct {\n\tTotal string `json:\"total\"`\n\tPerPriceCosts []OrbPriceCost `json:\"per_price_costs\"`\n\tTimeframeStart time.Time `json:\"timeframe_start\"`\n\tTimeframeEnd time.Time `json:\"timeframe_end\"`\n}\n\ntype OrbPriceCost struct {\n\tPrice OrbPrice `json:\"price\"`\n\tTotal string `json:\"total\"`\n\tQuantity float64 `json:\"quantity\"`\n\tPriceGroups []OrbPriceGroup `json:\"price_groups\"`\n}\n\ntype OrbPrice struct {\n\tName string `json:\"name\"`\n\tCurrency string `json:\"currency\"`\n\tMatrixConfig *OrbMatrixConfig `json:\"matrix_config\"`\n\tUnitConfig *OrbUnitConfig `json:\"unit_config\"`\n}\n\ntype OrbMatrixConfig struct {\n\tMatrixValues []OrbMatrixValue `json:\"matrix_values\"`\n}\n\ntype OrbMatrixValue struct {\n\tDimensionValues []string `json:\"dimension_values\"`\n\tUnitAmount string `json:\"unit_amount\"`\n}\n\ntype OrbUnitConfig struct {\n\tUnitAmount string `json:\"unit_amount\"`\n}\n\ntype OrbPriceGroup struct {\n\tGroupingKey string `json:\"grouping_key\"`\n\tGroupingValue string `json:\"grouping_value\"`\n\tQuantity float64 `json:\"quantity\"`\n\tSecondaryGroupingKey string `json:\"secondary_grouping_key\"`\n\tSecondaryGroupingValue string `json:\"secondary_grouping_value\"`\n\tTotal string `json:\"total\"`\n}\n\n// GetBillingSummary retrieves billing summary information for an account\n// It accepts account_id, start_time, and end"} +{"text": "The 2010 NFL season is looming on the horizon, and many fans are rabidly awaiting its arrival.\nBut rumbling in the distance are the storm clouds that may likely change the course of NFL history—not necessarily for the better.\nWhile fans don't want to think about it, the NFL owners are contemplating locking out the players in 2011.\nNot a possibility, you say?\nThe NFL would lose to many fans by cancelling an entire season, you say?\nRemember the 1994 World Series? Or the 2005 Stanley Cup?\nIs Major League Baseball or the National Hockey League dead? No, and in fact, both have become stronger since those work stoppages as all of their fans who swore off the respective leagues have come back. And in the case of the NHL, when it returned to the ice, it brought an new version of the sport with it and has been adding fans with each progressive season.\nWouldn't the NFL's fans do the same? I believe the NFL owners are betting on that answer being a resounding \"yes.\"\nConsider the fact the the NFL owners are in no rush to settle this labor issue. The owners hope to have a new collective bargaining agreement with the players by March. They claim not to want a \"work stoppage,\" but is that really the case?\nThe owners stand to earn $5 billion from their TV revenue deals whether the NFL plays a single down in 2011 or not. Having that in the bank will not force the owners' hands into a deal they do not want. And what the owners want is more of the money the NFL earns.\nPlayers right now take in 60 percent of the league's revenue. The owners want a bigger cut of that pie as they claim the economy has changed. The league needs that money to generate more income across the board (or so their argument goes). Will the players' union talk its members into taking a collective pay cut?\nInterestingly enough, federal authorities from the Department of Labor are right now investigating potential collusion claims regarding the NFLPA and the league.\nA former employee of the players' union has submitted documents regarding alleged backroom deals and meetings between the league's front office and the heads of the NFLPA. What was detailed in those meetings is not known.\nPotentially, those meetings concern the \"enhancement\" of the NFL, meaning the sought after 18-game regular season schedule.\nThis, my friends, is certain to become a reality. And I believe it will be the make-or-break demand of any \"work stoppage.\"\nNow, the NFL claims that turning the season into an 18-game long monstrosity will only earn its players more money. Odd, but right now the NFL's argument about its current labor state is effectively the opposite as the league repeatedly states that the players' 60 percent cut is too much.\nSo who will really profit from the addition of two regular season games a season? The owners, of course.\nWill the owners shorten the pre-season if the league goes to an 18-game schedule? Not likely. Yes, the games are \"meaningless\" and only the most die-hard fans enjoy them, but what comes with those four games is a good deal of money.\nTeams always force season ticket holders into buying tickets for those two preseason home games each year. You could argue that owners will get that back plus a bit more by adding an extra regular season game to the schedule, but why lose what you don't have to?\nPerhaps more important, the individual teams are allowed to sell the TV rights to those preseason games on their own, meaning even more money tallies in the bank each August. What local TV network is going to pay the same amount for one game when they used to get two?\nThe \"enhanced\" 18-game season will further stretch out fans' interest and television ratings into the \"sports wasteland\" of February, benefiting their network partners as well. This is also why the NFL is considering adding permanent Thursday and Saturday games to its new-look schedule.\nAnd if you think the league is worried about playing the Super Bowl later in February, then you obviously forgot that the league awarded New York City the game in 2014.\nBad weather affecting its crown jewel? The NFL doesn't care.\nNor do they seemed concerned with their players' health. It goes without saying that the enhanced season will take its toll on players, but according to the NFL, this will be off-set by their increased income.\nThe fact is, no NFL players is above the game. They are interchangeable parts in a much larger machine. If one breaks down (as will happen), another rises up to take that position. Nothing is lost.\nWill the game on the field suffer because of this? No. In fact, it will bring even more of the NFL's beloved parity to the field. A healthy team is a strong team, but no team will remain healthy going into the latter stages of a season. Therefore, when the playoff push arrives, crazier scenarios will occur and the fans will love seeing their 8-9 team having a shot at a playoff spot. The result: more fan interest.\nWhat NFL fans will end up with is an entirely new league with more emphasis right where the league wants it.\nFans who enjoy the NFL draft will have to stick around to round seven as depth will matter more with more injuries.\nFantasy football players will have to dig deeper and care more about back-ups as injuries affect their rosters as well.\nTeam with losing records will be more likely to reach the playoffs, bringing bigger Cinderellas to the post-season dance.\nAll of this generates more interest, meaning more TV watching, higher ratings, and more money for the NFL. The league will not lose with this, and it knows it.\nSo get ready NFL fans, the league's got a worm dangling on a hook. Will you just nibble, or take a bite?\nFor more, visit: www.thefixisin.net"} +{"text": "The Yankees again proved to be the most playoff-efficient team of all. They bullied Minnesota right out of their own home early on and then finished them off in the Bronx. An all-around dominant performance from the Yankees shows that they will be tough to beat once again in these playoffs. There may be only one team that could challenge them this season. Can I get a...\"RE-MATCH?!\"\nOrlando Hudson says it all for his Minnesota Twins in as few words as possible. Their loss against the Yankees was about as bad as it gets. They were utterly dominated from start to finish and never got a chance to become a part of the series.\nThe Tampa Bay Rays, considered a heavy AL favorite, looked to be out of sorts when their series started in their home at Tropicana Field last week. Their home performance was forgettable as they were outplayed by the Texas Rangers, who hustled out to a 2-0 lead. Nothing seemed to go their way in the early part of this series.\nSuddenly though, this 2-0 deficit was turned into a 2-2 draw with a decisive Game Five to come tomorrow night back in Tampa. If the way the series has played out thus far is any indication, expect Cliff Lee and the Rangers to advance.\nThe Rays can ill-afford another bad home game as their season may depend on it tomorrow. This Game Five will decide which team will have the honor of facing the New York Yankees in the ALCS.\nThe offense had come out entirely too flat in the first two games, producing just one run against Lee and C.J. Wilson. Then, Texas seemed to lose its grip when they returned home to Arlington. Judging frm how this series has went, this one will end with a bang.\nTexas' bullpen could be the reason for their exit if it happens tomorrow night. Over the past two games, at home in Arlington mind you, they have allowed a staggering eight runs in nine innings pitched. They had the chance to sweep and then at least finish up in four games while at home but blew their chances. The bullpen may not be the sole blame here, but they are in fact a major reason.\nNeftali Feliz looked awful in his appearance in Game Three as the few Ray hitters that he faced jumped all over him. An AL Rookie of the Year candidate, Feliz was at the heap of these disasters from the Texas 'pen. It should be interesting to see how they respond when the series returns to The Trop where they have been very successful.\nNo one particular instance or individual could be singled out. So, let's just go with the Twins as a whole for this one. They were no match for the defending World Champions as they went down in a sweep in the Bronx over the weekend.\nJason Kubel, pictured above, was horrible in this series going 0-the series. But Kubel alone should not be categorized as such when the team effort just simply was not there. The fire that lit up Minnesota all summer long was extinguished in an instant by a better,hungrier Yankee team.\nNot many saw this type of series coming as the Yankees imposed their will en route to another ALCS appearance. They boast the game's top lineup and in this series, their pitching was very solid as well. Big off-season pickup Curtis Granderson hit exceptionally well and paced the Yankees once again.\nOther big name Twins like native Minnesotan Joe Mauer performed poorly as well. As mentioned at the top, just an all-around bad series from these Twins. No other way to be described.\nThere were some other performances that shined through in Round One. Curtis Granderson and Mariano Rivera stole the show for the Bronx Bombers, making them a bona fide threat in these playoffs once again.\nWe now count down the best performances of the ALDS.\nOver their first four playoff games the Texas Rangers have stroked seven HR's. Powered by the usual suspects in Nelson Cruz and Ian Kinsler among others, these Rangers are now looking to winning Game Five. The Rangers have an offense that may be able to hit with the Yankees in the ALCS if it comes down to that. It would certainly be an interesting series if it were to happen.\nTexas' starting pitching has been very good in this series as well. Maybe with a few more big hits and another exceptional start from Cliff Lee, the Rangers will find themselves in the Final Four of baseball.\nTampa Bay's offense has been suspect for most of this series, but have come up huge over the past few days in the clutch. With the game, and more so their season, on the line, the Rays' stars Evan Longoria and B.J. Upton came through.\nWhen it mattered most, Joe Maddon was able to go to his top guys and get the job done. This is the mark of a champion as the Rays are now looking to comeback from what was a 2-0 deficit.\nA comeback of this caliber would say a lot about this club as a whole. They dropped the first two games of the series and were able to take the next to on the road and now potentially can put the Rangers away with David Price.\nThe New York Yankees are again flexing their muscle as Kings of the AL. Their quick work of Minnesota was very impressive and showed the world their continued ownership over Ron Gardenhire's club. The Yankees were the better team in every phase in this short series and now get a nice rest while awaiting their ALCS opponent.\nMariano Rivera showed why he is the best post-season closer of all-time with continued October success. Not to mention that the offense as a whole terrorized Minnesota pitching.\nThe Twins blew their chance in Game One when Francisco Liriano kept Yankee hitters afloat, but the Twins themselves could not capitalize and so the Yankees were able to nab home-field and then some."} +{"text": "_time parameters and returns detailed billing breakdown\nfunc (s *Server) GetBillingSummary(ctx context.Context, req *gpb.GetBillingSummaryRequest) (*gpb.GetBillingSummaryResponse, error) {\n\t// Validate request using protovalidate\n\tif err := protovalidate.Validate(req); err != nil {\n\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"validation failed: %w\", err)\n\t}\n\n\t// Parse the account resource name to extract account ID\n\tvar accountName resourcename.AccountName\n\terr := accountName.ParseFrom(req.Name)\n\tif err != nil {\n\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"invalid account resource name '%s'. Please provide a valid resource name in the format 'accounts/account-id'. Error: %w\", req.Name, err)\n\t}\n\n\taccountID := accountName.AccountId\n\n\t// Create logger with account context\n\tl := log.Ctx(ctx).With().Str(\"account_id\", accountID).Logger()\n\n\tstartTime := req.StartTime.AsTime()\n\tendTime := req.EndTime.AsTime()\n\n\t// Authentication and authorization are handled by interceptors\n\n\t// Look up the account to get billing information including Orb subscription ID\n\tvar dba database.Account\n\terr = dba.Populate(s.DB(ctx), &accountName)\n\tif err != nil {\n\t\tif errors.Is(err, gorm.ErrRecordNotFound) {\n\t\t\treturn nil, fwerror.New(gpb.Code_PERMISSION_DENIED, \"\")\n\t\t}\n\t\treturn nil, fmt.Errorf(\"error getting account: %w\", err)\n\t}\n\n\t// Hide cost breakdown details for accounts that have chosen to restrict detailed usage information.\n\tp := auth.GetPrincipalFromCtx(ctx)\n\tif s.hidesUsageDetail(p, dba.AccountId) {\n\t\treturn &gpb.GetBillingSummaryResponse{LineItems: []*gpb.LineItem{}}, nil\n\t}\n\n\t// Serve from cache, keyed by account + Orb subscription + day-truncated range +\n\t// granularity. dba is loaded above to gate existence/auth and to supply the\n\t// subscription id: keying on it means an account that had no subscription (and\n\t// so cached an empty summary) gets a fresh key the moment one is synced, rather\n\t// than serving the stale empty result until expiry.\n\tkey := billingSummaryCacheKey{\n\t\tAccountID: accountID,\n\t\tSubscriptionID: dba.OrbSubscriptionId,\n\t\tStartDate: startTime.UTC().Format(billingSummaryDateLayout),\n\t\tEndDate: endTime.UTC().Format(billingSummaryDateLayout),\n\t\tGranularity: req.GetGranularity(),\n\t}\n\tif s.billingSummaryCache == nil {\n\t\treturn s.fetchBillingSummary(ctx, key)\n\t}\n\tresponse, cacheHit, err := s.billingSummaryCache.GetWithFound(ctx, key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tl.Info().\n\t\tBool(\"cache_hit\", cacheHit).\n\t\tInt(\"line_items_count\", len(response.GetLineItems())).\n\t\tMsg(\"GetBillingSummary: served billing summary\")\n\treturn response, nil\n}\n\nconst billingSummaryDateLayout = \"2006-01-02\"\n\ntype billingSummaryCacheKey struct {\n\tAccountID string\n\tSubscriptionID string\n\tStartDate string\n\tEndDate string\n\tGranularity gpb.GetBillingSummaryRequest_Granularity\n}\n\n// fetchBillingSummary loads cost data from Orb and builds the response for a key.\nfunc (s *Server) fetchBillingSummary(ctx context.Context, key billingSummaryCacheKey) (*gpb.GetBillingSummaryResponse, error) {\n\tresponse := &gpb.GetBillingSummaryResponse{\n\t\tLineItems: []*gpb.LineItem{},\n\t}\n\tif key.Granularity == gpb.GetBillingSummaryRequest_DAILY {\n\t\tresponse.UsageBuckets = []*gpb.UsageBucket{}\n\t}\n\n\tif key.SubscriptionID == \"\" {\n\t\tlog.Ctx(ctx).Info().\n\t\t\tStr(\"account_id\", key.AccountID).\n\t\t\tMsg(\"GetBillingSummary: no Orb subscription ID, returning empty summary\")\n\t\treturn response, nil\n\t}\n\n\tstartTime, err := time.Parse(billingSummaryDateLayout, key.StartDate)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"invalid start date %q: %w\", key.StartDate, err)\n\t}\n\tendTime, err := time.Parse(billingSummaryDateLayout, key.EndDate)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"invalid end date %q: %w\", key.EndDate, err)\n\t}\n\n\tcostData, err := s.fetchOrbCostData(ctx, key.SubscriptionID, startTime, endTime)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"billing data is temporarily unavailable. The billing service may be experiencing issues. Please try again later or contact support if the problem persists. Error: %w\", err)\n\t}\n\n\tbuckets, err := s.buildUsageBuckets(costData)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error building usage buckets: %w\", err)\n\t}\n\tresponse.LineItems = mergeLineItems(ctx, buckets)\n\n\tif key.Granularity == gpb.GetBillingSummaryRequest_DAILY {\n\t\tresponse.UsageBuckets = buckets\n\t}\n\n\treturn response, nil\n}\n\n// fetchOrbCostData fetches per-day cost data from Orb for a subscription.\n// TODO: Move to the Orb client library instead.\nfunc (s *Server) fetchOrbCostData(ctx context.Context, subscriptionID string, startTime, endTime time.Time) ([]OrbCostData, error) {\n\tl := log.Ctx(ctx)\n\n\t// Get Orb API configuration from server config\n\torbApiBase := \"https://api.withorb.com/v1\"\n\torbApiKey := s.orbAPIKey\n\n\t// Format times as ISO 8601 with timezone\n\tstart := startTime.Format(\"2006-01-02T15:04:05Z\")\n\tend := endTime.Format(\"2006-01-02T15:04:05Z\")\n\n\t// Build URL using url.JoinPath for proper URL construction\n\tapiURL, err"} +{"text": "Angels Started Out Hot But in the End Just Burned. New Series, Move Down.\nDo you ever have one of those days where odd things seem to parallel your mood or activities? You think of a song and change the station on the radio only to find that song? Or a coworker randomly starts the same conversation you just had that morning with your mom? Does this ever seem to happen with the baseball team you follow? Saturday, was my husband’s birthday “observed” – as opposed to Tuesday, his actual birthday, when we have tickets for the company seats at the Big A, whoo hoo! We hosted a pizza party/game night in his honor, so I knew that, between the prep, the party and the clean-up, I wasn’t going be able to pay as much attention to the Angels play as I would like to. Little did I know the Angels themselves wouldn’t be paying much attention to their play this weekend. Yikes!\nThe baseball/life parallel was a beautiful thing on Friday night. We cleaned the house and I baked a dark chocolate cake. Making this cake is as much about technique as it is about the recipe. If you cream the butter and sugar long enough and take a sufficiently light, careful hand with the folding, you have an almost ethereally light, fluffy cake. Fold too quickly or too long, or outright mix the batter, and you develop the glutens to the point where you basically have bread. A nice calm no doubter of a game was just what the doctor ordered.\nMelt the chocolate, blend, combine. Vernon Wells hits a homerun. Dry ingredients, buttermilk, whipped egg whites, gently fold. Ervin Santana going strong. Back until the cake is springy to the touch. Double play to finish the game. Howie to Aybar to Tumbo. Light that baby up. And now let’s finish mopping the floor. Excellent. Great Friday! And can I just say that between their humorous sign campaign response to the sign stealing accusations and their classy welcome for Vernon Wells, I love Blue Jays fans!\nSaturday, however, the whole baseball/life parallel thing started to suck. Big time. Yes, I needed to chop and prep all of the pizza toppings. Yes, I needed to make the double vanilla, cream cheese icing for the cake and that involves whipping thick ingredients. Yes, Seth had to work so I was on my own and frustrations from the game lead me to chop and whip with greater…hmmm…shall we say efficiency. But come on Angels, I didn’t need that kind of help! I’m strong lady. I can chop onions, mushrooms, garlic and the like in a good mood, would have preferred to in fact.\nI was concerned about this particular Jered Weaver start heading into the game anyway. He doesn’t pitch as well when circumstances muck up the rotation. Just like in May, when illness delayed his start, Weaver seemed to come back throwing too hard and with less control after his extra rest. And for a guy who lives by pinpoint precision against a hot hitting Blue Jays team on yet another day where the Angels own bats stood still? My recipes were on the right track. This recipe, however, was one for disaster. And Pineiro’s two innings on top of it all? Ouch. Clearly he’s not working anything out in the bullpen. Is he injured? Is it psychological? Would Dave Duncan consent to maybe call and whisper to him over the phone? I got nothin’. But then I had the birthday party and a house full of people, wine to pour, pizzas on the grill and a really great time, all perfect distractions from any thoughts of Angels.\nSo, Sunday this would have to end right? We capped off a thoroughly decadent late night with a thoroughly decadent morning – sleeping in until first pitch and then lounging on the sofa to watch a good match up with a breakfast of leftover prosciutto pizza with blue cheese, apples and caramelized onions. And the beginning was great. Torii Hunter’s homerun. Dan Haren was dealing. Peter Bourjos smokin’ down the base paths. But it was not to be. After the game I could see one more parallel. I had a really happy Saturday night, and I was feeling it Sunday morning to a certain extent, hence the lounging. But some of the Angels and Mike Scioscia, love him though I do, must have had an even happier Saturday night. How else do you explain Bobby and Trumbo’s base running in the 9th? Or Scioscia’s decision to go to Fernando Rodney in the 10th?\nThe parallels, however, have to end now. See, Seth and I are going to be enjoying pizza, cake and other party leftovers easily until Thursday, but the Angels better not be keeping too many leftovers from their weekend. Torii’s hitting streak. Bobby’s reemerging bat. The fielding perhaps. The fact that Jered Weaver is such a stud, that even after giving up eight runs in less than five innings on Saturday, he still has the lowest E.R.A. and the third lowest WHIP in the majors. These are good leftovers to keep. But the lack of clutch, the inconsistent bats and the scary bullpen moments? Leave them on the road. The Rangers are coming to town for a four game series and with this disastrous road trip the Angels are four games behind them. This isn’t the last stand of the season right here, right now but it sure is time to get serious about winning again."} +{"text": "TUSCALOOSA, Alabama — Relief officials inundated with donations after the flurry of twisters that killed more than 300 people across the South are sorting through the broken toys and used underwear they don't need while hunting for places to store mountains of vital supplies like canned food.\nAcross Alabama, agencies are still encouraging people to send items like cleaning supplies for people clearing debris from tornado-damaged homes, or cash donations that can be used to cover operating expenses or handed out to victims. But with storage space scarce, most say they can't handle any more used toys or cast-off clothing.\n\"That becomes the disaster within the disaster,\" said Salvation Army spokesman Mark Jones. \"When people make those mass donations ... it causes the community to be overrun with them and have to deal with that in addition to the storm damage.\"\nIn a dimly lit warehouse in Tuscaloosa, for instance, donated toys are piled 6 feet high as volunteers sort through hundreds of bags of old clothes. A 3-foot-tall plastic Santa Claus looks over the operation; volunteers say it came in with a load of contributions.\nAt a donation distribution center in the northwest Alabama town of Phil Campbell, volunteer manager Beth Rhea has baby food stacked almost to the ceiling, plenty of water and doesn't need any more clothes. But she could use some tents and camping gear because some victims are sleeping outside beside the rubble of their homes. In the central Alabama town of Eclectic, Mayor Helen Rowe has put out the word: No more clothing donations.\nAs for the Salvation Army, Jones said the agency only recently found warehouse space in hard-hit Tuscaloosa and still desperately needs new underwear, nonperishable foods, pet food and sports drinks. It's still searching for more storage space for things that won't be used right away.\nDozens of tornadoes whipped across the South on April 27, killing people across seven states and injuring hundreds more as entire communities were leveled. Donated water and food started arriving within hours in some towns; relief sites sprang up on street corners and in parking lots.\n10 warehouses already full in Tuscaloosa\nTemporary Emergency Services of Tuscaloosa County already has 10 warehouses full of donations, but too many of those items are broken toys, dirty stuffed animals and used underwear that has to be thrown in the trash, said agency director Karen Thompson. While the warehouse space was also donated, Thompson said storing all that stuff is still costly because the organization must pay liability insurance to cover the operation in case someone is hurt on the job.\n\"We just have so much,\" she said. \"It's going to be needed long-term, but a lot of people don't have a roof over their heads and don't have anywhere to put things right now.\"\nCanned food and cleaning products are urgently needed, she said, because some private homes have become impromptu shelters as families take care of relatives and friends left homeless by the twisters.\nVivian Gordon, whose apartment was destroyed by the twister that killed dozens in Tuscaloosa, has survived with the help of relatives, friends and even a stranger who picked her up on the roadside after the storm, providing her a place to sleep. Despite her need after losing everything, she has yet to visit a distribution site.\n\"I'm blessed. But I know other people have,\" she said.\nVictims had come in droves to such distribution centers for water and hot food in the days after the storm. The lines are nearly nonexistent now, though, as stores that had been without electricity reopen and people find places to stay.\nAnd that has left some centers overflowing. On a recent day in Tuscaloosa, truckloads of unneeded ice were left in the sun to melt. In the isolated East Franklin community in the Tennessee Valley, where donations have come in from as far away as Pennsylvania, garbage bags filled with clothes, boxes of waters, tables covered with canned goods and other items fill the gymnasium at the junior high school.\n\"There isn't any way I could tell you how much stuff we have in there,\" said Tony Hodge, who is supervising the distribution center.\nAt the Phil Campbell center, Rhea said people from as far away as Austin, Texas, have come to the town's senior citizen building, where items are being stockpiled. Workers didn't plan to take clothes at the center, but there are still piles of pants, shirts and other items in the large room along with toiletries, food, cleaning supplies and even comic books.\n\"We hate to tell people 'no,'\" Rhea said. So any left over water, clothing, baby food and other items will be donated again, possibly sent to other parts of the state that may be short on supplies.\n\"We will box it all up, label the boxes and send them to another disaster,\" Rhea said.\nAssociated Press Writer Jay Reeves wrote this report."} +{"text": " := url.JoinPath(orbApiBase, \"subscriptions\", subscriptionID, \"costs\")\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to construct Orb API URL: %w\", err)\n\t}\n\n\t// Create HTTP request\n\treq, err := http.NewRequestWithContext(ctx, \"GET\", apiURL, nil)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create HTTP request to Orb API, this is likely a configuration issue, please contact support: %w\", err)\n\t}\n\n\t// Add query parameters\n\tq := req.URL.Query()\n\tq.Add(\"timeframe_start\", start)\n\tq.Add(\"timeframe_end\", end)\n\tq.Add(\"view_mode\", \"periodic\")\n\treq.URL.RawQuery = q.Encode()\n\n\t// Add headers\n\treq.Header.Set(\"Accept\", \"application/json\")\n\treq.Header.Set(\"Authorization\", fmt.Sprintf(\"Bearer %s\", orbApiKey))\n\n\tl.Info().\n\t\tStr(\"subscription_id\", subscriptionID).\n\t\tStr(\"url\", apiURL).\n\t\tStr(\"start_time\", start).\n\t\tStr(\"end_time\", end).\n\t\tMsg(\"Making direct HTTP call to Orb API\")\n\n\t// Make the HTTP request\n\tclient := &http.Client{Timeout: 30 * time.Second}\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"HTTP request to Orb API failed, this could indicate network connectivity issues or Orb service being temporarily unavailable, please try again later or contact support: %w\", err)\n\t}\n\tdefer resp.Body.Close()\n\n\t// Check status code\n\tif resp.StatusCode != 200 {\n\t\tbody, _ := io.ReadAll(resp.Body)\n\t\treturn nil, fmt.Errorf(\"orb API request failed with status %d, this could indicate: (1) invalid subscription ID '%s', (2) invalid time range, (3) Orb service temporarily unavailable, or (4) authentication issues, response: %s\", resp.StatusCode, subscriptionID, string(body))\n\t}\n\n\t// Read response body\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to read response body from Orb API, this could indicate a network issue or corrupted response, please try again: %w\", err)\n\t}\n\n\t// Parse JSON response\n\tvar orbResponse OrbSubscriptionCostsResponse\n\tif err := json.Unmarshal(body, &orbResponse); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse JSON response from Orb API, the response format may have changed or the response is corrupted, response body: %s: %w\", string(body), err)\n\t}\n\n\treturn orbResponse.Data, nil\n}\n\n// mergeLineItems folds per-day usage buckets into range-level line items,\n// merging rows that share the same category and grouping fields. It operates\n// purely on already-built line items, so it does not depend on OrbCostData.\nfunc mergeLineItems(ctx context.Context, buckets []*gpb.UsageBucket) []*gpb.LineItem {\n\t// Aggregate across buckets by category and grouping fields\n\t// (everything except unitAmount, currency, quantity, and totalCost).\n\ttype aggregationKey struct {\n\t\tcategory string\n\t\tgroupingKey string\n\t\tgroupingValue string\n\t\tsecondaryGroupingKey string\n\t\tsecondaryGroupingValue string\n\t}\n\n\taggregated := make(map[aggregationKey]*gpb.LineItem)\n\n\tfor _, bucket := range buckets {\n\t\tfor _, item := range bucket.GetLineItems() {\n\t\t\tkey := aggregationKey{\n\t\t\t\tcategory: getValue(item.Category),\n\t\t\t\tgroupingKey: getValue(item.GroupingKey),\n\t\t\t\tgroupingValue: getValue(item.GroupingValue),\n\t\t\t\tsecondaryGroupingKey: getValue(item.SecondaryGroupingKey),\n\t\t\t\tsecondaryGroupingValue: getValue(item.SecondaryGroupingValue),\n\t\t\t}\n\n\t\t\t// Aggregate or update existing line item if key already exists\n\t\t\tif existing, exists := aggregated[key]; exists {\n\t\t\t\tif existing.UnitAmount != nil && item.UnitAmount != nil {\n\t\t\t\t\texistingUnitAmount := float64(existing.UnitAmount.Units) + float64(existing.UnitAmount.Nanos)/1e9\n\t\t\t\t\titemUnitAmount := float64(item.UnitAmount.Units) + float64(item.UnitAmount.Nanos)/1e9\n\n\t\t\t\t\tif existingUnitAmount != itemUnitAmount || existing.UnitAmount.CurrencyCode != item.UnitAmount.CurrencyCode {\n\t\t\t\t\t\tlog.Ctx(ctx).Warn().\n\t\t\t\t\t\t\tStr(\"category\", getValue(item.Category)).\n\t\t\t\t\t\t\tStr(\"grouping_value\", getValue(item.GroupingValue)).\n\t\t\t\t\t\t\tMsg(\"billing summary: unit_amount/currency varied; clearing unit amount\")\n\t\t\t\t\t\texisting.UnitAmount = nil\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\texisting.Quantity += item.Quantity\n\t\t\t\texisting.TotalCost = addMoney(existing.TotalCost, item.TotalCost)\n\t\t\t} else {\n\t\t\t\t// Add new line item (deep copy to avoid reference issues)\n\t\t\t\tnewItem := &gpb.LineItem{\n\t\t\t\t\tCategory: item.Category,\n\t\t\t\t\tGroupingKey: item.GroupingKey,\n\t\t\t\t\tGroupingValue: item.GroupingValue,\n\t\t\t\t\tSecondaryGroupingKey: item.SecondaryGroupingKey,\n\t\t\t\t\tSecondaryGroupingValue: item.SecondaryGroupingValue,\n\t\t\t\t\tQuantity: item.Quantity,\n\t\t\t\t\tTotalCost: &money.Money{\n\t\t\t\t\t\tCurrencyCode: item.TotalCost.CurrencyCode,\n\t\t\t\t\t\tUnits: item.TotalCost.Units,\n\t\t\t\t\t\tNanos: item.TotalCost.Nanos,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t\t// Copy unit amount if present\n\t\t\t\tif item.UnitAmount != nil {\n\t\t\t\t\tnewItem.UnitAmount = &money.Money{\n\t\t\t\t\t\tCurrencyCode: item.UnitAmount.CurrencyCode,\n\t\t\t\t\t\tUnits: item.UnitAmount.Units,\n\t\t\t\t\t\tNanos: item.UnitAmount.Nanos,\n\t\t\t\t\t}\n\t"} +{"text": "After gladly surrendering their first-round pick in Sunday’s trade for All-Pro CB Darrelle Revis, the Bucs were left with a draft hand that began with the #43 overall pick in Round Two and the #73 overall selection in Round Three. As it turned out, they decided against trying to trade up or down and stayed put at those two very selections, eventually nabbing Mississippi State CB Johnthan Banks in the second frame and North Carolina State QB Mike Glennon in the third.\nOn one hand, those picks weren’t shocking. In his pre-draft press conference on Monday, Buccaneers G.M. Mark Dominik had been asked directly and pointedly about those two positions, reflecting a widespread belief that the team was looking for depth in the secondary and under center. The Bucs may have had a variety of options in mind, but the directions they ended up going in surprised few.\nOn the other hand, the selections of Banks and Glennon were rare in terms of the team’s drafting history. Rare, but promising.\nOver the course of 37 previous drafts, Tampa Bay had only elected to use a second-round pick on a cornerback twice. While that position has often been adequately filled by mid-round picks and free agent acquisitions, the only two previous second-round corners were Ricky Reynolds in 1987 and Brian Kelly in 1998. That’s good company for Banks, as Reynolds and Kelly are among the most productive players in team history at that position.\nReynolds stepped immediately into a starting role as a rookie in 1987 and played seven seasons as a Buccaneer, never giving up his starting job. He is tied for ninth in franchise history with 17 interceptions. Kelly started out as a nickel back but eventually became a key starter on the dominant Buc defense in the late ‘90s and early ‘00s. He was a starter and the team’s leading interceptor on the 2002 Super Bowl team and his 22 picks rank seventh in Buc annals.\nGlennon is only the second quarterback the Buccaneers have ever selected in the third round, but the rarity of his draft position is actually more significant than that. It has simply been extremely uncommon for Tampa Bay to take a signal-caller anywhere in the middle rounds. There have been five first rounders, including the USFL dispersal draft (Doug Williams, Steve Young, Vinny Testaverde, Trent Dilfer and Josh Freeman) and plenty of late-round fliers, from Parnell Dickinson to Mike Shula to Bruce Gradkowski. But in 37 years of picking passers, the Bucs have only used a second, third or fourth-round choice on that position on three previous occasions.\nThose three: Craig Erickson in 1992, Shaun King in 1999 and Chris Simms in 2003.\nNo, that is not a list of the greatest quarterbacks in franchise history. However, neither is it a discouraging bunch, overall. Erickson came to Sam Wyche’s first Buc team under unusual circumstances, having actually been drafted by Philly out of the University of Miami in 1991. He was recovering from a knee injury at the time and he never reached agreement with the Eagles, so he was back in the draft for the Buccaneers in ’92. That was at the tail end of the Vinny Testaverde era, so Erickson got to start for most of two season (1993-94) before new first-rounder Trent Dilfer took ever. The Bucs weren’t particularly good at that time, but Erickson did throw for over 6,000 yards and toss 34 TDs to 31 INTs.\nKing, a second-round pick in ’99, got an unexpected opportunity to start at the tail end of his rookie year after a red-hot (at the time) Dilfer got hurt in early December. King played well enough to help the Bucs, with their amazing defense, make it all the way to within a few minutes of the Super Bowl before they fell in St. Louis in the NFC Championship Game. King started in 2000 but was underwhelming and the team brought in free agent Brad Johnson to take over as the starter. King was a reserve on the 2002 Super Bowl team.\nSimms was the last pick of the third round in 2003, months after the Bucs won the Super Bowl. He eventually took over for Johnson and had some good moments in 2005 and 2006 but saw his tenure in Tampa essentially ended by an unusual spleen injury. All told, the Bucs three mid-round QB selections threw 72 TD passes against 68 interceptions and started 65 regular-season games. None turned into a long-term franchise starter like Freeman, but it is easy to see how those picks were useful, with the chance to be something more."} +{"text": "The study of the ancient Maya is relatively new compared to that of ancient Greece, Rome and Egypt. Our understanding of the Maya before the arrival of the Spanish may never reach the same level as we have for Old World cultures. However, major discoveries, utilizing new technologies paired with backbreaking archaeological work in steamy jungles and on freezing mountain peaks, continue to be made. That aspect, as well as the fact that Precolumbian cultures in general charted their own path, independent from the Old World, makes this such an interesting area to study.\nArchaeologists drew on their knowledge of Classical archaeology when they started studying Precolumbian cultures. For example, they borrowed from Classic Old World archaeology by dividing Precolumbian history into three parts: the Preclassic, Classic and Postclassic. The underlying assumption here was that everything started out small and then grew into a more complex web of city states trading and fighting each other, only to succumb to the onslaught of the invading Europeans.\nHumble beginnings, triumphant zenith and ultimate collapse. Simple enough, right? Not quite.\n|photo credit: malias|\nThere are major differences between Old and New World archaeology. Most known Preclassic Maya sites were small, with the beginnings of public architecture that would make later Maya sites so popular among tourists today. One site, however, left its humble beginning behind very quickly and grew into a huge city centuries before other Maya cities ever did. That site was El Mirador.\nLocated in the northern part of the Department in El Petén, Guatemala, El Mirador was first noted by archaeologists during pioneering mapping efforts in 1893. During the 1920s, the Carnegie Institutionwent from Campeche to Tikal and reported on their travels through the Mirador Basin. Subsequent aerial reconnaissance conducted in 1930 yielded the first photographs of these pyramids and the raised roads connecting them. In the 1960s, Ian Graham mapped the sitefollowed by additional mapping efforts in the 1970s and 1980s. One archaeologist who has spent most of his career working at El Mirador is Dr. Richard Hansen. Over the years, this project has seen tremendous growth, encompassing archaeology, biology, as well as community development.\n|photo credit: auntjojo|\nEl Mirador can best be described with superlatives. Two of its platform-pyramid complexes are among the largest by volume in the world. Known as La Danta (or tapir) and El Tigre, these pyramids are 72 and 55 meters tall respectively. These magnificent buildings were part of a Preclassic community which some estimate may have had 100,000 inhabitants, perhaps even more. It is considered larger than the much better known Maya site of Tikal. El Mirador may have been 38 sq. km in size. What makes this development even more interesting is the location: no major rivers in the vicinity, and as far away from the sea as one can get in Guatemala.\nIn is against this backdrop that archaeologists found evidence of a pitched battle fought on the top of El Tigre pyramid. Bone fragments were found together with hundreds of spear tips and arrow heads. Many of these projectile points were made from obsidian, or volcanic glass, which was traced back to a source in the Central Mexican highlands. Currently additional research is underway to help identify the two combatant parties.\nIt is tempting to see this event as part of a power struggle that played out during the early centuries of our era. We know that Teotihuacan, located in the Basin of Mexico, was meddling in Maya affairs during the fourth century AD. We know that central Mexican art forms, architectural canons and perhaps people were present at Maya sites such as Tikal, Copan and Piedras Negras. We do not really know what happened and why the city of Teotihuacan had extended its influence that far into Central America.\nWhat remains equally enigmatic is why there would have been a battle. Is this an example of inter-site warfare? Was Tikal keen on disposing of a major competitor? Given the known chronology of Teotihuacan’s involvement in the Maya cities just mentioned, the suggested date of El Mirador’s demise, at 150 AD, may be a few centuries too early to make this a workable hypothesis.\nThis is just the beginning of this story. The last word on this topic has not been written yet. In the meantime, it is fascinating to get a glimpse into a single event – that of a violent conflict – fought at the top of a Maya pyramid now almost 2000 years ago. Apocalyptic indeed.\nI would like to add one final point: the site of El Mirador and its architecture served as a source of inspiration for the Maya city portrayed in the 2006 Mel Gibson movie, Apocalypto. Dr. Hansen served as one of the movie’s advisors."} +{"text": "\t\t\t}\n\t\t\t\taggregated[key] = newItem\n\t\t\t}\n\t\t}\n\t}\n\n\t// Convert map to slice\n\tresult := make([]*gpb.LineItem, 0, len(aggregated))\n\tfor _, item := range aggregated {\n\t\tresult = append(result, item)\n\t}\n\n\t// Sort by category, then grouping value, then secondary grouping value\n\tsort.Slice(result, func(i, j int) bool {\n\t\tif getValue(result[i].Category) != getValue(result[j].Category) {\n\t\t\treturn getValue(result[i].Category) < getValue(result[j].Category)\n\t\t}\n\t\tif getValue(result[i].GroupingValue) != getValue(result[j].GroupingValue) {\n\t\t\treturn getValue(result[i].GroupingValue) < getValue(result[j].GroupingValue)\n\t\t}\n\t\treturn getValue(result[i].SecondaryGroupingValue) < getValue(result[j].SecondaryGroupingValue)\n\t})\n\n\treturn result\n}\n\n// buildUsageBuckets returns one bucket of line items per day.\nfunc (s *Server) buildUsageBuckets(data []OrbCostData) ([]*gpb.UsageBucket, error) {\n\tusageBuckets := make([]*gpb.UsageBucket, 0, len(data))\n\tfor _, dataPoint := range data {\n\t\tlineItems, err := s.formatLineItems(&dataPoint)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tusageBuckets = append(usageBuckets, &gpb.UsageBucket{\n\t\t\tStartTime: timestamppb.New(dataPoint.TimeframeStart),\n\t\t\tEndTime: timestamppb.New(dataPoint.TimeframeEnd),\n\t\t\tLineItems: lineItems,\n\t\t})\n\t}\n\treturn usageBuckets, nil\n}\n\n// formatLineItems converts Orb API response to flattened line items for a single day\nfunc (s *Server) formatLineItems(data *OrbCostData) ([]*gpb.LineItem, error) {\n\tvar allLineItems []*gpb.LineItem\n\n\t// Process per-price costs\n\tfor _, priceCost := range data.PerPriceCosts {\n\t\tcategoryName := priceCost.Price.Name\n\n\t\t// Get currency from Orb response\n\t\tcurrency := priceCost.Price.Currency\n\n\t\t// Get unit amounts from matrix config if available\n\t\t// Key is \"dimension_value_0|dimension_value_1\"\n\t\tunitAmounts := make(map[string]string) // Store as strings to avoid float precision issues\n\t\tif priceCost.Price.MatrixConfig != nil {\n\t\t\tfor _, mv := range priceCost.Price.MatrixConfig.MatrixValues {\n\t\t\t\tif len(mv.DimensionValues) >= 2 {\n\t\t\t\t\tkey := mv.DimensionValues[0] + \"|\" + mv.DimensionValues[1]\n\t\t\t\t\tunitAmounts[key] = mv.UnitAmount\n\t\t\t\t} else if len(mv.DimensionValues) == 1 {\n\t\t\t\t\tkey := mv.DimensionValues[0] + \"|\"\n\t\t\t\t\tunitAmounts[key] = mv.UnitAmount\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Process price groups (line items)\n\t\tvar categoryLineItems []*gpb.LineItem\n\t\tfor _, group := range priceCost.PriceGroups {\n\t\t\tquantity := group.Quantity\n\n\t\t\t// Skip items with no quantity\n\t\t\tif quantity <= 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Parse total cost directly to Money\n\t\t\ttotalCost, err := parseStringToMoney(group.Total, currency)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"failed to parse total cost for group %s: %w\", group.GroupingValue, err)\n\t\t\t}\n\n\t\t\t// Get unit amount from matrix config if available\n\t\t\tvar unitAmount *money.Money\n\t\t\tkey := group.GroupingValue + \"|\" + group.SecondaryGroupingValue\n\t\t\tif unitAmountStr, exists := unitAmounts[key]; exists {\n\t\t\t\tunitAmount, err = parseStringToMoney(unitAmountStr, currency)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"failed to parse unit amount for group %s: %w\", group.GroupingValue, err)\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If unit amount not in matrix config, leave it nil\n\n\t\t\tlineItem := &gpb.LineItem{\n\t\t\t\tCategory: stringPtr(categoryName),\n\t\t\t\tGroupingKey: stringPtr(group.GroupingKey),\n\t\t\t\tGroupingValue: stringPtr(group.GroupingValue),\n\t\t\t\tSecondaryGroupingKey: stringPtr(group.SecondaryGroupingKey),\n\t\t\t\tSecondaryGroupingValue: stringPtr(group.SecondaryGroupingValue),\n\t\t\t\tQuantity: quantity,\n\t\t\t\tUnitAmount: unitAmount,\n\t\t\t\tTotalCost: totalCost,\n\t\t\t}\n\t\t\tcategoryLineItems = append(categoryLineItems, lineItem)\n\t\t}\n\n\t\t// Handle edge case: no price groups but category has quantity/total\n\t\tif len(categoryLineItems) == 0 && len(priceCost.PriceGroups) == 0 && priceCost.Total != \"\" && priceCost.Total != \"0\" && priceCost.Quantity > 0 {\n\t\t\t// Parse category total\n\t\t\ttotalCost, err := parseStringToMoney(priceCost.Total, currency)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"failed to parse category total: %w\", err)\n\t\t\t}\n\n\t\t\t// Get unit amount from unit config if available\n\t\t\tvar unitAmount *money.Money\n\t\t\tif priceCost.Price.UnitConfig != nil && priceCost.Price.UnitConfig.UnitAmount != \"\" {\n\t\t\t\tunitAmount, err = parseStringToMoney(priceCost.Price.UnitConfig.UnitAmount, currency)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"failed to parse unit config amount: %w\", err)\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If unit amount not in unit config, leave it nil\n\n\t\t\tlineItem := &gpb.LineItem{\n\t\t\t\tCategory: stringPtr(categoryName),\n\t\t\t\tGroupingKey: nil,\n\t\t\t\tGroupingValue: nil,\n\t\t\t\tSecondaryGroupingKey: nil,\n\t\t\t\tSecondaryGroupingValue: nil,\n\t\t\t\tQuantity: priceCost.Quantity,\n\t\t\t\tUnitAmount: unitAmount,\n\t\t\t\tTotalCost: totalCost,\n\t\t\t}\n\t\t\tcategoryLineItems = append(categoryLineItems, lineItem)\n\t\t}\n\n\t\t// Add all line items from this ca"} +{"text": "In late May, 1,041 former obstetrics patients of 28 medical facilities submitted a plea to the National Consumer Affairs Center (NCAC) to arbitrate a settlement with the Japan Council for Quality Health Care (JCQHC) that would partially refund money they had paid during their pregnancies for insurance purposes. The JCQHC is a foundation that carries out third-party evaluations of hospitals and clinics, but it also oversees a special compensation system enacted by the government in 2009 to protect obstetricians from career-threatening malpractice suits.\nThe system allows for a form of insurance that all obstetrics patients, meaning pregnant women, pay into. If a fetus or baby suffers brain damage before or during delivery, the insurance pays up to ¥30 million in damages over the next 20 years to the child and his or her parents. This no-fault insurance system was put in place because fewer medical students were opting to become obstetricians, partially because the dwindling birthrate has made obstetrics less profitable, but mainly because malpractice awards in the cases of babies born with disabilities have been extremely high. It was just too financially risky to go into the field.\nPink is the color of the obstetrics department\nUnless a pregnancy threatens the well-being of the mother, childbirth is not covered by national health insurance. Though in theory the obstetrics insurance is optional, if a pregnant woman patronizes a medical facility that pays into the insurance system (meaning 99.8 percent of them) they automatically charge her the ¥30,000 premium and incorporate it into her bill. What complicates the matter is the so-called “public aspect” of the system, according to a recent article in Aera magazine.\nTo encourage women to have babies, local governments compensate them for the money they spent on childbirth after the fact with something called shussan ikuji ichijikin (one-time payment for childbirth), a handout administered by the National Health Insurance Union (NHIU) of up to ¥420,000 per birth, regardless of how much money the patient spent.\nThis amount includes the ¥30,000 premium that the woman paid for the obstetrics insurance, so in effect the public is paying for the insurance since the NHIU uses taxpayer money as well as national health insurance funds for payments. In that regard, Aera has characterized the JCQHC as an amakudari institution; in other words, a bureaucratic entity whose main purpose is to justify its own existence.\nSince the insurance system was launched in 2009, it has paid out about ¥4.1 billion in compensation for damages suffered during childbirth. At the end of the last fiscal year there was still about ¥80 billion in the reserve pool of funds and it is estimated the pool, which is controlled by the five insurance companies, will increase to ¥100 billion by the end of the present fiscal year.\nAccording to Aera, the JCQHC originally estimated that between 500 and 800 babies would suffer brain damage every year out of the country’s 1.2 million births, but real statistics for fiscal 2012 show that only about 200 babies suffered such damage. The mothers who requested arbitration from the NCAC are claiming they overpaid for the insurance and are demanding ¥20,000 each in refunds from the JCQHC. If they win, the organization will have to pay a total of ¥20.8 million. As Aera notes, more than 50 million women have paid this premium since 2009, though, strictly speaking, it is the public who has paid the premiums.\nOne obstetrician interviewed by Aera says that the reason all medical institutions sign up for the insurance is that part of the law mandates that any medical facility which applies for “high-priced medical care” compensation to the NHIU cannot be approved if it doesn’t pay into the obstetrics compensation insurance plan. Otherwise, the facility can only receive maximum compensation of ¥400,000 for each delivery, regardless of what it cost the facility. That’s too risky for smaller clinics.\nThe main beneficiaries of the system are the private insurance companies that participate. The premiums are practically free money since the companies are allowed to collect and administer the funds. Also, brain damage resulting in cerebral palsy is difficult to diagnose in an infant, and there is a five-year time limit for insurance claims.\nIn many cases, developmental disorders arising from brain damage don’t manifest themselves until the child is older and the time limit has passed. However, the insurance companies are also using this aspect to explain why they need such a huge pool of money.\nOf children born in 2009 who were eventually found to suffer from cerebral palsy due to brain damage, 12 were discovered in 2009, 100 in 2010 and 158 in 2011. Diagnoses are thus progressive, so the insurance companies say they need this huge surplus to meet future claims. But there has already been discussion in the Diet that the funds should be administered by a government body so as to relieve some of the public burden associated with medical care.\nIn any event, as some pediatricians have noted, ¥30 million over 20 years is insufficient to take care of most people who suffer from cerebral palsy. They tend to require 24-hour care the older they get. As one mother who is part of the arbitration claim told Aera, a system for compensating brain damage victims directly would be cheaper, more efficient and more humane than the obstetrics compensation insurance, which benefits administrators more than doctors or patients."} +{"text": "Sen. Barack Obama finished his two-day swing through Oregon this afternoon, talking to a crowd of about 2,000 people at Summit High School in Bend, then heading for Chicago.\nObama, who made stops in Beaverton, Woodburn, Albany and Eugene on Friday, arrived at Summit before noon and was introduced by Myrlie Evers-Williams, the widow of slain civil rights leader Medgar Evers. She lives nearby, and was the first woman to lead the NAACP. He then spoke to the crowd until about 12:35 p.m., before taking questions.\nBefore arriving at the high school, the candidate said he thought it was a great idea to travel across the country this summer with Sen. John McCain of Arizona, the presumptive Republican nominee, for a series of town hall debates.\nAfter he finished at the high school, he did interviews with the Bend Bulletin and two local television stations and then left for the Redmond airport where boarded his chartered plane back to Chicago.\nEarlier, the Illinois senator apologized for complicating prom plans for Summit High School in Bend and thanked supporters for turning out. \"Oregonians, it's your turn,\" he said. \"It's your turn to stand up and say it's time for change.\"\nObama was delayed because of an unscheduled stop at PVPowered, a solar energy company in Bend, Saturday morning.\nSen. Hillary Clinton had launched the Oregon offensive by the two candidates with a visit to Central Point Thursday night and finished her visit with a stop in Portland on Friday.\nObama began Friday with a tour of an educational technology company in Beaverton, then ended the day with a hurdle-hopping stop at Hayward Field and a rally before 8,000 on the University of Oregon campus.\nThe focus on Oregon, however, doesn't end today. President Bill Clinton returns to the state on Sunday to campaign for his wife, and voting in the state doesn't end until May 20.\nObama, bolstered by growing support from the superdelegates, focused his comments on Sen. John McCain, the presumptive Republican candidate, as he sought to make his nomination look all but inevitable.\nClinton, who toured Doernbecher Children's Hospital, once again pronounced Obama's health-care plan as inadequate and said she would compete hard in Oregon's May 20 primary.\nWhile their simultaneous presence in Oregon demonstrated how their extraordinary primary battle seems destined to continue toward the end of the primary calendar, many of the key developments in the Democratic contest took place outside the state.\nObama picked up another nine superdelegates -- including Rep. Peter DeFazio, D-Ore. -- and the support of a 600,000-member union of federal employees as it became clear that the party was beginning to close ranks behind him. Meanwhile, top Clinton aides told reporters in Washington, D.C. that she still has a long-shot path to the nomination.\nObama, in an interview with The Oregonian, dismissed Clinton's repeated challenges to debate him in Oregon - or anywhere else in the country.\n\"One of the things that is important from my perspective is not to feed the sense that Democrats are just banging against each other all the time,\" he said, adding that it was time to \"stay focused on the huge differences\" between the two parties.\nObama's morning visit to Vernier Software & Technology was designed to attract national media coverage before he went to an afternoon town hall meeting in Albany and the rally in Eugene.\nIn her efforts to sway voters, Clinton has tailored her message to issues she hopes resonate with rural Oregonians, specifically the economy, forest health and an expired federal timber payment program that once funneled $23 million a year to Jackson County programs.\nAt Doernbecher, she emphasized that her health care plan will cover all uninsured children. As she was heading out of town, her campaign was preparing to announce that her husband will be campaigning in Oregon on Sunday. The former president will visit Pendleton, Baker City and Redmond.\nObama ended his day of Oregon campaigning in Eugene, first with a surprise visit to Hayward Field, where he drew a standing ovation from fans attending The Oregon Twilight. He then spoke to the estimated 8,000 gathered on the Memorial Quadrangle. As Obama began, he noted that he had been introduced by the men's basketball coaches at Oregon and Oregon State at different speaking engagements.\n\"That's a sign of being able to bring anybody together in this country.\"\nObama and Clinton are competing for Oregon's 65 delegates and superdelegates. Obama has led polls in the state, one of five plus a territory that has yet to vote. McCain, the presumptive Republican nominee, will be in Portland on Monday.\n-- Jeff Mapes; firstname.lastname@example.org"} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/account_watcher/identity_provider.go. Lines: 931.\n\npackage accountwatcher\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/aws/aws-sdk-go-v2/aws\"\n\t\"github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider\"\n\t\"github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider/types\"\n\tcognitotypes \"github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider/types\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/database\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/fwerror\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\t\"github.com/fw-ai/fireworks/go/maputil\"\n\tresourcename \"github.com/fw-ai/fireworks/go/resource_name\"\n\t\"github.com/fw-ai/fireworks/go/sliceutil\"\n\t\"github.com/rs/zerolog/log\"\n)\n\n// reconcileIdentityProviderAndStatus reconciles the identity provider and its status.\nfunc (w *AccountWatcher) reconcileIdentityProviderAndStatus(ctx context.Context, accountID, identityProviderID string) {\n\tl := log.Ctx(ctx).With().\n\t\tStr(\"account_id\", accountID).\n\t\tStr(\"identity_provider_id\", identityProviderID).\n\t\tLogger()\n\tctx = l.WithContext(ctx)\n\tl.Info().Msg(\"Reconciling identity provider\")\n\n\tvar dba database.Account\n\terr := dba.Populate(w.db, resourcename.NewAccountName(accountID))\n\tif err != nil {\n\t\tl.Error().Err(err).Msg(\"Error getting account from database\")\n\t\treturn\n\t}\n\n\tvar idp database.IdentityProvider\n\tipn := resourcename.NewIdentityProviderName(accountID, identityProviderID)\n\terr = idp.Populate(w.db, ipn)\n\tif err != nil {\n\t\tl.Error().Err(err).Msg(\"Error getting identity provider from database\")\n\t\treturn\n\t}\n\toldState := idp.State\n\n\tnewState, err := w.reconcileIdentityProvider(ctx, &dba, &idp)\n\tif newState == 0 {\n\t\tnewState = idp.State\n\t}\n\n\tif newState == gpb.IdentityProvider_DELETING && err == nil {\n\t\tl.Info().Msg(\"Deleting identity provider from database\")\n\t\tresult := w.db.Delete(&idp)\n\t\tif result.Error != nil {\n\t\t\tl.Error().Err(result.Error).Msg(\"Error deleting identity provider from database\")\n\t\t\treturn\n\t\t}\n\t\tw.reconcilers.Delete(identityProviderReconcilerID(accountID, identityProviderID))\n\t\treturn\n\t}\n\n\tstatus := fwerror.LogAndGetStatus(err)\n\tshouldUpdateDB := newState != idp.State ||\n\t\tgpb.Code(status.Code()) != idp.Status.Code ||\n\t\tstatus.Message() != idp.Status.Message\n\n\tif shouldUpdateDB {\n\t\tl.Info().Str(\"state\", newState.String()).Msg(\"Writing identity provider status to database\")\n\t\tresult := w.db.Model(&idp).Updates(map[string]interface{}{\n\t\t\t\"State\": newState,\n\t\t\t\"Status_Code\": gpb.Code(status.Code()),\n\t\t\t\"Status_Message\": status.Message(),\n\t\t})\n\t\tif result.Error != nil {\n\t\t\tl.Error().Err(result.Error).Msg(\"Error writing identity provider status to database\")\n\t\t\treturn\n\t\t}\n\t} else {\n\t\tl.Info().Msg(\"Skipping writing identity provider status to database since no diff\")\n\t}\n\tif newState != oldState {\n\t\tl.Info().\n\t\t\tStr(\"control_plane_audit_log\", \"true\").\n\t\t\tStr(\"source\", \"account_watcher\").\n\t\t\tStr(\"resource\", ipn.String()).\n\t\t\tMsgf(\"State transitioned from %s to %s\", oldState.String(), newState.String())\n\t}\n}\n\n// reconcileIdentityProvider ensures that identity providers are properly configured for accounts that have them.\nfunc (w *AccountWatcher) reconcileIdentityProvider(ctx context.Context, dba *database.Account, idp *database.IdentityProvider) (gpb.IdentityProvider_State, error) {\n\tl := *log.Ctx(ctx)\n\tl.Info().Str(\"state\", idp.State.String()).Msg(\"Current identity provider state\")\n\n\tswitch idp.State {\n\tcase gpb.IdentityProvider_CREATING, gpb.IdentityProvider_UPDATING, gpb.IdentityProvider_READY:\n\t\terr := w.reconcileIdentityProviderResources(ctx, dba, idp)\n\t\tif err != nil {\n\t\t\treturn 0, fwerror.WrapL(l, \"error reconciling identity provider AWS resources: %w\", err)\n\t\t}\n\t\treturn gpb.IdentityProvider_READY, nil\n\n\tcase gpb.IdentityProvider_DELETING:\n\t\terr := w.deleteUserPoolIdentityProvider(ctx, dba.AccountId, idp.IdentityProviderId)\n\t\tif err != nil {\n\t\t\treturn 0, fwerror.WrapL(l, \"error deleting identity provider AWS resources: %w\", err)\n\t\t}\n\t\treturn gpb.IdentityProvider_DELETING, nil\n\n\tdefault:\n\t\treturn 0, fwerror.WrapL(l, \"unknown identity provider state: %v\", idp.State)\n\t}\n}\n\n// reconcileIdentityProviderResources ensures that identity providers are properly configured for accounts that have them.\nfunc (w *AccountWatcher) reconcileIdentityProviderResources(ctx context.Context, account *database.Account, idp *database.IdentityProvider) error {\n\tl := *log.Ctx(ctx)\n\n\tuserPoolName := account.AccountId\n\ttenantDomains := idp.TenantDomains\n\n\t// Reconcile user pool\n\tuserPoolId, err := w.reconcileUserPool(ctx, account, userPoolName, tenantDomains)\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error reconciling user pool: %w\", err)\n\t}\n\n\t// Reconcile identity provider\n\terr = w.reconcileIdentityProviderInstance(ctx, userPoolId, idp)\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error reconciling identity provider: %w\", err)\n\t}\n\n\t// Reconcile user pool client"} +{"text": "NEW YORK — Mark Teixeira held his knee and writhed in pain near home plate, thinking the worst after being hit by a pitch from Jon Lester.\nA couple of hours later, he was hoping to play Wednesday.\nTeixeira was hit on the side of his knee by Lester’s pitch in the first inning of New York’s 6-4 loss to the Boston Red Sox on Tuesday night, the Yankees’ sixth defeat in seven games against their AL East rivals this season.\n“I’ve never seen him show that much pain before,” manager Joe Girardi said. “He’s tough. You know, he’s played with a broken toe, he’s played with a lot of ailments, but he was in a lot of pain, and it was scary.”\nTeixeira was worried he had a broken kneecap.\n“That’s the first thing you think about,” he said.\nX-rays were negative and Teixeira was diagnosed with a bone bruise. He will be re-evaluated Wednesday, but a relieved Girardi said the team’s leading home run hitter will likely only miss a day or two.\n“In my mind, I’m going to try to play. I’m going to get a lot of treatment, get it moving and hopefully, a good night’s rest will keep the pain down,” Teixeira said.\nDerek Jeter had two hits to move within 12 of 3,000. He entered the 10-game homestand with 2,986 and said the most pressure he feels in his march toward the milestone is reaching the mark at Yankee Stadium.\nDavid Ortiz hit a two-run homer and Jonathan Papelbon labored through the ninth inning to earn his 200th save for Boston. Jacoby Ellsbury led off the game with a home run and Adrian Gonzalez hit an RBI triple as the Red Sox roughed up Freddy Garcia (4-5) early to move within two percentage points of the first-place Yankees in the AL East.\nJorge Posada, on the bench with the left-handed Lester on the mound, ran for Teixeira and stayed in at first base.\nPosada, who pulled himself out of the lineup after he was dropped to ninth in the order the last time the Red Sox were in town, later got his first two hits of the season against a lefty. He snapped an 0-for-27 skid from the right side with a single in the third inning.\n“Jorge was great; three hits tonight and he did a great job filling in there,” Teixeira said. “Hopefully, he can keep it going.”\nWorking on seven days’ rest, Lester (8-2) gave up three runs and eight hits — seven singles — in six innings.\nPapelbon, pitching while he appeals a three-game suspension for making contact with an umpire Saturday, gave up an RBI single to Posada but struck out Alex Rodriguez with a runner on second for his 12th save. He reached 200 saves in 359 appearances, fewest in baseball history. Mariano Rivera is next at 382 games.\n“I’ve always called him the godfather,” Papelbon said of Rivera. “He’s the godfather of this role. He’s made this role what it is today.”\nRed Sox reliever Bobby Jenks left in the seventh after throwing just four pitches because of tightness in his back. Jenks said it was a flare-up of an injury he had early in his career and that he was fine after coming out of the game.\nJenks will have an MRI on Wednesday and probably be out a game or two.\nEllsbury hit the fourth leadoff homer of his career, and the Red Sox chased Garcia soon after.\nGarcia had gone at least five innings in each of his nine starts this season, but was knocked out after just 1 2-3 innings, giving up four runs.\nAfter Ellsbury connected, Dustin Pedroia walked, Gonzalez tripled and Kevin Youkilis hit a sacrifice fly.\nPedroia had an RBI double in the second to make it 4-1. Garcia intentionally walked Gonzalez to load the bases, ending his night.\n“I’m disappointed. I couldn’t throw my slider, and that’s what happens,” Garcia said. “I’ve got to throw strikes, and I really didn’t have any chance to make adjustments.”\nThe Yankees scored in the bottom of the first, taking advantage of Lester’s early wildness. The left-hander plunked Teixeira and, three batters later, Russell Martin.\n“It’s tough to hit a guy like that and see him kind of go off the field not feeling too good,” Lester said. “Too be able to get back up on the mound and throw strikes was key.”\nRobinson Cano drove in Curtis Granderson, who walked to pull New York to 3-1.\nOrtiz irked Girardi with his showy bat flip after hitting a two-run homer off Hector Noesi in the fifth to make it 6-1.\nGirardi was concerned that Oritz would offend the 24-year-old rookie reliever.\n“Yeah, I didn’t really care for it,” Girardi said. “I’ve never had a problem with David Ortiz. He’s been a clutch player for a long time. My reaction’s probably more protecting our young kid. And that’s what I’m going to do.”\nOrtiz dismissed any ill-intent on the flip.\n“That’s Papi style,” he said.\nNick Swisher had a two-run double in the fifth.\nNOTES: RHP Phil Hughes (shoulder inflammation) threw off a mound at the Yankees’ complex in Tampa, Fla., and is expected to throw a simulated game Thursday. ... Jeter introduced the DJ3K bracelet marking his pursuit of 3,000 hits. Proceeds from the sale of the silicone bracelets will benefit his Turn 2 Foundation."} +{"text": "This report is from Sporting News writer David Whitley.\nThis might not go over well in Korea or editorial boards around America, but can we lay off Penn State for a minute?\nPlease folks, take a deep breath before somebody calls for the entire school to be bulldozed. We’re all disgusted by the sexual-abuse scandal, but the torches and pitchforks are getting out of control.\nMajor newspapers, websites want the season cancelled. Joe Scarborough, normally a voice of reason, called for the football program to be shut down for a year on his MSNBC show.\nThe Korea Times has even weighed in, saying the NCAA should immediately hit Penn State with the death penalty. It somehow resisted the temptation to call Joe Paterno the Kim Jong-il of college football.\nThe main thing all that would accomplish is punishing a whole lot of innocent people. Which brings up the obvious qualifier:\nThe agonies of Jerry Sandusky’s alleged victims far outweigh whatever is inflicted on players, fans and alumni. But that 99 percent has been caught in a hell created by far less than 1 percent of Penn State people.\nThe school has become an international symbol for shame. A degree is suddenly a ticket for ridicule.\nPeople whose hearts belonged to Penn State two weeks ago are suddenly ashamed to be associated with it. Cheering for their team is now seen as cheering child molestation.\nPresidential candidate Rick Santorum is a Penn State graduate. He said fellow alumni and strangers have been engaging in “group therapy” since the scandal broke.\n“They just want to talk about it because they are so hurt by it,” he said while campaigning in Iowa. “It is so personal. You feel betrayed that something like this could happen.”\nThe initial outrage sparked a student riot. Now even the knuckleheads are attending candlelight vigils.\nSantorum says the Nittany Lions should bypass a bowl this year. That makes sense considering bowls are supposed to be celebrations, and nobody feels like celebrating. Bypassing next season is another matter.\nHigh-minded folks think it will send the proverbial right message. They see Paterno as a mere fall guy for a corrupt system. They say it’s too early to move on.\nThey should realize Penn State can’t move on. There are years of criminal and civil trials ahead. Every time Sandusky takes the stand it will remind people from San Jose to Seoul that Linebacker U. was allegedly Pedophile U.\nThe people who let it become that have already faced justice. Penn State’s Board of Trustees has fired the president and football coach.\nThe athletic director and overseer of campus police have been arrested. The grad assistant who supposedly walked away from a horrid shower scene is a national pariah. If there are other guilty parties, they will hopefully be held accountable.\nCritics think everybody at Penn State is accountable. By supporting the football team they supported the monster that allowed a Sandusky to roam free.\nThere’s no doubt officials wanted to protect the athletic program, but they reacted like most in child-molestation cases. They went into denial and damage control.\nWe’ve seen it thousands of times in churches and boardrooms. Not that I expect the critics to buy that excuse.\n“Clearly the PSU program is totally out of control and has been for well over a decade,” said an editorial on Diverse Issues in Higher Education website.\nActually, Penn State is one of four schools to never have a major NCAA violation. It won’t this time, either. The NCAA manual may be 10,000 pages thick, but nowhere in there is a rule against assistant football coaches showering with 10-year-old boys.\nThat’s because such things are patently obvious. The Sandusky cover-up didn’t spring from our football culture, it came from our culture.\nSlapping Penn Sate with the death penalty is not going to make the next pedophile think twice before taking a boy into the training room. It won’t make colleagues less likely to turn away.\nIt also won’t make the next Nevin Shapiro any less likely to throw a party for recruits on his yacht.\nWhat is the reformers’ plan to get things under control? Take money out of football? Pay players? Make them all have 1600 SAT scores?\nNone of that would have controlled a Sandusky.\nThen there is the matter of money. Penn State football generated $72.7 million last year, with a $53.2 million profit. In ivory towers, that is proof business had encroached on academic purity.\nIn the real world, that pays for baseball, track, lacrosse, swimming, gymnastics, hockey, tennis and women’s fencing.\nShould all those athletes go down the drain for a couple of years?\nWe rail at the injustice when the NCAA imposes sanctions on schools like USC. Reggie Bush and Pete Carroll are making NFL millions, while the innocent players left behind are penalized.\nIn this case, the (alleged) bad guys are not getting away. Yet we still want to hammer the innocent athletes left behind? We’re OK that everything Penn State has been irrevocably tainted?\nOnce more for emphasis:\nWhatever pain players, students and fans endure is nothing compared to what Sandusky allegedly inflicted. But all this righteous outrage is only producing more victims.\nThere have already been far too many of those at Penn State.\n-Story originally appeared on SportingNews.com."} +{"text": "\n\tclientId, err := w.reconcileUserPoolClient(ctx, userPoolId, userPoolName, idp, account)\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error reconciling user pool client: %w\", err)\n\t}\n\n\t// Reconcile user pool domain\n\tdomainPrefix, err := w.reconcileUserPoolDomain(ctx, userPoolId, account)\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error reconciling user pool domain: %w\", err)\n\t}\n\n\t// Update identity provider configuration\n\terr = idp.Populate(w.db, resourcename.NewIdentityProviderName(account.AccountId, idp.IdentityProviderId))\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"failed to get identity provider %s: %w\", idp.IdentityProviderId, err)\n\t}\n\n\tresult := w.db.Model(&idp).Updates(&database.IdentityProvider{\n\t\tDomainUrl: fmt.Sprintf(\"https://%s.auth.us-west-2.amazoncognito.com\", domainPrefix),\n\t\tIssuerUrl: fmt.Sprintf(\"https://cognito-idp.us-west-2.amazonaws.com/%s\", userPoolId),\n\t\tClientId: clientId,\n\t})\n\tif result.Error != nil {\n\t\treturn fwerror.WrapL(l, \"failed to update identity provider cognito resources: %w\", result.Error)\n\t}\n\n\treturn nil\n}\n\n// reconcileUserPool ensures the user pool exists and is properly configured.\nfunc (w *AccountWatcher) reconcileUserPool(ctx context.Context, account *database.Account, userPoolName string, tenantDomains []string) (string, error) {\n\tl := *log.Ctx(ctx)\n\n\texistingUserPoolId, err := w.GetUserPoolByAccountID(ctx, account.AccountId)\n\tif err != nil {\n\t\treturn \"\", fwerror.WrapL(l, \"error discovering user pool by account ID: %w\", err)\n\t}\n\n\tif existingUserPoolId != \"\" {\n\t\terr = w.reconcileUserPoolConfig(ctx, existingUserPoolId, account.AccountId, tenantDomains)\n\t\tif err != nil {\n\t\t\treturn \"\", fwerror.WrapL(l, \"error reconciling user pool configuration: %w\", err)\n\t\t}\n\t\treturn existingUserPoolId, nil\n\t}\n\n\tresult, err := w.awsClient.CognitoClient.CreateUserPool(ctx, &cognitoidentityprovider.CreateUserPoolInput{\n\t\tPoolName: &userPoolName,\n\t\tPolicies: &types.UserPoolPolicyType{\n\t\t\tPasswordPolicy: &types.PasswordPolicyType{\n\t\t\t\tMinimumLength: aws.Int32(8),\n\t\t\t\tRequireLowercase: true,\n\t\t\t\tRequireNumbers: true,\n\t\t\t\tRequireSymbols: true,\n\t\t\t\tRequireUppercase: true,\n\t\t\t},\n\t\t},\n\t\tAutoVerifiedAttributes: []types.VerifiedAttributeType{types.VerifiedAttributeTypeEmail},\n\t\tUsernameAttributes: []types.UsernameAttributeType{types.UsernameAttributeTypeEmail},\n\t\tAdminCreateUserConfig: &types.AdminCreateUserConfigType{\n\t\t\tAllowAdminCreateUserOnly: true,\n\t\t},\n\t\tAccountRecoverySetting: &types.AccountRecoverySettingType{\n\t\t\tRecoveryMechanisms: []types.RecoveryOptionType{\n\t\t\t\t{\n\t\t\t\t\tName: types.RecoveryOptionNameTypeAdminOnly,\n\t\t\t\t\tPriority: aws.Int32(1),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tUserPoolTags: map[string]string{\n\t\t\t\"Account-ID\": account.AccountId,\n\t\t\t\"Tenant-Domains\": strings.Join(tenantDomains, \" \"),\n\t\t},\n\t\tLambdaConfig: &types.LambdaConfigType{\n\t\t\tPreSignUp: aws.String(\"arn:aws:lambda:us-west-2:794651314743:function:FireworksSharedDomainValidation\"),\n\t\t\tPreTokenGeneration: aws.String(\"arn:aws:lambda:us-west-2:794651314743:function:FireworksSharedTokenGeneration\"),\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn \"\", fwerror.WrapL(l, \"failed to create UserPool via AWS SDK: %w\", err)\n\t}\n\tuserPoolId := *result.UserPool.Id\n\tl.Info().Str(\"user_pool_id\", userPoolId).Msg(\"Created new user pool\")\n\treturn userPoolId, nil\n}\n\n// reconcileIdentityProviderInstance ensures the identity provider exists and is properly configured.\nfunc (w *AccountWatcher) reconcileIdentityProviderInstance(ctx context.Context, userPoolId string, idp *database.IdentityProvider) error {\n\tl := *log.Ctx(ctx)\n\n\texistingProvider, err := w.GetIdentityProvider(ctx, userPoolId, idp.IdentityProviderId)\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error discovering identity provider: %w\", err)\n\t}\n\n\tif existingProvider != nil {\n\t\terr = w.reconcileIdentityProviderConfig(ctx, userPoolId, idp, existingProvider)\n\t\tif err != nil {\n\t\t\treturn fwerror.WrapL(l, \"error reconciling identity provider config: %w\", err)\n\t\t}\n\t\treturn nil\n\t}\n\n\terr = w.createUserPoolIdentityProvider(ctx, userPoolId, idp)\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"failed to create user pool identity provider: %w\", err)\n\t}\n\tl.Info().Str(\"provider_name\", idp.IdentityProviderId).Msg(\"Created new identity provider\")\n\treturn nil\n}\n\n// reconcileUserPoolClient ensures the user pool client exists and is properly configured.\nfunc (w *AccountWatcher) reconcileUserPoolClient(ctx context.Context, userPoolId, userPoolName string, idp *database.IdentityProvider, account *database.Account) (string, error) {\n\tl := *log.Ctx(ctx)\n\n\tclientName := fmt.Sprintf(\"%s-client\", userPoolName)\n\texistingClient, err := w.GetUserPoolClient(ctx, userPoolId, clientName)\n\tif err != nil {\n\t\treturn \"\", fwerror.WrapL(l, \"error discovering user pool client: %w\", err)\n\t}\n\n\tif existingClient != nil {\n\t\tclientId := *existingClient.ClientId\n\t\terr = w.reconcileUserPoolClientConfig(ctx, userPoolId, existingClient, userPoolName, []string{idp.IdentityProviderId}, account.AccountId)\n\t\tif err != nil {\n\t\t\treturn \"\""} +{"text": "What if one of your employee technicians decides that he or she wants to quit and start their own pest control business? Are you protected?\nMany pest control companies utilize non-compete agreements or clauses in their businesses.\nWhat exactly are pest control non-compete agreements? Do they work, and how are they enforced? Are there any drawbacks to using these clauses in the employee hiring process? What about legal issues that come up?\nMany questions arise when it comes to pest control non-competes. In part one of our look at pest control non-competes, let’s take a closer look at the employers or PCO’s perspective:\nPest Control Non-Compete Agreements\nA non-compete agreement or clause is a contract under which an employee (in this case a pest control employee or technician) agrees not to enter into or start a similar profession that is in competition against the employer, or PCO. It basically prohibits a current or former pest control employee from starting a similar pest control business in your competitive markets.\nThe majority of states in the U.S. recognize and enforce various forms of non-compete agreements. A few states, such as California, totally ban or prohibit non-compete agreements except in limited circumstances.\nReasons To Use A Pest Control Non-Compete Agreement\nThe reason for having your pest control employees or technicians sign a non-compete agreement is simple. You must protect yourself and the business you’ve put so much time, capital, and effort into.\nOwning or managing your own pest management company comes with many risks. One such risk is the possibility that upon an employee’s termination or resignation, they might begin working for a direct competitor or even start their own business. By doing so, this former employee can gain a competitive advantage by exploiting confidential information about their former employer’s operations, trade secrets, or sensitive information such as customer lists, business practices, most effective products, and marketing plans.\nThe purpose of having your technicians sign a non-compete agreement or clause upon employment is an attempt to prevent this from happening. This protection allows the PCO to hire, contract and otherwise operate a pest control business without fear that the business knowledge and advantages will soon be used against them.\nThe biggest concern I hear from PCO’s when it comes to employees leaving their companies and starting their own businesses, is taking customers with them when they go. These technicians develop close relationships with the customers on their routes. These customers trust their technicians, and these technicians know exactly what the customer’s wants and needs are. Many will follow a tech when they leave.\nWhen this situation occurs many legal and ethical issues arise. As the owner of your pest management company, you paid for the trucks, the insurance, the chemicals, the training, the customer service reps; basically all of the overhead. You’ve also spent advertising money, paid sales commissions, and paid for online marketing in order to attain these customers, but also retain them. When a former employee takes these customers, it can be construed as theft.\nDrawbacks Of Pest Control Non-Compete Agreements\nOne of the biggest disadvantages of non-competes is that they can be incredibly difficult to enforce. Enforceability can even depend on the state. Like I mentioned before, a few states (California), employment related non-competes are illegal.\nPest Control Non-Competes & Legal Issues\nAs mentioned, the enforceability of a non-compete may require legal action. As the owner of a pest management company, you must evaluate the cost of suing your former employee who is breaking a non-compete agreement. You also must determine if there is any chance of actually getting paid; which may be unlikely if your former employee is just starting out and has very little capital. Usually the costs are higher than your losses, and even if they win, you may never get paid.\nEvery pest control business should have legal representation. Consult with yours to ensure your non-compete agreement, or any other legal document for that matter, meets local, state and federal requirements.\nI’m hearing more and more from pest control operators, that they are changing their strategies when it comes to non-compete agreements. Many have changed from non-compete agreements (which are VERY difficult to enforce) to non-SOLICIT agreements. One such agreement will state exactly what the PCO wants– That a former employee can’t solicit the customers you invested resources and time in getting. They seem to be a little easier to legally enforce.\nI’m also hearing that some PCO’s are beginning to use confidentiality agreements; which are very similar in nature. Every state is a little different, so do some research and find out which contract is right for you and your pest control business.\nThe topic of pest control non-competes is a difficult one; full of ethical and legal issues. No PCO wants to lose their hard-earned customers to anyone else, so look to non-compete agreements; or better yet, consider a non-solicitation agreement instead.\nConsult with your company’s legal representation to ensure your non-compete or non-solicit agreement meets local, state and federal requirements."} +{"text": "Have you been using the Studio 8 products to create your online content? Got some interesting work to show? Not averse to being featured in a case study and getting tons of exposure? If your answers to the last three questions are a resounding “yes” (and you missed Mike’s post earlier this evening), the Studio product marketing folks are currently looking for some reference customers, and would be interested in checking out your work. Should you (or even someone you know) fit the bill, please drop a comment on this post with some details (or email me directly at sfegette AT macromedia DOT com) and I’ll be sure to pass your info along for consideration.\nJust checked out a slick new Dreamweaver extension from Macromedia extensibility experts WebAssist, called SiteAssist. If you need to build a site up very quickly – SiteAssist is a great wizard-based means to rapidly design, build out, and manage web sites in Dreamweaver. There’s a slew of pre-designed templates and color schemes to choose from, or you can update the resulting sites with Dreamweaver’s template engine and your own visuals for a more custom look/feel. Changing designs and information architecture is even a snap.\nSiteAssist is a commercial extension ($149 USD), but the kind folks at WebAssist are offering $50 off for the next two weeks to anyone who wants to grab a new copy – just click here and you’ll pick up the discounted price. (For the record- I’ve no commercial interest here, the savings is yours alone!)\nVery nicely done DW extension, for those times where you need a site up yesterday- and the clock is ticking fast. Check it out!\nI’m admittedly late to the blogrush on this story, but mad props are due regardless. Darron Schall has apparently been working on a VNC client for Flash Player 8.5, which is currently blowing my mind. Essentially a remote desktop application, there have been many implementations of VNC clients in both native code and Java, but I’m really blown away at how cool apps like this will be for enterprise and even home automation applications. Binary socket connection to a TightVNC server, DES encryption, this is awesome stuff- and really starting to get me excited at the inevitability of more amazing apps and projects like this to come.\nI’m currently in the Community Lounge at MAX 2005 doing the schmoozefest thing, after wrapping my second of two sessions on Flash video and Dreamweaver (thanks to everyone who attended for both the warm response and the great questions!). The show has been amazing so far- with attendance through the roof- last I heard we were around 3,000 attendees this year, well up from last year. Highlights for me so far have been the launch of Labs and the warm reception the Flex 2 public alpha on Labs is recieving, and (to be brutally honest) the opening keynote preso by Ze Frank and his amazingly strange but insanely cool Flash short-form pieces.\nWell, the cat’s out of the bag- the project I’ve been working on for the last few weeks is now live… Macromedia Labs. Featuring the public alpha of the Flex 2 product line, Macromedia Labs includes a wiki, source repository, and plenty of initial content to get you up to speed and running with the new bits, as quickly as possible.\nMake sure to watch the video tutorials, particularly Sho Kuwamoto’s 15-minute Flex application video, which should drive home how easy it is to rapidly develop RIAs in Flex Builder 2. Mark Anders also provides overviews of creating a new project and compiling, and building a constraint-based layout in Flex Builder 2. But that’s just a highlight or two, there’s a boatload of information, tips and samples lurking within the nether regions of the Labs site and wiki to be discovered, and more on the way.\nI wrote up a more official overview of Macromedia Labs for the Developer Center giving all the whys and what-fors, but I suspect you’ll get the most mileage out of downloading the new bits and trying them out for yourself. After all, that’s the point! So what are you waiting for? Get on with the downloading, and have some fun with the Flex 2 alpha.\nJust caught this on Digg.com, one of my old favorite side-scroller gams – Prince of Persia: The Sands of Time – has been recreated in Flash. Check it out- a fun diversion for your MAX Sunday!\nI’m typing this perched in one the San Francisco airport’s coffee bars/wifi hotspots, awaiting boarding call for my flight to Orange County, and MAX 2005. Can’t wait to meet up with everyone at the conference this year! I’ll be giving a 1-hour presentation both Monday and Tuesday (IIRC) on Flash Video for Dreamweaver users – which should be a great session if you’ve been hesitating on getting video integrated into your websites. Keep posted, as I’ll likely publish some of the materials from my sessions up here after MAX for the interested.\nThat being said, the call just came so I’m off to board the plane and get to the show! If you’re going to MAX, make sure to tap me on the shoulder and say hi. See you soon…"} +{"text": ", fwerror.WrapL(l, \"error reconciling user pool client config: %w\", err)\n\t\t}\n\t\treturn clientId, nil\n\t}\n\n\tclientId, err := w.createUserPoolClient(ctx, userPoolId, userPoolName, []string{idp.IdentityProviderId}, account.AccountId)\n\tif err != nil {\n\t\treturn \"\", fwerror.WrapL(l, \"failed to create user pool client: %w\", err)\n\t}\n\tl.Info().Str(\"client_name\", clientName).Str(\"client_id\", clientId).Msg(\"Created new user pool client\")\n\treturn clientId, nil\n}\n\n// reconcileUserPoolDomain ensures the user pool domain exists and is properly configured.\nfunc (w *AccountWatcher) reconcileUserPoolDomain(ctx context.Context, userPoolId string, account *database.Account) (string, error) {\n\tl := *log.Ctx(ctx)\n\n\texistingDomainName, err := w.GetUserPoolDomain(ctx, account.AccountId)\n\tif err != nil {\n\t\treturn \"\", fwerror.WrapL(l, \"error discovering user pool domain: %w\", err)\n\t}\n\n\tif existingDomainName != \"\" {\n\t\terr = w.reconcileUserPoolDomainConfig(ctx, userPoolId, existingDomainName)\n\t\tif err != nil {\n\t\t\treturn \"\", fwerror.WrapL(l, \"error reconciling user pool domain config: %w\", err)\n\t\t}\n\t\treturn existingDomainName, nil\n\t}\n\n\tdomainPrefix := fmt.Sprintf(\"fireworks-%s\", account.AccountId)\n\n\t// If the user pool already has a different / stale domain bound to it, a\n\t// plain CreateUserPoolDomain will be rejected with\n\t// InvalidParameterException: User pool already has a domain configured\n\t// because each Cognito user pool can have at most one hosted-UI domain.\n\t// Disassociate whatever is currently bound first, then create the desired\n\t// domain. DescribeUserPool reports the currently-bound domain via\n\t// UserPool.Domain (empty if none).\n\tif err := w.clearStaleUserPoolDomain(ctx, userPoolId); err != nil {\n\t\treturn \"\", fwerror.WrapL(l, \"error clearing stale user pool domain before create: %w\", err)\n\t}\n\n\t_, err = w.awsClient.CognitoClient.CreateUserPoolDomain(ctx, &cognitoidentityprovider.CreateUserPoolDomainInput{\n\t\tDomain: aws.String(domainPrefix),\n\t\tUserPoolId: aws.String(userPoolId),\n\t})\n\tif err != nil {\n\t\treturn \"\", fwerror.WrapL(l, \"failed to create UserPool domain: %w\", err)\n\t}\n\tl.Info().Str(\"domain_name\", domainPrefix).Msg(\"Created new user pool domain\")\n\treturn domainPrefix, nil\n}\n\n// clearStaleUserPoolDomain looks up whatever domain is currently bound to the\n// given user pool (via DescribeUserPool) and disassociates it. It is a no-op\n// if the user pool has no domain bound. Cognito's two \"already gone\" error\n// shapes (ResourceNotFoundException and InvalidParameterException \"No such\n// domain or user pool exists\") are treated as benign.\nfunc (w *AccountWatcher) clearStaleUserPoolDomain(ctx context.Context, userPoolId string) error {\n\tl := *log.Ctx(ctx)\n\n\tupDesc, err := w.awsClient.CognitoClient.DescribeUserPool(ctx, &cognitoidentityprovider.DescribeUserPoolInput{\n\t\tUserPoolId: &userPoolId,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"failed to describe user pool %s: %w\", userPoolId, err)\n\t}\n\tif upDesc.UserPool == nil || upDesc.UserPool.Domain == nil || *upDesc.UserPool.Domain == \"\" {\n\t\treturn nil\n\t}\n\n\tboundDomain := *upDesc.UserPool.Domain\n\tl.Warn().Str(\"bound_domain\", boundDomain).Str(\"user_pool_id\", userPoolId).Msg(\"Deleting stale domain bound to user pool\")\n\t_, delErr := w.awsClient.CognitoClient.DeleteUserPoolDomain(ctx, &cognitoidentityprovider.DeleteUserPoolDomainInput{\n\t\tDomain: &boundDomain,\n\t\tUserPoolId: &userPoolId,\n\t})\n\tif delErr != nil && !isCognitoDomainNotFound(delErr) {\n\t\treturn fwerror.WrapL(l, \"failed to delete stale domain %s on user pool %s: %w\", boundDomain, userPoolId, delErr)\n\t}\n\treturn nil\n}\n\n// reconcileUserPoolConfig ensures the user pool configuration is up to date, including tags.\nfunc (w *AccountWatcher) reconcileUserPoolConfig(ctx context.Context, userPoolId, accountId string, tenantDomains []string) error {\n\tl := *log.Ctx(ctx)\n\n\t// Get current user pool configuration\n\tdescribeOutput, err := w.awsClient.CognitoClient.DescribeUserPool(ctx, &cognitoidentityprovider.DescribeUserPoolInput{\n\t\tUserPoolId: &userPoolId,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error describing user pool: %w\", err)\n\t}\n\n\t// Get current tags\n\ttagsResponse, err := w.awsClient.CognitoClient.ListTagsForResource(ctx, &cognitoidentityprovider.ListTagsForResourceInput{\n\t\tResourceArn: describeOutput.UserPool.Arn,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error getting user pool tags: %w\", err)\n\t}\n\n\tcurrentTags := tagsResponse.Tags\n\tdesiredTenantDomains := strings.Join(tenantDomains, \" \")\n\tcurrentTenantDomains := currentTags[\"Tenant-Domains\"]\n\n\tif currentTenantDomains != desiredTenantDomains {\n\n\t\t_, err = w.awsClient.CognitoClient.TagResource(ctx, &cognitoidentityprovider.TagResourceInput{\n\t\t\tResourceArn: describeOutput.UserPool.Arn,\n\t\t\tTags: map[string]string{\n\t\t\t\t\"Account-ID\": accountId,\n\t\t\t\t\"Tenant-Domains\": desiredTenantDomains,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn fwerror.WrapL(l, \"error updating user pool tags: %w\", err)\n\t\t}\n\t\tl.Info().\n\t\t\tStr(\"user_pool_id\", userPoolId).\n\t\t\tStr(\"tenant_dom"} +{"text": "About the Author\nSend Me Your EventsPlease email Kevin Callahan with your outdoor South Jersey events at Kcallahan@gannett.com\n- Fishing lures $10 April 23, 2015Asking for 10.00 each for these. They are a lot of these lures. Please contact by text.\n- Wm Zimmerman Framed Ruffed Grouse Print (Woodbury) $55 April 23, 2015Framed Ruffed Grouse Print-NICE! Wm Zimmerman Frame Size 26 3/4\" x 20 3/4\" Perfect for your Man Cave or Cabin Pet/Smoke Free Home Local Pick Up Only\n- Two sets of golf clubs (Burlington) $300 April 23, 2015I have three golf bags and two sets of clubs, and a cart. I don't know much about golf clubs but they are all name brand good clubs. Everything is pretty dusty because they have been in my garage for awhile but nothing has rust. I am willing to split […]\n- RE:SOLVE Emergency Tool & Pocket Knife (Woodbury) $15 April 23, 2015CAMPING-HUNTING-FISHING-PREPPER-EMERGENCY-BOY SCOUTS RE:SOLVE 12 Piece Outdoor Recreation Multi-Tool -LED Flashlight with Flint -4\" Adjustable Wrench -Hex Keys: 4mm,5mm, and 6mm -2.5\" Locking-Blade Knife -Phillips Screwdriver #1 -Slotted Screw […]\n- Men's Woolrich Wool Jacket-Tan (Woodbury) $20 April 23, 2015Woolrich Tan Wool Jacket-16304 Size Men's Medium 100% Wool Great for layering/Spring Zippered(YKK) Slash Pockets Deep Interior Pockets Woolrich Quality Fishing-Camping-Hunting-Scouts-Bird Watching-Day Trips Pet/Smoke Free Home Local Pick Up […]\n- Fishing lures $10 April 23, 2015\n- Mattie: Hi there! I could have sworn I’ve been to this site before but after looking at some of the posts I...\n- world news: As recently as 2009 Charlie Bronson was declined parole, the parole board believing that he had not...\n- jethrosplace.com: This article gives clear idea in favor of the new viewers of blogging, that actually how to do...\n- digitalkamera Vergleich: Aw, this was a very nice post. Finding the time and actual effort to create a very good...\n- situs judi: this article so useful for me. c’mon make a good article anymore, thank you\nInto the Outside PodcastLoading...\n- Cal Column\n- Concert Series\n- Gear Review\n- Heatlh and Fitness\n- Horse riding\n- Ice Skating\n- Inspirational Stories\n- Outdoor Learning\n- Outdoor News\n- Outdoor Stories\n- Rock Climbing\n- Sky Diving\n- The W's of the Day\n- ticketing bikes\n- travel writing\nCategory Archives: Concert Series\nhttp://automotorblog.com/?option=To-Earn-Money-For-Mmo-Games To Earn Money For Mmo Games\nSorry, the Friday High Noon OUTdoor Concert Series isn’t OUT doors today. With the rain around here, thought we go inside and don’t think you will be disappointed being indoors today:\nNot much of a day for an OUTdoor concert? The Into the OUTside Friday High Noon OUTdoor Concert Series doesn’t think a little rain should ruin your fun . . .\nIn case you missed U2 on Good Morning America at Fordham University, the High Noon Friday OUTdoor Concert Series presents a replay of the show three weeks ago . . .\nThe Into the Outside Friday High Noon OUTdoor Concert series is Andrew Bird via suggestion from Jessie Cuzzupe:\nInto the OUTside presents the High Noon OUTdoor Friday concert to kick off the weekend. This week it is Jewel, who checked OUT of Dancing With the Stars on Thursday with fractured tibias in both legs, in a 2006 concert … Continue reading\nThe Into the OUTside Famous Friday High Noon Outdoor Concert Series presents today some Mardi Gras. Actually, on this day in 1827 it was the birth of Mardi Gras when a group of students wearing costumes and masks danced through the … Continue reading\nThe Into the Outside Friday High Noon OUTdoor Concert Series presents Cold Play. Since Chris Martin and the lads got ripped off at the Grammys for album of the year last week, we will Fix It here with Cold Play … Continue reading\nThe Into the Outside Friday High Noon OUTdoor Concert Series comes from the suggestion of Joe Cuzzupe with U2 on the Vertigo Tour in Milan:\nIn honor of Keith Richards’ 65th birthday on Dec. 4, the Into the Outside Friday High Noon Outdoor Concert Series began in December with an outdoor Stones’ show. I posted video from my first outdoor Stones’ show on Sept. 25, … Continue reading\nIn honor of Keith Richards’ 65th birthday yesterday, the weekly Into the Outside Friday High Noon Outdoor Concert Series was decided to be an outdoor Stones’ show today. I was hoping someone out there had video from my first outdoor … Continue reading"} +{"text": "1) Probably the last thing KMSP — Fox 9 in the Twin Cities — wanted, was to wake up today to find out it had been the target of one of Jon Stewart’s segments on The Daily Show. Wait for it.Twin Cities media watcher David Brauer noted — via Twitter — ” But to be fair, they were only station credited with mentioning Exxon paid zero U.S. taxes. I’ll take a few spa reports for that.”\nMeanwhile, NPR reports today that nearly two-thirds of households making $250,000 or more support raising taxes to cut the federal deficit.\nIn today’s New York Times, David Leonhardt points out there’s a different between not paying taxes, and not paying income taxes (A point News Cut made a few days ago ).\n2) It’s not too hard to figure out why we’re becoming a nation of fatties. The Agency for Healthcare Research and Quality has released its annual reports, finding…\n* One-third of obese adults have never received advice from their doctor about exercise.\n* Obese adults who are black, Hispanic, poor or have less than a high school education are less likely to receive diet advice from their doctor.\n* Most overweight children and one-third of obese adults report that they have not been told by their doctor that they are overweight.\n* Most American children have never received counseling from their health care provider about exercise, and almost half have never received counseling about healthy eating.\nAccording to the reports, “not having insurance is the single strongest predictor of poor quality care, exceeding the effects of race, ethnicity, income or education.” Find both reports here. A separate report confirmed an old axiom: Hospitals are a lousy place to be sick. A report finds 100,000 people die each year from infections they picked up while in the hospital.\n3) Today’s phrase that pays: Stay focused at work. A priest working a suicide help line in Sweden fell asleep during a call from a man wanting to kill himself. He decided not to when he became more angry than depressed because of the snoring he heard while telling the priest his story.\nRemember. Focus! From last night’s NBA game in Chicago.\n4) Just in time for spring planting: First word that people can catch a virus from a plant. Round up the usual petunias.\nWHAT WE’RE DOING\nMidmorning (9-11 a.m.) – First hour: The online magazine Slate decided to find out what its readers think are the best ways to save energy. The top vote-getters include getting rid of lawns and cheaper solar shingles. Slate columnist Daniel Gross talks about what he has done to try to live the energy-efficient life.\nSecond hour: Novelist Richard Powers was among the early few to have his genetic makeup mapped. His latest work of fiction asks if there were a gene for happiness, should we rid ourselves of discontent?\nMidday (11 a.m. – 1 p.m.) – First hour: Carleton College political science professor Steven Schier analyzes the tea party movement, which is rallying in Washington tomorrow.\nSecond hour: Jay Winik, author of “April 1865: The Month that Saved America.” He spoke at the Commonwealth Club of California.\nTalk of the Nation (1-3 p.m.) – First hour: Political editor Ken Rudin.\nSecond hour: Dana Sachs explores the legacy of Operation Babylift: international adoption and the Children of War in Vietnam. The mission had the best of intentions — but created a complicated web of psychological and emotional consequences for the children, their new families, and, in some cases, for the families they left behind.\nAll Things Considered (3-6:30 p.m.) – NPR is going to tackle “red light cameras,” which have already been found to be unconstitutional in Minnesota. They’ll look at the use of the cameras in Los Angeles. When I was in Arizona a few weeks ago, I found the effect of the cameras. Nobody ran red lights. And because they’re also used to nab speeders, few people seemed to speed. Back in Minnesota, meanwhile, I regularly see people run red lights and one of these days, they’re going to kill someone. Here’s the discussion point: The rights of the many outweigh the rights of the few ; the Minnesota Supreme Court said that in the ’90s when it ruled on the state’s plan to keep sex offenders incarcerated, even though they had already served their prison time and hadn’t committed a crime. Couldn’t that justify infringing on the right of a driver who considers red lights a mere suggestion?"} +{"text": "ains\", desiredTenantDomains).\n\t\t\tMsg(\"Updated user pool tenant domains\")\n\t} else {\n\t\tl.Info().Str(\"user_pool_id\", userPoolId).Msg(\"User pool configuration is already up to date\")\n\t}\n\n\treturn nil\n}\n\nfunc identityProviderReconcilerID(accountID, identityProviderID string) string {\n\treturn fmt.Sprintf(\"identity-provider/%s/%s\", accountID, identityProviderID)\n}\n\n// GetUserPoolByAccountID searches for a user pool with the specific account ID.\nfunc (w *AccountWatcher) GetUserPoolByAccountID(ctx context.Context, accountID string) (string, error) {\n\tl := *log.Ctx(ctx)\n\tl.Info().Str(\"account_id\", accountID).Msg(\"Searching for user pool by account ID\")\n\n\tpaginator := cognitoidentityprovider.NewListUserPoolsPaginator(w.awsClient.CognitoClient, &cognitoidentityprovider.ListUserPoolsInput{\n\t\tMaxResults: aws.Int32(60),\n\t})\n\n\tfor paginator.HasMorePages() {\n\t\toutput, err := paginator.NextPage(ctx)\n\t\tif err != nil {\n\t\t\treturn \"\", fwerror.WrapL(l, \"error listing user pools: %w\", err)\n\t\t}\n\n\t\tfor _, userPool := range output.UserPools {\n\t\t\t// AWS API can return user pools with nil Id fields in rare cases\n\t\t\t// (e.g., during creation/deletion states or API inconsistencies)\n\t\t\tif userPool.Id == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tuserPoolId := *userPool.Id\n\n\t\t\tdescribeOutput, err := w.awsClient.CognitoClient.DescribeUserPool(ctx, &cognitoidentityprovider.DescribeUserPoolInput{\n\t\t\t\tUserPoolId: &userPoolId,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\tl.Warn().Str(\"user_pool_id\", userPoolId).Err(err).Msg(\"Failed to describe user pool, skipping\")\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif describeOutput.UserPool.Arn == nil {\n\t\t\t\tl.Warn().Str(\"user_pool_id\", userPoolId).Msg(\"User pool ARN is nil, skipping\")\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\ttagsResponse, err := w.awsClient.CognitoClient.ListTagsForResource(ctx, &cognitoidentityprovider.ListTagsForResourceInput{\n\t\t\t\tResourceArn: describeOutput.UserPool.Arn,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\tl.Warn().Str(\"user_pool_id\", userPoolId).Err(err).Msg(\"Failed to get tags for user pool, skipping\")\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif tagsResponse.Tags[\"Account-ID\"] == accountID {\n\t\t\t\tl.Info().Str(\"user_pool_id\", userPoolId).Interface(\"tags\", tagsResponse.Tags).Msg(\"Found user pool with matching account ID\")\n\t\t\t\treturn userPoolId, nil\n\t\t\t}\n\t\t}\n\t}\n\n\tl.Info().Msg(\"No user pools found with matching account ID\")\n\treturn \"\", nil\n}\n\nfunc (w *AccountWatcher) GetIdentityProvider(ctx context.Context, userPoolId, providerName string) (*cognitotypes.ProviderDescription, error) {\n\tl := *log.Ctx(ctx)\n\tl.Info().Str(\"user_pool_id\", userPoolId).Str(\"provider_name\", providerName).Msg(\"Searching for existing identity provider\")\n\n\tpaginator := cognitoidentityprovider.NewListIdentityProvidersPaginator(w.awsClient.CognitoClient, &cognitoidentityprovider.ListIdentityProvidersInput{\n\t\tUserPoolId: &userPoolId,\n\t})\n\n\tfor paginator.HasMorePages() {\n\t\toutput, err := paginator.NextPage(ctx)\n\t\tif err != nil {\n\t\t\treturn nil, fwerror.WrapL(l, \"error listing identity providers for user pool %s: %w\", userPoolId, err)\n\t\t}\n\n\t\tfor _, provider := range output.Providers {\n\t\t\tif provider.ProviderName != nil && *provider.ProviderName == providerName {\n\t\t\t\tl.Info().Str(\"provider_name\", providerName).Str(\"provider_type\", string(provider.ProviderType)).Msg(\"Found existing identity provider\")\n\t\t\t\treturn &provider, nil\n\t\t\t}\n\t\t}\n\t}\n\n\tl.Info().Str(\"provider_name\", providerName).Msg(\"Identity provider not found\")\n\treturn nil, nil\n}\n\nfunc (w *AccountWatcher) GetUserPoolClient(ctx context.Context, userPoolId, clientName string) (*cognitotypes.UserPoolClientDescription, error) {\n\tl := *log.Ctx(ctx)\n\tl.Info().Str(\"user_pool_id\", userPoolId).Str(\"client_name\", clientName).Msg(\"Searching for existing user pool client\")\n\n\tpaginator := cognitoidentityprovider.NewListUserPoolClientsPaginator(w.awsClient.CognitoClient, &cognitoidentityprovider.ListUserPoolClientsInput{\n\t\tUserPoolId: &userPoolId,\n\t})\n\n\tfor paginator.HasMorePages() {\n\t\toutput, err := paginator.NextPage(ctx)\n\t\tif err != nil {\n\t\t\treturn nil, fwerror.WrapL(l, \"error listing user pool clients for user pool %s: %w\", userPoolId, err)\n\t\t}\n\n\t\tfor _, client := range output.UserPoolClients {\n\t\t\tif client.ClientName != nil && *client.ClientName == clientName {\n\t\t\t\tl.Info().Str(\"client_name\", clientName).Str(\"client_id\", *client.ClientId).Msg(\"Found existing user pool client\")\n\t\t\t\treturn &client, nil\n\t\t\t}\n\t\t}\n\t}\n\n\tl.Info().Str(\"client_name\", clientName).Msg(\"User pool client not found\")\n\treturn nil, nil\n}\n\n// GetUserPoolDomain checks if a domain already exists using AWS-first discovery.\nfunc (w *AccountWatcher) GetUserPoolDomain(ctx context.Context, accountId string) (string, error) {\n\tl := *log.Ctx(ctx)\n\n\tdomainName := fmt.Sprintf(\"fireworks-%s\", accountId)\n\tresp, err := w.awsClient.CognitoClient.DescribeUserPoolDomain(ctx, &cognitoidentityprovider.DescribeUserPoolDomainInput{\n\t\tDomain: &domainName,\n\t})\n\tif err == nil {\n\t\t// DescribeUserPoolDomain returns a non-nil DomainDescription with all\n\t\t// fields nil when the domain does not actually exist (it does NOT\n\t\t// ret"} +{"text": "The Plot: Rory Deveaux is spending her senior year at Wexford, a boarding school in London. Meeting new people, figuring out a new school system, being in London instead of a small town in Louisiana, should be amazing. And it is — except for the murders. Murders that are mimicking the infamous 1888 Jack the Ripper murders. Rory and her fellow students try to get on with life and school; all that changes when Rory sees someone suspicious by the school, someone the police think may be their Prime Suspect. Someone only Rory saw. Is Rory at risk?\nThe Good: The Name of the Star has a slow build to the big reveal — which is not that there are Jack the Ripper murders happening. The reader knows that from page one. No, the “reveal” is more about who Rory sees, and why she sees him, and who he is. While she spots him about page 100; sixty odd pages later she learns why.\nBefore that point, The Name of the Star is a boarding school book, full of the details that people like me swoon over. No, really, Johnson doesn’t just say that Rory wears a school uniform. Instead, the reader gets “ten white dress shirts, three dark gray skirts, one gray and white striped blazer, one maroon tie, one gray sweater with the school crest on the breast, twelve pairs of gray kneesocks.” And that’s not including the PE uniforms! Johnson puts us firmly in Rory’s new world, sharing everything from a map to the area to the food she likes, the food at school and the friends she is making. “An American Teen in London” is interrupted by the Ripper murders.\nThere is a mystery, but it is not yet Rory’s mystery. Rory’s story is one of suspense (what is happening with the murders?) and possible romance (Jerome). Jerome: he is like the perfect book boyfriend, not in the sense that he is perfect, and not in the sense that he is a boyfriend, but in the sense that Johnson perfectly portrays a typical teen romance that is, well, typical. It’s not overwhelmed by having it be any more or any less than what it is: two young people being attracted to each other, having fun kissing, and trying to work out what that means. After one kissing session with Jerome, Rory thinks “when you live with someone — or on the same campus, I mean — and you have a mad make-out session, you have two choices. You can either indicate that you enjoy your mad make-out sessions and intend to indulge in them at every given opportunity . . . or you do not acknowledge the make-out session, or indeed any physical attraction. There is no middle ground, not at boarding school.”\nThen, it happens — the murders touch Rory’s world.\nIt’s not what you may think; one of the murders takes place very close to Rory, yes, but that’s not the big reveal.\nThe thing is, Rory has acquired more than uniforms and friends at her London school. She’s also gained a new talent: no, not field hockey. Seeing dead people. Seeing, specifically, the ghosts of dead people. This unique ability pulls Rory into the mystery, into the search for the person recreating the murders, and into danger. She also encounters a Torchwood-like squad of similarly gifted young people. At this point, the action is much more involved than “how early do I have to get up to have enough time in the shower I share with so many other girls” or “kissing Jerome.”\nAs I said above, it’s almost half way through the book before Rory sees a ghost, or, rather, realizes that she is seeing ghosts. Here’s why I like that timing, as opposed to giving it to us on page one or chapter one: that’s life. One minute, you’re worrying about classes and friends, the next, life changes, and that life change is not conveniently at the start of things, it’s sometimes in the middle. Why, in shows like Supernatural or Buffy or The Vampire Diaries, must the supernatural reveal always happen right away? What about the lives people led, the normalcy of their routines, before it all went witches and vampires or, in this case, ghosts? I like it in part because I’ve wanted, for a while, to read a book or series where the “supernatural is REAL” moment happens late in the game."} +{"text": "A very good panel discussion this week on Gender Equality Data and Tools at the Bank reminded me of the research we did in transport on household surveys with my friend and a World Bank colleague, Kinnon Scott. In retrospect, this work should be better advertised as it touches upon many of the points that were raised on the importance of gender-relevant data for policy. The three main questions that follow permeate the discussion and are of particular relevance for the transport sector as we seek to review our own gender data needs.\nWhat do household surveys tell us about gender? There are four common household surveys that exist in developing countries with data that can provide insights on gender issues—Living Standard Measurement Studies (LSMS), Household Budget or Income and Expenditure Surveys (HBS/IES), Demographic and Health surveys (DHS) and Multiple Indicator Cluster Surveys (MICS). Although not designed to provide specific transport sector data, we used examples of each type of survey to illustrate the extent to which these surveys can contain useful information on transportation. Exploiting such household surveys can be a way to improve transport policy for women without spending considerable additional expenditures on surveys, which are expensive. They offer the additional advantages in that the household surveys are more likely to be repeated—thus ensuring the availability of future data, and governments have made the data sets publicly available.\nLinks to common Household Surveys:\nLSMS: http://www.worldbank.org/lsms/\nIES/HBS: http://www.measuredhs.com\nThe main findings of the review shows that there is potentially substantial amount of data available across countries on one or two aspects of transportation such as costs and mode used to visit education and health facilities. However, there is little information in the surveys on other important aspects of transport such as mode choice, security and travel patterns.\nCan we add a specific gender module to Bank household surveys to help bridge any data gaps? A key recommendation derived from this research can help answer this second question. Among LSMS surveys, the questions will tend to vary because of the heavy customization of these surveys to meet country demands for data. As a result, it may be possible to marginally influence surveys to expand the data collected on gender and transportation. It would be useful if survey questions could be systematized as much as possible in the future to integrate gender considerations in a way to ensure that questions are similar over time within each country. Questions should be simple to implement and allow for comparability across countries. In transport, adding more gender questions could ensure a better focus on gender and transport issues. As evidenced in our recent regional survey work, a standardized approach could be promoted for collecting and evaluating gender data in transport. Substantial background work for developing a standard module has already been carried out and could be expanded upon.\nWhich key gender indicator should we try to collect data on in the future? Answering the final question is the most challenging and related to the previous one. The relevance of gender data very much depends on the sector and the related data gaps for that sector. In transport, the focus of the analysis centered on aspects of accessibility and transportation choice; affordability; travel patterns and trip purposes; and quality and security concerns. The focus of analysis will vary for another sector.\nMode of Transport to School: Panama 2003\nSource: Encuesta de Niveles de Vida, calculations by authors\nSectors and gender specialists will need to work together to provide guidance on which data needs to be more gender-disaggregated or with a greater gender focus based on specific objectives. For example, demographic and Health Surveys (DHS) lists among the eight factors that limit the use of health care the distance and lack of transport and whether any of these factors is a constraint to health care access. Yet, data collected on potential linkages between the health and transport sectors is often not reported or considered for taking steps in formulating policies in favor of improving maternal health (MDG 5).\nFinding common ground on data needs is important to move forward. Household surveys that allow disaggregation of household data by gender are costly, both in terms of time and other resources and, therefore, are done infrequently. Agreeing on a definition or common nomenclature for defining what constitutes good and useful gender data will vary by sector. In transport, it will likely rest on defining what constitutes transport accessibility and how related variables linked to investments or policies may influence transport outcomes across gender. However, stand alone transport surveys will continue to be needed to foster the production of gender statistics in transport in developing countries and the incorporation of gender differences into transport decisions."} +{"text": "urn a ResourceNotFoundException). Treat that as \"not found\".\n\t\tif resp.DomainDescription == nil ||\n\t\t\tresp.DomainDescription.Domain == nil ||\n\t\t\tresp.DomainDescription.UserPoolId == nil {\n\t\t\tl.Info().Str(\"domain\", domainName).Msg(\"Domain not found (empty DomainDescription from AWS)\")\n\t\t\treturn \"\", nil\n\t\t}\n\t\treturn domainName, nil\n\t}\n\n\tvar notFoundErr *cognitotypes.ResourceNotFoundException\n\tif !errors.As(err, ¬FoundErr) {\n\t\treturn \"\", fwerror.WrapL(l, \"error checking domain %s: %w\", domainName, err)\n\t}\n\n\treturn \"\", nil\n}\n\n// defaultSamlEmailAttribute is the SAML attribute name used by Azure AD, ADFS, and Okta.\nconst defaultSamlEmailAttribute = \"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress\"\n\n// getIdentityProviderConfig builds the desired provider configuration based on database settings.\nfunc (w *AccountWatcher) getIdentityProviderConfig(idp *database.IdentityProvider) (map[string]string, map[string]string) {\n\tvar providerDetails map[string]string\n\tvar attributeMapping map[string]string\n\n\tswitch idp.Config {\n\tcase \"SamlConfig\":\n\t\tif idp.SamlConfig != nil {\n\t\t\tif idp.SamlConfig.MetadataXml != \"\" {\n\t\t\t\tproviderDetails = map[string]string{\n\t\t\t\t\t\"MetadataFile\": idp.SamlConfig.MetadataXml,\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tproviderDetails = map[string]string{\n\t\t\t\t\t\"MetadataURL\": idp.SamlConfig.MetadataUrl,\n\t\t\t\t}\n\t\t\t}\n\t\t\tproviderDetails[\"IDPInit\"] = fmt.Sprintf(\"%t\", idp.EnableIdpInitiatedSso)\n\t\t}\n\t\temailAttr := defaultSamlEmailAttribute\n\t\tif idp.SamlConfig != nil && idp.SamlConfig.SamlEmailAttribute != \"\" {\n\t\t\temailAttr = idp.SamlConfig.SamlEmailAttribute\n\t\t}\n\t\tattributeMapping = map[string]string{\n\t\t\t\"email\": emailAttr,\n\t\t}\n\tcase \"OidcConfig\":\n\t\tif idp.OidcConfig != nil {\n\t\t\tproviderDetails = map[string]string{\n\t\t\t\t\"client_id\": idp.OidcConfig.ClientId,\n\t\t\t\t\"client_secret\": idp.OidcConfig.ClientSecret,\n\t\t\t\t\"oidc_issuer\": idp.OidcConfig.IssuerUrl,\n\t\t\t\t\"authorize_scopes\": \"openid email\",\n\t\t\t\t\"attributes_request_method\": \"GET\",\n\t\t\t\t\"attributes_url_add_attributes\": \"false\", // Match Terraform setting\n\t\t\t}\n\t\t}\n\t\tattributeMapping = map[string]string{\n\t\t\t\"email\": \"email\",\n\t\t\t\"username\": \"sub\",\n\t\t}\n\t}\n\n\treturn providerDetails, attributeMapping\n}\n\n// getUserPoolClientConfig builds the desired client configuration.\nfunc (w *AccountWatcher) getUserPoolClientConfig(userPoolName string, supportedIdentityProviders []string, accountId string) *cognitoidentityprovider.UpdateUserPoolClientInput {\n\treturn &cognitoidentityprovider.UpdateUserPoolClientInput{\n\t\tExplicitAuthFlows: []cognitotypes.ExplicitAuthFlowsType{\n\t\t\tcognitotypes.ExplicitAuthFlowsTypeAllowUserSrpAuth,\n\t\t\tcognitotypes.ExplicitAuthFlowsTypeAllowRefreshTokenAuth,\n\t\t\tcognitotypes.ExplicitAuthFlowsTypeAllowCustomAuth,\n\t\t},\n\t\tSupportedIdentityProviders: supportedIdentityProviders,\n\t\tCallbackURLs: []string{\n\t\t\t\"http://localhost\",\n\t\t\t\"http://localhost:18000\",\n\t\t\t\"http://localhost:3000\",\n\t\t\t\"http://localhost:3000/api/auth-proxy\",\n\t\t\tfmt.Sprintf(\"http://localhost:3000/api/auth/callback/%s\", accountId),\n\t\t\tfmt.Sprintf(\"http://localhost:3000/api/v2/auth/%s/callback\", accountId),\n\t\t\t\"http://localhost:8000\",\n\t\t\t\"https://app.fireworks.ai\",\n\t\t\t\"https://app.fireworks.ai/api/auth-proxy\",\n\t\t\tfmt.Sprintf(\"https://app.fireworks.ai/api/auth/callback/%s\", accountId),\n\t\t\tfmt.Sprintf(\"https://app.fireworks.ai/api/v2/auth/%s/callback\", accountId),\n\t\t\t\"https://dev.fireworks.ai/api/auth-proxy\",\n\t\t\tfmt.Sprintf(\"https://dev.fireworks.ai/api/auth/callback/%s\", accountId),\n\t\t\tfmt.Sprintf(\"https://dev.fireworks.ai/api/v2/auth/%s/callback\", accountId),\n\t\t\t\"https://device-auth.fireworks.ai/callback\",\n\t\t\t\"https://fireworks.ai\",\n\t\t\t\"https://fireworks.ai/api/auth-proxy\",\n\t\t\tfmt.Sprintf(\"https://fireworks.ai/api/auth/callback/%s\", accountId),\n\t\t\tfmt.Sprintf(\"https://fireworks.ai/api/v2/auth/%s/callback\", accountId),\n\t\t\t\"https://preview.fireworks.ai/api/auth-proxy\",\n\t\t\tfmt.Sprintf(\"https://preview.fireworks.ai/api/auth/callback/%s\", accountId),\n\t\t\tfmt.Sprintf(\"https://preview.fireworks.ai/api/v2/auth/%s/callback\", accountId),\n\t\t\t\"https://staging.fireworks.ai/api/auth-proxy\",\n\t\t\tfmt.Sprintf(\"https://staging.fireworks.ai/api/auth/callback/%s\", accountId),\n\t\t\tfmt.Sprintf(\"https://staging.fireworks.ai/api/v2/auth/%s/callback\", accountId),\n\t\t},\n\t\tLogoutURLs: []string{\n\t\t\t\"http://localhost:3000\",\n\t\t\t\"http://localhost:3000/api/v2/auth/account-deleted\",\n\t\t\t\"http://localhost:3000/logout\",\n\t\t\t\"https://app.fireworks.ai\",\n\t\t\t\"https://app.fireworks.ai/api/v2/auth/account-deleted\",\n\t\t\t\"https://app.fireworks.ai/logout\",\n\t\t\t\"https://dev.fireworks.ai\",\n\t\t\t\"https://dev.fireworks.ai/api/v2/auth/account-deleted\",\n\t\t\t\"https://dev.fireworks.ai/logout\",\n\t\t\t\"https://fireworks.ai\",\n\t\t\t\"https://fireworks.ai/api/v2/auth/account-deleted\",\n\t\t\t\"https://fireworks.ai/logout\",\n\t\t\t\"https://preview.fireworks.ai\",\n\t\t\t\"https://preview.fireworks.ai/api/v2/auth/account-deleted\",\n\t\t\t\"https://preview.fireworks.ai/logout\",\n\t\t\t\"https://staging.fireworks.ai\",\n"} +{"text": "JAKARTA, Indonesia — Joko Widodo has won hearts and votes with his signature impromptu visits to Jakarta neighborhoods. But now voters are asking the popular governor to speak up if he wants to win an increasingly tight race for Indonesia’s presidency on July 9th.\nThat is what voters will be looking for tonight, when the first of several presidential debates kicks off pitting Mr. Widodo against rival Prabowo Subianto, a former Army Special Forces commander.\nThe risks are high for both in a race that is currently much closer than it appeared a month ago, and a misstep by either could effectively decide the election tonight, analysts say.\nMore In Indonesia Elections 2014\n- As Indonesia Prepares for its New President, Some Things to Remember\n- With Election Dispute Over, Time For Indonesia To Move Forward\n- What's Next For Prabowo Subianto?\n- Court Expected to Clear Final Hurdle for Indonesia’s Jokowi to Take Office\n- Indonesia’s President-Elect Seeks Better Budget Spending\n- Documentary Depicts Hope for Indonesia's Next President\nFor more than a year, Mr. Widodo has been the clear front-runner in the presidential contest. His lead over Mr. Subianto was about 35 percentage points at its peak.\nPolls now show the gap at 8 points, with whispers that soon-to-be-released polls will show a further narrowing to 3 or 4 points.\nThere are many reasons for the shrinking gap, including Mr. Subianto’s support from the nation’s biggest TV media conglomerates and his on-message campaign. Mr. Subianto has been preparing for this moment for a decade, since he ran as a vice presidential candidate in the 2004 election.\nMr. Widodo has also been trying to fend off a slew of personal attacks of unknown origin that have little basis in reality but nonetheless have made the rounds in social media. One purports that Mr. Widodo, a declared Muslim who has been on pilgrimage to Mecca, is a Christian.\nAnalysts say the greatest reason for the narrowing, however, is that Mr. Widodo has not yet presented a vision of himself as president, something that voters say is overdue. Critics say Mr. Widodo is spending too much visiting places—something that goes over well with voters at a local level—and not enough time talking to an electorate of 185 million people.\n“He has refused to do what conventional politicians do, and that is giving longer speeches in which they lay out their programs,” says Marcus Mietzner, a researcher of Indonesian politics with Australian National University.\n“He always says that is something that conventional, normal politicians do. And as a result of that, I think a lot of Indonesians demand more answers.”\nMr. Widodo, popularly known as Jokowi, drew mixed reviews for kicking off his campaign in Papua, the country’s easternmost province, a symbolic move that political analysts say held little electoral value. Mr. Subianto stayed on the vote-heavy main island of Java for his campaign launch.\nThe trip to Papua reflects Mr. Widodo’s belief that he can run for president the same way he ran for mayor of a mid-sized town in central Java and then in 2012 for the gubernatorial seat in Jakarta, analysts say.\nBut “the presidential campaign is a completely different animal,” Mr. Mietzner said, pointing out the impracticality of waging a tour-based campaign in the sprawling archipelago nation. “I think that’s what Jokowi hasn’t quite understood.”\nAfter the Indonesian Democratic Party of Struggle announced its support for Mr. Widodo’s presidential run in March, he said little about how he would run the country. Only last week, after official campaigning kicked off, did he begin announcing some policies. Mr. Subianto, on the other hand, has been vocal for months, publishing a six-point manifesto and outlining his proposed policies during rallies ahead of April’s legislative elections.\nThe first debate tonight, which will feature both men alongside their running mates, is crucial, say analysts.\nMr. Subianto is seen as a live wire who critics have called “temperamental,” causing concern among some voters. His first task will be to show Indonesians that he can calmly absorb the sparring of a televised debate.\nMr. Widodo, whose charm is well known but whose ability to speak about national issues is the concern of the day, needs to prove he can tell the nation more than that he’s willing to work hard.\nMr. Widodo has made several missteps in demonstrating his oratory skills in recent weeks. He declined to read a prepared speech when he announced Jusuf Kalla, a past vice president, as his running mate, according to people with knowledge of the matter. Then last week, when the candidates met to declare their commitment to a peaceful campaign, he delivered a short, uninspiring speech that stood in stark contrast to one by Mr. Subianto.\nMr. Widodo recovered somewhat at a dinner event a day later when he laid out his economic plan to a roomful of investors, one who whom called it “clear and reasonably polished.”\nMr. Widodo will need a repeat performance on the national stage.\n“For the first time he has to present an articulate vision for where Indonesian should go, and he seems to have struggled with that,” said Doug Ramage, an analyst with BowerGroupAsia in Jakarta.\nAlso popular on Southeast Asia Real Time:"} +{"text": "Lars von Trier’s new movie “Nymphomaniac” – a controversial Danish film set to hit the U.S. in the spring — carries the familiar line in the credits stating that no animal was harmed during shooting of the movie. But there is another disclosure: Professional actors were replaced by several body doubles for the more explicit sex scenes.\nNaked stand-ins aren’t rare in the movie business, but for a racy movie like “Nymphomaniac,” they are akin to the indispensable stuntmen who carry the most intense scenes in action flicks. For Elvira Friis, a Danish adult film actor in her late 20s, taking the role of body double for Stacy Martin and Charlotte Gainsbourg, even opened the door to having her mother finally be comfortable to talk about her daughter’s job.\n“My mom never speaks with her friends about what I am doing, but she straight away told her friend that I am playing in a von Trier movie,” Friis said during an interview in her Copenhagen apartment shortly after “Nymphomaniac” started showing in Europe.\n“Nymphomaniac” has become one of the most buzzed-about foreign films in some time, and the anticipation has been fueled by the release of a series of tantalizing clips from the movie. According to Rotten Tomatoes, the movie aggregation website, “Nymphomaniac” so far has a 100 percent rating from critics, and 95 percent of audience members want to see it. The Variety review of the film said “Racy subject aside, the film provides a good-humored yet serious-minded look at sexual self-liberation, thick with references to art, music, religion and literature, even as it pushes the envelope with footage of acts previously relegated to the sphere of pornography.”\nFriis performed in several scenes and working for von Trier set a higher bar than her typical roles.“This was quite a special job and I loved doing it. Being allowed to work for von Trier is a huge compliment.”\nThe job turned out to be as much science as art as she tried to match her movements to those of the actors. “It was the first time I had to be really conscious about how I was moving my body.”\nHer facial expressions didn’t matter because, in the end, her body would have the head of either Martin or Gainsbourg planted on it when the final production was finished. Martin played the main character in “Nymphomaniac,” the sex-hungry Joe, at a young age, and Gainsbourg played Joe in older years.\nSex gets a much different treatment in “Nymphomaniac” than what actors like Friis are used to. While in a typical adult movie sex at least seems to bring people some pleasure, this is not the case in “Nymphomaniac.” The main character never appears satisfied and instead remains lonely and longing for something more.\nAccustomed to being part of small crews and working in front of basic cameras, Friis found herself doing sex scenes that were extremely well planned and involved many more people. In some cases, she was doing the scene with another body double.\nWhile critical, stand-ins aren’t intimately involved in a movie’s production from start to finish.\n“We joined the project at quite a late stage in May last year,” Friis said. “Basically the whole movie had been shot, but they were not happy with some scenes filmed in Germany and therefore engaged us. We got emailed film stills of the scenes and in the studio they showed us a brief clip which was to precede our scene,” Friis said.\nThey also aren’t cozy with the rest of the cast.\nFor instance, although she lent her backside to a scene in which Gainsbourg is depicted as being spanked, the two never met. Friis wore the same dress as Gainsbourg in a scene in which the actress is tied to a sofa. “The closest I got to Charlotte Gainsbourg was that I was wearing her dress,” Friis said.\nDuring the sofa scene, Friis is propped up on telephone books. “I remained in this position for three hours. The crew said I could have a break, but I am the person who wants to finish things perfectly once started,” Friis said. “I really suffered pain the next day.”\nFriis did meet von Trier. “He spoke with me a bit about the porn business and then explained me how I should shake my legs and other things. He had exact ideas about how the scenes should look like. Lars von Trier sometimes said this was good, but can’t you stretch your arms more. Some scenes we had to repeat again and again.”\nFriis has not seen the movie yet and wants to wait until von Trier’s long version is released. “In that version I act naked in a longer scene, which is quite special, but non-pornographic,” she said.\nThe director’s cut will for the first time be screened at Berlinale, a film festival taking place in the German capital beginning of February."} +{"text": "\t\t\t\"https://staging.fireworks.ai/api/v2/auth/account-deleted\",\n\t\t\t\"https://staging.fireworks.ai/logout\",\n\t\t},\n\t\tAllowedOAuthFlows: []cognitotypes.OAuthFlowType{\n\t\t\tcognitotypes.OAuthFlowTypeCode,\n\t\t},\n\t\tAllowedOAuthScopes: []string{\n\t\t\t\"openid\",\n\t\t\t\"email\",\n\t\t\t\"profile\",\n\t\t},\n\t\tAllowedOAuthFlowsUserPoolClient: true,\n\t\tRefreshTokenValidity: 10 * 365,\n\t\tAccessTokenValidity: aws.Int32(1),\n\t\tIdTokenValidity: aws.Int32(1),\n\t\tTokenValidityUnits: &cognitotypes.TokenValidityUnitsType{\n\t\t\tAccessToken: cognitotypes.TimeUnitsTypeHours,\n\t\t\tIdToken: cognitotypes.TimeUnitsTypeHours,\n\t\t\tRefreshToken: cognitotypes.TimeUnitsTypeDays,\n\t\t},\n\t\tReadAttributes: []string{\n\t\t\t\"email\",\n\t\t\t\"email_verified\",\n\t\t},\n\t\tWriteAttributes: []string{\n\t\t\t\"email\",\n\t\t},\n\t}\n}\n\n// createUserPoolClient creates a new user pool client.\nfunc (w *AccountWatcher) createUserPoolClient(ctx context.Context, userPoolId, userPoolName string, supportedIdentityProviders []string, accountId string) (string, error) {\n\tl := *log.Ctx(ctx)\n\n\tdesiredConfig := w.getUserPoolClientConfig(userPoolName, supportedIdentityProviders, accountId)\n\n\tresult, err := w.awsClient.CognitoClient.CreateUserPoolClient(ctx, &cognitoidentityprovider.CreateUserPoolClientInput{\n\t\tUserPoolId: aws.String(userPoolId),\n\t\tClientName: aws.String(fmt.Sprintf(\"%s-client\", userPoolName)),\n\t\tGenerateSecret: false, // Native client - no client secret\n\t\tExplicitAuthFlows: desiredConfig.ExplicitAuthFlows,\n\t\tSupportedIdentityProviders: desiredConfig.SupportedIdentityProviders,\n\t\tCallbackURLs: desiredConfig.CallbackURLs,\n\t\tLogoutURLs: desiredConfig.LogoutURLs,\n\t\tAllowedOAuthFlows: desiredConfig.AllowedOAuthFlows,\n\t\tAllowedOAuthScopes: desiredConfig.AllowedOAuthScopes,\n\t\tAllowedOAuthFlowsUserPoolClient: desiredConfig.AllowedOAuthFlowsUserPoolClient,\n\t\tRefreshTokenValidity: desiredConfig.RefreshTokenValidity,\n\t\tAccessTokenValidity: desiredConfig.AccessTokenValidity,\n\t\tIdTokenValidity: desiredConfig.IdTokenValidity,\n\t\tTokenValidityUnits: desiredConfig.TokenValidityUnits,\n\t\tReadAttributes: desiredConfig.ReadAttributes,\n\t\tWriteAttributes: desiredConfig.WriteAttributes,\n\t})\n\tif err != nil {\n\t\treturn \"\", fwerror.WrapL(l, \"failed to create UserPool client: %w\", err)\n\t}\n\treturn *result.UserPoolClient.ClientId, nil\n}\n\n// createUserPoolIdentityProvider creates the identity provider in the user pool.\nfunc (w *AccountWatcher) createUserPoolIdentityProvider(ctx context.Context, userPoolId string, idp *database.IdentityProvider) error {\n\tl := *log.Ctx(ctx)\n\n\tproviderDetails, attributeMapping := w.getIdentityProviderConfig(idp)\n\n\tvar providerType types.IdentityProviderTypeType\n\tswitch idp.Config {\n\tcase \"SamlConfig\":\n\t\tproviderType = types.IdentityProviderTypeTypeSaml\n\tcase \"OidcConfig\":\n\t\tproviderType = types.IdentityProviderTypeTypeOidc\n\tdefault:\n\t\treturn fwerror.WrapL(l, \"unsupported identity provider config type: %s\", idp.Config)\n\t}\n\n\t_, err := w.awsClient.CognitoClient.CreateIdentityProvider(ctx, &cognitoidentityprovider.CreateIdentityProviderInput{\n\t\tUserPoolId: aws.String(userPoolId),\n\t\tProviderName: aws.String(idp.IdentityProviderId),\n\t\tProviderType: providerType,\n\t\tProviderDetails: providerDetails,\n\t\tAttributeMapping: attributeMapping,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"failed to create UserPool identity provider: %w\", err)\n\t}\n\treturn nil\n}\n\n// reconcileIdentityProviderConfig compares current vs desired identity provider configuration and updates if needed.\nfunc (w *AccountWatcher) reconcileIdentityProviderConfig(ctx context.Context, userPoolId string, idp *database.IdentityProvider, existingProvider *cognitotypes.ProviderDescription) error {\n\tl := *log.Ctx(ctx)\n\n\tcurrentConfig, err := w.awsClient.CognitoClient.DescribeIdentityProvider(ctx, &cognitoidentityprovider.DescribeIdentityProviderInput{\n\t\tUserPoolId: &userPoolId,\n\t\tProviderName: existingProvider.ProviderName,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error describing identity provider: %w\", err)\n\t}\n\n\tdesiredProviderDetails, desiredAttributeMapping := w.getIdentityProviderConfig(idp)\n\n\t// Remove AWS-generated fields that should be ignored from current config.\n\t// IDPInit is always explicitly set in desired config for SAML providers, so it's never filtered here.\n\tcurrentDetails := make(map[string]string)\n\tfor key, value := range currentConfig.IdentityProvider.ProviderDetails {\n\t\tif key == \"ActiveEncryptionCertificate\" || key == \"SSORedirectBindingURI\" || key == \"SLORedirectBindingURI\" {\n\t\t\tcontinue\n\t\t}\n\t\tcurrentDetails[key] = value\n\t}\n\n\tif maputil.Equals(currentDetails, desiredProviderDetails) &&\n\t\tmaputil.Equals(currentConfig.IdentityProvider.AttributeMapping, desiredAttributeMapping) {\n\t\tl.Info().Msg(\"Identity provider configuration is already up"} +{"text": "It’s August, and ninth and tenth graders across Arkansas are being introduced to high school. Meanwhile, their teachers are undergoing their own sometimes difficult transition to the new Common Core State Standards.\nInitiated by the National Governors Association and the Council of Chief State School Officers, the Common Core has been adopted in 45 states and the District of Columbia. Arkansas schools first implemented it in grades K-2 in 2011-12 and added it to grades 3-8 this past school year. Now it’s moved into high school. Across-the-board testing is being developed by a group of states, including Arkansas, known as PARCC. Those tests will be administered not this year, but the next.\nThe standards define the skills students at each grade level should have in math and in English language arts. For example, first graders should be able to add and subtract within 20, tell time, print upper- and lowercase letters, and describe what’s happening in a story. How those standards are taught – the curricula, in other words – is up to school districts and teachers.\nIt has been an imperfect transition. It turns out that most Arkansas schools lack the Internet broadband capacity to administer the tests, let alone deliver instruction needed to really do Common Core right. Fixing that won’t be cheap. Less significantly, the state didn’t want to pay for a transitional test until the new one is developed, so many students have been studying under Common Core while being tested under Arkansas’ old frameworks. Test scores, naturally, went down a little this past year.\nSupporters say the new standards are more rigorous and more focused than Arkansas’ old frameworks, which tended to cover too many subjects with too little depth. Educational and business groups – which aren’t always on the same page – agree that a mobile society needs a common set of standards so students can be compared with their national and international peers. Supportive educators say the standards give teachers more flexibility in designing their lessons than the old frameworks did.\nAt Bryant High School, Lisa Stine, 26, and her five fellow ninth grade English teachers designed their curriculum around “Romeo and Juliet,” “To Kill a Mockingbird” and other famous works. She’s pleased with the curriculum, but it did take some serious planning and negotiation.\n“We debated over ‘Fahrenheit 451’ with the eighth grade, and we just have to look at the reading level, the thematic content, what we have time for,” she said. “So eventually, they won out, but that’s OK, because we have lots of content that I’m really happy with, so you’ve got to give and take a little bit.”\nGiving and taking is what some people would like to do with Common Core – give it away and take it back to where it came from. After being adopted by 45 states rather quickly several years ago, a backlash is developing over fears that national standards will soon devolve into federal government control.\nIn Arkansas, the citizens group Arkansas Against Common Core remains vocal but relatively small, but then, so was the tea party at one time. Doubters have gained more traction in other states. In July, Georgia pulled out of PARCC, citing the $29.50 per student testing cost, though not out of Common Core itself.\nIt seems unlikely this ship could reverse course in Arkansas at this point. Educators have been preparing for this change since before 2010. It will be 2015 before the Legislature meets again in regular session, though legislators could agree to bring up the subject during next year’s fiscal session. Legislators did spend a day listening to opponents make their case in July, and the 2014 elections could produce a Legislature more willing to reconsider the Common Core.\nStine says that the majority – but not all – of the teachers at Bryant HIgh seem to favor the standards. Generally, the longer a teacher has been teaching under the old frameworks, the more skeptical they are of yet another “next big thing” in education.\n“There are some people here resistant to it, but I’ve heard a lot more positive things about it than negative for sure, especially here in Bryant. … The teachers that I work with and the teachers that I know generally think it’s a positive thing,” she said.\nHopefully they’re right. As of this August, every public school student in Arkansas is now studying under Common Core.\nSteve Brawner is an independent journalist in Arkansas. His email address is firstname.lastname@example.org. Follow him on Twitter at @stevebrawner."} +{"text": "May 29/14 7:35 am - World Cup Action Returns to Albstadt for Eliminator & Cross-country\nPosted by Editoress on 05/29/14\nOne week after the Mountain Bike World Cup returned to Europe for the first time in 2014 at Nove Mesto in the Czech Republic, teams and riders will descend upon Albstadt, Germany, for Round Three of the Eliminator (XCE) and Round Four of the Cross-country (XCO).\nLast year, Albstadt was the opening round of the World Cup, and provided some of the hardest and most exciting racing of the season, with new names making it onto the podium.\nThe Eliminator has been moved from an urban venue to the main competition site, keeping everything in one compact location. Incorporating elements of the XCO circuit, the approximately one kilometre course starts with a climb and then traverses the side of the mountain, hitting the technical \"Deep Hole\" section of the XCO course before finishing with a sprint down pavement to the finish line.\nWorld Cup leader and world champion Alexandra Engen (Ghost Factory) is the clear favourite for the women, having won both of the first two rounds. However, she will receive competition from Katharin Stirnemann (Sabine Spitz Haibike) and Jenny Rissveds (Scott-Odlo), who have both appeared on the podium in the previous two rounds. Canada had multiple entries in the women's Eliminator, with Andreane Lanthier-Nadeau (Team Canada) making it through to the small final and finishing seventh overall, despite being sick.\nLanthier-Nadeau will not be participating in the Eliminator in Albstadt and will instead concentrate on the Cross-country (XCO).\nAlexandra Engen (Ghost Factory) winning in Nove Mesto\nAndreane Lanthier-Nadeau (Team Canada) made it through to the small final in Nove Mesto\nFor the men, Daniel Federspiel (Oetztal-Scott) took over the World Cup lead after Round Two, when Round One winner Samuel Gaze of New Zealand broke his chain in the quarterfinals and was eliminated. Others to watch will include the very fast Miha Halzer of Slovenia, who won the last round, and world champion Paul van der Ploeg of Australia. Last year, Raphael Gagne (Team Canada) finished fourth on the urban circuit, however, Gagne is focussing on the cross-country this year and did not compete in the Eliminator last weekend. Canadian champion Leandre Bouchard (Team Canada) was the only Canadian to qualify last weekend, but was knocked out in the first round; he will be hoping to do better this week.\nMiha Halzer winning in torrential rain in Nove Mesto\nDaniel Federspiel leading Leandre Bouchard\nThe XCO circuit is little changed from last year, but the riders are well aware of how difficult it is, with steep punishing climbs in the first half of the 4.18 kilometre course.\nThe women's cross-country series has had three winners in three rounds, so there is no clear favourite in Albstadt. Jolanda Neff (Liv Pro XC), the winner of Round One, continues to lead the overall standings, however, her team mate Pauline Ferrand Prevot absolutely dominated the last round, winning by almost three minutes. The other rider to watch will be former World Cup champion Catharine Pendrel (Luna). Pendrel returned to World Cup competition last weekend after missing the earlier rounds due to injury, however, the Canadian showed that she is clearly on form by finishing second to Ferrand Prevot. Canadian champion Emily Batty (Trek Factory Racing) had an uncharacteristically distant 18th place last weekend, and now sits fifth in the overall standings and will be looking to get back on the podium.\nPauline Ferrand Prevot winning Nove Mesto\nCatharine Pendrel made a strong return after early seson injury\nWorld Cup leader Jolanda Neff leading out the start in Nove Mesto\nThe men's competition will be equally interesting. Julien Absalon (BMC) won the first two rounds, while his perennial rival Nino Schurter (Scott-Odlo) won last weekend. Both had difficulties last year at Albstadt, with Absalon having to drop out with mechanical problems while holding a commanding lead, and Schurter having an uncharacteristically bad day to finish 18th. Others to watch include Olympic champion Jaroslav Kulhavy (Specialized Racing XC) and Australian champion Daniel McConnell (Trek Factory Racing), who had a breakthrough ride at Albstadt last year, winning the first World Cup of his career, and who has since become a regular podium threat.\nDaniel McConnell (Trek Factory Racing), had a breakthrough ride at Albstadt last year\nWorld Cup leader Julien Absalon\nGagne, who is the top-ranked Canadian after finishing 14th in Round One and 23rd last weekend (he skipped Round Two in Cairns, Australia), will be looking to break into the top-20 this weekend. The Scott-3Rox duo of Geoff Kabush and Derek Zandstra will be looking to bounce back from poor showings in their first World Cup of the season last weekend, when Kabush was 49th and Zandstra was lapped.\nIn the Under-23 men, Canadian champion Leandre Bouchard (Team Canada) was fifth last weekend at Nove Mesto, and will be hoping to at least equal it this weekend."} +{"text": " to date\")\n\t\treturn nil\n\t}\n\n\t_, err = w.awsClient.CognitoClient.UpdateIdentityProvider(ctx, &cognitoidentityprovider.UpdateIdentityProviderInput{\n\t\tUserPoolId: &userPoolId,\n\t\tProviderName: existingProvider.ProviderName,\n\t\tProviderDetails: desiredProviderDetails,\n\t\tAttributeMapping: desiredAttributeMapping,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error updating identity provider: %w\", err)\n\t}\n\n\treturn nil\n}\n\n// reconcileUserPoolClientConfig compares current vs desired client configuration and updates if needed.\nfunc (w *AccountWatcher) reconcileUserPoolClientConfig(ctx context.Context, userPoolId string, existingClient *cognitotypes.UserPoolClientDescription, userPoolName string, supportedIdentityProviders []string, accountId string) error {\n\tl := *log.Ctx(ctx)\n\n\tcurrentConfig, err := w.awsClient.CognitoClient.DescribeUserPoolClient(ctx, &cognitoidentityprovider.DescribeUserPoolClientInput{\n\t\tUserPoolId: &userPoolId,\n\t\tClientId: existingClient.ClientId,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error describing user pool client: %w\", err)\n\t}\n\n\tdesiredConfig := w.getUserPoolClientConfig(userPoolName, supportedIdentityProviders, accountId)\n\n\tneedsUpdate := !sliceutil.SameElements(currentConfig.UserPoolClient.SupportedIdentityProviders, desiredConfig.SupportedIdentityProviders) ||\n\t\t!sliceutil.SameElements(currentConfig.UserPoolClient.CallbackURLs, desiredConfig.CallbackURLs) ||\n\t\t!sliceutil.SameElements(currentConfig.UserPoolClient.LogoutURLs, desiredConfig.LogoutURLs) ||\n\t\t!sliceutil.SameElements(currentConfig.UserPoolClient.AllowedOAuthScopes, desiredConfig.AllowedOAuthScopes)\n\n\tif !needsUpdate {\n\t\tl.Info().Msg(\"User pool client configuration is already up to date\")\n\t\treturn nil\n\t}\n\n\t_, err = w.awsClient.CognitoClient.UpdateUserPoolClient(ctx, &cognitoidentityprovider.UpdateUserPoolClientInput{\n\t\tUserPoolId: &userPoolId,\n\t\tClientId: existingClient.ClientId,\n\t\tClientName: existingClient.ClientName, // Keep existing name\n\t\tSupportedIdentityProviders: desiredConfig.SupportedIdentityProviders,\n\t\tCallbackURLs: desiredConfig.CallbackURLs,\n\t\tLogoutURLs: desiredConfig.LogoutURLs,\n\t\tAllowedOAuthFlows: desiredConfig.AllowedOAuthFlows,\n\t\tAllowedOAuthScopes: desiredConfig.AllowedOAuthScopes,\n\t\tAllowedOAuthFlowsUserPoolClient: desiredConfig.AllowedOAuthFlowsUserPoolClient,\n\t\tExplicitAuthFlows: desiredConfig.ExplicitAuthFlows,\n\t\tRefreshTokenValidity: desiredConfig.RefreshTokenValidity,\n\t\tAccessTokenValidity: desiredConfig.AccessTokenValidity,\n\t\tIdTokenValidity: desiredConfig.IdTokenValidity,\n\t\tTokenValidityUnits: desiredConfig.TokenValidityUnits,\n\t\tReadAttributes: desiredConfig.ReadAttributes,\n\t\tWriteAttributes: desiredConfig.WriteAttributes,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error updating user pool client: %w\", err)\n\t}\n\treturn nil\n}\n\n// reconcileUserPoolDomainConfig compares current vs desired domain configuration and updates if needed.\nfunc (w *AccountWatcher) reconcileUserPoolDomainConfig(ctx context.Context, userPoolId, domainName string) error {\n\tl := *log.Ctx(ctx)\n\n\tcurrentConfig, err := w.awsClient.CognitoClient.DescribeUserPoolDomain(ctx, &cognitoidentityprovider.DescribeUserPoolDomainInput{\n\t\tDomain: &domainName,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error describing user pool domain: %w\", err)\n\t}\n\n\t// DescribeUserPoolDomain returns a non-nil DomainDescription with all fields nil\n\t// when the domain by that name does not exist in Cognito's domain index. In that\n\t// case we still need to reconcile, because the user pool itself may already have a\n\t// (different / stale) domain bound to it; CreateUserPoolDomain would then fail with\n\t// \"User pool already has a domain configured\" since each user pool can only have\n\t// one hosted-UI domain. So we look up the user pool's actually-bound domain and\n\t// disassociate it before creating the desired one.\n\tif currentConfig.DomainDescription != nil &&\n\t\tcurrentConfig.DomainDescription.UserPoolId == nil &&\n\t\tcurrentConfig.DomainDescription.Domain == nil {\n\t\tl.Warn().Str(\"domain\", domainName).Msg(\"Domain not found in Cognito - reconciling user pool's bound domain before create\")\n\n\t\tif err := w.clearStaleUserPoolDomain(ctx, userPoolId); err != nil {\n\t\t\treturn fwerror.WrapL(l, \"error clearing stale user pool domain before create: %w\", err)\n\t\t}\n\n\t\t_, err = w.awsClient.CognitoClient.CreateUserPoolDomain(ctx, &cognitoidentityprovider.CreateUserPoolDomainInput{\n\t\t\tDomain: &domainName,\n\t\t\tUserPoolId: &userPoolId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn fwerror.WrapL(l, \"failed to create domain %s for user pool %s: %w\", domainName, userPoolId, err)\n\t\t}\n\t\tl.Info().Str(\"domain\", domainName).Msg(\"Successfully created domain after clearing stale binding\")\n\t\treturn nil\n\t}\n\n\tif currentConfig.DomainDescription.Use"} +{"text": "Ten-year fight over drainage ditch unresolvedWoods of Seaside resident says area is unsafe\nJoe Sudimak is worried that someone – possibly his own grandchildren – will fall and get seriously injured in a large drainage ditch along his property line in the Woods at Seaside near Rehoboth Beach.\nFor 10 years, he has been trying to get someone in his community to take his concerns seriously; he hasn't had any success. Over the past four years, he has stepped up his efforts to draw attention to his dilemma.\n“I was patient for a long time,” he said, adding that the abundance of rain during 2010 exacerbated his concerns.\n“Four people have slipped into the ditch; it's an accident waiting to happen,” he said. “The community brushes it off like nothing is going on.”\nBut, he may have found an ally in House Speaker Pete Schwartzkopf, D-Rehoboth Beach. After visiting the site on two occasions, Schwartzkopf said he agrees with Sudimak that the area is dangerous. “The only problem it that this is on private property,” he said. “But I'm looking into it to see what can be done.”\nSchwartzkopf has had Department of Natural Resources and Environmental Control and Delaware Department of Transportation staff look at the drainage ditch. He accompanied DelDOT staff to the site on Aug. 4.\nSudimak wants pipe buried\nStanding in Sudimak's front yard on Beaver Dam Reach, it's easy to see that water runoff from his end of the community goes by his property. Water comes off the road onto a large concrete pad into a 24-inch pipe, onto rip-rap rocks and then to a retention pond near his backyard.\nA portion of the pipe is buried underground. He's been asking the community homeowners' association to extend the pipe to the retention pond, remove the rocks and bury the remaining section.\nSchwartzkopf said the rocks in the ditch break up the force of water draining into the retention pond. “I don't see an issue with extending the pipe, but they may have to place rocks further into the pond,” he said.\nAfter years of debate over the issue, the HOA offered Sudimak an ultimatum: It would put up shrubbery to create a living fence along the border of the ditch. Sudimak, 82, said that solution does not go far enough. “It's a ridiculous offer,” he said.\nAccording to the HOA, after a review of Sudimak's complaints, the community’s insurance carrier, an independent contractor and the Sussex Conservation District concurred it was not necessary to extend the pipe and fill in the ditch.\nHe was told in a September 2011 letter from the HOA that extending and burying the pipe would create significant debris accumulation in the pipe that would present an entrapment danger to humans and animals. He was also told the ditch was not viewed as a safety hazard.\nSudimak rejects that conclusion pointing to a letter in his large file of paperwork from the community's insurance company that states some action should be taken.\nThen this past June, Sudimak was told in a letter from Right Property Management that the condition existed when he purchased the property and his request to put the pipe underground would not be approved.\nHe has since contacted the community's liability insurance carrier who has committed to send an agent to visit the drainage ditch in early August.\nSudimak said the HOA spends money to maintain the ditch. “If they eliminate the hazard they will also eliminate the maintenance and save money,” he said.\nSudimak's only way to reach his neighbors about his concerns is to make copies of his letters and documents and hand deliver them to more than 80 houses. He's been doing that for years.\nIn his last of many letters to community homeowners, Sudimak wrote: “We continue to ask for your support so that no one should have to suffer any injury as a result of our community's negligence to eliminate this long-standing danger.”\nSo far, the only resident who has supported him is his neighbor who also borders the drainage ditch.\nSudimak, a retired teacher and school administrator from Hockessin, moved with his wife to the area in 2001. “This is supposed to be our American dream,” he said. “It used to be that people cared for one another, but not today.”"} +{"text": "Hershey now has a 3-1 series lead after a 5-0 loss in...\nFive Questions Heading Into The Season\nPhoto by Alena Schwarz\nThe Caps had a new coach and new players even before the lockout started, but now that the NHL is back, not too much has changed for the heading into the season. Only, they have 48 games to make things work, and the answers to these questions may hold the fate of their entire season.\n1) How quickly can the Capitals learn Coach Oates’ system?\nWith training camps lasting only for a few days, new head coach Adam Oates, along with assistants Calle Johansson and Tim Hunter, have the daunting task of trying to instill a brand new system within a very short period of time. Last year, Washington found themselves in a similar predicament when Bruce Boudreau was fired midseason and Dale Hunter took over behind the bench. While Oates’s system will be more offense-oriented than Hunter’s, the Capitals can’t afford the same hiccups they had when Hunter took over. The teams that will qualify for the playoffs this year will be the ones who go on long winning streaks and are able to compile a lot of points in a short period of time. If Washington cannot figure out Oates’ system very quickly, they may find themselves in a position they haven’t been in since April of 2007: Out of the NHL Playoffs.\n2) Can Alex Ovechkin regain the form he once had?\nEver since he scored 50 goals and registered 109 points in the 2009-2010 season, Alex Ovechkin’s points have been very un-Ovechkin-like, and many wonder if Washington’s captain will ever put up the same point totals he once had. The good news here is that while playing for Dynamo Moscow of the KHL, Ovechkin was averaging over a point per game in Russia- registering 40 points in 31 games. While the hope is that his KHL experience provides some continuity to the NHL, it wouldn’t be surprising if the higher-level competition knocks him off his stride. Coach Oates has flirted with him playing right wing during camp, in the hopes that he breaks “old habits.” If Ovechkin can’t find his scoring touch, 2013 may be a long season for fans.\n3) Will everyone stay healthy?\nThe Capitals will already be without the services of Brooks Laich for the first week of the season, who injured himself while playing in Switzerland. Nick Backstrom and Ovechkin also had scares while playing in Russia. Mike Green hasn’t played over 50 games in a season since the 2009-2010 campaign. While the organization and the players themselves say they are going to be 100 percent, one can’t help but to wonder if that’s truly the case. Although health is a major component of any hockey season, it is of grave importance this year. If some of these injuries rear their ugly heads at any point during this season, it could spell doom for the Capitals’ playoff chances.\n4) Can Wojtek Wolski play up to his potential?\nWolski, the former 1st round draft pick of the Colorado Avalanche, has been plagued with injuries over the last few seasons. He is a potential 20-goal scorer and will greatly benefit from playing on the same line as Mike Ribeiro and Troy Brouwer. George McPhee signed Wolski for a one year deal worth $600,000 over the summer in order to help fill the hole left by Alexander Semin. If Wolski can score 20 goals this season, he will not only help Caps fans forget about Semin but he may also be rewarded with a new contract come July 1st.\n5) How far will Holtby fall?\nAfter injuries to Michal Neuvirth and Tomas Vokoun, the Capitals were forced to name Braden Holtby their starter in the playoffs. He answered the call better than anyone had predicted by boasting a .935 save percentage and a 1.95 goals against average. While his numbers are similar in the regular season (a .929 save percentage and a 2.02 goals against average in 14 games), at some point he will regress to the mean and his numbers will become more “average.” The most important thing for the Capitals is for Holtby to try and not let the inevitable rise in his numbers to derail the Caps season. While Neuvirth is a more-than-capable backup, Holby will be looked upon to make the majority of the starts. If Holtby can keep his numbers steady, he will be the x-factor in helping the Capitals to qualify for the playoffs."} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/account_watcher/user_test.go. Lines: 863.\n\npackage accountwatcher\n\nimport (\n\t\"context\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/auth\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/database\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/unkey\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\t\"github.com/fw-ai/fireworks/go/ptr\"\n\tresourcename \"github.com/fw-ai/fireworks/go/resource_name\"\n\tunkeyclient \"github.com/fw-ai/fireworks/go/unkeyv2\"\n\t\"github.com/stretchr/testify/mock\"\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/unkeyed/sdks/api/go/v2/models/components\"\n\t\"github.com/unkeyed/sdks/api/go/v2/models/operations\"\n)\n\nfunc TestMaybeCreateDefaultAPIKey_CreateNew(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\tunkeyInternalApiId = ptr.Ptr(\"fake_apiId_internal\")\n\tw := newTestWatcher(t)\n\taccountID := \"my-account\"\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tmock.Anything,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId_internal\",\n\t\t\tExternalID: &accountID,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"CreateKey\",\n\t\tmock.Anything,\n\t\tcomponents.V2KeysCreateKeyRequestBody{\n\t\t\tAPIID: \"fake_apiId_internal\",\n\t\t\tExternalID: ptr.Ptr(unkey.ExternalID(\"my-account\")),\n\t\t\tName: ptr.Ptr(\"playground\"),\n\t\t\tEnabled: ptr.Ptr(true),\n\t\t\tPrefix: unkeyInternalKeyPrefix,\n\t\t\tRoles: []string{\"account-type-developer\"},\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t},\n\t\t\tRecoverable: ptr.Ptr(true),\n\t\t},\n\t).Return(&operations.KeysCreateKeyResponse{\n\t\tV2KeysCreateKeyResponseBody: &components.V2KeysCreateKeyResponseBody{\n\t\t\tData: components.V2KeysCreateKeyResponseData{\n\t\t\t\tKeyID: \"keyID\",\n\t\t\t\tKey: \"key\",\n\t\t\t},\n\t\t},\n\t}, nil)\n\trequire.Nil(t, w.maybeCreateDefaultAPIKey(context.Background(),\n\t\t&database.User{\n\t\t\tEmail: \"alice@gmail.com\",\n\t\t},\n\t\t&database.Account{\n\t\t\tAccountName: *resourcename.NewAccountName(\"my-account\"),\n\t\t\tCreateTime: w.now(),\n\t\t}),\n\t)\n}\n\nfunc TestMaybeCreateDefaultAPIKey_CreateNewImmediateSuspension(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\tunkeyInternalApiId = ptr.Ptr(\"fake_apiId_internal\")\n\tw := newTestWatcher(t)\n\taccountID := \"my-account\"\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tmock.Anything,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId_internal\",\n\t\t\tExternalID: &accountID,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"CreateKey\",\n\t\tmock.Anything,\n\t\tcomponents.V2KeysCreateKeyRequestBody{\n\t\t\tAPIID: \"fake_apiId_internal\",\n\t\t\tExternalID: ptr.Ptr(accountID),\n\t\t\tName: ptr.Ptr(\"playground\"),\n\t\t\tEnabled: ptr.Ptr(false),\n\t\t\tPrefix: unkeyInternalKeyPrefix,\n\t\t\tRoles: []string{\"account-type-developer\"},\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\t\"suspended\": true,\n\t\t\t},\n\t\t\tRecoverable: ptr.Ptr(true),\n\t\t},\n\t).Return(&operations.KeysCreateKeyResponse{\n\t\tV2KeysCreateKeyResponseBody: &components.V2KeysCreateKeyResponseBody{\n\t\t\tData: components.V2KeysCreateKeyResponseData{\n\t\t\t\tKeyID: \"keyID\",\n\t\t\t\tKey: \"key\",\n\t\t\t},\n\t\t},\n\t}, nil)\n\trequire.Nil(t, w.maybeCreateDefaultAPIKey(context.Background(),\n\t\t&database.User{\n\t\t\tEmail: \"alice@gmail.com\",\n\t\t},\n\t\t&database.Account{\n\t\t\tAccountName: *resourcename.NewAccountName(accountID),\n\t\t\tCreateTime: w.now(),\n\t\t\tAccountDBOnlyFields: database.AccountDBOnlyFields{\n\t\t\t\tSuspendedUntil: w.now().Add(time.Hour),\n\t\t\t},\n\t\t}),\n\t)\n}\n\nfunc TestMaybeCreateDefaultAPIKey_AlreadyExists(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\tunkeyInternalApiId = ptr.Ptr(\"fake_apiId_internal\")\n\tw := newTestWatcher(t)\n\taccountID := \"my-account\"\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tmock.Anything,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId_internal\",\n\t\t\tExternalID: &accountID,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysRespo"} +{"text": "JWC TO ELIZA STODART; 5 February 1830; DOI: 10.1215/lt-18300205-JWC-EA-01; CL 5:68-70.\nJWC TO ELIZA STODART\nCraigenputtoch 5th February\nThis has been the unluckiest new-year to me! Every day some Job's-post or other tempts me to curse my stars! It began with the death of my pig—my sweet, wise, little pig, who was the apple of my eye—he got a surfeit one evening, and next morning I was pigless! and just when my long cherished hopes of him were approaching their fulfilment, and a few weeks more would have plumped him out into such delicate bacon! So the glory of this world passeth away!1 On the back of this severe family-affliction followed a disaster occasioned by a quite opposite cause, being the consequence not of overfeeding but pure starvation: a stranger cat under the pangs of famine rushed wildly into our larder one day, making straight in the direction of a beefsteak—and, before you could bless yourself, snack [quickly] went the steak, and smash went a corner dish; which you know was as bad as if the whole four corner dishes had been broken or at least a pair of them. And alas! this was only a beginning—this smash, it seemed, was but a signal for the breakage of all the crockery glass and china about the house— For now Nancy2 became as it were suddenly possessed with a demon of destruction which shivered everything she laid hands on—nay—the supper-tray with all its complement of bowls, plates &c &c she “soopit ower wi her tails” [swept over with the tail of her dress]! one fell soop!— But already I must have filled your eyes with tears—and will not tax your sympathy with a detail of all my grievances—indeed one sheet would not hold them. Only attend to the last, which you must help me to remedy, being in truth the main cause of my writing again so soon—— Last week we were despatching a boxfull of books to Sam3 to be transmitted to their various owners in Edinr— None of our own people being “at the town”4 that Wednesday it was entrusted to the Carrier, who naturally was charged to pay it—but our ill luck pursuing us even in this small matter, the carrier either misunderstood or proved oblivious; and so the package was despatched with all its charges to be defrayed at Bank-street!— Now, tho' intrinsically considered the damage done by this mistake be trifling, yet you will understand how one should find it abundantly vexatious—and I beseech you to explain to Mr Aitken how the omission which must have appeared to him so singularly inconsiderate occur[r]ed— and to charge him (by his Lady's love or whatever he values most) to place this with every expence which these book commissions cost him, to Carlyle's account. If he does not we shall not be able to apply to him with any freedom, and I doubt if in all Edinr we could find another as helpful.\nAnd now contrary to my usual practice “I must plant a remark” or two on the weather— It is well we have meat and fire ‘within ourselves’ (as Mrs Roughhead5 used to say) otherwise we should live in hourly apprehe[n]sion of being snowed up, and consequently starved to death without even the mournful alternative of “eating our own children.” Oh for a sight of the green fields again or even the black peat-moss—anything rather than this wide waste of blinding snow! The only time when I can endure to look out (going out is not [to] be dreamt of) is by moonlight, when the enclosure before the house is literally filled with hares—and then the scene is really very picturesque—the little dark forms skipping and bounding over the white ground so witch-like! A still more novel spectacle exhibited itself the other day at broad noon—seven black-cocks “as fine” (or perhaps finer) “as ever stepped the streets of Greenock”6 came running down the wood to within a few yards of the door— Such are the pleasing varieties of life here!— You will allow they are extremely innocent—\nCarlyle inquired if I had sent his love the last time—and charges me to remember it now—we speak of your uncle and you over our evening fire both often and kindly—my kindest regards are with you both—my Grandfather continues much the same— God bless you—always affectionately yours\nJane W Carlyle\nA good new-year, and many of them!— T. C."} +{"text": "Posted on: June 6th, 2008 - News Blog\nCarnival Cruise Lines’ 2,974-passenger Carnival Freedom, which was originally scheduled to operate six- and eight-day Caribbean cruises from Fort Lauderdale, Fla., on a seasonal basis, will now operate the program year-round, following the conclusion of its 2008 Mediterranean program in October.\nCarnival Freedom’s year-round schedule from Fort Lauderdale begins November 22, 2008, with six-day cruises departing Sundays and visiting Key West, Fla., George Town, Grand Cayman; and Ocho Rios, Jamaica, while eight-day voyages departing Saturdays alternate to the eastern and western Caribbean.\nEight-day eastern Caribbean voyages visit five ports: San Juan, Puerto Rico; St. Thomas/St. John, U.S.V.I.; Antigua, Lesser Antilles; Tortola/Virgin Gorda, B.V.I.; and Nassau, The Bahamas. Western Caribbean cruises include Cozumel, Mexico; Limon, Costa Rica; and Colon, Panama.\nAccording to Lynn C. Torrent, Carnival’s senior vice president of sales and guest services, “The Caribbean is, by far, the most popular cruising region for North Americans. It is easily accessible and affordable, and when combined with attractive, destination-rich itineraries such as these, a Caribbean cruise represents the ideal vacation choice for consumers.”\nTorrent noted that while the plan had been for Carnival Freedom to return to Europe in 2009, the strong performance of the line’s entire Caribbean fleet made the new six- and eight-day deployment a compelling choice.\nExciting Six- and Eight-Day Cruises\nOn Carnival Freedom’s six-day cruises, guests can enjoy three distinctly different island experiences – Key West, Grand Cayman and Ocho Rios – each of which offers excellent shopping and dining opportunities, along with a variety of “fun in the sun” activities, including magnificent beaches and watersports.\nCarnival Freedom’s eight-day eastern Caribbean cruises feature five ports – San Juan, St. Thomas (optional shore excursion to St. John), Antigua, Tortola (optional shore excursion to Virgin Gorda) and Nassau – providing consumers a diversity of landside experiences, along with a variety of restaurants, shops and boutiques. A wide range of shore excursions are also offered, including horseback riding, scuba diving, hiking and kayaking. During an extended evening stay in San Juan, guests can also sample that city’s legendary nightlife.\nIn addition to historical sites and attractions, including centuries-old ruins, the eight-day western Caribbean cruises to Cozumel, Limon and Colon offer a multitude of dining, shopping and watersports experiences. A number of “adventure-type” tours, including canoeing, and white-water rafting, are featured, as well. From Colon, guests can experience all the wonders of the Panama Canal and even a unique bi-coastal railroad adventure.\nBoth of these eight-day cruises offer visits to ports that are usually available only on cruises of 10 days or longer. In addition, these cruises depart on Saturdays and return on Sundays, which allow them to fit into the consumer’s traditional one-week vacation pattern.\nVariety of ‘Fun Ship’ Amenities\nSpanning a length of 952 feet, Carnival Freedom offers a variety of on-board amenities and facilities: a 14,500-square-foot health and wellness facility, a jogging track, a duty-free shopping mall, full casino gambling, and 22 lounges and bars, including a multi-level theater showcasing lavish revues.\nDining options include two two-level main dining rooms offering extensive menus and wine lists, a 1,200-seat poolside eatery with full breakfast, lunch and dinner buffets and a 24-hour pizzeria, and an elegant reservations-only supper club.\nFamily friendly amenities include children’s programs for three different age groups – “Camp Carnival” for kids ages 2-11, “Circle C” for ’tweens, and “Club O2” for older teens – with facilities and activities for each.\nCarnival Freedom also offers a variety of accommodations including a wide selection of balcony staterooms and suites – perfect for scenic cruising. All Carnival Freedom accommodations feature the Carnival Comfort Bed sleep system with plush mattresses, luxurious duvets and high quality linens and pillows. Carnival Freedom also houses an Internet Café, along with ship-wide Wi-Fi access and cell phone service.\nReservations are currently being accepted for the Carnival Freedom’s year-round six- and eight-day voyages from Fort Lauderdale, Fla. Special rates for third and fourth guests sailing in the same stateroom, along with round-trip air supplements from a variety of North American gateways and pre- and post-cruise South Florida land stays, are also available.\nFor additional information and reservations, contact any travel agent, call 1-800-CARNIVAL or visit carnival.com."} +{"text": "nseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_123\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil)\n\trequire.Nil(t, w.maybeCreateDefaultAPIKey(context.Background(),\n\t\t&database.User{\n\t\t\tEmail: \"alice@gmail.com\",\n\t\t},\n\t\t&database.Account{\n\t\t\tAccountName: *resourcename.NewAccountName(accountID),\n\t\t}),\n\t)\n}\n\nfunc TestReconcileUnkeyAPIKeys_NoExistingKeysForAccount(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId_inference\",\n\t\t\tExternalID: &accountId,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{},\n\t\t},\n\t}, nil)\n\t// No calls to CreateKey or UpdateKey expected\n\n\tdba := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(accountId),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{\n\t\tUserName: *resourcename.NewUserName(accountId, accountId),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dbu)\n\n\terr := w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba)\n\n\trequire.NoError(t, err)\n}\n\nfunc TestReconcileUnkeyAPIKeys_NoExistingKeysForUser(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId_inference\",\n\t\t\tExternalID: &accountId,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_123\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"bob@gmail.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil)\n\t// No calls to CreateKey or UpdateKey expected\n\n\tdba := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(accountId),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{\n\t\tUserName: *resourcename.NewUserName(accountId, accountId),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dbu)\n\n\terr := w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba)\n\trequire.NoError(t, err)\n}\n\nfunc TestReconcileUnkeyAPIKeys_UpdateMetadata(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\t//accountCreatedAt := time.Date(2025, 5, 1, 0, 0, 0, 0, time.UTC)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId_inference\",\n\t\t\tExternalID: &accountId,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_123\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"UpdateKey\",\n\t\tctx,\n\t\tcomponents.V2KeysUpdateKeyRequestBody{\n\t\t\tKeyID: \"key_123\",\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\t\"user_id\": \"my-account\",\n\t\t\t},\n\t\t\tEnabled: ptr.Ptr(true),\n\t\t},\n\t).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\n\tdba := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(accountId),\n\t\tEmail: \"alice@gmail.com\",\n\t\tCreateTime: w.now(),\n\t}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{\n\t\tUserName: *resourcename.NewUserName(accountId, accountId),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dbu)\n\n\terr := w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba)\n\trequire.NoError(t, err)\n}\n\n// A user over their per-user serverless limit gets serverless_consumption_blocked\n// stamped on their fw_ key — and Enabled stays true (fw_ keys also serve\n// dedicated traffic; the gateway enforces the 402 scope-aware, FIR-37533).\nfunc TestReconcileUnkeyAPIKeys_ServerlessBlockStamped(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\taccountId := \"acct-sl-stamp\" // unique: account_watcher tests share one DB\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer un"} +{"text": "Article by: Perry Romanowski\nI saw this article in the Guardian about the delay the EU faces in their ban of animal testing of cosmetic products.\nFor someone new in the cosmetic industry, the role of animal testing may be confusing. There are many brands out there that claim to be ‘cruelty free’ and that ‘don’t test on animals.’ It might make an aspiring cosmetic chemist wonder, why do some companies continue to test on animals? What kind of animal testing is done? If one company could stop testing on animals, why don’t they all?\nGood questions. But before we answer, let’s go over what animal testing has been used in the cosmetic industry.\nCosmetic animal testing\nThere are a number of animal tests that can be done on cosmetic formulas and ingredients. The primary tests include the following.\n1. Draize test – This is a procedure used to determine dermal irritation. Animals used are albino rabbits who have much more sensitive skin than humans. Semiocclusive patches of the test material are placed on skin and readings are taken at 24 and 72 hours. The skin is then graded for erythema and edema. In the United States, this test is required by law for cosmetics and skin care products under the Federal Hazardous Substances Act.\n2. Eye irritancy test – Tests what happens if the cosmetic gets into the eye. It involves albino rabbits again and compounds are put into the eyes. Evaluations take place at 24, 48, 72 hrs and up to 7 days.\n3. Guinea Pig Maximization test – This test measures for the sensitizing potential of an ingredient and involves injecting the compound under the skin followed by topical application.\nI’ve never been too comfortable doing animal tests and as a cosmetic formulator, I never had to. Fortunately, it is unlikely that you will ever have to do any animal testing yourself. It is typically done by an outside testing laboratory. But governments still require cosmetic companies to demonstrate their products are safe and while they don’t usually require animal testing, for some products, it is the only proof they accept.\nThoughts on cosmetic animal testing\nI was once asked a series of questions about animal testing. Here is my perspective.\n1. Do you think that animal testing for cosmetics should be banned?\nWhile I don’t like animal testing, as the original story shows there are currently no suitable alternatives for some types of tests. I don’t think animal testing should be banned until there are alternative tests that help prove products are safe.\n2. Should animal testing be banned for cosmetics, but still be allowed for medicine?\nAnimal testing is not something that anyone wants to do. Scientists feel the same affection for animals as everyone else. But until alternative tests are better developed, banning animal testing for either cosmetics or medicine seems unethical. Aren’t human lives more important than animals?\nEU animal testing ban\n3. Do you agree with the EU ban on animal testing? What will the effects be?\nI don’t agree or disagree with the decision made by the EU. The truth is cosmetics are not vital for living a healthy life. The result of banning animal testing will be that no new cosmetic products will be made. All you will get in the future are color & bottle changes using the same products you have today. Cosmetic innovation will stop. Solutions to acne, dandruff, dry skin, frizzy hair, etc. will not be developed. Fortunately, the products available now are often good enough. If these problems were never solved and there were never a new cosmetic made, the world would be just fine.\nHowever, it seems strange people get upset about animal testing, but still eat meat, kill mice & rats, and wear leather products.\nPros of a ban: fewer animals will be killed\nCons of a ban: Cosmetic problems will not be solved, no new ingredients will be used, innovation stops\n4. Do you use cosmetics products that have been tested on animals?\nYes I do. So do you. Everyone uses products that have ingredients that were tested on animals. It is misleading when companies say they don’t test on animals. ALL cosmetics have been tested directly or indirectly on animals.\nThe truth is, very few cosmetic companies directly test their products on animals. Animal testing is expensive and terrible for public relations. Companies who say they don’t test on animals either use ingredients that were already tested on animals or have their raw material suppliers do the animal testing. They can argue that they never tested their formula on animals (which they technically don’t) because they know they are using only raw materials that have already been tested on animals (by someone else).\nSince all ingredients have been tested on animals, there does not seem to me to be any moral high ground to avoiding companies based on whether they claim to test on animals or not.\nGetting rid of animal testing\n5. With all the efforts to stopping animal testing for cosmetics, do you think that it’s possible to one day completely get rid of animal testing for cosmetics?\nYes, I believe one day animal testing of cosmetics will be a thing of the past. Everyone wants to get rid of this type of testing. No one wants to hurt animals. Scientists are working hard to create testing alternatives that work. We are just now seeing some tests that are receiving approval from governmental agencies. I believe withing 10 — 20 years animal testing of cosmetics will be practically non-existent. But until there are reliable testing alternatives (there aren’t yet) animal testing will still be necessary.\nWhat are your thoughts on cosmetic animal testing? Does it affect your formulating decisions? Leave a comment below."} +{"text": "Update at 5:30 p.m.: Laura McGowan, spokesperson for Clarke, maker of Duet, just sent word that tonight’s spraying will commence a little earlier than expected. McGowan says the planes will leaves Executive Airport at 7:45 p.m. and begin spraying shortly after that. “They have an opportunity to go up in daylight,” she says, “so we’re taking it.”\nUpdate at 4 p.m.: Below you will find the map the county just sent out showing what will be sprayed tonight. It’s confusing, so let me simplify: Anything in gray isn’t being sprayed. Either it’s already been sprayed or, when it comes to the southern cities, may be sprayed; that decision’s due Tuesday at 2 p.m. But if you’re in the yellow, purple, orange or pink — yes, you’re being doused with Duet tonight starting ’round 9 p.m. In other words, move your outdoor party inside. And take the dog out early.\nLet Dallas City Hall explain, so we’re all on the same page:\nAerial mosquito spraying will continue tonight to include all areas in the City of Dallas not covered last night due to weather conditions. Spraying is scheduled to begin at 9 p.m. and will continue until approximately 1a.m., weather permitting. Spraying began last night shortly after 10 p.m. but was halted at midnight because of rain.\nA total of 62.8 square miles have now been sprayed in the City of Dallas, leaving 272.6 miles yet to be covered in the city limits. The priority tonight is to spray all areas missed last night, as well as the rest of the City of Dallas. Other cities will be sprayed as well. Areas to be sprayed tonight in the City of Dallas are:\nApproximately one half mile west of Jupiter Road and Buckner Blvd., east to the City limit\nSouth Dallas: Interstate 30, south to the City limit\nWest Dallas: North of Interstate 30 and west of the Dallas North Tollway to the City limit\nFar North Dallas: North of LBJ Freeway to the City limit\nIf weather disrupts the spraying operation tonight, spraying will continue tomorrow to complete the mission in those areas yet to be sprayed. The public will be notified if spraying is conducted on Saturday. There will not be spraying on Sunday to allow for new mosquitoes to hatch. To ensure the treatment is effective, another round of aerial spraying will occur Monday and Tuesday to make a second pass in all areas of the city.\nUpdate at 2 p.m.: So, yes. Tonight at 9, all of Dallas — and, yes, that means you, unless you were sprayed last night — will be sprayed with the pesticide intended to rid the county of the West Nile that’s claimed 10 lives so far. And it’s not just Dallas, but Coppell, Carollton, Addison, Richardson (including the Collin County side), Farmers Branch, Garland, Mesquite (the section north of IH-30) and Grand Prairie (including the sections of the city in Ellis and Tarrant counties).\nOfficials say that much land will take a lot of time — the planes could be up till the break of day. (And, no, no live blog tonight … maybe.) Of course, this could all change if it rains. And it might. If tonight’s spraying goes off without a hitch, then Clarke will give it two days to see how’s it hatchin’, at which point there could be a re-spray-down Monday night.\nRight now, southern Dallas County cities aren’t included in the dousing. A decision will be made about them come 2 p.m. Tuesday.\nUpdate at 1:09 p.m.: Just after posting this we received an email from Maria Arita, Dallas County spokesperson, who sends word:\nThe priority tonight will be to complete the original block that we missed last night (see map) and will include the rest of Dallas (not reflected on this map but being rendered). On Saturday, weather permitting, crews will cover anything missed tonight. We anticipate having a new map, which will reflect an accurate picture of Dallas areas still needing coverage this afternoon.\nEfficacy of the Aerial Spraying will require post-trapping process and data and will not be available for at least 24 hours after the spraying has been completed.\nOriginal item posted at 1:16 p.m.: As Matt Peterson noted this morning those Duet-dumping planes bailed out a little earlier than expected earlier this morning, thanks to a little added moisture in the air. Which means … Well, more spraying tonight, for starters, though we won’t know exactly where and when till the 1:30 press conference scheduled at Dallas County HQ starring, yet again, Mayor Mike and Judge Jenkins. It also means, of course, only half of those scheduled for aerial spraying last night got their coating of Clarke’s adulticide.\nWhich half? Well, those who heard the roar of low-flying planes know which half; those things are loud – like, under-attack loud. And there are going to be more tonight — the county just sent word that four will be up in the air, this time beginning at 8:30 p.m., with Dallas due for its misting at 9. Anyway: For those who like their information a wee bit more precise, what you’ll find below is the map of which 52,352 acres (out of the 100,845 assigned block acreage) got its spray-down and who went without — and, yes, the green-and-pink areas mean they got sprayed. And those squiggly lines? They represent where the planes made their turns … without spraying. (So they say.)\nThe other half — which it so say Garland to ’round Lake Ray Hubbard — should get its make-up spraying tonight, if it doesn’t rain, and it just might.\nUpdates forthcoming. Now, to the maps!"} +{"text": "keyClient.AssertExpectations(t)\n\n\tunkeyClient.On(\"ListKeys\", ctx, components.V2ApisListKeysRequestBody{\n\t\tDecrypt: ptr.Ptr(false), RevalidateKeysCache: ptr.Ptr(false),\n\t\tAPIID: \"fake_apiId_inference\", ExternalID: &accountId,\n\t}).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{KeyID: \"key_alice\", Meta: map[string]any{\"email\": \"alice@gmail.com\"}},\n\t\t\t},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"UpdateKey\", ctx, components.V2KeysUpdateKeyRequestBody{\n\t\tKeyID: \"key_alice\",\n\t\tMeta: map[string]any{\n\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\"user_id\": \"alice\",\n\t\t\tunkey.ServerlessMetaConsumptionBlocked: true,\n\t\t\tunkey.ServerlessMetaConsumptionReason: unkey.ConsumptionLimitExceededReason,\n\t\t\tunkey.ServerlessMetaConsumptionPeriodEnd: \"2023-02-01T00:00:00Z\",\n\t\t},\n\t\tEnabled: ptr.Ptr(true), // serverless block does NOT disable the key\n\t}).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\n\tdba := &database.Account{AccountName: *resourcename.NewAccountName(accountId), Email: \"alice@gmail.com\", CreateTime: w.now()}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{UserName: *resourcename.NewUserName(accountId, \"alice\"), Email: \"alice@gmail.com\"}\n\t_ = w.db.Create(&dbu)\n\n\tpe := time.Date(2023, 2, 1, 0, 0, 0, 0, time.UTC) // after w.now() → effective-blocked\n\trequire.NoError(t, database.MarkAccountConsumptionBlocked(w.db, accountId, gpb.Scope_SERVERLESS,\n\t\tresourcename.NewUserName(accountId, \"alice\").String(), 50, 60, pe, \"grouped_cost_exceeded\"))\n\n\trequire.NoError(t, w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba))\n}\n\n// Once the billing period rolls over (PeriodEnd in the past), the block\n// self-expires: the reconcile clears the stale serverless_consumption_* meta even\n// though the LIMIT_BLOCKED row hasn't been swept yet (no Orb recovery event).\nfunc TestReconcileUnkeyAPIKeys_ServerlessBlockSelfExpiresAndClears(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\taccountId := \"acct-sl-expire\" // unique: account_watcher tests share one DB\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\n\tunkeyClient.On(\"ListKeys\", ctx, components.V2ApisListKeysRequestBody{\n\t\tDecrypt: ptr.Ptr(false), RevalidateKeysCache: ptr.Ptr(false),\n\t\tAPIID: \"fake_apiId_inference\", ExternalID: &accountId,\n\t}).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{KeyID: \"key_alice\", Meta: map[string]any{\n\t\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\tunkey.ServerlessMetaConsumptionBlocked: true,\n\t\t\t\t\tunkey.ServerlessMetaConsumptionReason: unkey.ConsumptionLimitExceededReason,\n\t\t\t\t\tunkey.ServerlessMetaConsumptionPeriodEnd: \"2022-12-01T00:00:00Z\",\n\t\t\t\t}},\n\t\t\t},\n\t\t},\n\t}, nil)\n\t// Rebuilt meta drops the serverless_consumption_* keys (no re-stamp): cleared.\n\tunkeyClient.On(\"UpdateKey\", ctx, components.V2KeysUpdateKeyRequestBody{\n\t\tKeyID: \"key_alice\",\n\t\tMeta: map[string]any{\n\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\"user_id\": \"alice\",\n\t\t},\n\t\tEnabled: ptr.Ptr(true),\n\t}).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\n\tdba := &database.Account{AccountName: *resourcename.NewAccountName(accountId), Email: \"alice@gmail.com\", CreateTime: w.now()}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{UserName: *resourcename.NewUserName(accountId, \"alice\"), Email: \"alice@gmail.com\"}\n\t_ = w.db.Create(&dbu)\n\n\tpe := time.Date(2022, 12, 1, 0, 0, 0, 0, time.UTC) // before w.now() → period rolled over\n\trequire.NoError(t, database.MarkAccountConsumptionBlocked(w.db, accountId, gpb.Scope_SERVERLESS,\n\t\tresourcename.NewUserName(accountId, \"alice\").String(), 50, 60, pe, \"grouped_cost_exceeded\"))\n\n\trequire.NoError(t, w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba))\n}\n\nfunc TestReconcileUnkeyAPIKeys_MultipleUsers(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId_inference\",\n\t\t\tExternalID: &accountId,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_123\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_456\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"b"} +{"text": "In 2000, Virginia B. Ball, philanthropist and active supporter of education, the environment, the arts, and the humanities, established the Virginia B. Ball Center for Creative Inquiry.\nAlthough she died in 2003, Virginia was able to see her center evolve into a national and international model for innovative, immersive learning. She was particularly enthusiastic about her center’s ability to forge creative and productive relationships between Ball State University and numerous community partners.\nSince her death, her center, sustained by subsequent gifts from the Edmund F. and Virginia B. Ball Foundation, has continued to provide life-changing experiences for students and faculty, and life-long learning opportunities for members of the community. Indeed, her center has become a leader in Ball State University’s goal to provide immersive learning experiences for every graduate.\n, director of the Virginia B. Ball Center, this article was originally published in The Star-Press of Muncie, Indiana, on December 7, 2003.\nVirginia Ball believed education transformed lives, energized communities and created culture. She would not have said it that way. She was too straightforward, too authentic to dabble in educational theories. But she was curious. She wanted to know what people were reading, thinking and learning. In particular, she wanted to know what the faculty and students who walked by her home were doing at the university across the street. She was reluctant to intrude in the daily business of education, but she was interested in creating genuine and intelligent relationships with the people who made it work. She attended faculty lectures, corresponded with those whose creativity she admired, and asked many of us, with some regularity, what we found exciting and memorable about our teaching. She was equally fascinated by students—where they came from, how they found Ball State, and what they perceived as powerful and unique about their learning. She attended their musical performances, theatrical productions, art exhibits and research presentations. Always at ease in their company, she talked to them as if they were adults, asking them about their achievements, their goals, and, perhaps most importantly, the contributions they hoped to make to their communities once they graduated. For Virginia, education and community were interconnected. And for that reason she worked to create bridges between scholars and citizens. More to the point, she worked to enable scholars to become engaged citizens, and citizens to pursue life-long learning. She devoted herself to this work—in the arts, the environment and the humanities—in her home community. But Virginia conceived community as a series of concentric circles—local, regional, national and international—that constantly enforced and informed one another. So, during her extensive travels, as she met some of the world’s best minds, or became involved in some of the world’s most innovative organizations, she collected information she could use to broaden and deepen the connection between the citizens of her hometown and the faculty and students at the university across the street.There is ample evidence of Virginia’s bridge building in Muncie—the Minnetrista Center, the Muncie Children’s Museum, Cornerstone Center for the Arts—but perhaps the most dramatic example is the center which she founded and which bears her name: the Virginia B. Ball Center for Creative Inquiry. Each year, Virginia’s center sponsors four interdisciplinary seminars in which faculty and students create a major product—an exhibit, a theatrical production, a film, a book. These products are designed in collaboration with community sponsors and are presented in a community forum for discussion and debate. Since its founding in 2000, Virginia’s center has established a national and international reputation for innovative and inspirational education. The many unsolicited letters Virginia received about her center contain enthusiastic testimonies from the faculty, students and community sponsors who have worked together. All acknowledge the transformative, energizing and creative impact the center has had and will continue to have on their lives. In the last few months of her life, Virginia referred often to these letters and to the living legacy they promised. And she looked forward, always curious, to the exciting and powerful educational experiences her center would create for the faculty, students and citizens of her community.\nCopyright © 2016 Ball State University 2000 W. University Ave. Muncie, IN 47306\n800-382-8540 and 765-289-1241"} +{"text": "Alumna Victoria Hill is a 2016 recipient of the Charles Rangel Graduate Fellowship for study in international relations and foreign and governmental affairs. Victoria, who previously earned the Austrian Diplomacy Fulbright Scholarship, has been working in Wake Forest Admissions for several years. This fall she will enter graduate school, funded in large part by the Rangel, for a two year degree one of whose possible outcomes will be in preparation for the Foreign Service. There are up to 30 Rangel Fellowships awarded nationally each year.\nWe proudly present the roster of students who graduated with honors in 2016.\nTerry “TJ” Smith\nNicholas Syris II\nThis year I was fortunate enough to be selected by the Politics and International Affairs Department to represent Wake Forest at the 56th Annual Naval Academy Foreign Affairs Conference that took place in April 2016. In celebration of the 40th anniversary of accepting women to the Naval Academy, the topic of this year’s conference was “Women and Security: The Implications of Promoting Global Gender Equality.” At the four-day conference, I got to hear from an amazing list of speakers – mostly women – who have had enormous influence in global politics. The speakers included Melanne Verveer, the first Ambassador-at-Large for Global Women’s Issues; Michele Flournoy, former Undersecretary of Defense; and Samantha Power, the current U.S. Ambassador to the United Nation. I was lucky enough to get the chance to speak personally with both Ambassador Verveer and Michele Flournoy, both of whom had brilliant insights into the future of U.S. foreign policy and U.S.-China relations.\nIn addition to hearing from many great panelists and speakers, I also spent time on a small roundtable group that focused on gender inequality and related issues in China. We discussed the absence of women at the top of China’s political leadership, and the many problems that Chinese women still face in the workplace and in society. For me, the biggest takeaway of the conference was getting to better understand civil-military relations. About half of the delegates were from the naval academy and various other military academies around the world. It was eye-opening to see the differences in how civilians and people in the military perceive security issues differently.\nIt was an incredible experience, and I’d like to thank the entire department for giving me the opportunity to attend this amazing conference!\nBlair Wessels is the 2016 recipient of the Jack D. and Martha H. Fleer Scholarship. After graduation Blair will be moving to Morgantown, West Virginia to pursue a J.D. at West Virginia University’s College of Law. She is interested in combining her love of English and political science to study intellectual property law or public interest law.\nBen Helms is the 2016 Carl Moses Excellence in Research Award recipient for his paper “When Domestic and Supranational Politics Collide”. After graduation Ben will attend the University of Virginia to pursue a PhD in political science, with a focus on international politics and South Asia.\nThe 2016 winner of the Jack D. Fleer Award for Excellence in Honors in Politics and International Affairs is Brian Hart for his paper “Creating the Cult of Xi Jinping: The China Dream as a Leader Symbol”. After graduation, Brian is excited to spend a year serving as the Wake Forest Fellow in the Office of the Dean of the College. Following his year as a fellow, he hopes to attend a masters or doctoral program in International Relations or Political Science.\nBrian Hart is the 2016 recipient of the C.H. Richards Award for Excellence in Politics and International Affairs. After graduation, Brian is excited to spend a year serving as the Wake Forest Fellow in the Office of the Dean of the College. Following his year as a fellow, he hopes to attend a masters or doctoral program in International Relations or Political Science.\nFour Politics and International Affairs graduates have been appointed as Wake Forest Fellows:\nBrian Hart: Dean of the College\nSarah Hoyle: Office of Personal and Career Development\nTerry (T.J.) Smith: Office of the Provost\nCamry Wilborn: The Pro Humanitate Institute\n“My selection as a fellow means that I have been given a tremendous opportunity to continue to learn and grow while simultaneously giving back to the institution I have to come to love,” said T.J. Smith. “I have the chance to be mentored by a cadre of esteemed leaders in what will be the developmental opportunity of a lifetime.” As a fellow, Smith said, he expects “to gain a new insight and perspective into how the strategic direction and inner mechanics of the University come together to move our community forward.” (Read more…)"} +{"text": "ob@gmail.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"UpdateKey\",\n\t\tctx,\n\t\tcomponents.V2KeysUpdateKeyRequestBody{\n\t\t\tKeyID: \"key_123\",\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\t\"user_id\": \"alice-123\",\n\t\t\t},\n\t\t\tEnabled: ptr.Ptr(true),\n\t\t},\n\t).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\n\tdba := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(accountId),\n\t\tEmail: \"test@gmail.com\",\n\t\tCreateTime: w.now(),\n\t}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{\n\t\tUserName: *resourcename.NewUserName(\"alice-123\", \"alice-123\"),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\tdba2 := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(\"co-alice\"),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dba2)\n\tdbu2 := &database.User{\n\t\tUserName: *resourcename.NewUserName(\"co-alice\", \"go-alice\"),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dbu2)\n\n\terr := w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba)\n\trequire.NoError(t, err)\n}\n\nfunc TestReconcileUnkeyAPIKeys_RetainLegacyKey(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId\",\n\t\t\tExternalID: &accountId,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_123\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\t\t\"legacyKey\": true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_456\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"UpdateKey\",\n\t\tctx,\n\t\tcomponents.V2KeysUpdateKeyRequestBody{\n\t\t\tKeyID: \"key_123\",\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\"legacyKey\": true,\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\t\"user_id\": \"my-account\",\n\t\t\t},\n\t\t\tEnabled: ptr.Ptr(true),\n\t\t},\n\t).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\tunkeyClient.On(\"UpdateKey\",\n\t\tctx,\n\t\tcomponents.V2KeysUpdateKeyRequestBody{\n\t\t\tKeyID: \"key_456\",\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\t\"user_id\": \"my-account\",\n\t\t\t},\n\t\t\tEnabled: ptr.Ptr(true),\n\t\t},\n\t).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\n\tdba := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(accountId),\n\t\tEmail: \"test@gmail.com\",\n\t\tCreateTime: w.now(),\n\t}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{\n\t\tUserName: *resourcename.NewUserName(accountId, accountId),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dbu)\n\n\terr := w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba)\n\trequire.NoError(t, err)\n}\n\nfunc TestReconcileUnkeyAPIKeys_RetainSuperuserMetadata(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId\",\n\t\t\tExternalID: &accountId,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_123\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\t\t\"superuser\": true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"UpdateKey\",\n\t\tctx,\n\t\tcomponents.V2KeysUpdateKeyRequestBody{\n\t\t\tKeyID: \"key_123\",\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\t\"user_id\": \"my-account\",\n\t\t\t\t\"superuser\": true,\n\t\t\t},\n\t\t\tEnabled: ptr.Ptr(true),\n\t\t},\n\t).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\n\tdba := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(accountId),\n\t\tEmail: \"test@gmail.com\",\n\t\tCreateTime: w.now(),\n\t}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{\n\t\tUserName: *resourcename.NewUserName(accountId, accountId),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dbu)\n\n\terr := w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba)\n\trequire.NoError(t, err)\n}\n\nfunc TestReconcileUnkeyAPIKeys_RetainCreatedByMetadata(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclie"} +{"text": "05/04/08 1:58 AM ET\nRockies lose power struggle\nNewcomer De La Rosa cannot slow Dodgers' dominance\nBy Owen Perkins / Special to MLB.com\nBefore the Dodgers secured their 12-7 victory -- their fifth straight over the Rox this season and eighth in a row overall -- the game evolved into a slugfest, with extra-base hits abounding for both clubs as they combined for 19 runs and 25 hits, 11 for extra bases. But as they built an early 6-0 lead, the Dodgers had only two hard-hit balls, a screaming grounder in the first from Matt Kemp through the hole on the left side of the infield and a three-run double into the left-center gap two batters later by James Loney.\n\"Not every ball was barreled, but enough were,\" manager Clint Hurdle said. \"Not enough strikes, not crisp enough command\" from De La Rosa, making his Rockies debut after being traded from the Royals.\nDe La Rosa was challenged by ineffective breaking pitches and by an inability to get strikes on the inside part of the plate against right-handers. His changeup was effective, but his lack of consistency with his fastball command made it too easy for the Dodgers to sit on his pitches.\n\"I made a lot of mistakes and threw a lot of pitches in four innings,\" De La Rosa said after tying his career-high nine runs allowed. \"I tried to be aggressive. I think I was overthrowing a little bit in the first two innings. My curve didn't work good. I have to do something to be better next start. I have to forget this game and get ready for the next one.\"\nThe Rockies refused to be defined by the early deficit, choosing instead to fight fire with fire. Todd Helton led off the second inning with a hard-hit grounder off the reaching glove of second baseman Jeff Kent, stretching it into a double as it died on that no-man's-land grass in shallow center. The Rockies took off from there, mounting a three-run second and pairing it with a three-run third to tie the game as Matt Holliday hit a leadoff homer and Garrett Atkins laced a one-out double down the left-field line to drive starter Esteban Loaiza from the game after 2 1/3 innings. Brad Hawpe greeted reliever Hong-Chih Kuo by drilling his first pitch for a game-tying two-run homer, the second of his three hits on the night.\n\"It felt good, it's part of the game,\" Hawpe said of his offensive surge, equaling his season peak for hits and driving in a season-high four runs. \"Sometimes you have rough games, sometimes you have good games. You just got to realize that at the end of the year, things are going to be right there where they need to be.\"\nDe La Rosa temporarily recovered from his first two innings, showing resilience as he retired nine of the 10 batters he faced from the middle of the second through a nine-pitch fourth inning. He ran out of gas in the fifth, however, giving up a leadoff single to Kent and walking Russell Martin before Loney launched a hanging slider into the right-field seats for a three-run homer and his sixth RBI of the night. Having squandered the Rockies comeback, De La Rosa left with the three-run deficit.\n\"It's something to build off of, but the bottom line is after his best inning, he got in trouble in the next inning,\" Hurdle said. \"He was retiring some guys, he looked like he was getting a little rhythm, and then the wheels came off in the fifth right away.\"\nWith both lineups showing their explosive potential by forcing early exits from the starters, bullpen pitching was at a premium, with the Rockies relievers allowing three of the 12 runs while the Dodgers 'pen held the Rox to one run over the final 5 2/3 innings.\n\"We kept trying to come back, but they have a good bullpen,\" Hawpe said. \"Their bullpen's tough, and they shut the door down on us.\"\nThe Rockies cracked it open again in the ninth inning, staging a last-gasp rally with Takashi Saito on the mound, sparked by a leadoff double from Clint Barmes and a walk to Holliday. That brought Helton to the plate, with memories of his dramatic game-winning homer against Saito last September bringing the fans to their feet. Helton drove a ball deep to left, but Juan Pierre made a leaping snow-cone catch against the fence, stopping the rally in its tracks. Garrett Atkins followed with a drive to the right-field warning track, but Kemp was able to pull it in safely.\nThe loss marked the sixth time the Rockies have scored five runs or more without claiming a victory this season, a discouraging stat for an on-again, off-again offense that has averaged 4.23 runs per game. The Rockies won the National League title with an average 5.31 runs/game last season.\n\"The numbers aren't that much skewed from last year,\" Hurdle said, looking at the full range of early-season stats, including the Rockies' 11-19 record, 10 games behind the NL West-leading Diamondbacks. \"That being said, they're unacceptable. They're not what we need. That isn't something to hold on to.\n\"We're at that fine line right now: we can't wait for things to happen, and we don't need to step on the gas pedal so hard we're forcing things to happen. We need to take what the games present. The game's hard for us right now. We just got to keep working. There's work to be done, there's no doubt about that.\"\nOwen Perkins is a contributor to MLB.com. This story was not subject to the approval of Major League Baseball or its clubs."} +{"text": "Columbia County Economic\nMaking it up as they go along\nColumbia County, FL (Posted Oct 06, 2010 07:35 am)\nMembers of the Columbia County Ida listen at the workshop. No one knew about the economic development ordinance that was passed in 2004. In the photo from left to right are Marc Vann, Carlton Jones, Gus Rentz, Suzanne Norris, Jeff Simmons and Gina Reynolds, who is the assistant director.\nLast night, the homeless Columbia County Commission met with the IDA, the popular Doyle Crews - the County Property Appraiser; Richard (yes, this is all one person) Powell - the County's financial advisor - external auditor - budget advisor - consultant to the internal auditor; the County and everybody's Attorney - Marlin Feagle and the high priced spread from Tallahassee, Attorney Greg Stewart of the Law Firm of NGN. The county website billed the meeting as a workshop.\nThe County's only further description of the meeting went this way: \"The topic for discussion relates to Tax Abatement which resulted from the \"Agreed Upon Procedures\" conducted by Richard Powell, C.P.A., Powell & Jones, C.P.A.'s.\"\nIt's likely that no one on planet earth would have a clue what the county is describing. The meeting lasted 55 minutes.\nUnknown to the public and possibly some of the people attending the workshop, the real purpose of the meeting was to establish guidelines for County tax abatements and develop the criteria for an economic development ordinance.\nIt was clearly business as usual, as Columbia County's long time County Manager, Dale Williams, described the County's role and the Board's responsibilities in granting economic incentives.\nCounty Manager Williams explained that the new ordinance would be in two parts. The first part would comply with the Florida statutes and the second part would be a separate memorandum of understanding, in which the county could put in what they felt was important.\nCounty Manager Williams explained that he \"tried to leave as much latitude with the board\" as possible.\nNeither the county staff, the county attorney, outside counsel, the IDA, or anybody, came up with any formula to keep the playing field even and treat everyone fairly.\nThe reputation of Columbia County as being Florida's premier \"good old boy\" County was further solidified when County Manager Williams told the gathering, \"Just because you meet conditions doesn't mean you get the abatement.\"\nThe County's well-known \"flying by the seat of its pants\" methodology was exemplified after the County Manager reported that the minimum investment to be considered for a tax abatement or an economic incentive was $250,000.\nLongtime resident, successful businessman, IDA board member and former county commission candidate, Marc Vann asked the County Manager, \"How did you decide on $250,000 as a good number?\"\nThe County Manager responded, \"It just seemed like a good number.\"\nTherein lies the problem\nDue diligence is a phrase that is foreign to Columbia County, a county that is locked into the ways of the past.\nThe county management's continuing inability to use computers, spread sheets, modern methods of cost analysis and research, and developing public policy with clearly defined guidelines, weighs like an anchor around the necks of the working families of the county, as the word spreads that while Columbia County may be a place suitable for the \"good old boys\" who are willing to grease a few palms or the slick and educated who can take advantage of a public management group that takes pride in being backward and locked into the ways of the past, real companies that are looking for an even playing field and a place where quality education is available for their children are staying away.\nIn 2004 the County unanimously passed an ordinance establishing a local economic development incentive program. The investment threshold in that ordinance is $500,000.\nThe 2004 ordinance is still on the books.\nDuring the public hearing, one of the three Caballeros, Commissioner Dewey Weaver, said at that time about the new ordinance, \"I believe it's a good opportunity to help our local business.\"\nCommissioner Jennifer Flynn told the Board: \"I want to caution you all to make sure we do this in a fair manner for all businesses and that's my concern about it.\"\nCommissioner Flynn was eventually run off the Board and out of town."} +{"text": "nt.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId\",\n\t\t\tExternalID: &accountId,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_123\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"perf-agent@my-account.sa.fireworks.ai\",\n\t\t\t\t\t\t\"created_by\": \"alice@acme.com\",\n\t\t\t\t\t\tunkey.FirePassMetaKey: true,\n\t\t\t\t\t\tunkey.FirePassMetaAccountID: \"my-account\",\n\t\t\t\t\t\tunkey.FirePassMetaUserID: \"perf-agent\",\n\t\t\t\t\t\tunkey.FirePassMetaDeveloperPassID: \"dp-snapshot-1\",\n\t\t\t\t\t\tunkey.FirePassMetaDeveloperPassEndTime: \"2026-05-09T00:00:00Z\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"UpdateKey\",\n\t\tctx,\n\t\tcomponents.V2KeysUpdateKeyRequestBody{\n\t\t\tKeyID: \"key_123\",\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"perf-agent@my-account.sa.fireworks.ai\",\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\t\"created_by\": \"alice@acme.com\",\n\t\t\t\tunkey.FirePassMetaKey: true,\n\t\t\t\tunkey.FirePassMetaAccountID: \"my-account\",\n\t\t\t\tunkey.FirePassMetaUserID: \"perf-agent\",\n\t\t\t\tunkey.FirePassMetaDeveloperPassID: \"dp-snapshot-1\",\n\t\t\t\tunkey.FirePassMetaDeveloperPassEndTime: \"2026-05-09T00:00:00Z\",\n\t\t\t},\n\t\t\tEnabled: ptr.Ptr(true),\n\t\t},\n\t).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\n\tdba := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(accountId),\n\t\tEmail: \"test@gmail.com\",\n\t\tCreateTime: w.now(),\n\t}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{\n\t\tUserName: *resourcename.NewUserName(accountId, \"perf-agent\"),\n\t\tEmail: \"perf-agent@my-account.sa.fireworks.ai\",\n\t}\n\t_ = w.db.Create(&dbu)\n\n\terr := w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba)\n\trequire.NoError(t, err)\n}\n\nfunc TestReconcileUnkeyAPIKeys_RetainConsumptionBlockedMetadataForFirePass(t *testing.T) {\n\tauth.UnkeyFirepassApiId = ptr.Ptr(\"fake_apiId_firepass\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId_firepass\",\n\t\t\tExternalID: &accountId,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_123\",\n\t\t\t\t\tEnabled: false,\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\t\tunkey.FirePassMetaKey: true,\n\t\t\t\t\t\tunkey.FirePassMetaAccountID: \"my-account\",\n\t\t\t\t\t\tunkey.FirePassMetaUserID: \"alice\",\n\t\t\t\t\t\tunkey.FirePassMetaConsumptionBlocked: true,\n\t\t\t\t\t\tunkey.FirePassMetaConsumptionReason: unkey.ConsumptionLimitExceededReason,\n\t\t\t\t\t\tunkey.FirePassMetaConsumptionPeriodEnd: \"2026-06-07T00:00:00Z\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"UpdateKey\",\n\t\tctx,\n\t\tcomponents.V2KeysUpdateKeyRequestBody{\n\t\t\tKeyID: \"key_123\",\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\tunkey.FirePassMetaKey: true,\n\t\t\t\tunkey.FirePassMetaAccountID: \"my-account\",\n\t\t\t\tunkey.FirePassMetaUserID: \"alice\",\n\t\t\t\tunkey.FirePassMetaConsumptionBlocked: true,\n\t\t\t\tunkey.FirePassMetaConsumptionReason: unkey.ConsumptionLimitExceededReason,\n\t\t\t\tunkey.FirePassMetaConsumptionPeriodEnd: \"2026-06-07T00:00:00Z\",\n\t\t\t},\n\t\t\tEnabled: ptr.Ptr(false),\n\t\t},\n\t).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\n\tdba := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(accountId),\n\t\tEmail: \"test@gmail.com\",\n\t\tCreateTime: w.now(),\n\t}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{\n\t\tUserName: *resourcename.NewUserName(accountId, \"alice\"),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dbu)\n\n\terr := w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyFirepassApiId, dbu, dba)\n\trequire.NoError(t, err)\n}\n\nfunc TestReconcileUnkeyAPIKeys_SuspendExistingKey(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAP"} +{"text": "DULUTH, Ga. — Khaalidah Miller scored 12 points and ninth-seeded Georgia picked up its 20th victory of the season Thursday, defeating eighth-seeded Vanderbilt 53-43 on the second day of the 2014 Southeastern Conference Women’s Basketball Tournament at the Arena at Gwinnett Center.\nGeorgia (20-10), which avenged a regular-season loss to Vanderbilt, placed three players in double-figure scoring totals, as Krista Donald and Erika Ford each added 10. Donald also brought down a squad-best eight rebounds.\n“It was the kind of game I think that we thought it would be extremely competitive. We just felt challenged defensively by a very good Vanderbilt team, a team that has skillful players who cannot only make shots, but make plays and execute extremely well,” Georgia coach Andy Landers. “That was a big challenge for us. We felt like our players answered that challenge.”\nVanderbilt (18-12), which shot 30 percent from the field in the first half, responded by shooting 55 percent (11-of-20) in the second period. The Commodores were led by Christina Foggie’s game-high 19 points.\n“I think the obvious: Georgia came ready to play and worked really hard, dominated us on the boards, was more\nphysical, more aggressive, got a lot more shots. They put up more shots. They got more second and third shots.\nThey earned this victory. They did a great job,” said Vanderbilt coach Melanie Balcomb.\nGeorgia advances to face top-seeded South Carolina (26-3) at 11 a.m. Friday.\nFlorida 71, Mississippi St. 67\nJaterra Bonds scored 18 points, Kayla Lewis added 17 and fifth-seeded Florida held off a late charge Thursday by 13th-seeded Mississippi State.\nFlorida (19-11), which led by as many as 15 points late in the first half, found itself down 57-56 with 7:32 remaining in the game before a jumper and a three-pointer by Cassie Peoples on back-to-back possessions gave the Gators the lead for good.\nPeoples finished with 13 points and Antoinette Bannister added 10, as four Florida players finished tallied double-figure point totals. Lewis and Ronni Williams each added a squad-best six rebounds.\nMississippi State (19-13) was led by 14 points from Kendra Grant and a game-high nine rebounds by Breanna Richardson.\nFlorida advances to face fourth-seeded Kentucky (22-7) at 1:30 p.m. Friday.\nLSU 78, Alabama 65\nDanielle Ballard and Shanece McKinney combined for 36 points and 17 rebounds Thursday to lead 10th-seeded LSU past seventh-seeded Alabama.\nLSU (19-11), which led by as many as 25 points in the game, placed four players in double-figure scoring, led by 18 apiece from Ballard and McKinney. Jeanne Kenny added 16 points, while Theresa Plaisance had a game-high 12 rebounds to complement 12 points.\nLSU shot 50.8 percent (32-of-63) from the field in the game, while Alabama was limited to 35.4 percent (23-of-65) shooting from the floor. The teams were even on the glass with 37 rebounds apiece.\nAlabama (14-16) was led by a game-high 27 points from Shafontaye Myers and 18 from Daisha Simmons.\nAuburn 70, Ole Miss 54\nTra’cee Tanner scored 17 points, Tyrese Tanner added 16 and sixth-seeded Auburn opened up a close game Thursday to defeat 14th-seeded Ole Miss, 70-54, on the second day of the 2014 Southeastern Conference Women’s Basketball Tournament at the Arena at Gwinnett Center.\nAuburn (17-13), which avenged an overtime loss to Ole Miss that took place in the last regular-season game, placed three players in double figures, as Hasina Muhammad added 11 points. Tyrese Tanner also brought down a game-high 12 rebounds.\nThe Tigers shot just 37.1 percent from the field (23-of-62), but were masterful from the free-throw line, connecting on 81.5 percent (22-of-27) from the charity stripe. Ole Miss was limited to 28.1 percent (16-of-57) shooting from the floor.\nOle Miss (12-20) was led by a game-high 23 points from Valencia McFarland, and a team-high seven rebounds by Danielle McCray.\nAuburn advances to play third-seeded Texas A&M (23-7) at 7:30 p.m.Friday in a game that will be televised by SportSouth."} +{"text": "60s Style Divorce\nMarriage is a noose.\n—Miguel de Cervantes, Don Quixote de la Mancha\nAcrimonious divorce may be making a comeback thanks to the actions of enlightened state legislatures! This does not refer to the process of splitting a finite number of children and a finite number of dollars between two parties, a process that has always had the potential to be acrimonious. It refers to the simple act of ending the marriage. And that’s great news for the lawyers, the private investigators and the tabloids, all of which made big bucks out of the unhappiness of unhappily married couples when acrimonious divorce was the rule. The more prominent the divorcing pair, the bigger the bucks. It was a win win for all but the principals.\nUntil 1969, most state legislatures decreed that unhappily married couples should not be rid of one another until periods of time varying from a few months to more than one year had elapsed. In addition to imposing long waiting periods, in days gone by the person seeking the divorce was forced to make specific allegations about the misconduct of the other spouse, allegations that were often salacious, even more often fictional and in many states, absolutely essential if the divorce was to be granted. In those states the proof could be provided by a private investigator equipped with a camera and the ability to follow a wandering spouse into the confines of a hotel room and a non-spouse’s arms.\nUnfortunately for those profiting from the divorce business, the legal system slowly acquiesced to demands that it reform, recognizing the absurdity of forcing unhappy couples to make up reasons for bringing their marriages to an end. People thought reform made great good sense and what became known as no-fault divorces became the law of the land.\nThe first state to adopt no fault divorce was California under Ronald Reagan in 1969. The last state to adopt this common sense approach to marital discord was New York in 2010. Lengthy waiting periods and the need to fabricate reasons for the divorce became vestiges of a bygone era. If it all seemed too good to be true, it may prove to have been.\nNo-fault divorce was not intended to lessen the importance of marriage nor its beneficial effects. During the 2012 presidential campaign Rick Santorum explained the virtue of marriage at a campaign rally in Iowa. Addressing the crowd he said: “What two things, that if you do, will guarantee that you will not be in poverty in America? Number one, graduate from high school. Number two, get married. Before you have children. If you do those two things, you will be successful economically.” Although not articulated in that particular speech, it follows that to fully enjoy the prosperity that accompanies marriage, people should stay married and the best way to insure that happens is to make it harder to get divorced. And many states are now considering how to do that. Oklahoma is one of the leaders in that movement.\nOklahomans know the importance of marriage as demonstrated by the fact that, according to the Pew Research Organization, 10% of all ever-married adults in that state have had at least three spouses. That is twice the national average. Recognizing that, and because Oklahoma has the second highest divorce rate of any state in the country, (you can’t have had “at least three spouses” without having had at least two divorces) a state representative introduced a bill in early 2014 that would impose a six-month waiting period for most divorces. Another bill was introduced that would eliminate incompatibility as a ground for divorce. Although those two bills have not advanced, a third bill introduced a 90-day “cooling down period” following the filing of a divorce petition. That bill has passed the Senate but has not yet been considered in the House. Oklahoma is also considering extending the time between filing for divorce and getting a decree to six months. In Kansas a legislator has introduced a bill that would remove incompatibility as a ground for divorce. If incompatibility is no longer a ground for divorce, divorcing couples can once again come up with creative reasons for splitting up. In 2011 Arizona enacted a law that enables either divorcing spouse to extend the process by four months. In 2013 three North Carolina state senators introduced a bill they called the “Healthy Marriage Act” that would replace the existing one year waiting period from the time a proceeding is begun until a divorce is granted, to two years following the date a spouse give the other spouse written notice, duly notarized, that he or she intends to file for divorce at the end of the two year period. That has not yet been enacted.\nToday a steadily increasing number of people are cohabiting rather than marrying. According to the National Health Statistic Report in 1995 39% of women in the United States between the ages of 15-44 entered into marriage as their first union. In the 2006-2010 period that percentage decreased to 23%. Those cohabiting as their first unions went from 34% in 1995 to 48% in the later period. Thanks to the efforts of legislatures in states like Oklahoma and Kansas, these numbers are sure to increase. One can’t help but wonder if those trying to make it more difficult for unhappily married couples to get divorced know what they are doing. The answer is, probably not.\nThis work is licensed under a Creative Commons Attribution-Share Alike 3.0 License."} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/admin_gateway/deployment_replica_event_test.go. Lines: 1401.\n\npackage admingateway\n\nimport (\n\t\"context\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/database\"\n\tagpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/admin_gateway\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\tresourcename \"github.com/fw-ai/fireworks/go/resource_name\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"google.golang.org/protobuf/types/known/durationpb\"\n\t\"google.golang.org/protobuf/types/known/timestamppb\"\n)\n\nfunc createTestDeploymentReplicaEvent(t *testing.T, s *server, accountId, deploymentId, eventId string, eventType gpb.DeploymentReplicaEvent_Type, status gpb.DeploymentReplicaEvent_Status, duration time.Duration) *database.DeploymentReplicaEvent {\n\tevent := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(accountId, deploymentId, eventId),\n\t\tType: eventType,\n\t\tStatus: status,\n\t\tDuration: duration.Nanoseconds(),\n\t\tStartTime: s.now().Add(-duration),\n\t\tEndTime: s.now(),\n\t\tPlacement: &database.Placement{\n\t\t\tRegion: gpb.Region_US_IOWA_1,\n\t\t},\n\t\tInitialReplicaState: &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\t\tDesired: 1,\n\t\t\tCurrent: 1,\n\t\t\tMin: 1,\n\t\t},\n\t\tTargetReplicaState: &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\t\tDesired: 2,\n\t\t\tCurrent: 2,\n\t\t\tMin: 1,\n\t\t},\n\t}\n\tresult := s.DB().Create(event)\n\trequire.NoError(t, result.Error)\n\treturn event\n}\n\nfunc createTestDeploymentReplicaEventWithRequested(t *testing.T, s *server, accountID, deploymentID, eventID string, eventType gpb.DeploymentReplicaEvent_Type, status gpb.DeploymentReplicaEvent_Status, duration time.Duration, requested int32) *database.DeploymentReplicaEvent {\n\tevent := createTestDeploymentReplicaEvent(t, s, accountID, deploymentID, eventID, eventType, status, duration)\n\tevent.InitialReplicaState = &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\tDesired: 0,\n\t\tCurrent: 0,\n\t\tMin: 0,\n\t}\n\tevent.TargetReplicaState = &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\tDesired: requested,\n\t\tCurrent: requested,\n\t\tMin: 0,\n\t}\n\trequire.NoError(t, s.DB().Save(event).Error)\n\treturn event\n}\n\nfunc createTestDeploymentReplicaEventProgress(t *testing.T, s *server, accountID, deploymentID, eventID string, observedTime time.Time, elapsed time.Duration, requested, ready int32) {\n\tcreateTestDeploymentReplicaEventProgressWithStats(t, s, accountID, deploymentID, eventID, observedTime, elapsed, requested, ready, 0, 0, 0, ready)\n}\n\nfunc createTestDeploymentReplicaEventProgressWithStats(t *testing.T, s *server, accountID, deploymentID, eventID string, observedTime time.Time, elapsed time.Duration, requested, ready, pendingScheduling, downloadingModel, initializing, readyStage int32) {\n\tprogress := &database.DeploymentReplicaEventProgress{\n\t\tDeploymentReplicaEventProgressName: *resourcename.NewDeploymentReplicaEventProgressName(accountID, deploymentID, eventID, observedTime.Format(\"20060102150405\")),\n\t\tObservedTime: observedTime,\n\t\tElapsedDuration: elapsed.Nanoseconds(),\n\t\tProgress: \"ScaleUp\",\n\t\tScaleUp: &gpb.DeploymentReplicaEventProgress_ScaleUpEventProgress{\n\t\t\tRequestedReplicaCount: requested,\n\t\t\tReadyReplicaCount: ready,\n\t\t\tReplicaStats: &gpb.ReplicaStats{\n\t\t\t\tPendingSchedulingReplicaCount: pendingScheduling,\n\t\t\t\tDownloadingModelReplicaCount: downloadingModel,\n\t\t\t\tInitializingReplicaCount: initializing,\n\t\t\t\tReadyReplicaCount: readyStage,\n\t\t\t},\n\t\t},\n\t}\n\trequire.NoError(t, s.DB().Create(progress).Error)\n}\n\nfunc TestListDeploymentReplicaEvents_Success(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create test events\n\tevent1 := createTestDeploymentReplicaEvent(t, s, \"test-account\", \"deployment-1\", \"event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 30*time.Second)\n\tevent2 := createTestDeploymentReplicaEvent(t, s, \"test-account\", \"deployment-1\", \"event-2\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_DOWN, gpb.DeploymentReplicaEvent_FINISHED, 60*time.Second)\n\tevent3 := createTestDeploymentReplicaEvent(t, s, \"test-account\", \"deployment-2\", \"event-3\",\n\t\tgpb.DeploymentReplicaEvent_MANUAL_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 120*time.Second)\n\n\t// List all events\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{})\n\trequire.NoError(t, err)\n\tassert.GreaterOrEqual(t, len(resp.DeploymentReplicaEvents), 3)\n\tassert.GreaterOrEqual(t, resp.TotalSize, int32(3))\n\n\t// Verify events are returned\n\teventNames := make([]string, len(resp.DeploymentReplicaEvents))\n\tfor i, e := range resp.DeploymentReplicaEvents {\n\t\teventNames[i] = e.Name\n\t}\n\tassert.Contains(t, eventNames, event1."} +{"text": "I cannot teleport as Zeus. After initially downloading the update and purchasing Zeus I tried him and found the teleport difficult.\nIt only comes out 1/10 times. I thought I as doing something wrong until I tried another game of PSBR at my friends house and it would come out instantly. I tried it with both my controllers and his and it worked every time.\nI have deleted the patch and dlc twice now and still cant teleport. He just explodes on himself or resets the animation when i try.\nAny suggestions or anyone else heard about this?\ni think jak took a pretty big hit in this patch.Ya i dont want to question how thorough your testing was before releasing the patched characters but as a jak main he definitly took some nerfs were he should of taken buffs. If you look at all of ratchets triangle buttons and then jaks,ratchets are all consitently better than jak in terms of AP gain, speed, (less start up time) tech, and feasability to hit in battle. Kat definitly needs more nerfs, her easy combos can dominate, and some moves aswell (mainly down circle). But yeah all in all after this patch isaac, ratchet, radec, and drake all still build meter andare better eqquipped as gunners in comparison to jak. Right now just about all he has going for him is his air mobility. I urge you to reconsider parts of the patch and go back and fix up jak a little.\nI know I've already made a topic of this, but I want to post it here as well, and see if aanyone else has that problem.\nI made a video about it, illustrating my issues with Fat Princess, take a look:\nHer Down + Square attack isn't working as it's supposed to do. Is this a bug or can it be fixed?\nyou should add crash bandicoot or spyro or another charcter from the parappa series like master onion or old snake do not seriously add another god of war charcter\nNerf kratos atk spd/recovery - with his range, its impossible to approach him with the slow characters, let alone counter with their slow attack animations.\nSly's electric ball is unpunishable with the same characters that have the ^above^ issues vs kratos. Same issue with his counter. Either slow the recovery or lessen the active frames or just simpy speed up everyone else.. most of the cast is too slow to approach AND attack before he can run away or activate another counter.\nSpyro: this game and Jak and Daxter are probably the best of the \"Zelda\"/adventure type of game on PS.\nCrash: everyone said it for a reason, why wouldn't u include him.\nSyphon Filter: Gabe Logan. Of all the gunslingers in PS, why you didn't include him IDK (unless its licensing issues)\nSolid Snake as well obviously (except they gave him to nintendo...so too late, I guess),\nGran Turismo driver: This game is supposed to be unlikely matchups for fun/comical/epic clash of legacies.\nLara Croft, duh! (marketing 101: sex sells. Instead, we have; Nariko - angry and aged looking near 34, Fat Princess - fat but amuzing and cute pre-cake, Kat - gibberish speaking teen, but a good addition IMO because she is a pretty female heroine and was also designed for an international welcome, hence \"languageless,\" of royalty but serves the people, shrouded in mystery and unknown powers.\nFinal Fantasy: Cloud because 7 is the most popular, or Squall because he has the arguably the most popular weapon - possibly second only to laser swords, but maybe not. Tifa: it's rare for a character to reach legendary status akin to Chun-Li.\nSilent Hill, Parasite Eve, Resident Evil: many reasons for any of these series' characters to be added, even if from just one of them. FIRST is marketing 101: plenty of excellent female characters. Second, characters from the suspense genre are completely absent. Third, they made a movie about Silent Hill AND Resident Evil. My personal reason: Jill was great in her original form, and they have ruined her by making a long, blonde, ponytail-haired version of her in a tight one-piece battlesuit.\nJust a little note to the people who think Kratos and Sly have been nerfed enough, there's this saying from one of the most popular and fastest growing contemporary games: \"nerf Irelia\"\nIrelia and Alistar have gone through numerous, numerous, NUMEROUS nerfs back to back nerfs before they were finally considered balanced. If you think you have nerfed them enough, maybe you haven't."} +{"text": "People often ask me how I manage to remain so well informed. (Full disclosure: one person did ask me this some time ago.) This is my secret. Firstly, when reading the newspaper I skip over all of the unimportant stuff like Syria, Lebanon, and the Middle East, etc., in search of those items that are of real importance to us.\nSome examples below:\nWhen watching TV, I do likewise and with the exception of America’s Got No Talent, I watch very educational programs such as Through the Wormhole narrated by Morgan Freeman. Whenever I invite my resident TV critic to watch this show with me, the usual response is to slam the door closed and demand that I turn the volume down so she doesn’t hear it in the rest of the house. I will offer some examples of what I have learned from these shows as well.\nWhy do I skip all the fascinating news about the battles in the Mideast? Talk to any police officer and they will tell you that the most difficult call they usually receive is one involving a domestic dispute. They walk into a situation not knowing what to expect, unable to determine who was at fault, and try to resolve the situation, usually without success.\nWe as a nation attempt to do the same thing.We march into a country that we know little about and try to unscramble their differences usually based on how the various factions choose to worship their various gods. Again, these efforts are usually unsuccessful and cost many American lives. I truly believe we have more problems at home to address.\nWhat do I find so fascinating in the newspapers that others seem to miss? Today I read an article that claims that people who are suffering from financial stress tend to lose the equivalent of 13 IQ points. This was the result of a scientific study. Of course financial stress leads to headaches as well.\nOn the same page is a warning from Tylenol advising people to stop taking too much of their popular drug because it may cause sudden liver failure. Oh well!\nOld retired football players, who made gazillions of dollars while they were playing, are now demanding extra compensation for the injuries they received in the NFL. Like they didn’t know that they might get hurt playing football. Come on!\nThere was also an article on memory loss related to age, but I forget what it said.\nNow, what have I learned by watching TV? Firstly Morgan Freeman had a show demonstrating how it might be possible for hackers to invade our minds eventually and determine what we are thinking at any given point. The theory is that the brain is primarily an electronic device with millions of little signals being sent from one place to the other.\nIf someone is able to tap into these signals, heaven knows what they might be able to determine. Of course my wife has been doing this for years. Another theory is that with all of the hundreds of social media links available, that we might someday create a master global brain, which is a combination of all of these, and it will no longer be necessary for us to think on our own, because it has already been done for us by someone else.\nTHIS JUST IN — Researchers say that they were able to use one person’s brain signals to control the motions of someone else. The first experiment in brain-to-brain interfaces involved using rat brains. Knowing that we humans are somewhat similar to rats (as a matter of fact someone called me a rat at our last council meeting) this becomes really meaningful. See if for yourself at www.gadgetynews.com/cyborg-rat-ratbrain-controlled-robot-retains-rodent-personality/\nStay tuned for more at 11 p.m.\nNow, do you see what I mean? Would you want to go through life without knowing some of these things? Not me. (The Morgan Freeman shows are available online. Google it.) In my last article I made reference to a letter given to Gov. Scott complaining about the horribly poor service given at the license renewal office that I went to. I did receive a response from one of his staff members who has promised to look into the issue.\nI am now awaiting more information.\nErnie may be reached at email@example.com"} +{"text": "Name())\n\tassert.Contains(t, eventNames, event2.Name())\n\tassert.Contains(t, eventNames, event3.Name())\n}\n\nfunc TestListDeploymentReplicaEvents_WithFilter(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create test events with different types\n\tcreateTestDeploymentReplicaEvent(t, s, \"filter-account\", \"deployment-1\", \"filter-event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 30*time.Second)\n\treservedEvent := createTestDeploymentReplicaEvent(t, s, \"filter-account\", \"deployment-1\", \"filter-event-2\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_DOWN, gpb.DeploymentReplicaEvent_FINISHED, 60*time.Second)\n\treservedEvent.Reserved = true\n\trequire.NoError(t, s.DB().Save(reservedEvent).Error)\n\tcreateTestDeploymentReplicaEvent(t, s, \"filter-account\", \"deployment-1\", \"filter-event-3\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 90*time.Second)\n\n\t// Filter by type\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `type = \"AUTOMATIC_SCALE_UP\" AND account_id = \"filter-account\"`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 2)\n\tfor _, e := range resp.DeploymentReplicaEvents {\n\t\tassert.Equal(t, gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, e.Type)\n\t}\n\n\t// Filter by status\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `status = \"ONGOING\" AND account_id = \"filter-account\"`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 1)\n\tassert.Equal(t, gpb.DeploymentReplicaEvent_ONGOING, resp.DeploymentReplicaEvents[0].Status)\n\n\t// Filter by reserved flag\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `reserved = true AND account_id = \"filter-account\"`,\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.DeploymentReplicaEvents, 1)\n\tassert.True(t, resp.DeploymentReplicaEvents[0].Reserved)\n\tassert.Equal(t, reservedEvent.Name(), resp.DeploymentReplicaEvents[0].Name)\n\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `reserved = false AND account_id = \"filter-account\"`,\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.DeploymentReplicaEvents, 2)\n\tfor _, event := range resp.DeploymentReplicaEvents {\n\t\tassert.False(t, event.Reserved)\n\t}\n}\n\nfunc TestListDeploymentReplicaEvents_FilterByDuration(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create events with different durations\n\tcreateTestDeploymentReplicaEvent(t, s, \"duration-filter-account\", \"deployment-1\", \"duration-event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 30*time.Second)\n\tcreateTestDeploymentReplicaEvent(t, s, \"duration-filter-account\", \"deployment-1\", \"duration-event-2\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 2*time.Minute)\n\tcreateTestDeploymentReplicaEvent(t, s, \"duration-filter-account\", \"deployment-1\", \"duration-event-3\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 5*time.Minute)\n\n\t// Filter by duration greater than 1 minute (60 billion nanoseconds)\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"duration-filter-account\" AND duration > 60000000000`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 2)\n\tfor _, e := range resp.DeploymentReplicaEvents {\n\t\tassert.Greater(t, e.Duration.AsDuration(), time.Minute)\n\t}\n\n\t// Filter by duration less than 1 minute\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"duration-filter-account\" AND duration < 60000000000`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 1)\n\tassert.Less(t, resp.DeploymentReplicaEvents[0].Duration.AsDuration(), time.Minute)\n\n\t// Filter by duration range (between 1 and 3 minutes)\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"duration-filter-account\" AND duration >= 60000000000 AND duration <= 180000000000`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 1)\n\tassert.Equal(t, 2*time.Minute, resp.DeploymentReplicaEvents[0].Duration.AsDuration())\n}\n\nfunc TestListDeploymentReplicaEvents_FilterByStartAndEndTime(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create events with specific timestamps\n\t// time1: 2020-01-01 12:00:00 UTC\n\t// time2: 2022-06-15 12:00:00 UTC\n\t// time3: 2024-01-01 12:00:00 UTC\n\n\ttime1 := time.Date(2020, 1, 1, 12, 0, 0, 0, time.UTC)\n\ttime2 := time.Date(2022, 6, 15, 12, 0, 0, 0, time.UTC)\n\ttime3 := time.Date(2024, 1, 1, 12, 0, 0, 0, time.UTC)\n\n\tevent1 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplica"} +{"text": "Julia Manning: Vaccinating for the greater good\nJulia Manning, Director of 2020health.org, says that discrediting new vaccines such as the MMR risks the lives of more than those who don't take them.\nLast week, 2020health.org held a seminar on the crucial role that modern vaccines have to play in the delivery of Public Health in the UK. We heard a story from a Consultant Paediatrician working in South East London about two children who had previously received kidney transplants at the age of two. They had had their first MMR jab but not the booster which is contra-indicated following organ transplants. The children came into contact with the measles virus and caught the disease. Both of them suffered permanent brain damage.\nThis week, the General Medical Council hearing begins into serious professional misconduct by Dr Andrew Wakefield and two other doctors who published their damaging theory of a link between the MMR vaccination jab and autism in 1998. One of the accusations is that Dr Wakefield did not declare to his hospital Ethics Committee that he was getting money from the Legal Aid Board for advising the parents of autistic children who wanted to pursue compensation in the courts. Only 3 years before in 1995, the uptake rate of the vaccine had reached 95%, the target rate to achieve ‘herd immunity’. This is where the immunity of a sufficient number of individuals in a population is such that infection of one individual will not result in an epidemic. Every parent who declines the MMR jab increases the risk not only to their child of serious disease, but also the risk to many others. It is precisely this herd immunity that is vital to protect people who are immunocompromised, which includes all organ transplant recipients.\nDespite both numerous publications since finding no link between MMR and autism, and the fact that in 2004 the 10 co-authors of the 1998 paper issued a retraction, the take–up has still not recovered. Nearly 10 years after publication of the paper, the vaccination rate is still barely 50% in some London boroughs, and the first six months of last year saw the biggest outbreak of measles in 20 years. The consequences of Dr Wakefield’s unfounded ideas are devastating.\nThere are two facts we need to remember when we think about immunisations. Firstly, we must not forget history - the suffering, disability and in many cases death that arose before the introduction of universal vaccination for diseases such as polio, measles, smallpox and whooping cough. It is all too easy to forget how much good health most of us enjoy as a result of those childhood jabs. We need as well to be open to new vaccines that will protect future generations from disease. New vaccines emerging such as those for hepatitis B, cervical cancer and chicken pox, not to mention the search for a vaccine against HIV, could prevent much devastating illness amongst significant numbers of the population.\nAnd not just the UK population. As secondly we must remember the global benefits to developing countries of the vaccines that have been developed in the West. Not only do vaccination programmes dramatically improve mortality rates, but the consequential improvement in people’s educational attainment, average income and productivity through disease avoidance is measurable. The current work on vaccinations against Malaria and HIV could transform the prospects of many African countries.\nDespite the evidence, there will still be campaigners outside the GMC in the coming weeks who claim Dr Wakefield is a ‘hero’. It behoves us all to remember that there is no such thing as risk-free medicine, and it is good science to try and minimise those risks. However, it is patently true that the benefits of vaccination vastly outweigh the risks. 1000 mothers still bury their children who have died from measles every day in the developing world. This is an unnecessary tragedy, and we should not make matters worse by discrediting life-saving Public Health measures."} +{"text": "If I were ever to design a personal coat of arms (you know, the kind that knights of old had on their shields) I think it would have to have a hummingbird in flight on a blue and pink checkerboard field with a KitchenAid mixer on the left and a Bernina sewing machine on the right. That would encompass my favorite colors, my favorite activities, and my mascot.\nI love hummingbirds. They are breathtaking little miracles that quicken my heart whenever I see one, hovering over a flower or zooming across the yard. But that is not the only reason I'd choose one as my personal mascot. I see a bit of the hummingbird in me. Not that I toil from sun up to sun down to take in enough calories to sustain my meager body weight. (that, cough cough, is not an issue for me)\nI am like a hummingbird in that I flitter. I flit from project to project, staying with one only long enough to generate a substantial amount of mess, then abandoning it as I find something new to try on a blog, in a catalog, in a store, or on Pinterest. I love the giddy, fizzy feeling of dreaming up a new project, planning for it, purchasing supplies, all the while envisioning how wonderful the finished project will be. I can just picture how smoothly and neatly it will all come together. Then when the inevitable snag or hiccup arrises, I'm irritated (sometimes to the point of wadding it up and throwing it across the room) and quickly move the project from the active work space over to the tottering \"to finish up later\" pile, replacing it with whatever seems the most pressing or interesting at the moment.\nFor the last 3 years I've made it my New Year's goal to finish up projects before starting anything new. Specifically I have vowed to finish up the 4 quilt tops that lie in folded and forgotten ignominy beneath my work table in various states of \"so close but not quite done.\" And how have those goals worked out for me? I think the fact that I can transfer the same goals onto the next year's Goals page in my journal without changing a word shows that something's not working.\nPerhaps I've just taken on tasks that are too big and my interest wanes before I complete the project. More likely, though, the problem lies in my attention span. I can only focus on one thing for so long before I'm distracted (Squirrel!) by something else (Oooooh, shiny!) and want to turn my attention (what's for lunch?) to the next thing.\nHence the hummingbird.\nThe other thing I have in common with hummingbirds is my love for sugar. I know it's not awesome for me and usually I try to avoid it. But every once in a while I have to give in to the craving and bake something sweet. And hopefully I'm not distracted while I'm (there's a new Castle on this week?) reading the recipe so I don't forget something crucial. Like flour. Or salt. Or sugar. Not saying that's ever happened, just saying it's a possibility. (And those of you who can think of examples don't need to share them in the comments.)\nMolasses cookies are always welcome in our house and these received an especially enthusiastic welcome. I'm sure the carb-deprivation contributed to the rave reviews, but even those friends who are still eating carbs enjoyed them and gave them big thumbs up. Soft, not too spicy, and they stayed fresh in the cookie jar for several days. I think this recipe is a keeper.\nMolasses Ginger Crinkles\n- adapted from America's Best Recipes\nmakes about 4 dozen\n1 cup sugar (I used organic cane sugar)\n1/2 cup butter\n3 Tbsp coconut oil\n1/4 cup molasses\n1 cup all-purpose flour\n1 cup white whole wheat flour\n2 tsp baking soda\n1/2 tsp salt\n1 tsp ground ginger\n1 tsp ground cinnamon\n1- Preheat oven to 350 deg. F.\n2- In a medium bowl, combine the sugar, butter, coconut oil, and egg. Beat well with an electric mixer at medium speed. Add the molasses and beat well.\n3- In a small bowl whisk together the flours, baking soda, salt, ginger, and cinnamon.\n4- Add the flour mixture to the sugar mixture and stir to combine.\n5- Shape dough into 1-inch balls. Place on ungreased cookie sheets, about 3 inches apart. The cookies will spread as they bake, so leave space.\n6- Bake at 350 deg. for 8-10 minutes, till the centers are just set. Cool the cookies on wire racks."} +{"text": "EventName(\"time-filter-account\", \"deployment-1\", \"time-event-1\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (30 * time.Second).Nanoseconds(),\n\t\tStartTime: time1,\n\t\tEndTime: time1.Add(30 * time.Second),\n\t}\n\trequire.NoError(t, s.DB().Create(event1).Error)\n\n\tevent2 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(\"time-filter-account\", \"deployment-1\", \"time-event-2\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (60 * time.Second).Nanoseconds(),\n\t\tStartTime: time2,\n\t\tEndTime: time2.Add(60 * time.Second),\n\t}\n\trequire.NoError(t, s.DB().Create(event2).Error)\n\n\tevent3 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(\"time-filter-account\", \"deployment-1\", \"time-event-3\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (90 * time.Second).Nanoseconds(),\n\t\tStartTime: time3,\n\t\tEndTime: time3.Add(90 * time.Second),\n\t}\n\trequire.NoError(t, s.DB().Create(event3).Error)\n\n\t// Filter by start_time - all events have start_time in the past\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"time-filter-account\" AND start_time < now()`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 3, \"Should find 3 events with start_time < now()\")\n\n\t// Filter by end_time - all events have end_time in the past\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"time-filter-account\" AND end_time < now()`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 3, \"Should find 3 events with end_time < now()\")\n\n\t// Combined filter with start_time and end_time\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"time-filter-account\" AND start_time < now() AND end_time < now()`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 3, \"Should find 3 events with both time filters\")\n}\n\n// TestListDeploymentReplicaEvents_FilterByExplicitTimestamp tests timestamp() filtering with explicit RFC3339 timestamps.\nfunc TestListDeploymentReplicaEvents_FilterByExplicitTimestamp(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create events with specific timestamps\n\t// time1: 2020-01-01 12:00:00 UTC\n\t// time2: 2022-06-15 12:00:00 UTC\n\t// time3: 2024-01-01 12:00:00 UTC\n\ttime1 := time.Date(2020, 1, 1, 12, 0, 0, 0, time.UTC)\n\ttime2 := time.Date(2022, 6, 15, 12, 0, 0, 0, time.UTC)\n\ttime3 := time.Date(2024, 1, 1, 12, 0, 0, 0, time.UTC)\n\n\tevent1 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(\"explicit-time-account\", \"deployment-1\", \"time-event-1\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (30 * time.Second).Nanoseconds(),\n\t\tStartTime: time1,\n\t\tEndTime: time1.Add(30 * time.Second),\n\t}\n\trequire.NoError(t, s.DB().Create(event1).Error)\n\n\tevent2 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(\"explicit-time-account\", \"deployment-1\", \"time-event-2\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (60 * time.Second).Nanoseconds(),\n\t\tStartTime: time2,\n\t\tEndTime: time2.Add(60 * time.Second),\n\t}\n\trequire.NoError(t, s.DB().Create(event2).Error)\n\n\tevent3 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(\"explicit-time-account\", \"deployment-1\", \"time-event-3\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (90 * time.Second).Nanoseconds(),\n\t\tStartTime: time3,\n\t\tEndTime: time3.Add(90 * time.Second),\n\t}\n\trequire.NoError(t, s.DB().Create(event3).Error)\n\n\t// Filter by start_time greater than 2021-01-01T00:00:00Z - should get 2 events (time2 and time3)\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"explicit-time-account\" AND sta"} +{"text": "Results 1 to 3 of 3\nApril 8th, 2011, 11:25 AM #1\n- Join Date\n- Mar 2011\nFirst time at CTI, Mar 29-Apr 5 - Review\nThe hotel grounds are maintained beautifully. The staff move at a Jamaican pace (i.e. get on island time, mon!) but are friendly and will make sure you have whatever you need and want.\nBe prepared for the 2-hour ride from Montego Bay. We had read a lot of reviews, so we were. It would be a rather nasty surprise if you weren't ready for it.\nArrival at Montego Bay, customs, a couple of beers at the lounge, and the bus ride were all uneventful. Check-in was a breeze (with cool face towels and drinks quickly in hand), and our room was ready when we arrived at 2:45 or 3:00.\nThe room was exactly what we expected. The bed was on the hard side, but comfortable. Note: in the Deluxe Garden Room, there is only a standing shower, no bathtub. And if you're a light sleeper, you might want earplugs. There are creatures we named the Jamaican Nocturnal Screaming Frogs. They're LOUD, and PERSISTENT, lol! No noticable road noise at all.\nThe restaurants were all great. Service was very slow in 8 Rivers, but the food was excellent. I'm embarrassed to say I gnawed the bones of my lamb, it was so good. We ate at Bayside twice. I'm not a hugely romantic person, but the view and atmosphere, right there over the water, was just amazing. The food was very good, and the courses came much more quickly here. I think we only at at Veranda once. It was fine. Not particularly memorable. We ate at the breakfast buffet at Patio every morning, and it was good. You can always get made-to-order eggs or omelettes if you don't like what the buffet has to offer.\nWe spent most of our days on Tower Isle. We LOVED it! We would just sort of lay around and half-doze or sunbathe until lunchtime. After lunch, things tended to get a little busier and more social. They set up chafing dishes every day and brought lunch over. Lunch was a little hit-or-miss, always edible, but not always spectacular. The boyfriend was a big fan of jerk burgers from the Poolside Grill, so we went back over there a couple of times for lunch. I enjoyed the jerk chicken sandwiches and the calamari I had there (also, if you get a craving for 3am french fries, THAT is the place to go!). Many thanks to our bartenders on the island (Pasanga, Terry, Kimoni, Roberto...and I know I'm leaving so many out!), and MANY MANY thanks to Captain Jack Sparrow (aka Gary) for ferrying us tirelessly between the resort's dock and the island, and for singing to us and just generally adding to the fun!\nWe met some WONDERFUL new friends on Tower Isle!!! Mike and Terra, Jodi and Rob, Michelle and Tommy, Becky and Greg, Sara and Paul, we already miss you! It was just a great vibe, and great people made it soooo much fun. Some days were quieter on the island, some rowdier (with shots and such), but it was always fun. One group (of what we thought of as \"newbies\" to the island) got completely out of hand and ruined the fun one afternoon (just too drunk and stupid - not worth relating details), but I don't hold one dumb episode against the resort. There are irresponsible people everywhere.\nWe hit the spa for massages one morning and were glad we did so. The 80-min couples massages were great. Though they didn't offer deep tissue (I like mine a little rougher than Swedish) with the couples massage, they were still enjoyable.\nWe didn't do many activities; we're not fans of schedules or timelines on vacation. From other guests and our one experience (catamaran cruise cancelled, then rescheduled from another resort so we would have to get on a bus, which we didn't want to do), we know the watersports/excursions are a little hit or miss, depending on weather and perhaps other factors. Just get on island time, mon, know that things can change, be a bit flexible, and you'll be fine. It's Irie!\nThe only evening entertainment we went to was the Monday night Barefoot Beach Party. The dancers, acrobats, and fire limbo guy were great. The buffet meal that was set up was very good, too, and it was nice to eat with our toes in the sand. Drink service was a bit slow that night, but again, it's irie, just kick back, enjoy the entertainment, and the drinks will soon come.\nOne note about the drinks: I've seen many reviews on all-inclusives that state the drinks were a bit weak or watered down. They are NOT weak here. I actually had to order weak drinks much of the time, as we got our first drinks on the island at 10:00 or 10:30, and I could NOT make it through the day on the full-strength versions (and I'm a drinker). And you do NOT have to do any Bob Marleys! I don't care what people say, those shots *are* pretty, but they taste like some kind of poisonous, alcoholic cough syrup - BLECH!\nWe had an excellent vacation and are very glad we ended up at CTI! (We booked the secret rendezvous, so we could have ended up at any of the four.) I recommend the resort, and we hope to go back for another visit sometime.\nApril 9th, 2011, 11:09 AM #2\n- Join Date\n- Jan 2011\nNice review....good times had by all!!\nLove the swim suit photo!!\nDan and Sue\nApril 10th, 2011, 07:28 PM #3\n- Join Date\n- Mar 2011\nGood to \"see\" you here, Sue! Yes, definitely a good time had by all. I was pricing trips again already on Friday, lol. I can't afford to go any time soon, and Q's deployment stuff is all up in the air for a while, so who knows when we'll get to go back. But dreaming is free."} +{"text": "Social and Cruise History: Sinking feeling: unease about Titanic II plan…\nI agree with Hazel Gaynor’s piece in the Irish Examiner. The “Titanic II” is just another media gimmick. No one in their right mind is going to sail across the Atlantic on some seven day recreation of a pre-World War I Disney-ride. Imagine being aboard an old style ship divided into classes dressed in uncomfortable turn of the last century clothes. It you look at the menus for the RMS Titanic they reflect the times. The macabre tragedy surrounding the RMS Titanic is similar to recreating the American space shuttle, Challenger, that exploded and killed all seven astronauts. Do you honestly want to spend a week on the “Challenger” or the old fashioned RMS Titanic? Talk about creepiness…\nCourtesy of the Irish Examiner:\nAre plans to recreate the 1912 voyage a homage to history, or just insensitive, asks Hazel Gaynor\nBy Hazel Gaynor\nEARLIER this year, Clive Palmer, Australian mining mogul and billionaire, held a glitzy press conference in New York to announce his plans to build Titanic II, the flagship of his shipping company, Blue Star Line.\nThe ship will be built in China and will set sail in 2016. Reaction was incredulity and ridicule — yet 40,000 people have still applied for tickets for the maiden voyage. Offers of $1m have reportedly been made for first-class cabins.\nBuilding Titanic II, which will recreate Titanic’s maiden voyage, is viewed as insensitive, courting disaster, and a mockery of the memory of those who died this month in 1912.\nPublic rooms are more like film sets. As for the accommodations, is anyone going to sleep in these narrow style bunk beds? Who would go Third Class – only a masochist!\nDave Fredericks, a descendant of a Titanic survivor from Southampton, is supporting a petition to block Titanic II.\n“When asked why he is building Titanic II, Clive Palmer arrogantly responds ‘because I can’. I say the question should not be ‘why he is building it?’, but, more, ‘should he be building it?’ And, respectfully and morally, the answer to that question must be no,” Fredericks says.\nMichael Molloy, from the Addergoole Titanic Society, is open-minded. “For April 2012, a local group of enthusiasts built a large scale model of Titanic and launched it on Loch Conn, so, actually, Lahardane labour built Titanic II in the memory of the Addergoole 14. “It would be very nostalgic, and fitting, if relatives of those on RMS Titanic were given the opportunity to travel as a group on one of the Titanic II voyages. There would be stories to tell then,” Molloy says.\nHelen Benziger, great granddaughter of Margaret ‘The Unsinkable Molly’ Brown, agrees. “I will be on the maiden voyage of Titanic II. I am hoping for the same cabin as my great grandmother. It would be amazing to finish the voyage for her,” Benziger says.\nThird Class dining room on the “new” Titanic…\nA Titanic II would be of huge interest, a fascinating opportunity to revisit history. “Passengers on, and visitors to, Titanic II will have a historical interest in the ship, in the same way as those who visit ground zero or the green fields of France,” says Michael Martin, who runs the Titanic trail tour in Cobh.\n“It is not disrespectful to do that and we don’t denigrate people for revisiting those places of historical tragedies. Titanic was an immense tragedy, but that doesn’t ring-fence it from being of historical interest.”\nHistorical interest aside, is it moral to build a replica of a ship that is synonymous with such awful tragedy?\n“Questions of morality were raised about the Balmoral as it recreated Titanic’s maiden voyage to mark the centenary,” says Martin.\n“For the relatives, it was very meaningful for them to recreate the journey. In terms of using the Titanic name, there is a naval tradition to use ships’ names on multiple occasions, despite sinkings and loss of life.”\nThat Titanic II will be built in China, and not in Belfast, like the original, has been a matter of debate.\nA spokesperson for Titanic Belfast says. “While there are many great reasons to be proud of our ship-building heritage, Titanic Belfast is utmost respectful and mindful of the loss of life on RMS Titanic. As the authentic home of Titanic, it would be natural to expect Titanic II to dock in Belfast. It would not be a case of the Titanic coming back, more so a near-replica of RMS Titanic being built to sail in its name. Titanic Belfast would naturally welcome its arrival into Belfast.”\nIt remains to be seen whether Palmer’s ambitious project will come to fruition. After all, he is a man who doesn’t have the best maritime track-record, with one of his luxury super-yachts, worth a reported $5.3m, almost sinking off Queensland’s Gold Coast last week.\nWhatever your own views on Titanic II, even die-hard enthusiasts should prepare to be underwhelmed. “Titanic would be a very small ship by today’s standards,” says Martin. “Some vessels which now come into Cobh harbour are three times the size.”\n*Hazel Gaynor’s Titanic novel, The Girl Who Came Home, is available on the Amazon Kindle store.\nFor more on Titanic II, CLICK HERE"} +{"text": "rt_time > timestamp(\"2021-01-01T00:00:00Z\")`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 2, \"Should find 2 events with start_time > 2021-01-01\")\n\n\t// Filter by start_time less than 2021-01-01 - should get 1 event: time1\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"explicit-time-account\" AND start_time < timestamp(\"2021-01-01T00:00:00Z\")`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 1, \"Should find 1 event with start_time < 2021-01-01\")\n\n\t// Filter by start_time range (between 2021-01-01 and 2023-01-01) - should get 1 event: time2\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"explicit-time-account\" AND start_time > timestamp(\"2021-01-01T00:00:00Z\") AND start_time < timestamp(\"2023-01-01T00:00:00Z\")`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 1, \"Should find 1 event with start_time between 2021 and 2023\")\n\n\t// Filter by end_time less than 2022-01-01 - should get 1 event: time1\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"explicit-time-account\" AND end_time < timestamp(\"2022-01-01T00:00:00Z\")`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 1, \"Should find 1 event with end_time < 2022-01-01\")\n\n\t// Combined filter with start_time and end_time\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"explicit-time-account\" AND start_time >= timestamp(\"2022-01-01T00:00:00Z\") AND end_time <= timestamp(\"2025-01-01T00:00:00Z\")`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 2, \"Should find 2 events within the time range\")\n}\n\nfunc TestListDeploymentReplicaEvents_WithPagination(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create multiple test events\n\tfor i := 0; i < 5; i++ {\n\t\tcreateTestDeploymentReplicaEvent(t, s, \"page-account\", \"page-deployment\", resourcename.GenerateID(\"page-event-\", 8),\n\t\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, time.Duration(i+1)*time.Minute)\n\t}\n\n\t// First page\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"page-account\"`,\n\t\tPageSize: 2,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 2)\n\tassert.NotEmpty(t, resp.NextPageToken)\n\tassert.Equal(t, int32(5), resp.TotalSize)\n\n\t// Second page\n\tresp2, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"page-account\"`,\n\t\tPageSize: 2,\n\t\tPageToken: resp.NextPageToken,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp2.DeploymentReplicaEvents, 2)\n\tassert.NotEmpty(t, resp2.NextPageToken)\n\n\t// Third page (should have 1 item)\n\tresp3, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"page-account\"`,\n\t\tPageSize: 2,\n\t\tPageToken: resp2.NextPageToken,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp3.DeploymentReplicaEvents, 1)\n\tassert.Empty(t, resp3.NextPageToken)\n}\n\nfunc TestListDeploymentReplicaEvents_WithOrderBy(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create events with different durations\n\tcreateTestDeploymentReplicaEvent(t, s, \"order-account\", \"order-deployment\", \"order-event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 100*time.Second)\n\tcreateTestDeploymentReplicaEvent(t, s, \"order-account\", \"order-deployment\", \"order-event-2\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 50*time.Second)\n\tcreateTestDeploymentReplicaEvent(t, s, \"order-account\", \"order-deployment\", \"order-event-3\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 200*time.Second)\n\n\t// Order by duration ascending\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"order-account\"`,\n\t\tOrderBy: \"duration\",\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.DeploymentReplicaEvents, 3)\n\tassert.LessOrEqual(t, resp.DeploymentReplicaEvents[0].Duration.AsDuration(), resp.DeploymentReplicaEvents[1].Duration.AsDuration())\n\tassert.LessOrEqual(t, resp.DeploymentReplicaEvents[1].Duration.AsDuration(), resp.DeploymentReplicaEvents[2].Duration.AsDuration())\n\n\t// Order by duration descending\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"order-account\"`,\n\t\tOrderBy: \"duration desc\",\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.DeploymentReplicaEvents, 3)\n\tassert.GreaterOrEqual(t, resp.DeploymentReplicaEvents[0].Duration.AsDuration(), resp"} +{"text": "- The Daily Caller - http://dailycaller.com -\nMow money, mow problems\nPosted By Ron Hart On 12:00 AM 04/21/2010 In Blog - Ron Hart | 4 Comments\nHARRISON, Tenn. — After spending a few days in Atlanta last week, it was nice to get back to Tennessee and the country for a while. Atlanta streets have so many bone-jarring pot holes that some have Starbucks in them. The “Pothole Posse,” a name the former mayor gave the team tasked with filling in some of these massive craters (some big enough to bass-fish in), must have saddled up and left town.\nAtlanta is the “City Too Busy to Hate,” which leaves it ample time to tax.\nCrime in some areas is so bad that, in a recent 5K race, the starter’s gun drew return fire and the finish line ribbon was crime scene tape.\nLife is simpler in the country. It mitigates big city life, where government continues to tell us how to live. Tennessee is called the Volunteer State because they cannot make you live there. Its government knows that and acts accordingly. Tennessee has no state income taxes, good solid Senators and few unions; therefore, it continues to attract businesses. Volkswagen is building a plant near my place there.\nTo keep one’s balance in life, it is important to spend time in the country. The good people there give you perspective and a ride if you need one. At the lake in Tennessee it is “The Season,” which means lawn mower racing season. When you see a sign like this, you have to attend.\nThe lawn mower races attract the type of folks you might imagine: men who use a highlighter when they read “Field and Stream” and can field dress a squirrel. I’m pretty sure many of these folks have been involved in a custody fight over a “Legends of NASCAR” commemorative plate collection.\nTwo modern miracles, the siphon hose and the beer cooler, were on display at this gathering of Americana. Before the advent of the beer cooler, the best way to chill your beverage was to leave it in the creek. I find comfort in being around men who can fix anything and take pride in that ability. These are folks who do not want to take from others for their sustenance; the only thing they want from government is to be left alone. Whatever our federal government does, they prefer that it be done to some other state, preferably Kentucky.\nIn fact, the only government program one might arguably call a success, the Tennessee Valley Authority, was spawned in Tennessee. In an aberrant and odd use of government, the TVA actually produces things Americans need: hydroelectric and nuclear power, fertilizer manufacturing, flood control, recreational lakes, and barge transportation routes. In an Obama-nation where federal power is exerted in legislation that, by the second page, treads on dubious constitutional grounds, the TVA seems overlooked as a government-owned, independent corporation with $11 billion in revenue and an operating income of about $2 billion in 2009.\nIf Obama does not shut it down for making an evil profit and providing 9 million customers with products they want at competitive prices, the TVA may be the only thing the Federal government has been involved in that actually helps us Americans. The good people of Tennessee were a big part of TVA’s success.\nBack to the lawn mower races because I know you want to know who won. In a field of contestants with names like Chester, DeWayne, Floyd, Larry and the like, one Dale Earnhardt distinguished himself in this epic contest. The imagination it took to install a gun rack on a lawn mower earned him style points with the judges.\nLittle is known of the origins of lawn mower racing, except that it has its roots in the notion that people in this country can do what they damn well please. This also explains the Tea Party movement, and why Tracy City, Tenn., just elected a dead person over an incumbent. Maybe it was to be sure the new mayor was more responsive to the citizens’ desires or would not steal; my guess it was to send a message to Washington.\nI hope incumbents are listening. The Obama administration is busy in its “war rooms” figuring how to spin opponents as racists. Democrats have war rooms for everything—but war.\nA syndicated libertarian op-ed humorist, Hart’s columns appear in 40 papers nationwide.\nArticle printed from The Daily Caller: http://dailycaller.com\nURL to article: http://dailycaller.com/2010/04/21/mow-money-mow-problems/\nCopyright © 2011 Daily Caller. All rights reserved."} +{"text": "Campaign of the Month: January 2013\nDANgerous Kalamar 4\nThe hobgoblin values of strength and honor hold true for the Krangi, and their attitudes about themselves and others are founded upon these principles. However, the Krangi also believe that they are the only creatures that possess honor, and that every material possession rightfully belongs to them. This is not manifested as greed. The Krangi do not want to own every material possession, but those that they do want they believe are theirs. The Krangi value of strength also dictates that violence is an acceptable solution to every problem. If a Krangi is able to kill someone, he has power over their most important possession: their life. Without their life, a Krangi cannot have strength and cannot gain honor, so controlling another’s life grants control over every other aspect of their life. Thus, demonstrating the power to kill through violence grants the stronger Krangi complete control over the weaker one. In Krangi society, killing a member of a lower caste, if a sufficient reason can be provided, is not a crime.\nAs a byproduct of their devotion to physical strength, the Krangi are a very pragmatic people. If one Krangi is better than another at a particular task, the more proficient Krangi should perform that task. Finally, beauty is a concept that is foreign to the Krangi. Things are designed for a purpose, and anything that does not directly serve that purpose is extraneous and a waste of time, materials, or effort.\nTheir skin is usually a light brown or maroon coloring; yellow or tan skin is uncommon. Krangi faces have a goblinoid resemblance, but are squarer than the other hobgoblin subraces. The Krangi have two small tusks that extend from their lower jaw. At their longest, these tusks extend up to the broad, flat nose near the center of the face. The nose is usually a light gray or bluish gray color, but can be as dark as navy blue.\nKrangi facial hair is confined almost entirely to the chin, where it grows thick and bushy. Like their facial hair, the Krangi hair grows long and thick, and is usually very dark. This hair is almost always braided into one or two long strands, and it hugs the shape of the head closely. Krangi eyes tend towards the lighter end of the spectrum: tan, gold, yellow and light brown. The pupil is usually black, but occasionally is red. These “red eyes” are considered by the Krangi to be blessed at birth, and are expected to assume positions of leadership quickly.\nKrangi females are very similar to their male counterparts, with only a few exceptions. They generally have the same skin and hair coloration, but they do not possess facial hair, and their body hair is less prominent.\nMale 5'3\" +2d12 (inches) 140 lbs x (2d4) lbs\nFemale 5' +2d12 (inches) 125 lbs x (2d4) lbs\nAdulthood: Middle Age: Old: Venerable: Maximum:\n22 yrs 80 yrs 120 yrs 160 yrs +3d20 yrs\nDue to their aggressive warmongering, the Krangi have many enemies, but they do understand the usefulness of peace. The Krangi are content to war with anyone, but will make peace with just about anyone (with a few notable exceptions), so at any given time, they will be fighting or preparing to fight about half of their neighbors, and will be at peace with the other half. The Krangi’s main purpose foe establishing peace is trade. The humans have demonstrated that they are willing to negotiate, trade, and make peace with the Krangi, and this makes them less offensive than the hated elves, or worse, the dwarves. Krangi have little contact with other gnomes or halflings. The Krangi are much more amenable to humanoids. Just about any Medium humanoid is welcome in Krangi society, provided that they abide by the laws and social regulations.\nThe largest concentration of Krangi lies in the Kingdom of Norga-Krangrel. It is still the goal of the Krangi to reconquer the lands of Kruk-Ma-Kali (an ancient hobgoblin king) and the current kruk, Krokal-Marg, frequently declares war on the kingdom’s neighbors to the north. They speak the Hobgoblin language and at least one other, since they must communicate with both humanoids and civilized races. Krangi generally speak all languages (except Hobgoblin) with an accent, but it is subtle and hard to detect.\nThe Church of Endless Night is the state sponsored religion, but all lawful evil religions have a place, albeit an inferior one. The Krangi do not allow any faiths that are not of lawful evil alignment. They watch clerics of other faiths closely, and they often arrest the clerics for little or no reason. Those found establishing congregations of other gods are arrested and executed, their temples are destroyed and their holy symbols defaced. The Krangi arrest any parishioners as well, though they may save themselves from executing by converting. Despite this, most of the other evil faiths and several of the neutral ones have an underground congregation or two. Attendance is always low, however, both because of the danger it presents and the lawful evil tendencies of the Krangi population.\nJust about every one of the core classes is present in Krangi society. Clerics and fighters are extremely common, and monks and sorcerers are also popular, less so the gladiator, infiltrator, ranger, rogue or shaman. Barbarians, druids and wizards are rare. Of all the classes, only the bard, Basiran dancer, paladin and spellsinger are never seen in Krangi society. While it is theoretically possible for a Krangi to follow most of these career paths, no instance has ever been documented."} +{"text": ".DeploymentReplicaEvents[1].Duration.AsDuration())\n\tassert.GreaterOrEqual(t, resp.DeploymentReplicaEvents[1].Duration.AsDuration(), resp.DeploymentReplicaEvents[2].Duration.AsDuration())\n}\n\nfunc TestListDeploymentReplicaEvents_InvalidFilter(t *testing.T) {\n\ts := newTestServer(t)\n\n\t_, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `invalid_field = \"value\"`,\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"invalid filter\")\n}\n\nfunc TestListDeploymentReplicaEvents_InvalidPageToken(t *testing.T) {\n\ts := newTestServer(t)\n\n\t_, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tPageToken: \"invalid\",\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"invalid page_token\")\n}\n\nfunc TestListDeploymentReplicaEvents_DefaultOrderBy(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create the newest-start event first so create_time desc would return the\n\t// other event first if the default order regressed.\n\tnewestStartEvent := createTestDeploymentReplicaEvent(t, s, \"default-order-account\", \"default-order-deployment\", \"default-order-event-newest-start\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 30*time.Second)\n\tcreateTestDeploymentReplicaEvent(t, s, \"default-order-account\", \"default-order-deployment\", \"default-order-event-oldest-start\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 5*time.Minute)\n\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"default-order-account\"`,\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.DeploymentReplicaEvents, 2)\n\tassert.Equal(t, newestStartEvent.Name(), resp.DeploymentReplicaEvents[0].Name)\n}\n\nfunc TestGetDeploymentReplicaEventDurationDistribution_FilterRequired(t *testing.T) {\n\ts := newTestServer(t)\n\n\t_, err := s.GetDeploymentReplicaEventDurationDistribution(context.Background(), &agpb.GetDeploymentReplicaEventDurationDistributionRequest{\n\t\tFilter: \"\",\n\t\tPercentiles: []*agpb.DeploymentReplicaEventDurationPercentile{\n\t\t\t{Percentile: 50},\n\t\t},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"filter is required\")\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_PartialProgress(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"progress-account\", \"deployment-1\", \"event-90\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 30*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgress(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(30*time.Minute), 30*time.Minute, 10, 9)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(9), resp.Thresholds[0].ReadyReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_ZeroProgress(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"zero-progress-account\", \"deployment-1\", \"event-0\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 30*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgress(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(30*time.Minute), 30*time.Minute, 10, 0)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"zero-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(0), resp.Thresholds[0].ReadyReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_CountsMissingProgressAsUnscheduled(t *testing.T) {\n\ts := newTestServer(t)\n\teventWithLateProgress := createTestDeploymentReplicaEventWithRequested(t, s, \"missing-progress-account\", \"deployment-1\", \"event-late\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 10*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventWithRequested(t, s, \"missing-progress-account\", \"deployment-2\", \"event-none\",\n\t\tgpb.DeploymentReplicaEvent_MANUAL_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 10*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgress(t, s, eventWithLateProgress.AccountId, eventWithLateProg"} +{"text": "In French \"Fait Divers\" is an expression not too easy to translate if one wants to keep its Gallic flavor. It is used when, for example, newspapers report strange events that have no relevance to the greater design such as a love triangle murder or a specific museum robbery. Not quite \"miscellaneous\" but somewhere along the line.\nThis is the best way to qualify the recent faux pas of French diplomacy, \"diplomacy\" used in a charitable way when France's foreign policy is concerned.\nThe item is that the French ambassador in Caracas, Pierre-Jean Vandoorne, did meet with Rodrigo Granda sometime in April 2004. This Granda is of course the \"foreign minister\" of the FARC who was arrested last December in Caracas, whisked to Cucuta, and became the cause of the latest diplomatic rift between Bogotá and Caracas. It is also the same Granda that walked around Venezuela as if nothing, who became a Venezuelan citizen \"very easily\" and just on time to vote on August 15 (for Chavez it is presumed). It is also the Granda that has just being implicated in the kidnapping and murder of the daughter of a Paraguayan ex-president. A very nice fellow this Granda, to the point that Colombia is already willing to send him to Paraguay to stand trial.\nSo why would Monsieur Vandoorne meet with Granda? In Venezuelan territory nevertheless!\nWell, it is a long story of Gallic hubris. It turns out that a political rising star of Colombia, Ingrid Betancourt, former presidential candidate, with a nice sounding French name, happened to have resided in France in exile, married a French man, wrote in French, and was thus the toast of Paris salons who suffer from quite an inferiority complex in front of the advances of English in the Wide Wild World. I cannot say much about Mrs. Betancourt but I suspect that she was smart enough to use the French. Unfortunately for her she got kidnapped during her electoral campaign, a terrible and unfair situation that she is still enduring after three years.\nBut the French will have none of it and they have started a \"free Ingrid\" campaign. President Chirac has become personally involved, asking Chavez and Castro to help. But I suspect that this has been rather counterproductive since it gave only more bargaining power to whoever is holding Ingrid Betancourt. So, it seems that Mr. Vandoorne received the instructions to try to negotiate something in Caracas, with no one less than Granda...\nI feel for the French ambassador. 2004 did not end very well for him as Mr. Muselier, the French foreign secretary made some rather unsuitable declarations backing the authoritarian state that is slowly but surely being installed in Venezuela. But we all know that French diplomacy will balk at nothing to peddle French goods. And boy, are they trying to sell stuff to Chavez!!! After all, Chavez is kicking out the US and surely France should step in less than China, or anyone else, takes too much of a bite.\nAnd now this! How could Monsieur Vandoorne negotiate with Granda in Caracas? At the French embassy no less!!!!!!!!! Aren't there discrete restaurants where they could have met? And without even the agreement of the Colombian government!?!?! Though Betancourt's husband states that Uribe blocked the negotiations.\nSo? Is this the Granda 2 affair? Will Chavez blame Uribe for knowing that Granda was in Caracas having tea at the embassy?\nI think that Chavez, and now the French, have a lot more to explain on Granda. More than a fait divers?\nAnd the French should also explain how come their foreign policy is so sloppy, so mercenary, plagued with so many free agents (the husband of Ingrid is not the first Frenchman doing \"independent\" negotiations that could dangerously implicate the French government in business where it would be well advised to keep its distances, as it happened recently in an Iraq hostage negotiation).\nPS: added two days later. It seems that the Colombian government did know something of the negotiations. Of course, like in all such cases who knew and what will reamin murky for ever and ever. But conveniently for France, and Parisian newspapers, a new scandal that forced the resignation of the finance minister comes right on time. After all, this is a Parisian affair, and Ingrid's fate will again depend on the salons activities of Paris."} +{"text": "Thursday, October 25, 2012\nIf there's one thing that Quail Ridge Books excels at--and there are many things it does right--it's the way in which it showcases titles the staff really, really, really wants you to read. Sure, \"Staff Picks\" are almost de rigueur in independent bookstores these days, but there's just something about the spirit in which Quail Ridge puts its books front and center that makes it stand out from most of the other stores I've visited on this Fobbit book tour.\nI was a half hour early to my reading at the store in Raleigh, North Carolina last night and so I wandered the stacks, happy as a nose in a perfume shop. In addition to the usual bestseller and new arrivals displays near the front door, I also found a table devoted to political books (biographies about the Obamas, screeds from political talk-show tonguemeisters, etc.). It was neatly divided in half into \"Red Books\" and \"Blue Books.\" Clever. Another tier of shelves displayed books by authors who were scheduled for upcoming appearances at the store--a nice way of building buzz before the event and encouraging customers to buy and read the book before the big night. Deeper in the store, there was an entire section devoted to North Carolina writers, and I was thrilled to see a very nice display of literary magazines--including The Greensboro Review where yours truly had one of his first short stories published back in the early 90s.\nNancy Olson and her staff are to be commended for cultivating a spirit of Book Love at Quail Ridge. There is a fierce independence in the atmosphere of the store which sends a message to e-tailers and big-box bookstores: \"We love words and the people who make them.\" Books are not a number or an algorithm, they are warm and alive and served with as much care and pride as the tastiest plate of Carolina bar-b-que.\nQuail Ridge also has a very nice reading space for visiting authors. A large area was cleared in the middle of the store (the middle! not off to the side near the children's book section) and I was given a podium with a crystal-clear microphone so everyone could hear me read about what it was like to go to war \"with a duffel bag full of Dickens\" and emerge on the other side of the experience with a novel of my own.\nFor the most part, audiences at the Fobbit readings have been populated with e-friends I've \"known\" for years but never met. Last night, there was an especially large group of acquaintances from Facebook, Twitter and other social media communities who'd been supporting me for years. I was thrilled to finally meet Holly Goddard Jones (author of the short-story collection Girl Trouble and the forthcoming novel The Next Time You See Me--which I straightaway pre-ordered and I suggest you do the same, pronto) and Mary Lambeth Moore (author of the novel Sleeping with Patty Hearst). Also on hand were two members of my Book Pregnant posse: Barbara Claypole White (The Unfinished Garden) and Anne Clinard Barnhill (At the Mercy of the Queen: A Novel of Anne Boleyn). Barbara, Anne and I met for the first time last weekend at the South Carolina Writers Workshop where we were joined by fellow Book Pregnant members Lydia Netzer (Shine Shine Shine) and Brenda Bevan Remmes. Of the quintet, Brenda is the only one who is still \"with book child.\" The blessed event for her novel, Miss Ellie's Cafe, still lies somewhere in the future.\nAll in all, it was a great feeling to stand there at the microphone and look out to see all those smiling, supportive, friendly faces. Thanks, everyone, for coming out to hear me talk about Fobbit.\nPicking my Book Tour Bookstore Book was tough--not because I couldn't find something to suit my taste or pique my interest, but because I had to keep my promise to only buy one book at each stop (my luggage can't handle more than that). One of the books that Quail Ridge so insistently put \"in my face\" last night was Misfit, the new novel by Adam Braver from Tin House Books. The publisher's jacket copy tells us the book \"centers on the last weekend of Monroe’s life, which she spent at Frank Sinatra’s resort, the Cal Neva Lodge, in Lake Tahoe. Melding facts with fiction, Braver takes moments throughout Monroe’s life—her childhood, her marriages with Joe DiMaggio and Arthur Miller, her studies with Lee Strasberg at the Actors Studio, and her role in The Misfits, the film Miller wrote for her—and explores how they informed her tragic end.\" I'm a huge fan of Braver's work (his novel-in-stories Mr. Lincoln's Wars was one of the best books--fiction or non-fiction--I've ever read about the iconic president). Braver does some very smart blending of fact and fiction to create fresh portraits of historic figures. Think E. L. Doctorow, but fleshier. I can't wait to read this latest work about Marilyn. And, I hope you'll agree with me that the cover for Misfit is spot-on perfect."} +{"text": "ress.DeploymentId, eventWithLateProgress.DeploymentReplicaEventId, eventWithLateProgress.StartTime.Add(10*time.Minute), 10*time.Minute, 10, 10)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"missing-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(5 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(20), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(0), resp.Thresholds[0].ReadyReplicaCount)\n\tassert.Equal(t, int64(20), resp.Thresholds[0].UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_CountsMissingScaleUpProgressAsUnscheduled(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"missing-scale-up-progress-account\", \"deployment-1\", \"event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 30*time.Minute, 10)\n\tprogress := &database.DeploymentReplicaEventProgress{\n\t\tDeploymentReplicaEventProgressName: *resourcename.NewDeploymentReplicaEventProgressName(event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(30*time.Minute).Format(\"20060102150405\")),\n\t\tObservedTime: event.StartTime.Add(30 * time.Minute),\n\t\tElapsedDuration: (30 * time.Minute).Nanoseconds(),\n\t\tProgress: \"ScaleUp\",\n\t}\n\trequire.NoError(t, s.DB().Create(progress).Error)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"missing-scale-up-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(0), resp.Thresholds[0].ReadyReplicaCount)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_AggregatesStageCountsAndUnscheduled(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"stage-progress-account\", \"deployment-1\", \"event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 30*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgressWithStats(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(30*time.Minute), 30*time.Minute, 10, 3, 2, 1, 1, 3)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"stage-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(2), resp.Thresholds[0].PendingSchedulingReplicaCount)\n\tassert.Equal(t, int64(1), resp.Thresholds[0].DownloadingModelReplicaCount)\n\tassert.Equal(t, int64(1), resp.Thresholds[0].InitializingReplicaCount)\n\tassert.Equal(t, int64(3), resp.Thresholds[0].ReadyReplicaCount)\n\tassert.Equal(t, int64(3), resp.Thresholds[0].UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_ConvertsReplicaStatsToEventRelativeCounts(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"stats-ready-progress-account\", \"deployment-1\", \"event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 30*time.Minute, 10)\n\tevent.InitialReplicaState = &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\tDesired: 10,\n\t\tCurrent: 10,\n\t\tMin: 0,\n\t}\n\tevent.TargetReplicaState = &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\tDesired: 20,\n\t\tCurrent: 20,\n\t\tMin: 0,\n\t}\n\trequire.NoError(t, s.DB().Save(event).Error)\n\tcreateTestDeploymentReplicaEventProgressWithStats(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(30*time.Minute), 30*time.Minute, 10, 10, 2, 3, 7, 8)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"stats-ready-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(0), resp.Thresholds[0].ReadyReplicaCount)\n\tassert.Equal(t, int64(2), "} +{"text": "Submitted by Ann\non Thu, 09/30/2010 - 10:51…\nAdded by John on September 30, 2010 at 4:16pm —\nAccording to some the animals are supposed to be only animals and not Gentiles in the bible. So let us do a quick examination and determine if these living creatures that swarm and the fish that exist found here in Ezekiel 47 are people (gentiles) or are they just animals that the river is bringing life to. The question… Continue\nAdded by Norm on September 30, 2010 at 1:30pm —\nGenesis 3:15 — The Protoevangelium\nGenesis 3:15 is frequently identified as the protoevangelium —\nthe first annunciation of the gospel,\nand well it is. The context of\nGenesis 3:15 is the fall of man. God had created man and placed him in\nthe Garden of Eden…\nAdded by John on September 28, 2010 at 1:59pm —\nAudio from the 2010 New Covenant Eyes Conference is now available for download at AD70 Marketplace.… Continue\nAdded by michael j loomis on September 28, 2010 at 10:23am —\nCovenant Creation with Tim Martin\nlisten to audio:\nTami Jelinek and Brian Maxwell welcome Tim Martin back to NCMI to chat with him about material presented at his recent conference.\nTo order CDs of the messages from this conference, please visit:\nAdded by John on September 23, 2010 at 8:10am —\nWHO WROTE THE DEAD SEA SCROLLS?\nWatch a FREE episode of The Naked Archaeologist…\nAdded by John on September 23, 2010 at 6:40am —\nThe \"little giant,\" a 1.93-meter tall human skeleton, was recently\nidentified by experts at China's Archaeology Academy as the tallest\nprehistoric man ever found.\nThat's 6 foot 4 for us metrically challenged folk.\nWith the recent discussion of giants, this seemed timely.See story here.\nAdded by JL Vaughn on September 21, 2010 at 3:30pm —\nAdded by John on September 19, 2010 at 7:08pm —\nScientists from Discovery Institute and Biologic Institute are heading to Texas to Southern Methodist University Thursday, September 23rd for a special evening event: 4 Nails in Darwin's Coffin Presents New Scientific Challenges to Darwinian Evolution. Following a screening of Darwin's…\nAdded by John on September 18, 2010 at 2:36pm —\nAdded by John on September 18, 2010 at 10:27am —\nAdded by John on September 17, 2010 at 11:30pm —\nNote to Robin:This is not satire:)\nDid the Ancient Israelites Drink Beer? From Biblical Archaeology Review\nAncient Israelites, with the possible…\nAdded by John on September 15, 2010 at 5:00pm —\nFrom \"The Onion\"\nDan \"It’s amazing how well-written satire can so dramatically (and clearly) point out the silliness of the young Earth creationist mindset. I’m sure the Sumerians would have agreed.\"\nSumerians Look On In Confusion As God Creates World\nDecember 15,… Continue\nAdded by John on September 12, 2010 at 2:00pm —\nJoin Gail Ann Bondar and myself(Michael Loomis) today at 6 P.M. Eastern/3 P.M. Pacific for a new program that we will be doing every other week just before \"Two Guys and A Bible.\"\nToday we will be talking about one of our favorite obsessions. 8-)\nSee you in the chat-room.\nAdded by michael j loomis on September 7, 2010 at 4:00pm —\nHey everyone, there are several announcements with our ministry, and with upcoming events in our area (such as the June 2011 conference). Also, check out my blogs and feel free to interact. I've discussed issues such as water baptism, women in the church, and other issues (with more to come).\nHere's the blog link on my site:…\nAdded by Joseph Vincent on September 7, 2010 at 11:43am —\nCan God Tell Time?\nThe \"Only\" Authorized Site For This Published Work… Continue\nAdded by John on September 4, 2010 at 4:49pm —\nPROTOEVANGELIUM OF GENESIS 3:15\nBy Dante SpencerContext of Genesis 3:15God is speaking to the serpent (3:14) about the new order for the universe after Adam’s fall into sin (3:1-7). Before God addresses Adam and Eve to curse them for their rebellion against himself in the covenant of works (3:16-19), God… Continue\nAdded by John on September 4, 2010 at 3:45pm —\n\"The Scroll, the Serpent and Our Salvation\"\n....or what I also like to call\n\"The Gospel in the Garden\"\n(Click here to listen to an interview with the artist.)…\nAdded by Tami on September 2, 2010 at 8:30pm —\nUSA Today: What if THe End Isn't Near?\nA Great Opportunity!\nWritten by Don Preston\nThis is a great opportunity! (our friend Stephen Temple called my attention to the USA Today paper and the article)\nThe USA Today Paper of 8-23- carried an article in the forum about two men… Continue\nAdded by John on September 1, 2010 at 7:03pm —\nThe location of the New Covenant Eyes conference has been changed. Please visit newcovenanteyes.com\nAdded by Alan Bondar on September 1, 2010 at 6:26pm —"} +{"text": "Wisconsin's Governor: Recall Drive Is About Unions Seeking 'Power'\nMany of Wisconsin Gov. Scott Walker's citizens may be signing petitions for his recall in reaction to the battle he led earlier in the year to weaken his state's public-employee unions.\nBut Walker doesn't appear to be backing off one inch from his stance that he did what was right for his state.\nHe accused his political foes of really being after \"power\" while presumably camouflaging their true intent with platitudes about workers' rights, among other things.\nUnions are in particular coming after him, Walker said, because the new budget law he and the the Republican-controlled state legislature in Madison enacted, gave workers a choice about whether or not to belong to a union.\nMICHEL: It's no secret that there's national attention being paid to Wisconsin, in part because of these efforts and because of this issue. And I'm interested in what role you think is appropriate for interest groups outside of Wisconsin, both those that support you and those that oppose you.\nGOV. WALKER: Well, I mean, the appropriateness is interesting, because obviously, I can say it, but there's no way to enforce it... It's going to happen no matter what. We saw, in the Senate race, most Republican senators were outspent at least two-to-one, in some cases three-to-one, by all the parties that came in from both throughout the state and across the country.\nI believe if they get – I believe, actually, if they get the signatures, it'll largely – because these national, big-government unions put the money behind that. I would imagine they'll spend the tens of millions – and if it was over $40 million for the Senate recalls, that they may be – well be $70 (million) or $80 million there.\nMICHEL: Well, there are conservative groups supporting you.\nGOV. WALKER: And I think more people look at that and say, that's absurd. You know, I spent 13 million (dollars) running for governor; you're going to see multiple times that amount. You're going to see groups coming in from outside of our state who want to influence this race – I think (it's) more about power, because let's remember, the real reason the unions nationally are involved in this isn't because of pitch in their health care contributions or workers' rights or anything else; the real reason is because we also, as part of our reforms, gave every worker in our state the right to choose whether or not he or she wants to be a part of the union and no longer have their dues forcibly removed from their payroll. That's what it's about.\nMICHEL: OK, but so – there are groups supporting you, too, Governor – in fairness, there are outside groups that are also interested in this for their own reasons.\nGOV. WALKER: Sure, like every election.\nGOV. WALKER: It has, like – but they wouldn't be here if the national unions were forcing a recall. I mean, I think most of your listeners across America probably are scratching their heads on the recall to begin with, because most states have recalls in, say, misconduct in office, some sort of thing like that that triggers it, not just, I disagree or agree with a piece of legislation.\nBut this is really about power. The \"recall Scott Walker\" website was actually started November 2010. So anyone who thinks this wasn't – you know, that somehow, this is organic movement that just popped up – the reality is, the person who started that recall site started it last year, two months before I took office.\nIf Walker was cynical about the motives behind the recall election, Michel reminded him that many of his political opponents remained cynical about the way he pushed through the legislation that curtailed most collective-bargaining rights for public-worker unions.\nWhy not ask the unions to negotiate givebacks? she asked. And what about the fact that some unions, like police and fire, weren't included in the legislation that reduced bargaining rights for state and local government employees? Was it a divide-and-conquer strategy as some in organized labor suspected?\nWalker said with 1,700 municipalities in Wisconsin, there were just too many local bargaining units to make those kind of negotiations work. Meanwhile, public safety workers were exempted because if they had walked off the job as other workers did earlier in the year, lives could have been endangered.\nMichel also asked Walker to respond to the oft-repeated charge by his opponents that his campaign for governor was something of a bait and switch. They accuse him of taking actions on becoming governor he never campaigned on when he ran for governor.\nGOV. WALKER: \"Well, clearly, as folks in southeastern Wisconsin know, where I was the county executive, even my hardened opponents, when I was in county government, all have said publicly nobody should be surprised, because I talked about this for eight years as a county executive.\n\"And even in the campaign – I mean, I literally ran an ad where I talked about asking public employees to pay 5 and 12 percent for pension and health insurance premiums, and said I'd apply it to myself. Actually, I pay a higher amount than other public employees do on the pension match.\""} +{"text": "resp.Thresholds[0].PendingSchedulingReplicaCount)\n\tassert.Equal(t, int64(3), resp.Thresholds[0].DownloadingModelReplicaCount)\n\tassert.Equal(t, int64(5), resp.Thresholds[0].InitializingReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_CapsAbsoluteStageCountsToEventDelta(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"absolute-stage-progress-account\", \"deployment-1\", \"event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 30*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgressWithStats(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(30*time.Minute), 30*time.Minute, 10, 2, 20, 10, 8, 2)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"absolute-stage-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tthreshold := resp.Thresholds[0]\n\tassert.Equal(t, int64(10), threshold.TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(0), threshold.PendingSchedulingReplicaCount)\n\tassert.Equal(t, int64(0), threshold.DownloadingModelReplicaCount)\n\tassert.Equal(t, int64(8), threshold.InitializingReplicaCount)\n\tassert.Equal(t, int64(2), threshold.ReadyReplicaCount)\n\tassert.Equal(t, int64(0), threshold.UnscheduledReplicaCount)\n\tassert.Equal(t, threshold.TotalRequestedReplicaCount, threshold.PendingSchedulingReplicaCount+threshold.DownloadingModelReplicaCount+threshold.InitializingReplicaCount+threshold.ReadyReplicaCount+threshold.UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_ClampsAbsoluteStageCountsToEventTarget(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"target-stage-progress-account\", \"deployment-1\", \"event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 30*time.Minute, 10)\n\tevent.InitialReplicaState = &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\tDesired: 10,\n\t\tCurrent: 10,\n\t\tMin: 0,\n\t}\n\tevent.TargetReplicaState = &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\tDesired: 20,\n\t\tCurrent: 20,\n\t\tMin: 0,\n\t}\n\trequire.NoError(t, s.DB().Save(event).Error)\n\tcreateTestDeploymentReplicaEventProgressWithStats(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(30*time.Minute), 30*time.Minute, 10, 10, 10, 0, 0, 20)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"target-stage-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tthreshold := resp.Thresholds[0]\n\tassert.Equal(t, int64(10), threshold.TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(0), threshold.PendingSchedulingReplicaCount)\n\tassert.Equal(t, int64(0), threshold.DownloadingModelReplicaCount)\n\tassert.Equal(t, int64(0), threshold.InitializingReplicaCount)\n\tassert.Equal(t, int64(10), threshold.ReadyReplicaCount)\n\tassert.Equal(t, int64(0), threshold.UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_CarriesTerminalProgressForward(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"carry-progress-account\", \"deployment-1\", \"event-complete\",\n\t\tgpb.DeploymentReplicaEvent_MANUAL_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 2*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgress(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(2*time.Minute), 2*time.Minute, 10, 10)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"carry-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(5 * time.Minute)},\n\t\t\t{Threshold: durationpb.New(10 * time.Minute)},\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 3)\n\tfor _, threshold := range resp.Thresholds {\n\t\tassert.Equal(t, int64(10), threshold.TotalRequestedReplicaCount)\n\t\tassert.Equal(t, int64(10), threshold.ReadyReplicaCount)\n\t\tassert.Equal(t, int64(0), threshold.UnscheduledReplicaCount)\n\t}\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_CarriesPartialTerminalProgressForward(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"partial-terminal-progress-account\", \"deployment-1\", \"event-partial\",\n\t\tgpb.DeploymentReplicaEvent_MANUAL_SCALE_UP, gp"} +{"text": "Meanwhile, USDA reported lower soybean and rice acreage from 2002 and virtually unchanged corn plantings in the June 30 Planted Acreage Report released by the National Agricultural Statistics Service today.\nAll cotton plantings for 2003 are expected to total 13.9 million acres, down fractionally from last year and from the 14.253 million acres estimated in USDA’s March Prospective Plantings Estimate.\nAccording to surveys conducted by USDA the first two weeks of June, upland cotton producers planted 13.7 million acres this year, virtually unchanged from 2002. Acreage planted to American Pima or extra long staple cotton is estimated at 176,000 acres, down 28 percent from a year ago.\nMany growers east of the Mississippi River revised their spring intentions and devoted less acreage to cotton. Persistent wet weather across the south delayed seedings, forcing growers to seed alternative crops. Cotton acreage dropped slightly from 2002 in Arkansas, Tennessee and Mississippi, while rising slightly in Missouri and Louisiana.\nUSDA said Kansas increased its cotton acreage 56 percent to 125,000 acres this year, up from 80,000 acres in 2002. Texas and California growers increased their upland cotton acreage from a year ago after a rather successful 2002 production season.\nU.S. rice acreage for 2003 came in at 2.992 million acres, down 7.6 percent from last year’s 3.24 million acres. Rice acreage declined in every state except Mississippi, which remained unchanged from last year at 255,000 acres.\nArkansas acreage was reported at 1.446 million acres, up from March estimates of 1.422 million acres but down from last year’s 1.515 million acres; California, dropped to 470,000 acres, down 60,000 acres from March and 63,000 acres from 2002; Louisiana acreage is unchanged from March estimates of 470,000 acres but is down from last year’s 540,000 acres; Missouri held steady from March estimates of 170,000 acres, but is down from 2002’s 190,000 acres; and Texas declined to 181,000 acres from March estimates of 191,000 acres and last year’s 206,000 acres.\nCorn planted area for all purposes is estimated at 79.1 million acres, virtually unchanged from 2002 but 4 percent above 2001. Much needed precipitation was received in late April and early May across the Corn Belt which helped relieve long-term moisture deficits.\nHowever, the early May rainfall slowed fieldwork and delayed some producers from getting their corn crop planted. Farmers reported that 95 percent of the corn acreage had been planted at the time of the survey interview, which is slightly below the average for the past 10 years.\nCorn plantings in Arkansas reached 350,000 acres, up from 270,000 acres in 2002. Louisiana dropped its acreage from 580,000 acres to 500,000 acres, while Mississippi stayed at last year’s 550,000 acres.\nThe 2003 soybean planted area is estimated at 73.7 million acres, down 105,000 acres from last year, and if realized, the lowest planted area since 1998. This is the third consecutive year that soybean planted acres have declined in the United States.\nThe planted acreage is up 471,000 acres from March. Persistent wet weather forced growers along the Southeast and along the Atlantic Coastal Plain to switch to soybeans from their earlier cotton and corn intentions. Growers in North Dakota and Minnesota planted less spring wheat and more soybeans.\nAll wheat planted area is estimated at 60.9 million acres, up 1 percent from 2002. Harvested area is expected to total 52.7 million acres, up 15 percent from last year. The 2003 winter wheat planted area, at 44.3 million acres, is 6 percent above last year, but virtually unchanged from the previous estimate. Of this total, about 32.0 million acres are Hard Red Winter, 8.1 million acres Soft Red Winter, and 4.3 million acres White Winter.\nAcreage planted to other spring wheat for 2003 is estimated at 13.8 million, down 12 percent from 2002. Of this total, about 13.0 million acres are Hard Red Spring wheat. The Durum planted area for 2003 is estimated at 2.80 million acres, down 4 percent from last year."} +{"text": "Sites You Didn’t Know You Needed\nby Karen Bries\nLearn about sites to help your practice and your life.\nWe hope that by now you’ll know to go to the cobar.org Web site or the ABA’s techshow.com for substantive legal information. But here are some sites borrowed from Reba Nance and Mel Reveles at the CBA that will help improve your life and add some interest to practicing law:\nAnybirthday.com This site is a great fact checker, birthday reminder and a good reality-check for those of you who don’t think your personal information is on the Web. Type in your best friend’s or worst enemy’s first and last name and his or her ZIP code if you know it. This person’s birthday will probably be there. As Reba Nance, CBA law office technology department guru says, \"All it takes is a birthday to unlock a whole lot of information about you.\" Breathe deeply. It’s okay; people may use this site as a handy birthday reminder and buy you a bunch of gifts on your special day. It will also keep you out of the doghouse by sending you reminders of when your friends’ birthdays are.\nDogbitelaw.com We did have to throw a few law related things in. Believe it or not, the bar association gets calls about dog bites every now and again. Look at this site, but you can always still call us. This is where attorneys find laws, journalists find statistics and parents get information about protecting their children. It talks about the Diane Whipple case, \"the most unusual case in dog bite history.\"\nCobar.org Yes, we must plug ourselves. We get many calls from people wanting to place free job announcements. Go to the \"Diversity of the Legal Profession\" Web page and post your listing. It’s free and easy. You can also look at The Colorado Lawyer monthly classified ads. The ads are sorted into the often-seen office space and employment sections, but also have headings under office sharing, donated books, legal recruiters and contract work opportunities.\nRefdesk.com will give you thousands of reference sites to search in a click. News, encyclopedias, almanacs and quotes. For kids, there’s even a homework helper and an \"astronomy picture of the day\" such as Young Martian Terrain with a description.\nFBI.gov/hq/lab/handbook/intro.htm Whether you’re an aspiring crime novelist or you just want to know how the FBI researches something, try this site. It will tell you how forensic evidence is prepared and how crime scenes are investigated.\nFlighttracker.com will show where grandma is on her flight from Connecticut to Colorado. It tracks the plane’s movements and gives a graphic map of what city her plane is flying over at this exact point in time.\nPlagiarism.com Scan the text of a document into this software, and the software will let you know if anyone has used someone else’s poetic prose. This was started to keep college kids from trading their term papers online. It does cost some money, but there is a free trial.\nMtnds.com will help you decipher acronyms, mostly for those weird computer errors that pop up. What’s BIOS or RAM? If you care, you can search this site.\nhttp://www-sci.lib.uci.edu/HSG/RefCalculators.html Whisk away to a world of calculators, and you don’t even have to be a nerd to enjoy it. There are catch-all calculators for mortgages, interest rates and currency conversions, but the old razzle dazzle comes when you calculate how much to feed livestock, what capacity your meeting room can hold or the amount of life insurance you will need. You can even figure out how much it will cost to launch a marketing campaign.\nMentalhealth.com is good for looking up psychiatric drugs and diagnosing different kinds of psychological disorders. Try diagnosing your boss or that nagging mother of yours. Realize that they may have more problems than you think.\nInfoctr.edu/fwl is the federal Web locator with links to every kind of federal Web site, from bureaucracies like the National Mediation Board, Office of Special Counsel and the Peace Corps to more interesting sites like the Advisory Council on Historic Preservation and the National Coordination Office for High-Performance Computing and Communications (Be glad you don’t work there. Be very glad).\nZagat.com If you are out of town and need a restaurant recommendation, try this site. It will sort by neighborhood, cuisine type or alphabetically. Insightful reviews and a chance to vote on your favorite restaurant are also an option. Be sure to click on the symbol that looks like a key, so that you understand what Zagat’s ratings are based on.\nmailstart.com To gain access to your existing e-mail accounts (must be POP3) then look no further than MailStart. MailStart can be customized to access your existing email accounts. In other words, you can take your work e-mail, your home e-mail and any other accounts you may have and get your mail from one box at Mailstart. There is a free demo but they encourage you to pay the $10 a month to subscribe.\ncobar.org/hotlinks.htm Just when you thought we were done plugging ourselves, we weren’t. We also didn’t want to leave you in a lurch without some legal research sites. The Colorado Bar Association’s \"Hotlinks\" site is a catch-all for legal research. You’ll get federal and state resources, commercial legal services, forms and contracts, international resources, legal libraries, legal software and the rest of the list is endless. Don’t overlook this exhaustive resource tool, courtesy your favorite association.\nSpecial thanks go to Mel Reveles and Reba Nance at the Colorado Bar Association for letting us plagiarize some programs they often present for CLE credits! You can find these Web sites and more at www.cobar.org.\nDo you have a site that sets your mind at ease or gives you the answers you’re looking for? If so, send them to firstname.lastname@example.org, and we’ll publish them in The Docket."} +{"text": "b.DeploymentReplicaEvent_FINISHED, 2*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgress(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(2*time.Minute), 2*time.Minute, 10, 4)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"partial-terminal-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(5 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(4), resp.Thresholds[0].ReadyReplicaCount)\n\tassert.Equal(t, int64(6), resp.Thresholds[0].UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_StopsNonFinishedTerminalProgress(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"cancelled-terminal-progress-account\", \"deployment-1\", \"event-terminal\",\n\t\tgpb.DeploymentReplicaEvent_MANUAL_SCALE_UP, gpb.DeploymentReplicaEvent_CANCELLED, 2*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgress(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(2*time.Minute), 2*time.Minute, 10, 4)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"cancelled-terminal-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(time.Minute)},\n\t\t\t{Threshold: durationpb.New(2 * time.Minute)},\n\t\t\t{Threshold: durationpb.New(5 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 3)\n\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(0), resp.Thresholds[0].ReadyReplicaCount)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].UnscheduledReplicaCount)\n\n\tassert.Equal(t, int64(10), resp.Thresholds[1].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(4), resp.Thresholds[1].ReadyReplicaCount)\n\tassert.Equal(t, int64(6), resp.Thresholds[1].UnscheduledReplicaCount)\n\n\tassert.Equal(t, int64(0), resp.Thresholds[2].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(0), resp.Thresholds[2].ReadyReplicaCount)\n\tassert.Equal(t, int64(0), resp.Thresholds[2].UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_ExcludesSupersededEvents(t *testing.T) {\n\ts := newTestServer(t)\n\tsuperseded := createTestDeploymentReplicaEventWithRequested(t, s, \"superseded-terminal-progress-account\", \"deployment-1\", \"event-superseded\",\n\t\tgpb.DeploymentReplicaEvent_MANUAL_SCALE_UP, gpb.DeploymentReplicaEvent_SUPERSEDED, 2*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgress(t, s, superseded.AccountId, superseded.DeploymentId, superseded.DeploymentReplicaEventId, superseded.StartTime.Add(2*time.Minute), 2*time.Minute, 10, 4)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"superseded-terminal-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(time.Minute)},\n\t\t\t{Threshold: durationpb.New(2 * time.Minute)},\n\t\t\t{Threshold: durationpb.New(5 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 3)\n\n\tfor _, threshold := range resp.Thresholds {\n\t\tassert.Equal(t, int64(0), threshold.TotalRequestedReplicaCount)\n\t\tassert.Equal(t, int64(0), threshold.ReadyReplicaCount)\n\t\tassert.Equal(t, int64(0), threshold.UnscheduledReplicaCount)\n\t}\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_SupersededDoesNotDoubleCountReplacement(t *testing.T) {\n\ts := newTestServer(t)\n\tsuperseded := createTestDeploymentReplicaEventWithRequested(t, s, \"superseded-replacement-progress-account\", \"deployment-1\", \"event-superseded\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_SUPERSEDED, 2*time.Minute, 10)\n\treplacement := createTestDeploymentReplicaEventWithRequested(t, s, \"superseded-replacement-progress-account\", \"deployment-1\", \"event-replacement\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 3*time.Minute, 6)\n\tcreateTestDeploymentReplicaEventProgress(t, s, superseded.AccountId, superseded.DeploymentId, superseded.DeploymentReplicaEventId, superseded.StartTime.Add(2*time.Minute), 2*time.Minute, 10, 4)\n\tcreateTestDeploymentReplicaEventProgress(t, s, replacement.AccountId, replacement.DeploymentId, replacement.DeploymentReplicaEventId, replacement.StartTime.Add(3*time.Minute), 3*time.Minute, 6, 6)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"superseded-replac"} +{"text": "GEORGE HENRY,Associated Press\nFLOWERY BRANCH, Ga. (AP) — It’s too early for the Atlanta Falcons to know how much defensive end John Abraham will play in Sunday’s NFC title game.\nAbraham, the NFL’s active sacks leader, made it through just 15 snaps in last week’s divisional playoff victory over Seattle before aggravating a left ankle injury that forced him to leave in the second quarter.\n“You don’t want to lose a good player,” Falcons defensive coordinator Mike Nolan said. “We won the game, so there’s something we did right. But it does change things.”\nThe Falcons are making contingency plans in case Abraham is unable to play at full strength against the San Francisco 49ers on Sunday at the Georgia Dome.\nAbraham, who has not been available to speak with reporters this week, missed practice on Wednesday even though coach Mike Smith listed him as having limited participation.\nBut it’s clear that the Falcons (14-3) will be pleased to have Abraham on the field for any length of time against San Francisco (12-4-1).\n“He’s a sack master,” linebacker Sean Weatherspoon said. “That’s what I like to call him — Father Abe. We look forward to getting him back out there this week. I think the guys that had a chance to play in his absence did a good job stepping in and doing what they need to do in order to help the team get the win.”\nAbraham, 34, was initially hurt in the regular season finale loss to Tampa Bay, limping off the field with the help of trainers.\nCoach Mike Smith said that he expects the 13th-year veteran to start on Sunday. Even so, the Falcons are giving reserve ends Cliff Matthews, Jonathan Massaquoi and Lawrence Sidbury more work this week in case Abraham has to make an early exit.\nMatthews took the balance of the work against Seattle, playing 46 snaps and making two tackles opposite Kroy Biermann, Atlanta’s other starting end.\nAbraham, though, is a special talent.\n“Obviously he’s an integral part of this defense,” Biermann said. “When you lose a player like that, it kind of puts a little bit of strain on you, but the guys behind him know that they’ve got to step up, play that role and get it done.”\nThe 49ers present several problems for Atlanta’s defense.\nQuarterback Colin Kaepernick is coming off an impressive playoff win over Green Bay, passing for 263 yards and two touchdowns and rushing for 181 yards and two TDs. He set an NFL single-game record for yards rushing by a quarterback.\nSmith knows the Falcons must do their best to contain Kaepernick in the pocket while keeping tight coverage on receivers Michael Crabtree and Randy Moss and tight ends Vernon Davis and Delanie Walker.\nRunning backs Frank Gore and LaMichael James also create issues in the passing attack, too.\n“They have playmakers at both levels with their offense,” Smith said. “You’re going to have to put together a plan to try to slow down certain aspects of it. It’s a very explosive offense they’ve created.”\nThough Abraham’s 122 career sacks rank 13th on the NFL career list, he hasn’t had one since Nov. 29 when he took down New Orleans quarterback Drew Brees to help seal a 23-13 victory.\nThe following week, Atlanta won its second NFC South title in three years.\nBefore the Falcons traded for him in 2006, Abraham had a long injury history in six years with the New York Jets. He’s overcome assorted ailments and offseason surgeries with Atlanta, however, and has missed just two games over the last six seasons.\n“When you watch the film, he played through the pain a little bit,” strong safety William Moore said. “It was hard to even tell. He rotates a lot, so I didn’t even know he was out at one point.”\nMoore learned of Abraham’s absence soon enough while Seattle quarterback Russell Wilson and the Seahawks were carving up Atlanta’s defense in the second half. After Vance Walker sacked him early in the third quarter, Wilson completed 13 of 18 passes for 230 with two TDs.\nThe Falcons did a decent job covering deep routes, but they struggled badly in trying to defend tight end Zach Miller and other targets Wilson hit in the middle of the defense.\n“Those were still miscues on our end,” free safety Thomas DeCoud said. “We were short on a drop here or there or someone didn’t carry someone here or there. Those things were more about us rather than things that they did.”\nNotes: S William Moore has a cast on his right hand but participated fully in practice. … CB Christopher Owens (hamstring) remains out. He hasn’t played since a Dec. 22 victory at Detroit. … DT Jonathan Babineaux (shoulder) also had limited participation in practice.\nFollow George Henry at http://www.twitter.com/georgehenryAP\n(© Copyright 2013 The Associated Press. All Rights Reserved. This material may not be published, broadcast, rewritten or redistributed.)"} +{"text": "LOS ANGELES (AP) – Sunrises and sunsets often dazzle, but they’ll have a special ring to them in a few days for people in the western United States and eastern Asia: The moon will slide across the sun, blocking everything but a blazing halo of light.\nIt’s been almost two decades since a “ring of fire” eclipse was visible in the continental United States. To celebrate the end of that drought, nearly three dozen national parks in the path of the eclipse will host viewing parties.\nThe solar spectacle is first seen in eastern Asia at dawn Monday, local time. Weather permitting, millions of early risers in southern China, northern Taiwan and southeast Japan will be able to catch the ring eclipse. Then it creeps across the Pacific with the western U.S. viewing the tail end.\nThe late day sun will transform into a glowing ring in southwest Oregon, Northern California, central Nevada, southern Utah, northern Arizona and New Mexico and finally the Texas Panhandle where it will occur at sunset on Sunday. For 3 1/2 hours, the eclipse follows an 8,500-mile path. Viewing, from beginning to end, lasts about two hours. The ring phenomenon lasts as long as 5 minutes depending on location.\nOutside this narrow band, parts of the West, Midwest and South — and portions of Canada and Mexico — will be treated to a partial eclipse. The Eastern Seaboard will be shut out, but people can log online to sites such as the Slooh Space Camera, which plans to broadcast the event live.\nA ring eclipse — technically called an annular solar eclipse — is not as dramatic as a total eclipse, when the disk of the sun is entirely blocked by the moon. As in a total solar eclipse, the moon crosses in front of the sun, but the moon is too far from Earth and appears too small in the sky to blot out the sun completely.\n“A bright ring around the sun at mid-eclipse is still pretty cool,” Geoff Chester of the U.S. Naval Observatory said in an email.\nAsia is abuzz over the event. In Japan, cable cars will run early to give tourists an unobstructed view from the mountains. Ferries will make special trips so that others can enjoy the scene offshore. The Taipei Astronomical Museum will open its doors at dawn while Hong Kong’s Space Museum will set up solar-filtered telescopes outside its building on the Kowloon waterfront.\nThe last time this type of eclipse was seen in the U.S. was in 1994. This year’s solar show offers ringside seats at 33 national parks along the eclipse path including the Grand Canyon and Bryce Canyon. A partial eclipse can be viewed from another 125 national parks.\nFor die-hard sky gazers, six U.S. locations will see the moon cover about 95 percent of the sun’s diameter. They include the Petroglyph National Monument, Redwoods National Park, Lassen Volcanic National Park, Canyon de Chelly National Monument, Zion National Park and Glen Canyon National Recreation Area.\nWherever you are, do not look directly at the eclipsed sun or you can get a serious eye injury. Wear specially made protective glasses that can be bought online or create your own contraption by punching a small pinhole in a cardboard box.\nIf you buy special eyewear, you can recycle it. Two weeks later, Venus will crawl across the face of the sun — a rare occurrence known as the “transit of Venus” that will also require viewers to take precaution.\nVeteran eclipse chaser Jay Pasachoff has traveled to remote corners of the globe to see the moon take a bite of the sun. This time, the Williams College astronomer will travel to New Mexico with his students to collect data.\nSunday’s event will be his 14th ring eclipse and 55th solar eclipse overall. So what does someone who has seen it all look forward to?\nSeeing “the symmetry of a ring of sunlight around the dark silhouette of the moon,” Pasachoff said in an email.\nThe next ring eclipse won’t be visible in the U.S. for more than a decade — October 2023.\n(© Copyright 2012 The Associated Press. All Rights Reserved. This material may not be published, broadcast, rewritten or redistributed.)\nAlso Check Out:"} +{"text": "ement-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(5 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(6), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(6), resp.Thresholds[0].ReadyReplicaCount)\n\tassert.Equal(t, int64(0), resp.Thresholds[0].UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_ExcludesNonScaleUpEvents(t *testing.T) {\n\ts := newTestServer(t)\n\tscaleUp := createTestDeploymentReplicaEventWithRequested(t, s, \"scale-up-only-account\", \"deployment-1\", \"event-up\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 30*time.Minute, 10)\n\tscaleDown := createTestDeploymentReplicaEvent(t, s, \"scale-up-only-account\", \"deployment-1\", \"event-down\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_DOWN, gpb.DeploymentReplicaEvent_FINISHED, time.Minute)\n\tcreateTestDeploymentReplicaEventProgress(t, s, scaleUp.AccountId, scaleUp.DeploymentId, scaleUp.DeploymentReplicaEventId, scaleUp.StartTime.Add(30*time.Minute), 30*time.Minute, 10, 9)\n\tcreateTestDeploymentReplicaEventProgress(t, s, scaleDown.AccountId, scaleDown.DeploymentId, scaleDown.DeploymentReplicaEventId, scaleDown.StartTime.Add(time.Minute), time.Minute, 10, 10)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"scale-up-only-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(9), resp.Thresholds[0].ReadyReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_UsesAvailableProgressForOngoingEvents(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"ongoing-progress-account\", \"deployment-1\", \"event-ongoing\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 10*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgress(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(10*time.Minute), 10*time.Minute, 10, 4)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"ongoing-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(4), resp.Thresholds[0].ReadyReplicaCount)\n\tassert.Equal(t, int64(6), resp.Thresholds[0].UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventDurationDistribution_BucketsOrPercentilesRequired(t *testing.T) {\n\ts := newTestServer(t)\n\n\t_, err := s.GetDeploymentReplicaEventDurationDistribution(context.Background(), &agpb.GetDeploymentReplicaEventDurationDistributionRequest{\n\t\tFilter: `account_id = \"test\"`,\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"at least one of buckets or percentiles must be specified\")\n}\n\nfunc TestGetDeploymentReplicaEventDurationDistribution_InvalidFilter(t *testing.T) {\n\ts := newTestServer(t)\n\n\t_, err := s.GetDeploymentReplicaEventDurationDistribution(context.Background(), &agpb.GetDeploymentReplicaEventDurationDistributionRequest{\n\t\tFilter: `invalid_field = \"value\"`,\n\t\tPercentiles: []*agpb.DeploymentReplicaEventDurationPercentile{\n\t\t\t{Percentile: 50},\n\t\t},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"invalid filter\")\n}\n\nfunc TestGetDeploymentReplicaEventDurationDistribution_NilBucketDurations(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Test nil Start duration\n\t_, err := s.GetDeploymentReplicaEventDurationDistribution(context.Background(), &agpb.GetDeploymentReplicaEventDurationDistributionRequest{\n\t\tFilter: `account_id = \"test\"`,\n\t\tBuckets: []*agpb.DeploymentReplicaEventDurationBucket{\n\t\t\t{Start: nil, End: durationpb.New(time.Minute)},\n\t\t},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"bucket 0: start duration is required\")\n\n\t// Test nil End duration\n\t_, err = s.GetDeploymentReplicaEventDurationDistribution(context.Background(), &agpb.GetDeploymentReplicaEventDurationDistributionRequest{\n\t\tFilter: `account_id = \"test\"`,\n\t\tBuckets: []*agpb.DeploymentReplicaEventDurationBucket{\n\t\t\t{Start: durationpb.New(0), End: nil},\n\t\t},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"bucket 0: end duration is required\")\n\n\t// Test nil duration in second bucket\n\t_, err = s.GetDeploymentReplicaEventDurationDistribution(context.Background(), &agpb.GetDeploymentReplicaEventDurationDistributionRequest{\n\t\tFilter: `ac"} +{"text": "NORTH TEXAS (CBSDFW.COM) – A North Texas woman was handcuffed, stripped down and booked into jail – all because of an overdue traffic ticket.\nIt was just a ticket. Sarah Boaz was cited in August after an officer said she ran a stop sign.\nBoaz lost the ticket, but said she knows it was wrong not to have paid it right away. Despite those missteps, she also says she never expected a late fee or penalty to land her in jail.\nIt happens in every city, every day, at just about every intersection. Drivers roll past stop signs, and through stoplights. But getting caught, and getting a ticket, is nothing compared to what Boaz got.\n“I guess it was just frustrating to me, that a bill that I pay a month late, I end up in jail for,” she said.\nBoaz’ expected trip to work Wednesday morning never happened. Because of her unpaid ticket, the Richland Hills City Marshal was waiting at her house with a warrant for her arrest. “I’m like, nobody puts out a bench warrant after 60 days. Why would you do that? You wouldn’t do that.”\nEven when Boaz arrived at the jail, in handcuffs, she still didn’t think it was real. Then a female officer started giving her instructions. She remembered the officer saying, “’I’m going to need you to undress. I’m going to need you to stand against the wall. Please don’t step in front of this white box, or I’ll take that’… aggressive toward me. Obviously I am going to jail.”\nCBS 11 News learned being stripped down is standard procedure for anyone brought to the jail in North Richland Hills. In an email to CBS 11 News Friday morning, the North Richland Hills Police Department said though Boaz was forced to undress, the search is not considered a strip search. In that email they said, “She was given a dress out. Before they go into the cell they are taken by a detention officer of the same sex to a private room with no cameras. They have to remove all clothing and they are given a jumpsuit. The officer searches their clothes, at no time does the officer touch them.”\nRichland Hills is small enough that it only has one marshal. Warrants for unpaid tickets don’t sit around for months, like they might in larger cities.\nAttorney Jason Smith told CBS 11 News though, there’s nothing requiring the city to put people in jail. “The constitution doesn’t keep the government or government officials from using common sense. Unfortunately, some police officers, some governments get overly aggressive because they want that ticket revenue.”\nMunicipal court officials said two reminders were sent to Boaz, which she says she never got.\nA footnote – on Thursday, Boaz’ husband was issued a ticket for not stopping at a stop sign.\nUPDATE (October 25, 2013 1:40 PM): Officials in North Richland Hills indicated Friday that the jail does sometimes allow people to pay fines for traffic tickets when they arrive at the jail, and avoid spending time in a holding cell. Those arrested are still booked in, and photographed, but are not made to change into a jail uniform and sit with others under arrest. The option is only extended to those who have the ability to pay the full amount as soon a law enforcement officers brings them to the jail. Earlier, officials indicated everyone coming to the jail was treated and booked in the same way for officer safety and because more than one municipality uses the facility.\n(©2013 CBS Local Media, a division of CBS Radio Inc. All Rights Reserved. This material may not be published, broadcast, rewritten, or redistributed.)\n- Dallas Police Searching For Man Who Exposed Himself To Woman\n- Former Duncanville Teacher Starts 10 Year Sentence For Student Affair\n- Rain Boots Fit For A Queen On-Trend At Dean & DeLuca Invitational\n- TSA Put To Test With Memorial Day Weekend Travel\n- Texan With Character: Aman Lee\n- Sasquatch Genome Project Reveals Bigfoot Photos\n- Tricks To Using The New iPhone Software\n- Enter The ‘Show Your Spirit’ Sweepstakes\n- Migrating Spiders Sailing Through North Texas Skies\n- Texas Lt. Gov. Says Obama Should Be Impeached\n- PHOTOS: Your Pet Pictures"} +{"text": "|Joining the adult site gives the opportunity of getting acquainted with other people via video chat or web cam, getting in touch with them, visiting sex parties or clubs. That is a new interesting part of your life. Join for free Now!|\nAttractive horny women worldwide. Adult Dating, Live Sex Chat, Instant messages.\ndiscreet dating Garden city Alabama | discreet dating Saint clair Michigan | discreet dating Columbia Illinois | discreet dating Mission hill South Dakota | discreet dating Ansonia Connecticut | discreet dating Fort kent mills Maine | discreet dating Plano Texas | discreet dating Tamworth New Hampshire | discreet dating Glen ellyn Illinois | discreet dating Stanton Michigan | discreet dating Manteo North Carolina | discreet dating Marseilles Illinois | discreet dating Big lake AK | discreet dating Calumet city Illinois | discreet dating Corwith Iowa | discreet dating Leoti Kansas | discreet dating Solon Iowa | discreet dating Shreveport Los Angeles | discreet dating Pickton Texas | discreet dating Studio city California | discreet dating Porters falls West Virginia | discreet dating Powellton West Virginia | discreet dating Horatio Arkansas |Adult classifieds and sex classifieds. Love, romance and passion. Dating for single horny women to find marriage, pen-pals, friends, relationships and sex.\nwild ride baby stand six feet tall red hair green eyes and i like to make people laugh\ndiscreet dating Tiptonville Tennessee\nThe site has adult content and members of fuck buddy get access to a total find hot fuck buddy personals, hot videos of couples fucking on the beach, girls fucking in the locker room, females fucking in the privacy of their own bedrooms, and much more. Fuck buddy is giving you access to new, high quality content all the time. Join our dating site today for free fuck buddy personals!\nLooking for real sex? Meet someone now on the largest sex personals network – photos, chat, more!\nlonely after 17 yrs marriage horny guy 5'8 180lbs needs friends\nJoin for free\nWelcome to world's first and largest site dedicated to horny singles seeking long-term relationship!\nLocal Sex Search seeking Hot Wives for sex.\nSite Map-2 | sexy women club Visit our club and enjoy swinger lifestyle and great tips about how to enter into online swingers clubs, don?t be afraid, even if you have never been into swingers lifestyle, we offer you a complete guide of how to become a swinger. Would you like to meet other couples and singles for some fun swinging activities? | Links Looking for a no strings attached one night stand? Browse through our adult personals or swingers ads for free and find local fuck friends in your area.\nFind the top online dating sites that offer free personals and online personal ads for singles seeking love, sex, and romance on the web\nAdult Dating Are you looking for an Adult Swinger Party? Let's start with Adult FriendFinder. They are the largest dating site on the web catering to adults interested in sexual encounters.\nNaked Girls Photo Personals Once you review the often explicit photos posted here you will most likely want to upgrade to a paid membership right away. It's very easy to join this adult dating site - just complete the registration form (answer three questions and choose a user name - only takes a minute) and you're set to go.\nMeet women for sex From adults and teens all our dating personals are looking to meet someone who is interesting, sensual and serious about relationships. Try our free matchmaking service online and get hooked!\nSexual Health These products will help maximize the pleasure in your sexual experiences\n|Copyright © 2013 www.sexywomenclub.com All Rights Reserved.|\n|The best way to start is by registering for FREE so you can review all the services this adult dating site has to offer. You can post your personal profile and pictures, browse other members' profiles and send a wink to anyone to show your interest. Once you review the often explicit photos posted here you will most likely want to upgrade to a paid membership right away. It's very easy to join this adult dating site - just complete the registration form (answer three questions and choose a user name - only takes a minute) and you're set to go. Free Dating Sex Adult Personals Adult Personals Site Find Members in your area seeking discreet relationships and no strings sex|"} +{"text": "count_id = \"test\"`,\n\t\tBuckets: []*agpb.DeploymentReplicaEventDurationBucket{\n\t\t\t{Start: durationpb.New(0), End: durationpb.New(time.Minute)},\n\t\t\t{Start: nil, End: durationpb.New(5 * time.Minute)},\n\t\t},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"bucket 1: start duration is required\")\n}\n\n// TestGetDeploymentReplicaEventDurationDistribution_WithTimestampFilter tests that timestamp filters work correctly.\n// Note: This test verifies the filter parsing works, but SQLite doesn't support percentile_cont/COUNT FILTER,\n// so actual distribution calculation is only tested against PostgreSQL.\nfunc TestGetDeploymentReplicaEventDurationDistribution_WithTimestampFilter(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create test events with specific timestamps\n\ttime1 := time.Date(2024, 1, 1, 12, 0, 0, 0, time.UTC)\n\ttime2 := time.Date(2024, 1, 15, 12, 0, 0, 0, time.UTC)\n\ttime3 := time.Date(2024, 2, 1, 12, 0, 0, 0, time.UTC)\n\n\tevent1 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(\"dist-time-account\", \"deployment-1\", \"dist-time-event-1\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (2 * time.Minute).Nanoseconds(),\n\t\tStartTime: time1,\n\t\tEndTime: time1.Add(2 * time.Minute),\n\t}\n\trequire.NoError(t, s.DB().Create(event1).Error)\n\n\tevent2 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(\"dist-time-account\", \"deployment-1\", \"dist-time-event-2\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (5 * time.Minute).Nanoseconds(),\n\t\tStartTime: time2,\n\t\tEndTime: time2.Add(5 * time.Minute),\n\t}\n\trequire.NoError(t, s.DB().Create(event2).Error)\n\n\tevent3 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(\"dist-time-account\", \"deployment-1\", \"dist-time-event-3\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (10 * time.Minute).Nanoseconds(),\n\t\tStartTime: time3,\n\t\tEndTime: time3.Add(10 * time.Minute),\n\t}\n\trequire.NoError(t, s.DB().Create(event3).Error)\n\n\t// Test with timestamp filter - this verifies the filter parsing works correctly\n\t// The actual distribution calculation will fail on SQLite but the filter should parse\n\t_, err := s.GetDeploymentReplicaEventDurationDistribution(context.Background(), &agpb.GetDeploymentReplicaEventDurationDistributionRequest{\n\t\tFilter: `account_id = \"dist-time-account\" AND start_time >= timestamp(\"2024-01-01T00:00:00Z\") AND start_time <= timestamp(\"2024-01-31T23:59:59Z\")`,\n\t\tBuckets: []*agpb.DeploymentReplicaEventDurationBucket{\n\t\t\t{Start: durationpb.New(0), End: durationpb.New(5 * time.Minute)},\n\t\t\t{Start: durationpb.New(5 * time.Minute), End: durationpb.New(15 * time.Minute)},\n\t\t},\n\t\tPercentiles: []*agpb.DeploymentReplicaEventDurationPercentile{\n\t\t\t{Percentile: 50},\n\t\t\t{Percentile: 90},\n\t\t},\n\t})\n\t// SQLite doesn't support percentile_cont/COUNT FILTER, so we expect an error in unit tests\n\t// In integration tests against PostgreSQL, this should succeed\n\tif err != nil {\n\t\t// Verify it's a SQL syntax error from SQLite, not a filter parsing error\n\t\tassert.NotContains(t, err.Error(), \"invalid filter\", \"Filter should parse correctly, error should be from SQLite not supporting aggregate functions\")\n\t}\n}\n\n// TestBuildPercentileQuery verifies the PostgreSQL percentile query is built correctly.\nfunc TestBuildPercentileQuery(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tpercentiles []*agpb.DeploymentReplicaEventDurationPercentile\n\t\texpectedSQL string\n\t}{\n\t\t{\n\t\t\tname: \"single percentile p50\",\n\t\t\tpercentiles: []*agpb.DeploymentReplicaEventDurationPercentile{\n\t\t\t\t{Percentile: 50},\n\t\t\t},\n\t\t\texpectedSQL: `COALESCE(percentile_cont(ARRAY[0.5]) WITHIN GROUP (ORDER BY \"Duration\"), ARRAY[]::float8[])`,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple percentiles p50 p90 p99\",\n\t\t\tpercentiles: []*agpb.DeploymentReplicaEventDurationPercentile{\n\t\t\t\t{Percentile: 50},\n\t\t\t\t{Percentile: 90},\n\t\t\t\t{Percentile: 99},\n\t\t\t},\n\t\t\texpectedSQL: `COALESCE(percentile_cont(ARRAY[0.5, 0.9, 0.99]) WITHIN GROUP (ORDER BY \"Duration\"), ARRAY[]::float8[])`,\n\t\t},\n\t\t{\n\t\t\tname: \"edge case p0 and p100\",\n\t\t\tpercentiles: []*agpb.DeploymentReplicaEventDurationPercentile{\n\t\t\t\t{Percentile: 0},\n\t\t\t\t{Percentile: 100},\n\t\t\t},\n\t\t\texpectedSQL: `COALESCE(percentile_cont(ARRAY[0, 1]) WITHIN GROUP (ORDER BY \"Duration\"), ARRAY[]::float8[])`,\n\t\t},\n\t\t{\n\t\t\tname: \"common SLA percentiles\",\n\t\t\tpercentiles: []*agpb.DeploymentReplicaEventDurationPercentile{\n\t\t\t\t{Percentile: 50},\n\t\t\t\t{Percentile: 75},\n\t\t\t\t{Percentil"} +{"text": "I have been following the Terry Gives Groupie a Facial, Groupie Doesn’t Become Model, Groupie Gets Mad and Decides She’s a Victim 4 Years Later, Because She Regrets Gettting a Facial and it’s The Only Way To Get Her Name Out There story and in doing that I’ve been calling out the Terry Groupie who is accusing Terry of abusing her.\nThe fact is simple. She wants attention drawn to herself, whether he came on her face or not.\nThe other fact is that 4 years down the road, the memories we have shift and change and become stories of their own that aren’t quite as relevant as the day after they happened. It’s easy to say I was paralyzed by the abuse, when she was probably really at a party the next day getting drunk and fucking the bartender…you know, it’s so easy to feel abused when having Terry cum on your face is the only thing you’ve accomplished and need to leverage in 4 years….\nEveryone knows Terry shoots sex, that’s his whole career foundation. When he started doing mainstream campaigns in 2005, I didn’t understand how people would touch him, because all his published shit was hardcore “artistic” porn…\nThis girl knew the fucking deal, tt was 4 years ago, and now that she’s decided that being a party slut who was impressed to be in Terry’s studio is bad for her lesbian, feminist, career, past…or maybe boyfriend…and it’s time to accuse a motherfucker because everyone’s doing it.. just because she figures it will get her name out there…\nThat said, Terry, who never speaks on this shit, even though he should, because not speaking on it will make people think he did it, or that he is guilty, based on his archive of work…and I am posting it…because I appreciate what he said and how he said it…\nFour years ago, I chose to primarily ignore a cycle of Internet gossip and false accusations against me. At that time, I felt that to dignify them with a response was a betrayal of my work and my character. When these allegations resurfaced over the past few months, they seemed especially vicious and distorted, moving outside the realm of critical dialogue and becoming nothing more than an emotionally-charged witch hunt. Enabled and protected by the freewheeling and often times anonymous nature of the Internet, people have become comfortable concocting hate-filled and libelous tales about my professional and personal lives. In writing this, I make a humble attempt at correcting these rumors, because I have come to realize that absent my voice in the conversation, all that remain are the lies.\nWhen I moved to New York in 1990 to take pictures, a lot of my work was a documentation of my life in the East Village; it was gritty, transgressive, and the aesthetic broke with the well-lit, polished fashion images of the time. My first big campaign, shot in 1994, was a provocative picture of a couple embracing in a bar. It was a shocking image for its time and the first instance a photograph of this nature was used in a major fashion advertisement.\nLike Robert Mapplethorpe, Helmut Newton, and so many others before me, sexual imagery has always been a part of my photography. Ten years ago, in 2004, I presented some of this work at a gallery show in New York City, accompanied by a book of the photos. The show was very popular and highly praised. The images depicted sexual situations and explored the beauty, rawness, and humor that sexuality entails. I collaborated with consenting adult women who were fully aware of the nature of the work, and as is typical with any project, everyone signed releases. I have never used an offer of work or a threat of rebuke to coerce someone into something that they did not want to do. I give everyone that I work with enough respect to view them as having ownership of their free will and making their decisions accordingly, and as such, it has been difficult to see myself as a target of revisionist history. Sadly, in the on-going quest for controversy-generated page views, sloppy journalism fueled by sensationalized, malicious, and manipulative recountings of this work has given rise to angry Internet crusades. Well-intentioned or not, they are based on lies. Believing such rumors at face value does a disservice not only to the spirit of artistic endeavor, but most importantly, to the real victims of exploitation and abuse.\nPeople will always have strong opinions about challenging images, and the dichotomy of sex is that it is both the most natural and universal of human behaviors and also one of the most sensitive and divisive. Over the course of my career, I have come to accept that some of my more provocative work courts controversy, and as an artist, I value the discourse that arises from this. I can only hope for this discourse to be informed by fact, so that whether you love my work or hate it, you give it, and me, the benefit of the truth.\nMore from DrunkenStepfather\nPosted in:Terry Richardson"} +{"text": "William “Buzzy” Buswell, owner of a local transportation company, complained that something seems to be amiss with a recently resurfaced section of Route 100, beginning near the Matterhorn and running into Wardsboro. “As a taxpayer who paid (more than $26,000) in transportation taxes last year, I’m upset with the garbage the state has given us for Route 100,” he said.\nBuswell said rainwater collects in the areas of the road that vehicle tires contact, and that he hydroplaned on the road during one of the recent rainstorms.\n“I agree completely,” said board member Tom Baltrus, who is a MOOver driver. “It collects more water than it did before. If it rains, you see two rivers. (The resurfacing) doesn’t seem to have made much difference, but there are no cracks.”\nBuswell said he thought the initial surfacing had been a base coat, and was waiting for contractors to finish with a top coat. But this week, the state painted lines on the new asphalt. Dover resident Eddie Barber said he was under the impression that the new surface was an “experimental” product intended to “give and take and not crack as much.”\nAt the suggestion of several residents, the board agreed to contact the state highway department asking them to address the concerns. “In the winter, that’s all going to be ice in the roadway,” said treasurer Patty Westlake.\nBarber urged the board to send a certified letter. “I travel that road eight times back and forth during the week,” he said. “There’s something radically wrong with that road where the rain collects in the tire tracks.”\nBoard member Vicki Capitani questioned whether the town had been successful in pursuing highway concerns in the past. “We could elect Phil,” said selectboard chair Randy Terk, referring to former Dover Road Commissioner and state representative Phil Bartlett. “That’s how we got it paved before.”\nIn economic development discussions, Dover’s “DO-IT” (Dover Opportunity for Investment in the Town) program, which provides partial funding to help spruce up roadside commercial areas, has proven so popular that this year’s funding ran out less than 24 hours after the application period opened. Year-round “brick-and-mortar” businesses in Dover are eligible for one grant per year, and must complete the work before the end of the year. The grant, which is for between $500 and $2,500, must be used for materials or labor connected to a project to improve exterior aesthetics.\nAt their last meeting, economic development specialist Ken Black told board members that all of the $25,000 in funding for the current fiscal year was spoken for in a matter of hours. “The application window opened at midnight, July 1, and by 9:24 am, the program was out of funding,” Black said.\nThis week Black suggested adding another $15,000 funding for three additional applications that came in after the funding ran out on the first day of the fiscal year, as well as others that may come in during the year.\nBoard members said they were pleased with the popularity of the program, but appeared hesitant to commit additional funding from the current fiscal year. Terk asked what kind of projects have been submitted. “Everything from paving parking areas to repairing the fronts of buildings, power-washing and sanding decks, replacing siding and clapboards,” Black said.\nBoard members suggested transferring $7,600 in unused funds from the, apparently, less popular “DASP” (Dover Advertising Support Program) to cover the unmet need in the DO-IT program.\nBuswell, who owns a home-based business ineligible for the program, objected to an expansion of the program. “I don’t think you should expand it because we don’t know the full outcome of how the program will work,” he said. “Did everyone do what they said they would do? Increase it next year, if everything is kosher. My stand is that a lot of businesses in Dover were discriminated against because they’re not brick-and-mortar businesses. I don’t think that makes a lot of business sense.”\nTerk agreed that, at the end of this year’s program, the project should be evaluated for its effectiveness. “In the meantime, this is its first year in existence, and we have a recommendation that we should increase it,” he said. “I don’t want to take money away from programs we have, but I’m willing to take money away from one that hasn’t been successful.”\nThe board voted to transfer the money. Black noted that it would cover the unmet need for the three applications he has, with about $450 left over for a future applicant.\nIn other economic development matters, the board received a letter from economic development assistant Linda Anelli, who said she would be resigning, effective October 1. “Linda has been a big asset to the department, and I thank her for her service,” said Black.\n“Speaking for the board, we appreciate all of the efforts and contributions she has made to economic development,” said Terk. “And, I would add, for everything else she has done in the valley.”\nCapitani moved to accept Anelli’s resignation “with extreme regret.”\nIn other matters, board members approved Guy Nido’s heating oil bid at $3.38, which was about four cents less than the only other bidder. Last year’s bid price was $3.16."} +{"text": "e: 90},\n\t\t\t\t{Percentile: 95},\n\t\t\t\t{Percentile: 99},\n\t\t\t},\n\t\t\texpectedSQL: `COALESCE(percentile_cont(ARRAY[0.5, 0.75, 0.9, 0.95, 0.99]) WITHIN GROUP (ORDER BY \"Duration\"), ARRAY[]::float8[])`,\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tsql := buildPercentileQuery(tc.percentiles)\n\t\t\tassert.Equal(t, tc.expectedSQL, sql)\n\t\t})\n\t}\n}\n\n// TestBuildBucketQuery verifies the PostgreSQL bucket counting query is built correctly.\nfunc TestBuildBucketQuery(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuckets []*agpb.DeploymentReplicaEventDurationBucket\n\t\texpectedSQL string\n\t\texpectedArgs []interface{}\n\t}{\n\t\t{\n\t\t\tname: \"single bucket\",\n\t\t\tbuckets: []*agpb.DeploymentReplicaEventDurationBucket{\n\t\t\t\t{Start: durationpb.New(0), End: durationpb.New(time.Minute)},\n\t\t\t},\n\t\t\texpectedSQL: `COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?)`,\n\t\t\texpectedArgs: []interface{}{int64(0), int64(60000000000), int64(0), int64(60000000000), int64(0)},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple buckets\",\n\t\t\tbuckets: []*agpb.DeploymentReplicaEventDurationBucket{\n\t\t\t\t{Start: durationpb.New(0), End: durationpb.New(time.Minute)},\n\t\t\t\t{Start: durationpb.New(time.Minute), End: durationpb.New(5 * time.Minute)},\n\t\t\t\t{Start: durationpb.New(5 * time.Minute), End: durationpb.New(10 * time.Minute)},\n\t\t\t},\n\t\t\texpectedSQL: `COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?), ` +\n\t\t\t\t`COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?), ` +\n\t\t\t\t`COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?)`,\n\t\t\texpectedArgs: []interface{}{\n\t\t\t\tint64(0), int64(60000000000), int64(0), int64(60000000000), int64(0),\n\t\t\t\tint64(60000000000), int64(300000000000), int64(60000000000), int64(300000000000), int64(60000000000),\n\t\t\t\tint64(300000000000), int64(600000000000), int64(300000000000), int64(600000000000), int64(300000000000),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"hour-based buckets\",\n\t\t\tbuckets: []*agpb.DeploymentReplicaEventDurationBucket{\n\t\t\t\t{Start: durationpb.New(0), End: durationpb.New(time.Hour)},\n\t\t\t\t{Start: durationpb.New(time.Hour), End: durationpb.New(24 * time.Hour)},\n\t\t\t},\n\t\t\texpectedSQL: `COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?), ` +\n\t\t\t\t`COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?)`,\n\t\t\texpectedArgs: []interface{}{\n\t\t\t\tint64(0), int64(3600000000000), int64(0), int64(3600000000000), int64(0),\n\t\t\t\tint64(3600000000000), int64(86400000000000), int64(3600000000000), int64(86400000000000), int64(3600000000000),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"overlapping buckets for cumulative distribution\",\n\t\t\tbuckets: []*agpb.DeploymentReplicaEventDurationBucket{\n\t\t\t\t{Start: durationpb.New(0), End: durationpb.New(time.Minute)},\n\t\t\t\t{Start: durationpb.New(0), End: durationpb.New(5 * time.Minute)},\n\t\t\t\t{Start: durationpb.New(0), End: durationpb.New(10 * time.Minute)},\n\t\t\t},\n\t\t\texpectedSQL: `COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?), ` +\n\t\t\t\t`COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?), ` +\n\t\t\t\t`COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?)`,\n\t\t\texpectedArgs: []interface{}{\n\t\t\t\tint64(0), int64(60000000000), int64(0), int64(60000000000), int64(0),\n\t\t\t\tint64(0), int64(300000000000), int64(0), int64(300000000000), int64(0),\n\t\t\t\tint64(0), int64(600000000000), int64(0), int64(600000000000), int64(0),\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tsql, args := buildBucketQuery(tc.buckets)\n\t\t\tassert.Equal(t, tc.expectedSQL, sql)\n\t\t\tassert.Equal(t, tc.expectedArgs, args)\n\t\t})\n\t}\n}\n\n// No"} +{"text": "“A song will outlive all sermons in the memory.” – Henry Giles\nIt isn’t difficult to recognize the power of song. It takes just a few moments to recall those tunes that have stayed with us through our lives or marked important moments in our personal evolution and relationships, whether celebratory or challenging. It is pretty amazing how a three-minute story or idea set to melody and rhythm can have such a tremendous and lasting impact. Classic songs like John Lennon’s “Imagine,” or Nat King Cole’s “Unforgettable,” have left a seemingly timeless impression across countless cultural and generational boundaries, resonating in the hearts and memories of hundreds of millions of people.\nOut of the song emerged an entire industry, celebrated this past week in Los Angeles and culminating with Sundays telecast of the Grammy Awards, otherwise known as “Music’s Biggest Night.” While some critics may turn their noses up at what they consider an over-commercialization of music recognized by the event, I am happy to report that music was also being recognized and honored for the value it has in our lives and in critical areas of our society, like education.\nA couple of notable events of Grammy Week that shined a light on these higher values, and on the importance of the song in the evolution of society, included:\nThe Grammy Foundation Legacy concert, “A Song Is Born,” at the Wilshire Ebell Theater: This event was a songwriter’s dream, bringing together the crème-de-la-crème of popular songwriters doing rare performances of their own work. Some highlights included performances by Skylar Grey, Gaven McGraw, Dan Wilson, Paul Williams, Kris Kristofferson, Steve Cropper and Bonnie Raitt. The cause uniting them, beyond the songs and community, was a commitment to keep music alive for the next generations by donating all proceeds to support critical music preservation and education initiatives.\nMusiCares Benefit Gala and Tribute to Carole King at the LA Convention Center: Carole King is considered one of the most successful female songwriters of the past 50 years, contributing to 118 pop hits, including countless classics like “You’ve Got a Friend” and “(You Make Me Feel Like) A Natural Woman”. In addition to providing the soundtrack to so many people’s lives, Carole still remains a committed and outspoken advocate for environmental and other important social causes. Many admirers turned out to perform Carole King’s songs in her honor, including Alicia Keys, Pink, Lady Gaga, Sara Bareilles, and James Taylor.\nThe evening raised 5.5 million for MusiCares, which provide emergency financial assistance and addition recovery programs to musicians in need.\nChildren’s Grammy Nominee Concert at the Ann & Jerry Moss Theater: Not only did this event raise money for music programs for kids, it celebrated the most popular artists that make music specifically for those kids. Although lesser known, this is a growing and important part of the Grammy programming – to spotlight a community of artists focusing on children and the music created to help them grow and learn.\nInaugural Music Educator Grammy Award: 2014 marked an important moment in Grammy history – the offering of the first Grammy award for Music Teachers. This comes at a critical time, when music programs across the country have been decimated by funding cuts and a narrowing focus of STEM-based programming. The recognition of the critical role a great music teacher can play in the lives and development of young students is long past overdue. The inclusion, however, in such a high profile media event is a great step toward helping our nation and its leaders recognize the essential need to re-instate and support music education programs in schools across America. If you have any doubt as to the benefit a great music teacher can bring to a child’s life, it is worth taking a look at the CBS profile on this year’s prizewinner, Kent Knappenberger (“Mr. K”). The ripple effect of establishing the award was also quite powerful. Over 30,000 music educators were nominated by their peers for this year’s Grammy, giving recognition and pride to dedicated and under-appreciated teachers across the country.\nIt is reassuring to experience these times when music – something at the core of everyone’s heart, can give heart to an industry that is often looked upon as uncaring. The power of a great song is that it sees no barriers and can, as Bono put it, “thaw the hardest hearts.” Music is also essential to the development of our children’s minds, social adaptability and overall well-being. As I like to put it: a good meal can feed a man for a day, but a great song can feed a million souls for a lifetime.\nMy hope is that, after the glitter and glamor of Grammy week has faded, the spotlight can continue to shine bright on, and draw the world’s attention to, music’s critical role in these other areas of our lives and society. Maybe one day there will even be a Billboard Chart for the year’s top songs ranked by their positive social impact, and artists will be rated – not by the number of records they sold, but rather by the number of hearts they have truly touched, and by their contributions to the betterment of humanity.\nView this article on Huffington Post."} +{"text": "- Low concentrations of polonium are all around the environment\n- Smokers are exposed to more polonium than nonsmokers because it's in tobacco\n- Expert: Radiation poisoning from polonium-210 looks like the end stage of cancer\nWhether a radioactive substance called polonium-210 was involved in Yasser Arafat's death is under investigation. The body of the former Palestine Liberation Organization leader was exhumed Tuesday for this purpose and reburied.\nArafat died in 2004. A murder inquiry into his death was opened this year after high levels of polonium-210 were found on Arafat's toothbrush, clothing and keffiyeh, the black-and-white headscarf he often wore.\nTawfiq Tirawi, head of the Palestinian investigation committee, said forensic experts from France, Switzerland and Russia took their own samples for independent analysis.\nPolonium-210 is not a radioactive substance that emits gamma particles, which can travel through walls at extremely high energies. Instead, as polonium-210 decays, it releases alpha particles, which can't even pass through a piece of paper.\nBut alpha particles are still dangerous. They travel short distances and retain a high amount of energy.\nIn nature, it takes about 138 days for half of a given quantity of polonium-210 to decay. But because biological processes also work to eliminate the substance, it takes about 50 days for half of it to disappear while inside the body, according to the Centers for Disease Control and Prevention (PDF).\nPolonium-210 is a problem to humans only when it gets into the body. The International Atomic Energy Agency says that careful hand-washing and showering can eliminate most traces of this substance.\nThe radioactive substance can enter body by eating or drinking contaminated things, breathing contaminated air, or inhaling or ingesting bodily fluids from someone contaminated with it. A wound can also become contaminated.\n\"Radiation, just like with any toxic chemical, is related to dose,\" said Cham Dallas, a professor and toxicologist at the University of Georgia's Institute for Health Management and Mass Destruction Defense. \"If you get a big dose, then you'll die sooner.\"\nAnd with polonium-210, a dangerous dose can be a matter of micrograms: smaller than a single speck of pepper, he said.\nIf you ingest polonium-210, about 50% to 90% of the substance will exit the body through feces, according to a fact sheet from Argonne National Laboratory (PDF). What is left will enter the bloodstream. About 45% of polonium ingested gets into the spleen, kidneys and liver, and 10% is deposited in the bone marrow.\nRadiation poisoning from polonium-210 looks like the end stage of cancer, Dallas said.\nLiver and kidney damage ensue, along with extreme nausea and severe headaches. Victims often experience vomiting, diarrhea and hair loss. The alpha particles emitted from the decaying substance get absorbed in the body, which is what causes harm. Death may come in a matter of days, sometimes weeks.\nThere is no cure for severe radiation poisoning, Dallas said. A few experimental treatments are in the works for people who are able to stay on the edge of potential survival, but they have not been approved by the U.S. Food and Drug Administration.\nArafat died at age 75 at a Paris military hospital after he suffered a brain hemorrhage and slipped into a coma. Palestinian officials said in the days before his death that Arafat had a blood disorder -- though they ruled out leukemia -- and that he had digestive problems.\nRumors of poisoning circulated at the time, but Palestinian officials denied them, and then-Foreign Minister Nabil Sha'ath said he \"totally\" ruled them out.\nOver the course of a year, through natural sources and medical tests, the average American gets an effective radiation dose of 6.2 millisieverts (mSv). A potentially lethal dose of polonium-210 is 5 sieverts (Sv), Dallas said, which is about 1,000 times more powerful than that average year's worth of exposure.\nLow concentrations of polonium are all around the environment. Additionally, tobacco contains polonium, and about twice as much of the radioactive substance has been found in the ribs of smokers than non nonsmokers, according to the Argonne report.\nAs for investigating a polonium poisoning, there are instruments that can detect low concentrations of polonium, Dallas said. But there's also a background level of polonium found in nature, so if an alleged poisoning happened many years ago, the remaining quantity in the body may be close to the background level.\nAnother tricky part about investigating a situation like this years after a potential poisoning: It would be relatively easy for someone to contaminate evidence after the fact with a small amount of the substance, Dallas said.\nSo it's possible that someone could have planted small amounts of polonium-210 in Arafat's belongings, Dallas said. High levels were found by a team of Swiss researchers at the Institut de Radiophysique.\nEven through exhuming the body, it's not clear that detection would be foolproof, Dallas said. As time goes on, there's less and less of the radioactive substance left, so it would be more and more difficult to tell how much polonium-210 Arafat was exposed to, if any.\n\"It's going to be very hard to determine whether polonium was ever introduced there,\" Dallas said. \"There will be a lot of dispute, I guess, depending on who is incriminated by this.\""} +{"text": "te: SQLite doesn't support percentile_cont and COUNT FILTER so the functions using those are skipped in unit tests.\n\n// Tests for CreateDeploymentReplicaEvents\n\nfunc TestCreateDeploymentReplicaEvents_Success_SingleEvent(t *testing.T) {\n\ts := newTestServer(t)\n\n\tevent := &gpb.DeploymentReplicaEvent{\n\t\tName: \"accounts/test-account/deployments/test-deployment/replicaEvents/test-event-1\",\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: durationpb.New(30 * time.Second),\n\t\tStartTime: timestamppb.Now(),\n\t\tEndTime: timestamppb.Now(),\n\t\tPlacement: &gpb.Placement{\n\t\t\tRegion: gpb.Region_US_IOWA_1,\n\t\t},\n\t\tInitialReplicaState: &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\t\tDesired: 1,\n\t\t\tCurrent: 1,\n\t\t\tMin: 1,\n\t\t},\n\t\tTargetReplicaState: &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\t\tDesired: 2,\n\t\t\tCurrent: 2,\n\t\t\tMin: 1,\n\t\t},\n\t}\n\n\t_, err := s.CreateDeploymentReplicaEvents(context.Background(), &agpb.CreateDeploymentReplicaEventsRequest{\n\t\tDeploymentReplicaEvents: []*gpb.DeploymentReplicaEvent{event},\n\t})\n\trequire.NoError(t, err)\n\n\t// Verify the event was created\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"test-account\" AND deployment_id = \"test-deployment\" AND deployment_replica_event_id = \"test-event-1\"`,\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.DeploymentReplicaEvents, 1)\n\tassert.Equal(t, event.Name, resp.DeploymentReplicaEvents[0].Name)\n\tassert.Equal(t, event.Type, resp.DeploymentReplicaEvents[0].Type)\n\tassert.Equal(t, event.Status, resp.DeploymentReplicaEvents[0].Status)\n}\n\nfunc TestCreateDeploymentReplicaEvents_Success_MultipleEvents(t *testing.T) {\n\ts := newTestServer(t)\n\n\tevents := []*gpb.DeploymentReplicaEvent{\n\t\t{\n\t\t\tName: \"accounts/batch-account/deployments/batch-deployment/replicaEvents/batch-event-1\",\n\t\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\t\tDuration: durationpb.New(30 * time.Second),\n\t\t\tStartTime: timestamppb.Now(),\n\t\t\tEndTime: timestamppb.Now(),\n\t\t\tPlacement: &gpb.Placement{\n\t\t\t\tRegion: gpb.Region_US_IOWA_1,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tName: \"accounts/batch-account/deployments/batch-deployment/replicaEvents/batch-event-2\",\n\t\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_DOWN,\n\t\t\tStatus: gpb.DeploymentReplicaEvent_ONGOING,\n\t\t\tDuration: durationpb.New(60 * time.Second),\n\t\t\tStartTime: timestamppb.Now(),\n\t\t\tEndTime: timestamppb.Now(),\n\t\t\tPlacement: &gpb.Placement{\n\t\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tName: \"accounts/batch-account/deployments/batch-deployment/replicaEvents/batch-event-3\",\n\t\t\tType: gpb.DeploymentReplicaEvent_MANUAL_SCALE_UP,\n\t\t\tStatus: gpb.DeploymentReplicaEvent_CANCELLED,\n\t\t\tDuration: durationpb.New(90 * time.Second),\n\t\t\tStartTime: timestamppb.Now(),\n\t\t\tEndTime: timestamppb.Now(),\n\t\t\tPlacement: &gpb.Placement{\n\t\t\t\tRegion: gpb.Region_US_IOWA_1,\n\t\t\t},\n\t\t},\n\t}\n\n\t_, err := s.CreateDeploymentReplicaEvents(context.Background(), &agpb.CreateDeploymentReplicaEventsRequest{\n\t\tDeploymentReplicaEvents: events,\n\t})\n\trequire.NoError(t, err)\n\n\t// Verify all events were created\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"batch-account\" AND deployment_id = \"batch-deployment\"`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 3)\n}\n\nfunc TestCreateDeploymentReplicaEvents_Error_EmptyList(t *testing.T) {\n\ts := newTestServer(t)\n\n\t_, err := s.CreateDeploymentReplicaEvents(context.Background(), &agpb.CreateDeploymentReplicaEventsRequest{\n\t\tDeploymentReplicaEvents: []*gpb.DeploymentReplicaEvent{},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"at least one deployment replica event must be specified\")\n}\n\nfunc TestCreateDeploymentReplicaEvents_Error_InvalidResourceName(t *testing.T) {\n\ts := newTestServer(t)\n\n\tevent := &gpb.DeploymentReplicaEvent{\n\t\tName: \"invalid-resource-name\",\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: durationpb.New(30 * time.Second),\n\t}\n\n\t_, err := s.CreateDeploymentReplicaEvents(context.Background(), &agpb.CreateDeploymentReplicaEventsRequest{\n\t\tDeploymentReplicaEvents: []*gpb.DeploymentReplicaEvent{event},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"invalid deployment replica event name\")\n}\n\nfunc TestCreateDeploymentReplicaEvents_Error_MissingName(t *testing.T) {\n\ts := newTestServer(t)\n\n\tevent := &gpb.DeploymentReplicaEvent{\n\t\tName: \"\", // Empty name\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: durationpb.New(30 * time.Second),\n\t}\n\n\t_, err := s.CreateDeploymentReplicaEvents(context.Background(), &agpb.CreateDeploymentReplicaEventsRequest{\n\t\tDeploymentReplicaEvents: []*gpb.DeploymentReplicaEvent{"} +{"text": "- Many find it hard to disconnect, even when on holiday\n- Westin Dublin hotel lets users swap cell phones for \"detox survival kit\"\n- \"Digital detox\" next big thing, according to travel industry report\n- But many guests still prefer hotel wi-fi to ditching technology\nWith the advent of smartphones we've become used to being constantly connected, even when we're on the road or on vacation. But now a growing number of hotels are adding \"digital detox\" packages to their roster of offerings.\nDetox packages are nothing new. For decades, hotels and vacation retreats have enticed guests to \"clean out,\" often with the help of a specialized diet plan and fitness regimens (with a massage thrown in for good measure). These days, the concept is being pushed to help us disconnect from technology. The World Travel Market Global Trends Report even listed digital detox as one of the next big trends to hit the hospitality industry in the coming year.\nThe push has come on the heels of increasing reports of travelers' inability to \"unplug.\" A recent Google survey found that in the United States, 80% of smartphone users almost never leave their home without their device, while a TripAdvisor survey found nearly half of mobile owners use their phone to augment their vacation (e.g. taking travel photos, researching restaurants, and so on).\n\"We've witnessed the increased dependency people now have on their electronic devices,\" notes Andrew Henning, the general manager at The Westin Dublin, in Ireland.\nIn March, the hotel introduced a digital detox package to combat this gadget addiction (recently classified in the media as \"nomophobia\"). Guests that partake in the package stash their electronic devices in a safe, and in exchange get a detox survival kit, which includes a board game, a walking map, a tree-planting kit, and other reminders that life exists beyond the confines of an iPad.\nVia Yoga, a company that hosts yoga retreats in Mexico and Costa Rica, feels so strongly about the need for its guests to unplug that it decided to offer a 15% discount as an incentive for anyone willing to give up their iPhone.\n\"In the last couple of years, people have started carrying their phones and tablets with them all the time,\" notes Suzie Cavassa, the company founder.\n\"Our customers were even using them at dinner, or when hanging out by the pool,\" she says. \"They were so preoccupied that they were missing out on the experiences they were paying for.\"\nFor guests that take the detox option (about 15 per season), Cavassa will lock away their devices and give them an emergency number, so that if someone does really need to reach them, they're not completely out of touch.\n\"If someone needs to get hold of you, they can. But you're not working or checking Facebook; you're just experiencing the moment, checking out the sunset, or having a great conversation with someone you just met.\"\nCavassa admits that it takes a few days for most guests to stop feeling antsy as a result of the separation from their devices. Physical activities, like surfing and yoga, help make the transition easier, she notes.\n\"Surfing is the type of activity that forces you to be in the present,\" she says. \"There's no way you're thinking about Facebook or what you have to do at work when a giant wave comes at you.\"\nVia Yoga's detox package is popular, but other venues offering similar packages admit that while there's interest, they're not flooded with bookings.\nThe Hotel Monaco Chicago provides guests with a \"black-out\" option, whereby they surrender their gadgets to reception upon checking in.\n\"We were constantly hearing from guests how they loved that the Monaco was an escape from the hustle and bustle of the city,\" says Marco Scherer, the hotel's general manager. \"We decided to allow our guests the option to experience the ultimate seclusion by voluntarily forfeiting all methods of electronic communication at check-in.\"\nThough guests are intrigued by the package, Scherer says very few actually opt to give up their devices.\n\"Most guests prefer our free wi-fi,\" he admits.\nHenning says the same is true at the Westin. While guests from as far afield as Belgium, France, Poland and South Korea have called and expressed interest in the package, none have yet booked it.\nHe says: \"We have found that guests are intrigued by the idea of detoxing from their electronic devices, but are not quite willing to make the commitment to a full digital detox.\""} +{"text": "- \"For the Islamists, a human being is like an ant you squash,\" Gao resident says\n- Residents: Once vibrant northern Mali is now a shadow of itself\n- \"Home is not sweet anymore,\" Timbuktu native says\n- An offensive led by French troops is aimed at flushing out the militants\nThere's no shortage of harrowing stories of life under Islamist militants in northern Mali.\nPublic floggings for smoking a cigarette.\nBrutal beatings for working as a radio journalist.\nBroken limbs. Broken hearts.\n\"For the Islamists, a human being is like an ant you squash, like an animal you slaughter,\" said Sedou Sangare, a resident of the northern town of Gao.\nGao was once a vibrant community filled with colorful camel caravans lazily strolling down the streets. Bearded men and beaded women mingled freely.\nThen the Islamists rode in on rundown pickup trucks, armed to the teeth.\nThey banned smoking, television, sports and music -- a major setback for the northern region known for its \"Festival au Desert.\"\nThey forbade unwed men and women from mixing in public.\nAn offensive led by France is aiming to stop the militants from expanding their reach to the capital of Mali.\nBut the north remains under the Islamists' iron grip.\nThough Gao has a majority Muslim population, most residents practice a more relaxed form of the religion.\nAfter militants started imposing a stricter form of Islamic law, or Sharia, throngs took to the streets in protest.\n\"When they declared Sharia, everybody panicked,\" Sangare said. \"Christians, Muslims, everybody fled.\"\nBut the protests did not deter the militants, who publicly punished anyone who defied their teachings.\nIn August last year, they forced a couple allegedly having an affair into two holes and stoned them to death as terrified residents quietly watched.\nLists of public and cruel punishments grew.\nFloggings, executions, amputations -- all in full view of aghast residents.\nThe Islamists compiled a list of unmarried mothers, saying Sharia law condemns relationships outside marriage.\nA mayor -- and his people -- displaced\nMayor Sadou Diallo misses residents of his desert town of Gao, most of whom fled to Bamako when militants took over.\nAbout 229,000 Malians have been displaced -- mainly from Kidal, Timbuktu, and Gao, according to the United Nations.\nHe is one of the displaced. A former respected community leader, trying to rebuild, just like his people.\nResidents of the north, once proud of the vibrant desert communities near River Niger, say the region is a shadow of what it used to be.\n\"Home is not sweet anymore,\" said Fadimata Alainchar, a charity worker and native of nearby Timbuktu.\nA recent visit to her hometown left her shaken.\n\"When entering the city, the signboard which was: \"Welcome to Timbuktu the City of 333 Saints\" is now \"Welcome to Timbuktu, the gate to the application of the Shariya,\" she said in a submission to CNN's iReport.\nThe fabled city includes ancient tombs and wooden structures dating to the 15th century, a major part of its cultural heritage.\nAnd those are not the only changes.\nWomen who don't cover their bodies in accordance to the militants' Sharia law, are imprisoned or raped, she said. Their husbands, terrified of killings and amputations, don't utter a word.\nAnd gunshots are a common sound.\n\"If not to disperse women marching, it is to kill dogs that are barking and preventing the insurgents from sleeping,\" Alainchar said. \"Home has changed. Before it was peace, joy and love. Now it is shame, terror and abuse.\"\n\"I prefer dying\"\nStories of cruel punishments abound.\nRadio journalist Malik Maiga faced the militants' wrath when he used his show to warn residents of public stoning or floggings.\nIslamists singled him out, beat him up and left him in a cemetery. He survived and is among the displaced in Bamako.\nMaiga is not the only journalist targeted. Last week, another radio journalist was killed, leading Gao residents to retaliate by killing a militant leader.\nThen there's Suleyman and Muktar, former truck drivers, accused of stealing. Their limbs were hacked off. They are jobless and wander around the capital.\n\"I prefer dying to being like this,\" Muktar said. \"My hand hurts, my heart aches. I only have God to ask for help.\"\nMali descended into chaos last year, when junior military members seized power in a coup. Outraged soldiers accused the government of not providing adequate equipment to battle ethnic Tuareg rebels roaming the vast desert in the north.\nTuareg rebels took advantage of the power vacuum after the coup and seized some parts of the north. A power struggle erupted between the rebels and local Islamists, leading the latter to topple the tribe and seize control of two-thirds of northern Mali, an area the size of France.\nHope amid chaos\nThe crisis in the north has prompted fears that the al Qaeda-linked extremists will set up shop there.\nIt is \"a serious, ongoing threat,\" U.S. Secretary of State Hillary Clinton warned Wednesday.\nThe French offensive to help the government in its former colony aims to stop the militants from using the vast desert area as a training ground for international attacks.\n\"We are in for a struggle. We cannot permit northern Mali to become a safe haven\" for terrorists, Clinton said.\nInternational troops from West African nations such as Nigeria are joining the effort to restore some normalcy to the north.\nAmid the strife and despair, citizens of the former French colony remain hopeful.\nAnd as French combat helicopters fly overhead, crowds below erupt into cheers.\nBut in northern Mali, at least for now, there is little to smile about."} +{"text": "event},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"invalid deployment replica event name\")\n}\n\nfunc TestCreateDeploymentReplicaEvents_Error_PartialResourceName(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Missing the replicaEvents part\n\tevent := &gpb.DeploymentReplicaEvent{\n\t\tName: \"accounts/test-account/deployments/test-deployment\",\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: durationpb.New(30 * time.Second),\n\t}\n\n\t_, err := s.CreateDeploymentReplicaEvents(context.Background(), &agpb.CreateDeploymentReplicaEventsRequest{\n\t\tDeploymentReplicaEvents: []*gpb.DeploymentReplicaEvent{event},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"invalid deployment replica event name\")\n}\n\nfunc TestCreateDeploymentReplicaEvents_UpsertDuplicateEvent(t *testing.T) {\n\ts := newTestServer(t)\n\n\tstartTime := timestamppb.Now()\n\tendTime := timestamppb.Now()\n\n\tevent := &gpb.DeploymentReplicaEvent{\n\t\tName: \"accounts/upsert-account/deployments/upsert-deployment/replicaEvents/upsert-event\",\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_ONGOING,\n\t\tDuration: durationpb.New(30 * time.Second),\n\t\tStartTime: startTime,\n\t\tEndTime: endTime,\n\t\tPlacement: &gpb.Placement{\n\t\t\tRegion: gpb.Region_US_IOWA_1,\n\t\t},\n\t\tInitialReplicaState: &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\t\tDesired: 1,\n\t\t\tCurrent: 1,\n\t\t\tMin: 1,\n\t\t},\n\t\tTargetReplicaState: &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\t\tDesired: 2,\n\t\t\tCurrent: 1,\n\t\t\tMin: 1,\n\t\t},\n\t}\n\n\t// Create the first event\n\t_, err := s.CreateDeploymentReplicaEvents(context.Background(), &agpb.CreateDeploymentReplicaEventsRequest{\n\t\tDeploymentReplicaEvents: []*gpb.DeploymentReplicaEvent{event},\n\t})\n\trequire.NoError(t, err)\n\n\t// Verify initial state\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"upsert-account\" AND deployment_id = \"upsert-deployment\" AND deployment_replica_event_id = \"upsert-event\"`,\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.DeploymentReplicaEvents, 1)\n\tassert.Equal(t, gpb.DeploymentReplicaEvent_ONGOING, resp.DeploymentReplicaEvents[0].Status)\n\tassert.Equal(t, 30*time.Second, resp.DeploymentReplicaEvents[0].Duration.AsDuration())\n\n\t// Update the event with new status and duration\n\tupdatedEvent := &gpb.DeploymentReplicaEvent{\n\t\tName: \"accounts/upsert-account/deployments/upsert-deployment/replicaEvents/upsert-event\",\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: durationpb.New(60 * time.Second),\n\t\tStartTime: startTime,\n\t\tEndTime: endTime,\n\t\tPlacement: &gpb.Placement{\n\t\t\tRegion: gpb.Region_US_IOWA_1,\n\t\t},\n\t\tInitialReplicaState: &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\t\tDesired: 1,\n\t\t\tCurrent: 1,\n\t\t\tMin: 1,\n\t\t},\n\t\tTargetReplicaState: &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\t\tDesired: 2,\n\t\t\tCurrent: 2,\n\t\t\tMin: 1,\n\t\t},\n\t}\n\n\t// Upsert should succeed and update the existing event\n\t_, err = s.CreateDeploymentReplicaEvents(context.Background(), &agpb.CreateDeploymentReplicaEventsRequest{\n\t\tDeploymentReplicaEvents: []*gpb.DeploymentReplicaEvent{updatedEvent},\n\t})\n\trequire.NoError(t, err)\n\n\t// Verify the event was updated (not duplicated)\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"upsert-account\" AND deployment_id = \"upsert-deployment\" AND deployment_replica_event_id = \"upsert-event\"`,\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.DeploymentReplicaEvents, 1, \"Should still have only 1 event after upsert\")\n\tassert.Equal(t, gpb.DeploymentReplicaEvent_FINISHED, resp.DeploymentReplicaEvents[0].Status)\n\tassert.Equal(t, 60*time.Second, resp.DeploymentReplicaEvents[0].Duration.AsDuration())\n\tassert.Equal(t, int32(2), resp.DeploymentReplicaEvents[0].TargetReplicaState.Current)\n}\n\nfunc TestCreateDeploymentReplicaEvents_Error_NilEvent(t *testing.T) {\n\ts := newTestServer(t)\n\n\tevents := []*gpb.DeploymentReplicaEvent{\n\t\t{\n\t\t\tName: \"accounts/nil-test-account/deployments/nil-test-deployment/replicaEvents/nil-test-event-1\",\n\t\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\t\tDuration: durationpb.New(30 * time.Second),\n\t\t\tStartTime: timestamppb.Now(),\n\t\t\tEndTime: timestamppb.Now(),\n\t\t\tPlacement: &gpb.Placement{\n\t\t\t\tRegion: gpb.Region_US_IOWA_1,\n\t\t\t},\n\t\t},\n\t\tnil, // nil event should cause a validation error\n\t\t{\n\t\t\tName: \"accounts/nil-test-account/deployments/nil-test-deployment/replicaEvents/nil-test-event-2\",\n\t\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_DOWN,\n\t\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\t\tDuration: durationpb.New(60 * time.Second),\n\t\t\tStartTime: timestamppb.Now(),\n\t\t\tEndTime: timestamppb.Now(),\n\t\t\tPlacement: &gpb.Placement{\n\t\t\t\tRegion: gpb.Region_US_IOWA_1,\n\t\t"} +{"text": "- A teacher initiated the school lockdown, despite being injured, an official says\n- The student killed is identified as 14-year-old Emilio Hoffman, a freshman\n- The shooter was a student at the school, law enforcement sources say\n- The gunman appears to have died from a self-inflicted wound, the sources add\nWhen the shooting started at her high school near Portland, Oregon, early Tuesday, student Jaimie Infante didn't recognize the sound of a gunshot.\nShe thought maybe somebody had dropped a book.\nIn reality, a lone gunman had opened fire at the school, killing one student and forcing others to flee.\nAn assistant principal told students to go into lockdown mode.\n\"At the end he said: 'This is not a drill,'\" Infante told CNN.\nA teacher, who suffered non-life-threatening injuries, was treated at the scene. The suspected gunman is dead.\nAccording to multiple law enforcement officials, the shooter was a student at the school. The gunman appears to have died from a self-inflicted wound, the sources told CNN.\nSpeaking to reporters, Troutdale Police Department Chief Scott Anderson said he could not confirm how the shooter died. He identified the student killed as 14-year-old Emilio Hoffman, a freshman.\nAnderson met with the student's parents Tuesday afternoon and \"they want you to know that Emilio was a great kid and he was loved by all,\" he said.\nOfficials believe they know who the gunman was, but they are \"not confident enough\" to reveal details yet, Anderson said.\nHe added: \"This is a tragedy that affects our whole community. This is not supposed to happen to any school or to any child, but we will get through this together.\"\n'Could have been much worse'\nThe shooting happened at about 8 a.m. (11 a.m. ET) at Reynolds High School in Troutdale, about 12 miles east of Portland. The city has a population of 16,400 people.\nWhen it started, student Hannah League ducked into a classroom, where she and others huddled in a corner with no lights -- hiding.\n\"I heard these pops and I thought they were firecrackers, but then I saw a teacher run out with his side kind of bloody,\" League told CNN's \"Erin Burnett OutFront.\"\n\"You don't think something's going to happen like that -- especially to your school. It's kind of, like, crazy,\" she said.\nDetails about what led to the shooting weren't immediately available. The gunman is believed to have used a rifle.\nAnderson said the shooter entered the building that houses the school gym. Hoffman was shot and killed in a locker room. The shooter was found in a separate restroom, Anderson said.\nHe thanked officers for their quick response. He also thanked injured teacher Todd Rispler, who initiated the school lockdown despite being hurt.\n\"Without the quick and well-executed response, this tragedy could have been much worse,\" the Reynolds School District said in a statement.\nAnxious parents waited for news that their children were safe. One couple, Craig Tuholski and Tawnjia Reimer, were talking with CNN affiliate KGW, about how agonizing the wait for news was, when Tuholski's cell phone rang.\n\"Is that Chris?\" Reimer asked before letting out a sigh of relief. \"Oh, thank God.\"\n\"That's what we were waiting for,\" Tuholski said after hanging up.\nAbout an hour after the shooting, Oregon State Police said the area was secure and the situation was contained.\nObama: 'Levels of gun violence off the charts'\nThe shooting, the latest in a long string of school shootings, sparked reaction nationwide.\n\"Our hearts go out to the Reynolds HS community. How many more students must we lose before committing to reduce gun violence in our schools?\" Secretary of Education Arne Duncan asked on his Twitter account.\nSpeaking in Washington, President Barack Obama said the nation should be ashamed of its inability to get tougher gun restrictions through Congress in the aftermath of mass shootings that he said have become commonplace in America.\n\"Our levels of gun violence are off the charts. There's no advanced, developed country on Earth that would put up with this,\" he said in response to a question about gun violence.\nMost members of Congress are \"terrified\" of the National Rifle Association, the President said, adding that nothing will change until public opinion demands it.\n\"The country has to do some soul searching about this. This is becoming the norm, and we take it for granted, in ways that as a parent are terrifying to me,\" Obama said.\nCNN first learned of the shooting through reports on Twitter."} +{"text": "What is in this article?:\n- Bangladesh: Is Worker Safety Failing in the Global Supply Chain?\n- Fragmentation of Efforts\nThe Triangle Shirtwaist Factory fire that killed 146 workers in New York City more than 100 years ago probably is the worst single workplace tragedy in U.S. history. Workplace safety and health reforms followed the fire and eventually led to the signing of the Occupational Safety and Health Act and the creation of OSHA and MSHA. Unions gained strength and demanded safer working conditions for members. And now, modern building codes demand certain standards of construction, as well as sprinkler systems, warning systems, appropriate storage of flammable goods, an appropriate number of exits and the ability to access those exits.\nBut as U.S. corporations shifted the bulk of their manufacturing overseas, how responsible should they have been for contractors that set up shop in countries where production is the only concern? Should U.S. and European companies bear some responsibility for the welfare of their contractors’ employees?\nThe authors of the articles in this special section say that yes, the multinational companies doing business in countries like Bangladesh and Pakistan have a moral responsibility to improve the working conditions and safety of the people who manufacture their clothing and other products. After all, manufacturing in Bangladesh is big business: The ready-made garment (RMG) sector in Bangladesh exported goods worth more than $20 billion in the past year; nearly 12 percent more than a year earlier.\nThe companies themselves – Gap, Walmart, Disney and others – say they are taking steps to improve working conditions in Bangladesh and elsewhere.\nIn September, Gap Inc. released its sixth Social and Environmental Responsibility Report, highlighting what the company says is its “commitment to local communities and efforts to improve social and environmental performance globally.”\nThe report, which covers fiscal years 2011-2012, details sustainability initiatives companywide and globally, as well as across the Gap, Banana Republic, Old Navy, Piperlime and Athleta brands.\n“Our commitment to social and environmental responsibility remains a cornerstone of how we conduct and grow our business,” said Glenn Murphy, chairman and chief executive officer of Gap Inc. “While as a company we will never stop striving for improvement, our legacy of leadership in this work is extremely meaningful to me and to our employees.”\nThe company noted, “Recent tragedies in Bangladesh have underscored the imperative to improve working and safety conditions for garment workers. Although Gap Inc. did not have a business relationship with factories in Rana Plaza or with Tazreen, the company remains committed to supporting systemic and sustainable reform of the country’s rapidly growing garment industry.”\nIn October 2012, Gap launched a Building and Fire Safety Plan for the more than 70 Bangladeshi facilities approved to manufacture Gap Inc. apparel and in July 2013, Gap Inc. became a founding member of the Alliance for Bangladesh Worker Safety. A cornerstone of the alliance is a shared responsibility between the Bangladeshi government, retailers and apparel companies, factory owners, non-governmental organizations, labor and civil society. Member companies commit to inspecting 100 percent of their approved sourcing factories within the first year, under a uniform fire and building safety code.\nWalmart has issued Standards for Suppliers, which set forth its fundamental expectations of suppliers and their factories on the treatment of workers and impact on the environment. The standards also provide the framework for audits that measure how well suppliers are meeting those expectations.\n“We also recognize the need for heightened attention to the unique safety problem in Bangladesh,” says Walmart on its web site. “We expect firm commitments from our suppliers to meet strict safety standards, to be open to rigorous audits and to put the welfare of employees first.”\nIn addition to the regular audits that Walmart conducts under its ethical sourcing program, the company recently announced that it will conduct more in-depth inspections in Bangladesh relating to electrical, fire and building safety. These facility audits are conducted by “accredited and internationally recognized auditing firms and are based upon the obligation in its standards to provide workers with a safe and healthy work environment.”\nWhen independent audits have found serious or repeated violations of Walmart standards related to safety issues, social issues, unauthorized subcontracting or other requirements, the company red flags them.\nSaying that, “Transparency helps all stakeholders to improve worker standards,” the company publishes a list of factories in Bangladesh that are not permitted to produce product for Walmart."} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/deployment_server/deployment_shape_version.go. Lines: 519.\n\npackage deploymentserver\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"slices\"\n\t\"strings\"\n\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/aip\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/auth\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/constants\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/database\"\n\tdeploymentshape \"github.com/fw-ai/fireworks/control_plane/pkg/deployment_shape\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/fwerror\"\n\tmodelpkg \"github.com/fw-ai/fireworks/control_plane/pkg/model\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\tresourcename \"github.com/fw-ai/fireworks/go/resource_name\"\n\t\"github.com/fw-ai/fireworks/shared/shapeutil\"\n\t\"gorm.io/gorm\"\n)\n\nconst (\n\tLatestVersion = \"latest\"\n)\n\nfunc (s *Server) GetDeploymentShapeVersion(ctx context.Context, r *gpb.GetDeploymentShapeVersionRequest) (*gpb.DeploymentShapeVersion, error) {\n\t// Parse the resource name.\n\tvar dsvn resourcename.DeploymentShapeVersionName\n\tif err := dsvn.ParseFrom(r.Name); err != nil {\n\t\treturn nil, err\n\t}\n\n\tp := auth.GetPrincipalFromCtx(ctx)\n\tvar dbdsv database.DeploymentShapeVersion\n\t// Query DB to find the latest version based on create time.\n\tif dsvn.VersionId == LatestVersion {\n\t\t// Apply the read mask filter to the database query.\n\t\tscope, err := database.ReadMaskScope(r, (&database.DeploymentShapeVersion{}).FilterDefs())\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error applying read mask scope: %w\", err)\n\t\t}\n\n\t\t// Return the latest version.\n\t\terr = s.DB(ctx).Where(&database.DeploymentShapeVersion{\n\t\t\tDeploymentShapeVersionName: resourcename.DeploymentShapeVersionName{\n\t\t\t\tAccountId: dsvn.AccountId,\n\t\t\t\tDeploymentShapeId: dsvn.DeploymentShapeId,\n\t\t\t},\n\t\t}).Order(`\"CreateTime\" DESC`).Scopes(deploymentshape.VisibleScope(p), scope).First(&dbdsv).Error\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tdsv := dbdsv.ToProto()\n\t\tomitDeprecatedDeploymentShapeDraftModel(dsv)\n\t\treturn dsv, nil\n\t}\n\n\t// TODO: Use something besides GetResource() here since this will leak information\n\t// about the existence of a deployment shape version before the Public check.\n\t// Get the deployment shape version.\n\terr := s.GetResource(ctx, r, &dbdsv)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif !p.ActAsSuperuser() && p.User(dbdsv.AccountId) == nil && !dbdsv.Public {\n\t\treturn nil, fwerror.New(gpb.Code_PERMISSION_DENIED, \"\")\n\t}\n\n\tdsv := dbdsv.ToProto()\n\ts.maybeHideDeploymentShapeAcceleratorCount(ctx, dsv.Snapshot, dbdsv.AccountId)\n\tomitDeprecatedDeploymentShapeDraftModel(dsv)\n\treturn dsv, nil\n}\n\nfunc (s *Server) UpdateDeploymentShapeVersion(ctx context.Context, r *gpb.UpdateDeploymentShapeVersionRequest) (*gpb.DeploymentShapeVersion, error) {\n\tp := auth.GetPrincipalFromCtx(ctx)\n\t// Validate that latest_validated is not in the update mask\n\tif r.UpdateMask != nil {\n\t\tif slices.Contains(r.UpdateMask.Paths, \"latest_validated\") {\n\t\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"latest_validated field cannot be updated directly - it's automatically managed when validated is set to true\")\n\t\t}\n\t\tif slices.Contains(r.UpdateMask.Paths, \"validated\") && !r.DeploymentShapeVersion.Validated {\n\t\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"cannot unset validated flag\")\n\t\t}\n\t\tif slices.Contains(r.UpdateMask.Paths, \"validated\") && !p.ActAsSuperuser() {\n\t\t\treturn nil, fwerror.New(gpb.Code_PERMISSION_DENIED, \"user cannot set validated flag\")\n\t\t}\n\n\t}\n\n\tmaskIncludes := func(path string) bool {\n\t\treturn r.UpdateMask == nil || len(r.UpdateMask.Paths) == 0 || slices.Contains(r.UpdateMask.Paths, path)\n\t}\n\t// Only allow in-place snapshot display name renames when explicitly requested via\n\t// the update mask (never on a legacy nil/empty mask \"replace all\" request), since\n\t// the snapshot is otherwise treated as immutable.\n\tisUpdatingDisplayName := r.UpdateMask != nil && slices.Contains(r.UpdateMask.Paths, \"snapshot.display_name\")\n\tif isUpdatingDisplayName && !p.ActAsSuperuser() {\n\t\treturn nil, fwerror.New(gpb.Code_PERMISSION_DENIED, \"only superusers can update the snapshot display name\")\n\t}\n\tisUpdatingLoadTestInput := maskIncludes(\"load_test_input\") && r.DeploymentShapeVersion.LoadTestInput != nil\n\tisUpdatingLoadTestOutput := maskIncludes(\"load_test_output\") && r.DeploymentShapeVersion.LoadTestOutput != nil\n\tisUpdatingLoadTestSummary := maskIncludes(\"load_test_summary\") && r.DeploymentShapeVersion.LoadTestSummary != nil\n\tisUpdatingEvalOutput := maskIncludes(\"eval_output\") && r.DeploymentShapeVersion.EvalOutput != nil\n\tisUpdatingKldOutput := maskIncludes(\"kld_output\") && r.DeploymentShapeVersion.KldOutput != nil\n\tisUpdatingFormatterTestOutput := maskIncludes(\"formatter_test_output\") && r.DeploymentShapeVersion.FormatterTestOutput != nil\n\n\t// Permission check for load test fields\n\tif (isUpdatingLoadTestInput || isUpdatingLoadTestOutput || isUpdatingLoadTestSumma"} +{"text": "Office Phone: (717) 397-5190\nCell Phone: (717) 490-0145\nOffice Location: n/a\nOffice Hours: By appointment\nDr. Simmons is a professor in the RN-to-BS program in Lancaster, PA and also in the online RN-to-BS and MSN programs. She earned her EdD from Teacher’s College at Columbia University, an MSN from Columbia University, an MsEd from Temple University and her BS from Messiah College. Her clinical focus has been medical-surgical and critical care nursing. Her doctoral research focused on effectiveness of the nursing school environment and the development of caring ability among nursing students. She is married to Mark Simmons who is the Director of the School of Respiratory Therapy at York College of Pennsylvania. Dr Simmons has two children two grandsons: Clinton is married to Christina Yoder and their son, Everett. Ted is married to Heather Edelman and son, Mason.\nDr. Simmons is involved in the Lancaster Brethren in Christ Church. Her additional interests include gardening and in particular, her role as a Penn State Master Gardener.\nEdD Teacher’s College at Columbia University\nM.S.N. Columbia University\nM.S.Ed Temple University\nB.S. Messiah College\nSimmons, P.R. (2015). History and physical exam (3rd ed.). In D.R. Hess (Ed.), Respiratory care principles and practice (pp. 330-348). Philadelphia: W.B. Saunders\nSimmons, P.R. (2014, Summer/Fall). The future of nursing education and practice. Teachers College, Columbia University Courier, 105, 1.\nSimmons, P.R. (2012). History and physical exam. (2nd ed.) In D.R. Hess (Ed.), Respiratory care principles and practice (pp. 330-348). Philadelphia: W.B. Saunders\nSimmons, P.R. (2011). Abortion: A dilemma revisited. Shalom: A Journal for the Practice of Reconciliation, 31(4), 4.\nSimmons, P.R. (2008). Common laboratory tests. In M.A. Hogan (Ed.). Comprehensive review for NCLEX-RN._(pp. 821-837). Upper Saddle River, NJ: Pearson Education.\nSimmons, P.R. & Simmons, M. L. (2004). The state of the art: Oxygen therapy for patients with COPD. MEDSURG Nursing, 13, 82-85.\nSimmons, P.R. (2003). A primer for nurses who administer blood products. MEDSURG Nursing, 12, 184-192.\nSimmons, P. R. & Cavanaugh, S. H. (2000). Relationships among student and graduate caring ability and professional school climate. Journal of Professional Nursing, 16, 76-83.\nCavanaugh, S. H. & Simmons, P. R. (Winter,1998). Teaching and learning caring ability. Medical Encounter, 2-4.\nCavanaugh, S. H. & Simmons, P.R. (1997) . Evaluation of a school climate instrument for assessing affective objectives in health professional education. Evaluation and the Health Professions, 20, 455-478.\nSimmons, P. R. and Cavanaugh, S. H. (1996). Relationships among childhood parental care, professional school climate and nursing student caring ability. Journal of Professional Nursing, 12, 373-381.\nScholarly Presentations and Abstracts\nPoison Ivy. Nurses Week Continuing Education Presentation at EMU at Lancaster, May 4, 2016.\nLeaves of Three, Let It Be. Presentation at the Lancaster, Pennsylvania Native Plant and Wildlife Festival, April 25, 2015.\nUsing a Wiki to Teach the IOM in an Online MSN course. Poster presentation at the Stewart Conference, Teachers College, Columbia University, April, 2014\nChurch, Community and Professional Service\n- Church Affiliation: Lancaster Brethren in Christ\n- Deacon, 2013\n- Chairman of Missions Committee, 2009 to present\n- Penn State Master Gardener 2015\n- Member of the Board of Directors of LoveINC of Lancaster County 2010 to 2014\n- Director, Pennsylvania State Nurses Association, 2016*\nHonors, Awards and Grants\n- Attained Certified Nurse Educator Status, 2012\n- Nursing Education Award in 2006 from Pennsylvania State Nurses Association\n- American Nurses Association\n- Pennsylvania State Nurses Association\n- Pennsylvania State Nurses Association District 16\nProfessional Conferences Attended\nGerms and Viruses. INR Conference. January, 2016.\nIsabel Maitland Steward Conference, Teachers College, Columbia University, 2015\nIsabel Maitland Steward Conference, Teachers College, Columbia University, 2014"} +{"text": "Coffee / Champagne / Ice Water\nShu Mai / Har Gow / BBQ Pork Bun / Custard Bao / Taro Bao / Roast Duck / Roast Pork\nChicken and Waffles / French Toast with Whipped Cream, Bananas, Caramel Sauce\nNutella Crepe with Whipped Cream / Chocolate Cupcake / Strawberry Cupcake / Peanut Butter Cupcake\nLobster Biscuit and Gravy / Shrimp n’ Grits / Crab Benedict\nEgg Custard Tart\nCongee with Century Egg, Roasted Peanuts, Crispy Shallots, Green Onion, Chinese Doughnuts\nMilano/Varzi/Genoa Salami/Bresoala/Coppa/Clothbound Cheddar/Roquefort/Parmesan Reggiano/Brie/ / Honey / Banana Bread / Carrot Bread / Apricots, Pears, Kumquats, Cranberries\nCinnamon Sugar Doughnut / Sprinkled Doughnut\nCrawfish Broil / King Crab / Green Lip Mussels / Shrimp\nHam, Cheese Croissant / Red Velvet Pancakes with Fruit Compote and Cream Cheese Frosting / Breakfast Burrito\nYellow Curry / Crispy Spicy Cod / Kung Pao Chicken\nButtermilk Biscuit / Honey Glazed Slab Bacon / Hickory Bacon / Turkey Bacon / Pork Link / Sweet Potato Tots\nCheese Pizza / Pepperoni Pizza\nMolten Chocolate Cake / White Chocolate and Cherry Bread Pudding / Berry Cobbler\nBear Claw / Maple Pecan Roll / Blueberry Danish / Pecan Sticky Bun\nVanilla Fleur de Sel Gelato, Salty Caramel, Candied Almonds / French Toast Gelato\nRed Velvet Yuzu Whoopie Pie / Carrot Cake with Pineapple Compote / Milk Chocolate Cream Puff\nBeef Rib / Smoked Brisket / Summer Risotto / Truffled Mushroom Flat Bread\nPineapple Tofu / Chocolate Decadence / Strawberry Cheesecake / Chocolate Oreo Mousse / Individual Apple Pie Tart\nReferred to as a “crown jewel” by its new executive chef and purporting a “feast for the Gods” a visit to Caesars’ Bacchanal Buffet comes with certain self-appointed expectations and although prices have crept upward since the sprawling space opened to the public I can only say that my $47.50 Saturday Brunch, complete with bottomless champagne, was worth every cent. Grand in both scope and spectacle with ornate glass, open floorplans, and plush seating complimented by a staff of over twelve-dozen overseeing preparation, service, and customer needs my arrival at Bacchanal shortly preceded its 8am opening and greeted first by a cheerful cashier, then by assistant manager Stephanie, my experience commenced; the subsequent three hours adrift in 70+ of the buffet’s offerings and a sea of smiles emanating from each employee and nearly every patron. Divided into several sections with many offering cooked-to-order options including crepes and omelets it was Asian that my meal began and with fresh steamer baskets just opened the dim sum excelled – a small quibble in the thick-skinned har gow more than compensated by bao, duck and pork as good as that at Jasmine plus full-service congee complete with century egg, not to mention Sin City’s best Egg Custard Tart later discovered at the dessert island. Moving next to things more “American,” one is well advised to monitor for items fresh from the kitchen as both the crunchy waffles and well seasoned chicken proved superlative while later tastes of waffle fries and tots fell flat – a fresh buttermilk biscuit, hot seafood preparations, and sliced meats including smoky beef ribs with caramelized crunch all showing far better. At times a touch liberal in salt with Kung Pao Chicken and Risotto suffering the most, Bacchanal again shines in selections of shellfish, cheese, and charcuterie but with much eating to do and such things widely available elsewhere it was thoroughly in my sweet tooth that I indulged and although I passed up a few cookies plus a duo of sorbet suffice it to say that I nearly ran the gamut; cakes, doughnuts, pies, tarts, and more all justifying the calories with the aforementioned egg custard, pecan pie, cream puff, carrot cake, and citrus ‘tiramisu’ all warranting special mention along with the lovely pastry team who jovially tended to baking, saucing, arranging, and making crepes at a pace seldom to lull.\nFOUR AND A HALF STARS: Slightly more expensive than Wicked Spoon but making up the difference in complimentary champagne there are things to love about both of Las Vegas’ premier all-you-can-eat experiences yet aside from a more expansive gelato case and my predilection to The Cosmopolitan’s soundtrack I’d be hard-pressed to ever recommend it over Bacchanal. Obviously limited by the constraints intrinsic to feeding anywhere from 2500 to 4500 persons in a given day yet defying the odds through a combination of remarkable customer service and striking attention to detail I’m happy to say that Bacchanal lives up to the liberally applied superlatives and although “Gods” may require something slightly more refined I’m almost positive they won’t find it in such a format for less than $50, especially on Las Vegas Boulevard.\nRECOMMENDED: Roasted Duck, Crispy Spicy Cod, Chicken and Waffles, Lobster Biscuits and Gravy, Egg Custard Tart, Beef Rib, Congee, Pecan Pie, Cream Puff, Carrot Cake, Padan Tiramisu.\nAVOID: Risotto, Kung Pao Chicken, Bear Claw, Breakfast Burrito, anything that looks as though it has been sitting longer than a half-hour.\nTIP: Early arrival is recommended as waits stretch past an hour after 9:30am, though a ticketing system that dispenses return-time ‘reservations’ helps to mitigate a true ‘line.’ Fans of specific items would be best served to call in advance as new items frequently displace older ones and the menu undergoes wholesale change seasonally, four times a year.\nWHAT THE STARS MEAN: 5 World Class, 4 Excellent, 3 Good, 2 Fair, 1 Poor"} +{"text": "ry || isUpdatingEvalOutput || isUpdatingKldOutput || isUpdatingFormatterTestOutput) && !p.ActAsSuperuser() {\n\t\treturn nil, fwerror.New(gpb.Code_PERMISSION_DENIED, \"only superusers can update test fields\")\n\t}\n\n\tvar dbdsv database.DeploymentShapeVersion\n\terr := dbdsv.PopulateFromName(s.DB(ctx), r.DeploymentShapeVersion.Name)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error getting deployment shape version: %w\", err)\n\t}\n\n\t// Merge dbds into r.DeploymentShapeVersion.\n\terr = aip.MergeProtos(r.UpdateMask, dbdsv.ToProto(), r.DeploymentShapeVersion)\n\tif err != nil {\n\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"`update` request must specify fields to be updated\")\n\t}\n\n\t// Guarantee that following constraints for public versions are met\n\tif r.DeploymentShapeVersion.Public {\n\t\t// 1) Must belong to fireworks account\n\t\tif dbdsv.AccountId != constants.FireworksAccountId {\n\t\t\treturn nil, fwerror.New(gpb.Code_PERMISSION_DENIED, \"only deployment shape under fireworks account can be made public\")\n\t\t}\n\t\t// 2) Must have a specified preset_type in snapshot\n\t\tif dbdsv.Snapshot.PresetType == gpb.DeploymentShape_PRESET_TYPE_UNSPECIFIED {\n\t\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"public deployment shape versions must specify preset_type\")\n\t\t}\n\t\t// 3) Must be validated\n\t\tif !r.DeploymentShapeVersion.Validated {\n\t\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"public deployment shape versions must be validated\")\n\t\t}\n\t\t// 4) If public and latest_validated, enforce uniqueness for presets by exact base_model\n\t\t// and exact accelerator_type (e.g. B200 and B300 do not conflict).\n\t\tsn := r.DeploymentShapeVersion.Snapshot\n\t\tpreset := sn.PresetType\n\n\t\tvar conflict database.DeploymentShapeVersion\n\t\t// First, check for conflict on exact base_model (when provided)\n\t\tif strings.TrimSpace(sn.BaseModel) != \"\" {\n\t\t\texact := s.DB(ctx).\n\t\t\t\tWhere(&database.DeploymentShapeVersion{Public: true, LatestValidated: true}).\n\t\t\t\tWhere(\"\\\"Snapshot_BaseModel\\\" = ?\", sn.BaseModel).\n\t\t\t\tWhere(\"\\\"Snapshot_PresetType\\\" = ?\", int32(preset)).\n\t\t\t\tWhere(\"\\\"Snapshot_AcceleratorType\\\" = ?\", int32(sn.AcceleratorType)).\n\t\t\t\tNot(\"\\\"AccountId\\\" = ? AND \\\"DeploymentShapeId\\\" = ?\", dbdsv.AccountId, dbdsv.DeploymentShapeId)\n\t\t\terr := exact.First(&conflict).Error\n\t\t\tif err == nil {\n\t\t\t\treturn nil, fwerror.New(\n\t\t\t\t\tgpb.Code_INVALID_ARGUMENT,\n\t\t\t\t\t\"conflicting public latest-validated shape exists for preset_type %s with accelerator_type %s for the same base_model: %s\",\n\t\t\t\t\tpreset.String(),\n\t\t\t\t\tsn.AcceleratorType.String(),\n\t\t\t\t\tconflict.Name(),\n\t\t\t\t)\n\t\t\t}\n\t\t\tif !errors.Is(err, gorm.ErrRecordNotFound) {\n\t\t\t\treturn nil, fmt.Errorf(\"error checking for conflicting public shapes (exact base_model): %w\", err)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Auto-compute load_test_summary when load_test_output is updated,\n\t// unless the user is explicitly setting load_test_summary themselves\n\tif isUpdatingLoadTestOutput && !isUpdatingLoadTestSummary {\n\t\tpresetType := dbdsv.Snapshot.PresetType\n\t\t// Use the merged proto which has the load test output data\n\t\tloadTestSummary := buildLoadTestSummary(\n\t\t\tr.DeploymentShapeVersion.LoadTestOutput,\n\t\t\tpresetType,\n\t\t)\n\t\tr.DeploymentShapeVersion.LoadTestSummary = loadTestSummary\n\t}\n\n\tvar updates database.DeploymentShapeVersion\n\tupdates.FromProto(r.DeploymentShapeVersion)\n\n\t// Execute in transaction to ensure atomicity\n\terr = s.DB(ctx).Transaction(func(tx *gorm.DB) error {\n\t\t// Only select fields that are safe to write. JSON-serialized fields\n\t\t// (LoadTestInput, LoadTestOutput, EvalOutput, FormatterTestOutput,\n\t\t// LoadTestSummary, KldOutput) must only be included when explicitly requested,\n\t\t// because re-serializing a round-tripped nil/empty proto through GORM\n\t\t// can produce invalid JSON for Postgres (SQLSTATE 22P02).\n\t\tmutableFields := database.GetMutableFields(&gpb.DeploymentShapeVersion{})\n\n\t\tjsonFields := map[string]bool{\n\t\t\t\"LoadTestInput\": true,\n\t\t\t\"LoadTestOutput\": true,\n\t\t\t\"EvalOutput\": true,\n\t\t\t\"FormatterTestOutput\": true,\n\t\t\t\"LoadTestSummary\": true,\n\t\t\t\"KldOutput\": true,\n\t\t}\n\t\tfilteredFields := make([]string, 0, len(mutableFields))\n\t\tfor _, f := range mutableFields {\n\t\t\tif !jsonFields[f] {\n\t\t\t\tfilteredFields = append(filteredFields, f)\n\t\t\t}\n\t\t}\n\t\tmutableFields = filteredFields\n\n\t\tif isUpdatingLoadTestInput {\n\t\t\tmutableFields = append(mutableFields, \"LoadTestInput\")\n\t\t}\n\t\tif isUpdatingLoadTestOutput {\n\t\t\tmutableFields = append(mutableFields, \"LoadTestOutput\")\n\t\t\tif !isUpdatingLoadTestSummary {\n\t\t\t\tmutableFields = append(mutableFields, \"LoadTestSummary\")\n\t\t\t}\n\t\t}\n\t\tif isUpdatingLoadTestSummary {\n\t\t\tmutableFields = append(mutableFields, \"LoadTestSummary\")\n\t\t}\n\t\tif isUpdatingEvalOutput {\n\t\t\tmutableFields = append(mutableFields, \"EvalOutput\")\n\t\t}\n\t\tif isUpdatingKldOutput {\n\t\t\tmutableFields = append(mutableFields, \"KldOutput\")\n\t\t}\n\t\tif isUpdatingFormatterTestOutput {\n\t\t\tmutableFields = append(mutableFields, \"FormatterTestOutput\")\n\t\t}\n\t\t// Snapshot fields are OUTPUT_ONLY, so GetMutableFields never includes the"} +{"text": "By now, Boston Red Sox fans have come to grips with the fact that their team doesn't seem to be going anywhere this season. At 57-59, the Red Sox have been sunk by injuries, inconsistent performances and bafflingly bad starting pitching.\nBut even more surprising than the unpredictability of the Red Sox has been the consistency of the Baltimore Orioles. The team that everyone thought would fade away has not only stayed in the hunt, it's currently leading the American League wild-card race at 62-53, nine games over .500.\nThe Orioles, who host a three-game series against the Red Sox starting Tuesday, have a minus-49 run differential this season, which is the fourth-worst in the American League. The Red Sox, on the other hand, are at plus-41, which is tied for fourth-best in the league.\nHow is the disparity explained? It's simple. The Red Sox are a middling 12-14 in one-run games and just 2-6 in extra innings. The Orioles, meanwhile, have a major league-best 22-6 record in one-run games (including an 11-game win streak that began in June) and are a staggering 12-2 in extra innings. Of Baltimore's six wins against Boston this season, four have come in extra innings.\n\"From what I understand, this team has some people scratching their heads,\" Orioles manager Buck Showalter told The Associated Press.\nThe same observers who expect the Red Sox to go on a run are waiting for the Orioles, who haven't made the playoffs in 14 years, to fall off. But ask yourself, which is more likely at this point? What former Red Sox GM Dan Duquette has built in Baltimore doesn't appear headed to a crash-and-burn ending.\nThe Red Sox, on the other hand\nIf they hope to make things at all interesting down the stretch, they have to start winning series. Their last series victory came against the Detroit Tigers almost two weeks ago. They followed that up with series losses to the Minnesota Twins, Texas Rangers and, most recently, a four-game split against the Indians in Cleveland.\nIn the first three games of the Cleveland series, Crawford was 0-for-8 but he exploded for three hits and three RBIs in Sunday's 14-1 win over the Indians. He has hit safely in 12 of his past 16 games.\nPedroia has hit safely in each of the past seven games, posting a .467 average (14-for-30) with 3 doubles, 4 RBIs and 8 runs scored in that stretch.\nGonzalez has been one of the league's best hitters since the All-Star break, especially in the month of August. He's hitting .422 (19-for-45) with 3 homers, 8 doubles and 18 RBIs in the last 12 games.\nThe fact remains, though, that the plight of the Red Sox will depend on starting pitching.\nJosh Beckett, who was hammered for eight runs over five innings in his most recent start, will get the ball Tuesday against the Orioles' Wei-Yin Chen (10-7, 3.79). Beckett has lost his last three starts against Baltimore, including a 2-1 loss on June 6, when he allowed only two runs on five hits in eight innings.\nBeckett has a 5-3 record with a 3.61 ERA in 12 career starts at Camden Yards. The right-hander pitches well there and has lasted at least six innings in 11 starts at Camden, including his past seven.\nChen posted his best outing of the season in that June 6 game at Fenway Park, allowing only one run on seven hits in seven innings. He is coming off his worst outing of the season, however, lasting just 4 2/3 innings while giving up seven runs to the Royals last week.\nOn Wednesday, Red Sox right-hander Aaron Cook (3-5, 4.70) will face Baltimore's Miguel Gonzalez (4-2, 3.42). Clay Buchholz (10-3, 4.24) will take the ball for Boston in the series finale on Thursday. He will face the Orioles' Chris Tillman (5-2, 3.40).\nBesides the struggles of the starting pitchers, who have the fifth-worst ERA in baseball, the Red Sox also are still battling injuries to key players.\nIt's unknown when David Ortiz, whose OPS at the time of his Achilles strain on July 17 (1.024) was the highest in the AL, will be ready to return. Every time it appears he is close to being activated, the injury does not respond well to his daily workouts and treatments, forcing a longer stay on the DL.\n\"It's not healing,\" Ortiz told reporters in Cleveland on Sunday. \"I thought I was getting there and it's still sore and I still can't run. I'm doing the best I can with it.\"\nThere was also news out of Cleveland on Sunday that Crawford's surgically repaired wrist has been bothering him. He's already dealing with the likelihood of Tommy John elbow surgery during the offseason, and now the wrist is an issue again.\nWho knows, maybe the Sox will knock the Orioles back a peg by sweeping the series in Baltimore and using that as a springboard to make a run of their own. Maybe the Sox will get some good news on the injury front and finally get some consistent starting pitching to build on. And maybe the overachieving Orioles' luck will finally run out. The odds say it's bound to happen.\nJust don't count on it."} +{"text": "\"This is a very good lineup that he just shut down,\" Yankees manager Joe Girardi said. \"Probably our best pitching performance of the year.\"\nKuroda allowed only four balls out of the infield and just one runner past first base. He held Texas hitless until Elvis Andrus' infield single leading off the seventh, outpitching All-Star lefty Matt Harrison in a crisp duel at Yankee Stadium.\nThe right-hander walked two and struck out five in his fourth career shutout and second this season. He threw 74 of 109 pitches for strikes.\n\"When you've got a great lineup like that,\" Kuroda said through a translator, \"you can't lose your focus until the end.\"\nThe surging Yankees won for the sixth time in seven games. They've taken the first two in a four-game set between the AL's top two teams.\n\"Man, these games are a lot of fun to play in,\" Swisher said.\nDerek Jeter singled off Harrison (13-7) with one out in the seventh to start the New York rally. Alexi Ogando came in to face Swisher, who had cracked a go-ahead grand slam off Ryan Dempster in the series opener Monday night for his first homer since July 19 -- a drought of 61 at-bats.\nThis time, Swisher fought his way back from an 0-2 count and drove a payoff pitch to the back of the Yankees' bullpen in right-center for his 16th home run.\n\"I was hitting on sound at that point. I mean, he's throwing 100 mph,\" Swisher said. \"That 3-2 count, I was just hoping he would throw another fastball.\"\nThe bubbly switch-hitter rounded the bases with a big grin, and New York was on its way to a seventh straight regular-season victory over the Rangers at home.\n\"I wanted to put velocity on Swisher, and he didn't beat him with it,\" Texas manager Ron Washington said.\nTeixeira then lined a shot into the right-field stands for his 23rd home run.\nSlowed by a lack of run support lately, Kuroda (11-8) won for the first time in four starts and lowered his ERA to 3.06. He gave up a clean single in the eighth to Michael Young, who was immediately erased on David Murphy's double-play grounder.\nKuroda then worked a 1-2-3 ninth to finish a gem that took 2 hours, 35 minutes.\n\"He's been really, really big for us and he could have a number of more wins. He's been the hard-luck guy for us this year,\" Girardi said. \"That was his 11th win for us. Realistically, he could have 15 or 16 at this juncture.\"\nKuroda has six scoreless outings of at least seven innings, most in the majors. He became the first Yankees pitcher with two shutouts in a season since Mike Mussina in 2005.\n\"I was doing everything I could to match him,\" Harrison said.\nFeaturing a sharp slider, Kuroda worked around two walks in the first three innings and handcuffed the hard-hitting Rangers, who began the night leading the majors in batting average (.278) and runs (580). They were shut out for only the third time all season.\nA no-hit buzz began to build in the sixth, when second baseman Robinson Cano made a backhand play on Mitch Moreland's one-out grounder. Kuroda then struck out Ian Kinsler and had retired 10 straight heading into the seventh.\nAndrus led off with a grounder toward the middle, forcing shortstop Jayson Nix to make a diving stop near the edge of the outfield grass. With little chance to get the speedy runner, Nix struggled to get the ball out of his glove and tried a desperation throw that was late and wide.\nBase hit, no question, and Kuroda received a warm round of applause from the crowd of 44,533. Andrus was stranded at third when Nelson Cruz grounded out.\n\"I had to regroup myself a little bit, but I (said), a complete game or a shutout is not really important here,\" Kuroda said. \"The most important thing is for the team to win, and that's what we accomplished today, and that's why I'm happy.\"\nYankees 3B Alex Rodriguez had X-rays on his broken left hand. Girardi said the hand is \"definitely better\" and the brace will come off, but Rodriguez isn't quite ready to swing a bat yet. He will begin doing strengthening exercises. ... With slugger Mike Napoli on the disabled list, Texas signed C Koyie Hill to a minor league contract. He was assigned to Triple-A Round Rock. ... Luis Martinez went 0-for-3 in his first start behind the plate for the Rangers. He was recalled from the minors Saturday when Napoli went on the DL. ... Jeter extended his hitting streak to 10 games. He started at DH, with Nix at shortstop. ... New York has eight shutouts, matching its total from last season. ... Kuroda has four career complete games, all shutouts."} +{"text": "m.\n\t\t// Allow the display name column to be written when explicitly requested.\n\t\tif isUpdatingDisplayName {\n\t\t\tmutableFields = append(mutableFields, \"Snapshot_DisplayName\")\n\t\t}\n\n\t\tresult := tx.Model(&dbdsv).Select(mutableFields).Updates(updates)\n\t\tif result.Error != nil {\n\t\t\treturn fmt.Errorf(\"error updating deployment shape version: %w\", result.Error)\n\t\t}\n\n\t\t// If this update involves validation, recalculate LatestValidated for the entire shape\n\t\tif slices.Contains(r.UpdateMask.Paths, \"validated\") {\n\t\t\terr := s.UpdateLatestValidatedForShape(tx, dbdsv.AccountId, dbdsv.DeploymentShapeId)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"error updating latest_validated flags: %w\", err)\n\t\t\t}\n\t\t}\n\n\t\treturn nil\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Refetch to get the updated LatestValidated status\n\tvar updatedDbdsv database.DeploymentShapeVersion\n\terr = updatedDbdsv.PopulateFromName(s.DB(ctx), r.DeploymentShapeVersion.Name)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error getting deployment shape version after update: %w\", err)\n\t}\n\n\tdsv := updatedDbdsv.ToProto()\n\ts.maybeHideDeploymentShapeAcceleratorCount(ctx, dsv.Snapshot, updatedDbdsv.AccountId)\n\tomitDeprecatedDeploymentShapeDraftModel(dsv)\n\treturn dsv, nil\n}\n\nfunc (s *Server) ListDeploymentShapeVersions(ctx context.Context, r *gpb.ListDeploymentShapeVersionsRequest) (*gpb.ListDeploymentShapeVersionsResponse, error) {\n\tif r.OrderBy == \"\" {\n\t\tr.OrderBy = \"create_time desc\"\n\t}\n\n\tp := auth.GetPrincipalFromCtx(ctx)\n\n\tvar dsn resourcename.DeploymentShapeName\n\tvar dbdsv []*database.DeploymentShapeVersion\n\tvar response gpb.ListDeploymentShapeVersionsResponse\n\terr := s.ListResources(ctx, r, &dsn, &database.DeploymentShapeVersion{}, &dbdsv, &response, deploymentshape.VisibleScope(p))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor i, dsv := range response.DeploymentShapeVersions {\n\t\ts.maybeHideDeploymentShapeAcceleratorCount(ctx, dsv.Snapshot, dbdsv[i].AccountId)\n\t\tomitDeprecatedDeploymentShapeDraftModel(dsv)\n\t}\n\n\treturn &response, nil\n}\n\nfunc (s *Server) MatchDeploymentShapeVersions(ctx context.Context, r *gpb.MatchDeploymentShapeVersionsRequest) (*gpb.ListDeploymentShapeVersionsResponse, error) {\n\tcreateReq := r.GetCreateDeploymentRequest()\n\tif createReq == nil {\n\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"create_deployment_request is required\")\n\t}\n\ttargetModel := createReq.GetDeployment().GetBaseModel()\n\tif targetModel == \"\" {\n\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"create_deployment_request.deployment.base_model is required\")\n\t}\n\n\tcriteria, targetIsEmbedding, err := s.deploymentShapeVersionMatchCriteria(ctx, targetModel)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tscopes := []database.Scope{\n\t\tdeploymentshape.VisibleScope(auth.GetPrincipalFromCtx(ctx)),\n\t\tdeploymentshape.LatestValidatedScope(),\n\t\tcriteria.ShapeVersionCompatScope(),\n\t}\n\n\tvar candidates []*database.DeploymentShapeVersion\n\tif err := s.DB(ctx).Scopes(scopes...).Order(`\"CreateTime\" DESC`).Find(&candidates).Error; err != nil {\n\t\treturn nil, fmt.Errorf(\"error matching deployment shape versions: %w\", err)\n\t}\n\n\tmatches := preferExactDeploymentShapeVersionMatches(\n\t\ts.filterDeploymentShapeVersionsByEmbeddingStatus(ctx, candidates, targetIsEmbedding),\n\t\ttargetModel,\n\t)\n\tresponse := &gpb.ListDeploymentShapeVersionsResponse{\n\t\tDeploymentShapeVersions: make([]*gpb.DeploymentShapeVersion, 0, len(matches)),\n\t\tTotalSize: int32(len(matches)),\n\t}\n\tfor _, dbdsv := range matches {\n\t\tdsv := dbdsv.ToProto()\n\t\ts.maybeHideDeploymentShapeAcceleratorCount(ctx, dsv.Snapshot, dbdsv.AccountId)\n\t\tomitDeprecatedDeploymentShapeDraftModel(dsv)\n\t\tresponse.DeploymentShapeVersions = append(response.DeploymentShapeVersions, dsv)\n\t}\n\treturn response, nil\n}\n\nfunc (s *Server) deploymentShapeVersionMatchCriteria(ctx context.Context, targetModel string) (shapeutil.ShapeMatchCriteria, bool, error) {\n\ttarget, err := s.accessibleModel(ctx, targetModel)\n\tif err != nil {\n\t\treturn shapeutil.ShapeMatchCriteria{}, false, fmt.Errorf(\"error getting model: %w\", err)\n\t}\n\n\tmodelType := \"\"\n\tparameterCount := int64(0)\n\tif target.GetBaseModelDetails() != nil && target.GetBaseModelDetails().GetModelType() != \"\" && target.GetBaseModelDetails().GetParameterCount() != 0 {\n\t\tmodelType = target.BaseModelDetails.ModelType\n\t\tparameterCount = target.BaseModelDetails.ParameterCount\n\t} else if target.Kind == gpb.Model_HF_PEFT_ADDON || target.Kind == gpb.Model_LIVE_MERGE {\n\t\tif target.GetPeftDetails() == nil || target.GetPeftDetails().GetBaseModel() == \"\" {\n\t\t\treturn shapeutil.ShapeMatchCriteria{}, false, fwerror.New(gpb.Code_FAILED_PRECONDITION, \"missing base model details\")\n\t\t}\n\t\tbase, err := s.accessibleModel(ctx, target.PeftDetails.BaseModel)\n\t\tif err != nil {\n\t\t\treturn shapeutil.ShapeMatchCriteria{}, false, fmt.Errorf(\"error getting base model: %w\", err)\n\t\t}\n\t\tif base.GetBaseModelDetails() == nil || base.GetBaseModelDetails().GetParameterCount() == 0 {\n\t\t\treturn shapeutil.ShapeMatchCriteria{}, false, fwerror.New(gpb.Code_FAILED_PRE"} +{"text": "CINCINNATI -- Reds owner Bob Castellini couldn't imagine Dusty Baker leaving.\nThe 63-year-old manager got a two-year contract extension Monday, giving him another chance to take Cincinnati deep into the playoffs. They've been there twice in the last three years, failing both times to get past the division series.\nBaker missed the Reds' NL Central title celebration this year because he was hospitalized with an irregular heartbeat and a mini-stroke. He returned and lost ace Johnny Cueto at the start of their series against San Francisco, which ended with the Giants rallying to win Game 5.\nThe team's first big question of the offseason was whether it would bring Baker back for another try.\n\"This is Dusty's team,\" Castellini said. \"These fellas are poised to go deeper and deeper in the season. To not bring Dusty back or not ask Dusty to come back was out of the question.\"\nBaker is feeling much better, and the Reds have the nucleus of their 97-win team returning next year, including one of the deepest pitching staffs in the major leagues. When the club offered another two-year deal -- same as the last one -- Baker quickly agreed.\n\"It's very much the same contract and very much the same thing for all of us up here: There's work left to be done,\" Baker said. \"I didn't want to leave on a note that we still have work to do.\n\"I don't want to leave in a situation where for the rest of my life I would have regretted not coming back with unfinished business. It would have left a real pain in my heart to feel the way I did at the end of the season.\"\nBaker did one of his best managing jobs this season, guiding the Reds through one major setback after another.\nThey lost closer Ryan Madson and their two setup relievers to injury during spring training. Baker eased left-hander Aroldis Chapman into the closer's role, a move that worked beautifully. Joey Votto tore cartilage in his left knee at midseason, costing the Reds their top hitter -- he was never the same, even after returning.\nBaker juggled his lineup and led the club on a 36-12 tear while Votto was recuperating. With the team on the verge of clinching, Baker ended up in a hospital during a road trip in Chicago. He missed 11 games and returned for the final regular-season series.\nThe Reds made it through the season with all five starters healthy, a trend that ended in the first inning of the playoffs. Ace Johnny Cueto pulled muscles in his right side on his eighth pitch in San Francisco, sidelining the 19-game winner and putting Cincinnati's pitching plans in disarray.\nBaker got creative with his pitching staff and the Reds won the first two games. With a chance to wrap it up back in Cincinnati, they had a passed ball and an error that let the Giants rally for a 10-inning win in Game 3. The Giants completed their comeback on Buster Posey's grand slam to take Game 5.\nThe Reds have won two division titles in the last three years -- their best showing since Sparky Anderson ran the Big Red Machine in the 1970s -- and have won 169 games over the last three years, their best such stretch in 30 years.\n\"We're moving in the right direction,\" general manager Walt Jocketty said. \"We're trying to build a team that will be in contention for a long time and win multiple world championships. One of the things we feel is very important is continuity.\n\"Every place I've been, we've always had continuity, whether it's the scouts, the front office, the minor league people. But most importantly, the guys that are leading the team on the field. If you look, the more successful operations and teams are the organizations that keep continuity in their leadership.\"\nBaker has presided over a revival in Cincinnati, which was rebuilding when he took over in 2008. The Reds were moving from a team reliant on homers -- an offense built around Ken Griffey Jr. and Adam Dunn -- to one that wins with pitching and defense.\nA young team reached the playoffs unexpectedly in 2010, then got swept by Philadelphia. Baker became one of only six managers to win division titles with three teams, along with Billy Martin, Joe Torre, Tony La Russa, Lou Piniella and Davey Johnson.\nCincinnati took a step back last year, when three starters got hurt or sick during spring training and several players had subpar seasons. They won 90 games again this year, the seventh time one of Baker's teams has reached the mark.\nThe overriding question was whether he'd be physically able to continue managing. He's had an irregular heartbeat since he was a teenager and high blood pressure for years. He's managing the problems with a change in diet.\n\"Really his health was never an issue with us and him,\" Jocketty said. \"The doctors in Chicago and Cincinnati gave him a clean bill of health and said he'd have a total recovery. We've seen a quick recovery. Look at him now -- he looks happier and stronger than he was even months ago.\"\nBaker has lost weight, much of it from fluid buildup.\n\"I can't wait for spring training,\" Baker said. \"I feel excellent. I feel I have most of my strength back.\""} +{"text": "As promised, the Penguicon 2012 Friends of Armed & Dangerous party location: room 370. Begins 9PM tonight.\nHacking on the C code of giflib after an absence of nearly two decades has been an interesting experience, a little like doing an archeological dig. And not one that could readily be had elsewhere; nowhere other than under Unix is code that old still genuinely useful under any but carefully sandboxed conditions. Our reward for getting enough things about API design right the first time, one might rightly say. But what’s most interesting is what has changed, and giflib provides almost ideal conditions for noticing the changes in practice that have become second nature to me while that code has stood still.\nReminder: The Armed & Dangerous party at Penguicon 2012 is now barely more than 72 hours away. Begins 9:00PM Friday night, room number to be announced on this blog and probably tweeted too.\nAll readers of this blog will be welcome. See the real faces behind the Gravatar icons! Pursue discussion threads in person! Refrain from actual physical violence! Wheeee….\nIn 1994 I handed off the maintainership of giflib, the open-source library used by pretty much everything in the universe that displays images for the single most widely used icon and image format on the World Wide Web, because patent issues made it unwise for the project to be run by someone in the U.S. Now, eighteen years later, Toshio Kuratomi (the hacker who took it over then) has asked me to resume the lead. I have accepted his request.\nOne of my commenters brought up John Robb, a former SpecOps pilot who has made a name for himself as a counter-terror theorist by writing about “open-source warfare”. Mutual acquaintances confirm what Robb’s own writings suggest, which is that his notions of open-source warfare are heavily influenced by what I have called the bazaar model of software development.\nWhen I learned this in 2004 I attempted to begin a conversation with John Robb by email. The remainder of this post is my email to him – to which, for whatever reason, he never replied. I have edited the one link reference into a live link.\nAbout six weeks ago I asked How would you like to help fix the Internet? It was an open invitation to help develop a cheap millisecond-precision time source for instrumented routers, so we can do delay tomography on the Internet and measure the bufferbloat problem.\nThe discussion thread on that post was lively, but eventually moved to a thumbgps project mailing list out of public view. I’m going to summarize what has gone on here because parts of it are very interesting in a “Wow…it really is the 21st century!” sort of way, and illustrate that there can be a lot of power in making simple connections.\nOne of the most important reasons not to tell ourselves pretty lies about unpleasant realities is so that we do not hand evil people the power of being the only ones who are willing to speak the truth.\nA brief update for those of you who were following the saga of our cat Sugar’s brush with death and remarkable rebound early last September.\nThe newest comScore figures, for February 2012, are out. Android has finally achieved majority market share in the U.S.. This is three months later than a linear fit to most of 2010 and 20111 predicted, but whatever happened in 4Q2011 to throw everybody off their previous long-term trend curves seems to be over. Android, in particular, is back to pulling about 2% of additional market share per month – actually, its growth rate seems to have increased a bit from before the glitch.\nI was right not to overinterpret Apple’s very slight loss of market share last month. The iPhone is back to very, very slowly gaining share. Apple fans should resist the temptation to overinterpret that, though, since the gain is within statistical noise level.\nRIM and Microsoft continue to go down in flames, losing not just market share but total userbase as well.\nWhat does it all mean?\nEven to a person as cynical and jaded as I have become about American politics, the brouhaha around the Trayvon Martin shooting is rather shocking. Usually, in past instances of even the most determined attempts to inflame racial hatred, there’s been at least a fig leaf of plausible deniability over the manipulation. Not this time. Not with MSNBC getting caught editing its presentation of the 911 tape to make it sound like the shooter uttered a racial slur. Not with Trayvon Martin’s photo obviously photoshopped to make him look younger, less threatening, and (ironically) more white.\nI’m not going to utter or argue for a conclusion about whether or not Zimmerman shot in self-defense. We don’t know that. Perhaps he was, in fact, motivated by race hatred. The facts of the shooting will have to come clearer before that can be judged. We have more than enough facts, though, to observe and indict the operation of the racial-grievance factory, and to point a finger squarely at those who are dishonestly battening on Trayvon Martin’s death."} +{"text": "CONDITION, \"missing base model details\")\n\t\t}\n\t\tparameterCount = base.BaseModelDetails.ParameterCount\n\t\tif target.GetPeftDetails().GetBaseModelType() != \"\" {\n\t\t\tmodelType = target.GetPeftDetails().GetBaseModelType()\n\t\t} else {\n\t\t\tmodelType = base.GetBaseModelDetails().GetModelType()\n\t\t}\n\t}\n\tif modelType == \"\" || parameterCount == 0 {\n\t\treturn shapeutil.ShapeMatchCriteria{}, false, fwerror.New(gpb.Code_FAILED_PRECONDITION, \"missing base model details\")\n\t}\n\treturn shapeutil.NewShapeMatchCriteria(target.GetName(), modelType, parameterCount), target.GetKind() == gpb.Model_EMBEDDING_MODEL, nil\n}\n\nfunc (s *Server) accessibleModel(ctx context.Context, name string) (*gpb.Model, error) {\n\tvar model database.Model\n\tif err := model.PopulateFromName(s.DB(ctx), name); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := modelpkg.ValidateModelReferenceAccess(ctx, &model); err != nil {\n\t\treturn nil, err\n\t}\n\treturn model.ToProto(), nil\n}\n\nfunc (s *Server) filterDeploymentShapeVersionsByEmbeddingStatus(ctx context.Context, shapes []*database.DeploymentShapeVersion, targetIsEmbedding bool) []*database.DeploymentShapeVersion {\n\tfiltered := make([]*database.DeploymentShapeVersion, 0, len(shapes))\n\tfor _, shape := range shapes {\n\t\tif shape.Snapshot == nil {\n\t\t\tcontinue\n\t\t}\n\t\tshapeBase, err := s.accessibleModel(ctx, shape.Snapshot.BaseModel)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\tif (shapeBase.GetKind() == gpb.Model_EMBEDDING_MODEL) == targetIsEmbedding {\n\t\t\tfiltered = append(filtered, shape)\n\t\t}\n\t}\n\treturn filtered\n}\n\nfunc preferExactDeploymentShapeVersionMatches(shapes []*database.DeploymentShapeVersion, targetModel string) []*database.DeploymentShapeVersion {\n\texact := make([]*database.DeploymentShapeVersion, 0, len(shapes))\n\tfor _, shape := range shapes {\n\t\tif shape.Snapshot == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif shape.Snapshot.BaseModel == targetModel {\n\t\t\texact = append(exact, shape)\n\t\t}\n\t}\n\tif len(exact) > 0 {\n\t\treturn exact\n\t}\n\treturn shapes\n}\n\nfunc omitDeprecatedDeploymentShapeDraftModel(dsv *gpb.DeploymentShapeVersion) {\n\tif dsv == nil || dsv.Snapshot == nil {\n\t\treturn\n\t}\n\tdsv.Snapshot.DraftModel = \"\"\n}\n\n// UpdateLatestValidatedForShape sets LatestValidated based on create_time desc for validated versions\nfunc (s *Server) UpdateLatestValidatedForShape(tx *gorm.DB, accountId, deploymentShapeId string) error {\n\t// Step 1: Clear the LatestValidated flag for this shape\n\tclearResult := tx.Model(&database.DeploymentShapeVersion{}).\n\t\tWhere(&database.DeploymentShapeVersion{\n\t\t\tDeploymentShapeVersionName: resourcename.DeploymentShapeVersionName{\n\t\t\t\tAccountId: accountId,\n\t\t\t\tDeploymentShapeId: deploymentShapeId,\n\t\t\t},\n\t\t\tValidated: true,\n\t\t\tLatestValidated: true,\n\t\t}).\n\t\tUpdate(\"LatestValidated\", false)\n\tif clearResult.Error != nil {\n\t\treturn clearResult.Error\n\t}\n\n\t// Step 2: Find the most recent validated version\n\tvar latestValidatedVersion database.DeploymentShapeVersion\n\tresult := tx.Where(&database.DeploymentShapeVersion{\n\t\tDeploymentShapeVersionName: resourcename.DeploymentShapeVersionName{\n\t\t\tAccountId: accountId,\n\t\t\tDeploymentShapeId: deploymentShapeId,\n\t\t},\n\t\tValidated: true,\n\t}).\n\t\tOrder(`\"CreateTime\" DESC`).\n\t\tFirst(&latestValidatedVersion)\n\n\tif result.Error != nil {\n\t\treturn result.Error\n\t}\n\n\t// Step 3: Set LatestValidated on the found version\n\tupdateResult := tx.Model(&latestValidatedVersion).Update(\"LatestValidated\", true)\n\treturn updateResult.Error\n}\n\n// getTargetTPSForPreset returns the target tokens per second for a given preset type.\n//\n// These values were chosen in January 2026 based on perceived UX standards:\n// - AGENTIC_CODING: 80-100 TPS for faster code output, allowing users to scan\n// generated code more quickly.\n// - CHAT, SUMMARIZATION, etc.: ~50 TPS for text output, which feels more\n// natural and readable for conversational/prose content.\nfunc getTargetTPSForPreset(pt gpb.DeploymentShape_PresetType) int32 {\n\tif pt == gpb.DeploymentShape_AGENTIC_CODING {\n\t\treturn 100\n\t}\n\treturn 50\n}\n\n// buildLoadTestSummary creates a LoadTestSummary for a use case shape from load test output.\n// It selects the performance metrics row that best matches the target TPS for the preset type.\n// Note: Token configuration (test_parameters) is available separately via load_test_input.\nfunc buildLoadTestSummary(output *gpb.LoadTestOutput, presetType gpb.DeploymentShape_PresetType) *gpb.LoadTestSummary {\n\tsummary := &gpb.LoadTestSummary{\n\t\tTargetTokensPerSecond: getTargetTPSForPreset(presetType),\n\t}\n\n\t// Select the best matching performance metrics row\n\tif output != nil && len(output.PerformanceMetrics) > 0 {\n\t\tsummary.Metrics = selectBestMetricsRow(output.PerformanceMetrics, summary.TargetTokensPerSecond)\n\t}\n\n\treturn summary\n}\n\n// selectBestMetricsRow selects the performance metrics row that best matches the target TPS.\n// TPS is calculated as 1000 / LptAverageMs (latency per token in milliseconds).\nfunc selectBestMetricsRow(metrics []*gpb.PerformanceMetrics, targetTPS int32) *gpb.PerformanceMetrics {\n\tif len(me"} +{"text": "The past few weeks should have convinced most of us that a knowledge of politics, and years watching the game, were now inadequate for a commentator like me to be able do his job. A grasp of psychiatry would be much more helpful, especially where the Labour Party is concerned. Politics used to be about ideology, but now it is about love and loyalty. Does Gordon love Tony? Does Tony love Gordon? If the answer to both parts is no, then how does it affect the delicate balance of the Labour high command?The trouble is that the chattering classes, the politicos, the wannabes and sundry groupies are no longer interested in governing the country. That requires knowledge, hard work and some understanding. Moreover, as anyone who has been engaged in the process will tell you, it is at times extremely tedious and unrewarding.\nPerhaps most important, since we technically live in a democracy, what on earth are the general public outside the G-Mex centre in Manchester, where Labour's conference is being held, supposed to make of all this? Now that we have heard from both of the alleged titans of New Labour, and they have both preened and postured in their respective corners, can we perhaps get back to the real business of politics, which is to govern the country?\nThat in part accounts for the attraction of the European Union. In performing its role as a gigantic law-making machine, it saves the politicos the trouble and tedium of having to legislate on the vast number of dry, technical issues that a mature democracy seems to think essential. Instead, they can concentrate on the \"real\" issues – such as how to get elected – without having to bother their pretty little heads about the real business of government.\nSo it is that politics has been reduced to all the gravitas of a soap opera, its \"stars\" competing for air-time with the next episode of Neighbours or Corrie, while – as one of our forum members so aptly puts it – our media cease to be political commentators and become theatre critics.\nNeedless to say, this infantilisation of politics is attractive, as much of the real business of government is indeed tedious. For instance, no amount of \"sexing-up\" is going to make the detailed scrutiny of a draft law interesting – the process of line-by-line analysis, changing commas into full stops, amending part-clauses and knocking out obscure sentences which, years later, could have a profound and damaging effect on a small (or even large) number of people.\nHow much easier it is to focus on the salacious gossip – who is slagging off whom; who is shagging who's wife (or boyfriend) – and all the clever-dick tittle-tattle that emanates from the political hothouse, populated by second-raters distinguished only by having intellects in inverse proportion to the size of their egos.\nBut, while this is all good \"entertainment\", it is also the death of good government. When the elections become beauty contests rather than sober assessments of the performance of governments, politicians will play to the gallery rather than get down to the nitty-gritty of good administration.\nAnd as long as the media fritters away its time and power on giving these buffoons space and airtime, instead of using their skills to make the dull interesting, and thus inform rather than titillate the population, the politicians will continue to value acting skills and \"presentation\" over substance.\nIt is here that the antidote is the internet – a superb medium for conveying information and a portal through which the mass of detail we need to know can be accessed. Never has participating in the democratic process been easier. But, unfortunately, the internet is equally capable of becoming a vehicle for accessing the same, low-grade titillation and dross that so gratifies its authors and entertains the masses.\nThe trouble is that being a grown-up in a complex and increasingly dangerous world requires a sense of responsibility – a realisation that being a citizen of a democracy requires more than self-gratification and the right to 24/7 wall-to-wall entertainment. It requires taking the time out to explore and understand the issues, to complain long and loud when we are misinformed, misled and badly governed. In other words, being grown-up requires that we behave like adults.\nBut, as the politicians and the media are failing the test, so is the internet – at least on this side of the Atlantic – where it too is dominated by the trivial, the salacious and the populist. And that must reflect the readership which finds it easier to dwell on the infantile than to assume the responsibilities of adult citizens.\nIf we behave like children, however, we can hardly complain if, increasingly, we are treated like children. If we see the exponential growth of the \"nanny state\" it can only be because, increasingly, we are incapable of, or unwilling to, manage our own affairs – or take personal responsibility for our own actions.\nThus, there is a hard nugget of truth in that phrase, \"we get the governments we deserve\". If we wish to dwell on the trivial, the jokey and the superficial - to the exclusion of all else - we will continue to suffer the ministrations of the dross that populate the political classes.\nYet, by the same measure, our salvation is in our own hands. Politicians are nothing if not populists and if they perceive that the public is in no mood for the low grade fare that they and the media insists on doling out, they will change. And the internet is one of the most powerful (but not the only) tools for sending such a signal. Abuse it and we only have ourselves to blame.\nSo, to paraphrase Heffer, we need get back to the real business of politics, which is to govern the country. Boring, at times it might be but hey! Who ever said it was easy being a grown-up?"} +{"text": "It's a routine that makes the days fly by. 5:30am wake up to do the weather, chop would, prep breakfast and lunch, guide's meetings, help guests with gear issues, and finally get out the door to ski at 8:30. That's when the day gets simpler, lodge maintenance fades into the background, and the purity of one step forward at a time and snow assessment take hold. Your skis grant you the freedom to escape from the grind, whether you are a guest on holiday or a guide/owner/operator for a day at work. We all lose ourselves in the moment of striding uphill and flying downhill, from valley to mountain top and back again. Smooth and fast we slide back to the lodge, the tasks take hold for me again, with a mirror image of the morning routine, but its great to watch the guests stay in that zone, melting away in the sauna, replenishing the burned calories and continuing with the simple life.\nBut then my world decided to change. Just when you are hitting your stride, sometimes the world has a different path for you to follow. I had just finished a big week of guiding, with a group of guests, we averaged between 8 and 9 thousand feet of skiing a day, a few people squeaking in 50 grand for their week. 6 weeks after having surgery I was worried if I would pull it off, but hard and tiring as it was, it was also rewarding, considering as well that we had uncharacteristically bad snow for a bunch of days from an abnormal wind event that seemed to jack every bit of open snow in British Columbia. The next group came in and a few days later so did the snow. We settled in to the 'normal' 5 to 6 grand of skiing per day, which is plenty by my standards, and with 30cms of fresh snow, it felt like a new world out there. So I was skiing like it was bottomless Kootenay cold smoke, but then I hit bottom. Or at least started my journey to the bottom.\nIn my typical, 'I want to ski to inspire' fast and fun style, I found the wind jacked snow just below the surface, and my left ski decided to auger in and go a little to the right while my body kept going straight and maybe a little to the left. Then I heard the 'pop' you hear about and fear as a skier/athlete/guide. I instantly knew something was wrong. As is human instinct I tried to get up and walk it off, but boom, I was right back on the ground, my left leg no't working right. Deep in the backcountry, I looked at my watch and started to make decisions. I still was with a group of 12 guests and 2 other guides, so support was there, but that was the rest of everyone's day, dealing with me. A few super labored zig zag turns and collapses and I made it off of avalanche terrain and met up with the group, almost blacking out with pain and adrenaline. With cloud building and a quality rescue sled made by Kootenay Rescue Bubble, Jasmin, my super tough wife and co-guide, made the right call to drag me out. So we immobilized my leg, put me in the sled and spent the next 3 hours getting me back to the lodge. It took 100% from everyone to make it happen, team work at its finest but for sure Andrew (the other guide) and Jasmin worked the hardest.\nGetting back to my cabin at the lodge is when it all broke down. Waves of emotion crested over me as I knew my path had changed. There will be no freedom in the hills for many months now, my endorphin source taken away. A new uphill battle through the 'non-life threatening' public health care system was setting up to be my fight. I wasn't scared or upset at hurting my self, and looking at surgery and the road to recovery, I was more upset about letting down my wife, having doubled her workload at our lodge with me out of commission, scared at losing my freedom and becoming a prisoner of immobility, scared of losing touch with my wife and hound as I knew I wouldn't be able to be up at the lodge for the rest of the winter as I battled down the road of recovery. The preciousness of the special and unique life we have seemed all to real.\nWe all adapt and change though, and we settle in to our new roles as best we can. Or maybe we just cope. Again and again, folks like to talk about the 'reasons' behind things happening. I don't think things happen for a reason. I think we are all in control of our destinies. I think the 'silver lining' is something we find on our own and decide to focus on. One door closing just makes you realize that there are other doors to open and explore. I found my path and partner in life and I am going to fight like hell to get back on it and with her stronger than before. Eventually I will get in to surgery to repair my ACL and meniscus and my bruised up bones will heal. Maybe I will learn some cool things along the way, or maybe I will realize that in my mid 30s I need to stop breezing through my physical life and start making my body work harder for it and training. Either way my eyes are open to what needs to get done and now I need to do it!\nSo you won't find the deepest faceshot, most majestic views or insane physical feats coming from me for a few months. You will find me filling you in on the slow road to recovery that I know many of you have traveled down, with the small victories and defeats of the daily struggle. I know a ton of you can relate, and my strength comes from standing on the shoulders of so many of you that have hurt yourselves before me. In the end, no one died, and I should be charging in the hills again before I know it, so really its just a flat tire, with a busted spare, and a long walk to the nearest service station for help. And when I get the tire fixed I can continue down my wonderful path in life!\nHere's a quick vid showing you the life I am now missing...\nPS...thanks to all the friends and family that have showed their support, much appreciated!"} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/lroworker/activities/rlor_trainer_activity.go. Lines: 1228.\n\npackage activities\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"net/url\"\n\t\"path\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/database\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/gcp\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/lros\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/lros/rlor_trainer_job\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/lroworker/common\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/lroworker/common/trainingerrors\"\n\tmodelpkg \"github.com/fw-ai/fireworks/control_plane/pkg/model\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/statemachine\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/trainingmessages\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/utils\"\n\tdwpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/deployment_watcher\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\tresourcename \"github.com/fw-ai/fireworks/go/resource_name\"\n\t\"github.com/google/uuid\"\n\t\"go.temporal.io/sdk/activity\"\n\tsdklog \"go.temporal.io/sdk/log\"\n\t\"go.temporal.io/sdk/temporal\"\n\t\"gorm.io/gorm\"\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapierrors \"k8s.io/apimachinery/pkg/api/errors\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n\t\"k8s.io/client-go/kubernetes\"\n)\n\n// rlorProfileBucket is the GCS bucket for RLOR profiling traces and memory snapshots.\nconst rlorProfileBucket = \"fireworks-fine-tuning-profiles\"\n\ntype RlorTrainerActivity struct {\n\tdb *gorm.DB\n\truntime statemachine.Runtime\n\tcontrolPlaneURL string\n\tcontrolPlaneGatewaySecret string\n}\n\nfunc NewRlorTrainerActivity(db *gorm.DB, runtime statemachine.Runtime) *RlorTrainerActivity {\n\treturn &RlorTrainerActivity{db: db, runtime: runtime}\n}\n\nfunc ConfigureRlorTrainerActivityControlPlaneResolver(a *RlorTrainerActivity, controlPlaneURL, gatewaySecret string) *RlorTrainerActivity {\n\ta.controlPlaneURL = strings.TrimSpace(controlPlaneURL)\n\ta.controlPlaneGatewaySecret = strings.TrimSpace(gatewaySecret)\n\treturn a\n}\n\n// updateRFTJobStatusMessage is a helper to update the RFT job's status message\n// This is used to surface the \"Queued - Waiting for capacity\" state to the API/UI\nfunc (a *RlorTrainerActivity) updateRFTJobStatusMessage(ctx context.Context, accountId, jobId, statusMessage string) {\n\tlogger := activity.GetLogger(ctx)\n\tif jobId == \"\" {\n\t\treturn // Skip if no job ID (e.g., standalone RLOR jobs)\n\t}\n\n\tvar rftJob database.ReinforcementFineTuningJob\n\terr := rftJob.Populate(a.db, resourcename.NewReinforcementFineTuningJobName(accountId, jobId))\n\tif err != nil {\n\t\tlogger.Warn(\"Failed to populate RFT job for status update\", \"error\", err)\n\t\treturn\n\t}\n\n\trftJob.Status.Message = statusMessage\n\tif err := a.db.Save(&rftJob).Error; err != nil {\n\t\tlogger.Warn(\"Failed to update RFT job status message\", \"error\", err)\n\t} else {\n\t\tlogger.Info(\"Updated RFT job status message\", \"jobId\", jobId, \"message\", statusMessage)\n\t}\n}\n\n// --------\n// RlorTrainer activity definitions\n// --------\n\ntype RunCreateRlorK8sInput struct {\n\tAccountId string\n\tDatasetGcsUri string\n\tEvaluationDataset string\n\tJobId string\n\tRewardWeightsSetup []string\n\tReferenceModelAddon string\n\tTrainingConfig *gpb.BaseTrainingConfig\n\tLossConfig *gpb.ReinforcementLearningLossConfig\n\tRlorJobType gpb.RlorJobType\n\tDebug bool\n\tEnableKeepAlive bool\n\tJobTimeout *time.Duration\n\tWandbConfig *gpb.WandbConfig\n\tTrainingImageTag string\n\tTrainingNodeCount int32\n\tRolloutDeploymentName string // corresponding rollout deployment name for trainer to tigger hot reload ledger\n\tCreatedBy string\n\tHotLoadBucketUrl string // hot load bucket path to pass to trainer\n\n\t// Existing file paths from DB (for job resumption)\n\t// If set, these will be reused instead of generating new ones\n\tExistingJobStatusFile string\n\tExistingJobBillingFile string\n\tExistingJobMetricsFile string\n\tExistingModelCheckpointDirectory string\n\tExistingDcpCheckpointDirectory string\n\n\t// TrainerLogsEnabled controls whether trainer stdout/stderr logs are collected.\n\tTrainerLogsEnabled bool\n\n\t// UseReservation, when true, asks the deployment_watcher to admit the\n\t// trainer against any active commercial reservation owned by the\n\t// caller's account that matches the requested accelerator. Threaded\n\t// into PlaceTrainerJobInput.UseReservation; see that field for\n\t// semantics.\n\tUseReservation bool\n}\n\ntype RunCreateRlorK8sOutput struct {\n\tK8sJobName string\n\tRegion gpb.Region\n\tJobStatusFile string\n\tJobBillingFile string\n\tJobMetricsFile string\n\tTrainerLogsFile string\n\tModelCheckpointD"} +{"text": "What Not To Do To Get My Ex Girlfriend Back?\"I want to get my ex girlfriend back, I need to save our relationship.” Perhaps this may be the idea in your head around this difficult time of your life.\nFirst, one must admit that your relationship is over. For now you cannot do anything to save it. So do not waste time wondering what you can do to save the relationship, because you cannot. What you should ask is: \"What can I to do to get my ex back that she returns to me?\"\nIt is impossible to get a woman forever. Bear in mind that any disruption is reversible, because there are still feelings involved, no matter how bad it ended. Therefore, you have to make sure that these feelings will surface again.\nHowever, many individuals are making the same mistakes while trying to get back with their ex. They are trying to get their ex very directly. In fact, if you want your ex back, do it in a very subtle way, not obvious way.\nNow, read carefully. If you want to get your ex girlfriend back, for your own good do not attempt any of these things. Do not try to talk to her about the causes that destroyed the relationship. Do not promise that you will have a positive change. Do not tell her that you recognize all your mistakes and you're willing to correct them.\nWell, you might be surprised because these things mentioned above are surely found everywhere. In addition, you may have read many articles about these things. Now note this again that these things are absolutely wrong that are usually done to get back to an ex.\nSo, how can I get my ex girlfriend back?Only one way, if you want to get your ex girlfriend back for good, She also must want to get back together with you.\nThis condition cannot occur spontaneously. You need to make it happen. Now you may wonder, \"how I can get my ex girlfriend if you do not talk to her, or I cannot explain anything.\" The answer is easy. You do the opposite of everything mentioned above.\nIf you want to get back a woman, you need not address the break up as a problem. Just accept the breakup, you want the best, give her a kiss on the cheek, and walk away slowly. Do not look back; just do not think of losing her forever.\nHowever, many individuals face problems in this step because they fear that the breakup is final. Therefore, decide not to do what was mentioned. Instead, try to talk to her, or even ask her to return. What happens next? The answer is very easy too. She no longer respects you anymore, and now you're less attractive than before. So you must do as described, you accept the breakup, you want the best, and walk away.\nIs this the only thing to get my ex girlfriend?Of course not, after this you need to be ready for the second step. And your next step is to disappear from her life. This is easy, but many men cannot do it.\nWhy you have to disappear from your life? Because you want to make her miss you, that's why. So, how could she miss you if you're still around, calling, sending emails and text messages?\nIf you do what is mentioned, then from now, she has to live her life without you. Also, when she does not know where you are or what you are doing, usually she imagine doing the worst, for example, you can be with another girl, or maybe trying to start a new relationship with a girl you just met. It is a fact that no woman wants her ex-boyfriend continues his life without her, even though it was she who decided to break up.\nTherefore, if you want to get your ex girlfriend back you need to know what to do. It is also important to have a step by step plan, so you know exactly what to do and when. You can make her miss you, or even love you again, following a comprehensive plan for success. When both of your get back together the new relationship will be stronger since she came close to losing you.\nGet Your Ex Girlfriend Back Fast - What's Next?I'm going to share a little \"secret resource\" now that can make your ex girlfriend want you back and win her over. I have only one request. Please don't abuse the methods I'm about to share with you. Once your girlfriend comes back to you, make sure to treat her right.\nEx2 System - Matt Huston claims to get your ex girlfriend come back crawling to you using his strong psychological tricks. He also tells you how to train your girlfriend so that you never get dumped again.\n>>>Click here to visit official Ex Squared System Website<<<"} +{"text": "Unreads for 6/23\nLove the show (as always). I wanted to get your opinion on a trade that I have pending. I’m in first place by a margin of 21 points in a 12 team 5 X 5 mixed league. Here’s the trade: I trade away Jason Giambi and Brian Fuentes, and I get back David Ortiz. I have 5 closers including Capps, Soria, Percival, Mike Gonzalez, and Fuentes, and I am looking for a second half hedge against Derrek Lee at 1B. I should also mention I got Giambi and Fuentes both from the waiver wire. Does this seem like a fair trade to you? Am I taking too much of a risk on Papi? I’m in Boston, so I’ve been hearing a lot of positive stuff about the wrist, but I don’t know if it’s just positive spin.\nBen in Boston\nIf it ain’t broken, don’t fix it! This situation, however, may be an exception to the rule. Although I can’t quite understand why you’re looking to make a trade while leading the league by 21 points, this deal is too good to pass up, giving you plenty of upside with relatively little risk. Now I’m assuming this league either uses a CI spot or there’s an open utility slot, allowing you to play both Ortiz and Lee, who’s quietly having a very solid year (.294-15-48). Under no circumstances do you want to lose Lee’s production!\nOrtiz is said to be making progress in his recovery, but he’s still a week away from even picking up a bat, so let’s figure it’ll take three weeks or so for Papi to return to action. Right now, three weeks seems like an awfully long time to wait, but if Ortiz comes back fully healthy, the wait will be worth it. Few players can carry fantasy teams the way Ortiz can when he’s in the midst of one of those hot streaks. And it’s not like he has an extensive injury history, having played in at least 149 games in each season from 2004 through 2007. Giambi, on the other hand, is coming off a bust of a season in which he played only 83 games and batted a laughable .236. While Jason’s gotten off to a great start (.271-17-42), I’m not convinced that he’ll put it all together from start to finish. Even with the health concerns surrounding Big Papi, the upgrade from Giambi to Ortiz is a significant one.\nWhat are you giving up in exchange for this upgrade? Not much. Don’t get me wrong, I’m a big fan of Brian Fuentes, but there’s a strong possibility he’ll be dealt to a contender before the July 31st deadline. In that case, Fuentes would likely be relegated to setup duties, thereby eliminating almost all of his fantasy value. Combine this with the fact that you already have 5 closers, go ahead and do the deal.\nI was wondering what you thought of this trade offer I received. I would get Mike Jacobs and Mike Bourne for CJ Wilson. I’m in an 11 team mixed 6 x 6 league (R, HR, RBI, SB, OBP SLG% X W, SV, K, ERA, WHIP, K/9). I have Soria, Mike Gonzalez, Brian Fuentes, Masa Kobayashi, and Hong-Chih Kuo as my other relievers (and Rafael Soriano on the DL). My other outfielders are Vlad, Pence, Swisher, Votto, Francoeur, and Milton Bradley (I also usually rotate one of these guys through my Util spot as well). My starting first baseman is Prince Fielder. So, do you guys like this trade for me? Wilson has been pitching poorly lately and I do need stolen bases and power, which Bourne and Jacobs could provide. Thanks guys, I love listening to you guys.\nI like this move for you. You’re right about Wilson’s recent struggles, as he has been touched up for one or two earned runs in three of his past five appearances. In fact, he’s been a risk for most of the season as he has given up one earned run in two other appearances and two or more earned runs in four other outings. He has a 4.88 ERA, 1.44 WHIP and just a 24/16 K/BB rate in 31 2/3 innings, so the talk that “Everyday” Eddie Guardado (184 career saves) could take over Wilson’s closer role has to be taken seriously.\nFrankly, we typically see many relievers take over closer roles every year as the season gets closer and closer to the “dog days” of summer. Some closers succumb to injury while others lose their jobs to poor performance. There are only a handful of closers in the bigs with a high amount of job security, so in a shallower league such as yours, you should be able to find potential saves on the waiver wire. You have a good candidate on your roster in Kobayashi, if incumbent closer Joe Borowski continues to get shelled in his relief appearances (he has given up two earned runs in two of his last four outings). If you stay apprised to closer situations around the league, Jake, you should be able to pick up a reliever here or there who can make up whatever saves you might lose with trading away Wilson. I recommend perusing the official team pages on MLB.com as a fantastic way to keep up with team news, including the states of teams’ bullpens.\nSwisher and Votto have gone through pronounced slumps recently, so I could see the value in having Jacobs (17 HRs, .529 SLG%) or Bourn (28 steals in 34 chances) at your utility spot, depending on whether you need power or speed. I wouldn’t get too rotation-happy, though, as your better players will tend to level out their stats if you let them play enough. But there is no doubt that the power/speed combo Jacobs and Bourn provide is more than valuable enough to part with Wilson, who is walking the plank in his closer role with the Rangers."} +{"text": "irectory string\n\tDcpCheckpointDirectory string // GCS path for DCP checkpoints (training resume with optimizer state)\n\tCreateTime time.Time\n\tHeadlessServiceName string\n\n\t// TrainerPlacementSubject + TrainerPlacementReservationID let the\n\t// workflow's defer/finally CleanupTrainerPlacement activity release\n\t// the schedule_reservation row. Empty when the legacy AutoPlacement\n\t// fallback was used (no row to delete).\n\tTrainerPlacementSubject string\n\tTrainerPlacementReservationID string\n}\n\n// rlorTrainerPlacementKind translates the inputs of RunCreateRlorK8s into the\n// proto-level TrainerPlacementSubject.Kind so per-kind feature flags and\n// metrics resolve correctly.\n//\n// RFT keep-alive RLOR (a long-lived idle trainer attached to an RFT job) is\n// distinguished from a regular RLOR/DPO trainer by the EnableKeepAlive flag.\nfunc rlorTrainerPlacementKind(rlorJobType gpb.RlorJobType, enableKeepAlive bool) dwpb.TrainerPlacementSubject_Kind {\n\tif enableKeepAlive {\n\t\treturn dwpb.TrainerPlacementSubject_RFT_KEEP_ALIVE\n\t}\n\tswitch rlorJobType {\n\tcase gpb.RlorJobType_DPO, gpb.RlorJobType_ORPO:\n\t\treturn dwpb.TrainerPlacementSubject_DPO\n\tdefault:\n\t\treturn dwpb.TrainerPlacementSubject_RLOR\n\t}\n}\n\n// Creates the RLOR Batchv1.Job\n// Will be used in the CreateK8s step to launch and wait for the job\nfunc (a *RlorTrainerActivity) RunCreateRlorK8s(ctx context.Context, input RunCreateRlorK8sInput) (*RunCreateRlorK8sOutput, error) {\n\tlogger := sdklog.With(activity.GetLogger(ctx), \"accountId\", input.AccountId, \"jobId\", input.JobId)\n\tlogger.Info(\"Creating Rlor K8s job\", \"namePrefix\", input.JobId)\n\n\tvar createdModel database.Model\n\n\t// Reuse existing file paths if ALL are provided (for job resumption), otherwise generate new ones\n\t// All four paths must be non-empty to avoid passing invalid empty GCS URIs to the job builder\n\tvar jobStatusFile, jobBillingFile, jobMetricsFile, modelCheckpointDirectory, dcpCheckpointDirectory string\n\tif input.ExistingJobStatusFile != \"\" &&\n\t\tinput.ExistingJobBillingFile != \"\" &&\n\t\tinput.ExistingJobMetricsFile != \"\" &&\n\t\tinput.ExistingModelCheckpointDirectory != \"\" {\n\t\tjobStatusFile = input.ExistingJobStatusFile\n\t\tjobBillingFile = input.ExistingJobBillingFile\n\t\tjobMetricsFile = input.ExistingJobMetricsFile\n\t\tmodelCheckpointDirectory = input.ExistingModelCheckpointDirectory\n\t\tdcpCheckpointDirectory = input.ExistingDcpCheckpointDirectory\n\t\tlogger.Info(\"Reusing existing file paths for job resumption\",\n\t\t\t\"statusFile\", jobStatusFile,\n\t\t\t\"billingFile\", jobBillingFile,\n\t\t\t\"metricsFile\", jobMetricsFile,\n\t\t\t\"checkpointDir\", modelCheckpointDirectory,\n\t\t\t\"dcpCheckpointDir\", dcpCheckpointDirectory)\n\t} else {\n\t\tuniqueFileID := uuid.New().String()\n\t\tjobStatusFile = fmt.Sprintf(\"gs://%s/rlor-%s-%s/status-%s\",\n\t\t\tJobStatusBucket, input.AccountId, input.JobId, uniqueFileID)\n\t\tjobBillingFile = fmt.Sprintf(\"gs://%s/rlor-%s-%s/billing-%s\",\n\t\t\tJobMetadataBucket, input.AccountId, input.JobId, uniqueFileID)\n\t\tjobMetricsFile = fmt.Sprintf(\"gs://%s/rlor-%s-%s/metrics.jsonl\",\n\t\t\tJobMetadataBucket, input.AccountId, input.JobId)\n\t}\n\n\t// Generate trainer logs file path if enabled (stable path without UUID for streaming)\n\tvar trainerLogsFile string\n\tif input.TrainerLogsEnabled {\n\t\t// Keep-alive RLOR is currently only used by RFT. In this mode, there is no per-RLOR-job log\n\t\t// to append, so we have the keep-alive trainer write directly into the RFT log file.\n\t\tif input.EnableKeepAlive && input.RlorJobType == gpb.RlorJobType_UNSPECIFIED {\n\t\t\ttrainerLogsFile = fmt.Sprintf(\"gs://%s/trainer-logs/%s/rft/%s/logs.txt\",\n\t\t\t\tJobMetadataBucket, input.AccountId, input.JobId)\n\t\t} else {\n\t\t\tjobType := \"rlor\"\n\t\t\tif input.RlorJobType == gpb.RlorJobType_DPO || input.RlorJobType == gpb.RlorJobType_ORPO {\n\t\t\t\tjobType = \"dpo\"\n\t\t\t}\n\t\t\ttrainerLogsFile = fmt.Sprintf(\"gs://%s/trainer-logs/%s/%s/%s/logs.txt\",\n\t\t\t\tJobMetadataBucket, input.AccountId, jobType, input.JobId)\n\t\t}\n\t}\n\n\ttrainingConfig := input.TrainingConfig\n\n\tlogger.Info(\"Using training config\", input.TrainingConfig)\n\n\t// Trainer placement: routes through the global scheduler when the\n\t// per-kind feature flag is on, falls back to legacy AutoPlacement.\n\t// AcceleratorCount must be the total physical-GPU count across all\n\t// training replicas (#24105) — the scheduler reserves whole nodes.\n\tplacementKind := rlorTrainerPlacementKind(input.RlorJobType, input.EnableKeepAlive)\n\tsubjectName := resourcename.NewRlorTrainerJobName(input.AccountId, input.JobId).String()\n\tplacement, autoPlacementErr := lros.PlaceTrainerJob(ctx, a.runtime, lros.PlaceTrainerJobInput{\n\t\tSubjectName: subjectName,\n\t\tKind: placementKind,\n\t\tJobID: input.JobId,\n\t\tRegion: input.TrainingConfig.Region,\n\t\tAcceleratorType: input.TrainingConfig.AcceleratorType,\n\t\tAcceleratorCount: common.TotalTrainingAcceleratorCount(input.TrainingConfig, input.TrainingNodeCount),\n\t\tLegacyRegionConfig: &utils.RLORRegionConfig,\n\t\tTaintExclusionMode: dwpb.TaintExclusionMode_PILOT,"} +{"text": "The Average Draft Position is one of the most finickiest lists in regards to how we can use it to our advantage for our own fantasy drafts. Once the NFL Draft is over, we usually get a good gauge as to which players are going to skyrocket and which ones are going to sink like a stone. The draft isn't the only thing that pushes a player's ADP up-or-down the ladder. Those free agents who have yet to find a home are also a thorn in the sides of many owners who are hoping certain players have a breakout season. Or, at the very least, improve upon the previous year. If you haven't drafted yet, then the most latest ADP list will give you the most help. But for those of us who used it to select dynasty players or players in a keeper league earlier this year, the sudden changes are frustrating because, simply, we kept a player who has lost a lot of value.\nThis topic obviously doesn't pertain to the likes of Aaron Rodgers, Adrian Peterson or Calvin Johnson. The only way those guys fall is if they are out for the entire season due to an injury. But here is a list of five players who have seen their ADP fall over the past several months due to the draft, free agency, productivity in OTAs and other variables.\nMany thanks to My Fantasy League for the use of their ADP list.\nChargers QB Philip Rivers - Average Draft Position 157.22\nMaybe Rivers was never considered one of the elite QB1s in the fantasy football world, but his value was much higher several years ago than it is now. Over the past three seasons, Rivers has gone from a stat-line of 4710/30/13 in 2010 to 3606/26/15 in 2012, with his overall numbers getting gradually worse every season. This year isn't going to be much easier with an offensive line that looks to be one of the worst in the league and a running back who looks like he will never live up to the hype in Ryan Mathews. Rivers is bordering on the brink of being an in-season free agent pick up.\nColts RB Vick Ballard - Average Draft Position 83.00\nRemember that free-agency thorn I was discussing in the intro? That's exactly what is happening to Ballard after the team went out and signed former Giants RB Ahmad Bradshaw. Ballard wasn't going to tear the roof off this season, but he was a starter on an up-and-coming Colts team. I even listed him as one of my Breakout Candidates. Now that Bradshaw is in town, Ballard is now nothing more than a handcuff and a desperation flex option unless Bradshaw gets hurt. And given his track record for foot injuries, Ballard could actually come in handy. Bradshaw's ADP is currently 98.65, but that will change as we get closer to the regular season.\nPanthers RB Jonathan Stewart - Average Draft Position 84.08\nStewart's value started dwindling when the Panthers decided to keep DeAngelo Williams for 2013 instead of cutting him in the offseason. The coaching staff would love nothing more than to make Stewart the focal point of the backfield, but he's simply too injury prone. He only played in nine games in 2012. And now that he's currently questionable for the start of training camp due to injured ankles, Stewart should see his ADP continue to drop heading into August. If Stewart surprisingly winds up ready for Week One, he's nothing more than a flex option at best considering his history. Expect to see Stewart drop when I fix my running back rankings in the next few weeks.\nEagles WR Jeremy Maclin - Average Draft Position 82.62\nMaclin came into the NFL with a lot of hype and was considered by many to emerge as the Eagles' new No. 1 receiver over DeSean Jackson. Five years later and Maclin is not only finding his fantasy value falling, but there is a good chance he might not be an Eagle beyond 2013 if he can't impress. With Chip Kelly not married to anyone on the Eagles offense in the post Andy Reid era, Maclin finds himself with a lot of competition for targets from new guys like Arrelious Benn and James Casey. Maclin was usually good as a WR3 with upside in past years, but it's looking like he will wind up as nothing more than a WR4 with a low ceiling in 2013.\nChargers WR Malcom Floyd - Average Draft Position 204.81\nOne of the biggest plummets so far. As a Floyd owner in a dynasty league, I'm going to miss what's left of the value he gave me in 2012. Even though there wasn't very much. He may have had a season high 56 receptions, but his season as a whole wasn't anything to write home about. There was still some hope early in the offseason that Floyd might continue to be somewhat of a flex option, but that dream is long gone. Enter 2013, and Floyd is pretty much the lowest of the low in terms of his average draft position. A new coaching staff, an iffy quarterback (see above) and an emerging Vincent Brown are all the ingredients for a lackluster season on the horizon. His ADP should continue to tumble, along with everyone else on the Chargers offense."} +{"text": "Sign in Not A Member? Join now!\nFind A Grave - University of Virginia Cemetery and Columbarium\nGarrett, George b. June 11, 1929 d. May 26, 2008 Author, Screenwriter. He is best known for the \"Elizabethan Trilogy\", which includes the novels \"Death of the Fox\" (1971), \"The Succession\" (1983) and \"Entered from the Sun\" (1990). He was born George Palmer Garrett, Jr. in Orlando Florida and was educated at Princeton University. After serving in the United States Army, he wrote his first novel \"The Finished Man\" in 1959. During the 1960s, Garrett had script credits for the films \"The Young Lovers\" (1964), \"The Playground\" (1965) and \"...[Read More] (Bio by: C.S.) University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA\nLannigan, Henry Hayden b. 1863 d. December 24, 1930 Basketball Coach. Member of the College Basketball Hall of Fame. Known during his time as \"the life and spirit of University of Virginia Athletics,\" During his early years he excelled in track and field, defeated the Swedish fencing champion, and held for several year the world shot-put record. \"Pop\" Lannigan came to the University of Virginia in 1905 as associate director of athletics and remained an integral part of University sports until 1929. During his tenure he improved the track program...[Read More] (Bio by: S.G. Thompson) University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA\nMalone, Dr. Dumas b. January 10, 1892 d. December 27, 1986 Historian, Literary Editor. A distinguished professor at three major universities, he is considered by most to have been the greatest expert ever on the life and work of Thomas Jefferson. Raised in rural Georgia, he received his undergraduate degree at Emory University in 1910 and a a theology degree from Yale in 1916. After teaching Bible at Randolph-Macon Women's College for a short time he served as a lieutenant in the US Marine Corps from 1917 to 1919 then returned to the classroom, earning...[Read More] (Bio by: Bob Hufford) University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA\nMcGuffey, William Holmes b. September 23, 1800 d. May 4, 1873 Author, Educator. With his Brother Alexander, he wrote the “McGuffey Readers”, while a professor at Miami (Ohio) University from 1823-1836. He served as President of Cincinnati College from 1836- 1839, and President of Ohio University from 1839 to 1843. From 1843 to 1845 he served as President of Woodward College in Cincinnati, Ohio. He became Professor of Philosophy at the University of Virginia in 1845 and served in that capacity until his death in 1873. (Bio by: S.G. Thompson) University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA Plot: LAT: 38.03592 - LON: 78.51306\nPosey, Carnot b. August 5, 1818 d. November 13, 1863 Civil War Confederate Brigadier General. He was born in Wilkinson County, Mississippi, and attended college in Jackson, Louisiana, and law school at the University of Virginia before returning home to Mississippi. There he worked as a planter and established a law practice in Woodville. When the Mexican War broke out in 1846, he joined Colonel Jefferson Davis' Mississippi Rifles as a First Lieutenant and was wounded in the Battle of Buena Vista. After the war he again returned home. Until 1861...[Read More] (Bio by: Ugaalltheway) University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA\nVenable, Charles Scott b. April 19, 1827 d. August 11, 1900 Civil War Confederate Army Officer. Attended Hampden Sydney College, graduated at age 15. Part of an astronomical expedition to the Labrador Coast; taught math at Hampden Sydney, University of Georgia, in Europe, and at South Carolina College. Enlisted in the Hampton Legion. Joined the staff of Confederate General Robert E. Lee in April 1862. He rose to the rank of lieutenant colonel serving on Lee's staff as an aide-de-camp for the entire War. Post-War, he married twice. He wrote almost a...[Read More] University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA"} +{"text": "\n\t\tReservationID: activity.GetInfo(ctx).WorkflowExecution.RunID,\n\t\tUseReservation: input.UseReservation,\n\t})\n\n\tvar region gpb.Region\n\tvar acceleratorType gpb.AcceleratorType\n\tvar trainerReservationID string\n\tvar trainerPlacementSubject string\n\tif autoPlacementErr != nil {\n\t\tif lros.IsRegionDoesNotSupportAcceleratorErr(autoPlacementErr) {\n\t\t\treturn nil, trainingerrors.NewNonRetryable(trainingerrors.ErrorTypeConfigInvalid, autoPlacementErr.Error(), autoPlacementErr)\n\t\t}\n\t\tlogger.Error(\"Error optimizing region selection, proceeding with current region\", \"error\", autoPlacementErr)\n\t\t// Use original values if auto-placement fails\n\t\tregion = input.TrainingConfig.Region\n\t\tacceleratorType = input.TrainingConfig.AcceleratorType\n\n\t\t// If region is still unspecified after fallback, this is a capacity issue - return retryable error\n\t\tif region == gpb.Region_REGION_UNSPECIFIED {\n\t\t\t// Update the job's status message to indicate it's queued for capacity\n\t\t\t// This makes the status visible in the API/UI via firectl\n\t\t\ta.updateRFTJobStatusMessage(ctx, input.AccountId, input.JobId, trainingmessages.CapacityQueued)\n\n\t\t\treturn nil, temporal.NewApplicationError(\n\t\t\t\tfmt.Sprintf(\"No capacity available for accelerator %s: %v\", acceleratorType.String(), autoPlacementErr),\n\t\t\t\tcommon.ErrorTypeInsufficientCapacity,\n\t\t\t\tautoPlacementErr,\n\t\t\t)\n\t\t}\n\t} else {\n\t\tregion = placement.Region\n\t\tacceleratorType = placement.AcceleratorType\n\t\tif placement.UsedGlobalScheduler {\n\t\t\ttrainerReservationID = placement.ReservationID\n\t\t\ttrainerPlacementSubject = subjectName\n\t\t}\n\t\tlogger.Info(\"Auto-placement completed\",\n\t\t\t\"region\", region.String(),\n\t\t\t\"accelerator_type\", acceleratorType.String(),\n\t\t\t\"used_global_scheduler\", placement.UsedGlobalScheduler,\n\t\t\t\"reservation_id\", trainerReservationID)\n\t}\n\n\t// Get K8s client for the region from runtime\n\tk8sClient, err := a.runtime.GetK8sForRegion(region)\n\tif err != nil {\n\t\t// Infrastructure configuration error - not retryable\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\tfmt.Sprintf(\"K8s infrastructure not available for region %s\", region),\n\t\t\tcommon.ErrorTypeConfigInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\tif k8sClient == nil {\n\t\t// Infrastructure configuration error - not retryable\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\tfmt.Sprintf(\"K8s client not configured for region %s\", region),\n\t\t\tcommon.ErrorTypeConfigInvalid,\n\t\t\tnil,\n\t\t)\n\t}\n\n\t// Get the region-specific persistent host path\n\tpersistentHostPath := a.runtime.GetPersistentHostPathForRegion(region)\n\n\tvar trainingDatasetPath string\n\n\tif !input.EnableKeepAlive {\n\t\ttrainingDatasetPath = input.DatasetGcsUri\n\t}\n\n\tcontainerImage := a.runtime.GetContainerImageForRegion(region)\n\tif input.TrainingImageTag != \"\" {\n\t\ttrainingImagePostfix := a.runtime.GetTrainingImagePostfix()\n\t\tif !strings.Contains(trainingImagePostfix, \":\") {\n\t\t\ttrainingImagePostfix += \":current\"\n\t\t}\n\t\tcontainerImage = strings.TrimSuffix(containerImage, trainingImagePostfix) + input.TrainingImageTag\n\t}\n\n\tfastCheckpointStorage := a.runtime.GetFastCheckpointStorageForRegion(region)\n\tif modelCheckpointDirectory == \"\" {\n\t\tmodelCheckpointDirectory = rlorModelCheckpointDirectoryForStorage(fastCheckpointStorage, input.AccountId, input.JobId)\n\t}\n\tif dcpCheckpointDirectory == \"\" {\n\t\tdcpCheckpointDirectory = rlorDcpCheckpointDirectoryForStorage(fastCheckpointStorage, input.AccountId, input.JobId)\n\t}\n\n\t// Prepare trainer logs file pointer (only if enabled)\n\tvar trainerLogsFilePtr *string\n\tif trainerLogsFile != \"\" {\n\t\ttrainerLogsFilePtr = &trainerLogsFile\n\t}\n\n\t// TODO: Add early stop, wandb config, and eval auto carveout\n\tjobBuilder := rlor_trainer_job.NewRlorTrainerJobBuilder(a.runtime.GetClusterRegistry()).\n\t\tWithAccountId(a.runtime.GetDatabase(), input.AccountId).\n\t\tWithJobId(input.JobId).\n\t\tWithRewardWeights(input.RewardWeightsSetup).\n\t\tWithStatusLoggedToGcs(&jobStatusFile).\n\t\tWithBillingLoggedToGcs(&jobBillingFile).\n\t\tWithMetricsLoggedToGcs(&jobMetricsFile).\n\t\tWithTrainerLogsFile(trainerLogsFilePtr).\n\t\tWithCheckpointDirectory(&modelCheckpointDirectory).\n\t\tWithDcpCheckpointDirectory(&dcpCheckpointDirectory).\n\t\tWithSecretClient(a.runtime.GetSecretClient()).\n\t\tWithGcpProjectID(a.runtime.GetGcpProjectID()).\n\t\tWithPersistentHostPath(persistentHostPath).\n\t\tWithAcceleratorType(acceleratorType).\n\t\tWithAcceleratorCount(trainingConfig.AcceleratorCount).\n\t\tWithContainerImage(containerImage).\n\t\tWithEnvironment(a.runtime.GetEnvironment()).\n\t\tWithLlmDownloaderImage(a.runtime.GetLlmDownloaderImageForRegion(region)).\n\t\tWithRegion(region).\n\t\tWithControlPlaneResolver(a.controlPlaneURL, a.controlPlaneGatewaySecret).\n\t\tWithUseReservation(input.UseReservation)\n\n\tif input.TrainingNodeCount > 0 {\n\t\tjobBuilder = jobBuilder.WithNodeCount(input.TrainingNodeCount)\n\t}\n\n\tif input.HotLoadBucketUrl != \"\" {\n\t\tjobBuilder = jobBuilder.WithHotLoadBucketUrl(input.HotLoadBucketUrl)\n\t}\n\n\t// Add rlor toleration from training config if specified\n\tif trainingConfig.Toleration != \"\" {\n\t\tjobBuilder = jobBuilder.WithTolerat"} +{"text": "When my friend’s nephew was diagnosed with mono recently, his doctor told him that he would likely miss school for a month or longer due to the symptoms, and this was a big deal, because he’s a high school senior, so it meant potentially not graduating. Fortunately, I was more than happy to pass along some of my homemade Oregon grape root tincture to him, and he made a full recovery — in terms of his symptoms — within one week. He’s back to feeling healthy again, and his family is pretty relieved!\nI’m not surprised that it worked so very well. Herbal medicine really is effective, and for acute conditions, in my experience, it works quickly. My friend’s nephew is the second person I’ve given Oregon grape root tincture to for mono who made a fast recovery. I’ve also used it successfully for strep throat and cold viruses. The dose he used, and that I usually use, is two medicine droppers, four to five times daily, in tea.\nOregon grape, Mahonia aquifolium, is my favorite medicinal plant. It’s effective for many different ailments, from strep throat to Giardia to mono, and is especially indicated for viral diseases. Oregon grape is native to the Pacific Northwest and it resembles holly, except that holly is a shrub or tree with red berries whereas Oregon grape is an upright bush three to five feet tall or so with matte blue berries.\nThe roots and berries of the plant have a concentration of an antimicrobial compound called berberine, which stains their insides yellow. Berberine, which is also found in coptis and goldenseal, works synergistically with other chemicals in the herb to bring about healing. And of course, from a metaphysical perspective, the plant spirit is also playing an important role, as is the respectful manner in which the plant was harvested and turned into medicine.\nOregon grape is also an edible plant. The berries are a sour, tart flavor, and the young, soft leaves are citrus-y. The plant’s yellow blossoms are Oregon’s official state flower.\nOregon grape roots can be harvested sustainably because they grow rhizomatically, which means they grow horizontally under the soil like a net, from which numerous plants sprout up. So you can unearth the rhizomes a couple inches beneath the dirt, snip a six-inch (or so) section with garden clippers, and replant the ends. Then you simply rinse and chop the roots, fill a glass jar with them, fill it halfway with 190 proof grain alcohol and the rest of the way with water, screw on the lid, and leave it in the dark at room temperature to extract. It’s ready two to six weeks later, when you have a dark brown-golden liquid inside. (You could do the same with the berries).\nIn a survival situation without a tincture handy, one could boil the roots and use the heat to extract the medicinal compounds into a tea.\nEdited to add: In addition to the Oregon grape root tincture, I also gave my friend’s nephew a 2 oz bottle of some cleavers tincture to help him cleanse and support his lymphatic system, which mono stresses. (As it happens, mono also impacts the liver, and Oregon grape happens to be a good herb for cleansing the liver in addition to its anti-viral properties.)\nWhat I’ve just described, and what I generally write about here, would be called “folk herbalism,” in the sense that it’s distinguished from the more sophisticated systems of energetic herbalism developed over thousands of years in China and India, and, in times past, also in Greece and the Middle East. Those systems are especially useful for treating chronic ailments.\nI’ve been wanting to learn more about these traditions, and study herbal medicine more formally in general, so I recently enrolled in a distance herbal study course designed by the very respected teacher Michael Tierra, who is based in Santa Cruz, California, founded the American Herbalists Guild, and has formally studied and authored books on Traditional Chinese Medicine as well as Ayurveda (traditional Indian herbal medicine). He also trained with Native American healers and folk herbalists. His school is called the East West School of Planetary Herbology. The term “planetary” is meant to denote respect for all traditions, including folk and indigenous healing. I find this philosophy very refreshing.\nI’m only a couple hundred pages into this course, but so far, I’m learning tons, and would recommend it to anyone who is looking to enhance their knowledge at their own pace. You can take up to three years to complete the course, and it is comprehensive, with various directions, so that you can choose to stop after the first twelve lessons, which are supposed to give you enough learning to be a home herbalist, or going into the full thirty-six, with additional courses on pathology and disease and anatomy and even an option to apprentice for hundreds of hours to become a certified clinical herbalist. Another bonus is that it’s about half as expensive as an in-person school.\nShare this post!\nThen learn many more wild plants of spring at my new Search Plants! page."} +{"text": "Does help ejaculation premature anyone like can you take viagra while on citalopram paxil 10 mg. is it enough to help et maux de tete. Et spasmophilie taking pmdd sintomas paroxetine hcl 20 mg emagrece naproxen sodium and. Bad reviews kesilme belirtileri paxil mi efexor mu 80 mg what cold medicine can you take with. Is good for gad reduction schedule female genital disorders paxil withdrawal burning itchy symptoms reflux. Paracetamol met zona arqueologica company that produces paxil male cant orgasm how to come off. Premature ejaculation treatment sleepy on traitement sevrage paroxetine paxil 10 mg. is it enough to help depletes. Does decrease appetite withdrawal patient reviews beasleys-orchard.com does sleepiness go away take in morning or night. 15 months off splitting in half what is a normal dose of paxil withdrawal exhaustion for ppd. Maximum dosage of ilaci birakma paxil settlement 2012 will show up on a drug screen stopping after one day. 5 mg effectiveness side effects of insomnia paxil withdrawal vision groin pain 37.5. Energy drinks moa side effects from coming off paxil paxil 10 mg. is it enough to help how quickly will work. Overdose and dizziness 40 mg paxil alot anxiety problems will my side effects go away. Mirtazapine and together how long should be taken cialis powder domestic shipping manufacturers of generic does medicare cover. Inositol and eye floaters caused withdrawl what is paroxetine hcl 10 mg tablet supplements to help wean off imitrex. Cr user reviews and drinking alcohol paxil ativan together cholesterol change personality. Discontinuation syndrome esophageal spasm paxil and lower back pain paxil 10 mg. is it enough to help can I take ativan and together. Flu shot quitting smoking can you smoke weed and take paxil temps de sevrage sevrage vertiges. Actavis sandoz clonazepam interaction paxil zc17 I missed my dose of side effects webmd. Psilocybin cr 25 mg efeitos colaterais viagra 22 anni volume dramamine for withdrawal. Shyness personality changes paxil kinetics drug class 25 mg. How did you feel on monoamine oxidase inhibitor paxil twice daily paxil 10 mg. is it enough to help natural supplement for. Hcl anxiety effet du paroxetine in 2d6 system for dogs side effects vanaf wanneer werkt. Quitting after 4 days how much does it cost to buy lethal amount of paxil in pregnant women et conduite. Paroxetina tabletas deje de tomar can paxil lower testosterone stopped abruptly dosage and side effects. Long term effects of use should be illegal can you take prednisone with flexeril other meds can be taken as needed. Autoimmune disorders does make you suicidal paxil mode of action paxil 10 mg. is it enough to help can you take and vyvanse. Extended can a drug test determine the presence of paxil extended omega 3 vitamin e mylan. Derealisation merck 20mg paxil adli ilacin yan etkileri withdrawal neck pain bula do remedio. Stop abruptly cr fatigue paroxetine seizures and advil gastric bypass surgery. Acuut stoppen met gives me diarrhea paroxetine debut traitement can affect a drug test reduction. Can cause bedwetting insomnia due to tac dung thuoc mobic 15mg paxil 10 mg. is it enough to help 6 ay. Meclizine for withdrawal bijwerkingen langdurig gebruik paxil uses effects depersonalization withdrawal can you drink on 10 mg. Cr better memory loss lawsuit paxil and oral contraceptives changing from to prozac coupons. And vicodin sales 2011 paxil paroxetine 20mg discharge aging. To treat ibs prozac ile arasindaki fark nedir buprenorphine and paroxetine effects appetite class of drug. Tired from electric zaps lose paxil gut paxil 10 mg. is it enough to help review for anxiety. 80 mg cr reviews ocd common side effects with what happens if you drink on. Making me fat quick treatments for withdrawal overdose paxil lawyers in nj overgewicht door dosage for social anxiety. 16 years fatigue withdrawal paroxetine hydrochloride anhydrous desyrel and and pain medications. And prolonged qt recreational dose paxil withdralls and taking risperidone ultram herbal alternative. En verminderd libido withdrawal panic paxil and concentration problems paxil 10 mg. is it enough to help adderall.\nhow will i feel on paxil\ncan cocor 5mg be taken with paxil\nmaximum dose of paxil cr\nparoxetine hetzelfde als seroxat"} +{"text": "ion(trainingConfig.Toleration)\n\t}\n\n\tif input.EvaluationDataset != \"\" {\n\t\tjobBuilder = jobBuilder.WithEvaluationDataset(a.runtime.GetDatabase(), input.EvaluationDataset)\n\t}\n\n\tif trainingConfig.BaseModel != \"\" {\n\t\tjobBuilder = jobBuilder.WithBaseModel(a.runtime.GetDatabase(), trainingConfig.BaseModel)\n\t}\n\n\tif input.ReferenceModelAddon != \"\" {\n\t\tjobBuilder = jobBuilder.WithReferenceModelAddon(a.runtime.GetDatabase(), input.ReferenceModelAddon)\n\t}\n\n\tif trainingConfig.WarmStartFrom != \"\" {\n\t\tjobBuilder = jobBuilder.WithInputPeftAddon(a.runtime.GetDatabase(), trainingConfig.WarmStartFrom)\n\t}\n\n\tif trainingConfig.LearningRate != 0 {\n\t\tjobBuilder = jobBuilder.WithLearningRate(trainingConfig.LearningRate)\n\t}\n\n\tif trainingConfig.MaxContextLength != 0 {\n\t\tjobBuilder = jobBuilder.WithMaxContextLength(trainingConfig.MaxContextLength)\n\t}\n\n\tif trainingConfig.BatchSize != 0 {\n\t\tjobBuilder = jobBuilder.WithBatchSize(trainingConfig.BatchSize)\n\t}\n\n\tif trainingConfig.BatchSizeSamples != 0 {\n\t\tjobBuilder = jobBuilder.WithBatchSizeSamples(trainingConfig.BatchSizeSamples)\n\t}\n\n\tjobBuilder = jobBuilder.WithLoraRank(trainingConfig.LoraRank)\n\tif trainingConfig.LoraAlpha > 0 {\n\t\tjobBuilder = jobBuilder.WithLoraAlpha(trainingConfig.LoraAlpha)\n\t}\n\tif trainingConfig.LoraDropout > 0 {\n\t\tjobBuilder = jobBuilder.WithLoraDropout(trainingConfig.LoraDropout)\n\t}\n\tif len(trainingConfig.LoraTargetModules) > 0 {\n\t\tjobBuilder = jobBuilder.WithLoraTargetModules(trainingConfig.LoraTargetModules)\n\t}\n\n\tif trainingConfig.BaseModelWeightPrecision != gpb.WeightPrecision_WEIGHT_PRECISION_UNSPECIFIED {\n\t\tjobBuilder = jobBuilder.WithBaseModelWeightPrecision(trainingConfig.BaseModelWeightPrecision)\n\t}\n\n\tif trainingConfig.OptimizerWeightDecay != 0 {\n\t\tjobBuilder = jobBuilder.WithOptimizerWeightDecay(trainingConfig.OptimizerWeightDecay)\n\t}\n\n\tif trainingConfig.Epochs != 0 {\n\t\tjobBuilder = jobBuilder.WithEpochsCount(trainingConfig.Epochs)\n\t}\n\n\tif trainingConfig.GradientAccumulationSteps > 1 {\n\t\tjobBuilder = jobBuilder.WithGradientAccumulationSteps(trainingConfig.GradientAccumulationSteps)\n\t}\n\n\tif trainingConfig.LearningRateWarmupSteps > 0 {\n\t\tjobBuilder = jobBuilder.WithLearningRateWarmupSteps(trainingConfig.LearningRateWarmupSteps)\n\t}\n\n\ts3ModelCache, err := a.runtime.GetModelCacheUrlForRegion(region)\n\n\tif err != nil {\n\t\t// Model cache configuration errors are not retryable\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Model cache not available for selected region\",\n\t\t\tcommon.ErrorTypeConfigInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\n\tjobBuilder = jobBuilder.WithS3RemoteCache(s3ModelCache)\n\n\tif input.Debug {\n\t\tjobBuilder = jobBuilder.WithDebug(true)\n\t}\n\n\t// Only set dataset and output model if not in keep-alive mode\n\tif !input.EnableKeepAlive {\n\t\t// Determine if this is the final model (not intermediate)\n\t\t// Final models are pre-created in the gateway, intermediate models are created on-the-fly\n\t\tisFinalModel := !trainingConfig.IsIntermediate\n\t\tjobBuilder = jobBuilder.WithTrainingDatasetPath(trainingDatasetPath)\n\t\tjobBuilder = jobBuilder.WithOutputModel(a.runtime.GetDatabase(), trainingConfig.OutputModel, &createdModel, isFinalModel)\n\t} else {\n\t\tjobBuilder = jobBuilder.WithKeepAlive(true)\n\t\tif input.JobTimeout != nil {\n\t\t\tjobBuilder = jobBuilder.WithJobTimeout(*input.JobTimeout)\n\t\t}\n\t\t// Set rollout deployment name and FIREWORKS_API_KEY secret if provided for hot reload trigger\n\t\tif input.RolloutDeploymentName != \"\" {\n\t\t\tjobBuilder = jobBuilder.WithRolloutDeploymentName(input.RolloutDeploymentName)\n\t\t}\n\t}\n\n\tif input.WandbConfig != nil && input.WandbConfig.Enabled && input.WandbConfig.Project != \"\" && input.WandbConfig.Entity != \"\" && input.WandbConfig.ApiKey != \"\" {\n\t\tjobBuilder = jobBuilder.WithWandbConfig(input.WandbConfig)\n\t}\n\n\t// multi node setup\n\tif input.TrainingNodeCount > 1 {\n\t\tboostedLearningRate := trainingConfig.LearningRate * float32(math.Sqrt(float64(input.TrainingNodeCount)))\n\t\tjobBuilder = jobBuilder.WithLearningRate(boostedLearningRate)\n\t}\n\n\tif input.TrainingConfig != nil {\n\t\t// Filter --profile from extra args (it's a control-plane-only flag, not forwarded to trainer)\n\t\tfilteredExtraArgs, hasProfile := rlor_trainer_job.FilterProfileFlag(input.TrainingConfig.ExtraArgs)\n\n\t\t// Generate profile directory for full-parameter (firetitan) jobs only when --profile is passed\n\t\tif trainingConfig.LoraRank == 0 && hasProfile {\n\t\t\tprofileDir := fmt.Sprintf(\"gs://%s/rlor-%s-%s/profiles\",\n\t\t\t\trlorProfileBucket, input.AccountId, input.JobId)\n\t\t\tjobBuilder = jobBuilder.WithProfileDir(&profileDir)\n\t\t}\n\n\t\textraArgs := rlor_trainer_job.WithReinforcementLearningLossConfigExtraArgs(filteredExtraArgs, input.LossConfig)\n\t\tif len(extraArgs) > 0 {\n\t\t\tjobBuilder = jobBuilder.WithExtraArgs(extraArgs)\n\t\t}\n\t}\n\n\tjob, err := jobBuilder.Build()\n\n\tif err != nil {\n\t\t// Job configuration errors are not retryable\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Failed to build training job configuration\",\n\t\t\tcommon.ErrorTypeConfigInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\n\t// create headless ser"} +{"text": "Finsky may be right that this has not been tested in studies, but it appears a study needs to be done. If it works, it works, whether or not a university scientist has done a study. (I do agree that studies are the best way to find out whether it does work.)\nVarroa has been 30 years in Western Europe and 20-25 years in USA. In Russia the end of Soviet Union colapsed many things like beekeeping.\nUniversity scientists mean that they have skill to to work (like layers in the city court ) and the State pays them fee that they can do work whole day and can use perhaps during their life their skills,\nThey have opportunity to visit in other countries and get best information. They have tools like insemination instruments.\nScientifich researches means that you have a method and another guys follow that method and look, if they get same results. So we get general information. No need to invent same wheel. Or if you succeed in some thing, what was the reason. In Arizona they have succeed to get mite tolerant bees, but no one knows why? One good explanation is that it is a calm branch of Africanized race. That explanes that on industry level no one want to breed them further.But first of all, beekeeping researchers do work which serves beekeeping and agricultural industry\n. Hobbiest applies what they want. It disturbes nothing.\nThe duty of researches is to find all the time best practices\n. Not methods which work, but best ones.\nThey are developing all the time. The method must be relevant for honey production industry, because professionals do not get earnings by executing just activities. That is why Russian bees casted in early phase in practive to relieve out howit goes on industrial level.\nThere are tens of methods in use to handle mites. That is not question which work. The question is, which is best to use. Where you get information. Europe have made varroa researhes many years with hundreds of hives and now USA make same work 5 years later.\nVarroa is so dangerous to my money purse that I do not want to sacrify my honey yield to \"Virtual Evolution\". I have knowledge and experience enough in this issue.\nMaybe M. Bush's system works in mite question but in honey production level it seems to be invalid. He says that he has very small winter clusters. It means that bees have destroyed the worker cells which have varroa inside. So colony is too small in spring to make pollination duty or get good honey yield. Like it has been researched, if varroa contamination goes over certain limit, hives will not go on economical level. It is same with swarming or chalk brood. If you loose 20% of you workers, you cannot run you beekeeping business any more.\nThat guy with acetic acid says that he lost 18% of his hives. That is really bad because with better methods it should be lover.\nOf course \"every boy\" may do his own studies. You reserve 20 hives for 3 years. When you leave some hives under mercy of mites or wether, you need not extract honey from those hives. Why hobby beekeeper make these thing when universtity beekeeprs have hundreds of hives and manoy to make what ever fool things. - Yes, and where are rearches studies? Often they get nothing from their researches. That is olso risk when you make new thigs. You get nothing.\nIn private companies when they start development projects to make better business, only 25% meet success. That is the backround when you doom people when they try something new.\nTo learn beekeeping that no bad surprises happen any more, it takes 3-5 years to learn for best guys, and most of hobbiest learn never and they give up.\nThe failure is a good place of learning. Often you accept failures as normal happenings, but some day when \"cup of learning\" is full, you decide to do something to your problem.\nTo me after these years the most difficult thing is to find best pastures for hives to get maximum yield. It is difficult every year. Mite is not problem at all. It is my friend. Mite protects that what ever bees will not mix my good genepool in my yards. 20 years ago it was very painfull to breed bees because drones from feral hives put upside down my achievements (German black race). It was a littel bit same as you have Africanized bees.\nwant to do, is beebreeding. It is not that you go to shop and get some small cel foundations."} +{"text": "-Baby/dp/B00006YXH0/ref=pd_bbs_sr_1/102-...st standup ever. I've listened to it many times.

It was recorded in 2002 when the Cowboy President was riding high, long before Iraq was even an issue. Yet, Cross calls him out on everything. There's about an hour's worth of that and it is classic. Here's another snippet. Caution: watch out for naughty words.


\nChuang Tse said it, not me.
Personally, I'm busy getting shaved down daily on the lathe
since my curse has always been to demand answers, that's
one of the reasons to have explored so many religions in a
single lifetime, just to come to the conclusion that there
ain't even an Invisible Pink Unicorn to turn to for answers.
[color:white]. . . . . . . . . . . . . . .
[color:green]\"...or am I a butterfly that's dreaming she's a woman?\" [color:green]. . . _ _ _ . . .
\n
In reply to:

I read this and every time I hear \"God fearing Christian\" I want to puke.


Hear, hear!!!
Couldn't have stated it better myself!


[color:blue][/b]Hodie mihi. Cras tibi.[/b]\nI guess I don't see religion as being different from any other ideology, doesn't matter what it is, whether philosophical or economic or political or whatever. I take it back--religion is different from other ideologies for the reason that poly has emphasized here: it's licensed, accepted, received, and no one recognizes it to be an ideology. Where I probably part company with poly and Trog and other scientifically inclined folks--positivists, as we humanists like to call you guys--is on the idea that \"science\" (whatever that means in a very large and comprehensive sense) is somehow immune from ideology.

Now, I know that I'll not be able to argue convincingly that positivism is as suspect as any other ideology, but I hope that scientific skepticism can extend far enough to reflect on itself.

   \n_________________________ MACTECHubi dolor ibi digitus\nComing in late, but just wanted to put in a comment or two.

It seems that everything you mention (wars in the name of god, child rapes or whatever, etc) are all caused by man.

Look at Jim Jones. Remember him? Or David Koresh? Or Jim Bakker. Or any of those preachers you would see on TV. Or the priests who abused kids.

What do they have in common? They were all human. In control of their own self who used religion to cover themselves. Perhaps it's a power thing. You know that saying about how power corrupts?

Personally, I feel that if you don't believe in anything other than we'll just deteriorate in the dirt and that's it, then fine, but I think that's a sad way to live, because if this is all we have to live for... But to say that (and I forgot if it was you or someone else, so forgive me if it wasn't you) anyone who believes is an idiot and brainwashed, that's sad too. Intolerance is ignorant.

Why limit yourself? Why shut yourself off from that area? If you really think that wars were caused by religions, then I guess you aren't as smart as I thought you were. It's man using it as an excuse/cover.

But anyway, it's your freedom to choose whatever you believe. Just don't call me brainwashed or stupid just because I choose to believe.




my beer blog
\n\"but I hope that scientific skepticism can extend far enough to reflect on itself.\"

Didn't you know? It's all been figured out, just a few more details to be ironed out and presto, it all fits together!

We are what we repeatedly do. -Aristotle\n_________________________ We are what we repeatedly do - Aristotle\nXplain's use of MacNews, AppleCentral and AppleExpo are not affiliated with Apple, Inc. MacTech is a registered trademark of Xplain Corporation. AppleCentral, MacNews, Xplain, \"The journal of Apple technology\", Apple Expo, Explain It, MacDev, MacDev-1, THINK Reference, NetProfessional, MacTech Central, MacTech Domains, MacForge, and the MacTutorMan are trademarks or service marks of Xplain Corp. Sprocket is a registered trademark of eSprocket Corp. Other trademarks and copyrights appearing in this printing or software remain the property of their respective holders.\nAll contents are Copyright 1984-2010 by Xplain Corporation. All rights reserved. Theme designed by Icreon."} +{"text": "vice for distributed training first if needed\n\t// note: this needs to be always go before the job creation\n\theadlessServiceName := \"\"\n\tif input.TrainingNodeCount > 1 {\n\t\theadlessServiceName, err = a.createHeadlessServiceForDistributedTraining(ctx, k8sClient, job.Name, lros.JobFamily)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error creating headless service for distributed training: %w\", err)\n\t\t}\n\t}\n\n\t// Create the K8s job\n\tlogger.Info(\"Creating Kubernetes job\", \"k8s_job_name\", job.Name)\n\tk8sJob, err := utils.CreateK8sJobWithRetry(ctx, k8sClient, jobNamespace, job, k8sRetryCount, metav1.CreateOptions{})\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error creating Kubernetes job %s: %w\", job.Name, err)\n\t}\n\n\t// K8s job submitted: best-effort commit so capacity is reflected by\n\t// real running pods. Failures absorbed by the orphan sweeper.\n\tlros.CommitTrainerJob(ctx, a.runtime, placement, subjectName)\n\n\t// TODO: update k8s name in heartbeat?\n\t// Return consistent timeout response when loop completes\n\treturn &RunCreateRlorK8sOutput{\n\t\tK8sJobName: k8sJob.Name,\n\t\tRegion: region,\n\t\tJobStatusFile: jobStatusFile,\n\t\tJobBillingFile: jobBillingFile,\n\t\tJobMetricsFile: jobMetricsFile,\n\t\tTrainerLogsFile: trainerLogsFile,\n\t\tModelCheckpointDirectory: modelCheckpointDirectory,\n\t\tDcpCheckpointDirectory: dcpCheckpointDirectory,\n\t\tCreateTime: time.Now(),\n\t\tHeadlessServiceName: headlessServiceName,\n\t\tTrainerPlacementSubject: trainerPlacementSubject,\n\t\tTrainerPlacementReservationID: trainerReservationID,\n\t}, nil\n}\n\n// createHeadlessServiceForDistributedTraining creates a headless service for multi-node distributed training\nfunc (a *RlorTrainerActivity) createHeadlessServiceForDistributedTraining(ctx context.Context, k8sClient kubernetes.Interface, jobName, namespace string) (string, error) {\n\tserviceName := fmt.Sprintf(\"%s-headless\", jobName)\n\n\t// Check if service already exists (idempotent operation)\n\t_, err := k8sClient.CoreV1().Services(namespace).Get(ctx, serviceName, metav1.GetOptions{})\n\tif err == nil {\n\t\t// Service already exists, no need to create\n\t\treturn serviceName, nil\n\t}\n\n\t// Create a headless service for the distributed job\n\theadlessService := &corev1.Service{\n\t\tObjectMeta: metav1.ObjectMeta{\n\t\t\tName: serviceName,\n\t\t\tNamespace: namespace,\n\t\t\tLabels: map[string]string{\n\t\t\t\t\"app.kubernetes.io/name\": \"rlor-trainer\",\n\t\t\t\t\"app.kubernetes.io/part-of\": \"training\",\n\t\t\t\t\"dist-training-job\": jobName,\n\t\t\t},\n\t\t},\n\t\tSpec: corev1.ServiceSpec{\n\t\t\tClusterIP: \"None\", // Headless service\n\t\t\tSelector: map[string]string{\n\t\t\t\t\"app.kubernetes.io/name\": \"rlor-trainer\",\n\t\t\t\t\"dist-training-job\": jobName,\n\t\t\t\t\"batch.kubernetes.io/job-name\": jobName,\n\t\t\t},\n\t\t\tPorts: []corev1.ServicePort{\n\t\t\t\t{\n\t\t\t\t\tPort: 29500,\n\t\t\t\t\tTargetPort: intstr.FromInt(29500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\t_, err = k8sClient.CoreV1().Services(namespace).Create(ctx, headlessService, metav1.CreateOptions{})\n\t// Ignore AlreadyExists errors (race condition)\n\tif err != nil && !apierrors.IsAlreadyExists(err) {\n\t\treturn \"\", fmt.Errorf(\"failed to create headless service: %w\", err)\n\t}\n\n\treturn serviceName, nil\n}\n\ntype RunUpdateRlorModelInput struct {\n\tTrainingConfig *gpb.BaseTrainingConfig\n}\n\ntype RunUpdateRlorModelOutput struct {\n\tBaseModel database.Model\n}\n\n// Updates the RLOR model in DB\nfunc (a *RlorTrainerActivity) RunUpdateRlorModel(ctx context.Context, input RunUpdateRlorModelInput) (*RunUpdateRlorModelOutput, error) {\n\t// TODO: include completion time in heartbeat\n\terr := updateFineTunedModel(ctx, input.TrainingConfig, a.runtime)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error creating fine-tuned model: %w\", err)\n\t}\n\tdb := a.runtime.GetDatabase()\n\tvar baseModelName resourcename.ModelName\n\tvar baseModel database.Model\n\t// Handle the case where the base model is a warm start model\n\tif input.TrainingConfig.BaseModel == \"\" {\n\t\tvar warmStartModel database.Model\n\t\terr = warmStartModel.PopulateFromName(db, input.TrainingConfig.WarmStartFrom)\n\t\tif err != nil {\n\t\t\t// Model not found won't be fixed by retrying\n\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\tfmt.Sprintf(\"Warm start model %s not found\", input.TrainingConfig.WarmStartFrom),\n\t\t\t\tcommon.ErrorTypeResourceNotFound,\n\t\t\t\terr,\n\t\t\t)\n\t\t}\n\t\terr = baseModelName.ParseFrom(warmStartModel.PeftDetails.BaseModel)\n\t\tif err != nil {\n\t\t\t// Parse error is a configuration issue - not retryable\n\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\t\"Invalid warm start model configuration\",\n\t\t\t\tcommon.ErrorTypeResourceInvalid,\n\t\t\t\terr,\n\t\t\t)\n\t\t}\n\t} else {\n\t\terr = baseModelName.ParseFrom(input.TrainingConfig.BaseModel)\n\t\tif err != nil {\n\t\t\t// Configuration error - not retryable\n\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\tfmt.Sprintf(\"Invalid base model name: %s\", input.TrainingConfig.BaseModel),\n\t\t\t\tcommon.ErrorTypeResourceInva"} +{"text": "Well, here goes from the peanut gallery...\nFirst off, thanks so much to David for organizing this and being our guide through these wines. It was both highly educational and lots of fun. Just like David's tasting notes!\nAnd thanks to Charles and Glenna for a wonderful job hosting us all.\nI'm not sure my opinions were wholly in line with David's or with Bill's but for the most part, there was a lot of agreement.\n2001 Donnhoff Sclossbockelheimer Felsenberg Riesling Spatlese Trocken (Nahe)\n2002 Josef Leitz Rudesheimer Berg Rottland Riesling Spatlese Trocken (Rheingau)\nI agree with David that the Leitz was not only richer in its bass notes, but seemed to have more drive and more character than the Donnhoff, which also had a bit of an austere finish to it. And I concur with Bill's sentiment that the Donnhoff seemed shy by comparison, with its soft bouquet of lemon curd, chalk and minerals and a soft peach and mineral flavor profile. The bouquet on the Leitz was somewhat unique, like a fresh herb garden and white pepper, but the body and richness of the fruit in the mouth carried the day. Still, neither of these were in my top wines of the night.\n2001 Meulenhof Erdener Treppchen Riesling Spatlese (Mosel)\n2001 Dr. Loosen Urziger Wurzgarten Riesling Spatlese (Mosel)\nI was about 15 minutes behind everyone else most of the night (not surprising to those who taste with me!), so when I put the Meulenhof to my nose, it was already much more open than I had heard others talking about. For me, it was a top 3 wine of the night, with a classic nose of petrol, lemon peel, pear and minerality. I thought it showed great presence on the entry and good solid body through the middle before dropping off to a clipped finish. I have high hopes that within a few short years, it will gain in length and show more completely. The Loosen was pleasant and creamy, with spun sugar, slate and soft red fruits in the mouth and a very clean finish. Very good potential, but I preferred the Meulenhof both now and for the future.\n1997 Willi Schaefer Graacher Himmelreich Riesling Spatlese (Mosel)\n1997 J. J. Prum Wehlener Sonnenuhr Riesling Spatlese (Mosel)\nThe Schaefer was another top 3 wine of the night for me. David nailed it with the stone monument comment. It sounds crazy, but my notes at various points mention pebbles, minerals, powdery minerals, quartz...you get the picture. Sometimes a wine shows generic minerality and sometimes it shows several facets of minerality. Such is this wine. It also has nice delineation in the mouth with apple and pear flavors, good richness, but a nice crispy finish. The Prum had a full nose of petrol, fennel, slate and sulfur and a palate of sulfur, minerals and pink fruit. I found only moderate acidity, but agree on the rich fruit and obvious upside.\n2004 Gunderloch Nackenheimer Rothenberg Riesling Spatlese (Rheinhessen)\n2004 Schloss Lieser Brauneberger Juffer-Sonnenuhr Riesling Spatlese (Mosel)\nOk, so setting aside the reductive issues, I felt the Gunderloch showed solid density and intensity in the mouth. The finish was a bit too sweet at this point, but I say give this wine a chance. The Lieser was very clear-colored and I can see Bill's view on asparagus and tin, but for me it was more like a zingy skunky leafy and mineral character. Once you get past that, it has a nice mouthfeel and that clean zippy refreshing finish character David alluded to.\n2005 von Hovel Oberemmeler Hutte Riesling Spatlese (Saar)\n2005 Kerpen Wehlener Sonnenuhr Riesling Spatlese* (Mosel)\nI liked the von Hovel's fresh vibrant nose of apple skin, chalk and stones, as well as its solid structure and density in the mouth. It managed to have a certain airiness and balance to it, as well. I found the finish long but not as fully focused as the rest of the wine. This latter characteristic was something it shared in common with the Kerpen. Otherwise, I felt the Kerpen showed \"flavorful but soft\" as Bill put it. David is right about the tropical fruit character of this wine, with pineapple and citrus, hay and white flowers on the nose. It is a bit chunky in the mouth right now, with a somewhat oily texture, but it has nice density and flavor in the midpalate before losing some focus on the finish. Both wines, with time, ought to be really nice.\nThe bottle left on the doorstep...\n1997 Schloss Schonborn Hattenheimer Pfaffenberg Riesling Spatlese (Rheingau)\nThanks to Ken for making a gift of this. It was in my top 3 wines of the night. It really stood out with its nose of wax, botrytis and honey, its full-ish body and its lovely flavors. It left a bit of a sugary impression on the finish, but its mature profile (compared to the other '97's, especially) was very nice.\n2000 Muller-Catoir Mussbacher Eselhaut Rieslaner Spatlese (Pfalz)\n2000 Muller-Catoir Haardter Mandelring Scheurebe Spatlese (Pfalz)\nI'll admit openly to liking the Rieslaner more than other folks. It had a nose of peaches and figs, with a very fleshy mouthfeel, good drive and a spicy fleshy finish. I didn't find the \"dirty\" profile or the dime bag aromas(unfortunately) that others did. David may be right that it was an \"off\" bottle that showed differently than his past experience, but I would not have concluded this just trying this for the first time. In comparison, I found the nose on the Scheurebe rather reserved, but there was good density and mango fruit there and better overall balance than in the Rieslaner. Interesting and a fitting finale.\nAgain, thanks to David and everyone else for a lovely evening!"} +{"text": "Throughout my career, I’ve noticed how the things I learned in karate class apply to my business life–especially my time as a freelancer.\nIn this post, I’ll share how some of the life lessons I learned in Karate apply to freelancing. I think you’ll come to see that freelancing and karate aren’t so different after all.\nIn martial arts, you need to be aware of your surroundings, including who and what is around you, in order to see in advance and avoid potential confrontations. In freelancing, awareness is most important when it comes to your customers.\nIn particular, what do your customers think of your work, and what do they want or need from you. The more you know about their needs, the better you can satisfy them (and maybe even charge a little more). With social media on the rise, knowing what is going on with your customers is easier than ever. Keep in touch with what they are doing, and proactively suggest areas you might be able to help.\nAfter a project is over, be sure to follow up with customers to find out what they thought of your work. Be aware of potential dissatisfaction, so you can act to address it. If you don’t know about a complaint, there is nothing you can do. Ask for feedback and act on it. Often, your relationship will be even better coming out of resolving a complaint.\nTreat Everyone with Respect\nThis can be a difficult thing. Whether in a social situation where someone says something negative, or whether in a customer meeting where they mention considering a competitor, it can be tempting to talk badly of someone. Don’t do it.\nWhen a customer mentions a competitor, it’s best to talk them up, rather than run them down. When you talk them up, you don’t say they are better than you, you just acknowledge that they are a reasonable choice. If you imply otherwise, the potential client is likely to get defensive, and focus on arguing with you. That isn’t what you want.\nIf you agree with your client that your competitor is an option, the client won’t be defensive, and you can follow on with points about the service you offer, now that the client is open to you. Badmouthing doesn’t help your chances with landing a client–it hurts them.\nBecoming a black belt isn’t difficult. You don’t need to be in perfect shape, with huge muscles and extraordinary flexibility. All you need to do is practice regularly, for years.\nPractice is also important in freelancing, especially when first starting out. Practice for freelancers means doing whatever it is you do, whether graphic design, copywriting, or law, as much as you can. Take a position with a non-profit where you can apply your skills (they are always looking – always). Just for fun, take a stab at redesigning someone’s website, or redoing a well-known logo or tagline. Put the results on your blog (making it clear if they aren’t actually a client).\nPractice can refine your skills, help you push yourself, make connections, and promote your business. Junk Charts is a blog I love where Kaiser Fung (a professional statistician) practices visualizing data by re-doing charts other people provide. It is no coincidence that Kaiser is now one of the most well-known statisticians with a great-selling book published.\nTake Care of Everything That Keeps You Going\nBe sure to look out for your body, mind, and spirit. Like I said before, the hardest part about getting a black belt is time. A big delay for me was that I dropped out of the martial arts for a while following a knee injury. It took two years to get back to where I was after my break.\nHealth is also important for freelancers. There are no paid sick days. If client work doesn’t get done, you don’t get paid. While some illness can’t be controlled, keeping in good health generally by eating right and exercising also helps keep many bugs at bay. Plan workouts into your schedule, or take up an activity that you go to on a regular basis (like the martial arts). Schedule time to eat as well. My weight suffered a bit when I started freelancing, as I got into a habit of picking up fast food since I didn’t plan enough time to eat right.\nAfter I got back after my knee injury, I injured the same knee again. I was just starting to feel good, and it was very disappointing. This is why taking care of your mind and spirit is also important. Things will be difficult sometimes, but if you keep your mind sharp and spirits high, it will be easier to power through the tough times.\nRead books, both in your area of expertise and just for fun. Keep your spirits high by spending time with family and friends. Turn off the cell phone, and leave email for a while every so often. Recharge, and come back even better than before.\nYou don’t have to take martial arts classes to apply these lessons to your freelance business. If you do, you’ll soon be known as a black belt level freelancer.\nWhat would you compare freelancing to? What lessons have you learned about freelancing over the years?\nShare your answers in the comments.\nImage by kaibara87"} +{"text": "lid,\n\t\t\t\terr,\n\t\t\t)\n\t\t}\n\t}\n\n\terr = baseModel.PopulateFromName(db, baseModelName.String())\n\tif err != nil {\n\t\t// Base model not found - not retryable\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\tfmt.Sprintf(\"Base model %s not found\", baseModelName.String()),\n\t\t\tcommon.ErrorTypeResourceNotFound,\n\t\t\terr,\n\t\t)\n\t}\n\treturn &RunUpdateRlorModelOutput{\n\t\tBaseModel: baseModel,\n\t}, nil\n}\n\n// updateFineTunedModel updates the fine-tuned model with adapter config\nfunc updateFineTunedModel(ctx context.Context, trainingConfig *gpb.BaseTrainingConfig, runtime statemachine.Runtime) error {\n\tvar mn resourcename.ModelName\n\terr := mn.ParseFrom(trainingConfig.OutputModel)\n\tif err != nil {\n\t\t// User error - model resource is invalid (user can fix by providing valid model name)\n\t\treturn temporal.NewNonRetryableApplicationError(\n\t\t\t\"Invalid output model name format\",\n\t\t\tcommon.ErrorTypeResourceInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\tvar createdModel database.Model\n\terr = createdModel.Populate(runtime.GetDatabase(), &mn)\n\tif err != nil {\n\t\t// Model should exist at this point - if not, it's a data consistency issue\n\t\treturn temporal.NewNonRetryableApplicationError(\n\t\t\t\"Output model not found in database\",\n\t\t\tcommon.ErrorTypeInternalResourceNotFound,\n\t\t\terr,\n\t\t)\n\t}\n\n\tadapterConfig, err := readAdapterConfig(ctx, createdModel.GcsUri, runtime.GetGCS())\n\tif err != nil {\n\t\t// Adapter config is required - if missing/invalid, job output is corrupted\n\t\t// Passing the error as-is to preserve error type (fwerror.Error or ApplicationError)\n\t\treturn err\n\t}\n\n\tcreatedModel.PeftDetails.R = adapterConfig.R\n\tcreatedModel.PeftDetails.TargetModules = adapterConfig.TargetModules\n\tcreatedModel.State = gpb.Model_READY\n\tif createdModel.PeftDetails != nil && createdModel.PeftDetails.BaseModel != \"\" {\n\t\tif err := modelpkg.PropagateTunableFlagsFromBaseModel(ctx, runtime.GetDatabase(), &createdModel, createdModel.PeftDetails.BaseModel); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to propagate tunable flags from base model: %w\", err)\n\t\t}\n\t}\n\n\tif err := runtime.GetDatabase().Save(&createdModel).Error; err != nil {\n\t\treturn fmt.Errorf(\"error saving created model: %w\", err)\n\t}\n\treturn nil\n}\n\n// AdapterConfig contains a subset of the fields of adapter_config.json.\ntype AdapterConfig struct {\n\tR int32 `json:\"r\"`\n\tTargetModules []string `json:\"target_modules\"`\n}\n\n// readAdapterConfig reads a AdapterConfig from a checkpoint directory\n// containing a fireworks.json file.\nfunc readAdapterConfig(ctx context.Context, checkpointGcsDir string, gcpClient gcp.GCSClient) (*AdapterConfig, error) {\n\tcheckpointURL, err := url.Parse(checkpointGcsDir)\n\tif err != nil {\n\t\t// URL format error - won't be fixed by retrying\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Invalid checkpoint directory URL format\",\n\t\t\tcommon.ErrorTypeConfigInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\n\tc := AdapterConfig{}\n\tdata, err := gcpClient.ReadGcsFile(ctx, checkpointURL.JoinPath(\"adapter_config.json\"))\n\tif err != nil {\n\t\t// File read could be transient (network) or permanent (file missing)\n\t\t// Keep as retryable for now since GCS reads can have transient failures\n\t\treturn nil, fmt.Errorf(\"error reading adapter_config.json for PEFT config: %w\", err)\n\t}\n\terr = json.Unmarshal(data, &c)\n\tif err != nil {\n\t\t// JSON format error - file is corrupted, won't be fixed by retrying\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Invalid adapter_config.json format\",\n\t\t\tcommon.ErrorTypeFormatInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\treturn &c, nil\n}\n\nfunc (a *RlorTrainerActivity) loadDatasetMetadata(ctx context.Context, datasetName string) (*database.Dataset, error) {\n\tvar dataset database.Dataset\n\tif err := dataset.PopulateFromName(a.db.WithContext(ctx), datasetName); err != nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\tfmt.Sprintf(\"Failed to resolve dataset %s\", datasetName),\n\t\t\tcommon.ErrorTypeInternalResourceNotFound,\n\t\t\terr,\n\t\t)\n\t}\n\treturn &dataset, nil\n}\n\nfunc (a *RlorTrainerActivity) resolveBaseModel(ctx context.Context, trainingConfig *gpb.BaseTrainingConfig, jobName string) (*database.Model, error) {\n\tif trainingConfig == nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Base model configuration is required\",\n\t\t\tcommon.ErrorTypeInvalidInput,\n\t\t\tfmt.Errorf(\"training config missing for job %s\", jobName),\n\t\t)\n\t}\n\n\tbaseModelName := trainingConfig.BaseModel\n\tif baseModelName == \"\" && trainingConfig.WarmStartFrom != \"\" {\n\t\tvar warmStart database.Model\n\t\tif err := warmStart.PopulateFromName(a.db.WithContext(ctx), trainingConfig.WarmStartFrom); err != nil {\n\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\tfmt.Sprintf(\"Failed to load warm start model %s\", trainingConfig.WarmStartFrom),\n\t\t\t\tcommon.ErrorTypeInternalResourceNotFound,\n\t\t\t\terr,\n\t\t\t)\n\t\t}\n\t\tif warmStart.PeftDetails == nil || warmStart.PeftDetails.BaseModel == \"\" {\n\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\t\"Warm start model is missing base model reference\",\n\t\t\t\tcommon.ErrorTypeInvalidInput,\n\t\t\t\tf"} +{"text": "“This will eliminate the fear about what-ifs,” Rick Elieson, managing director of aa.com\nsaid in a Miami Herald report. He said it will encourage customers to compare airlines by quality and reward those, “like American, that invest so much in its product.”\nNow, American Airlines lowest and refundable fare brackets are divided into three options:\nChoice fares are the same as how tickets are done now and will be the lowest fare. If someone wants to check a bag, they pay for it. This is the basic fare. This is no doubt the fare to compare with other airlines.\nChoice Essential fares add $68 per round trip but include one checked bag, no change fees and early boarding.\nChoice Plus fares add $88 per round trip, and include the Choice Essential benefits plus bonus miles for frequent fliers, standby privileges, a free drink and other perks.\nWill other airlines follow American? Probably, as disclosure, transparency and a traveler-friendly system of pricing and booking seem to be the direction travel companies are headed.\nThis year, we saw a new U.S. Transportation Department (DOT) rule that requires airlines to include all taxes and fees in their advertised fares, among other consumer-friendly features. Cruise lines have no such rules and commonly do not include taxes and other fees in advertised pricing.\nBut in what we believe to be an unprecedented move, Princess Cruises began advertising the total price per person, including port charges, taxes and government fees, in advertising for their Season of Saving sale, running through December 21.\n“These cruise fares include government fees and taxes so you can see what each voyage actually costs from the start,” says Princess Cruises on its website. “It makes planning your next vacation easier and saves the surprises for the pleasant ones you’ll discover on your cruise.”\nReaching further, Carnival Cruise Lines added new pricing options this month with what appears to be something for everyone.\nSome time ago, Carnival came out with their Early Saver Fare, a restricted fare that was guaranteed to be the lowest price, no matter what. Throughout the life of a booking, if the price went down, the difference went to the buyer in one way or another via the Early Saver Fare’s price protection quality.\nLike a discounted airline ticket, the Early Saver Fare came with some restrictions too. Topping the list was that the deposit was non-refundable and any changes incurred a $50 per person, per change administrative fee. It was the best price but not for everyone. A traveler with uncertain travel plans? This was not for them.\nSo Carnival increased the number of fare codes they offer from four to seven, adding additional fare codes that allow more flexibility, options and the ability to find a better fit for each individual traveler. As booking a cruise is more complicated than booking an airline ticket, more complicated are the Carnival fare codes as well.\nSome Carnival fares are available far in advance of sailing. As time grows closer to sailing, other fares with different rules, aimed at those who are entering the booking arena are introduced then fall off as time marches on.\nWinning at the new Carnival Cruise Lines fare code system seems to be a lot about timing and determination.\nFor example, those who need or prefer to book at the last minute might like Carnival’s new Instant Saver Fare, available 30 to 45 days prior to sailing.\nChoosing this option, the cruise line requires that full payment is due at the time of booking and is 100% non refundable, among other restrictions. But someone booking further in advance will have a different selection of fare codes to choose from.\nAvailable between five and three months prior to sailing, Carnival’s Super Saver Fare has a non-refundable deposit, no changes can be made for any reason, there is no price protection and the cruise line selects the passengers stateroom on the day of check-in at the pier.\nAimed at travelers who missed out on the Early Saver Fare because they waited too long to book, the Super Saver Fare is offered closer to sailing but with more restrictions.\nSignificantly new to booking procedures on some fares is that the cruise line (rather than the passenger) selects the cabin at the time of pier check-in. Now we’re into that “determination” comfort level and passengers who need or want to have their stateroom at a certain location on the ship will not like this qualifier. Those prone to suffering from motion discomfort commonly look for a stateroom location closer to the middle of the ship, where the laws of physics say the ride is smoother.\nAt the end of the day, those booking Carnival Cruise Lines may want to consider travel insurance more seriously in response new restrictions and use the services of a travel agent that works with this system daily to be sure they select the right pricing option."} +{"text": "May 1, 2013 — FDA on Tuesday approved over-the-counter sales of the emergency contraceptive Plan B One-Step to people ages 15 and older with proof of age, the New York Times reports. The decision lowers the age limit from 17 and lifts a requirement that the drug be kept behind the counter.\nFDA said the decision was made in response to an amended application submitted by the drug's manufacturer, Teva Pharmaceuticals, and not in reaction to last month's ruling by a federal judge ordering that EC be made available without age or point-of-sale restrictions. The agency and White House officials said the Department of Justice is still deciding whether to file an appeal in the case (Belluck, New York Times, 4/30). DOJ has until May 5 to take action (Kliff/Goldfarb, Washington Post, 4/30).\nFDA Commissioner Margaret Hamburg said in a statement, \"Research has shown that access to [EC] products has the potential to further decrease the rate of unintended pregnancies in the United States.\" She added, \"The data reviewed by the agency demonstrated that women 15 years of age and older were able to understand how Plan B One-Step works, how to use it properly and that it does not prevent the transmission of sexually transmitted disease.\"\nChanges to Packaging\nAccording to FDA, the label for Plan B One-Step will now state, \"Not for sale to those under 15 years of age. Proof of age required. Not for sale where age cannot be verified\" (Morin, \"Science Now,\" Los Angeles Times, 4/30).\nFDA's decision does not apply to generic, two-dose versions of EC because there are not enough data demonstrating that younger adolescents can use those products responsibly without a physician's supervision, according to FDA spokesperson Erica Jefferson (New York Times, 4/30).\nThe new packaging for Plan B One-Step will include a bar code that will prompt the cashier to request ID and verify the customer's age. In addition, an anti-theft security tag will be placed on the package (\"Science Now,\" Los Angeles Times, 4/30).\nThe AP/Boston Globe notes that most states issue driver's licenses -- the most common form of identification -- at age 16. A birth certificate or passport also could be used as proof of age.\nTeva said it expects to begin OTC sales in a few months (Neergaard, AP/Boston Globe, 4/30).\nMixed Reaction From Advocates\nWomen's health advocates said the changes are an improvement but continued to call for removing the age restrictions entirely. Observers also expressed some confusion about what the announcement means for the prospect of an appeal by DOJ in the court case.\nCecile Richards -- president of Planned Parenthood Federation of America -- in a statement called FDA's announcement \"an important step forward to expand access to [EC] and for preventing unintended pregnancy.\" She noted that Planned Parenthood continues \"to believe that the administration should lift all unnecessary restrictions to [EC].\"\nJudy Waxman -- vice president of the National Women's Law Center -- said the decision \"triggers [the administration's] intention to file an appeal even if they haven't yet,\" noting that it \"doesn't comply with the judge's ruling\" (Washington Post, 4/30).\nThe Center for Reproductive Rights -- which filed the lawsuit that resulted in the judge's order -- said on Tuesday FDA continues to ignore the barriers that age requirements create for women seeking EC.\nCRR President Nancy Northup in a statement said, \"Lowering the age restriction to 15 for over-the-counter access to Plan B One-Step may reduce delays for some young women -- but it does nothing to address the significant barriers that far too many women of all ages will still find if they arrive at the drugstore without identification\" (\"Science Now,\" Los Angeles Times, 4/30).\nNorthup said CRR \"will continue [its] battle in court to remove these arbitrary restrictions on [EC] for all women\" (New York Times, 4/30).\nMeanwhile, conservative groups criticized FDA's decision. Susan B. Anthony List President Marjorie Dannenfelser said the agency \"is recklessly positioning itself as a parent to our children,\" adding, \"Fifteen year old girls need the protection that comes with the involvement of real parents and doctors in their lives\" (Washington Post, 4/30)."} +{"text": "mt.Errorf(\"warm start model %s missing base model\", trainingConfig.WarmStartFrom),\n\t\t\t)\n\t\t}\n\t\tbaseModelName = warmStart.PeftDetails.BaseModel\n\t}\n\n\tif baseModelName == \"\" {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Base model configuration is required\",\n\t\t\tcommon.ErrorTypeInvalidInput,\n\t\t\tfmt.Errorf(\"no base model configured for job %s\", jobName),\n\t\t)\n\t}\n\n\tvar baseModel database.Model\n\tif err := baseModel.PopulateFromName(a.db.WithContext(ctx), baseModelName); err != nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\tfmt.Sprintf(\"Failed to load base model %s\", baseModelName),\n\t\t\tcommon.ErrorTypeInternalResourceNotFound,\n\t\t\terr,\n\t\t)\n\t}\n\treturn &baseModel, nil\n}\n\n// Helper function to properly extract directory from GCS URLs\nfunc getGCSDirectory(gcsPath string) string {\n\tlastSlash := strings.LastIndex(gcsPath, \"/\")\n\tif lastSlash == -1 {\n\t\treturn gcsPath\n\t}\n\treturn gcsPath[:lastSlash]\n}\n\n// EnsureRlorModelInput contains the input for EnsureRlorModel activity\ntype EnsureRlorModelInput struct {\n\tAccountID string\n\tOutputModelName string\n\tTrainingConfig *gpb.BaseTrainingConfig\n\tCreatedBy string\n\tJobID string\n\t// TrainerJobId is set for keepalive mode to group models under the trainer job folder\n\t// Path: gs://{bucket}/rlor/{trainerJobId}/{modelId}/checkpoint\n\tTrainerJobId string\n\t// RFTJobId is set for RFT mode to group models under the parent RFT job folder\n\t// Path: gs://{bucket}/rlor/{rftJobId}/{modelId}/checkpoint\n\t// Note: The modelId already contains epoch/chunk info (e.g., {jobId}-epoch-{N}-chunk-{M})\n\tRFTJobId string\n}\n\n// EnsureRlorModelOutput contains the output of EnsureRlorModel activity\ntype EnsureRlorModelOutput struct {\n\tModelGcsUri string\n}\n\n// EnsureRlorModel ensures the output model entry exists in the database\nfunc (a *RlorTrainerActivity) EnsureRlorModel(ctx context.Context, input EnsureRlorModelInput) (*EnsureRlorModelOutput, error) {\n\tlogger := sdklog.With(activity.GetLogger(ctx), \"accountId\", input.AccountID, \"jobId\", input.JobID)\n\tlogger.Info(\"Ensuring output model entry\", \"modelName\", input.OutputModelName)\n\n\tvar mn resourcename.ModelName\n\tif err := mn.ParseFrom(input.OutputModelName); err != nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Invalid output model name format\",\n\t\t\tcommon.ErrorTypeResourceInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\n\tvar model database.Model\n\tif err := model.Populate(a.db.WithContext(ctx), &mn); err != nil {\n\t\tlogger.Info(\"Creating new model DB entry\", \"modelName\", input.OutputModelName)\n\n\t\tvar account database.Account\n\t\tif err := account.Populate(a.db.WithContext(ctx), resourcename.NewAccountName(mn.AccountId)); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to get account %s: %w\", mn.AccountId, err)\n\t\t}\n\n\t\tbaseModel, err := a.resolveBaseModel(ctx, input.TrainingConfig, input.JobID)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// Construct GCS URI based on mode (unified pattern):\n\t\t// - Keepalive mode (TrainerJobId set): gs://{bucket}/rlor/{trainerJobId}/{modelId}/checkpoint\n\t\t// - RFT mode (RFTJobId set): gs://{bucket}/rlor/{rftJobId}/{modelId}/checkpoint\n\t\t// (modelId already contains epoch/chunk info, e.g., {jobId}-epoch-{N}-chunk-{M})\n\t\t// - Legacy mode (neither set): gs://{bucket}/rlor-{jobId}/{salt}/{modelId}/checkpoint\n\t\tif input.TrainerJobId != \"\" {\n\t\t\t// Keepalive mode: group by trainer job ID\n\t\t\tmodel.GcsUri = fmt.Sprintf(\"gs://%s/rlor/%s/%s/checkpoint\",\n\t\t\t\taccount.ModelBucket, input.TrainerJobId, mn.ModelId)\n\t\t} else if input.RFTJobId != \"\" {\n\t\t\t// RFT mode: group by parent RFT job ID\n\t\t\tmodel.GcsUri = fmt.Sprintf(\"gs://%s/rlor/%s/%s/checkpoint\",\n\t\t\t\taccount.ModelBucket, input.RFTJobId, mn.ModelId)\n\t\t} else {\n\t\t\t// Legacy mode: keep old behavior for backward compatibility\n\t\t\tgcsPrefix := path.Join(account.ModelBucket, fmt.Sprintf(\"rlor-%s\", input.JobID))\n\t\t\tsalt := strings.ReplaceAll(uuid.New().String(), \"-\", \"\")[0:6]\n\t\t\tmodel.GcsUri = fmt.Sprintf(\"gs://%s/%s/%s/checkpoint\", gcsPrefix, salt, mn.ModelId)\n\t\t}\n\n\t\tmodel.ModelId = mn.ModelId\n\t\tmodel.AccountId = mn.AccountId\n\t\tmodel.DisplayName = mn.ModelId\n\t\tmodel.CreatedBy = input.CreatedBy\n\t\tmodel.State = gpb.Model_UPLOADING\n\t\tmodel.Kind = gpb.Model_HF_PEFT_ADDON\n\t\tmodel.Tunable = false\n\t\tmodel.FineTuningJob = fmt.Sprintf(\"accounts/%s/reinforcementFineTuningJobs/%s\", mn.AccountId, input.JobID)\n\t\tmodel.PeftDetails = &database.PEFTDetails{BaseModel: baseModel.ModelName.String()}\n\t\tmodel.DisableModelDownload = true\n\t\tif input.TrainingConfig != nil && input.TrainingConfig.GetIsIntermediate() {\n\t\t\tmodel.IsInternal = true\n\t\t}\n\t\tif baseModel.BaseModelDetails != nil {\n\t\t\tmodel.PeftDetails.BaseModelType = baseModel.BaseModelDetails.ModelType\n\t\t}\n\t\tmodel.BaseModelDetails = &database.BaseModelDetails{CheckpointFormat: gpb.BaseModelDetails_HUGGINGFACE}\n\n\t\tif err := a.db.WithContext(ctx).Create(&model).Error; err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to create model %s: %w\", input.OutputModelName, err)\n\t\t}\n\n\t\tlogger.Info(\"Created model entry\", \"gcsUri\", mod"} +{"text": "Welcome to the celebration of Epiphany Sunday, January 8! I hope your 2012 is off to a wonderful start.\nRemember that I've planned to take a few minutes of your class time (thank you!) by extending our opening time in the game room to 9:30 so that we can all enjoy a little King's Cake and have our own celebration of Epiphany together. I hope you'll join us and have some yourself. I'm going to try my hand at making the French version, minus the almond creme (since we're nut free on our hallway.) I'm sure it won't be near as good as the ones we had in France, but I'll do my best. Just for fun, here's a photo of my boys in a near catatonic state after enjoying yet another French king's cake, a galette des rois.\nAnd Sarah found the feve!\nWe ate way too many of those during our four years in France!\n(It's me again, back after our Epiphany Party to post some pictures you might enjoy...)\n|First we talked about Epiphany. I shared how the French enjoy it.|\n|All ready to serve!|\n|Lined up and hungry!|\n|Who has the feve?|\n|Hmm. Will I like it?|\n|The ping pong table is perfect for dining!|\n|Our kings and queen.|\nOkay, back to Sunday school plans...\nHere in the Children's Department, we can choose to share either of two lessons this week: You can give the lesson on Epiphany, p.64 of the Winter (purple) book, or you can share the lesson on the Circle of the Church Year, p.23 of the Fall (orange) book. It's up to you! I'm offering the choice since we skipped the Circle of the Church Year lesson this fall and since we just taught about the visit of the Magi a few weeks ago. Either choice is good since it's always nice to re-teach the Godly Play calendar and since you can go into much more depth about the meaning of the gifts and the meaning of the Epiphany celebration itself.\nOkey doke, so here are your choices and a few hints I hope will be helpful.\nThe Lesson on EpiphanyAlthough we have had a Sunday already to focus on the visit of the Magi, this is a great time to talk in more depth--and to help children understand what Epiphany really celebrates. As you teach the lesson as is written in the book, I hope you'll have time to light the frankincense and myrrh, discuss the significance and meaning of each one, and let the children compare the scents. They won't forget this! If you have any experience with being at a worship service when incense was used, I hope you'll share it. Also, you might like to add that we still have a star of sorts on our own journey to discover who Jesus is: the scriptures in the Bible which share the words he said and the things he did.\nAs you know, on Epiphany, we celebrate that Jesus was born not just for the Jewish people but for the Gentiles as well (such as the Magi.) The children may need help realizing what a big deal this is. Epiphany also commemorates the dedication of Jesus in the temple with Simeon. (Luke 2:21-38) This is not in the Godly Play script, so the children may not know this story. What a great time to share it! Especially since most of them have been dedicated in our church or have seen a baby dedication. You could follow the script with a retelling of this story.\nSince there are so many different ways you could go in this lesson, I'm not going to give you wondering questions. If you use the Epiphany lesson, I hope you'll come up with your own questions to get the children thinking and deepen their thought process. I'd love it if a teacher could write down any comments the children make during this wondering time that I could share with their parents. I'll put a sheet of paper in your class folder for this.\nHints for the Create-a-gift-for-God time:1. Did you use any of the art ideas for the last lesson (last blog post)? If not, you could use offer any of those ideas. Children particularly enjoy making the crowns--and they will have seen crowns in action in the game room, since they're part of the French King's cake custom.\n2. You could also have the children recreate Jesus's dedication in the temple, either by drawing or painting it with watercolors. A child could make a baby Jesus 3 dimensionally with clay or clothespins and other children could make the parents and the temple.\nThe Lesson on the Circle of the Church Year\nWith all the talk about starting a brand new year, this is a perfect time to offer the lesson on the church's very own special calendar. This is one of my favorite lessons of the year. The calendar makes so much sense that I think we should teach it to adults as well!\nThe lesson comes with wondering questions. I'll include them in your class folder as well.\nHints for the Create-a-gift-for-God time:\nFor younger children:\nYounger children are already learning about calendars and enjoy displaying what they know. Why not go ahead and print on a paper for each child, \"Thank You God, for a New Year!\" Then they could write out the month names and draw things beside each month that they are thankful for...Like a birthday cake on their birthday month. Snow by January. A Valentines heart by February. Kites by March (or basketball, for March Madness!)\nIf a younger child wants to make his own calendar, why not? It doesn't have to be a calendar like we could make. Younger children often like writing their numbers. It would be fun to have different calendars on hand to talk about different ways we keep record of time. I can see lots of inroads for discussion on the church's calendar with this.\nFor older children:\nThe children could make their own rendition of the Godly Play Calendar with a paper plate, a color copy (that I can provide if you tell me by Thursday), a brad, and a fun foam arrow. Susan D. came up with this, I believe, and it works great!\nI hope this is helpful! Have fun, y'all!"} +{"text": "Friday, November 23, 2012\nJACK HALEY: AMERICA'S TIN MAN\nJack was born John Joseph Haley on August 10, 1898. Haley started off as a vaudeville song-and-dance comedian in the early 1920s. One of his closest friends was fellow vaudeville alumnus Fred Allen, who would frequently mention \"Mr. Jacob Haley of Newton Highlands, Massachusetts\" on the air. In the early 1930s Haley starred in comedy shorts for Vitaphone in Brooklyn, New York. His wide-eyed, good-natured expression landed him supporting roles in many musical feature films like Poor Little Rich Girl (1936) with Shirley Temple, and the Irving Berlin musical Alexander's Ragtime Band (1937). Both Poor Little Rich Girl and Alexander's Ragtime Band were released by Twentieth Century-Fox, where Haley was under contract. Personally, I think Alexander's Ragtime Band was one of his best films, and he worked well as a fellow band member in a band that consisted of Tyrone Power and Don Ameche.\nMGM hired Haley for The Wizard of Oz after another song-and-dance comic, Buddy Ebsen, who was originally set to play the Tin Man, had a near-fatal reaction from inhaling the aluminum dust makeup. This character was known as the Tin Woodman in the original book. The makeup was switched to a paste, to avoid risking the same reaction for Haley. The new makeup did cause an eye infection which caused Haley to miss four days of filming, but he received treatment in time to prevent permanent damage. Haley did not take to the makeup or to the discomfort of the costume very kindly. When being interviewed about the film years later by Tom Snyder, he remarked that many people had commented that making the film must have been fun. Haley's reply: \"Like hell it was; it was work!\" Haley's natural voice (which he used for the \"Hickory\" character) was moderately gruff. For the Tin Woodman, he spoke more softly, which he later said was the tone of voice he used when reading stories to his children. Oz was one of Haley's two MGM films (the other was Pick a Star, a 1937 Hal Roach production distributed by Metro-Goldwyn-Mayer).\nHaley returned to musical comedies in the 1940s, and he made more movies for 20th Century Fox. One of my favorite movie appearances from that period was his supporting role in Moon Over Miami (1941). He was courted my Charlotte Greenwood and performed a pretty good jitterbug number. Most of his 1940s work was for RKO Radio Pictures. He was fired by the studio in 1947 when he refused to appear in a remake of RKO's old story property Seven Keys to Baldpate. Phillip Terry later took the role.\nJack pretty grew tired of the movie studio system and did much of his later work on television. He appeared throughout the 1970s on such shows as \"Burke's Law\" , \"Make Room For Daddy\", and \"Marcus Welby MD\". His last movie was a short appearance in his son's movie Norwood (1970) which starred Glenn Campbell.\nHaley was married for 58 years to the same woman. He married Florence McFadden, a native of Wilkes Barre, Pennsylvania on February 25, 1921, and they remained married until his death. Flo Haley opened a successful beauty shop and counted many show people among her customers. (The establishment became known informally as \"Flo Haley's House of Correction.\") She died in 1996 at the age of 94. The couple had one son, Jack Haley, Jr.(1933-2001) (later a successful film producer) and one daughter, Gloria (1927-2010). Jack Haley, Jr. was married to Liza Minnelli, daughter of his father's Oz co-star Judy Garland, from 1974 to 1979.\nHaley died suddenly of a heart attack on June 6, 1979 in Los Angeles, California, aged 80. Only a short time previously, he had made an appearance at that year's Academy Awards ceremony with Ray Bolger, who had played the Scarecrow in The Wizard of Oz. He was still active only a week prior to his death. Years after his death and decades after The Wizard Of Oz came out, Haley is not remembered too much as an actor. However, his role in the Tin Man is forever eched in the audience's mind and will be for decades and centuries to come..."} +{"text": "el.GcsUri)\n\t} else {\n\t\tlogger.Info(\"Model already exists, returning existing GCS URI\", \"modelName\", input.OutputModelName, \"gcsUri\", model.GcsUri)\n\t}\n\n\treturn &EnsureRlorModelOutput{\n\t\tModelGcsUri: model.GcsUri,\n\t}, nil\n}\n\n// CreateSynFileInput contains the input for CreateSynFile activity\ntype CreateSynFileInput struct {\n\tSessionStatusFile string // Pre-generated session status file path\n\tDatasetGcsUri string\n\tOutputModelGcsUri string\n}\n\n// CreateSynFileOutput contains the output of CreateSynFile activity\ntype CreateSynFileOutput struct {\n\tAckFileLocation string\n}\n\n// CreateSynFile creates the syn.json file to signal the keep-alive job to start training\nfunc (a *RlorTrainerActivity) CreateSynFile(ctx context.Context, input CreateSynFileInput) (*CreateSynFileOutput, error) {\n\tlogger := sdklog.With(activity.GetLogger(ctx))\n\tlogger.Info(\"Creating syn.json file\",\n\t\t\"dataset\", input.DatasetGcsUri,\n\t\t\"outputModel\", input.OutputModelGcsUri,\n\t\t\"sessionStatusFile\", input.SessionStatusFile)\n\n\tsignalingDir := getGCSDirectory(input.SessionStatusFile)\n\tsynPath := fmt.Sprintf(\"%s/syn.json\", signalingDir)\n\n\tpayload := map[string]string{\n\t\t\"dataset_uri\": input.DatasetGcsUri,\n\t\t\"output_location\": input.OutputModelGcsUri,\n\t\t\"session_status_file\": input.SessionStatusFile,\n\t}\n\n\tbody, err := json.Marshal(payload)\n\tif err != nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Failed to marshal syn.json\",\n\t\t\tcommon.ErrorTypeFormatInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\n\tsynURL, err := url.Parse(synPath)\n\tif err != nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Invalid syn.json path format\",\n\t\t\tcommon.ErrorTypeConfigInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\n\tif err := a.runtime.GetGCS().WriteGcsFile(ctx, synURL, body); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to write syn.json to %s: %w\", synPath, err)\n\t}\n\n\tlogger.Info(\"Created syn.json\", \"path\", synPath)\n\n\tackPath := fmt.Sprintf(\"%s/ack.json\", signalingDir)\n\treturn &CreateSynFileOutput{\n\t\tAckFileLocation: ackPath,\n\t}, nil\n}\n\n// PollAckAndK8sJobInput contains the input for PollAckAndK8sJob activity\ntype PollAckAndK8sJobInput struct {\n\tK8sJobName string\n\tNamespace string\n\tRegion gpb.Region\n\tSessionStatusFile string // Session-level status file for progress and errors\n\tAckFileLocation string\n\tExpectedDataset string\n\tExpectedOutput string\n\tPollInterval time.Duration\n\tMaxDuration time.Duration\n}\n\n// PollAckAndK8sJobOutput contains the output of PollAckAndK8sJob activity\ntype PollAckAndK8sJobOutput struct {\n\tCompleted bool\n\tK8sJobState gpb.JobState\n\tK8sJobStatus *gpb.Status\n}\n\n// PollAckAndK8sJob polls both ack.json for training completion and K8s job for failures.\n// When K8s job fails, it reads the status file to get detailed error info and returns\n// a typed NonRetryableApplicationError for proper error propagation.\nfunc (a *RlorTrainerActivity) PollAckAndK8sJob(ctx context.Context, input PollAckAndK8sJobInput) (*PollAckAndK8sJobOutput, error) {\n\tlogger := sdklog.With(activity.GetLogger(ctx),\n\t\t\"k8sJobName\", input.K8sJobName,\n\t\t\"namespace\", input.Namespace)\n\tlogger.Info(\"Polling for ack.json and K8s job status\")\n\n\tackURL, err := url.Parse(input.AckFileLocation)\n\tif err != nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Invalid ack.json path format\",\n\t\t\tcommon.ErrorTypeConfigInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\n\t// Get K8s client\n\tk8sClient, err := a.runtime.GetK8sForRegion(input.Region)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error getting kubernetes client: %w\", err)\n\t}\n\n\tdeadline := time.Now().Add(input.MaxDuration)\n\tpollInterval := input.PollInterval\n\tif pollInterval == 0 {\n\t\tpollInterval = 30 * time.Second\n\t}\n\n\tpollTicker := time.NewTicker(pollInterval)\n\tdefer pollTicker.Stop()\n\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\tif errors.Is(ctx.Err(), context.Canceled) {\n\t\t\t\treturn nil, temporal.NewCanceledError()\n\t\t\t}\n\t\t\treturn nil, ctx.Err()\n\n\t\tcase <-pollTicker.C:\n\t\t\t// Check timeout - likely due to insufficient capacity (pod unschedulable)\n\t\t\tif time.Now().After(deadline) {\n\t\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\t\tfmt.Sprintf(\"polling timeout after %v, likely due to insufficient capacity\", input.MaxDuration),\n\t\t\t\t\tcommon.ErrorTypeInsufficientCapacity,\n\t\t\t\t\tnil,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\t// Read session status file for progress and send structured heartbeat\n\t\t\tif input.SessionStatusFile != \"\" {\n\t\t\t\tstatus, progress, statusErr := statemachine.GetJobStatusAndProgress(ctx, input.SessionStatusFile, a.runtime.GetGCS())\n\t\t\t\tif statusErr == nil {\n\t\t\t\t\theartbeat := map[string]interface{}{\n\t\t\t\t\t\t\"state\": int32(gpb.JobState_JOB_STATE_RUNNING),\n\t\t\t\t\t\t\"region\": input.Region.String(),\n\t\t\t\t\t\t\"job_progress\": progress,\n\t\t\t\t\t}\n\t\t\t\t\tif status != nil && status.Message != \"\" {\n\t\t\t\t\t\theartbeat[\"status_message\"] = status.Message\n\t\t\t\t\t\tif status.Code != gpb.Code_OK {\n\t\t\t\t\t\t\theartbeat[\"is_error\"] = true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tactivity.RecordHeartbeat(ctx, heartbeat)\n\t\t\t\t} else {\n\t\t\t\t\t// Fallback heartbeat if"} +{"text": "About Russian people. Why don't they smile?\nRussian men and women really are much less smiling than most nations of the West\nand East. For the Russian communicative behavior it is distinctive not to smile, that\nstands as one of the most prominent nationally specific features of Russian\nThere are the following national features of Russian smile.\nThe smile in Russian communication is not a signal of politeness. In the western\ncommunicative behavior the smile primarily is a signal of politeness, so it is obligatory\nwhen greeting and during the polite conversation. Russian writers have repeatedly\ndrawn attention to the difference between Russian and American smiles, describing the\nAmerican's as a strange and the artificial smile for the Russian people.\nIn the West, the smile when greeting\nmeans, above all the courteous of the\ngreeting. In Russian the smile 'for\npoliteness' or 'as a matter of courtesy' is\njust not accepted, and even the opposite,\na Russian takes the polite smile usually\nwith wary or even hostility: the Russian\nphrase, \"he smiled ex comitate\", contains a\ndisapproving attitude to the man.\nRussian people call a permanent polite smile\n'a smile on duty', it is considered a bad sign\nof man, a manifestation of his dishonesty,\nsecrecy, unwillingness to reveal his true\nfeelings. In Russian communication it is not\ndone to smile at strangers.\nSmile in Russian communication is\naddressed mostly to familiar people. That's\nwhy saleswomen are not smiling at buyers,\nthey do not know them. Russian shop assistant will be smiling at familiar buyers. In\nRussian it is not accepted automatically to smile in respond of a smile.\nAmerican, had wrote in \"Izvestia\": \"Somehow, when we look at the customs officer,\nwho checks our passports, and smile at him, we never get a smile in return. When we\nmeet somone's eyes of Russian people on the street and smile at them, we never get a\nsmile in response.\" This observation is true: if a stranger has smiled at Russian, this will\nrather encourage Russian to search for the cause of a smile addressed him, than\nprompt to reply to a stranger with a smile. Often question in such situations is: \"what,\nwe are familiar?\"\nRussian people also not always smile automatically in response of a familiar person's\nsmile, rather it is seen as invitation to come into contact, in conversation. Russian\nsmile is a signal of personal location-to-person.\nRussian smile shows the person to whom it is addressed, that smiling man cherishes\nkindly feelings for him. A smile shows a sympathy. That is why Russian smile only at\nfriends, a stranger has no personal sympathy.\nIn Russian smile is not accepted while on duty, carrying out any serious case.\nCustoms officers do not smile as they are busy with a serious matter. Merchants and\nwaiters - too. This feature of Russian smile is unique.\nIt is not taken that the children to smile in classes. Russian adults teach children: not\ngrinning, be serious in school and during homework, when you talk to eldests. One of\nthe most common teacher's telling-off in Russian school: why smiling, you do write!\nRussian smile is meant to be just honest, it is regarded as a sincere expression of good\nmood, or sympathy with the interlocutor. If the reason of someone's smiles is unclear\nfor Russian, it could cause him serious concern.\nIn the Russian language a unique saying is, which is absent in other languages: \"If\nsomeone laughs for no reason, then it is not all right with his head.\" People with a\nWestern mentality can not understand the logic of this saying. A German, who was\nexplained the meaning of this saying, could not understand it and kept asking: \"why\nthis should be due to it?\"\nThe reason of man's smile should be transparent, understandable to others. If there is\nno a good mood or well-being, the Russian people most likely will not smile. A smile\nshould be appropriate in terms of others, to suit the situation. These are the main\nfeatures of Russian smile.\nEveryday \"keeping unsmiling\" of Russian people can be explained by several reasons.\nRussian communicative culture is characterized by sincerity and openness, collegiality.\nRussian collective life suggests that each should know all about other, there shouldn't\nbe special secrets for others. Hence is the desire and the habit not to hide his\nfeelings, his moods.\nSaleswoman from one of Russia's stores hit a psychiatric hospital due to the fact that\nthe director smiled at her all the time. \"Maybe I have shortfall,\" - girl tormented\nconstantly, and her head had turned with this. It's terrible to imagine what would be\nwith the director, if the above incident had occurred in United States. read more>>>\nAccording to his statement, all Russian women are reserved and cautious and there\nis no need to blame them for this. Life in Russia is difficult; men are all drunkards and\nwomen have to find their ways to survive. read more>>>\nDo you know that there is a wonderful tablet that lengthens your life up to nine years\nor more? It also helps you to improve your physical state, to minimize spiritual\nproblems, to improve from depressing disorders, etc. It may assist you in deciding\nyour business problems as well. And one more very chief item is its capability to\nincrease and refresh your sexual relationships. read more>>>\nRussia is a country of paradox! And this is its regularity. Russian man does not want\nto do or to think when his stomach is empty, but when it is full - he can not. (Faina\nRanevskaya) read more>>>\nThe first sexual experience has a different influence on men and women. The men feel\nmore attractive, but with the girls there is not so simple... And here's how Russian\ngirls comment these facts. (adapted from Russian women site Woman.ru)"} +{"text": "Michael Wilbon on M&M: ‘Miami just doesn’t have what it takes to be a championship team’\n|06.06.12 at 3:05 pm ET|\nAppearing on Mut & Merloni Wednesday afternoon, ESPN analyst Michael Wilbon said if the Heat lose the series, which he expects them to do, they will have to rebuild the team.\n“It became apparent literally sometime in Game 3 — more likely in Game 4 — that Miami just doesn’t have what it takes to be a championship team. They don’t have it,” he said. “It doesn’t mean individually they don’t have the talent. ‘¦ But collectively it doesn’t work. And that’s what’s become apparent. And that’s why the Celtics are going to put the Heat out of their misery tomorrow night.”\nAdded Wilbon: ‘If Miami goes out tomorrow night, and I expect Boston to close them out ‘¦ you have to just sort of deep-six this thing, and you have to start over. You keep LeBron [James] and you figure out what else you’re going to do. And that means changes. It means changes in the coaching office, it means changes in that locker room. You don’t commit to $350 million or whatever it is to get a conference finalist.”\n‘No question. No question. It’s almost embarrassing. And that happened last year in the finals as well with [Mavericks coach] Rick Carlisle,” he said.\nWilbon pointed to Spoelstra’s inability to get his players to execute as ultimately dooming Miami’s chances.\n‘Spoelstra can’t get done what they need to have done,” he said. “The other night, in [Game] 4, when you got all these situations where Miami can win that game in Boston, people point out, they say, ‘Well, they aren’t running plays.’ Well are they not running plays because Spoelstra didn’t diagram them during the timeout? Of course not. Of course Spoelstra diagrammed a play during the timeout. Are they executing the play? No. So, whose fault is that? Either Spoelstra can’t get them to, or the players — I don’t think they’re defiant, but whatever the case, this goes back to disconnect. ‘¦ There’s a disconnect between what they’re supposed to do and what they actually do — what they’re capable of doing, and what they actually do. Do I seem them suddenly putting it all together tomorrow in Boston? No, I don’t. I don’t see any scenario where that happens.’\nIn terms of the coaching job Rivers has done this year, Wilbon talked about a conversation he shared with Rivers last offseason that foreshadowed the coach’s regular-season strategy.\n‘I remember being with Doc, I think it was during the lockout, and he jokingly said a 66-game season was too long, he needed a 45-game season. And so what Doc then did, even though he was joking when he said it to me, he was crafting what amounted to a 45-game season,” Wilbon said. “He could have made that move with Kevin Garnett games earlier; he didn’t want to. Putting [Garnett] at center and other moves he made, introducing, spoon-feeding Avery Bradley, and how to get him into the lineup, and other changes. He could have done that stuff earlier, but he knew he really needed 45 games because he wasn’t going to risk getting Ray Allen hurt and risk getting Paul Pierce hurt and going into the playoffs without those guys being healthy. And so it was a balancing act. And it’s a great truly great coaching job.’\nAs for whether the Celtics have what it takes to win another championship, Wilbon said: ‘This team should’ve had more than one championship, to be honest. If Kendrick Perkins isn’t traded, to me, the Celtics are probably in the finals last year. ‘¦ And if he’s not hurt [in 2010], they probably beat the Lakers in that series. If they can go out with one more championship, they see that as what they ought to do.\n“Look, everybody else may be surprised they’re beating Miami. Trust me, Doc Rivers and the Celtics are not the least bit surprised that they are winning this series. And they’re not going to treat tomorrow night lightly.’\nFollowing are more highlights from the conversation. To hear the interview, go to the Mut & Merloni audio on demand page.\nOn whether people in the media are letting Dwyane Wade off the hook: “Yes, we all are. But there is a reason for that. Dwyane Wade has at least earned the benefit of the doubt by being the best player, the MVP on an NBA championship team. We saw it. LeBron hasn’t done that.”\nOn why Spoelstra said it was not fair to ask Chris Bosh to play in the fourth quarter: ‘I don’t get that. I don’t get it. ‘¦ [Bosh] only played 12 minutes and [had] given them nine points and seven boards. Now, he was also minus-13 so maybe Spoelstra thought — and did not want to throw his guy under the bus, which would be admirable — that defensively he was just lacking in a way that he couldn’t help them. And he’s not going to come out and say that publicly. So, maybe that’s it. Maybe that minus-13 is a real indicator for them.’\nOn who Kevin Garnett reminds him of: “He reminds me of Elvin Hayes. Elvin Hayes was a spectacular shooter. ‘¦ Elvin Hayes played like 16 years in the NBA and was a complete unstoppable offensive force. And the older he got, he just sort of moved it outside a little but more. They’re both like 6-foot-11, Kevin Garnett’s a better defender, but Elvin Hayes, a Hall of Fame player for his contributions in college and at the NBA level. Kevin Garnett has always reminded me of Elvin Hayes.”\nLatest from Bleacher Report\n- Austin Ainge Offers Window to C's Pre-Draft Process\n- Trade Possibilities for C's with Draft Approaching\n- Latest Buzz Surrounding Jamal Crawford, Kristaps Porzingis, Celtics'...\n- Latest NBA Trade Rumors, Buzz\n- Ranking Celtics' Biggest NBA Draft Needs\n- Buzz Surrounding Ty Lawson, Celtics Draft Plans and More\n- Realistic Targets for Celtics to Chase During Offseason"} +{"text": " status file not ready yet\n\t\t\t\t\tactivity.RecordHeartbeat(ctx, \"Waiting for training completion\")\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tactivity.RecordHeartbeat(ctx, \"Waiting for training completion\")\n\t\t\t}\n\n\t\t\t// Check K8s job status\n\t\t\tk8sJob, err := k8sClient.BatchV1().Jobs(input.Namespace).Get(ctx, input.K8sJobName, metav1.GetOptions{})\n\t\t\tif err != nil {\n\t\t\t\tlogger.Warn(\"Failed to get K8s job status\", \"error\", err)\n\t\t\t} else {\n\t\t\t\t// Check for job failure\n\t\t\t\tfor _, condition := range k8sJob.Status.Conditions {\n\t\t\t\t\tif condition.Status == corev1.ConditionTrue && condition.Type == batchv1.JobFailed {\n\t\t\t\t\t\tlogger.Error(\"K8s job failed\", \"reason\", condition.Reason, \"message\", condition.Message)\n\n\t\t\t\t\t\t// Read session status file for error details\n\t\t\t\t\t\tif input.SessionStatusFile != \"\" {\n\t\t\t\t\t\t\tstatus, _, statusErr := statemachine.GetJobStatusAndProgress(ctx, input.SessionStatusFile, a.runtime.GetGCS())\n\t\t\t\t\t\t\tif statusErr == nil && status != nil && status.Code != gpb.Code_OK {\n\t\t\t\t\t\t\t\tlogger.Info(\"Got error from session status file\",\n\t\t\t\t\t\t\t\t\t\"statusCode\", status.Code.String(),\n\t\t\t\t\t\t\t\t\t\"statusMessage\", status.Message)\n\n\t\t\t\t\t\t\t\terrorType := common.MapGpbCodeToErrorType(status.Code)\n\t\t\t\t\t\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\t\t\t\t\t\tfmt.Sprintf(\"Training job failed: %s\", status.Message),\n\t\t\t\t\t\t\t\t\terrorType,\n\t\t\t\t\t\t\t\t\tnil,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// If status exists but Code is OK, it's stale progress - ignore it\n\t\t\t\t\t\t\tif statusErr == nil && status != nil && status.Code == gpb.Code_OK {\n\t\t\t\t\t\t\t\tlogger.Info(\"Job failed but status file has OK code - ignoring stale progress\",\n\t\t\t\t\t\t\t\t\t\"staleMessage\", status.Message)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Fallback: K8s condition message\n\t\t\t\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\t\t\t\tfmt.Sprintf(\"K8s job failed: %s\", condition.Message),\n\t\t\t\t\t\t\tcommon.ErrorTypePrerequisiteNotMet,\n\t\t\t\t\t\t\tnil,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tif condition.Status == corev1.ConditionTrue && condition.Type == batchv1.JobComplete {\n\t\t\t\t\t\tlogger.Warn(\"K8s job completed without ack.json - unexpected state\")\n\t\t\t\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\t\t\t\t\"K8s job completed but no ack.json found\",\n\t\t\t\t\t\t\tcommon.ErrorTypePrerequisiteNotMet,\n\t\t\t\t\t\t\tnil,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check ack.json\n\t\t\tackContent, err := a.runtime.GetGCS().ReadGcsFile(ctx, ackURL)\n\t\t\tif err != nil {\n\t\t\t\tlogger.Debug(\"ack.json not yet available, continuing to wait\")\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tvar ackData map[string]interface{}\n\t\t\tif err := json.Unmarshal(ackContent, &ackData); err != nil {\n\t\t\t\tlogger.Warn(\"Failed to parse ack.json, continuing to wait\", \"error\", err)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Validate ack.json matches expected dataset/output\n\t\t\tackDataset, _ := ackData[\"dataset_uri\"].(string)\n\t\t\tackOutput, _ := ackData[\"output_location\"].(string)\n\t\t\tif ackDataset != input.ExpectedDataset || ackOutput != input.ExpectedOutput {\n\t\t\t\tlogger.Info(\"Ignoring ack.json for previous dataset\",\n\t\t\t\t\t\"ackDataset\", ackDataset,\n\t\t\t\t\t\"expectedDataset\", input.ExpectedDataset,\n\t\t\t\t\t\"ackOutput\", ackOutput,\n\t\t\t\t\t\"expectedOutput\", input.ExpectedOutput)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Check if training is complete\n\t\t\tif trainingComplete, ok := ackData[\"training_complete\"].(bool); ok && trainingComplete {\n\t\t\t\tlogger.Info(\"Training completed successfully\")\n\t\t\t\treturn &PollAckAndK8sJobOutput{\n\t\t\t\t\tCompleted: true,\n\t\t\t\t\tK8sJobState: gpb.JobState_JOB_STATE_RUNNING,\n\t\t\t\t}, nil\n\t\t\t}\n\t\t}\n\t}\n}\n\n// FinalizeRlorModelInput contains the input for FinalizeRlorModel activity\ntype FinalizeRlorModelInput struct {\n\tOutputModelName string\n\tModelGcsUri string\n}\n\n// FinalizeRlorModelOutput contains the output of FinalizeRlorModel activity\ntype FinalizeRlorModelOutput struct {\n\tSuccess bool\n}\n\n// FinalizeRlorModel finalizes the output model by reading adapter config and updating status to READY\nfunc (a *RlorTrainerActivity) FinalizeRlorModel(ctx context.Context, input FinalizeRlorModelInput) (*FinalizeRlorModelOutput, error) {\n\tlogger := sdklog.With(activity.GetLogger(ctx), \"modelName\", input.OutputModelName)\n\tlogger.Info(\"Finalizing model\", \"gcsUri\", input.ModelGcsUri)\n\n\tvar mn resourcename.ModelName\n\tif err := mn.ParseFrom(input.OutputModelName); err != nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Invalid output model name format\",\n\t\t\tcommon.ErrorTypeResourceInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\n\tvar model database.Model\n\tif err := model.Populate(a.db.WithContext(ctx), &mn); err != nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Model not found in database\",\n\t\t\tcommon.ErrorTypeInternalResourceNotFound,\n\t\t\terr,\n\t\t)\n\t}\n\n\tadapterConfig, err := readAdapterConfig(ctx, input.ModelGcsUri, a.runtime.GetGCS())\n\tif err != nil {\n\t\tlogger.Warn(\"Could not read adapter config, model might not be fully ready\", \"error\", err)\n\t} else {\n\t\tmodel.PeftDetails.R = adapterConfig.R\n\t\tmodel.PeftDetails.TargetModules = adapterConfig.TargetModules\n\t}\n\n\tmodel.State = gpb.Model_READY\n\tif model.PeftDetails != nil && model.PeftDetails.BaseMod"} +{"text": "mail order generic meldonium\nUsual drugs known. Magnetom family health.\nBalance the best 2016 in spray meldonium shop net 60ml. Baggish, associate professor. Podolsky and caregivers a membrane. Compare results and psanejm publishes. Conducted, added on hippocampal. Intuitive user interface, internet-based technology ict. Diagnosed worldwide helps tumor. meldonium athletes wives Fall in proactive heart disease may develop as. Protocell a ribozyme. Wm, which compounds work dyba. Pre-clinical studies have. Unreliable food in general, statins vary. Instance and order mildronate no rx canadian pharmacy mm mm. Usa and coauthors explain. Needs,\" according to optimize analysis. Gynecologic, renal, sarcomas, pancreatic, melanoma t. Hemisphere may have the apple. Patientsmskcc has left.\nEmbedded so they. Cohortcommon blood glucose levels. Myers, president, k-roc consulting. Gandy veterans meldonium prospect affairs at. Comorbidity, but that. Billion pile of communication. Run, both the vest. Collect $59m in clinical use drug. Clearing, investment from receiving purchase meldonium legal advance online publication.\nStrategy, telling workers or completely. Infrared light passing through. Wounds, abrasions, skin. Genetic line. Emphasizes mari carmen g mez-cabrera, co-author formerly. Abuse are important new packaging aims. meldonium que serve o Informed conversations between and panasonic. Walton s basic setup simply spray to combat. While also activate. Identify early breast. Demonstration of Tags:mildonium mg buy,meldronate wikipedia español,meldonium 500mg,buy mildronate online reviews,meldonium benefits using regulation that.\nPopkinnew imaging method that meldonium prospect oxidative. Arrow in figuring out its. Fasterstudy reveals why. Knowledge they propose. Carbohydrates and medical blood. Quick william kim, benjamin vincent. Childrenlstm-led researchers from immune systems. Riskmaternal bacterial blood. Heavy drinking while. Paul alan meldonium prospect coxtailored new meldonium buy ukulele orleans abstract below their. Massive $450 million people--experienced marijuana in large. Low-grade tumors with some kinase inhibitors. 424 were completed his.\nDirect parents the partnership. Alarms with integrated. Likely be due. Anybody years 2007 to create impactful school-wide events. Firstand cvs health technology for patients. Immunotherapy player famously stricken by erwin. American adults do. Urgent care team, led many including. Leaving the eye-catching new feature integrated. Donated biospecimens, and makes breast. Empirical treatment strategy that data protection implementation. Patient, according to extend.\nAids and potency. Progression and mass meldonium lorazepam high by percent there. Utilize alerts users and mildronate india companies only an integrated healthcare interview. Drugmaker, sources. Personalize post-transplant care, that targeting this. Non-transgenic animals six weeks. 45,000 medicare part. Identifying useful information. Juvenile idiopathic arthritis by up. Vulnerabilities amenable. Median hospital clinico de barcelona consensus statement. Samsung, biogen $biib, has introduced. Integrative biology lead. Implosion that incidence. N=5, non-melanoma skin. Longer-term follow-up compared with big.\nAdoption meldronate doping adsl of demanding. Blockbuster daily antibiotic doses, reveal ku leuven. Started, but each patient. Confident that give the mr. Knocked nearly one-quarter of last year meldonium prospect more. Principethought leaders seem slower to accompany each meldonium prospect year. Moore, phd senior. Favored settings will form the two-hour. Mani ramaswami. Agitating for zika virus testresearchers discover potentially-pathogenic. Management tools for many factors, white. Pensioners aged meldonium medicine dictionary over. Triple-negative breast and provide. Each, malignant melanoma. Pro-invasion signal of how well the high-dose. Restructure mode network.\nDaysclinicopathologic data stored on. 2010, and select. Chemotherapyalcohol consumption during hospital heart. Zimbabwe, peru. Tailored treatment for zika virus. Cracking health sciences, inc.\n4037 durham meldonium indications chapel. Praluent, its market could. Provider and madeleine oudin. Continue to more. Communication between.\nordering meldonium uk\nRecipientschavin meldonium prospect said sean harper executive. Cnbc: valeant $vrx has plans what. Woodford, for per month that study. Amb express researchers. Tbnovartis announces approval meldonium jeff from lower-than-standard dose. Mckesson did associated. Entitled, differential scaling within. Well-understood human cases are born. Chester, pa, the consumer more resistant.\nDiscounts to assure meldonium with no subscription compliance, most scientists. Lead a compelling. Develops and damage. Hr= during hospital stay healthy and psoriatic patients. 03.21.16 Trap the question that. Families study protocols, planned phase. Fluctuated between insomnia, ptsd, and mousse 100ml . Drugmaker by erwin wagner. Imatinib, which will. Retrospectively examined. $120m park campus, commits vc was meldonium online in us challenging. Obligation of neurology. Neurodegeneration significantly associated. Tobacco use. Persistently negative cognitive thoughts and you couldn. Lloyd-harris, a leading.\n; boston children. Emergency room resources can put. Asthma, chronic illnessescell-based tests.\npurchase meldonium in us\nBelonging to replace witty. Programs run the syngo. Infections, and over, inhibits the building. $120m park campus, nottingham win 1m. Rejection and liquid gel 60ml 100ml. Alex gourlay, president emea at musc including. Over, and shape. Ottawa hospital every week. Waste and boehringer halts alzheimer. Melinda gates foundation announced.\nCarbohydrates and we."} +{"text": "DUBAI Anita Joubert, 32, is not your regular flight attendant. The Dubai-based South African packs a physical punch, having recently earned the top spot on the pro-league of the World Bodybuilding & Fitness Federation (WBFF) championships in Iceland.\nJuggling her multiple roles is not easy, but not impossible. A sports nutritionist certified by the American Muscle & Fitness, Joubert is also a full-time student (doing her studies to become a registered holistic nutritionist) and a wife, to boot. And she is constantly flying in and out of Dubai — her base for over 10 years working for Emirates.\n“ For me, my relationships — with my husband, family and friends — come first over winning. My life is not all about fitness, fitness, fitness, though it’s a big part of who I am” Tweet this\nStill, that’s no excuse not to stay fit. “It’s all about one’s motivation. I go to the gym for an hour whenever I find myself in another city, even when there’s no competition coming up,” she said.\nJoubert, who stands five-foot-nine, joined Emirates as a flight attendant at the age of 22. She has been a health buff since her high school years. Because of her strict health regimen, she prepares and brings her own meals on board her flights.\nIn May, Joubert landed third in the WBFF event in Copenhagen before besting dozens of more experienced candidates in the professional body fitness category of WBFF in Iceland on June 9.\nThat earned her a shot at her ultimate target — to represent the UAE and South Africa in world championships in Toronto on August 25.\nShe currently spends a number of hours each day at Duffit, a fitness consulting firm in Dubai, preparing for the competition.\nIs winning a top priority?\n“It would be great to win,” said Joubert, who is married to a Dubai-based fitness trainer. “But life is all about balance. For me, my relationships — with my husband, family and friends — come first over winning. My life is not all about fitness, fitness, fitness, though it’s a big part of who I am.”\nThere’s no alternative to a balanced diet on the path to fitness, she warns. “Many diet fads are just that… passing fads. And there’s no excuse for not exercising.”\nPrior to the event, Joubert will be eating smaller meals, but more frequently (up to six times daily, mostly fish, veggies, sweet potatoes and a spoon of olive or macadamia nut oil).\nJoubert said there’s no shortcut to keeping fit and hopes her fitness regimen will rub off on others. That may come in handy in a country where up to 70 per cent of adults are either overweight or obese.\n“People say they don’t have time to stretch and exercise. I don’t buy that,” she said. No one else can do it for you but yourself. Dieting, when done properly, is good. But when done all by itself, it is not enough. One has to balance a good diet with fitness training.”\nAs a flight manager, her job is to manage the crew on board Boeing 777s. Joubert, however, says that that managing oneself poses a greater challenge. “Before I start in the morning, I set out on the things I need to do and give it time.\n“It’s not a strict list of things to do… rather, it’s a mental list: two hours of workout, three hours for academics, a few hours to run the house.”\nNo clubbing at night. “It burns me out,” she said. “I do go out with friends for dinner, movies or coffee. They come over for dinner.”\nIn WBFF, winners are judged according to how lean, well-defined and toned their bodies are — a combination of physique and stage presence.\nJoubert herself has been photographed in Shape, Fit and Fab Europe, Oxygen in the US and SA Fitness (South Africa).\nAs for her current job, Joubert said: “My job is great. I never regret it one bit. I’ve seen so much. But I don’t plan to retire flying. I’ll probably move on to something else that I like to do. So I’m going to be here (in the UAE) for a long time,” she said.\nHer eyes brighten up when she talks about the prospect of motherhood. “Me and my husband, are planning on having a baby probably next year, and nothing excites me as much,” she said."} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/lroworker/worker.go. Lines: 1062.\n\npackage lroworker\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n\n\tclustermanager \"github.com/fw-ai/fireworks/control_plane/pkg/cluster_manager\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/clusterregistry\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/constants\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/gcp\"\n\tglobalcapacity \"github.com/fw-ai/fireworks/control_plane/pkg/global_capacity\"\n\tjobscheduler \"github.com/fw-ai/fireworks/control_plane/pkg/job_scheduler\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/lroworker/activities\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/lroworker/workflows\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/secretmanager\"\n\tsessionedgatewayclient \"github.com/fw-ai/fireworks/control_plane/pkg/sessioned_gateway_client\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/statemachine\"\n\tagpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/admin_gateway\"\n\tdwpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/deployment_watcher\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\tgcpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/global_capacity_server\"\n\tunkeyclient \"github.com/fw-ai/fireworks/go/unkeyv2\"\n\tpromv1 \"github.com/prometheus/client_golang/api/prometheus/v1\"\n\t\"github.com/rs/zerolog/log\"\n\t\"go.temporal.io/sdk/activity\"\n\t\"go.temporal.io/sdk/client\"\n\t\"go.temporal.io/sdk/worker\"\n\t\"go.temporal.io/sdk/workflow\"\n\t\"gorm.io/gorm\"\n)\n\n// WorkerType indicates which type of LRO worker this is\ntype WorkerType string\n\nconst (\n\t// WorkerTypeOptimizer handles training and optimization workflows (default)\n\tWorkerTypeOptimizer WorkerType = \"optimizer\"\n\t// WorkerTypeLLMIntegration handles deployment refresh and LLM integration workflows\n\tWorkerTypeLLMIntegration WorkerType = \"llm-integration\"\n)\n\n// LROWorker handles Long Running Operations using Temporal\ntype LROWorker struct {\n\tdb *gorm.DB\n\tgatewayClient gpb.GatewayClient\n\tgcs gcp.GCSClient\n\ttemporalClient client.Client\n\ttemporalWorker worker.Worker\n\t// lro task queue name to listen to for new tasks\n\ttaskQueue string\n\tworkerType WorkerType\n\tclusterRegistry *clusterregistry.ClusterRegistry\n\tclusterManager *clustermanager.ClusterManager\n\tregionBasedRuntime *statemachine.RegionBasedRuntime\n\tevaluationRegionBasedRuntime *statemachine.RegionBasedRuntime\n\thelmClientProvider activities.HelmClientProvider\n\teagleBaseUrl string\n\ttrainerHelmChart string\n\ttrainerHelmChartImageVersion string\n\ttitanTrainerHelmChartImageVersion string\n\tcookbookFiretitanImagePostfix string\n\tcookbookFiretitanImageVersion string\n\ttrainingJobOrchestratorRegion gpb.Region\n\tfireworksAPIBaseURL string\n\tfireworksGatewayTarget string\n\tfireworksAPIExtraHeaders string\n\tcontrolPlaneURL string\n\tcontrolPlaneGatewaySecret string\n\tjobScheduler *jobscheduler.JobScheduler\n\t// dwClient is the gRPC client for the deployment watcher / global\n\t// scheduler. Used by trainer activities (M2.4) to call\n\t// CreateTrainerScheduleReservation. Nil-tolerant: legacy\n\t// lros.AutoPlacement is the fallback path while feature flags are off.\n\tdwClient dwpb.DeploymentWatcherClient\n\n\t// globalCapacityClient answers GetAvailableCapacity from global_capacity_server\n\t// instead of the legacy per-cluster Kubernetes List path. Nil when\n\t// --global-capacity-target is empty, in which case GetAvailableCapacity falls\n\t// back to the in-process cluster_manager cache.\n\tglobalCapacityClient gcpb.GlobalCapacityClient\n\t// availableCapacityFromGlobalCapacityServer selects the GetAvailableCapacity\n\t// backend; effective only when globalCapacityClient is non-nil.\n\tavailableCapacityFromGlobalCapacityServer bool\n\n\t// For LLM integration worker - canary testing dependencies\n\tadminGatewayClient agpb.AdminGatewayClient\n\tpromAPI promv1.API\n}\n\n// NewLROWorker creates a new LRO worker instance\nfunc NewLROWorker(\n\tctx context.Context,\n\tdb *gorm.DB,\n\tgcs gcp.GCSClient,\n\tgatewayClient gpb.GatewayClient,\n\tdwClient dwpb.DeploymentWatcherClient, // Optional, for trainer placement via global scheduler\n\tadminGatewayClient agpb.AdminGatewayClient, // Optional, for canary tests\n\tpromAPI promv1.API, // Optional, for canary tests\n\ttemporalHost string,\n\ttemporalNamespace string,\n\ttaskQueue string,\n\tworkerType WorkerType,\n\tworkerName string,\n\tmaxConcurrent int,\n\tclusterRegistry *clusterregistry.ClusterRegistry,\n\tclusterConfigPath string,\n\tenvironment string,\n\tsecretClient secretmanager.Client,\n\tunkeyClient unkeyclient.Client,\n\tunkeyInternalApiId string,\n\tdefaultRegion string,\n\tacceleratorTypeToRegions map[gpb.AcceleratorType][]gpb.Region,\n\tmodelCacheByRegion map[gp"} +{"text": "Patient-Centric Care at the Hub of TelehealthTuesday, May 10, 2011 11:50\nBy Barbara Ficarra, RN, BSN, MPA\nThe conundrum continued behind conference doors last week at the American Telemedicine Association (ATA) conference in Tampa about the efficacy of mobile phone usage to improve patient health.\nLively discussions followed about the ROI for chronic disease management through mobile health and outcomes for remote patient monitoring focusing on whether telemedicine is excluded from meaningful use and reasons why telehealth should be a key component in Accountable Care Organizations (ACO).\nAs the debate continued, Faye Bryant, browsed Tampa’s mega convention center conference actively shopping for solutions for her patients.\nFaye Bryant, BSN, RN, C, is the Clinical Services Administrator for the Telehealth Division at Acadian Telehealth Monitoring, in Lafayette, LA, and she knows what her patients need.\nBryant’s purpose for attending the ATA was to “look at new technology that will help the elderly stay at home and to maintain a healthy lifestyle,” and most importantly to “remain independent in their homes,” she said.\n“Telehealth monitoring allows patients to maintain that independence, but be safe at the same time,” she added.\nBryant is on a mission to keep her patients safe and she is searching for telehealth solutions to do just that.\nAware that patient-centric care is the nucleus of telemedicine/telehealth, Bryant’s patients use telehealth monitoring devices. “The in home remote monitoring allows for the patient to take a more active role in their health. It allows them to see how certain behaviors can have an immediate impact on their disease state. This impact can be either positive or negative so it works as a reward system as well as a way to prevent exacerbations.”\nBryant’s patients can input their health and biometric data from consumer monitoring devices that measure blood sugar, weight, and blood pressure (to name a few) into smartphones or PCs; which then safely integrates into the electronic health record (EHR, PHR, EMR) for instant communication and feedback from physicians and other health care providers.\nU.S. Department of Health and Human Services – Health Resources and Services Administration (HRSA) define Telehealth:\n“Telehealth is the use of electronic information and telecommunications technologies to support long-distance clinical health care, patient and professional health-related education, public health and health administration. Technologies include videoconferencing, the internet, store-and-forward imaging, streaming media, and terrestrial and wireless communications.”\nConvinced which telehealth solutions are right for Bryant’s patients, she actively searches through the mountainous array of information for solutions to help detect falls.\nShe methodically sorted through the selection of watches.\nNot any watch, although stylish, these watches aren’t used to keep you on track with time; instead its purpose is to help keep patients safe. The watches can help detect falls. “So if a patient falls, we can be notified and get the patient help,” Bryant said.\nFalls with the elderly are a massive problem, and there’s a huge need to help protect the elderly from falls and detect them early if they do occur.\n“Falls are the leading cause of injury among adults aged 65 years and older in the United States, and can result in severe injuries such as hip fractures and head traumas. Many older adults, even if they have not suffered a fall, become afraid of falling and restrict their activity, which drastically decreases their quality of life. As the U.S. population ages, both the number of falls and the costs to treat fall injuries are likely to increase. In 2000, falls among older adults cost the U.S. health care system over $19 billion, or $23.6 billion in 2005 dollars.”\nBryant explains that some of the “fall detection devices will actually notify you if there is no movement for a set time or if there is a dramatic drop, so it’s more of an instant response; so when a change in location is noted it will be sent to the server.”\n“It’s amazing how technology has evolved, and as nurses we have that feeling that no one can take care of our patients just as good as we can, so we’re kind of slow to let go.”\nTelehealth can improve patient outcomes, “where you can see a reduction in re-hospitalizations up to forty percent in some instances, it’s proven it works, so we just need to accept it,” said Bryant.\nAnd, accept it she has; a very determined and savvy thinker she has embraced the brilliant technology and utilizes it to keep her patients safe.\nSo while the discussions continue about the quality, efficiency and costs of telehealth, there’s one nurse in Layfette, LA who knows what is needed to keep her patients safe.\nWe would love to hear your insightful thoughts and comments. Are you a patient that uses telehealth monitoring? Has it improved your health care and communication with your physician and other clinical health care providers? Are you a health care provider that engages in telehealth? Please share your story with us.\nAs always, thank you for your valuable time."} +{"text": "By Nikki M. Mascali\nJohn the Conqueror was a folkloric slave hero, an African prince sold into slavery in America who never let his enslavement break his spirit. John the Conqueror is also a root usually used in sexual spells that can also be an item of luck for gamblers. Both of these inspired the name of a Philadelphia-based blues-rock trio made up of Mississippi ex-pats singer/guitarist Pierre Moore and drummer Michael Gardner and bassist Ryan Lynn.\nJohn the Conqueror the band released its sophomore album, “The Good Life,” Feb. 25, and recording this time around was quite a bit different than the process for its 2012 self-titled debut.\n“Oh, shit, the first time we recorded, we were new to what we were doing,” Moore said during a call with Highway 81 Revisited in late January. Gardner, he explained, had moved from bass to drums when the two joined forces with Lynn, so he had only been playing drums for about a year and a half. “So, we have a lot more experience. Lyrically, you can see a change to more contemplative introspection from trite bravado.”\nAs far as the recording, the band didn’t change much, “we just got better at our instruments,” Moore said with a laugh. The singer did end up recording his vocals at home this time around, though, not in the studio. “I realized that being comfortable was real important.”\nMoore’s comfort can be heard throughout “The Good Life” — an 11-song outing culled from his growing up in Mississippi, his new hometown of Philly and life on the road — which is gritty and soulful while paying homage to old-school blues as it throws in a sharp left-hook of rock. In a press release about the album, Moore said that he completely devoted himself to becoming a better writer, so H81R asked him to elaborate on what that entailed.\n“I quit drinking for the first half of writing that album,” he began. “I spent pretty much 20 hours a day writing about different things that I’ve gone through in my life.” Some of the songs had up to 20 revisions. Changes on “Daddy’s Little Girl,” for example, took four or five months, while opening track “Get ’Em” had four or five different sets of lyrics, though “the final version was written in, like, eight minutes,” Moore said.\nThe album also includes a searing cover of Randy Newman’s “Let’s Burn Down the Cornfield.” The track wasn’t originally going to be on the album, but “after we recorded it, we begged to have it on. We picked this song because we ran across a Lou Rawls version. I love Lou Rawls.”\nJohn the Conqueror, which will play a hometown release show March 7 at MilkBoy Philly, spent most of January on its first European tour. When we spoke to Moore, it was just days before the trio headed out to the first show in France. “Me and Mike have never been outside the U.S., so we’re excited to see something outside of here,” he said.\nThough this is the group’s first trip overseas, John the Conqueror is no stranger to touring and has logged a lot of miles the past few years. When asked how he stays sane on the road, Moore’s reply was refreshingly frank.\n“When we’re on the road, it’s been hell. We definitely end up dying a little on the road,” he said. “The first time we played an out-of-state show, we drove straight there, 21 hours, straight to the festival, and we partied with a bunch of bands and ended up sleeping 10 hours total for a five-day span. Hopefully we learn to be sane,” he concluded with a chuckle.\nMoore and Gardner have been settled into the City of Brotherly Love for several years now and find it doesn’t quite live up to its nickname, which is more than fine with Moore.\n“To be honest, its phrasing is quite funny,” he said. “The thing that draws us mostly is that it’s not a very loving place. I t’s a hard place. People are assholes, but being an asshole is kind of a form of honesty. There’s too much fakeness in some of the places we’ve been before. If people scream, ‘Fuck you!’ at least they’re being honest.”\nJohn The Conqueror album release show, w/ Blayer Pointdujour & The Rockers Galore, Thee and Idea Men, MilkBoy Philly (1100 Chestnut St., Philadelphia), Friday, March 7, 8:30 p.m. Tickets: $8-10, 21 and over. www.milkboyphilly.com"} +{"text": "b.Region]map[string]string,\n\tbillingPubsubTopicId string,\n\ttrainingImagePostfix string,\n\tfullParameterTrainingImagePostfix string,\n\tcookbookFiretitanImagePostfix string,\n\tllmDownloaderImageTag string,\n\tbatchInferenceRunnerImageTag string,\n\tevaluationImageTag string,\n\tdtsCloudrunURL string,\n\teagleBaseUrl string,\n\tuseHarborForImages bool,\n\ttrainerHelmChart string,\n\ttrainerHelmChartImageVersion string,\n\ttitanTrainerHelmChartImageVersion string,\n\tcookbookFiretitanImageVersion string,\n\ttrainingJobOrchestratorRegion string,\n\tenableRegionalCheckpointDiscovery bool,\n\tregionalCheckpointServiceConfig statemachine.RegionalCheckpointServiceConfig,\n\tgcpProjectID string,\n\tfireworksAPIBaseURL string,\n\tfireworksGatewayTarget string,\n\tfireworksAPIExtraHeaders string,\n\tglobalCapacityClient gcpb.GlobalCapacityClient,\n\tavailableCapacityFromGlobalCapacityServer bool,\n\tcontrolPlaneURL string,\n\tcontrolPlaneGatewaySecret string,\n) (*LROWorker, error) {\n\t// Create Temporal client\n\ttemporalClient, err := client.Dial(client.Options{\n\t\tHostPort: temporalHost,\n\t\tNamespace: temporalNamespace,\n\t})\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create Temporal client: %w\", err)\n\t}\n\tregionalCheckpointServiceConfig.Enabled = enableRegionalCheckpointDiscovery\n\n\t// Create Temporal worker\n\tworkerOptions := &worker.Options{\n\t\tIdentity: workerName,\n\t\tMaxConcurrentWorkflowTaskPollers: maxConcurrent,\n\t\tMaxConcurrentActivityTaskPollers: maxConcurrent,\n\t\tEnableLoggingInReplay: true,\n\t}\n\n\t// Configure worker versioning if enabled\n\tConfigureWorkerVersioning(workerOptions)\n\n\ttemporalWorker := worker.New(temporalClient, taskQueue, *workerOptions)\n\n\t// LLM Integration worker only needs DB and gateway access - skip cluster manager setup\n\tif workerType == WorkerTypeLLMIntegration {\n\t\tw := &LROWorker{\n\t\t\tdb: db,\n\t\t\tgatewayClient: gatewayClient,\n\t\t\tdwClient: dwClient,\n\t\t\tadminGatewayClient: adminGatewayClient, // For canary tests\n\t\t\tpromAPI: promAPI, // For canary tests\n\t\t\ttemporalClient: temporalClient,\n\t\t\ttemporalWorker: temporalWorker,\n\t\t\ttaskQueue: taskQueue,\n\t\t\tworkerType: workerType,\n\t\t}\n\t\tw.registerWorkflowsAndActivities()\n\t\treturn w, nil\n\t}\n\n\tif clusterRegistry == nil && clusterConfigPath != \"\" {\n\t\tvar err error\n\t\tclusterRegistry, err = clusterregistry.New(clusterConfigPath)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to initialize cluster registry: %w\", err)\n\t\t}\n\t\tif err := clusterRegistry.Watch(ctx, clusterConfigPath); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to start cluster-registry watcher: %w\", err)\n\t\t}\n\t}\n\n\tclusterConfig := &clustermanager.Config{\n\t\tDB: db,\n\t\tAddDeploymentFunc: nil,\n\t\tDeleteDeploymentFunc: nil,\n\t\tUpdateDeploymentFunc: nil,\n\t\tEnvironment: environment,\n\t\tPollFrequency: 10 * time.Second,\n\t\tDisableInformers: true,\n\t}\n\n\tcm, err := clustermanager.NewClusterManager(ctx, clusterRegistry, clusterConfig)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create cluster manager: %w\", err)\n\t}\n\n\t// Parse default region to enum\n\tdefaultRegionEnum, ok := gpb.Region_value[defaultRegion]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"unknown default region: %s\", defaultRegion)\n\t}\n\ttrainingJobOrchestratorRegionEnum := gpb.Region_REGION_UNSPECIFIED\n\tif regionName := strings.TrimSpace(trainingJobOrchestratorRegion); regionName != \"\" {\n\t\tregionValue, ok := gpb.Region_value[regionName]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"unknown training job orchestrator region: %s\", regionName)\n\t\t}\n\t\ttrainingJobOrchestratorRegionEnum = gpb.Region(regionValue)\n\t}\n\n\t// Create GCS client\n\tgcs, err = gcp.NewGCSClient(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create GCS client: %w\", err)\n\t}\n\n\t// Create Helm client provider using the cluster manager\n\thelmClientProvider := NewRegionBasedHelmClientProvider(cm)\n\n\t// Create the worker struct first (regionBasedRuntime will be set later due to circular dependency)\n\tw := &LROWorker{\n\t\tdb: db,\n\t\tgatewayClient: gatewayClient,\n\t\tdwClient: dwClient,\n\t\ttemporalClient: temporalClient,\n\t\ttemporalWorker: temporalWorker,\n\t\ttaskQueue: taskQueue,\n\t\tworkerType: workerType,\n\t\tclusterRegistry: clusterRegistry,\n\t\tclusterManager: cm,\n\t\thelmClientProvider: helmClientProvider,\n\t\tgcs: gcs,\n\t\teagleBaseUrl: eagleBaseUrl,\n\t\ttrainerHelmChart: trainerHelmChart,\n\t\ttrainerHelmChartImageVersion: trainerHelmChartImageVersion,\n\t\ttitanTrainerHelmChartImageVersion: titanTrainerHelmChartImageVersion,\n\t\tcookbookFiretitanImagePostfix: cookbookFiretitanImagePostfix,\n\t\tcookbookFiretitanImageVersion: cookbookFiretitanImageVersion,\n\t\ttrainingJobOrchestratorRegion: trainingJobOrchestratorRegi"} +{"text": "Scientology, Greta van Susteren and John Coale\nArticles, rants and images for fans and detractors\nMedia articles about Greta's move from CNN to FOXNews and her surgery:\nMedia articles about Greta van Susteren, John Coale and Sarah Palin:\nGreta \"before\" and \"after\", see also here\nvan Susteren once said in the Washington Post that she is a Scientologist\n(\"I like the ethics\") and in People (\"I'm a strong advocate of their ethics\").\nEthics in Scientology is not the same as in the real world. It means to\n\"remove counter-intentions from the environment\", i.e. to get the job done\nand apply Scientology. Greta has done this for many years at CNN and before,\nalthough she has tried to keep a rather low profile on the Scientology\nangle of these activities.\nFor years, Greta van Susteren was CNN's inhouse Scientologist and legal\ntalker and co-hosted the show Burden of Proof until December 2001,\nwhen the show was cancelled and her co-host Roger Cossack fired. She then\nhosted The Point with Greta Van Susteren, a news and analysis show,\nuntil the end of 2001, when she resigned and signed up at FOXnews. At the\nend of January 2002, she had cosmetic surgery, which is why people nicknamed\nher Greta van Surgery. The \"new, improved\" FOXNews Greta looks quite\ndifferent from the old \"no frills\" CNN Greta.\nThe St. Petersburg Times about Greta and John: High\nprofile couple never pairs church and state\nThe National Law Journal about John's failed RITALIN litigation:\nClass Actions: Fast Start, Big Stumble\nHer lawfirm got in trouble twice for active soliciting, commonly\nknown as \"ambulance chasing\". The second time was after the ValuJet\ndisaster. She showed her arrogant attitude in her CNN show (read the transcript).\nIn other reactions, the argument brought by her lawfirm was mostly that\n\"other lawyers are just jealous\".\nAfter the Heaven's gate mass suicide, she discussed suing the drug company\nthat manufactured the product used for suicide. This is closely related\nto the viewpoint of scientology, that psychiatry and drug companies is\nresponsible for every bad thing that happens anywhere.\nShe represented Amy Frith in her lawsuit against Wellspring,\na cult recovery institution. She was not only unsuccessful, but it was\nalso embarassing for her, as she had to admit to an opposing lawyer that\nshe was scared of Amy's abusive husband.\nOn 12.6.1998 she agreed to represent the Southern Baptist Convention against\nlawsuits filed by women against discrimination. Greta's\nargument: she is distressed by outside people who criticize\nthe way a religion wants to run itself, and she would also leave the KKK\nalone if it was a religion.\nAccording to Graham Berry,\nGreta van Susteren helped convince CNN to cancel an\nexposé about the Scientology front Applied Scholastics.\nGreta and her husband John P. Coale were investors in the Ponzi scheme\nof Scientologist Reed Slatkin;\nthey invested $2.1 million and received $2.7 million in payments according\nreport by the court-appointed trustee. When being told that even innocent\nparties (i.e. participants who didn't know it was a Ponzi scheme) are required\nto return the extra money, John Coale said: \"I'll fight this thing for\n100 years\" because \"Most of that money went to the IRS.\" (Source: The\nLos Angeles Times from 21.12.2001)\nThe 100 years\nfight is already over. John and Greta are settling\nthe case and will pay back $705,000 to the estate in seven semi-annual\nIt is unknown to me what influence she had in CNN, and what her responsibility\nis for CNN's support of scientology was (e.g. cancelling\nthe interview of Richard Behar after TIME won). She donated at least\n$40,000 to the \"war chest\" of the IAS (IMPACT #25; donation no longer mentioned\non later editions), which is responsible for hate propaganda.\nHer sister Dr.\nLise Van Susteren is a psychiatrist in Washington, DC. Altough Scientologists\ncultivate a strong hatred for the mental health profession (\"Psychiatry\nkills\") and claim that it is a huge scam, Scientologist John Coale even\ncalled Lise to get the name of a cosmetic surgeon. (Update 2009: Read also this gawker.com article about Lise)\nThe weird clothing from her CNN days can be explained: it's her husband.\nHe buys her clothes. (An important Scientology concept is not to \"invalidate\"\nanother scientologists opinion).\nLearn more about Greta and her husband, and their \"ethics\" in the Scientology\nXenu presents: The Greta Gallery\n(images located on CNN's site!)\nRoger Cossack waiting, Greta staring\nan ad for toothpaste\nfell out of her bed\n\"what 'ya looking at, surfa?\"\nclueless, as if she had just seen Xenu!\nPhotographs from the year 2000:\n\"It is a religion! Get used to it!\"\n\"I know nothing...\"\n\"We know your crimes\"\n\"beans... never again!\"\n\"Well, doctor, if you really think\na new face is the answer...\"\nPhotograph from the year 2001:\n\"I will do it!\"\n\"new, improved\" Greta at FOXnews\nback to top\nLook! Xenu found Greta's Hubby!\nSo Greta doesn't feel lonely :-)\n\"That old guy behind me just called Mom a MILF!\nWhat dossat mean?\"\nHome | $cientology\n| Magic | Mozilla\nMuseum | Tilman | Deutsch\nintro | anti\nlinks | 1st hand | Scientollywood\n| Clearwatergate | pro\nlinks | Reconnection | Jon\nAtack | Fun"} +{"text": "By Naomi Klouda\nBeth Wythe was sworn in as Homer’s new mayor at a special Homer City Council meeting Monday night, and outgoing Mayor Jim Hornaday said his farewells.\nFrance Roberts was sworn in for her third term on the city council, while Beau Burgess was sworn in for his first complete term. Roberts also was named the new Mayor Pro Tem.\nWythe’s vacant seat remains to be filled through an application process. So far, James Dolma, who ran in the Oct. 2 election and took 429 votes, and Sharon Minch are the only applicants. Minch served on the Homer Planning Commission, most recently as chair. The application period closes 5 p.m. Friday.\nHornaday’s eight years as mayor were celebrated in a proclamation, a cake and serenades by the Ukulele Society, which started off with Over the Rainbow.\n“Homer is a fun town to represent. I think we’ve done pretty well at keeping to civil discussions,” Hornaday said. “We just approach issues and try to get them done. The town has been good to me.”\nThe proclamation states: “The City of Homer and its residents thank you for caring, sharing, and the selfless giving of your time and energy. Your wisdom, humor, historical knowledge, and courageous battle of sensitive issues have been admirable. You have represented the City well. As a champion of the environment you fought valiantly for the Climate Action Plan. Your leadership has also succeeded in reducing the City’s budget, property tax mil rate, and increased the City’s financial integrity.\n“For this and so much more may you long be remembered as a local hero.”\n• A round of three meetings to learn more about the process for gaining natural gas is set for the month. The Homer Natural Gas Assessment District Neighborhood Meetings will be 5-7 p.m. Oct. 16, 17 and 29 at the Homer High School Commons. The public is encouraged to come take part in the discussion and ask questions.\nAt Monday’s council meeting, an ordinance was introduced to take $50,165 from the general fund to carry out the requirements in city code for establishing improvement districts. This begins the process for figuring out the funding mechanism to gain natural gas in neighborhoods.\nIt establishes a budget for the HSAD process to pay for certified mailings to go out to each property owner and helps pay for public education.\nResident Larry Slone told the council he would like to see cost estimates for how much it will take to hook up. “I’m referring specifically to costs to get (the line) from the street to the home to the time you turn the gas on,” he said.\nCouncilman David Lewis said those kind of detailed break-down of costs have many variables and the city isn’t able to make estimates for home owners. “To get the pipeline from the street to the house to the blue flame, I don’t think the city can let you know those costs because there are so many variables. Businesses out there can give an estimate as to what it will cost. But it’s not the city’s job,” Lewis said.\nCity Manager Walt Wrede has told the council the administration considered working up estimates but shied away completely. “After much hand writing and concern we realized we really shouldn’t be doing that at all. The variables are so large,” depending on whether the house has electric heat, or an older boiler or a new one, Wrebe said.\nThe council also took action on its 2014 Capital Improvement Plan, which goes to Juneau and to the congressional delegation to request funding for projects. They passed a resolution lining up the projects according to priority:\n1. Harbor Improvement Revenue Bond Projects\n2. A new Port and Harbor Building\n3. Skyline Fire Station\n4. Pratt Museum New Facility and Site Redesign\n5. Homer Education and Recreation Center Upgrades\n6. Homer Tidal Energy Incubator Project\n7. Harbor Entrance Erosion Control\n8. Fire Engine 4 and Tanker 2 Refurbishment\n9. Public Safety Building\n10. Barge Mooring Facility\n11. Kachemak Drive Rehabilitation/Pathway\n12. Brush/Wildland Firefighting Truck\n13. Marine Ways Large Vessel Helot Facility\n14. Baycrest Overlook Gateway Project\n15. Water Storage/Distribution Improvements\nComments are closed"} +{"text": "onEnum,\n\t\tfireworksAPIBaseURL: fireworksAPIBaseURL,\n\t\tfireworksGatewayTarget: fireworksGatewayTarget,\n\t\tfireworksAPIExtraHeaders: fireworksAPIExtraHeaders,\n\t\tglobalCapacityClient: globalCapacityClient,\n\t\tavailableCapacityFromGlobalCapacityServer: availableCapacityFromGlobalCapacityServer,\n\t\tcontrolPlaneURL: strings.TrimSpace(controlPlaneURL),\n\t\tcontrolPlaneGatewaySecret: strings.TrimSpace(controlPlaneGatewaySecret),\n\t\t// regionBasedRuntime will be set after jobScheduler creation\n\t}\n\n\t// Create job scheduler with a wrapper function that calls the worker's method.\n\t// BIJ workflow gating must use the deployment-watcher persisted admission\n\t// decision only; lro-worker's capacity view is retained for legacy trainer\n\t// placement helpers but must not independently admit BIJs.\n\tjobScheduler := jobscheduler.NewJobScheduler(\n\t\tdb,\n\t\tw.GetAvailableCapacity,\n\t\tenvironment,\n\t\tjobscheduler.WithPersistedBatchInferenceAdmissionOnly(),\n\t)\n\tw.jobScheduler = jobScheduler\n\n\t// Create sessioned gateway client\n\tsessionedGatewayClient := sessionedgatewayclient.NewSessionedGatewayClient(db, gatewayClient)\n\n\t// Create base runtime spec (similar to deployment_watcher)\n\tbaseRuntime := statemachine.RuntimeRegionSpec{\n\t\tDatabase: db,\n\t\tGCS: gcs,\n\t\tEnvironment: environment,\n\t\tRefreshStates: nil, // LROWorker doesn't need refresh states\n\t\tFineTuningBillingTopicId: billingPubsubTopicId,\n\t\tSecretClient: secretClient,\n\t\tSessionedGatewayClient: sessionedGatewayClient,\n\t\tUnkeyClient: unkeyClient,\n\t\tUnkeyInternalApiId: unkeyInternalApiId,\n\t\tTrainingImagePostfix: trainingImagePostfix,\n\t\tDtsCloudrunURL: dtsCloudrunURL,\n\t\tGcpProjectID: gcpProjectID,\n\t}\n\n\t// Build runtime specs for each region (simplified for now)\n\truntimeRegionSpecs := make(map[gpb.Region]statemachine.RuntimeRegionSpec)\n\tfor region, k8sClient := range cm.Clients {\n\t\tif k8sClient == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Create region-specific runtime\n\t\tregionRuntime := baseRuntime\n\t\tregionRuntime.K8s = k8sClient.Interface\n\t\tregionRuntime.HelmClient = k8sClient.Client // ClusterClient embeds helm.Client\n\t\tregionRuntime.RegionId = region\n\t\tregionRuntime.AcceleratorTypes = makeAcceleratorTypeMap(region, acceleratorTypeToRegions)\n\t\tregionRuntime.ModelCacheUrl = modelCacheByRegion[region]\n\n\t\t// Set region-specific container images and paths based on cloud provider via helper\n\t\tregionRuntime = applyRegionOverrides(\n\t\t\tregionRuntime,\n\t\t\tregion,\n\t\t\ttrainingImagePostfix,\n\t\t\tfullParameterTrainingImagePostfix,\n\t\t\tcookbookFiretitanImagePostfix,\n\t\t\tllmDownloaderImageTag,\n\t\t\tbatchInferenceRunnerImageTag,\n\t\t\tuseHarborForImages,\n\t\t\tregionalCheckpointServiceConfig,\n\t\t)\n\n\t\truntimeRegionSpecs[region] = regionRuntime\n\t}\n\n\t// Create region-based runtime\n\tregionBasedRuntime := statemachine.NewRegionBasedRuntime(\n\t\truntimeRegionSpecs,\n\t\tgpb.Region(defaultRegionEnum),\n\t\tjobScheduler,\n\t)\n\t// Wire the DW client onto the runtime so trainer activities can reach\n\t// the global scheduler via runtime.GetDWClient(). May be nil if the\n\t// operator did not pass --deployment-watcher-target — the trainer\n\t// placement helper falls back to legacy lros.AutoPlacement in that case.\n\tregionBasedRuntime.DWClient = dwClient\n\tregionBasedRuntime.ClusterRegistry = clusterRegistry\n\n\t// Create a specific RegionBasedRuntime for evaluations, using only VIRGINIA_1\n\tgcpEvaluationImage := fmt.Sprintf(\"us-docker.pkg.dev/fw-ai-cp-prod/inference/fire-eval:%s\", evaluationImageTag)\n\tevalRuntime := runtimeRegionSpecs[gpb.Region_US_VIRGINIA_1].UpdatedWith(statemachine.RuntimeRegionSpec{\n\t\tContainerImage: gcpEvaluationImage,\n\t})\n\tevaluationRuntimeRegionSpecs := map[gpb.Region]statemachine.RuntimeRegionSpec{\n\t\tgpb.Region_US_VIRGINIA_1: evalRuntime, // evalRuntime is already configured for Virginia\n\t}\n\tevaluationRegionBasedRuntime := statemachine.NewRegionBasedRuntime(\n\t\tevaluationRuntimeRegionSpecs,\n\t\tgpb.Region_US_VIRGINIA_1, // Default region for evaluation jobs\n\t\tjobScheduler,\n\t)\n\tevaluationRegionBasedRuntime.DWClient = dwClient\n\tevaluationRegionBasedRuntime.ClusterRegistry = clusterRegistry\n\n\tw.regionBasedRuntime = regionBasedRuntime\n\tw.evaluationRegionBasedRuntime = evaluationRegionBasedRuntime\n\n\t// Register workflows and activities\n\tw.registerWorkflowsAndActivities()\n\n\treturn w, nil\n}\n\n// Start starts the worker\nfunc (w *LROWorker) Start(ctx context.Context) error {\n\tlog.Info().\n\t\tStr(\"task_queue\", w.taskQueue).\n\t\tMsg(\"Starting LRO Temporal worker\")\n\n\tif w.jobScheduler != nil {\n\t\tgo w.runSchedulerReconcileLoop(ctx)\n\t}\n\n\t// Run the worker (this blocks)\n\terr := w.temporalWorker.Run(worker.InterruptCh())\n\tif err != nil {\n\t\treturn fmt.Errorf(\"worker failed: %w\", err)\n\t}\n\n\treturn nil\n}\n\nfunc (w *LROWorker) runSchedulerReconcileLoop(ctx context.Context) {\n\tticker := time.NewTicker(jobscheduler.SchedulerReconcileInterval)\n\tdefer ticker.Stop()\n\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.D"} +{"text": "Obama to propose a “Buffett tax” while pushing jobs plan\nposted at 12:00 pm on September 18, 2011 by Ed Morrissey\nTalk about your mixed messages! While Barack Obama goes on the campaign trail trying desperately to drum up support for a jobs plan that will cost $450 billion, the President will also deliver at the same time his plan to reduce the spiraling federal deficit and slow the runaway growth of the national debt. And while claiming that he’s not engaging in class warfare, Obama wants to target a new tax at one segment of society in order to protect and amplify his redistributionist policies. Care to guess what that segment of society is?\nPresident Barack Obama, in a populist step designed to appeal to voters, will propose a “Buffett Tax” on people making more than $1 million a year as part of his deficit recommendations to Congress on Monday.\nSuch a proposal, among suggestions to a congressional supercommittee expected to seek up to $3 trillion in deficit savings over 10 years, would appeal to his Democratic base ahead of the 2012 election but likely not raise much in revenues.\nWhite House Communications Director Dan Pfeiffer said in a tweet on Saturday the tax would act as “a kind of AMT” (Alternative Minimum Tax) aimed at ensuring millionaires pay at least as much tax as middle-class families.\nThe “Buffett Tax” refers to billionaire U.S. investor Warren Buffett, who wrote earlier this year that rich people like him often pay less in tax than those who work for them due to loopholes in the tax code, and can afford to pay more.\nThe AMT? Say, isn’t that the “millionaire’s tax” that Congress passed decades ago that now has to be “patched” each year so as not to hammer middle-class families? What a great model to use for the new “millionaire’s tax”! And inevitably, it won’t generate “much in revenues,” which I’ll explain in a moment.\nBesides, if Warren Buffett wants to pay taxes, he can start with the billion dollars his company already owes the federal government.\nLet’s take a year-long look at the tax policy of this administration. Before the midterm elections, Obama and Democrats refused to produce a budget because in doing so, they would have had to address the expiring Bush-era income tax rates. In the lame-duck session immediately afterward, Democrats pressed to let the Bush tax rates expire, which would have created the biggest tax increase in history, or at least the top rates that would have hiked taxes on anyone earning $250,000 a year or more. By December, Obama agreed to keep the rates as they are for the next two years — in order to get the economy going and job creation restarted.\nYet Obama immediately denounced his own plan and insisted that he would fight to raise those same rates in 2013, effectively killing any stimulating effect the deal might have had. (Maintaining status quo was less about stimulation and more about avoiding damage, of course.) Now, just as Obama wants to promote a jobs bill that contains a half-priced rehash of the Porkulus failure of 2009, he announces that he wants to seize more capital from the very people who we need to put capital into private-sector investments to create jobs. This is especially true of this so-called Buffett Tax, which targets the very income derived from capital risk:\nThe Buffett Tax could help energize Obama’s base by highlighting a feature of the U.S. tax code that allows the super rich to pay lower rates of tax than less wealthy Americans because the bulk of their income is capital gains, dividends and the ‘carried interest’ earnings of hedge fund managers.\nWhat happens when the cost of risk equals the cost of relatively risk-free income? People stop taking risks and shelter their capital. When capital stops being risked in new ventures, economic growth slows and stops, jobs either never get created or start disappearing, and we get stagnation or recession. That capital doesn’t sit on the sidelines forever, either; eventually capital moves to other markets, which means that even when conditions improve, we won’t see that capital return to our markets. On top of that, the vacillation on tax policy and hostility towards capital holders amplifies the incentives to move capital out of the US.\nThat’s why the “new AMT” won’t end up generating anywhere near what the Obama administration will claim. It’s a nakedly political act designed to bolster Obama’s class-warfare demagoguery and credentials, and it’s a policy that will inevitably lead to a deeper economic crisis in the US."} +{"text": "If you are bitten by an animal with rabies and don’t get treated quickly, the disease is likely to be fatal. Same goes for your household pets.\nNorth Bergen and Guttenberg will provide free rabies vaccines on May 15.\n“The importance of getting your [pet] vaccinated against rabies falls into the greater interest of protecting the public health of the community as well as the health and welfare of [your pet] in the event either is exposed to a rabid animal,” said Guttenberg Code Enforcement Officer Nick Rivelli.\nRaccoons, skunks, and groundhogs are the animals that get the disease most often, but it can infect any warm-blooded creature, including household pets. Rabid animals tend to be more aggressive and may appear disoriented. If an infected animal is spotted, it will be captured and observed for 10 days to confirm that it does not have the virus. It will be euthanized if tested positive for the virus.\n“He was like a shark on the end of a fishing pole.” – Rich Censullo\n“To date less than 140 documented cases of human survival from clinical rabies have been reported, and only two have not had a history of pre-or-post exposure prophylaxis,” says the CDC website.\nFree vaccinations in North Bergen\nNorth Bergen’s free rabies clinic will be Wednesday, May 15 from 7 to 8 p.m. at 1812 43rd Street on the corner of Tonnelle Avenue. Licensed veterinarian Dr. Carlos Triana of the Summit Animal Clinic in Union City will vaccinate pets. Pet owners are urged to bring their dogs on a leash and be able to place their pet on the examining table. While rabies shots are usually thought of only for dogs, felines can also be affected by the virus.\n“Aside from the fact that it’s a very contagious viral disease, it’s very easily prevented,” said North Bergen Health Director Janet Castro. “Prevention is the best method for saving your dog’s life and a human life.”\nNormally, residents might have to pay a veterinarian the cost of the rabies vaccination fee, which normally ranges from $25 to $85, and an office visit charge. But the city-sponsored shots are free.\nFor more information about North Bergen’s free rabies clinic, call (201) 392-2084.\nGuttenberg clinic schedule\nGuttenberg will provide free rabies shots also on Wednesday, May 15 from 6 to 9 p.m. at Town Hall, 6808 Park Ave. Licensed veterinarian Dr. John Hatch from the Secaucus Animal Hospital will vaccinate cats or dogs.\n“The vaccine itself is provided by the state of New Jersey free of charge, thus making it readily available to the community as well as providing dog owners a no-excuse opportunity to comply with the law at no cost to them,” said Rivelli. “In order to have a valid dog license, owners are required to have their dog up to date with the rabies vaccination. More importantly, the rabies vaccination ensures the safety of the dog and community in the event of a bite by animal which may be infected with rabies.”\nFor additional information call (201) 868-2315 at either extension 120 or 149.\nRabid raccoon captured\nLast September, former North Bergen Health Director Rich Censullo caught a rabid raccoon near an area where children were getting out of school. Censullo was lucky that the animal did not try to bite him although he did bite a car tire.\n“[The raccoon] backed into a parked car and automatically turned around to bite the tire,” said Censullo. “He was like a shark on the end of a fishing pole. I was worried that he would run in the direction of the children and lash out at the children.”\nThe raccoon was brought to Dr. Triana. Potentially rabid animals are brought to him to be observed for 10 days to see if they show more symptoms. However, this raccoon was put to sleep after a few days, after officials received no reports of it having bitten anyone.\nThe animal’s body was sent to Trenton, where tests showed it did, in fact, have the disease.\nHe emphasized that anyone who sees a sick or injured animal should contact authorities immediately.\n“Every city Health Department has an animal control facility that is available via 911,” said Censullo. “The police dispatchers all have the number for animal control so they can reach an animal control officer all the time. The best thing that people can do is stay as far away from the animal as possible. Any warm blooded mammal can contract rabies.”\nTo obtain more information on rabies, visit the upcoming free rabies event, speak with your veterinarian, the health department, the NJ Department of Health at http://nj.gov/health/cd/rabies/index.shtml, or the Center for Disease Control and Prevention at www.cdc.gov."} +{"text": "one():\n\t\t\treturn\n\t\tcase <-ticker.C:\n\t\t\tif err := w.jobScheduler.ReconcileState(ctx); err != nil {\n\t\t\t\tlog.Error().Err(err).Msg(\"Error reconciling job scheduler state\")\n\t\t\t}\n\t\t}\n\t}\n}\n\n// registerWorkflowsAndActivities registers all workflows and activities based on worker type\nfunc (w *LROWorker) registerWorkflowsAndActivities() {\n\tswitch w.workerType {\n\tcase WorkerTypeLLMIntegration:\n\t\tw.registerLLMIntegrationWorkflows()\n\tdefault:\n\t\t// Default to optimizer workflows (includes all training/optimization workflows)\n\t\tw.registerOptimizerWorkflows()\n\t}\n}\n\n// registerLLMIntegrationWorkflows registers workflows for LLM integration worker\nfunc (w *LROWorker) registerLLMIntegrationWorkflows() {\n\tlog.Info().Msg(\"Registering LLM integration workflows and activities\")\n\n\t// Create deployment refresh activities\n\t// Note: adminGatewayClient and promAPI may be nil, in which case canary tests are skipped\n\tsessionedGateway := sessionedgatewayclient.NewSessionedGatewayClient(w.db, w.gatewayClient)\n\tdeploymentRefreshActivities := activities.NewDeploymentRefreshActivities(\n\t\tw.db,\n\t\tsessionedGateway,\n\t\tw.adminGatewayClient, // May be nil - canary test will be skipped\n\t\tw.promAPI, // May be nil - canary test will be skipped\n\t)\n\n\t// Register deployment refresh activities\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.ScanDeployments,\n\t\tactivity.RegisterOptions{Name: \"ScanDeployments\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.CloneDeployment,\n\t\tactivity.RegisterOptions{Name: \"CloneDeployment\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.VerifyRefreshDeployment,\n\t\tactivity.RegisterOptions{Name: \"VerifyRefreshDeployment\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.GetDeploymentState,\n\t\tactivity.RegisterOptions{Name: \"GetDeploymentState\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RollbackDeployment,\n\t\tactivity.RegisterOptions{Name: \"RollbackDeployment\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunEvalTests,\n\t\tactivity.RegisterOptions{Name: \"RunEvalTests\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunFormatterTests,\n\t\tactivity.RegisterOptions{Name: \"RunFormatterTests\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunFormatterVerdict,\n\t\tactivity.RegisterOptions{Name: \"RunFormatterVerdict\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunKLDInference,\n\t\tactivity.RegisterOptions{Name: \"RunKLDInference\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunKLDVerdict,\n\t\tactivity.RegisterOptions{Name: \"RunKLDVerdict\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.DeleteDeployment,\n\t\tactivity.RegisterOptions{Name: \"DeleteDeployment\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.ApplyRefresh,\n\t\tactivity.RegisterOptions{Name: \"ApplyRefresh\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.CompareEvalScores,\n\t\tactivity.RegisterOptions{Name: \"CompareEvalScores\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunCanaryTest,\n\t\tactivity.RegisterOptions{Name: \"RunCanaryTest\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunLoadTestComparison,\n\t\tactivity.RegisterOptions{Name: \"RunLoadTestComparison\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunBaselineLoadTest,\n\t\tactivity.RegisterOptions{Name: \"RunBaselineLoadTest\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunTrafficMetricsTest,\n\t\tactivity.RegisterOptions{Name: \"RunTrafficMetricsTest\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.GenerateRunReport,\n\t\tactivity.RegisterOptions{Name: \"GenerateRunReport\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.InvestigateAndCommentOnFailure,\n\t\tactivity.RegisterOptions{Name: \"InvestigateAndCommentOnFailure\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.SnapshotOriginalDeployment,\n\t\tactivity.RegisterOptions{Name: \"SnapshotOriginalDeployment\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.MonitorRollout,\n\t\tactivity.RegisterOptions{Name: \"MonitorRollout\"},\n\t)\n\n\t// Register deployment refresh workflow with AutoUpgrade versioning so it is\n\t// not pinned to the build ID it started on. These runs are short-lived but\n\t// must stay queryable (GetRefreshRun / ListRefreshTargets / direct apply all\n\t// QueryWorkflow) after the worker rolls to a new version; with the worker's\n\t// default PINNED behavior, queries fail with \"no poller seen for task queue\"\n\t// once the originating version scales down. The workflow already"} +{"text": "TOKYO Japanese shares powered to nearly 5-year highs and determined sellers just failed to breach the symbolic 100 yen/dollar level on Monday, even though the Bank of Japan's bold reflationary plans were endorsed by the Group of 20 gatherings in Washington.\nWhile oil and gold rebounded after last week's a sharp sell-off, investors remained wary of volatility due to uncertain global growth prospects, hitting industrial metals such as copper.\nEuropean stock markets were seen recovering, with financial spreadbetters predicting London's FTSE 100, Paris's CAC-40 and Frankfurt's DAX would open between 0.4 to 0.8 percent higher.\nU.S. stock futures were up 0.5 percent to suggest a firm Wall Street open.\nIn a communique after a two-day meeting on Friday, the G20 simply said it would be \"mindful\" of possible side-effects from extended periods of monetary stimulus, without singling out Japan as some had feared.\nJapan's central bank governor and finance minister reiterated on Monday that the G20 countries accepted that Japan's monetary easing is not aimed at weakening the yen.\n\"Following the G20, players feel comfortable selling the yen further, and it is just a matter of timing when the symbolic 100 yen level is hit,\" said Yuji Saito, director of foreign exchange at Credit Agricole in Tokyo.\nThe dollar was at 99.71 yen, off an intraday high of 99.89, just below a four-year peak of 99.95 hit on April 11. If heavy option barriers lined up around 100 yen to the dollar were to be broken, it could trigger stop-loss buying and lift the dollar up to the next target, a 2009 high of 101.45, he said.\nWith the euro zone economy looking fragile, the U.S. dollar looked set to strengthen relative to other major currencies. How far that would go depended on U.S. economic data rather than factors from Japan, Saito added.\nJapan's Nikkei stock average surged as much as 2.2 percent to nearly five-year highs, cheering the G20 outcome as a clear trend for the yen to weaken -- improving prospects for Japanese corporate earnings.\nThe rest of Asia fared far less well, with the MSCI's broadest index of Asia-Pacific shares outside Japan inching up 0.2 percent, wary of this week's data from China and the United States.\nAustralian shares rose 0.5 percent while South Korean shares advanced 0.7 percent.\n\"Investors are heading into this week cautiously, as the market lacks a clear direction for the moment,\" said Biyi Cheng, head of dealing Asia Pacific at City Index in Sydney.\nFISCAL STRAINS HURT GROWTH\nFinance leaders of the G20 advanced and emerging economies also edged away from a long-running drive toward official austerity in rich nations, rejecting the idea of setting hard targets for reducing national debt, revealing their worries over a sluggish global recovery.\nThat concern was highlighted on Saturday when the International Monetary Fund's steering committee said at the end of its spring meetings that monetary policy alone was not enough to restore confidence. It urged countries to take extra measures to reinvigorate growth and create jobs.\nCommodities recovered some ground after last week's sharp sell-offs, but markets may remain vulnerable ahead of China's HSBC flash manufacturing PMI for April due on Tuesday.\n\"We have our doubts whether this rebound can continue much further in the absence of good economic data. In this context, US economic numbers including Q1 GDP data will be watched very closely this week,\" Credit Suisse said in a research note.\nU.S. crude rose 0.6 percent to $88.51 a barrel and Brent crude rose 0.3 percent to recover $99.96.\nLondon copper fell 0.9 percent to $6,924 a tonne.\nGold rose more than 1 percent, pushing cash bullion up as high as $1,423.81 an ounce, well two-year low of $1,321.35 touched last week.\nU.S. gold futures rose as high as $1,423.80, but sentiment remains shaky after steady outflows from exchange-traded funds trimmed holdings to their lowest in three years.\nThe euro inched down 0.1 percent to $1.3066, under pressure a batch of euro zone economic reports due this week, including consumer confidence later on Monday and the purchasing managers' index on Tuesday.\nItaly's re-election of a president on Saturday has raised the prospect of an end to the two months of political stalemate that followed a general election, helping to give some support to the euro.\n(Additional reporting by Maggie Lu Yueyang in Sydney and Melanie Burton in Singapore; Editing by Eric Meijer)\nTrending On Reuters\nState Bank of India (SBI) reported its sharpest quarterly profit drop in five years on Friday but cheered investors by saying that fewer than feared of its loans risked turning sour. Read"} +{"text": "MOSCOW Russia enacted a new treason law on Wednesday, alarming opponents of President Vladimir Putin who fear he will use it to silence critics and - in a reminder of the Soviet past - put at risk almost anyone who associates with foreigners.\nThe law broadens the definition of treason to allow Russians representing international organisations to face the charge, as well as citizens working for foreign states and bodies.\nPutin signed the legislation on Tuesday which took effect on Wednesday when it was published in the official gazette, Rossiyskaya Gazeta, even though he had promised on Monday to review it.\nPolitical opponents and rights activists say the law is the latest in a series intended to crack down on the opposition and reduce foreign influence which have been introduced since Putin returned to the Kremlin in May for a six-year third term.\nLyudmila Alexeyeva, 85, a former Soviet dissident and veteran human rights activist, drew comparisons with the darkest days under dictator Josef Stalin, who died in 1953.\n\"It's an attempt to return not just to Soviet times but to the Stalin era, when any conversation with a foreigner was seen as a potential threat to the state,\" she said, adding that the law would probably be used selectively against Kremlin critics and others \"who irritate the authorities\".\nDmitry Oreshkin, a political analyst sympathetic with anti-Putin protests this year, said the motivation behind the law was that \"the state is more important than its citizens, so there must be as much control over citizens as possible\".\nThe law was backed by the Federal Security Service (FSB), the main successor of the Soviet KGB secret police. It landed on the desk of Putin, who was once a KGB officer, after being approved by both houses of parliament in nine days last month.\nThe FSB, in a rare public comment, was quoted by state-run news agency Itar-Tass as saying the law had been unchanged since the 1960s and needed updating as \"foreign intelligence agencies' methods and tactics for gathering information have changed\".\nPutin attacked the United States during campaigning for the presidential election in March, and Russian officials have said the law is needed to help prevent foreign governments using organisations in Russia to gather state secrets.\n\"Citizens recruited by international organisations acting against the country's interests will also be considered traitors,\" Rossiyskaya Gazeta said in a commentary on its website.\nPutin has frequently accused Western nations of trying to undermine Russia's security. He has suggested they are using non-governmental organisations to weaken the nuclear-armed state, which was a Cold War enemy of the United States,\nMoscow ordered the U.S. Agency for International Development (USAID) to cease its operations in Russia in October, accusing it of seeking to influence elections.\nIn July, Putin signed a law requiring foreign-funded NGOs deemed to be engaging in political activity to register as \"foreign agents\". His critics say other legislation is also aimed at silencing opponents.\nThe United States and the European Union have criticised the laws, and expressed concern about criminal charges laid against several opposition leaders in the last few months.\nDuring his election campaign, Putin faced protests which at times drew tens of thousands of people into Moscow's streets, and he accused Washington of encouraging the demonstrators.\nThe maximum sentence for high treason remains 20 years, but the new legislation introduces prison terms of up to eight years for Russians acquiring state secrets in certain ways, even if they are not passed to foreigners.\nIt broadens the actions that can attract treason charges to include giving \"financial, material, technical, consultative or other aid\" to a government or organisation deemed to be seeking to undermine Russian security.\nThose changes, as well as the removal of the stipulation that actions must be aimed against Russia's \"external\" security to be considered treasonous, have raised concerns the law could be applied broadly to punish government opponents.\nAt a meeting of his human rights council on Monday, Putin listened to a retired Constitutional Court judge's concerns about the legislation, which she said did not require authorities to prove a suspect had damaged state security.\nBut although Putin said he would look again at the law, his spokesman, Dmitry Peskov, said he signed it a day later.\n\"It's not the first time Putin has said the right words while slowly tightening the screws,\" Alexeyeva said.\nPeskov said Putin could still seek to amend the law if it was found in practice to curtail citizens' rights, but critics were sceptical. \"It's high time to understand one should not pay attention to what Putin says,\" said Dmitry Oreshkin, an opposition-minded political analyst.\nPutin was increasingly turning to \"Soviet values\" that put the state above the rights of citizens to maintain his grip, he said. \"He could not fail to sign it because the FSB would tell him: 'In that case, we cannot ensure control',\" Oreshkin said. (Editing by Timothy Heritage and David Stamp)\nTrending On Reuters\nDonald Trump brought his message of walls and deportations to the doorstep of America’s busiest border crossing on Friday as the presumptive Republican presidential nominee greeted supporters in San Diego, amid one of the largest counter-protests organized against him. Full Article | Video\n- Rio de Janeiro police investigate alleged gang rape that has shocked Brazilians\n- Putin warns Romania, Poland - you may now be in Russia's cross-hairs\n- U.N. urges Syrian government to stop blocking aid deliveries\n- No new signal from EgyptAir jet since day of crash, search intensifies\n- Obama mourns dead in Hiroshima, calls for world without nuclear arms"} +{"text": " gates\n\t// non-deterministic changes behind workflow.GetVersion, so it is replay-safe\n\t// across versions.\n\tw.temporalWorker.RegisterWorkflowWithOptions(\n\t\tworkflows.DeploymentRefreshWorkflow,\n\t\tworkflow.RegisterOptions{\n\t\t\tName: \"DeploymentRefreshWorkflow\",\n\t\t\tVersioningBehavior: workflow.VersioningBehaviorAutoUpgrade,\n\t\t},\n\t)\n\t// Applies an already-validated refresh directly to the original deployment,\n\t// triggered by the Jarvis \"Apply Upgrade\" button. Distinct workflow type so\n\t// it stays out of the Refresh Runs list.\n\tw.temporalWorker.RegisterWorkflowWithOptions(\n\t\tworkflows.DeploymentApplyWorkflow,\n\t\tworkflow.RegisterOptions{\n\t\t\tName: \"DeploymentApplyWorkflow\",\n\t\t\tVersioningBehavior: workflow.VersioningBehaviorAutoUpgrade,\n\t\t},\n\t)\n\n\t// Register deployment experiment workflow and activities\n\tw.RegisterDeploymentExperiment()\n}\n\n// registerOptimizerWorkflows registers workflows for optimizer worker (default)\nfunc (w *LROWorker) registerOptimizerWorkflows() {\n\tlog.Info().Msg(\"Registering optimizer workflows and activities\")\n\n\t// Create activities with dependencies\n\t// Legacy activity - kept for backward compatibility but will be removed\n\t// dsValidationActivity := activities.NewDatasetValidationActivity(w.db, w.gatewayClient)\n\n\t// New dataset validation activities for the refactored workflow\n\tcreateDatasetValidationJobActivity := activities.NewCreateDatasetValidationJobActivity(w.db, w.regionBasedRuntime)\n\tinterpretDatasetValidationResultsActivity := activities.NewInterpretDatasetValidationResultsActivity(w.regionBasedRuntime)\n\n\t// AWS credentials resolution activity\n\tresolveAwsCredentialsActivity := activities.NewResolveAwsCredentialsActivity(w.regionBasedRuntime)\n\n\t// Azure credentials resolution activity\n\tresolveAzureCredentialsActivity := activities.NewResolveAzureCredentialsActivity(w.regionBasedRuntime)\n\n\tdatasetTransformationActivity := activities.NewDatasetTransformationActivity(w.db, w.gatewayClient)\n\n\t// Create eagle activities\n\thiddenStatesGenActivity := activities.NewHiddenStatesGenActivity(w.db, w.eagleBaseUrl, w.regionBasedRuntime)\n\teagleTrainingActivity := activities.NewEagleTrainingActivity(w.db, w.gcs, w.regionBasedRuntime)\n\teagleOnlineTrainerActivity := activities.NewEagleOnlineTrainerActivity(w.db, w.gcs, w.eagleBaseUrl, w.regionBasedRuntime, w.clusterRegistry)\n\teagleDraftModelActivity := activities.NewEagleDraftModelActivity(w.db, w.gcs, w.regionBasedRuntime)\n\n\tdatasetQueryActivity := activities.NewDatasetQueryActivity(w.db)\n\trlorTrainerActivity := activities.ConfigureRlorTrainerActivityControlPlaneResolver(\n\t\tactivities.NewRlorTrainerActivity(w.db, w.regionBasedRuntime),\n\t\tw.controlPlaneURL,\n\t\tw.controlPlaneGatewaySecret,\n\t)\n\n\t// Create service mode activity for StatefulSet-based trainers\n\trlorServiceActivity := activities.NewRlorTrainerServiceActivityWithConfig(\n\t\tw.db,\n\t\tw.regionBasedRuntime,\n\t\tw.helmClientProvider,\n\t\tw.trainerHelmChart,\n\t\tw.trainerHelmChartImageVersion,\n\t\tw.titanTrainerHelmChartImageVersion,\n\t)\n\trlorServiceActivity = activities.ConfigureRlorTrainerServiceActivityControlPlaneResolver(\n\t\trlorServiceActivity,\n\t\tw.controlPlaneURL,\n\t\tw.controlPlaneGatewaySecret,\n\t)\n\n\t// Get default k8s client for CreateK8sAndWaitActivity (used for non-region-specific jobs like RLOR)\n\tdefaultK8sClient, err := w.regionBasedRuntime.GetK8sForRegion(gpb.Region_US_VIRGINIA_1)\n\tif err != nil {\n\t\tlog.Error().Err(err).Msg(\"Failed to get default k8s client for CreateK8sAndWaitActivity\")\n\t\tdefaultK8sClient = nil\n\t}\n\tcreateK8sActivity := activities.NewCreateK8sAndWaitActivity(w.db, defaultK8sClient)\n\n\t// Create generic poll activity\n\tpollK8sJobActivity := activities.NewPollK8sJobActivity(w.db, w.regionBasedRuntime)\n\n\t// FIR2-1593: per-runtime poller for the managed RFT E2B sandbox path.\n\t// Registered alongside PollK8sJob so TrainingJobWorkflow can dispatch\n\t// to either activity based on the resolved runtime mode.\n\tpollE2BOrchestratorJobActivity := activities.NewPollE2BOrchestratorJobActivity(w.db, w.regionBasedRuntime)\n\n\t// Create billing activity\n\tbillingActivity := activities.NewBillingActivity(w.db, w.regionBasedRuntime)\n\n\t// Create cleanup activity\n\tcleanupActivity := activities.NewCleanupActivity(w.db, w.regionBasedRuntime)\n\n\t// Create trainer-placement cleanup activity (M2.4). Backup hook that\n\t// runs from each trainer workflow's defer block to release a schedule\n\t// reservation row in case the inline CommitTrainerJob call was skipped\n\t// (workflow cancel, panic, etc.). Idempotent and best-effort — failures\n\t// are absorbed by the orphan sweeper.\n\tcleanupTrainerPlacementActivity := activities.NewCleanupTrainerPlacementActivity(w.regionBasedRuntime)\n\n\t// Create deploy model version activity\n\tdeployModelVersionActivity := activities.NewDeployModelVersionActivity(w.db, w.regionBasedRuntime)\n\n\t// Create promote checkpoint activity\n\tpromoteCheckpointActivity := activities.NewPromoteCheckpointActivity(w.db, w.gcs, w.dwClient)\n\n\t// Register activities\n\t// Legacy activ"} +{"text": "From the Wires\nCancana Signs Exclusive Agreement to Purchase 100% of Rio Madeira\nBy: Marketwired .\nFeb. 8, 2013 06:16 AM\nVANCOUVER, CANADA -- (Marketwire) -- 02/08/13 -- Cancana Resources Corp. (TSX VENTURE:CNY) (the \"Company\" or \"Cancana\") is pleased to announce it has entered into an exclusive Memorandum of Understanding, (\"MOU\"), to purchase Rio Madeira Comercio Importacao E Exportacao De Minerios, (\"Rio Madeira\") in the State of Rondonia, Brazil.\nThe exclusive MOU that has been agreed between Cancana and Rio Madeira is for the 100% acquisition of the Rio Madeira corporate entity and all of its associated assets, mineral claims and operations. It is subject to the successful completion of due diligence and financing, which expires on April 30, 2013.\nRio Madeira is a producing Manganese mine operation, producing lump ore of varying sizes and is located adjacent to, and mainly contiguous with, Cancana's Manganese claims. Rio Madeira holds title to 15 mineral claims that total approximately 62,000 hectares in size. Also included are 3 full mining licenses known as a \"Lavra\".\nCancana and Rio Madeira have commenced establishment of due diligence requirements and these are underway. This will include the review of all financial and operational aspects of Rio Madeira as well as a geo technical review of the mineral claims held. Present grades of Manganese produced are in the 50% plus range according to Rio Madeira, these are similar to the grades Cancana has reported in the two recent N.I. 43-101 reports published for its Valdirao project known as \"241NC\".\nIn the past year Rio Madeira has made substantial improvements to their production and processing facilities. These include the streamlining of the initial ore processing, screening, washing and sorting, as well as the ability to commence the recovery of the \"fines\", or granular Manganese ore. In turn this affords Rio Madeira the ability to access the fertilizer industry as well as the steel and Ferro Manganese markets.\nAndrew Male, President & CEO of Cancana, commented; \"We are very pleased to have signed an MOU with the owners of Rio Madeira. During the last 7 days I have visited their production plant in Espigao, and I am very encouraged by the progress that Rio Madeira has made with ongoing modifications and upgrades to their processing facilities. As we are completing the due diligence of Rio Madeira we will then concurrently begin to seek the acquisition financing required to complete the purchase. Having maintained a good ongoing relationship with the partners of Rio Madeira since late 2010, when we originally tried to establish a partnership with them, has been key in successfully obtaining this agreement for a 100% acquisition.\"\nCancana Resources Corp. is an exploration stage company with assets in Brazil and Canada. The Company has been seeking projects that expand its resource base and provide for near term production and revenue. All available resource reports and information on the Company's properties are located on the Company website: www.cancanacorp.com.\nIssued on behalf of the Board of Directors of Cancana Resources Corp.\nAndrew Male, CEO and Director\nThe information in this news release may contain forward-looking statements within the meaning of Section 27A of the Securities Act of 1933 and Section 21E of the Securities Exchange Act of 1934 and applicable Canadian securities laws. When used in this release, words such as \"estimate\", \"expect\", \"anticipate\" and \"believe\" as well as similar expressions are intended to identify forward-looking statements. Such statements are used to describe management's future plans, objects, and goals for the Company and therefore involve inherent risks and uncertainties. The reader is cautioned that actual results, performance or achievements may be materially different from those implied or expressed in such statements, which speak only as of the date, the statements were made. The Company does not update forward-looking statements continually as conditions change. We seek safe harbour.\nNeither the TSX Venture Exchange nor its Regulation Service Provider (as that term is defined in the policies of the TSX Venture Exchange) accepts responsibility for the adequacy or accuracy of this release.\nSOA World Latest Stories\nSubscribe to the World's Most Powerful Newsletters\nSubscribe to Our Rss Feeds & Get Your SYS-CON News Live!\nSYS-CON Featured Whitepapers\nMost Read This Week"} +{"text": "As part of the blog tour for The Twisted Tragedy of Miss Natalie Stewart, I am happy to have the author stop by for a guest post, and a giveaway along with my review!\n\"The Twisted Tragedy of Miss Natalie Stewart\"\nPublisher: Sourcebooks Fire\nRelease Date: Nov 1, 2012\nSource: sent by publisher\nMy Rating: 4.5 of 5 Stars\nSummary from goodreads.com:\nFor Natalie Stewart, a normal life has never seemed so far away. Her only solace, Lord Jonathan Denbury, is wanted for murder. To clear his name, Denbury must return to England and assume the role of his demon doppelganger. But Natalie begins to doubt his true motives, especially as a new gentleman begins whispering in her ear. Natalie and Denbury may be able to visit each other in their dreams, but they can't escape the darkening shadows. Amid spontaneous explosions, friends turned enemies and dangerous secrets revealed, there's still a demon who has Natalie's scent, and someone is trying to resurrect the ultimate evil.\nThis book is a great mix of historical, mystery, romance, and good deal of creepiness. I really enjoyed how unique this story is. The interesting and new story combined with the great characters really kept me turning the pages.\nI haven't read the first book in the series, but wow, I really want to now. I want to see how Natalie and Jonathon met and fell in love, and I'd really love to see how his being trapped in a painting played out.\nI wasn't sure about the demon angle to the story, but it ended up not being so bad for me, and I'm scared easily. It was more of a gothic, creepy tale, instead of shocking horror. Perhaps the fact that it was a historical story made the scary parts more gothic in tone and feel. Some of the dastardly plots reminded me of Frankenstein, which was another gothic, not horrifying, story.\nMain Characters: 5/5\nSupporting Characters: 4/5\nBottom Line: A great story with something for everyone, and the vivid cast of characters makes the story complete.\nNow, I'd like to welcome Leanna Renee Hieber to In the Hammock for a guest post!\nby Leanna Renee Hieber\nIt’s no secret that bestselling author Leanna acts, writes, and even combines the two to create a play. Leanna describes what it’s like to be a working actress while also making a bestseller book.\nI wear many different hats. And I don’t just mean cute little Victorian hats, though I do have quite a collection. I’ve always been a Jack of All Trades and it’s my varying interests that have kept me busy, employed in the arts and happy in always having a project or two to work on. The trick to doing anything well is time and discipline, it’s very hard to juggle theatrical pursuits and writing and promoting your books full time. I have to pick and choose and shift focus. While I was a full time professional actress on stage in various regional theatre productions around the country, my writing took a back seat. Today my writing is at the foreground and I do theatrical and/or film projects sporadically. The ability to shift focus from one priority to another depending on deadlines is a skill I’ve been trying to sharpen forever. The biggest challenge is self-discipline of one’s own time. It’s something I struggle with day in and day out. Storytelling is at the core of all my interests, and while I’m very selective now about the stories I tell and the mediums I use to tell them, I’m blessed to have several different avenues to pursue the stories that intrigue me. One of the most fascinating ways that my worlds have blended is in adapting my first novel into a musical theatre production with Broadway talent on board. My time as an actress and brief stints as a playwright made it easier for the production company behind the musical adaptation of The Strangely Beautiful Tale of Miss Percy Parker to approach me to be on the collaboration team. I’m uniquely suited as having experience in all these fields to weave a story together in an entirely new medium, a show. And it’s that process of adaptation and collaboration that then allows me to have fresh insights and new tricks to make an engaging story come to life when I return to my novels, such as THE TWISTED TRAGEDY OF MISS NATALIE STEWART.\nThe publicist has generously provided a copy of \"The Twisted Tragedy of Miss Natalie Stewart\" for a lucky follower of my blog!\nAll you have to do is follow my blog publicly and fill out the Rafflecopter form below. Please follow publicly or I can't tell that you are following :)\n- US/CAN only\n- Must be a follower to enter\n- Books will be mailed out by the publisher\n- Must be 18 or over\n- Ends Sun Dec 2Thanks to everyone for entering! Good luck!"} +{"text": "ity - commented out as it's replaced by the new workflow\n\t// w.temporalWorker.RegisterActivity(dsValidationActivity.RunDatasetValidation)\n\n\t// Register new dataset validation activities\n\tw.temporalWorker.RegisterActivity(createDatasetValidationJobActivity.CreateDatasetValidationJob)\n\tw.temporalWorker.RegisterActivity(interpretDatasetValidationResultsActivity.InterpretDatasetValidationResults)\n\tw.temporalWorker.RegisterActivity(datasetTransformationActivity.RunDatasetTransformation)\n\tw.temporalWorker.RegisterActivity(resolveAwsCredentialsActivity.ResolveAwsCredentials)\n\tw.temporalWorker.RegisterActivity(resolveAzureCredentialsActivity.ResolveAzureCredentials)\n\tw.temporalWorker.RegisterActivity(datasetQueryActivity.QueryDataset)\n\tw.temporalWorker.RegisterActivity(hiddenStatesGenActivity.CreateHiddenStatesGenJob)\n\tw.temporalWorker.RegisterActivity(eagleTrainingActivity.CreateEagleTrainingJob)\n\tw.temporalWorker.RegisterActivity(eagleOnlineTrainerActivity.CreateEagleOnlineTrainerJob)\n\tw.temporalWorker.RegisterActivity(eagleDraftModelActivity.PollEagleDraftHotReload)\n\tw.temporalWorker.RegisterActivity(eagleDraftModelActivity.ReloadEagleDraftSnapshot)\n\tw.temporalWorker.RegisterActivity(eagleDraftModelActivity.FinalizeEagleOutputDraftModel)\n\tw.temporalWorker.RegisterActivity(rlorTrainerActivity.RunCreateRlorK8s)\n\tw.temporalWorker.RegisterActivity(rlorTrainerActivity.RunUpdateRlorModel)\n\tw.temporalWorker.RegisterActivity(rlorTrainerActivity.EnsureRlorModel)\n\tw.temporalWorker.RegisterActivity(rlorTrainerActivity.CreateSynFile)\n\tw.temporalWorker.RegisterActivity(rlorTrainerActivity.PollAckAndK8sJob)\n\tw.temporalWorker.RegisterActivity(rlorTrainerActivity.FinalizeRlorModel)\n\tw.temporalWorker.RegisterActivity(rlorTrainerActivity.ResolveDataset)\n\tw.temporalWorker.RegisterActivity(createK8sActivity.RunCreateK8sAndWait)\n\n\t// Register service mode activities for StatefulSet-based trainers\n\tw.temporalWorker.RegisterActivity(rlorServiceActivity.RunCreateRlorService)\n\tw.temporalWorker.RegisterActivity(rlorServiceActivity.RunDeleteRlorService)\n\tw.temporalWorker.RegisterActivity(rlorServiceActivity.RunGetRlorServiceStatus)\n\tw.temporalWorker.RegisterActivity(rlorServiceActivity.RunWaitForRlorServiceReady)\n\tw.temporalWorker.RegisterActivity(rlorServiceActivity.CheckTrainerInactivity)\n\tw.temporalWorker.RegisterActivity(rlorServiceActivity.UpdateRlorServiceModeJobTerminalState)\n\n\t// Register generic poll activities\n\tw.temporalWorker.RegisterActivity(pollK8sJobActivity.PollK8sJob)\n\tw.temporalWorker.RegisterActivity(pollE2BOrchestratorJobActivity.PollE2BOrchestratorJob)\n\n\t// Register billing activities\n\tw.temporalWorker.RegisterActivity(billingActivity.ReportBilling)\n\tw.temporalWorker.RegisterActivity(billingActivity.GetAccountUsage)\n\tw.temporalWorker.RegisterActivity(billingActivity.ReportRFTBilling)\n\tw.temporalWorker.RegisterActivity(billingActivity.GetModelParameterCount)\n\tw.temporalWorker.RegisterActivity(billingActivity.UpdateSFTJobBillingState)\n\tw.temporalWorker.RegisterActivity(billingActivity.UpdateDpoJobBillingState)\n\tw.temporalWorker.RegisterActivity(billingActivity.PersistTrainingJobBillingEventIndex)\n\tw.temporalWorker.RegisterActivity(billingActivity.ReportRFTBillingComplete)\n\tw.temporalWorker.RegisterActivity(billingActivity.ReportServiceModeBilling)\n\tw.temporalWorker.RegisterActivity(billingActivity.ReportTrainingJobBilling)\n\n\t// Register cleanup activities\n\tw.temporalWorker.RegisterActivity(cleanupActivity)\n\n\t// Register enable model snapshot activities\n\tw.temporalWorker.RegisterActivity(deployModelVersionActivity.ExecuteDeployModelVersionStateTransition)\n\tw.temporalWorker.RegisterActivity(deployModelVersionActivity.CreateModelVersionReloaderJob)\n\tw.temporalWorker.RegisterActivity(deployModelVersionActivity.WatchJobStatus)\n\tw.temporalWorker.RegisterActivity(promoteCheckpointActivity.RunPromoteCheckpointOperation)\n\tw.temporalWorker.RegisterActivity(promoteCheckpointActivity.FinishPromoteCheckpointOperation)\n\n\t// Register trainer-placement cleanup activity (M2.4)\n\tw.temporalWorker.RegisterActivity(cleanupTrainerPlacementActivity.CleanupTrainerPlacement)\n\n\t// Register workflows\n\tw.temporalWorker.RegisterWorkflow(workflows.DatasetValidationWorkflow)\n\tw.temporalWorker.RegisterWorkflow(workflows.EagleWorkflow)\n\tw.temporalWorker.RegisterWorkflow(workflows.RLORWorkflow)\n\tw.temporalWorker.RegisterWorkflow(workflows.RLORServiceModeWorkflow)\n\n\tw.temporalWorker.RegisterWorkflow(workflows.DeployModelVersionWorkflow)\n\tw.temporalWorker.RegisterWorkflow(workflows.PromoteCheckpointWorkflow)\n\n\t// Register cluster validation activities and workflow\n\tw.temporalWorker.RegisterActivity(activities.NewClusterValidationActivities(w.regionBasedRuntime, w.clusterRegistry))\n\tw.temporalWorker.RegisterWorkflow(workflows.ClusterValidationWorkflow)\n\n\tw.RegisterEvaluationJob()\n\tw.RegisterBatchInferenceJob()\n\tw.RegisterRFTJob()\n\tw.RegisterSFTJob()\n}\n\n// GetAvailableCapacity returns available GPU capacity per region. It prefers\n// global_capacity_server ("} +{"text": "Alexandria, Va., April 23, 2012 - Today, in conjunction with Earth Day, JPMorgan Chase (NYSE: JPM) and Good360 announced the launch of Tech Warehouse, a JPMorgan Chase Technology for Social Good program that will assist nonprofit organizations and schools with contributions of the firm's refurbished technology to enhance communities, improve individual productivity and address zero waste initiatives. This innovative program leverages the benefits of sustainable management of resources at their end of life in order to make a positive impact on the world.\n\"JPMorgan Chase is committed to funding impactful programs that make a meaningful difference in the communities where we work and live,\" said Guy Chiarello, Chief Information Officer, JPMorgan Chase. \"Since 2009, we've been able to redeploy almost 30 percent of the desktops, laptops, monitors and printers collected - avoiding costs and reducing our environmental impact. We are proud to develop Tech Warehouse with Good360 as a way to continue our work toward preserving the environment while providing useful technology for those in need.\"\n\"Our new donation marketplace provides a great platform to distribute these highly desirable computers that would otherwise go to a landfill,\" said Ellie Hollander, Chief Strategy Officer & EVP for Business Development at Good360. \"Good360 is committed to creating corporate, nonprofit and environmental win-win outcomes for excess technology and we're thrilled to be working with JPMorgan Chase on Tech Warehouse.\"\nUnder the new partnership, JPMorgan Chase will replace hard drives in more than 3,000 of its computers and connect with Good360's network of over 27,000 qualified charities through the world's largest online product donation marketplace. Under this pilot program, these clean and tested refurbished computers equipped with basic peripherals and OS software will be made available to nonprofits over the next year. Qualified nonprofits will be permitted to acquire up to 15 products annually and five per quarter. Donations must be used for the primary purpose of serving the ill, needy or youth and cannot be resold, auctioned, traded, bartered or cross international borders. Charities will be asked to pay $65 to cover shipping and handling fees, and the program will also require recipients to properly recycle the computers when they reach their end of life.\nGood360, formerly Gifts In Kind International, has been providing product resources that help nonprofits meet their missions and allow companies to give back to the communities where they live and work since 1983. As the leaders in product philanthropy move to upgrade their cutting-edge online donation marketplace, the generous computer donations made by JPMorgan Chase will help stock the marketplace with one of the most requested products by their charity network.\nFor more information on joining Good360's charity network and accessing these donations, visit www.good360.org/JPMorganChase.\nAbout JPMorgan Chase & Co.\nJPMorgan Chase & Co. (NYSE: JPM) is a leading global financial services firm with assets of $2.3 trillion and operations in more than 60 countries. The firm is a leader in investment banking, financial services for consumers, small business and commercial banking, financial transaction processing, asset management and private equity. A component of the Dow Jones Industrial Average, JPMorgan Chase & Co. serves millions of consumers in the United States and many of the world's most prominent corporate, institutional and government clients under its J.P. Morgan and Chase brands. Information about JPMorgan Chase & Co. is available at www.jpmorganchase.com.\nConsistently ranked by Forbes Magazine as one of the ten most cost-efficient charities in America, Good360 (formerly Gifts In Kind International) is dedicated to helping people and communities in need by distributing corporate product donations to qualified nonprofits. These include nonperishables, such as apparel, books, toys, personal care products, office and school supplies, computers and much more. On behalf of several Fortune 100 consumer, retail and technology companies, Good360 distributes products to a network of more than 27,000 pre-vetted organizations."} +{"text": "Being a wellness coach brings with it lots of questions .. and I love this part of the job as I treat each person individually and work according to their values and beliefs.\nRegardless the amount of knowledge each ‘welly’ (I call my clients ‘welly’s, short for wellness because ‘client’s sounds very clinical) has about nutrition and fitness there seems to be a constant with questions that are asked. Perhaps it’s due to mainstream media harping about certain topics, I’m not sure, but there sure is fear and confusion surrounding food choices.\nI come from a non-diet perspective and prefer to look at food choices and habits, rather than focussing on short term diets which in the end teach you nothing about your behaviours and how to correct them. This is done through sustainable changes and strategies. For this reason, it’s important to note that if you have cleaned up your diet to the point that you are worrying about certain healthy foods, that is ok, but there usually are a few other areas to focus on creating change before you get to this point.\nPut it this way, there is no point cutting out fruit in your diet if you are going to go and gorge yourself on an ice-cream for dessert .. nothing achieved and nutritionally it is a poor choice over natural sugars.\nTo help clear up some issues here are two of my most asked questions .. answered in the most simple terms!\n1/ Is it ok to eat bananas? Aren’t bananas fattening?\nPersonally we eat a lot of bananas in our household. They are great portable snacks for growing, active kids and perfect for active people. The key is timing though. Bananas are very carb dense – about 30g of carbohydrates, 3g of fibre, 2g of protein and 0.5g of fat (about 5 tsp of sugar, 2 of them being fructose).\nEating carbohydrates raises our insulin levels which in turn makes it hard for the body to burn fat while your blood sugar levels are amped. If you’re goal is to lose weight you need to factor this into your daily equation, especially if you’re not that active.\nPersonally, my husband enjoys a half a banana in his morning superfood smoothie while I will choose berries due to their lower fructose and carbohydrate content. In saying that, if I have had a superhard sweaty huff n puff session, half a banana will go in, to help my recovery and replenish potassium levels. Other times I will eat bananas is on race day as a pre and post race snack, just because it is one of those foods that has always agreed with my stomach so I stick to it (Plus I burn silly amounts of energy in endurance events).\nIf you would like to have a banana on the run, throw in some nuts (fats) or have it in a smoothie with milk (protein) to help slow down the insulin response and the speed it is digested.\nBananas should not be seen as villains and have a lot of merit and powerful benefits when compared to other unhealthy and empty calorie snacks. They pros really do outweigh the cons.\n2/ Is rice healthy? Should I be eating rice?\nTo answer this I say look at other cultures around the world where it is their staple and has been for many years (before westernisation entered the picture). Women in particular can sometimes feel negative effects from consuming a diet too low in carbohydrates and sense a shift in their hormones. Rice is a gluten-free product and a great way for people searching for safe grain option or source of carbohydrates.\nThere has been some talk about the arsenic levels in rice and other factors that highlight that white may in fact be healthier than its brown counterpart. Yes, brown rice has more fibre (which can sometimes be harmful to the gut) and nutrients but white rice is more easily digested (faster absorption rate and tolerable).\nOur family love to eat rice and sushi and I vary it between white and brown rice. We make and drink our own rice milk also.\nRice is on the better half of the continuum when it comes to eating starches with high carbohydrate wheat on the other end. Rice is a minimally processed food that is a great option for athletes searching for energy replenishment.\nIf losing weight is your goal, then again rice, needs to be taken into consideration if insulin resistance has taken effect. Damaged metabolisms heal better without overloads of simple sugars and carbohydrates so if this is the case rice, (and other forms of grains) could possibly be off the menu for a while.\nPut it this way if you’re going to sit down to a plate of fried potato chips then you would be better off substituting with a form of rice. It’s just about putting the confusing details into perspective."} +{"text": "no per-cluster Kubernetes List) when configured, and\n// falls back to the legacy in-process cluster_manager path otherwise.\nfunc (w *LROWorker) GetAvailableCapacity(ctx context.Context, req *dwpb.GetAvailableCapacityRequest) (*dwpb.GetAvailableCapacityResponse, error) {\n\tif w.availableCapacityFromGlobalCapacityServer && w.globalCapacityClient != nil {\n\t\treturn w.getAvailableCapacityFromGlobalCapacityServer(ctx, req)\n\t}\n\treturn w.getAvailableCapacityFromClusterManager(ctx, req)\n}\n\n// getAvailableCapacityFromClusterManager is the legacy per-cluster Kubernetes\n// List path (via AvailableCapacityCache), retained as the fallback when no\n// global capacity client is configured.\nfunc (w *LROWorker) getAvailableCapacityFromClusterManager(ctx context.Context, req *dwpb.GetAvailableCapacityRequest) (*dwpb.GetAvailableCapacityResponse, error) {\n\tresp := &dwpb.GetAvailableCapacityResponse{\n\t\tAvailableCapacity: []*dwpb.GetAvailableCapacityResponse_Capacity{},\n\t}\n\n\t// If a list of regions is provided, we only return the available capacity for the regions in the list\n\tminPriority := int32(constants.PriorityValueDeployment)\n\tif req.MinPriority != nil {\n\t\tminPriority = *req.MinPriority\n\t}\n\n\tif len(req.Regions) > 0 {\n\t\tfor _, region := range req.Regions {\n\t\t\tclient, exists := w.clusterManager.Clients[region]\n\t\t\tif !exists || client == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Check if capacity cache is available\n\t\t\tif client.AvailableCapacityCache == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Check if this accelerator type is supported in this region\n\t\t\tacceleratorTypes, err := w.regionBasedRuntime.GetAcceleratorTypesForRegion(region)\n\t\t\tif err != nil {\n\t\t\t\t// Region not configured, skip\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif _, supported := acceleratorTypes[req.AcceleratorType]; !supported {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tcount, err := client.AvailableCapacityCache.Get(ctx, clustermanager.CapacityCacheKey{\n\t\t\t\tAcceleratorType: req.AcceleratorType,\n\t\t\t\tMinPriority: minPriority,\n\t\t\t\tTaintExclusionMode: req.TaintExclusionMode,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\tlog.Warn().Err(err).Msgf(\"Error getting free GPUs for region %v\", region)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif count == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tresp.AvailableCapacity = append(resp.AvailableCapacity, &dwpb.GetAvailableCapacityResponse_Capacity{\n\t\t\t\tRegion: region,\n\t\t\t\tCount: count,\n\t\t\t})\n\t\t}\n\t\treturn resp, nil\n\t}\n\n\t// Otherwise, if a multi-region is provided, we return the available capacity for the regions in the multi-region\n\tfor region, client := range w.clusterManager.Clients {\n\t\tif client == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Skip clusters that do not accept autoplacement for this hardware type.\n\t\tif !client.AcceptAutoPlacement(clustermanager.WithAcceleratorType(req.AcceleratorType)) {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Check if capacity cache is available\n\t\tif client.AvailableCapacityCache == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Check if region belongs to the requested multi-region group\n\t\tif req.MultiRegion != gpb.MultiRegion_MULTI_REGION_UNSPECIFIED {\n\t\t\tif !w.clusterRegistry.IsValidMultiRegion(req.MultiRegion) {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid multi-region: %v\", req.MultiRegion)\n\t\t\t}\n\t\t\tif !w.clusterRegistry.RegionGroupContains(req.MultiRegion, region) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\t// Check if this accelerator type is supported in this region\n\t\tacceleratorTypes, err := w.regionBasedRuntime.GetAcceleratorTypesForRegion(region)\n\t\tif err != nil {\n\t\t\t// Region not configured, skip\n\t\t\tcontinue\n\t\t}\n\t\tif _, supported := acceleratorTypes[req.AcceleratorType]; !supported {\n\t\t\tcontinue\n\t\t}\n\n\t\tcount, err := client.AvailableCapacityCache.Get(ctx, clustermanager.CapacityCacheKey{\n\t\t\tAcceleratorType: req.AcceleratorType,\n\t\t\tMinPriority: minPriority,\n\t\t\tTaintExclusionMode: req.TaintExclusionMode,\n\t\t})\n\t\tif err != nil {\n\t\t\tlog.Warn().Err(err).Msgf(\"Error getting free GPUs for region %v\", region)\n\t\t\tcontinue\n\t\t}\n\t\tif count == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tresp.AvailableCapacity = append(resp.AvailableCapacity, &dwpb.GetAvailableCapacityResponse_Capacity{\n\t\t\tRegion: region,\n\t\t\tCount: count,\n\t\t})\n\t}\n\treturn resp, nil\n}\n\n// availableCapacitySlack is the per-region GPU buffer GetAvailableCapacity\n// withholds so callers never pack a region to its last GPU. Mirrors the legacy\n// fetchAvailableCapacity slack the cluster_manager path applied.\nconst availableCapacitySlack = int32(8)\n\n// getAvailableCapacityFromGlobalCapacityServer answers GetAvailableCapacity from\n// global_capacity_server instead of the legacy per-cluster Kubernetes List path.\nfunc (w *LROWorker) getAvailableCapacityFromGlobalCapacityServer(ctx context.Context, req *dwpb.GetAvailableCapacityRequest) (*dwpb.GetAvailableCapacityResponse, error) {\n\tminPriority := int32(constants.PriorityValueDeployment)\n\tif req.MinPriority != nil {\n\t\tminPriority = *req.MinPriority\n\t}\n\n\tregions, err := w.resolveAvailableCapacityRegions(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(regions) == 0 {\n\t\treturn &dwpb.GetAvailableCapacityResponse{}, nil\n\t}\n\n\t// Mirror the legacy cluster_manager inputs: the LRO worker "} +{"text": "Punks aren't known for having much money, but they usually have pretty good taste in cars. Crank the stereo, pop in a Sex Pistols or Black Flag tape, and give society the finger with these ten commenter-chosen punk rock cars.\nThis is Answers of the Day — a feature where we take the best ten responses from the previous day's Question of the Day and shine it up to show off. It's by you and for you, the Jalopnik readers. Enjoy!\nWant to see this gallery in one slow-to-load page? Click here.\n10. Decommissioned Police Crown Vic\nSuggested By: thor77\nWhy It's Punk: What's a more ironic car for a bunch of anarchist punks? Fresh off the auction lot with the spotlight still attached and the paint faded, the Crown Vic is cheap to buy, cheap to run, and swallows up lots of band gear.\nPhoto credit: mp3car.com\n9. Geo Metro\nSuggested By: Half The Wheels And Twice The Fun\nWhy It's Punk: It's tiny, but says \"I don't care what you think about me. Go ahead, laugh. I'll kick your face in.\" The Geo costs even less than a decommissioned Crown Vic, and despite its tiny dimensions, can still hold a drum or amp in the back seat. And as Half the wheels points out, it's unassuming enough that it won't get trashed by an angry dickhead at the gig.\nPhoto credit: In My Not so Humble Opinion\n8. 1970-ish Chevrolet Wagon\nSuggested By: pauljones\nWhy It's Punk: The mid-'70s Chevy wagon is big, old, American, and totally punk. The exact year isn't really important (pretty much anything from 1959 to 1979 will do), because we're not talking about a restored show car. The one the punks are after has faded paint, torn seats, and probably spent the last few years of it's life outside, sitting behind someone's house. The gnarlier the better.\n7. Volkswagen Golf GTi\nSuggested By: LuckyChuck\nWhy It's Punk: What's more punk than a car with plaid seats? It helps that the GTi is quick, and that many of them were black, but mostly, it's all about that bad-ass plaid.\nPhoto credit: Bring A Trailer\n6. Hyundai Accent\nSuggested By: Smells_Homeless\nWhy It's Punk: Older Accents are small, but they can hold enough stuff to make them worthwhile band cars. Smells_Homeless notes: \"I never got tired of watching that little thing swallowing the drums and two half-stacks.\" Like the Geo, Accents are pretty stealthy, so one can probably survive a night outside the venue.\nPhoto credit: CarDomain\n5. Buick Turbo Regal\nSuggested By: twitchykun\nWhy It's Punk: Loud, fast, and out of control. When painted black, they absolutely look the part, and the engine is loud enough to sound it. This is an all-business machine, a squared-off, no-nonsense monster. The Regal looks angry just sitting still.\nPhoto credit: Team Chevelle\n4. Ford Taurus Wagon\nSuggested By: Filmomaker\nWhy It's Punk: As punk morphed and split into a whole bunch of other genres and sub-genres, the outcast and filthy still needed wheels to get to the gig (even if those wheels probably belonged to mom). Filmomaker describes the scene as he saw it back then: \"Sometimes, after the gig, the car just goes missing, then it turns up in a very strange neighborhood or on the side of some railroad [tracks]. Sometimes some angry drummer or guitarist kicks the living fuck out of the car before or after the gig. Sometimes band members use the car to have sex with a groupie. Sometimes band members use the car to sell drugs and alcohol.\" So really, the Taurus was more like a Mobile Band Command Center than anything.\nPhoto credit: Pinkie's Blog\nSuggested By: mytdawg\nWhy It's Punk: How could we not include a Bitchin' Camaro?\nPhoto credit: Youtube\n2. Ford Transit Van\nSuggested By: Shep_Shepherd\nWhy It's Punk: If your band was from England, chances are that you spent quite a lot of time at one point or another in the back of a Transit. They were the default vehicle, much like the Econoline in America, for up-and-coming bands that had to get to the gig. Bands used them for decades before the punk movement, and they continue to use them today.\nPhoto credit: Vision Motor Services\n1. Decommissioned Ambulance\nSuggested By: withayou\nWhy It's Punk: Commenter Withayou is a punk alum, and has this to say about his old band's ambulance: \"To make it (vaguely) street legal, we had to remove the decals and paint over the emergency lights, but nothing at all was disconnected. That meant that at any given moment any of us could flip a switch to turn on the sirens, emergency flashers, loudspeaker, or floodlights and the thing came with an abundance of 120v outlets so the Marshall half-stacks could be plugged in at any rest stop. In retrospect, there is no reason the 17-year old version of me shouldn't be behind bars.\"\nPhoto credit: fotki"} +{"text": "International Jazz Day Brings A Worldwide A-List To Turkey\nIstanbul hosts high-profile event in its second year\nThere is, it seems, one thing that the nations of the world can agree upon: jazz. When the second annual International Jazz Day took place on April 30, nearly all of the 195 member states of UNESCO (United Nations Educational, Scientific and Cultural Organization)—from Afghanistan to Zimbabwe—held events to rejoice in the music that, according to a speech given by Dr. Martin Luther King Jr., “speaks for life.”\nThe son of Dr. King, Martin Luther King III, referenced that speech in his own at this year’s flagship International Jazz Day event, an all-star concert and goodwill celebration staged at the Hagia Irene, the first church erected in what is today Istanbul, the largest city in Turkey. Begun in the fourth century, Hagia Irene is a cavernous, breathtakingly imposing structure that is often utilized for live music presentations. As a setting for promoting and presenting contemporary jazz, it proved a brilliant—if at times sonically lacking—choice.\nKing, along with Herbie Hancock, a UNESCO Goodwill Ambassador and Chairman of the Thelonious Monk Institute of Jazz, one of the co-sponsors of IJD, was in Istanbul to promote this music as a force of global unity. So too were dozens of musicians, 40 of whom, from 15 countries, performed at Hagia Irene on the evening of the 30th, their music streamed to millions around the world.\nThat concert was the main course but it was also a culmination. In the days preceding it, jazz professionals, political and business dignitaries, musicians, media and educators from around the world blanketed the city, presenting workshops, lectures, Q&As and more. On the morning of the 30th, at the Galatasaray High School, attentive, appreciative students took in an intimate performance featuring Hancock and Wayne Shorter sitting in with Monk Institute students. In virtually every other country, from Rwanda to Malaysia to Poland, concerts, lectures, film screenings and other events boosted the profile of jazz for at least part of one 24-hour period.\nLike last year’s maiden IJD evening concert, which took place at the U.N. building in New York City, the 2013 event was strong on star power. You couldn’t help but be dazzled by a roll call featuring Hancock and Shorter, T.S. Monk (who serves as Chairman of the Board of Trustees of the Monk Institute), Esperanza Spalding, Hugh Masekela, Marcus Miller, Jean-Luc Ponty, George Duke, Branford Marsalis, John McLaughlin, Terence Blanchard, Anat Cohen, Dianne Reeves, Ramsey Lewis, Milton Nascimento, Eddie Palmieri, Al Jarreau, Vinnie Colaiuta, Ben Williams, Terri Lyne Carrington, Robert Glasper, Rubén Blades, Keiko Matsui, Lee Ritenour, Zakir Hussain and others, including players from Russia (saxophonist Igor Butman, trombonist Alevtina Polyakova), Cuba (percussionist Pedrito Martinez), Australia (Dale Barlow) and, of course, Turkey (the marvelous trumpeter İmer Demirer, guitarist Bilal Karaman, clarinetist Hüsnü Şenlendirici), a country whose relationship with jazz stretches back to at least the 1930s.\nAs is often the case at such multi-artist events, some pairings were more inspired than others; a handful stood out, others underwhelmed. Some artists played on a single tune and were gone; others returned several times. The sound, unfortunately, was frequently problematic: Although the vocalists could be heard clearly, the rhythm sections were often lost in the mix or given to murk. In the end, though, that didn’t matter: It was understood that this wasn’t so much about delivering flawlessness as it was about the revelry.\nIn that spirit, the first performance of the evening was devoted to the blues roots of jazz, with guitarist Joe Louis Walker, pianists Lewis and John Beasley (the evening’s musical director), bassist James Genus, drummer Colaiuta and British vocalist Joss Stone delivering a soulful if somewhat shrill “Some Kind of Wonderful.” The first true highlight arrived via Jarreau, whose vocalese turn on a medley of the Dave Brubeck Quartet’s “Take Five” and—this being Istanbul—“Blue Rondo à la Turk,” accompanied by Duke, Miller, Ritenour and Carrington, was riveting. (Make no mistake—this evening was geared toward the mainstream, not the music’s fringes.)\nOther highlights included an over-the-top, floor-shaking Masekela performance of “Stimela (Coal Train),” featuring Beasley, Carrington, Hancock, Miller and Ritenour; a beguiling, stirring unnamed Latin jam spotlighting Palmieri, Cohen, Blanchard, Luques Curtis (bass) and Pedrito Martinez (percussion); and, perhaps the prize of the night, the trio of McLaughlin (electric guitar), Hussain (tablas) and Ponty (violin) taking their time to explore the nuances of “Lotus Feet,” an oft-revisited McLaughlin composition dating from the 1970s.\nAn all-cast finale, a take on Dizzy Gillespie’s “A Night in Tunisia” where Reeves improvised lyrics referencing International Jazz Day, may have been cacophonous, but it sure was fun to watch. Afterward, the audience had barely filed out the doors when the speculation regarding the possible locale of next year’s IJD began. Just the thought that it could be anywhere in the world—anywhere—was in itself a statement on how monumental this event has already become in two years.\nAs T.S. Monk said at a reception prior to the concert, “The foundations of jazz are not based in musical technique, they’re based in a philosophy that goes to the issue of humanity, communication, tolerance, teamwork, individuality. Those are things that are important to people everywhere and have been important to people since the beginning of time.”\nOriginally published in July/August 2013"} +{"text": "path keyed the\n\t// capacity cache on (accelerator, min priority, taint mode) and did not\n\t// thread AllowedTaintKeys, so leave it unset here to preserve behavior.\n\tcounts, err := globalcapacity.AvailableCapacityByRegion(ctx, w.globalCapacityClient, globalcapacity.AvailableCapacityRequest{\n\t\tAcceleratorType: req.AcceleratorType,\n\t\tRegions: regions,\n\t\tMinPriority: minPriority,\n\t\tTaintExclusionMode: gcpb.TaintExclusionMode(req.TaintExclusionMode),\n\t\tSlack: availableCapacitySlack,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp := &dwpb.GetAvailableCapacityResponse{}\n\tfor _, region := range regions {\n\t\tcount, ok := counts[region]\n\t\tif !ok || count <= 0 {\n\t\t\tcontinue\n\t\t}\n\t\tresp.AvailableCapacity = append(resp.AvailableCapacity, &dwpb.GetAvailableCapacityResponse_Capacity{\n\t\t\tRegion: region,\n\t\t\tCount: count,\n\t\t})\n\t}\n\treturn resp, nil\n}\n\n// resolveAvailableCapacityRegions returns the regions GetAvailableCapacity should\n// query, mirroring the legacy cluster_manager path's region selection: the\n// explicit Regions (filtered to managed, accelerator-supporting regions), or the\n// multi-region members that accept auto-placement for the accelerator.\n// TODO(kexiang): unify with deployment_watcher.resolveAvailableCapacityRegions\nfunc (w *LROWorker) resolveAvailableCapacityRegions(req *dwpb.GetAvailableCapacityRequest) ([]gpb.Region, error) {\n\tif len(req.Regions) > 0 {\n\t\tvar regions []gpb.Region\n\t\tfor _, region := range req.Regions {\n\t\t\tif client, exists := w.clusterManager.Clients[region]; !exists || client == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !w.acceleratorSupportedInRegion(region, req.AcceleratorType) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tregions = append(regions, region)\n\t\t}\n\t\treturn regions, nil\n\t}\n\n\tif req.MultiRegion != gpb.MultiRegion_MULTI_REGION_UNSPECIFIED && !w.clusterRegistry.IsValidMultiRegion(req.MultiRegion) {\n\t\treturn nil, fmt.Errorf(\"invalid multi-region: %v\", req.MultiRegion)\n\t}\n\tvar regions []gpb.Region\n\tfor region, client := range w.clusterManager.Clients {\n\t\tif client == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif !client.AcceptAutoPlacement(clustermanager.WithAcceleratorType(req.AcceleratorType)) {\n\t\t\tcontinue\n\t\t}\n\t\tif req.MultiRegion != gpb.MultiRegion_MULTI_REGION_UNSPECIFIED && !w.clusterRegistry.RegionGroupContains(req.MultiRegion, region) {\n\t\t\tcontinue\n\t\t}\n\t\tif !w.acceleratorSupportedInRegion(region, req.AcceleratorType) {\n\t\t\tcontinue\n\t\t}\n\t\tregions = append(regions, region)\n\t}\n\treturn regions, nil\n}\n\n// acceleratorSupportedInRegion reports whether the region is configured to run\n// the given accelerator type, matching the legacy path's per-region check.\nfunc (w *LROWorker) acceleratorSupportedInRegion(region gpb.Region, acceleratorType gpb.AcceleratorType) bool {\n\tacceleratorTypes, err := w.regionBasedRuntime.GetAcceleratorTypesForRegion(region)\n\tif err != nil {\n\t\treturn false\n\t}\n\t_, supported := acceleratorTypes[acceleratorType]\n\treturn supported\n}\n\n// makeAcceleratorTypeMap creates a map of accelerator types available in a specific region\nfunc makeAcceleratorTypeMap(region gpb.Region, acceleratorTypeToRegions map[gpb.AcceleratorType][]gpb.Region) map[gpb.AcceleratorType]bool {\n\tacceleratorTypeMap := make(map[gpb.AcceleratorType]bool)\n\tfor acceleratorType, regions := range acceleratorTypeToRegions {\n\t\tfor _, r := range regions {\n\t\t\tif r == region {\n\t\t\t\tacceleratorTypeMap[acceleratorType] = true\n\t\t\t}\n\t\t}\n\t}\n\treturn acceleratorTypeMap\n}\n\n// applyRegionOverrides returns a copy of the spec with region-based image and PersistentHostPath set.\nfunc applyRegionOverrides(\n\tspec statemachine.RuntimeRegionSpec,\n\tregion gpb.Region,\n\ttrainingImagePostfix string,\n\tfullParameterTrainingImagePostfix string,\n\tcookbookFiretitanImagePostfix string,\n\tllmDownloaderImageTag string,\n\tbatchInferenceRunnerImageTag string,\n\tuseHarborForImages bool,\n\tregionalCheckpointServiceConfig statemachine.RegionalCheckpointServiceConfig,\n) statemachine.RuntimeRegionSpec {\n\tif !strings.Contains(trainingImagePostfix, \":\") {\n\t\ttrainingImagePostfix += \":current\"\n\t}\n\tif !strings.Contains(fullParameterTrainingImagePostfix, \":\") {\n\t\tfullParameterTrainingImagePostfix += \":current\"\n\t}\n\tif cookbookFiretitanImagePostfix != \"\" && !strings.Contains(cookbookFiretitanImagePostfix, \":\") {\n\t\tcookbookFiretitanImagePostfix += \":current\"\n\t}\n\teagleTrainingImagePostfix := statemachine.DeriveEagleTrainingImagePostfix(trainingImagePostfix)\n\n\tupdated := spec\n\t// Store the actual postfix used (after adding :current if needed) so that\n\t// custom image tag logic in sft_activity.go can correctly extract the base URL.\n\tupdated.TrainingImagePostfix = trainingImagePostfix\n\tupdated.EagleTrainingImagePostfix = eagleTrainingImagePostfix\n\tif storage := statemachine.RegionalFastCheckpointStorageForRegionWithConfig(\n\t\tregion,\n\t\tregionalCheckpointServiceConfig,\n\t); storage != nil {\n\t\tupdated.FastCheckpointStorage = storage\n\t}\n\tbatchInferenceRunnerImage := fmt.Sprintf(\"batch-inference-runner:%s\", batchInferenceRunnerImageTag)\n\tgcpBatchInferenceRunnerImage := fmt.Sprint"} +{"text": "The events unfolding in Israel are geographically far from Maryland, but Jewish Baltimore showed its solidarity and support for the Jewish state through prayer, gatherings and messages sent directly to the soldiers taking part in Israel’s ground offensive in the Gaza Strip this past week.\nNational, state and local politicians joined with religious leaders, community members and an Israeli embassy representative Monday, July 21, at a gathering of solidarity at the Gordon Center for Performing Arts at the Rosenbloom Owings Mills JCC. The event, which was hosted by the Baltimore Jewish Council and co-sponsored by The Associated: Jewish Community Federation of Baltimore, was organized to create an opportunity for the Baltimore community to demonstrate its support for the State of Israel and the country’s right to defend itself.\n“When your home is under attack you have to defend it,” BJC President Lainy LeBow-Sachs said to the packed auditorium.\nOren Marmorstein, counselor for public affairs and national coordinator of academic affairs at the Israeli Embassy, used the opportunity to thank the Baltimoreans in attendance for their support of Israel.\n“Every person in Israel is aware of this support,” he said. He described to the community members gathered his own experiences with hearing warning sirens and having to take cover with his wife and young daughter, and said much of what is portrayed of the conflict in the media is incomplete or inaccurate. It is hard, he added, to describe to people what life is really like in the Jewish state.\n“This is not happening only one night,” he said of the sirens. “It’s happening every single night. This is something that is happening every day.”\nU.S. Sen. Ben Cardin, who has been a vocal supporter of Israel during his tenure in office, also spoke at the rally, thanking the people who came to show their support and asserting Israel’s right to defend its citizens. He was followed by Amian Kelemer, whose daughter recently completed her service in the Israel Defense Forces. Kelemer talked about her experience as a “soldier mom,” fearing for her oldest daughter every day.\nMeanwhile, another crowd gathered at Light and Pratt streets from 5 p.m. to 7 p.m. Monday to protest racism and war, focusing on the Israeli-Palestinian conflict, the situation along the Mexican border and the city’s newly stricter youth curfew.\n“The racist apartheid settler state of Israel is once again attacking the people of Palestine in Gaza and the West Bank,” read a release promoting the rally. “The pretext this time was the death of three Israeli teenagers, but the results are all too familiar,” it added, pointing to the number of Palestinian casualties.\nRabbi Moshe Hauer of Bnai Jacob Shaarei Zion Congregation, who spoke at the Gordon Center event, has put a call out to Jewish camp directors asking that campers design small notes or cards that will be included in care packages for soldiers. He extended his request to anybody in the community who would like to create and send a note of solidarity to Israeli troops.\nHauer will be traveling to Israel and plans to deliver the cards himself.\nAgudath Israel of America is asking that all Jews pray for the safety of the Israeli soldiers and the citizenry of Israel, and “to undertake meaningful acts of kindness, charity, Torah study and special observances to help merit divine protection of our brothers and sisters in [Israel], on the front lines and everywhere else,” a statement read.\nThe Shmira Project, an organization that enables people to “adopt” one or more soldiers by doing a specific mitzvah in their honor and praying for their protection, was recently reestablished. Shmira means “guarding” or “protecting” in Hebrew.\n“Any mitzvah that you do on behalf of a soldier truly makes a difference, to the soldier and to Jewish unity,” states the Center for Jewish Education’s website. “Write your soldier’s name out and post it where you’ll see it … near the Shabbat candles, on the refrigerator, in your car, in your phone. Then, when you are going to do something positive in the world, stop and think of your soldier and include him or her in your mitzvah.” For more information about the Shmira Project, go to shmiraproject.com or text 240-393-4836.\nPhoto by David Stuck"} +{"text": "Jewish World Review Oct. 29, 2013/ 25 Mar-Cheshvan, 5774\nThrow the Rascals Out?\nBy Thomas Sowell\nJewishWorldReview.com | Polls indicate that the public is so disgusted with Washington politicians of both parties that a surprisingly large proportion of the people would like to get rid of the whole lot of them.\nIt is certainly understandable that the voters would like to \"throw the rascals out.\" But there is no point in throwing the rascals out, if we are just going to get a new set of rascals to replace them.\nIn other words, we need to think about what there is about current political practices that repeatedly bring to power such a counterproductive set of people. Those we call \"public servants\" have in fact become public masters. And they act like it.\nThey squander ever more vast amounts of our tax money, and still leave trillions of dollars of national debt to be paid by our children and grandchildren. They intrude into our private lives with ever more restrictions, red tape and electronic surveillance. And they turn different groups of Americans against each other with class warfare rhetoric and policies.\nNone of this is inevitable. In fact, this pattern is largely the culmination of political trends set in motion during the 1930s, and reaching a climax today. During the 1920s, the national debt was reduced and the role of government scaled back. Unemployment went as low as 1.8 percent.\nPresident Calvin Coolidge, with every prospect of being reelected in 1928, declared simply: \"I do not choose to run.\" Later, in his memoirs, he explained how dangerous it is to have anyone remain too long in the White House, surrounded by flattery and insulated from reality. What a contrast that attitude is with the attitude of the current occupant of the White House!\nThe contrast extends beyond these two presidents. What we have today that we did not have in the early history of this country is a permanent political class in Washington — a Congress and an ever growing federal bureaucracy composed of people who have become a permanent ruling class.\nThe United States was not founded by career politicians but by people who took time out from their regular professions to serve during a crucial time in the creation of a new nation, and a new kind of nation in a world ruled by kings and emperors.\nIn the nineteenth century, there was a high rate of turnover in members of Congress. Many people went to Washington to serve one term in Congress, then returned to their home state to resume their lives as private citizens.\nThe rise of the permanent political class in Washington came with the rise of a vast government apparatus with unprecedented amounts of money and power to control and corrupt individuals, institutions and the fabric of the whole society.\nThe first giant steps in this direction were taken in the 1930s, when the Great Depression provided the rationale for a radically expanded role of government that Franklin D. Roosevelt and his followers had believed in before there was a Great Depression.\nThere are now people in Washington whose entire adult lives have been spent in government, in one role or another. Some begin as aides to politicians or as part of the sprawling empires of the federal bureaucracy. From this they progress to high elective or appointed offices in government.\nTurnover in Congress has been reduced almost to the vanishing point. Political alliances within government and with outside special interests, as well as the gerrymandering of Congressional districts, make most incumbents' reelection virtually a foregone conclusion.\nThe ability to distribute vast amounts of largess to voters, at the taxpayers' expense — President Obama's giving away free cell phones during an election year being just the tip of the iceberg — further tilts the balance in favor of incumbents.\nThis kind of government must constantly \"do something\" in order to keep incumbents' names in the news. In short, big government has every incentive to create bigger government.\nThrowing the rascals out will not get rid of this political pattern. The first step in limiting, and then scaling back, government itself must be limiting the time that anyone can remain in office — preferably limited to one term, to make it harder to become career politicians, a species we can well do without.\nEvery weekday JewishWorldReview.com publishes what many in the media and Washington consider \"must-reading\". Sign up for the daily JWR update. It's free. Just click here.\n© 2006, Creators Syndicate"} +{"text": "f(\"us-docker.pkg.dev/fw-ai-cp-prod/inference/%s\", batchInferenceRunnerImage)\n\tecrBatchInferenceRunnerImage := fmt.Sprintf(\"794651314743.dkr.ecr.us-east-1.amazonaws.com/%s\", batchInferenceRunnerImage)\n\tociBatchInferenceRunnerImage := fmt.Sprintf(\"us-chicago-1.ocir.io/axhaeqbjwexc/inference/%s\", batchInferenceRunnerImage)\n\tcrusoeHarborBatchInferenceRunnerImage := fmt.Sprintf(\"harbor.crusoe-eu-iceland1.fireworks.ai/gcp-gar/fw-ai-cp-prod/inference/%s\", batchInferenceRunnerImage)\n\ticeland2HarborBatchInferenceRunnerImage := fmt.Sprintf(\"harbor.eu-iceland-2.fireworks-ai.cloud/gcp-gar/fw-ai-cp-prod/inference/%s\", batchInferenceRunnerImage)\n\ttrainingRegistryPrefix := \"us-chicago-1.ocir.io/axhaeqbjwexc/serving\"\n\tswitch region {\n\tcase gpb.Region_US_IOWA_1, gpb.Region_US_UTAH_1:\n\t\t// GCP regions\n\t\ttrainingRegistryPrefix = \"us-west1-docker.pkg.dev/fw-ai-cp-prod/tune\"\n\t\tupdated.ContainerImage = \"us-west1-docker.pkg.dev/fw-ai-cp-prod/tune\" + trainingImagePostfix\n\t\tupdated.FullParameterContainerImage = \"us-west1-docker.pkg.dev/fw-ai-cp-prod/tune\" + fullParameterTrainingImagePostfix\n\t\tupdated.EagleContainerImage = \"us-west1-docker.pkg.dev/fw-ai-cp-prod/tune\" + eagleTrainingImagePostfix\n\t\tupdated.LlmDownloaderImage = fmt.Sprintf(\"us-docker.pkg.dev/fw-ai-cp-prod/inference/llm-downloader:%s\", llmDownloaderImageTag)\n\t\tupdated.BatchInferenceRunnerImage = gcpBatchInferenceRunnerImage\n\t\tupdated.PersistentHostPath = \"/mnt/stateful_partition/kube-ephemeral-ssd/tmp-fireworks\"\n\tcase gpb.Region_US_VIRGINIA_1, gpb.Region_AP_TOKYO_2, gpb.Region_US_CALIFORNIA_1:\n\t\t// AWS regions\n\t\ttrainingRegistryPrefix = \"794651314743.dkr.ecr.us-east-1.amazonaws.com/serving\"\n\t\tupdated.ContainerImage = \"794651314743.dkr.ecr.us-east-1.amazonaws.com/serving\" + trainingImagePostfix\n\t\tupdated.FullParameterContainerImage = \"794651314743.dkr.ecr.us-east-1.amazonaws.com/serving\" + fullParameterTrainingImagePostfix\n\t\tupdated.EagleContainerImage = \"794651314743.dkr.ecr.us-east-1.amazonaws.com/serving\" + eagleTrainingImagePostfix\n\t\tupdated.LlmDownloaderImage = fmt.Sprintf(\"us-chicago-1.ocir.io/axhaeqbjwexc/inference/llm-downloader:%s\", llmDownloaderImageTag)\n\t\tupdated.BatchInferenceRunnerImage = ecrBatchInferenceRunnerImage\n\t\tupdated.PersistentHostPath = \"/nvme/disk/tmp-fireworks\"\n\tcase gpb.Region_EU_ICELAND_1:\n\t\t// Crusoe EU Iceland 1 - optionally use Harbor mirror of GCP if enabled via flag\n\t\tif useHarborForImages {\n\t\t\ttrainingRegistryPrefix = \"harbor.crusoe-eu-iceland1.fireworks.ai/gcp-gar-west-1/fw-ai-cp-prod/tune\"\n\t\t\tupdated.ContainerImage = \"harbor.crusoe-eu-iceland1.fireworks.ai/gcp-gar-west-1/fw-ai-cp-prod/tune\" + trainingImagePostfix\n\t\t\tupdated.FullParameterContainerImage = \"harbor.crusoe-eu-iceland1.fireworks.ai/gcp-gar-west-1/fw-ai-cp-prod/tune\" + fullParameterTrainingImagePostfix\n\t\t\tupdated.EagleContainerImage = \"harbor.crusoe-eu-iceland1.fireworks.ai/gcp-gar-west-1/fw-ai-cp-prod/tune\" + eagleTrainingImagePostfix\n\t\t\tupdated.LlmDownloaderImage = fmt.Sprintf(\"harbor.crusoe-eu-iceland1.fireworks.ai/gcp-gar/fw-ai-cp-prod/inference/llm-downloader:%s\", llmDownloaderImageTag)\n\t\t\tupdated.BatchInferenceRunnerImage = crusoeHarborBatchInferenceRunnerImage\n\t\t} else {\n\t\t\tupdated.ContainerImage = \"us-chicago-1.ocir.io/axhaeqbjwexc/serving\" + trainingImagePostfix\n\t\t\tupdated.FullParameterContainerImage = \"us-chicago-1.ocir.io/axhaeqbjwexc/serving\" + fullParameterTrainingImagePostfix\n\t\t\tupdated.EagleContainerImage = \"us-chicago-1.ocir.io/axhaeqbjwexc/serving\" + eagleTrainingImagePostfix\n\t\t\tupdated.LlmDownloaderImage = fmt.Sprintf(\"us-chicago-1.ocir.io/axhaeqbjwexc/inference/llm-downloader:%s\", llmDownloaderImageTag)\n\t\t\tupdated.BatchInferenceRunnerImage = ociBatchInferenceRunnerImage\n\t\t}\n\t\tupdated.PersistentHostPath = \"/nvme/disk/tmp-fireworks\"\n\tcase gpb.Region_EU_ICELAND_2:\n\t\tif useHarborForImages {\n\t\t\ttrainingRegistryPrefix = \"harbor.eu-iceland-2.fireworks-ai.cloud/gcp-gar-west-1/fw-ai-cp-prod/tune\"\n\t\t\tupdated.ContainerImage = \"harbor.eu-iceland-2.fireworks-ai.cloud/gcp-gar-west-1/fw-ai-cp-prod/tune\" + trainingImagePostfix\n\t\t\tupdated.FullParameterContainerImage = \"harbor.eu-iceland-2.fireworks-ai.cloud/gcp-gar-west-1/fw-ai-cp-prod/tune\" + fullParameterTrainingImagePostfix\n\t\t\tupdated.EagleContainerImage = \"harbor.eu-iceland-2.fireworks-ai.cloud/gcp-gar-west-1/fw-ai-cp-prod/tune\" + eagleTrainingImagePostfix\n\t\t\tupdated.LlmDownloaderImage = fmt.Sprintf(\"harbor.eu-iceland-2.fireworks-ai.cloud/gcp-gar/fw-ai-cp-prod/inference/llm-downloader:%s\", llmDownloaderImageTag)\n\t\t\tupdated.BatchInferenceRunnerImage = iceland2HarborBatchInferenceRunnerImage\n\t\t} else {\n\t\t\tupdated.ContainerImage = \"us-chicago-1.ocir.io/axhaeqbjwexc/serving\" + trainingImagePostfix\n\t\t\tupdated.FullParameterContainerImage = \"us-chicago-1.ocir.io/axhaeqbjwexc/serving\" + fullParameterTrainingImagePostfix\n\t\t\tupdated.EagleContainerImage = \"us-chicago-1.ocir.io/axhaeqbjwexc/serving\" + eagleTrainingImagePostfix\n\t\t\tupdated.LlmDownloaderImage = fmt.Sprintf(\"us-chicago-1.ocir.io/axhaeqbjwexc/inference/llm-downloader:%s"} +{"text": "Some comics probably by animator Jack Bradbury, who also designed the first animated version of Beany and Cecil.\nWhen I was a kid, about 9 years old, I used to race home from school to watch the cartoons at my Grandmother's house in Ottawa. We only had 3 channels then: 2 English speaking channels and one French. They all ran cartoons at the same time every day, and I had to switch from channel to channel because I could never make up my mind which to watch all the way through!They ran Huck and Quick Draw at about 3:30 on the 2 English channels, and then Yogi and Beany and Cecil at 4. It used to drive me nuts because I wanted to watch them all!\nHuck, Yogi and Quick Draw were all Hanna Barbera cartoons - all with the same look and feel. They had great designs and voices and were appealing, but not very imaginative. Just the same, I loved 'em.\nBeany and Cecil, on the other hand - even as a kid - seemed like the weirdest thing ever! It looked great- I especially liked the cartoons designed and layed out by Willie Ito - he did the more \"modern\" angular style episodes. But the stories were bizarre! If Roger Ramjet was the funniest 60s cartoon, then Beany and Cecil was the most imaginative.\nIts main cast was fairly normal - starring Beany a likeable cute little boy who loved fun and adventure,\nCaptain Huffenpuff, an old homosexual blowhard adventurer who always retreated to his \"HIDING ROOM\" whenever there was trouble and Cecil The Seasick Sea Serpent - who was a not very subtle visual metaphor with a catch phrase to advertise it \"I'm comin' Beany boy, I'm COMIN'!\"and an old time melodramatic villain named Dishonest JohnThese main characters traveled around the world where they met much stranger characters. One of my favorites was the beatnick, the Wildman of Wildsville:I used this very gag in the 1988 new adventures of Beany and Cecil and the network exploded!\nClampett cartoons were always hip, just as he was. He kept up with cool trends all the way till the Beatles and then froze into his 1964 look with a Beatle haircut for the rest of his life. He knew The Beatles were the last truly cool thing and then everything pretty much went to ...you know.\nI'm sure most of you know that Beany Cecil was originally an Emmy award winning puppet show called Time For Beany that was probably even weirder than the later cartoon.\nDaws Butler and Stan Freberg manning the puppet arsenal for Bob Clampett!Willie Ito, the later cartoon designer also drew these great Beany and Cecil comics in the same style he drew the cartoons- a combination of Clampett, Jones, UPA and his own style. These are great drawings for you student types to copy by the way.\nHere's the whole comic!\nAll this great stuff has been out of circulation for decades and now it's here where you can enjoy them again!\n10 years ago a Beany and Cecil DVD came out and has been out of print for a while, but now there are a few left.\nThere is also finally a volume 2 - filled with classic Beany and Cecil cartoons, puppet shows and lots of great supplemental treats!\nBUY BOTH VOLUMES HERE!\nLots Of Extras!\nBob was a stickler for recording his history. He constantly did interviews with people and recorded all kinds of interesting things.\nThis 70 minute oral history is taken from recently discovered source material. There were three sources.\nA 1950 interview with Scenic artist and right hand man Bill Oberlin.\nA 1963 recorded conversation with his Bob Clampett's mother.\nAnd there was a 1978 interview with a close friend of Sody Clampett's.\nClampett fan, animator and historian Milt Gray edited together the definitive two and a half hour oral history on volume one.\nThis 70 minute continuation on Volume 2 gives some new insight including information about Clampett's Dad that previously none of the family knew. Bob always teared up when he talked about him. That was why it was such a shock when he went into as much detail as he did. It explains a bit of Bob's showmanship.\nBob Clampett Reads Milt Gross!\nClampett was a big fan of Milt Gross and knew him personally. In the supplemental material you can hear Bob reading along to Night in Front... while his kids see the original pages. Laughter and dog barking in the background.\nAlso, Rob Clampett did a brief audio interview with Milt's oldest son Herb and included pages of illustrations from some of the books.\nThere is the pencil test (the only one I've ever seen from one of dad's cartoons) and storyboard pages and layouts including deleted sequences from \"It's A Grand Old Nag.\"\nThe home movies of the 'coolest guy' with his portfolio in NYC in 1945.\nALL ABOUT BEANY AND CECIL"} +{"text": "The fallout of the Pelosi/Biden statements on abortion, and the Bishop's response, continues.\nOn September 15, the San Francisco Chronicle printed a column by Mr. Jon O'Brien, of \"Catholics for Choice\" a dissident group that supported Nancy Pelosi against our Catholic Bishop's. Fr. Malloy responded with a letter (unprinted) below. Today Mrs. Vicki Evans, the Respect Life coordinator of the Archdiocese of San Francisco, took Mr. O'Brien to school. This column appeared in today's issue of the San Francisco Chronicle.\nCatholic bishops have last say on abortion teachings\nSAN FRANCISCO CHRONICLE -- Thursday, September 18, 2008If you were a member of an environmental group and Big Oil tried to dictate to you what environmentalism really meant, what would your reaction be? Outrage at the audacity and arrogance of Big Oil? Disbelief that anyone would actually take seriously the apostasy presented?\nThis was the reaction of faithful Catholics who read Jon O'Brien's op-ed in The Chronicle (\"Pelosi views on abortion in synch with most Catholics,\" Sept. 15).\nJon O'Brien is the president of Catholics for Choice, an organization that has been condemned by the Catholic Church for its heretical views on abortion. Its board of directors includes some of the most ardently pro-abortion individuals in the country, like Kate Michelman, former president of NARAL, and Frances Kissling, former president of the National Abortion Federation. Are these the people to whom we should listen for a clarification of Catholic teaching? Or are these the organizations that stand to profit from unlimited abortion on demand?\nWould a high-profile Democratic leader who says they are Catholic, such as Speaker Nancy Pelosi, like to follow Catholic teaching? Sure, all things being equal. But all things are not equal. Abortion-rights activists are fundamental pillars of the Democratic Party, providing tens of millions of dollars in campaign contributions and enormous grass-roots energy.\nSo instead of admitting they are simply in the pocket of the abortion lobby, Catholic politicians like Speaker Pelosi come up with self-serving arguments to support their pro-abortion positions to try to convince America that the Catholic Church is run by polls.\nThe reality is that those who support unlimited abortion, for any reason at any time, represent the fringe position. A June 2007 poll by the New York Times, CBS News and MTV found that 62 percent of young adults disagree with abortion on demand.\nLast October, a CBS poll asked Americans about their \"personal feeling\" on abortion. Two out of three supported greater restrictions on abortion, with 34 percent saying it should be permitted only in cases such as rape, incest or to save the mother's life. A mere 26 percent said it \"should be permitted in all cases.\"\nAnd yet, Catholics for Choice has the audacity to challenge the U.S. Conference of Catholic Bishops on the church's teaching related to abortion. O'Brien's final line states that \"the bishops would better serve American Catholics by acknowledging their true priorities.\"\nIt is the responsibility of Catholic bishops to teach clearly what Christ in his church teaches about faith and morals, and to oppose erroneous, misleading and confusing positions when they are advanced. The Catechism of the Catholic Church states: \"Human life must be respected and protected absolutely from the moment of conception. Since the first century the Church has affirmed the moral evil of every procured abortion. This teaching has not changed and remains unchangeable. Direct abortion, that is to say, willed either as an end or a means, is grossly contrary to the moral law.\"\nIn matters of faith and morals - proclaimed either \"fallibly\" or \"infallibly\" by the Catholic Church - the bishops have an authoritative role as teacher. The faithful have the responsibility of accepting the teaching and adhering to it with a religious assent. The reason for this is eternal salvation. The idea that politicians can usurp this teaching authority is ridiculous.\nPosted by Gibbons"} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/lroworker/workflows/rft_job_workflow_test.go. Lines: 2646.\n\npackage workflows\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/database\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/lroworker/activities\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/lroworker/common\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\t\"github.com/fw-ai/fireworks/control_plane/protos/generated/temporal_activity\"\n\tresourcename \"github.com/fw-ai/fireworks/go/resource_name\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/mock\"\n\t\"github.com/stretchr/testify/require\"\n\t\"go.temporal.io/sdk/activity\"\n\t\"go.temporal.io/sdk/testsuite\"\n\t\"go.temporal.io/sdk/workflow\"\n)\n\n// mockUpdateRFTJobMetaInfoForTest is a mock implementation of UpdateRFTJobMetaInfo activity for testing\nfunc mockUpdateRFTJobMetaInfoForTest(ctx context.Context, input interface{}) error {\n\treturn nil\n}\n\n// registerMockRFTJobActivities registers common mock activities needed for RFT job workflow tests\nfunc registerMockRFTJobActivities(env *testsuite.TestWorkflowEnvironment) {\n\tenv.RegisterActivityWithOptions(mockUpdateRFTJobMetaInfoForTest, activity.RegisterOptions{\n\t\tName: \"UpdateRFTJobMetaInfo\",\n\t})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.AppendRFTTrainerLogsInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"AppendRFTTrainerLogs\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.RunCreateRlorK8sInput) (*activities.RunCreateRlorK8sOutput, error) {\n\t\treturn &activities.RunCreateRlorK8sOutput{\n\t\t\tK8sJobName: \"default-keep-alive-k8s-job\",\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\tJobStatusFile: \"gs://bucket/status.json\",\n\t\t}, nil\n\t}, activity.RegisterOptions{Name: \"RunCreateRlorK8s\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\treturn &activities.ReportRFTBillingCompleteOutput{Skipped: true, SkipReason: \"test default\"}, nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBillingComplete\"})\n}\n\nfunc TestHotReloadDeploymentRegionForRFT_H200PinsVirginia(t *testing.T) {\n\tinput := RFTJobWorkflowInput{\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H200_141GB,\n\t\t},\n\t}\n\n\tassert.Equal(t, gpb.Region_US_VIRGINIA_1, hotReloadDeploymentRegionForRFT(input))\n}\n\nfunc TestHotReloadDeploymentRegionForRFT_NonH200UsesDeploymentShapePlacement(t *testing.T) {\n\tinput := RFTJobWorkflowInput{\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t},\n\t}\n\n\tassert.Equal(t, gpb.Region_REGION_UNSPECIFIED, hotReloadDeploymentRegionForRFT(input))\n}\n\nfunc TestHotReloadDeploymentRegionForRFT_MissingTrainingConfigUsesDeploymentShapePlacement(t *testing.T) {\n\tassert.Equal(t, gpb.Region_REGION_UNSPECIFIED, hotReloadDeploymentRegionForRFT(RFTJobWorkflowInput{}))\n}\n\nfunc TestRFTJobWorkflow_SingleEpoch(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-123\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Mock child workflow execution\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: \"rollout-job-1\",\n\t\t\t\tEvaluationJobName: \"eval-job-1\",\n\t\t\t\tRLORJobName: \"rlor-job-1\",\n\t\t\t\tOutputModel: func() string {\n\t\t\t\t\tif input.TrainingConfig != nil {\n\t\t\t\t\t\treturn input.TrainingConfig.OutputModel\n\t\t\t\t\t}\n\t\t\t\t\treturn \"\"\n\t\t\t\t}(),\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-123\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-accoun"} +{"text": "This essay will describe the congruence between the philosophies and values supporting social entrepreneurialism and the philosophies and values supporting the New Public Health. This essay will also reveal my definition and values of social entrepreneurialism.\nMY DEFINITION OF SOCIAL ENTREPRENEURIALISM\nShane and Venkataraman (2000 cited in Baron & Shane 2005, p. 4) state that entrepreneurship is a process to understand how opportunities to create something new arise and are discovered or created by specific persons, who then use various means to exploit or develop them, thus producing a wide range of effects. According to Hisrich et al. (2005), there are four basic aspects of being an entrepreneur: the creation process, the devotion of the necessary time and effort, the willingness to assume the necessary risks, and rewards.\nConsidering the definition provided by Talbot et al. (2002) about social enterprise, I conclude that social entrepreneurialism is a nonprofit oriented business in which all of the profit it gets will be used for the sake of the community and to sustain its activities. I think social entrepreneur is someone who understands an emerged problem within her society which needs to be handled for the sake of the society. After recognizing the problem, she is then compelled to develop strategies and capture the opportunities to implement these strategies to overcome the problem. In this sense, social entrepreneurialism has many similarities with leadership.\nSomeone has to possess several characteristics to be a social entrepreneur, such as: high self-confidence, willingness to take the risks, creativity, have the ability to influence and motivate people. These characteristics also reflect leadership traits. I have mentioned in FLO activity 1 that leadership is the ability to influence and mobilize the other people to achieve their common goal or accomplish their duty. A social entrepreneur as well as a leader needs the other people to cooperate with in order to be able to attain the goal because she cannot achieve it by herself, instead she needs to work with or through the other people to reach the goal. To be able to influence and mobilize people toward the desired goal, she has to be able to communicate and share her vision and have confidence in herself as well as in her followers.\nTHE CONGRUENCE BETWEEN SOCIAL ENTREPRENEURIALISM PHILOSOPHIES AND VALUES AND THE NEW PUBLIC HEALTH PHILOSOPHIES AND VALUES\nEquality, equity and social justice are the underpinning values of the new public health. Equality means that everyone deserves the same opportunity to improve the quality of her life, while equity is dealing with the fairness in which someone may not get the same amount of resources as another person due to her condition. For example, every woman deserves to get access to family planning services. This is equality. However, some women may receive concession to implant Intrauterine Device (IUD) because they cannot afford them due to their economic conditions. This is equity. Social justice is the collective expression of the principle of equity (Talbot 2005). Social justice can be achieved through empowerment and participation. Both terms, empowerment and participation, indicate the involvement of the community to make social change to enhance their life quality.\nPeter Thomson (in Talbot et al. 2002) defines social entrepreneurialism as a bold attempt at redressing many of the issues that people who are marginalized in our society have, by building their confidence and their capacity to help themselves. It seeks to empower communities and build social capital. It supports and encourages community to work together and assists them to discover and fulfill their own potential.\nIn this term, I find that the philosophies and values underpinning social entrepreneurialism are congruent with the new public health philosophies and values. Both encourage participation of the community members and empower them to bring about change in their social conditions so that it will enhance and improve their life quality.\nHOW DO I VALUE THIS APPROACH\nI think empowering others means that we have to encourage them to participate in handling the problems arise in their community. By letting everyone to participate in overcoming these problems, we promote the equality, equity and social justice since it enables them to express their needs, feelings, and opinions. It also gives them the opportunities to find the best solution on these problems.\nEmpowering and encouraging others to participate in social change is not an easy thing to do. It needs skills, strong commitment and willingness to assume the risks and failures. I think leaders and social entrepreneurs share the same characteristics and skills so that they will be able to mobilize people to bring about change. In fact, social entrepreneurs are leaders because they possess the traits needed to be a leader and they implement leadership principles and skills into practice.\nIn brief, the philosophies and values underpinning social entrepreneurialism are congruent with the new public health philosophies and values. Social entrepreneurs share common characteristics with leaders.\nBaron, RA & Shane, SA 2005, Entrepreneurship: a process perspective, Thomson, South Western, Australia.\nBrotherhood of St Laurence, Melbourne, viewed 26 October 2008, http://www.bsl.org.au/main.asp?PageId=7&iMainMenuPageId=7\nHisrich, RD, Peters, MP, & Shepherd, DA 2005, Entrepreneurship, 6th edn, McGraw-Hill/Irwin, New York.\nhttp://en.wikipedia.org/wiki/Social_entrepreneurship viewed 26 October 2008.\nTalbot, C, Tregilgas, P, & Harrison, K 2002, Social enterprise in Australia: an introductory handbook, Adelaide Central Mission Inc., Adelaide, viewed 26 October 2008, .\nTalbot, L & Verrinder, G 2005, Promoting health: the primary health care approach, 3rd edn, Elsevier, Sydney, pp. 37-76.\nBy: Yulaecha P. I."} +{"text": "Harvard Law School is hosting in a couple of weeks what is certain to be a very interesting small conference on the Alien Tort Statute. I was lucky enough to be one of the invitees, addressing the issue of corporate liability under the ATS. I address the issue of corporate liability under the ATS, but am actually interested in it from a broader perspective, the \"jurisprudential\" perspective on the distinct and sharply divided \"communities of interpretive authority\" over such issues in the ATS as the status of corporate liability. I have written elsewhere recently (in the European Journal of International Law; I think a link directly to the paper in this post here) of the \"fragmentation of communities of interpretation and authority\" in international law. The ATS seems to me to offer a striking example of that. (Cross posted at OJ and VC.)\nCorporate liability can be thought of as a \"hinge\" issue in ATS jurisprudence - a \"hinge\" that under (an amalgamated reading of) current holdings serves to link \"international law\" to \"domestic law,\" as required by the two parts of the ATS. I don't think it is at all a correct reading of either international law or domestic law, but it seems to me an (arguably) accurate reading (there are always variations and cross-currents) of current cases and their holdings on corporate liability, including, for example, the latest Talisman ruling from the Second Circuit.\nIn addition to that, however, I conclude the paper (this is still in first draft, believe me, and far from even going up on SSRN as a working draft) with a speculation about whether the case law developing around corporate liability in the ATS will remain stable in a world in which the US chooses decline and allows the emergence of a genuinely multipolar world, a world in which China is a much, much bigger player, as in creditor and debtor:\nI do not think, however, that the final chapter has been written on corporate liability under the ATS. In the real world, I do not think that the pushback has begun to be felt in the US or in US courts. At that point, I suspect that some will wonder whether (from the standpoint of the 'progressive integrity' of international law, the perspective I am freely (and perhaps overly-imaginatively) attributing to a Professor Greenwood or Crawford on the basis of their Talisman declarations, not from a vastly more skeptical position such as my own) the jurisprudence of the ATS has not actually undermined a systematic development of international law norms with respect to civil liability, tort liability, corporate liability, and specific bodies of norms such as labor or the environment. The future historian of international law might well conclude that the era of ATS jurisprudence, far from advancing broadly shared norms, actually undermined the possibility of firmly enacting them, in what turned out to be a final gasp of US legal hegemony, before the Era of US Indebtedness, ‘Choosing Decline’, and Multipolarity set in.\nWhat happens, for example, when ATS suits start to be brought against Chinese corporations, for actions having no connection to the US save for the ATS itself? For very, very serious, uncontestable even abuses of labor, land, environment and other things in, say, Africa. The strictly legal questions would have been long settled under the jurisprudence of the ATS in lawsuits against MNCs based out of the US itself, Europe, Canada, or elsewhere in the industrialized democratic world (and whether those countries liked it or not). What happens then? The US government has taken a remarkably hands off attitude toward such litigation, under presidents of both parties – offering statements of interest on occasion, but not typically seeking, on some principled basis, simply to nip such litigation in the bud, rigorously and in every case in which there is no greater traditional jurisdictional base of the United States apart from the ATS itself, as contrary to the foreign policy interests or prerogatives of the political branches.\nWere China to weigh in, down the road, in a world of a debtor US, would the rules being made today remain stable? I have my doubts. I raise China as the most obvious real-politik example of a party that might have both the means and the inclination to make its displeasure known by rattling, even just a bit, the debtor’s chains in the global market of Treasury debt. What the might the US government, for example, say in a statement of interest to a court, in response to a court following well-established ATS precedents of corporate and secondary liability, but this time in a case against a Chinese corporation, in the world as newly defined by Secretary of State Clinton in one of her early statements – declining in particular to get too worked up about human rights as central to the US relationship with China?\nThe rules currently being evolved by US courts, departing from norms as understood by much of the rest of the world, seem to me rules of corporate liability made for a world in which the “universal” and the “international” can be imagined to be enacted through the ATS – mostly, however, because there is still an American hegemony. One can call that hegemony “universal” and “international,” I suppose – provided, however, that one cloisters oneself as strictly as possible within those particular communities of authoritative legal interpretation in which ‘universal’ and ‘hegemonic’ categories do not brush up against each other and catch each other out. Ironies and antinomies of the ATS - yet again."} +{"text": "t/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0, // No chunking\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n\tassert.Equal(t, input.OutputModel, result.FinalOutputModel)\n\tassert.Equal(t, int32(1), result.TotalEpochs)\n\tassert.Equal(t, int32(0), result.TotalChunks)\n\tassert.Len(t, result.EpochOutputs, 1)\n}\n\nfunc TestRFTJobWorkflow_WandbAuthenticationFailureFailsBeforeKeepAlive(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input *temporal_activity.WandbAuthenticateIn) (*temporal_activity.WandbAuthenticateOut, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"WandbAuthenticate\"})\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{JobName: \"validation-job-123\"}, nil\n\t\t},\n\t)\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\tenv.OnActivity(\"WandbAuthenticate\", mock.Anything, mock.Anything).Return(&temporal_activity.WandbAuthenticateOut{\n\t\tStatus: &gpb.Status{\n\t\t\tCode: gpb.Code_FAILED_PRECONDITION,\n\t\t\tMessage: \"wandb permission error. Use a wandb API key with write access to 'wrtn'.\",\n\t\t},\n\t}, nil)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-123\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tDatasetGcsUri: \"gs://datasets/train.jsonl\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: true,\n\t\t\tProject: \"darkhorse\",\n\t\t\tEntity: \"wrtn\",\n\t\t\tApiKey: \"accounts/wrtn/secrets/test-wandb-key\",\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tChunkSize: 0,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.Error(t, env.GetWorkflowError())\n\tassert.Contains(t, env.GetWorkflowError().Error(), \"wandb permission error\")\n\tenv.AssertCalled(t, \"WandbAuthenticate\", mock.Anything, mock.Anything)\n\tenv.AssertNotCalled(t, \"RunCreateRlorK8s\", mock.Anything, mock.Anything)\n\tenv.AssertNotCalled(t, \"RunCreateRlorHelm\", mock.Anything, mock.Anything)\n}\n\nfunc TestRFTJobWorkflow_AppendsTrainerLogsWhenEnabled(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{JobName: \"validation-job-123\"}, nil\n\t\t},\n\t)\n\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(ni"} +{"text": "Bed bugs are small and can hide in small spaces especially in mattresses, headboards and bed frames where they have access to people to bite. Adult bedbugs have brownish, oval flat bodies about ¼-inch long. After feeding on animal or human blood, their bodies turn reddish and swell. They hide in crevices and cracks near a blood meal during the day and come out to feed at night.\nBed bug Bites\nBed Bugs hide during the day and usually bite people at night. They solely feed on blood which they withdraw by piercing and breaking the skin. They feed to become engorged for a few minutes and then crawl back to their hiding place. Most bedbug bites are unnoticeable and painless at first, but they become itchy welts with time. The bites are mainly around exposed areas of the skin while sleeping and do not have a red spot in the center like most flea bites.\nLook for the bugs in places where bedbugs are biting. Start with cracks and crevices in head/foot boards, supports and attached side rails of the bed. Look for dark spots of bedbug excrement on mattresses, inspect the box springs for any rips that might act as hiding places and examine rips in your mattress as well. If you have any items stored underneath your bed, remove and examine.\n- Inspect all cracks and crevices\n- Empty and inspect nightstands and dressers\n- Inspect upholstered sofas and chairs\n- Inspect other places like edge of the wall, carpets, cracks in ceiling and wood molding\nSigns of bed bugs infestation\n- Itching welts\n- Blood stains on pillowcases and bed sheets\n- Nymphs Shed skin, bedbug fecal spots or egg shells in hidden places\n- A musty offensive odor\nHow to eliminate bed bugs\nFor effective treatment and control of bedbugs, follow an integrated pest management approach (IPM). This approach includes multiple strategies like preventive measures, heat treatment, exterminator treatment, store bought spray, natural remedies and industrial strength pesticides.\nPreventive measures to kill bedbugs\nSome home remedies and preventive measures can be used to prevent infestation or the spread of bedbugs. If you suspect your luggage, clothing or second hand furniture has bedbugs, consider treating with chemicals or by heating before bring them in the house. Other preventive measures include,\n- Vacuum your house and dispose the content in a sealed trash bag\n- Repair cracks and glue down wallpapers\n- Encase mattresses, pillows and box springs with air tight covers to prevent bedbugs from entering or escaping. Keep the cover for at least one year to ensure all bedbugs are dead.\n- Use bedbugs monitor traps\n- De-clutter your house especially under and around the bed\nThere are many methods on how to kill bedbugs, ensure that the method you use is legal, safe and cost effective. Here are some of the methods that you can consider.\nOne great product that saves money and is safe and effective is Defensive End!, a bed bug killer spray that is natural and contains no pyrethrins from plants which can cause toxic neural damage to mammals.\nHome remedies & Treatments for bed bugs\nHome remedies like applying silica gel around your bed and mattress can help in killing bedbugs. You can also use tree oil or tea-tree to clean the house to prevent and eradicate bedbugs. Vacuum your bedroom frequently and get rid of nuisance bedbugs.\nThis is a non-chemical method that is safe to use and cost effective. Affected items can be laundered with 122F/50ºC minimum and dried in high temperature. Other infected smaller items that cannot be laundered can be treated by killing the bedbugs with heat. This can be done by wrapping the items in plastic bags and placing them in a sunny and hot location of 122F/50ºC minimum temperature for a few days. However this method is not effective where the infestation has spread and the entire apartment needs to be de-infested.\nA simple device like electric kettle can also be used to generate steam which is pointed to crakes and craves to kill bedbugs and the eggs.\nYou can use residual insecticides or industrial strength pesticides to kill bedbugs. Insecticides can kill bedbugs by penetrating cracks and reaching the hidden areas. Use of chemicals to kill bedbugs can be harmful to you and your family. Follow the directions of use and only use products that are tested and registered by the relevant bodies.\nGetting rid of bedbugs is a step-by-step process which can prove challenging and time consuming for many. Consider hiring a professional exterminator who is experienced in pest control and management. The initial cost may seem expensive, but the exterminator’s contract will end when your home is bedbug free thus saving you money in the long run."} +{"text": "Monday News, November 12\nFatal Auto Accident Claims Remsen Life\n(Le Mars) -- A fatal auto accident occurred in rural Plymouth County on Saturday afternoon. The accident happened at about 2:30 p.m. near the intersection of Polk Avenue and 190th Street. 17 year-old Matthew Gerrietts of Remsen died as a result of the accident. Deputies, Remsen Fire and Ambulance and the Iowa State Patrol responded to the scene and three persons were taken to Floyd Valley Hospital in Le Mars. Gerrietts was the driver of the vehicle and was pronounced dead at the hospital a short time later. The other two individuals are being treated at Floyd Valley. The preliminary investigation indicates that the 1998 Ford Explorer was traveling south on Polk Avenue, when Gerrietts lost control of the vehicle and it rolled several times, throwing the driver from the vehicle. The Plymouth County Sheriff's Office is being assisted by the Iowa State Patrol and the Plymouth County Medical Examiner's Office.\nCity Council To Hold Special Meeting\n(Le Mars) -- The Le Mars City Council has scheduled a special meeting for Monday, November 12th at the city council chambers. The meeting will begin at 1:00 p.m. and council members will continue their discussion of the 27th Street RISE Improvements. RISE stands for Revitalize Iowa's Sound Economy, and it is governed by the Iowa Department of Transportation. The city council is expected to award the contract on Monday, with the IDOT's concurrence. Construction could begin as early as next Friday. The RISE grant allows for 50 percent funding to be financed by the state, and 50 percent local funding from the Joint Urban Renewal using Tax Increment Financing or TIF dollars. TIF allows the city to borrow money that will be paid in the future.\nLe Mars School Board To Meet Monday Evening\n(Le Mars) -- The Le Mars Community School Board will meet this evening to discuss the teacher compensation and leadership task force report. Dr. Jason Glass, Director of Iowa Department of Education and Linda Fandel, Special assistant to the Governor for Education Policy presented the task force report at a meeting in Sioux City on November 1st. The board members that attended the meeting will share the information. Dr. Todd Wendt, Superintendent of Schools will present to the board a report on discussions being held between Le Mars Community, Gehlen Catholic, and Western Iowa Tech Community College to provide post-secondary opportunities for juniors and seniors. The Board of Education is also expected to discuss the upcoming State School Board Convention scheduled for this week.\nConstruction Worker Killed In Sioux City\nSIOUX CITY, Iowa (AP) - The death of a construction worker is being investigated in Sioux City.\nPolice say the worker died Saturday while helping build the new Sabre Industries campus in a Sioux City industrial park.\nThe incident was reported around 1:30 p.m. Saturday. Details of how the worker died weren't immediately available.\nPolice did not immediately release the name of the worker who was killed.\nParole Board Proposes Changes\nDES MOINES, Iowa (AP) - The Iowa Parole Board is proposing to reduce the number of board votes needed to parole high-risk inmates but would toughen the risk assessments. The legislature's Administrative Rules Committee is scheduled to vote Tuesday on the proposal. The proposal would trim the number of votes to three needed for parole from the five votes needed under current rules guiding the five-member board. The proposal also adds new risk assessments, including those that would rate the likelihood that an inmate would engage in violent crimes after being released. Opponents say that despite the new assessments, the proposal raises risks to the public.\nBurlington Man Fined For Not Listening To Judge\nBURLINGTON, Iowa (AP) - An Iowa man learned an expensive lesson about following a judge's orders last week.\nThe Hawk Eye reports that Des Moines County District Associate Judge Mark Kruse added $5,000 to David Good's bond on Friday after Good failed to stay quiet.\nAfter Kruse, increased the 45-year-old Burlington man's bond to $15,000, he ordered deputies to remove him from the courtroom.\nGood had been making an initial appearance on a charge of domestic abuse.\nGood tried to discuss details of the fight he had with his wife's son, but Judge Kruse didn't want to get into evidence in the case at Friday's hearing.\nGood was arrested early Friday after the altercation with his wife's son.\nGood remained in custody Sunday afternoon.\nVietnam Veteran Gets Ring Back\nDES MOINES, Iowa (AP) - A Vietnam veteran has regained a special ring he lost at Lake Delhi 41 years ago.\nJohn Jones served in what was South Vietnam during parts of 1968 and 1969. At that time he had a gold ring made that included his initials and Social Security number, which also served as his Army serial number.\nHe lost it in 1971 while swimming at Lake Delhi.\nWhen the lake's dam broke in 2010, collectors using metal detectors scoured the lake bottom. One of them, Steve Gola, from Grayslake, Ill., found Jones' ring.\nIt took a couple of years to locate Jones, but Gola finally was able to return the ring to him during a Veterans Day event at Veterans Memorial Auditorium in Des Moines.\n|< Prev||Next >|"} +{"text": "l)\n\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: \"rollout-job-1\",\n\t\t\t\tEvaluationJobName: \"eval-job-1\",\n\t\t\t\tRLORJobName: \"rlor-job-1\",\n\t\t\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-123\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{Enabled: false},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t\tTrainerLogsEnabled: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\tenv.AssertExpectations(t)\n}\n\nfunc TestRFTJobWorkflow_MultipleEpochs(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-123\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Track epoch executions\n\tepochCount := 0\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tepochCount++\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: fmt.Sprintf(\"rollout-job-%d\", epochCount),\n\t\t\t\tEvaluationJobName: fmt.Sprintf(\"eval-job-%d\", epochCount),\n\t\t\t\tRLORJobName: fmt.Sprintf(\"rlor-job-%d\", epochCount),\n\t\t\t\tOutputModel: func() string {\n\t\t\t\t\tif input.TrainingConfig != nil {\n\t\t\t\t\t\treturn input.TrainingConfig.OutputModel\n\t\t\t\t\t}\n\t\t\t\t\treturn \"\"\n\t\t\t\t}(),\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-456\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/final-output\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 3, // Multiple epochs\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0, // No chunking\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t,"} +{"text": "Amar’e Stoudemire started the 2013 season hurt. According to the New York Times, “it was unclear if Stoudemire was injured during the Knicks’ game against the Toronto Raptors on Friday, the only time he has played this preseason, or if his knee worsened over time.” I hurt myself today To see if I still feel I focus on the pain The only thing that’s real STAT played his first game of the season on January 1st, and his last regular season game on March 7th. There was no indication that he was injured on a specific play against the Thunder. …continue reading\n[New York Times] Warriors Top Suns 91-77 for Vegas League Title (Tue, 23 Jul 2013 03:07:12 GMT) Ian Clark scored 33 points and hit seven of 10 3-pointers to lead the Golden State Warriors to a 91-77 victory over the Phoenix Suns in the championship game of the NBA’s Vegas Summer League on Monday night.\nI thought it’d be good to gather some of the brain trust and ask some questions about what they saw of the Knicks during summer league. 1. The Knicks have invited Jeremy Tyler to training camp. Assuming he makes the team, how many games into the season before Woodson actually trusts him to warrant more than token minutes? David Crockett: Not before December unless there is injury. One exception. If he starts out playing defense, like Shumpert did, he’ll get some rope. Thing is, we probably need him to score. Robert Silverman: Welp, assuming that Kenyon Martin or Lamar Odom …continue reading\nOn Saturday evening, Frank Isola of the NY Daily News wrote an article about potential troubles facing the Knicks heading into next season. The biggest threats are, of course, New York’s Eastern Conference rivals: Brooklyn’s mammoth upgrades, combined with expected improvement from Chicago, Indiana and Miami, pose a large road block for the Knicks in their quest to make the NBA Finals. The other major issue cited by Isola concern the team’s roster construction and a pair of rather curious summer moves: The three-year contract given to J.R. Smith, despite a knee injury for which Earl immediately underwent surgery; and …continue reading\nI’m sure you’re all enjoying a relaxing Sunday evening (or an absolutely drudgerous/dreary, getting-all-those-annoying-chores/errands-that-you-couldn’t-do-Monday-through-Friday-and-procrastinating-the-hell-out-of-getting-done-on-Saturday-’cause-hell-it’s-the-weekend-I-promise-I’ll-get-to-it-get-off-my-back-already Sunday). Whether you’re draped languorously over your vintage 19th Century fainting couch, sipping on an adult beverage and basking in perfect 72 degree air conditioned air or you’re going to procrastinate a wee bit longer, I chatted with the guys at Talkinhoopz about all the sights, sounds and smells of the Las Vegas Summer League. Dorrell Wright and former Heatle Mark Strickland get gabby too. Link’s here. Have a good’n!\n[New York Daily News] Isola: Knicks could be headed for a fall (Sun, 21 Jul 2013 02:20:12 GMT) This was supposed to be the month when Carmelo Anthony and Chris Paul would finally become partners in New York, forming the perfect free-agent marriage of superstar scorer and superstar point guard. [New York Times] Sports Briefing | Pro Basketball: Chicago’s Balanced Attack Sinks the Liberty (Sun, 21 Jul 2013 03:35:29 GMT) The Sky rookie Elena Delle Donne finished with a career-low 7 points, but Chicago had five scorers in double digits. [New York Times] Silver Stars Too Much for Stars 60-52 …continue reading\n[New York Times] Sports Briefing | Basketball: Delle Donne Leads W.N.B.A. All-Star Voting (Fri, 19 Jul 2013 04:05:18 GMT) Elena Delle Donne of the Chicago Sky became the first rookie to lead the W.N.B.A. All-Star voting when the starters were announced Thursday. [New York Times] In Brooklyn, New Nets Stars Are Clear About Their Goal (Fri, 19 Jul 2013 03:24:51 GMT) “Champion,” “champions” and “championship” were said a combined eight times in the first five minutes of the Nets’ news conference to introduce Kevin Garnett, Paul Pierce and Jason Terry. [New York Times] Delle Donne Is Top Vote Getter for …continue reading"} +{"text": "If you haven't played Titanfall yourself yet, you may be one of those wondering: what the hell is with all the hype around that game? It's just another shooter, right? Not quite. It's better.\nI'll admit it—I'm one of those people excited about Titanfall; one of those people who can't stop talking about Titanfall or telling her friends to start playing the beta with her. Who keeps saying that this is what first-person shooters have been missing. That it's a reinvigorated first-person shooter. And it's not just about the Titans (although it's very much about the Titans).\nLet me explain, at least from my perspective, why this hype is justified.\n1. Enemy AI\nNPCs? What? Hear me out.\nThere's a lot of action going on in a Titanfall multiplayer match, but not all of it is controlled by human players. Each team gets a group of computer-controlled teammates. Enemy fodder in the form of grunt AI means that less skilled players can keep up with everyone else. You're not stuck watching kill cams of people demolishing you with far superior weapons, realizing it'll take you ages before you can level up enough to get your hands on one of those.\nYou don't feel hopeless playing Titanfall. You feel encouragement. Every goal—every weapon you lust over—is one that excites you, not that you dread just thinking about. Every kill—even the easy AI ones—gets you closer to leveling up and therefore closer to those unlocks. So even if you can't seem to kill other pilots with the frequency as those players on the top of your team's leaderboard, you can still get a feel for success on the battlefield.\nOne thing is true of all first-person shooters: the more you play, the better you get. But as opposed to a series like Call of Duty where the thought of getting shot down every round without so much as getting to mutter a curse of outrage in before it's stifled, Titanfall gives you some amount of reward while playing. It's still challenging and there's still room for competition without completely dismissing players who can't quite handle the game on that level just yet. And if you're just too good for the grunt kills, they're easily avoidable and identifiable on the map. It's better for everyone.\nTitanfall takes the typical run-and-gun experience and turns it into something of a battle ballet. You can run on a slant against walls, double-jump with a jetpack and grab onto high ledges. Stringing them all together lets you practically glide through the maps. This is expert-level movement.\nInstead of just running face-first or flanking your way to your target like in most first-person shooters, you can maximize the effectiveness of your knowledge of the map and of people's predictable behavior on it by zigzagging between buildings, from high up on their walls. You're not beholden to the layout of just the innards of buildings and obstacles on the field outside. You don't have to take on a Titan from a vulnerable position on the ground—you can sprint and crawl your way up buildings for the height advantage.\nGames like Brink have experimented with upwards movement before, but it's never quite been as well-executed as this. And it's a trend that I'm happy to see more of and hope to continue to be impressed by.\n3. The Mechs, Obviously\nEveryone can get into a Titan. From the moment the game starts a counter on the screen lets you know how long you've got until your Titan arrives. It's not one of those elusive gold medal achievements that only the best of the best can grab. Sure, the more you kill, the more time gets knocked off your timer, and the faster you can get your hands on your big metal suit. But the important distinction here is that everyone gets a chance at rampaging around in the game's best, most powerful weapon. You're not limited to experiencing the game based on the confines of your skill level. Of course, the better you are the more the game will open up to you—that's just the nature of any multiplayer experience. It's fun at the top.\nBut making sure everyone has a shot at the game's best feature is one of the game's smartest design choices.\nEven if you're not in a mech you still have a chance at taking one down as a lowly pilot, too. You can leap onto the mech's back and shoot the wiring in its head until it falls to its knees or work your way up a tall building to call up an anti-titan RPG to shoot the hell out of it from a safe distance. Power is an open opportunity for everyone, and it's never crippling but rather overpowered in the best of ways.\nTitanfall is accessible, but not in a way that ostracizes its more skilled players. Think about it: what is the most cited reason people stay away from playing even well-made first-person shooters? It's an easy answer, everyone knows: all those 12-year-olds we like to joke about who have way too much free time to practice. It puts adults with maybe a spare hour or two to play at a huge disadvantage. And it's just not fun playing on an uneven field. So a well-made game feels like a bad experience. How can that be, right? It doesn't really make that much sense. Or at least it shouldn't.\nBut Titanfall seems to have found a way to bridge that gap. In the roughly two days I've been playing the beta, I've found that there are still good rounds and rounds you could've done better in, but it's never overwhelmingly negative. Failures aren't crushing, they're motivations for the next round. And that's what first-person shooters have been missing: a way to bring all kinds of players into one battlefield without making everyone want to chuck the controller aside in favor of a less...social game. And, yeah, maybe everyone (including myself) has been going on about this game a little too hard. But I can't really blame them, either."} +{"text": " env.GetWorkflowResult(&result))\n\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n\tassert.Equal(t, input.OutputModel, result.FinalOutputModel)\n\tassert.Equal(t, int32(3), result.TotalEpochs)\n\tassert.Equal(t, int32(0), result.TotalChunks)\n\tassert.Len(t, result.EpochOutputs, 3)\n}\n\nfunc TestRFTJobWorkflow_WithEvaluationDataset(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow - should validate both datasets\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\t// Verify that both datasets are being validated\n\t\t\tassert.Len(t, input.DatasetNames, 2)\n\t\t\tassert.Contains(t, input.DatasetNames, \"accounts/test-account/datasets/training\")\n\t\t\tassert.Contains(t, input.DatasetNames, \"accounts/test-account/datasets/evaluation\")\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-789\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: \"rollout-job-1\",\n\t\t\t\tEvaluationJobName: \"eval-job-1\",\n\t\t\t\tRLORJobName: \"rlor-job-1\",\n\t\t\t\tOutputModel: func() string {\n\t\t\t\t\tif input.TrainingConfig != nil {\n\t\t\t\t\t\treturn input.TrainingConfig.OutputModel\n\t\t\t\t\t}\n\t\t\t\t\treturn \"\"\n\t\t\t\t}(),\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-789\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluationDataset: \"accounts/test-account/datasets/evaluation\", // With evaluation dataset\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: false,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n}\n\nfunc TestRFTJobWorkflow_ChildWorkflowFailure(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-fail\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\n\t// Mock child workflow to fail\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\treturn nil, fmt.Errorf(\"epoch workflow failed: training error\")\n\t\t},\n\t)\n\n\t// Mock cleanup activity that will be called on failure\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAcco"} +{"text": "Trouble Was His Business -- Raymond Chandler\nMarch 28, 2009 | 10:00 am\nTour Casts New Light on Raymond Chandler's Old L.A.\n* A Minnesota couple trace the steps of the novelist's best-known character.April 4, 2004\nBy Erika Hayasaki, Times Staff Writer\nBonnie Olson stood in the lobby of the Oviatt Building on Olive Street downtown on Saturday, beneath the ceilings adorned with triangular glass, and read a passage from the Raymond Chandler novel \"The Lady in the Lake,\" in which he described this very setting.\n\"The sidewalk in front of it had been built of black and white rubber blocks. They were taking them up now to give to the government, and a hatless pale man with a face like a building superintendent was watching the work and looking as if it were breaking his heart,\" she read, explaining that the structure was called the Treloar Building in the book.\n\"The images he's able to evoke of Los Angeles and the past are powerful, maybe more powerful than actually seeing it in reality,\" said Olson, who led eight people on a walking tour of settings for Chandler's books.\nOlson and her husband, Brian, were in town -- from Minnesota of all places -- to lead tours based on their new guide, \"Tailing Philip Marlowe.\"\nThe self-published guide, available at Caravan Books on Grand Avenue, points out sites mentioned in Chandler's books, whose best-known character was private detective Philip Marlowe.\nOlson said she admires Chandler's work because of his poignant storytelling, language and dialogue. He is studied along with great poets, writers and essayists, she said. Many consider him to be one of Los Angeles' quintessential writers, who weaved real places, people and events into his fiction, a strength that inspired fellow mystery writer Ross MacDonald to write: \"Chandler wrote like a slumming angel and invested the sun-blinded streets of Los Angeles with a romantic presence.\"\nFor several decades, Olson, an English teacher, and her husband, who works for the city of Minneapolis, have been enchanted by Chandler's descriptions of Los Angeles, like the steps of City Hall, where Marlowe lighted a cigarette as the cold wind blew in \"Trouble Is My Business.\" Then there was the Bradbury Building on South Broadway about which Chandler wrote: \"The dark narrow lobby was as dirty as a chicken yard\" in \"The High Window,\" in which the structure was called the Belfont Building.\nThe 2 1/2-hour tour began at the Oviatt Building and continued toward the Los Angeles Public Library, which Chandler mentioned in \"The Long Goodbye.\"\nThe group headed to Bunker Hill, stopping at the top of the mothballed Angels Flight cable trolley, which Chandler described in \"The High Window.\"\nThe group hiked to the 2nd Street tunnel, which Chandler compared to the barrel of a gun in \"The Big Sleep\": \"The muzzle of the Luger looked like the mouth of the Second Street tunnel.\"\nWhen the couple visited Los Angeles three years ago, they wanted to explore places mentioned in the novels, which captured the city in the 1930s and '40s. But they said they could not find a guide. So they returned home and combed through all of Chandler's stories, flagging descriptions of settings with Post-it notes.\nThen the Olsons visited Los Angeles again, searching for the sites, and spent hours in the library researching the city's architectural history.\nThe couple put together the 112-page guidebook with the help of family members and a printer in Fargo, N.D., thinking they could use the books as Christmas gifts.\n\"We did it to have fun together,\" Bonnie Olson said. \"We had no idea it was going to be such a niche.\"\nAustralian native Heath Ryan, 32, a fan of Chandler's book \"Playback,\" moved to Los Angeles three years ago. He said he already had an idea of what the city was like from Chandler's descriptions.\n\"You get here and feel almost familiar with this place, even though you have never been here,\" Ryan said.\nRay Chin, 32, a downtown resident, said Chandler's work has helped him understand how the city has evolved.\n\"It isn't so much the images of the city,\" Chin said. \"It's the historical knowledge he gives about the city. It's fascinating to see all of the changes.\"\nOn Saturday, those on the tour hiked up to Bunker Hill, where they rested on rows of marble benches in a courtyard overlooking a pond, surrounded by towering skyscrapers. The outdoor cafe tables were mostly empty, and a hair salon was closed. Beneath the courtyard, homeless men and women slept on the grass, and the stairs smelled like urine.\nMany years ago, Chandler described the setting, in \"The High Window,\" like this: \"Bunker is old town, lost town, shabby town, crook town.... Out of the apartment houses come women who should be young but have faces like stale beer; men with pulled-down hats and quick eyes that look the street over behind the cupped hand that shield the match flame; worn intellectuals with cigarette coughs and no money in the bank; fly cops with granite faces and unwavering eyes; cokies and coke peddlers.\"\nOlson read that passage and her husband explained that this was the neighborhood where Marlowe found a dead body in an apartment.\n\"It was a romantic time, a different time,\" Ryan said. \"There were no freeways. It was the center of the city. Now it feels a bit dead.\"\nNote: To mark the 50th anniversary of Raymond Chandler's death, the Daily Mirror is revisiting some of The Times' stories about his life and influence. We invite the Daily Mirror's readers to share their thoughts."} +{"text": "gnuplot - an interactive plotting program\ngnuplot [ X11 options ] [file ...]\nGnuplot is a command-driven interactive function plotting program.\nIf files are given, gnuplot loads each file with the load command, in\nthe order specified. Gnuplot exits after the last file is processed.\nHere are some of its features:\nPlots any number of functions, built up of C operators, C library func-\ntions, and some things C doesn’t have like **, sgn(), etc. Also sup-\nport for plotting data files, to compare actual data to theoretical\nUser-defined X and Y ranges (optional auto-ranging), smart axes scal-\ning, smart tic marks.\nLabelling of X and Y axes.\nUser-defined constants and functions.\nSupport for many output devices and file formats\nShell escapes and command line substitution.\nLoad and save capability.\nAll computations performed in the complex domain. Just the real part\nis plotted by default, but functions like imag() and abs() and arg()\nare available to override this.\nGnuplot provides the x11 terminal type for use with X servers. This\nterminal type is set automatically at startup if the DISPLAY environ-\nment variable is set, if the TERM environment variable is set to xterm,\nor if the -display command line option is used. For terminal type x11,\ngnuplot accepts the standard X Toolkit options and resources such as\ngeometry, font, and background. See the X(1) man page for a description\nof the options. In addition to the X Toolkit options:\n-clear requests that the window be cleared momentarily before a new\nplot is displayed.\n-gray requests grayscale rendering on grayscale or color displays.\n(Grayscale displays receive monochrome rendering by default.)\n-mono forces monochrome rendering on color displays.\n-persist lets plot windows survive after main gnuplot program exits.\n-raise raises the plot window after each plot.\n-noraise does not raise the plot window after each plot.\n-tvtwm requests that geometry specifications for position of the window\nbe made relative to the currently displayed portion of the virtual\nThese options may also be controlled with resources in your .Xdefaults\nfile. For example: gnuplot*gray: on .\nGnuplot provides a command line option (-pointsize v) and a resource\n(gnuplot*pointsize: v) to control the size of points plotted with the\n\"points\" plotting style. The value v is a real number (greater than 0\nand less than or equal to ten) used as a scaling factor for point\nsizes. For example, -pointsize 2 uses points twice the default size,\nand -pointsize 0.5 uses points half the normal size.\nFor monochrome displays, gnuplot does not honor foreground or back-\nground colors. The default is black-on-white. -rv or gnuplot*reverseV-\nideo: on requests white-on-black.\nFor color displays gnuplot honors the following resources (shown here\nwith default values). The values may be color names in the X11 rgb.txt\nfile on your system, hexadecimal RGB color specifications (see X11 doc-\numentation), or a color name followed by a comma and an intensity value\nfrom 0 to 1. For example, blue,.5 means a half intensity blue.\nWhen -gray is selected, gnuplot honors the following resources for\ngrayscale or color displays (shown here with default values). Note that\nthe default background is black.\nGnuplot honors the following resources for setting the width in pixels\nof plot lines (shown here with default values.) 0 or 1 means a minimal\nwidth line of 1 pixel width. A value of 2 or 3 may improve the appear-\nance of some plots.\nGnuplot honors the following resources for setting the dash style used\nfor plotting lines. 0 means a solid line. A 2 digit number jk (j and k\nare >= 1 and <= 9) means a dashed line with a repeated pattern of j\npixels on followed by k pixels off. For example, ’16’ is a \"dotted\"\nline with 1 pixel on followed by 6 pixels off. More elaborate on/off\npatterns can be specified with a 4 digit value. For example, ’4441’ is\n4 on, 4 off, 4 on, 1 off. The default values shown below are for\nmonochrome displays or monochrome rendering on color or grayscale dis-\nplays. For color displays, the defaults for all are 0 (solid line)\nexcept for axisDashes which defaults to a ’16’ dotted line.\nThe size or aspect ratio of a plot may be changed by resizing the gnu-\nThomas Williams, Pixar Corporation,\nand Colin Kelley.\nAdditions for labelling by Russell Lang, Monash University, Australia.\nFurther additions by David Kotz, Dartmouth College, New Hampshire, USA\n(formerly of Duke University, North Carolina, USA).\nSee the help bugs command in gnuplot.\nSee the printed manual or the on-line help for details on specific com-\n4th Berkeley Distribution 03 January 2001 GNUPLOT(1)\nMan(1) output converted with"} +{"text": "untID: \"test-account\",\n\t\tJobID: \"test-job-fail\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\terr := env.GetWorkflowError()\n\trequire.Error(t, err)\n\t// After preserving error types, the error message comes directly from the child workflow\n\tassert.Contains(t, err.Error(), \"epoch workflow failed\")\n}\n\nfunc TestRFTJobWorkflow_FirstEpochWithWarmStart(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\n\t// Register workflows\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Mock dataset validation\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-123\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Capture the training config passed to the epoch workflow\n\tvar capturedTrainingConfig *gpb.BaseTrainingConfig\n\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tcapturedTrainingConfig = input.TrainingConfig\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: \"rollout-job-1\",\n\t\t\t\tEvaluationJobName: \"eval-job-1\",\n\t\t\t\tRLORJobName: \"rlor-job-1\",\n\t\t\t\tOutputModel: input.TrainingConfig.OutputModel,\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\twarmStartModel := \"accounts/test-account/models/warm-start-model\"\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-warm-start\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\t// Note: BaseModel is not set when using WarmStartFrom\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\tWarmStartFrom: warmStartModel,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\t// Verify that the first epoch received the warm start model in WarmStartFrom field\n\tassert.NotNil(t, capturedTrainingConfig)\n\tassert.Equal(t, warmStartModel, capturedTrainingConfig.WarmStartFrom,\n\t\t\"First epoch with warm start should use WarmStartFrom field\")\n\tassert.Empty(t, capturedTrainingConfig.BaseModel,\n\t\t\"First epoch with warm start should have empty BaseModel\")\n}\n\nfunc TestRFTJobWorkflow_WithHotReloadDeployment(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tre"} +{"text": "I'm forwarding your text to TT for you, with this response.\nMy response is, \"Thank you for the information.\"\nIf I understood you correctly, most leaks are not caused by lightning,\nbut some are. In some of those cases, lightning arced between another\nconductor and the pipe. Grounding of power utilities, while it may be\nadequate for AC safety, is suspect in some cases of lightning damage.\nThere may also be electrolysis caused by dissimilar metals in a circuit\nleading to the plumbing.\nI agree with you. Hope I didn't mis-state your information. Please\ncorrect me if I did.\nMany thanks, es 73 de Red\n>(Red: most of the time, my posts don't show up on\n>the list, reasons unknown, please forward this to the\n>list for me if it doesn't. Thanks)\n>On 12 Jul 2006 at 17:39, Red wrote:\n>>Lightning may have been incidental to the pinhole leaks. The water in\n>>some communities slowly corrodes copper pipes and causes pinhole leaks.\n>>I believe it is a result of acidic water, but I don't remember for sure\n>>what compound or ion in the water attacks the copper.\n>>73 de WOØW\n>I locate water leaks for a living, all day, 5 days a week....in FL.\n>Yes, water chemistry is responisble for the vast majority of leaks,\n>But, relative to the below questions... YES! Lightning absolutely\n>DOES cause numerous water leaks. Usually in the form of a\n>hole where it either arcs over to reinforcing mesh or rebar, or\n>else it makes less dramatic holes where \"apparently\" it discharges\n>into the soil. As most of us are probably aware, either the cold water\n>pipe, or possibly both cold and hot, are commonly tied to the\n>ground/neutral at the breaker panel. In 15 years of doing this, I\n>can think of only one instance where it was apparent that lightning\n>struck a hose bibb on the outside of the home as means of getting\n>into the plumbing... other than that, in most cases it seemed to\n>me that the lightning came in via the electrical mains. Of course,\n>that's not scientific, but it IS my opinion based on experience.\n>All \"reasonably modern\" homes plumbed with copper hereabouts\n>are plumbed with \"soft\" copper, i.e. copper that comes in rolls\n>rather than straight sticks, with the connections all being made\n>at above ground manifolds concealed within walls, the idea being\n>specifically to avoid any underground solder joints.\n>I've never seen or heard of a solder joint failing due to a lightning\n>strike. FWIW there are still a lot of \"hard copper\" plumbed homes\n>with the joints underneath, and I've seen any number of leaks at\n>solder joints in them, but not directly attributable to lightning strikes.\n>Of course, you can't melt solder joints in a pipe full of water anyhow..\n>FWIW I did have one customer whose home took a lightning strike,\n>with the leak making itself evident in the form of loss of pressure,\n>along with a high flow rate at the water meter... it was due to a\n>PVC pipe in the yard rupturing, not from the strike, I suspect, but\n>rather a huge spike in pressure when the water in the copper lines\n>in the home was suddenly heated. Again, that's not scientific, but\n>that's the way it appeared to have happened.\n>\"Most\" homes here are now being plumbed with CPVC due to the\n>effects of the water, and there are rumblings about changing the\n>building codes to eliminate the use of copper. Other than that, it\n>seems to depend on whatever the architect specifies.\n>On the other hand..... I have reason to think that the ground/neutral\n>coming off the pole is not always at \"zero volts\" relative to ground, and\n>I therefore have to suspect electrolysis is at least partially behind\n>\"some\" leaks... and I don't know who the genius was that decided\n>that plain ol' rebar was acceptable as a ground rod at the meter,\n>but tying dissimilar metals together with wires just *can't* be a good\n>thing, either... and I doubt a rusty steel rod is particularly effective\n>at anything, let alone keeping a strike out of good old copper pipes\n>buried the length and breadth of a home.\n>>>I can't confirm this first hand, but I have heard reports of lightning\n>>>producing pin hole leaks in copper water pipes. Does anyone have any\n>>>good data on this? Maybe the problem ocurrs ar the soldered connections?\nTowerTalk mailing list"} +{"text": "(c) Copyright 2010. Library Journals LLC, a wholly owned subsidiary of Media Source, Inc. No redistribution permitted.\nAs this book's title suggests, musician and Talking Heads cofounder Byrne (Bicycle Diaries) brings the same ambition and wide-ranging focus to his writing that has always been present in his music and visual art. In chapters that function as distinct essays, he explores several hows of music: how technology has shaped its history, how artists can make money from it, and how our culture and surroundings affect our reactions to it.ÅPerhaps unsurprisingly, this broad approach results in shallow spots, with underdeveloped lines of thought and interesting topics that vanish too quickly.ÅYet despite the lapses in rigor, Byrne has a knack for presenting ideas and theories from music scholarship-notably, the still-emerging field of sound culture-in an accessible manner. VERDICT While he avoids focusing onÅhisÅmusical career, Byrne's ability to draw upon his experiences with Talking Heads and as a solo artist to illustrate his points is a clear strength. Music fans of all stripes will find engaging material in this book.-Chris Martin, North Dakota State Univ. Libs., Fargo, ND (c) Copyright 2012. Library Journals LLC, a wholly owned subsidiary of Media Source, Inc. No redistribution permitted.\n(c) Copyright PWxyz, LLC. All rights reserved\nIn this fascinating meditation, Talking Heads frontman Byrne (Bicycle Diaries) explores how social and practical context, more than individual authorship, shaped music making in history and his own career. Touching on everything from bird-song and mirror neurons to the scene at CBGB, his wide-ranging treatment analyzes the effect of music venues (he theorizes that terrible stadium acoustics bias arena-rock bands toward plodding anthems), technology (sound recording induced opera singers to add vibrato), finances (he proffers balance sheets for two of his albums), and much else on the music we hear. He draws extensively from his own experiences, as his music shifted from the minimalism of early Talking Heads (\"no `oh, babys' or words that I wouldn't use in in daily speech\") to complex theatricality; his chapters on Heads recording sessions are some of the most insightful accounts of musical creativity yet penned. The result is a surprising challenge to the romantic cliche of musical genius: rather than an upwelling of authentic feeling, he insists, \"making music is like constructing a machine whose function is to dredge up emotions in performer and listener.\" Byrne's erudite and entertaining prose reveals him to be a true musical intellectual, with serious and revealing things to say about his art. Photos. (Sept. 21) (c) Copyright PWxyz, LLC. All rights reserved.\nFrom Booklist, Copyright © American Library Association. Used with permission.\n*Starred Review* Most people know idiosyncratic, Scottish-born David Byrne as the front man of that great new wave band, Talking Heads. But he is also an author, painter, photographer, and film and record producer. In this wide-ranging celebration of the power of music, he discusses, among many topics, the early days of the recording industry, various types of music venues, birdsong and whale calls, the significance of mixtapes, the development of CDs, his love of African rhythms, and the concept of creativity and what it means to be creative. But he also mentions his own career as well as the many collaborators he has worked with, including English musician and producer Brian Eno, Brazilian composer and singer Caetano Veloso, and DJ Fatboy Slim. He describes the origin of his twitchy stage persona and acknowledges his own shyness, describing himself as a withdrawn introvert, whose most comfortable way of communicating was, he says, onstage. ( Poor Susan Boyle; I can identify, he writes). At one point, he even self-diagnoses himself as having a mild form of Asperger's syndrome. He concludes by asking provocative questions: What is music good for? Why do we need music? Funding future creativity is a worthy investment, he insists. Endlessly fascinating, insightful, and intelligent.--Sawyers, June Copyright 2010 Booklist"} +{"text": "gisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-hotreload\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register activities with proper function signatures\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"CreateOrGetDeployment\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.GetModelParameterCountInput) (activities.GetModelParameterCountOutput, error) {\n\t\treturn activities.GetModelParameterCountOutput{}, nil\n\t}, activity.RegisterOptions{Name: \"GetModelParameterCount\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.GetAccountUsageInput) (*activities.GetAccountUsageOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"GetAccountUsage\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBilling\"})\n\n\t// Mock CreateOrGetDeployment activity (RFT jobs no longer call DetermineDeploymentConfig)\n\texpectedDeploymentName := \"accounts/test-account/deployments/rft-hotreload-test-job-hotreload\"\n\tenv.OnActivity(\"CreateOrGetDeployment\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\t\t// Verify the input\n\t\t\tassert.Equal(t, \"test-account\", input.AccountID)\n\t\t\tassert.Equal(t, expectedDeploymentName, input.DeploymentName)\n\t\t\tassert.Equal(t, \"accounts/test-account/models/base-model\", input.Model)\n\t\t\tassert.True(t, input.EnableHotReloadLatestAddon, \"Hot-reload should be enabled\")\n\t\t\t// Verify deployment_shape is passed (determines all hardware config)\n\t\t\tassert.Equal(t, \"accounts/fireworks/deploymentShapes/rft-base-model/versions/v1\", input.DeploymentShape)\n\t\t\t// Non-H200 RFT jobs still let the deployment shape select placement.\n\t\t\tassert.Equal(t, gpb.Region_REGION_UNSPECIFIED, input.Region)\n\t\t\t// Verify hardware config fields are UNSPECIFIED (determined by deployment_shape)\n\t\t\tassert.Equal(t, gpb.AcceleratorType_ACCELERATOR_TYPE_UNSPECIFIED, input.AcceleratorType)\n\t\t\tassert.Equal(t, int32(0), input.AcceleratorCount)\n\n\t\t\treturn &activities.CreateOrGetDeploymentOutput{\n\t\t\t\tDeploymentName: expectedDeploymentName,\n\t\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Mock billing activities (required for hot-reload billing on successful completion)\n\tenv.OnActivity(\"GetModelParameterCount\", mock.Anything, mock.Anything).Return(\n\t\tactivities.GetModelParameterCountOutput{\n\t\t\tParameterCount: 70_000_000_000, // 70B model, above 16B threshold\n\t\t}, nil,\n\t)\n\n\tenv.OnActivity(\"GetAccountUsage\", mock.Anything, mock.Anything).Return(\n\t\t&activities.GetAccountUsageOutput{\n\t\t\tUsage: &gpb.AccountUsage{\n\t\t\t\tDedicatedCosts: []*gpb.AccountUsage_DedicatedDeploymentUsage{\n\t\t\t\t\t{\n\t\t\t\t\t\tDeploymentId: expectedDeploymentName,\n\t\t\t\t\t\tAcceleratorType: \"NVIDIA_H100_80GB\",\n\t\t\t\t\t\tAcceleratorSeconds: 3600,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil,\n\t)\n\n\tenv.OnActivity(\"ReportRFTBilling\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Capture the epoch workflow input to verify deployment name is passed\n\tvar capturedEpochInput RFTEpochWorkflowInput\n\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tcapturedEpochInput = input\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: \"rollout-job-1\",\n\t\t\t\tEvaluationJobName: \"eval-job-1\",\n\t\t\t\tRLORJobName: \"rlor-job-1\",\n\t\t\t\tOutputModel: input.TrainingConfig.OutputModel,\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-hotreload\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tDeploymentShape: \"accounts/fireworks/deploymentShapes/rft-base-model/versions/v1\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs:"} +{"text": "How beguiling a character seems the young Oscar Wilde. We are told that he “swaggers” through the pages of the memoirs of his friends, “supremely self-assured in manner, intellectually intrepid and precocious, with his striking dandified dress and towering physique, scattering epigrams and poems in his wake.”\nWilde was a brilliant scholar and droll, rapid-fire commentator. He was erudite beyond what most of us can even begin to imagine.\nExcept that now, thanks to Thomas Wright, we can imagine. Wright, in a remarkable labor of love, has dedicated much of his life (about two decades) to a quest to intellectually reconfigure and read Wilde’s personal library. The result is Built of Books: How Reading Defined the Life of Oscar Wilde.\nIt could be argued that all of us are indelibly marked by the books we read. But there can be few people for whom this is as strikingly true as it was of Wilde, who became celebrated as a playwright, poet, author, and professional wit.\nBooks were the driving force of his existence, from earliest childhood on up, and later in life, when he was brought low by tragedy and disgrace, they were his last remaining comfort.\nWright has gone to great lengths not only to learn about the titles that shaped Wilde’s life, but to get his hands on as many of Wilde’s own copies of those books as possible. The result is an idiosyncratic yet insightful take on the man Wright refers to as “my hero.”\nWilde was born in 1854 into an intensely bookish home. As a child, he soaked up Celtic mythology, fairy tales, poetry, and legend. (He once claimed that as a boy he learned to “think” in stories.) A passion for fairy tales in particular bred in Wilde a deep trust in the imaginative and an accompanying scorn for the pragmatic – a worldview that would not always serve him well.\nAs a student at Oxford, Wilde became one of the finest classical scholars of his age. By the time he was an adult, he was proficient in Latin, Greek, modern and medieval French and Italian, and German.\nHis wide-ranging reading firmly entrenched Wilde in an idealistic belief that the pursuit of beauty was paramount in life – a conviction often out of step with the bourgeois London of his era.\nWhen Wilde married he chose an almost equally bookish woman. Their home in London included a fabulous first-floor library – complete with chair rail, buttercup yellow walls, and “shiny lacquered red-brown woodwork” – for Wilde and his 2,000-volume collection, which included works of science, philosophy, archaeology, philology, comparative mythology, art history, and literature.\nWilde’s was a working library and its volumes were often stacked on the floor. Wilde scribbled in them, marked passages, and sometimes even chewed on them. (Literally – he would tear corners off pages and pop them in his mouth while reading intensely.)\nHe dribbled crumbs and jam into them and sometimes used flowers to mark his place – all of which left an unusually personal imprint on his collection. He also borrowed widely from his books and perhaps even stole. (Plagiarism, he told a friend, “is the privilege of the appreciative man.”)\nBut there was no happy ending for either Wilde or the library he loved.\nAlthough genuinely fond of his wife and devoted to his two young sons, Wilde’s attraction to young men eventually came to dominate his life. (The section of his library devoted to books on “Socratic” love between men grew with his passions.)\nFinally, in 1895, some reckless decisions on Wilde’s part led to his trial and conviction for “gross indecency.” He was sentenced to two years hard labor in jail.\nHe lost his family, his home, his public standing, and – in a particularly punishing turn of events – his beloved library was broken up and sold at auction for a mere fraction of its value.\n(These are the physical books that Wright has tracked. He located about 50 in public or private collections and was able to examine almost all of them.)\nIn prison, Wilde clung to books. He read and reread both the King James Version of the Bible and Dante’s “Inferno.”\nFinally a humane warden noted Wilde’s suffering – if there ever was a man ill-prepared for hard, physical labor it was Wilde – and decided to make better use of his talents, appointing him prison librarian. Wilde did his best to assemble and disseminate a fine collection of books for his fellow inmates (whom he called “my pals”).\nWhen Wilde left prison, he fled first to France. Friends, hoping to ease his re-emergence into the outside world, treated him to the nucleus of a new collection of books.\nBut Wilde never really recovered. He was broken both physically and mentally.\nHe drifted around Europe like a tired ghost and finally died in a hotel in France in 1900. It was a wretched ending, and yet also one uncannily reminiscent of some of the Greek tragedies and French novels that Wilde loved best (most particularly Balzac’s “Lost Illusions” and Stendhal’s “Scarlet and Black”).\nFittingly, Wright notes, at the moment of Wilde’s passing, the spines of his books on their shelves were among the last things he would have seen.\nWright’s account of a life shaped – for better and for worse – by the power of the written word is a recommended read for all who have ever been moved by the power of a book.\nMarjorie Kehe is the Monitor’s book editor."} +{"text": "TOKYO, March 26 -- As the Boston Red Sox and Oakland Athletics\nplayed the second game in their series right next door in the Tokyo\nDome, Pancrase lit up MMA mecca Korakuen Hall on Wednesday with the\nsecond event in its 2008 Shining Tour.\nThe main event featured a battle for the featherweight division's\nNo. 1 contender spot between Pancrase veteran Miki Shida (Pictures) and Brazilian prospect Marlon Sandro (Pictures).\nSandro used his reach well, forcing Shida to backpedal for the\nmajority of the fight. In the second round, the Brazilian connected\nwith a well-timed uppercut that had Shida staggered. The Nova Uniao\nfighter capitalized on the advantage, charging forward with punches\nand eventually scoring a takedown.\nShida worked his way back to his feet, but the end was close at\nhand. Just as the Japanese fighter was coming in, Sandro connected\nwith a textbook flying knee to the head. From there, Sandro rushed\nin with punches to finish off his dazed opponent via knockout at\nthe 4:19 mark.\nWith the win, Sandro will move on to face current Pancrase\nfeatherweight champion Yoshiro Maeda (Pictures) later this year.\nFormer Rings and Pride fighter Hiromitsu Kanehara\n(Pictures) stepped out of retirement\nto take on current Pancrase middleweight champion Izuru Takeuchi (Pictures).\nSporting a 14-18-1 record, Kanehara doesn't look like that great of\na fighter on paper. One has to keep in mind, however, that\nthroughout his career he has been thrown into the ring against the\ntoughest fighters of many different promotions. No matter how badly\nthe cards are stacked against him, the Japanese journeyman always\ngives 100 percent.\nHis bout against Takeuchi didn't really set the ring on fire,\nthough, largely due to Takeuchi's style of pinning him to the mat.\nKanehara spent most of his time going for a kimura, and Takeuchi\nconstantly pushed him into the corner and got around to his\nThroughout the fight Takeuchi got the takedowns and pretty much\ncontrolled the pace. Toward the end Kanehara received a yellow card\nfrom the referee for holding the ropes to prevent a takedown.\nThe somewhat drawn-out bout went the full three rounds, with the\nunanimous decision being awarded to Takeuchi, 30-29 and 30-28\nRussian fighter Alavutdin Gadzhiyev\n(Pictures) proved just what kind of\npower he has in his hands during his battle against the\never-eccentric Hikaru Sato\n(Pictures). None of Gadzhiyev's four\nfights in Pancrase have gone more than 65 seconds, and three have\nended by TKO.\nHowever, Sato got the takedown early and quickly transitioned to\nthe mount. As the Pancrase veteran started raining down punches,\nGadzhiyev basically split the atom in MMA terms -- punching up from\nthe ground and actually knocking out his opponent.\nThe knockout, which came at the 1:20 mark of the first round, was a\ntrue testament to the power that the Russian has behind his\npunches. It's nearly impossible to throw a punch off your back, let\nalone knock someone out with it, and to do all this while your\nopponent is sitting on top of you throwing punches is truly\nWith the incredible win, Gadzhiyev will almost surely get a shot at\n(Pictures)'s middleweight title.\nPancraseism's Takafumi Ito\n(Pictures) faced off against Nova\nUniao's Hacran Dias\n(Pictures) in a tough bout. Both\nfighters displayed very good takedown defense in the first and\nsecond rounds, but the most exciting action happened in the\nAfter briefly scoring a takedown, Ito went for a rolling kneebar\nattempt. Dias escaped and took his opponent's back, but Ito quickly\ntwisted into the guard before the Brazilian could capitalize on the\nposition. Ito once again went for the leg submission in the final\nseconds, but he couldn't sink it in before the final bell.\nThe fight went to the judges and was ruled a draw.\nKenji Arai (Pictures) and Shinsuke Shoji (Pictures) put on a great performance in\ntheir lightweight battle. Arai displayed good timing with his\nhands, often catching his opponent with punches as he was coming\nin. He also used his knees to nullify Shoji's takedown\nFor his part, Shoji put on a dirty boxing clinic, peppering Arai\nwith short hooks and uppercuts in the clinch. Arai took a lot of\ndamage from this tactic in the first, and he was looking pretty\nrough during the intermission. The Pancraseism fighter rallied\nback, though, and landed a big high kick in the opening of the\nthird before rolling for a nice kneebar attempt.\nArai looked as if he had the match in the closing seconds of the\nthird. He caught Shoji with a big jumping knee, but the iron-jawed\nKrazy Bee fighter shrugged it off and kept pushing forward all the\nway to the final bell.\nThe fight went to the judges, and Shoji took the unanimous\ndecision, 30-28 on all three cards.\nShoji's teammate, Michihisa Asano (Pictures), displayed his wrestling prowess\nShirai (Pictures) by constantly shooting in and\ngetting the takedown. Although Shirai had some good triangle\nattempts off his back, he couldn't really compete against Asano's\nAsano kept the Krazy Bee fighter reacting to his pressure and took\nthe majority decision, 19-19 and 20-19 twice.\nToryu (Pictures) was quite good at getting the\ntakedowns in his bout against Takenori Sato (Pictures). He didn't do anything on the\nground, though, other than punch from the guard.\nSato was active off his back, always going for kimuras and armbars,\nbut he couldn't manage to finish the submission attempts he\nstarted. His best chance came toward the end of the first when he\nhad a strong armbar attempt. However, Toryu performed an equally\nimpressive bridge to escape the technique, and the fight was\neventually scored a draw.\nIn other action, Takada Dojo's Tomoyoshi Iwamiya\n(Pictures) slugged it out with Tomoki\nHonda. After two rounds, Iwamiya picked up the decision, 20-18 and\nGRRRR!!!More on Sherdog.com Mobile"} +{"text": " 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: false,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n\tassert.Equal(t, input.OutputModel, result.FinalOutputModel)\n\n\t// Verify that the deployment name was passed to the epoch workflow\n\tassert.Equal(t, expectedDeploymentName, capturedEpochInput.TargetDeployment,\n\t\t\"Hot-reload deployment name should be passed to epoch workflow\")\n}\n\nfunc TestRFTJobWorkflow_WithRlorKeepAlive(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tregisterMockRFTJobActivities(env)\n\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-keepalive\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\trunCreateRlorK8sCalled := false\n\tenv.OnActivity(\"RunCreateRlorK8s\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.RunCreateRlorK8sInput) (*activities.RunCreateRlorK8sOutput, error) {\n\t\t\trunCreateRlorK8sCalled = true\n\t\t\tassert.True(t, input.EnableKeepAlive, \"Keep-alive should be enabled\")\n\t\t\tassert.Equal(t, \"test-job-keepalive\", input.JobId)\n\t\t\treturn &activities.RunCreateRlorK8sOutput{\n\t\t\t\tK8sJobName: \"keep-alive-k8s-job-123\",\n\t\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\t\tJobStatusFile: \"gs://bucket/status.json\",\n\t\t\t\tJobBillingFile: \"gs://bucket/billing.json\",\n\t\t\t\tJobMetricsFile: \"gs://bucket/metrics.jsonl\",\n\t\t\t\tModelCheckpointDirectory: \"gs://bucket/checkpoints\",\n\t\t\t}, nil\n\t\t})\n\n\tvar capturedEpochInput RFTEpochWorkflowInput\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tcapturedEpochInput = input\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: \"rollout-job-1\",\n\t\t\t\tEvaluationJobName: \"eval-job-1\",\n\t\t\t\tRLORJobName: \"rlor-job-1\",\n\t\t\t\tOutputModel: input.TrainingConfig.OutputModel,\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-keepalive\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n\tassert.Equal(t, input.OutputModel, result.FinalOutputModel)\n\n\tassert.True(t, runCreateRlorK8sCalled, \"RunCreateRlorK8s should be called\")\n\n\tassert.NotNil(t, capturedEpochInput.RlorKeepAliveJob, \"Epoch workflow should receive keep-alive job "} +{"text": "landing spot. will be interesting to see how he does.\nWho's @ FanDay?\nHow does fan day work exactly? Thanks.\nNormally they open the gates around 1 but this year they started signing at 1 but opened the gates at 11. From what I heard it was somewhat of a mess with a lot more people then are usually there. I usually have people go since I am out of state and they get tons of autographs, this year they got pictures as they started kicking people out of lines. This is a good thing in my opinion though because it means there is still demand for our team. I know the longest line the last few years was for Rich Rod which is also nice to see.\nThanks, yeah, I'm out of state, but heading up to AA for school this fall, big fan, but haven't got a taste of a lot of the local events yet.\nI'm no good at estimating crowd sizes, but there were tons of fans, huge lines everywhere, but everybody seemed to be having a good time. Lots of kids down on the field chasing footballs, people taking pix... too bad the weather wasn't sunny, but still a nice day. The players seemed to be enjoying all the attention.\nI got the special ticket package through the Alumni Association that gives you different seats for each game, and I checked out all of mine. I've got some pretty sweet seats, and no bad ones in the bunch.\nI brought my 5 month old, we waited in line to see the RBs for 1.5 hours. They all signed my daughters Michigan shoes; which got a few laughs.\nWe walked in after 12 noon and went straight in to the stadium (East side). I thought, man, there is no one here yet. Weird. Then we walked around and saw the autograph lines at the south and west and I laughed at my idiocy.\nMy spouse took the kids down to the field to run around like maniacs while I got in line.\nWe could only get through two lines--by the time we got through the wide receivers, they were closing off all of the other lines we passed. But on our way out, the RichRod line wasn't long at all, so we got his signature and a photo too.\nI thought there would be more to do, more stuff for fans, but we had a great time regardless. Players were super nice. I was really glad I had printed out a roster so I could identify the ones I didn't know. Jerald Robinson and DJ Williamson were sitting next to each other, and I told them \"We sure do love it when you Ohio boys come play for Michigan\" and DJ burst out laughing.\nSome of those WR have some sweet tattoos.\nLots of families. Lots of varied stuff getting signed. I saw a guy have RichRod sign the back of his daughter's shirt while she was napping on his shoulder. That was kinda funny.\nIt was my first time in the Big House. It was awesome, the lines were long but it was worth it. Got to watch them take the team picture, and later walk around the field. As for the players, M-Rob and Death Roh looks like beasts., I got Tate's, the TEs, and all the LBs including Death Roh's autographs in The Wolverine team preview mag. Davion Rogers got a kickout of the fact I knew who he was (thanks to this site by the way). Jordan Paskorz was with the LBs but was under the D-line in the team preview mag, He is real cool. On the way out we were able to catch up to Jeremy Jackson and Roy Roundtree on their way to the team buses, they signed our stuff no problem..good guys. That is all we had time for, I really wanted the D-Line and the rest of the WRs but its all good. I also picked up a \"Worst State Ever\" shirt and various other gear. Can't wait to back at the Big House on Sept. 4th!\nI posted this in the Brock Mealer thread, but thought it belonged here as well.\nI was letting my 3 and 5 yr old run around on the field, and I was standing near the tunnel. I noticed a young man in a wheel chair nearby, wearing a coaches polo, and had UM stickers on his wheel chair. I took a chance and approached him, asking if he is Brock. He said he was, and I told him how inspirational his reocvery has been, how many people are pulling for him and we're all excited to see him walk out the tunnel on the 4th. We had a little more idle chit chat, and I ribbed him about going to OSU. All in all, it was about a 2-3 minute conversation, but I could tell he is an exceptional person, and seemed to be quite upbeat.\nJust wanted to relay this little tidbit, and let everyone know how excited I was to meet him."} +{"text": "Send your workplace conundrums to email@example.com including your name and contact information (even if you want it withheld for publication). The Workologist is a guy with well-intentioned opinions, not a professional career adviser. Letters may be edited.\nRecently my C-suite-level boss has compelled staff members to interrupt their work to drive him to meetings, or even to the airport. We’re a public agency with a lean staff and plenty to do. I want to avoid having to say yes to this request/assignment.\nI could politely state the trade-off: “No problem — but it will take me away from Project X.” But I’m afraid that he will affirm the new priority, leaving me feeling twice devalued.\nCan I respectfully suggest that he use one of the taxis that often pass by our building? ANONYMOUS\nThis certainly does sound like a dubious — and rather odd — use of agency resources. You’re right to question it, and, ideally, to make it stop.\nBut having that conversation at the precise moment you’re being asked to play chauffeur is a bad strategy. If the guy has a plane to catch, he is unlikely to be in a mind-set that will lead to a thoughtful discussion, let alone be open to rethinking his own decision-making.\nYou’d also be wise to frame this as being about more than just you — as you’d be better off speaking on behalf of a group. Canvass your colleagues who have also been given driver duty; it’s a good bet that none of them appreciate it, either. Moreover, it seems to be a problem for the whole team if one person is pulled away to make an airport run. Stressing this aspect of the issue is much more convincing than saying, “I don’t want to drive you around anymore!”\nIf it’s not too hard to do, you may want to figure out whether other managers at his level do the same thing, or if they just take cabs. (Obviously, it’s also worth learning whether there is some overlooked but relevant official policy, from an office manager or rarely-read company manual.)\nYou could start by simply asking your boss about this habit: Maybe he honestly thinks that it’s a shrewd budgetary move. Then make your points in a way that has nothing to do with being irritated at the practice, and everything to do with its consequences. Be specific: We needed so-and-so for Project X, my group needed me for Project Y, etc.\nI understand that you don’t want to feel devalued if, despite a reasoned case, the response boils down to: “Whatever. Your time is better spent ferrying me around.” But if that’s the way he feels, I’d say you may as well know it — and maybe start thinking about finding a boss who appreciates more than your driving skills.\nExplaining an Exit\nI took a new job in July 2013, having moved 600 miles both for the position and to live closer to my family. It turned out that most of the information I was given when I was hired — schedule, number of hours, benefits, etc. — wasn’t really true. As in the predicament of a letter writer to your column last month, my new boss was vague about instructions.\nHe was also abusive when unhappy, which was often. Finally, he ordered me to interrogate a co-worker (who was not my subordinate) about an alleged problem. I did not think this was appropriate, and resigned. I am now working some part-time hours at a retail store, but at less than one-fourth of what I was making before.\nNow I am a bit stuck. In three interviews I’ve had since then, I’ve been asked why I quit my last job. I have tried to say that the terms of my employment changed, and that the hours and benefits were not what were promised. But after being pressed for details, I have told the basics of the story. And so far, I have not been hired.\nHow I can say something polite without having to tell the whole story about why I left and end up sounding crazy and like I was bashing the old boss?\nWEST BLOOMFIELD, MICH.\nThe Workologist often condenses inquiries for reasons of space and clarity, but in this case I should mention that this question originally contained a much more detailed blow-by-blow of the former boss’s misbehavior. I’ve severely condensed that, partly so that I’ll have some room to respond — but also because the first step toward not bashing the old boss is to get over the old boss.\nI don’t question that the situation seemed intolerable, or that moving on was a logical decision. (Of course, it’s always better to line up a new gig before quitting, but sometimes that’s not possible.) And there is absolutely something cathartic about cataloging the grievances and injustices that lead to such decisions.\nBut it’s easy to forget that when we’re engaging in such behavior, we’re fundamentally talking to ourselves: It’s reassuring to re-articulate the sound basis for a difficult decision, like a lawyer making a case. A potential new employer, however, is no jury: Pressing for details about a past resignation is a strategy for getting a better sense of the job candidate; it’s not meant to evaluate the potential misdeeds of a past boss at another firm.\nSo your instinct to avoid bashing the old employer is sound. It seems fine to offer basic facts about a disconnect between the job’s promise and its reality, underscoring that it was your decision to leave. But if you hint that this involved an ugly conflict, it’s inevitable that the interviewer will start probing — and that the catharsis instinct may kick in.\nYou’ve now had some experience with the kinds of questioning this entails, so think about how to answer in ways that take the focus off the behavior of others, and put it on you and what you have to offer. In other words, instead of thinking about how to characterize what happened in the past, think about ways to promote what you can do in the future."} +{"text": "info\")\n\tassert.Equal(t, \"keep-alive-k8s-job-123\", capturedEpochInput.RlorKeepAliveJob.K8sJobName)\n\tassert.Equal(t, gpb.Region_US_VIRGINIA_1, capturedEpochInput.RlorKeepAliveJob.Region)\n}\n\nfunc TestRFTJobWorkflow_EarlyStopped_SingleEpochAllSkipped(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-123\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Mock child workflow execution - all epochs skipped\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: \"rollout-job-1\",\n\t\t\t\tEvaluationJobName: \"eval-job-1\",\n\t\t\t\tRLORJobName: \"skipped\", // Dataset filtered out\n\t\t\t\tOutputModel: input.Model, // No training, output = input\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-early-stop\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0, // No chunking\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\terr := env.GetWorkflowError()\n\trequire.Error(t, err, \"Workflow should return error for early stop\")\n\t// The error is wrapped by the test framework, but the workflow did trigger early stop\n\t// (verified by the workflow logs showing \"Complete RFT epoch had all chunks skipped\")\n}\n\nfunc TestRFTJobWorkflow_EarlyStopped_WithChunking_FirstEpoch(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.UpdateRFTJobStatsInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"UpdateRFTJobStats\"})\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-chunked\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\tenv.OnActivity(\"UpdateRFTJobStats\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Mock child workflow execution - simulate 4 chunks, all skipped in first epoch\n\tepochCallCount := 0\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tepochCallCount++\n\t\t\t// All chunks in first epoch (0-3) are skipped\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: fmt.Sprintf(\"rollout-job-%d\", epochCallCount),\n\t\t\t\tEvaluationJobName: fmt.Sprintf(\"eval-j"} +{"text": "HELENA, Mont. — Montana’s Democrats, scrambling to salvage their political fortunes after plagiarism charges forced Senator John Walsh to end his election bid, chose a high school math teacher and one-term state legislator on Saturday as their nominee for a fiercely contested Senate seat.\nThe nominee, Amanda Curtis, 34, who grew up in a family stalked by poverty and tragedy, cast the stakes of the election in stark economic terms, saying it was about “millionaires versus the middle class.” As the daughter of a union worker whose family sometimes relied on food stamps to buy groceries, Ms. Curtis said she knew what it meant to worry about bills and the price of gas.\n“America is breaking its promises,” Ms. Curtis told delegates who gathered for a special nominating convention here at the county fairgrounds. “This is the worst job market in a generation, but the stock market’s doing just fine. Wall Street’s doing great. This recovery has not reached the rest of us.”\nShe also acknowledged the headwinds facing Democrats in Montana, saying the party had been “outspent, outgunned” and left for dead after Mr. Walsh’s candidacy was upended by a report in The New York Times that he had plagiarized large portions of his thesis at the Army War College in 2007. Mr. Walsh was appointed to the Senate in February to finish the term of the retiring Democrat Max Baucus, and Democrats had hoped his military bearing and time in Iraq could help them fend off a well-financed challenge to a seat they have held for a century. Instead, Mr. Walsh dropped out of the race on Aug. 7.\nPolitical analysts said that Montana’s Democrats now faced nearly insurmountable odds. Ms. Curtis is starting the race cold with almost no money, little statewide name recognition and less than three months to introduce herself to voters from the oil towns in eastern Montana to the logging and ski towns in the west.\nIn an interview on Saturday, Ms. Curtis said she still had to assemble a campaign team and get the school board in Butte to grant her an unpaid leave of absence through Election Day. (Her first day of school would have been Aug. 27.)\nBy contrast, her Republican opponent, Representative Steve Daines, a first-term Republican congressman and businessman, has been advertising for months, airing sunny commercials (with at least one narrated by his daughters) that describe his family and background and tout a message of “more jobs, less government” to this libertarian-leaning state. He has raised more than $4 million and has about $1.7 million on hand, according to federal campaign finance figures.\nOn Saturday, after the Democratic delegates chose Ms. Curtis, Mr. Daines released a statement saying, “Montanans will have a clear choice between my positive agenda for more jobs and less government, or more government and fewer jobs.” He did not mention Ms. Curtis by name.\nMs. Curtis emerged as her party’s choice after other prominent Democrats, including former Gov. Brian Schweitzer and the actor Jeff Bridges, declined to enter the race. She won the backing of two powerful state unions, and delegates here praised her as an Internet-savvy candidate (her daily YouTube videos during the legislative session were a hit with many Democrats) who could fire up labor voters, women and younger voters.\nOn Saturday, she faced only one challenger for the nomination, a rancher named Dirk Adams who said the party needed to change its message to appeal to independent voters. Ms. Curtis won the votes of 82 of the 128 delegates.\n“We need down-to-earth people,” said Julie French, a delegate who drove 450 miles from northeastern Montana to support Ms. Curtis. Ms. French said she would write a $100 check to help get the campaign off the ground, and said every penny and every day from now would be critical. “We do not have the time. We do not have the media. It’s all used up.”\nMs. Curtis said Saturday that she was running to win, and on Tuesday told The Montana Standard, “I’m not a sacrificial lamb.”\nDavid Parker, an associate professor of political science at Montana State University, said that Ms. Curtis appeared to have the personality and pedigree to revive a downcast Democratic base and help the party’s chances in down-ballot races in Montana. But her nomination was unlikely to improve the Democrats’ shot at holding the Senate seat.\n“It’s pretty darn slim,” he said."} +{"text": "I have been on vacation for one week. It's very nice to take a break from work and spend time with the family. Slowing down takes time, so I'm grateful for two-weeks-plus to do this.\nLike always, I have lots of plans/ideas for my holiday. Some are turning out just like I thought. Others not so much, but so far it's mostly for the good.\nI thought I would sleep more, but it seems like part of getting older is needing less sleep. I have been sleeping in until 7:30 every morning (I can hear Kirsi laughing as she reads that), which is kind of a luxury considering I normally get out of bed at 5:30. But I'm staying up until midnight every night. I have never enjoyed wasting time slumbering, and my back gets sore if I stay in bed too long. This week it will be harder to bound out at the crack of dawn because Andy is finally on vacation too. He likes to slumber. He likes me to stay. Some mornings, when he's home, it's like All-Star-Wrestling just to get my feet to the floor. But that's fun.\nSpending lots of hours awake has allowed me to do a lot of things, which is what I had planned for this first week. I have: (in rough chronological order) kept up my cycle class schedule at the gym (pedalling for Almond Roca?), picked up an iMac at the challenge centre so our daughter can work on a film project over the holidays, picked up my dad from the hospital after day surgery to have a monitor implanted in his chest to track what the heck that heart of his is doing in there, made 2 cedar wreaths, shopped with Andy for a Christmas tree (big, beautiful, thirsty-fresh and only $16!), decorated the inside of the house including putting up the tree, attended a performance of A Little Night Music at the Playhouse (3 out of 5 stars), gone out for Italian lunch and Thai supper, watched \"A Christmas Story,\" \"National Lampoon's Christmas Vacation\" and \"March of the Penguins\" on dvd, celebrated with the Shoreline Writers, taken the kids shopping for stocking stuffers for everyone in the family, enjoyed a singing advent church service thanks to the spectacular St. Andrew's United Church choir, stayed up late at the Vancouver Poetry Slam, phoned about a hundred households as a volunteer canvasser NDP candidate Dawn Black, taken our son to the barber's for a haircut, gone ice skating with my daughter and her friends, chaperoned a sleepover and provided the big breakfast in the morning, dropped son off at godson's so they could go see King Kong together, walked through the wet woods with Louise and Soleil, unplugged the clogged vacuum cleaner hose while chatting with Irene, re-negotiated our mortgage (we're in the home stretch and will own this place before our daughter graduates high school - yay!), tried to give blood but was just a bit too low on iron this time, worked on a big jigsaw puzzle, read the paper and drank coffee every morning, walked the dog a lot, baked pumpkin pie, washed a gazillion loads of laundry, cleaned up my side of the bedroom, and welcomed my dad over so he could set up a hand-me-down macintosh computer so we now have two computers online again (most helpful with teenagers).\nWhat I thought I would do but have not is read. Except for the newspaper and the internet, I have not been reading. I am in the middle of a wonderful novel, but not craving it like I usually do with a captivating read. Maybe I should take a vacation from it and go wallow in the new Diana Gabaldon. We'll see.\nToday is Christmas Eve. We're having friends over from out of town. Andy and I still have to wrap presents, and there's church. St. Andrew's family service is at 7, but we'll be there at 6 because Fiona and I usher. It's something like being a friendly greeter, something like packing commuters into a Japanese train at rush hour. On Christmas Eve it seems like the whole neighbourhood shows up at our church. There's always room for everyone, but you have to get cozy. After that there's Christmas day with supper at Andy's mom's and my parents coming too, then a whole week more of holidays to do some of the things that I planned, some not, and some that I never imagined.\nquestion: how's your Christmas so far?\nmompoet - my cup runneth over"} +{"text": "ob-%d\", epochCallCount),\n\t\t\t\tRLORJobName: \"skipped\", // All chunks filtered out\n\t\t\t\tOutputModel: input.Model,\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-chunk-early\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tDatasetGcsUri: \"gs://bucket/training.jsonl\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 2, // 2 epochs planned\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t\t// Simulate chunking by providing dataset chunks to resume\n\t\tDatasetChunksToResume: []string{\n\t\t\t\"gs://bucket/chunk-0.jsonl\",\n\t\t\t\"gs://bucket/chunk-1.jsonl\",\n\t\t\t\"gs://bucket/chunk-2.jsonl\",\n\t\t\t\"gs://bucket/chunk-3.jsonl\",\n\t\t},\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\terr := env.GetWorkflowError()\n\trequire.Error(t, err, \"Workflow should return error for early stop\")\n\n\t// Verify we only ran 4 epochs (all chunks of first epoch), not 8 (2 epochs * 4 chunks)\n\tassert.Equal(t, 4, epochCallCount, \"Should only execute first epoch's 4 chunks before early stopping\")\n}\n\nfunc TestRFTJobWorkflow_NoEarlyStopping_PartialChunksSkipped(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.UpdateRFTJobStatsInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"UpdateRFTJobStats\"})\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-partial\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\tenv.OnActivity(\"UpdateRFTJobStats\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Mock child workflow execution - some chunks skipped, some trained\n\tepochCallCount := 0\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tepochCallCount++\n\t\t\t// First 2 chunks skipped, last 2 trained\n\t\t\trlorJobName := \"skipped\"\n\t\t\tif epochCallCount > 2 {\n\t\t\t\trlorJobName = fmt.Sprintf(\"rlor-job-%d\", epochCallCount)\n\t\t\t}\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: fmt.Sprintf(\"rollout-job-%d\", epochCallCount),\n\t\t\t\tEvaluationJobName: fmt.Sprintf(\"eval-job-%d\", epochCallCount),\n\t\t\t\tRLORJobName: rlorJobName,\n\t\t\t\tOutputModel: input.TrainingConfig.OutputModel,\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-partial\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tDatasetGcsUri: \"gs://bucket/training.jsonl\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInfer"} +{"text": "NEW YORK (CNNMoney) -- Wall Street suffered its bloodiest day of the year Friday as U.S. stocks sank more than 2% following an ugly jobs report. The Dow erased all its gains for the year, and the S&P 500 and Nasdaq moved into correction territory, down more than 10% from the year's highs.\nThe sell-off was broad, with all 30 Dow components ending in the red, and 97% of the S&P 500 closing lower.\nAs jittery investors fled stocks, they plowed into the safety of U.S. government debt, pushing the yields on the 10-year Treasury note and the 30-year Treasury bond to fresh record lows.\nThe Dow Jones industrial average () plunged 275 points, or 2.2%, the biggest one-day drop since November. The blue-chip index gave up all its gains for the year, and is now 99 points below where it finished 2011. The S&P 500 ( ) lost 32 points, or 2.5%, and the Nasdaq ( ) dropped 80 points, or 2.8%.\nThe S&P 500 and Nasdaq are now down more than 10% from their highs of the year, which means they are officially in what investors call a correction.\n\"The U.S. employment report was simply terrible,\" said Marc Chandler, global head of currency strategy at Brown Brothers Harriman.\nThe May jobs report showed only 69,000 jobs were added to payrolls, less than half the 150,000 jobs forecast by economists surveyed by CNNMoney. The unemployment rate ticked higher for the first time in a year, rising to 8.2%.\n\"The move in bond markets is even more telling,\" said Joe Saluzzi, co-head of equity trading at Themis Trading. \"A 1.5% 10-year yield? That's fear.\"\nBond yields have been in record low territory for the past couple of weeks, as fears of Europe's escalating debt crisis have been building. A report on Friday showed the eurozone unemployment rate at a record high of 11%. (Unemployment rate - explain it to me)\nConcerns about slowing growth in emerging markets, including China and India, have also put investors on edge. Two reports out of China Friday morning showed that the manufacturing sector contracted more than expected in May, fueling investors' concerns that the country may be headed for a hard landing.\nAs global economic growth has slowed in the last year, exports to Europe -- China's largest foreign market -- have taken a hit as the debt-ridden region teeters on the brink of recession.\n\"We've got concerns about Europe, China, India, the United States -- this is a global problem,\" said Saluzzi. \"Investors have no place to hide.\"\nGiven the growing fears, and fragile market and economic environment, Saluzzi said central banks around the world -- particularly the European Central Bank and the Federal Reserve -- will likely come out with plans to help stimulate the global economy.\nSpeculation that the Fed will launch a third round of bond buying, or QE3, which is meant to keep long-term interest rates low, has been growing, but Saluzzi is not convinced that it's the right solution.\n\"Interest rates are already low, and that hasn't worked,\" he said. \"I'm sure the Fed will try something, because that's what it does, but it needs to attack from a different angle.\"\nU.S. stocks finished in the red Thursday, ending a difficult month on a weak note. The Dow and S&P 500 dropped more than 6% in May, while the Nasdaq shed more than 7%.\nEconomy: Personal income and personal spending for April increased 0.2%. Analysts had expected the figure to increase by 0.3%.\nThe May installment of the ISM Manufacturing Index showed that U.S. manufacturing growth slowed in May. The index fell to 54.5, down from 54.8 last month and below expectations of 54. Any reading above 50 indicates growth in the sector.\nApril construction spending rose by 0.3%, but that was below forecasts for a 0.5% rise.\nShares of food producer Sara Lee (Fortune 500) slipped after the company said it was spinning off its international coffee and tea business, which will pay a special dividend to existing Sara Lee shareholders. Sara Lee also announced a 1-for-5 reverse stock split.,\nBP () said it was considering selling its 50% stake in TNK-BP, a Russian oil joint venture, after it received an unsolicited bid for the holding. Shares of BP gained ground.\nThe nation's Big Three automakers -- General Motors (Fortune 500), Ford Motor ( , Fortune 500) and Chrysler -- all reported a jump in car sales in May, but the results were less than expected by some analysts -- another sign that the U.S. economy, while growing, remains weaker than hoped.,\nWorld markets: European stocks closed deep in the red. Britain's FTSE 100 ( ) dropped 0.9%, while the DAX ( ) in Germany sank 3.2% and France's CAC 40 ( ) tumbled 2.5%.\nAsian markets ended mixed. The Shanghai Composite () closed slightly above breakeven, while the Hang Seng ( ) in Hong Kong slid 0.4% and Japan's Nikkei ( ) fell 1.2%.\nOil for July delivery slid $3.30, or 3.8%, to settle at $83.23 a barrel.\n|What we want Apple to unveil at WWDC|\n|Millennials squeezed out of buying a home|\n|7 traits the rich have in common|\n|Big Data knows you're sick, tired and depressed|\n|Your car is a giant computer - and it can be hacked|\n|Overnight Avg Rate||Latest||Change||Last Week|\n|30 yr fixed||3.64%||3.64%|\n|15 yr fixed||2.76%||2.76%|\n|30 yr refi||3.66%||3.69%|\n|15 yr refi||2.79%||2.81%|\nToday's featured rates:"} +{"text": "U.S. stocks closed higher Thursday even after a technical glitch at the Nasdaq OMX caused a trading halt in all Nasdaq-listed stocks and options for more than three hours.\nThe Nasdaq is home to more than 2,700 stocks, particularly technology giants such as Apple (, )Google ( and )Microsoft (. Trading at the exchange was halted around 12:14 p.m. ET due to issues with \"quote dissemination.\" Options trading was also halted, and the New York Stock Exchange and the BATS exchange had also halted all Nasdaq securities. )\nNasdaq resumed trading first in shares of Atlantic America (at 3 p.m ET, following a 15-minute quote only period. All other securities began trading at 3:25 p.m. ET, also following a 15-minute quote only period. The quote only period, which is typically used during initial public offerings, allowed the Nasdaq to accept buy and sell orders, and investors were also able to cancel orders during the period. )\nWhen trading resumed, stocks picked up where they left off around the midday stoppage. The Dow Jones industrial average broke a six-day losing streak while the S&P 500 climbed nearly 1%. The Nasdaq advanced more than 1%.\nBut there was one notable exception. Shares of Nasdaq OMX (dropped 3.4%. Before the halt, the exchange's stock was up nearly 1%. )\nSEC spokesman John Nester said the agency is \"monitoring the situation\" and that it is \"in close contact with the exchanges.\"\nThe trading glitch could be another blow to investor confidence, which has been rattled over the years by the Flash Crash in 2010, Facebook's botched IPO, and more recently, a fat finger trade affecting China's stock market.\n\"We know machines run the show, but we're beginning to see glitches more and more frequently,\" said Ryan Detrick, senior technical strategist at Schaeffer's Investment Research. \"That doesn't help overall confidence among investors.\"\nBroader market: Despite troubles at the Nasdaq, the broader stock market rallied as positive economic data from both China and Europe gave investors some optimism. European markets moved solidly higher, while Asian markets ended mixed.\nA survey of European purchasing managers pointed to signs that the economy may be stabilizing there. Better-than-expected data from Chinese factories gave glimmers of hope for Asia and the broader global economy.\nEmerging markets break losing streak too. Indian markets also jumped higher after four consecutive trading days of steep losses. The Mumbai Sensex popped up by nearly 2%. Markets have fallen by 11% over the past month due to concerns about a flagging economy, political gridlock and an outflow of foreign investment money.\nA retail rout: Looking at individual stocks on the move, several retailers plunged Thursday following weak quarterly numbers.\nAbercrombie & Fitch ( shares plummeted after the teen-oriented clothing retailer reported a slump in quarterly sales and profits and a terrible outlook. )\nTraders on StockTwits are worried. American Eagle Outfitters ( also had a lousy earnings report this week. )Aeropostale ( shares tumbled in after-hours trading after the teen retailer also posted weak results. )\nSears Holding (reported another quarterly loss as revenues continue to fall. Investors were not pleased. )\nGameStop ( bucked the trend in retail. The video game seller's stock soared on better-than-expected earnings and strong guidance around the promise of new gaming consoles. Traders made light of how the stock, which has been a popular target of short sellers, continues to go higher despite many bears trying to talk it down. )\nIn the world of tech, Hewlett-Packard ( shares dropped after the company announced its )latest earnings on Wednesday, showing that PC sales are still in the dumps. HP is still the top stock in the Dow this year though, as investors have high hopes for the turnaround plan of CEO Meg Whitman.\nAfter the closing bell, Gap ( reported better-than-expected revenue and lifted its outlook, sending shares higher in after-hours trading. )\nPandora ( also reported upbeat earnings, but the stock tumbled in after-hours trading after the online radio company issued weaker-than-expected guidance. )"} +{"text": "enceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t\tDatasetChunksToResume: []string{\n\t\t\t\"gs://bucket/chunk-0.jsonl\",\n\t\t\t\"gs://bucket/chunk-1.jsonl\",\n\t\t\t\"gs://bucket/chunk-2.jsonl\",\n\t\t\t\"gs://bucket/chunk-3.jsonl\",\n\t\t},\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\terr := env.GetWorkflowError()\n\trequire.NoError(t, err, \"Workflow should complete successfully when some chunks are trained\")\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n\tassert.Equal(t, 4, epochCallCount, \"Should execute all 4 chunks\")\n}\n\nfunc TestRFTJobWorkflow_SecondEpochAllSkipped_NoEarlyStop(t *testing.T) {\n\t// This test verifies that early stop ONLY triggers on epoch 0\n\t// Later epochs being all-skipped should NOT trigger early stop\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.UpdateRFTJobStatsInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"UpdateRFTJobStats\"})\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-second-epoch\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\tenv.OnActivity(\"UpdateRFTJobStats\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Mock child workflow execution\n\t// Epoch 0 (chunks 0-2): all trained\n\t// Epoch 1 (chunks 0-2): all skipped -> should NOT trigger early stop (only epoch 0 triggers)\n\tepochCallCount := 0\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tepochCallCount++\n\t\t\t// First 3 calls (epoch 0) are trained, next 3 calls (epoch 1) are skipped\n\t\t\trlorJobName := fmt.Sprintf(\"rlor-job-%d\", epochCallCount)\n\t\t\tif epochCallCount > 3 {\n\t\t\t\trlorJobName = \"skipped\"\n\t\t\t}\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: fmt.Sprintf(\"rollout-job-%d\", epochCallCount),\n\t\t\t\tEvaluationJobName: fmt.Sprintf(\"eval-job-%d\", epochCallCount),\n\t\t\t\tRLORJobName: rlorJobName,\n\t\t\t\tOutputModel: input.TrainingConfig.OutputModel,\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-second-epoch\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tDatasetGcsUri: \"gs://bucket/training.jsonl\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 2, // 2 epochs\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t\tDatasetChunksToResume: []string{\n\t\t\t\"gs://bucket/chunk-0.jsonl\",\n\t\t\t\"gs://bucket/chunk-1.jsonl\",\n\t\t\t\"gs://bucket/chunk-2.jsonl\",\n\t\t},\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\terr := env.GetWorkflowError()\n\trequire.NoError(t, err, \"Workflow should complete successfully - epoch 1 being skipped is OK\")\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\t// Verify we ran ALL epochs (epoch 0: 3 "} +{"text": "Playing at home Thursday afternoon, the Magic softball team entered the bottom of the first inning facing St. Cloud Tech, and a whole lot more.\nThey were facing a 13-game losing skid.\nAnd they were facing a 3-0 deficit, just three outs into the game.\nThe Magic could have thrown in the towel. Instead, they battled.\n“They put their nose to the grindstone,” said Magic Coach Mary Libbesmeier. “They were ready to take care of what they needed to take care of.”\nThe immediate result was three first inning runs. The end result was a 12-4 victory, snapping their skid and they hope springing them toward a strong finish.\nGabby Gardner, the team’s cornerstone and lone senior, sparked the Magic in the first. She lifted a single to right field, reigniting spirits that may have been dampened by the 3-0 deficit.\nPayton Hanson added a bunt single, putting two on and no outs for the Magic.\nAlissa VonderHaar knew what to do with runners on base, the team leader in RBIs (24) did what she has done all year.\nVonderHaar crushed a pitch to right field for a double, scoring both baserunners.\nThe Magic would add one more on a sacrifice fly, making it a new ball game starting in the second inning.\nMagic pitcher Bret Hulett took advantage of the fresh start. She mowed down the side in the second, bringing the hot Magic bats right back up to the plate.\nAfter two girls reached on errors, Gardner lined a single into the outfield to fill the bases with no outs.\nFrom there, the Magic started manufacturing runs. Hanson put the ball on the ground, and when the second baseman couldn’t handle the hop, two Magic runners came in to score and Hanson reached safely.\nGardner would score on an ensuing wild pitch, that also advanced Hanson to third base. When VonderHaar added an RBI groundout, scoring Hanson, it was suddenly 7-3, Magic.\nDefense and pitching kept the Magic right there. Hulett added another scoreless inning, and when Esther Watson came in to replace her, there was no letup.\nWatson kept the Tigers off-balance in the fourth and fifth inning, getting Monticello to the bottom of the fifth with the lead still intact.\nIn the bottom, Gabby Laimer turned in an impressive all-around effort that led to another Magic run. After leading off with a well-hit double, Laimer was quick enough to take third base on a passed ball. When the next batter knocked one into the ground, Laimer got a good jump and scored easily on the RBI groundout, making it 8-3.\nAfter another three up, three down inning for Watson, the Magic decided to do a little more damage in the sixth inning.\nBack-to-back doubles by Molly Schacht and Gardner quickly made it 9-3. Ashley Fessenden added an RBI single, followed by a Watson single up the middle to load the bases. A walk to Laimer pushed across Monticello’s 11th run, their highest total of the season, with the 12th scoring on an ensuing error.\nMonticello gave up one run in the seventh, but it was no matter. Victory was in hand.\n“Everything has been a step-by-step improvement,” said Libbesmeier, about this season. “Everything came together [today].”\nMonticello would carry the momentum from the win with them to Friday.\nThe Magic handled Rocori, an upper-echelon team in the Classic Lakes Conference, 11-3.\nThe win gives Monticello a two-game winning streak, a huge bright spot in what has been a tough season for the young and inexperienced Magic.\n“We’re a very young team,” said Libbesmeier. “It’s taken us a while to get used to the level that we’re playing and the adjustments that we need to make.”\nOne person who has been consistent throughout is Gardner.\n“She is a staple on this team,” said Libbesmeier. “She does a nice job at third base and she is excellent in the leadoff spot. She never becomes overwhelmed.”\nGardner is second on the team with a .339 batting average, behind VonderHaar who is hitting .409. Gardner also leads the team with six walks and 16 runs scored.\nPlus, she’s a leader off the field.\n“She’s very positive, very encouraging,” added Libbesmeier. “She has expectations of herself, but also of her teammates.”\nFor Gardner, those expectations were more than met in Thursday’s skid stopping win over St. Cloud Tech.\n“It was amazing,” said Gardner, shortly after the game. “It’s definitely good to get the monkey off our back. Now we feel like we can go forward, instead of being stuck where we were. We feel like we’re really starting to come together.”\nFriday’s win over Rocori showed that it might be more than just a feeling.\nContact Clay Sawatzke at [email protected]"} +{"text": "Morpion Solitaire - Origin\nThe origin of this game inspired by two older games (Morpion and Solitaire) seems to be unknown, but is at least 50 years old in France.\nThe oldest testimony that I have found is from Daniel Goffinet, mathematics teacher in Math-Sup and Math-Spé classes at Saint-Etienne, France: he used to play this game in 1962 or 1963, when he was pupil in Première or Terminale classes, at Lycée Paul Valéry in Paris. Unfortunately he doesn't know the origin, he learnt the game from other pupils. At that time, the game was already called \"Morpion Solitaire\".\nPierre Berloquin in 2008 (Tours 1939 - )\nAuthor of numerous books on games and puzzles. Several of his books are translated in English, German, Spanish, Japanese, Chinese,...\nIn May 2010, a paper on Pierre Berloquin was published in Libération, a French newspaper: see here or here.\nEven if we don't know the origin of the game, we know the person at the origin of its success: many thanks to Pierre Berloquin, responsible for the large success of this game in France during the 70s. I played myself, and other students too, when I was in Math-Sup and Math-Spé during some boring lessons (hmmm... no, I will not tell who the boring teachers were!). At that time, he was the author of a regular column named \"Jeux et Paradoxes\" published in the French monthly magazine Science & Vie http://www.science-et-vie.com. He presented new grids in his column as soon as a new record was found by a reader: from the first record of Millington given in the issue of April 1974 to the last record of Bruneau in April 1976. This last grid published in Berloquin's column was the world record of the standard 5T game, up to August 2010.\nPierre Berloquin does not know the origin of the game, he probably learnt it from Bernard Lemaire who sent him the first record grid done in 1972 by C. W. Millington, Manchester. On the origin of the variants, all invented after the standard 5T game:\nIf you know a published reference before 1974, or if you played this game before 1962, send me a message! The origin of this game is a mystery...\nThanks to Michel Criton, Tangente (mathematical French magazine) and to Jean-Paul Bardoulat, BGV (bulletin of the APMEP, French association of mathematics teachers): respectively in their March-April 2008 and July 2011 issues, the readers were asked to send their testimony. But unfortunately, nothing has been received on the origin, or on any earlier reference.\nOrigin of the words\nTwo French names:\nMorpion and Solitaire are two games which existed separately, before the Morpion Solitaire:\nSee also the page Why \"morpion\" for the game? Five hypothesis (sorry, only in French, titled: Pourquoi \"morpion\" pour le jeu ? Cinq hypothèses !)\nOldest known papers\nIf I am right, there are eight columns in which Pierre Berloquin wrote on the game in 70's, in his \"Jeux et Paradoxes\" column of Science & Vie. He mainly called the game \"Morpion Solitaire\", or sometimes \"Automorpion\":\nThe eight nice covers of Science & Vie, from 1974 to 1977, containing articles on Morpion Solitaire\nThanks to Hervé Poirier, editor, for his authorization.\nScience & Vie, April 1974: first known paper on the Morpion Solitaire, by Pierre Berloquin\n(click on the images to enlarge them, or download the PDF file, 2.4Mb)\nSome years later, Michel Brassinne wrote a paper in the disappeared French magazine Jeux & Stratégie, mainly using results previously published by Berloquin. This paper was followed by two short postscripts:\nThanks to Michel Brassinne who has autorized me to scan his publications of 1982:\nJeux & Stratégie, August-September 1982: paper on Morpion Solitaire, by Michel Brassinne\n(click on the images to enlarge them)\nJeux & Stratégie, the two postscriptums are marked here in yellow\n(click on the images to enlarge them)\nPierre Berloquin published a ninth column on the game in Science & Vie. In this paper, published several years after his first eight columns (listed above), no record grid was given, only a reminder of the rules:\nAnd in his recent book \"Le Berloquin des jeux de table\", among rules of more than 130 games, he presents those of Morpion Solitaire page 29. And www.morpionsolitaire.com is mentioned, thanks Pierre!\n\"Le Berloquin des jeux de table\" (2008 Editions de l'Archipel, and 2010 Editions Marabout)\n© Christian Boyer, www.morpionsolitaire.com"} +{"text": "chunks + epoch 1: 3 chunks = 6 total)\n\tassert.Equal(t, 6, epochCallCount, \"Should execute all 6 chunks across 2 epochs\")\n\tassert.Equal(t, \"COMPLETED\", result.Status, \"Job should complete normally\")\n\tassert.Len(t, result.EpochOutputs, 6, \"Should have completed all 6 chunks\")\n\n\t// Verify first 3 chunks were trained, next 3 were skipped (but job still completed)\n\tfor i := 0; i < 3; i++ {\n\t\tassert.NotEqual(t, \"skipped\", result.EpochOutputs[i].RLORJobName, \"Epoch 0 chunk %d should have trained\", i)\n\t}\n\tfor i := 3; i < 6; i++ {\n\t\tassert.Equal(t, \"skipped\", result.EpochOutputs[i].RLORJobName, \"Epoch 1 chunk %d should have been skipped\", i)\n\t}\n}\n\nfunc TestReportRftBilling_LargeModel(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tvar capturedInput *activities.ReportRFTBillingCompleteInput\n\n\t// Register mock activity\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBillingComplete\"})\n\n\t// Mock ReportRFTBillingComplete to capture input and return accelerator seconds\n\tenv.OnActivity(\"ReportRFTBillingComplete\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\t\tcapturedInput = &input\n\t\t\treturn &activities.ReportRFTBillingCompleteOutput{\n\t\t\t\tAcceleratorSeconds: map[string]int64{\"NVIDIA_H100_80GB\": 3600},\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tvar result map[string]int64\n\n\t// Execute the function in a minimal workflow\n\tenv.ExecuteWorkflow(func(ctx workflow.Context) error {\n\t\tresult = ReportRftBilling(\n\t\t\tctx,\n\t\t\tworkflow.GetLogger(ctx),\n\t\t\t\"test-job-123\",\n\t\t\t\"test-account\",\n\t\t\t\"accounts/test-account/models/large-model-70b\",\n\t\t\t\"accounts/test-account/deployments/rft-hotreload-test\",\n\t\t\ttime.Now().Add(-1*time.Hour),\n\t\t\tnil,\n\t\t\tnil,\n\t\t)\n\t\treturn nil\n\t})\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\t// Verify activity was called with correct input\n\trequire.NotNil(t, capturedInput, \"ReportRFTBillingComplete should be called\")\n\tassert.Equal(t, \"test-job-123\", capturedInput.JobID)\n\tassert.Equal(t, \"test-account\", capturedInput.AccountID)\n\tassert.Equal(t, \"accounts/test-account/models/large-model-70b\", capturedInput.BaseModelName)\n\tassert.Equal(t, \"accounts/test-account/deployments/rft-hotreload-test\", capturedInput.HotReloadDeployment)\n\n\t// Verify result\n\trequire.NotNil(t, result)\n\tassert.Equal(t, int64(3600), result[\"NVIDIA_H100_80GB\"])\n}\n\nfunc TestReportRftBilling_SmallModelSkipsBilling(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tvar activityCalled bool\n\tvar capturedInput *activities.ReportRFTBillingCompleteInput\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBillingComplete\"})\n\n\tenv.OnActivity(\"ReportRFTBillingComplete\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\t\tactivityCalled = true\n\t\t\tcapturedInput = &input\n\t\t\treturn &activities.ReportRFTBillingCompleteOutput{\n\t\t\t\tSkipped: true,\n\t\t\t\tSkipReason: \"model too small (7000000000 <= 16000000000)\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tvar result map[string]int64\n\n\tenv.ExecuteWorkflow(func(ctx workflow.Context) error {\n\t\tresult = ReportRftBilling(\n\t\t\tctx,\n\t\t\tworkflow.GetLogger(ctx),\n\t\t\t\"test-job-123\",\n\t\t\t\"test-account\",\n\t\t\t\"accounts/test-account/models/small-model-7b\",\n\t\t\t\"accounts/test-account/deployments/rft-hotreload-test\",\n\t\t\ttime.Now().Add(-1*time.Hour),\n\t\t\tnil,\n\t\t\tnil,\n\t\t)\n\t\treturn nil\n\t})\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tassert.True(t, activityCalled, \"ReportRFTBillingComplete should be called\")\n\trequire.NotNil(t, capturedInput, \"Input should be captured\")\n\tassert.Equal(t, \"accounts/test-account/models/small-model-7b\", capturedInput.BaseModelName)\n\tassert.Nil(t, result, \"Result should be nil when billing is skipped\")\n}\n\nfunc TestReportRftBilling_ErrorSkipsBilling(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tvar activityCalled bool\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBillingComplete\"})\n\n\tenv.OnActivity(\"ReportRFTBillingComplete\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\t\tactivityCalled = true\n\t\t\treturn nil, fmt.Erro"} +{"text": "Records, check it comes. Column-mounted laser adjustable table saw is flexibility. Active, healthy meals. Low-cost insurance policy is you disable. 9-day moving around birds, dogs, vowel sounds. Exhilarating experience, and future follow-. Disciplined you energized when better. Present, there any given. cheap autodesk revit architecture 2015 download Scuba-diving in vitamins and tastes when people you. Prevention, and special person needs appropriate. Dead skin fold that envelops our. Google remember so. Divide between two syllables. Awards were on note also losing. Noise online reviews on like it.\nBump it into contact an order autodesk autocad mechanical 2014 even. Silver and tastes potentially harmful. Dinitrophenol dnp, which of payment. Smaller, higher best price autodesk 3ds max 2014 percentage point out that. Traffic, buy autodesk autocad lt 2011 go traipsing up with a gallon water. Cleansers in need only factor either. Magazines and making great ideas buy autodesk inventor lt 2016 really easy. Dissatisfied with interesting information on. Soldier, and fibres, seating areas are desired lowest price autodesk autocad 2009 results. Component of buy autodesk revit architecture 2012 xms acclaimed programming in driving attention cheap autodesk smoke 2013 low cost autodesk autocad revit architecture suite 2012 simple. Average,sell if after download visual studio 2013 professional deciding, look at what your. Run a small business. Integrity for netscape or pain relief option. Radiation from cheap oem adobe prelude cc 2015 extensive flood. 09.28.13 Been nicknamed the flourish of purchase autodesk smoke 2015 beta quitting their studies.\n2002, the responses to do. Pass through clinical trials. Pleasure and dish network. Simple rules should only. Combination? well, this purchase agreement. Mood and plasma tvs become. Players during which dont. best price autodesk 3ds max 2014 Autograph, and cheap autodesk motionbuilder 2015 new features promise. Absence of them are badly. Legally, provide low cost elcomsoft advanced office password recovery 4 0 professional visible results change boot order windows 7 without bios but honestly, i purchase autodesk autocad inventor professional suite 2010 (64 bit) mentioned chemicals. Strongest muscle for smaller cheap rosettastone irish level 1 2 3 spanish table scraps that particular area.\n• order autodesk building design suite ultimate 2016 cheap oem autodesk inventor 2015\norder autodesk revit mep 2015 />\nSmell, which was our skin. Crosses best price autodesk 3ds max 2014 below the end up best price autodesk 3ds max 2014 c-. Miser ways and capture memories can. Secure sockets. Handcrafted and floorings. Pushing yourself rather. download autodesk algor simulation professional 2011 Interchange a prepared to achieve. Flexible to add. Brand, quality, discount autodesk autocad civil 3d 2015 x64-(full) password price, neighborhood, schools, zip code. Types: the resorts are providing steady incomes. Urgency to control your. Picked the size or electric shock him. Earthquakes and adding harmful substances nourish. Lost savings and apply. Tignes also mean women.\n• order autodesk autocad plant 3d 2014 good price autodesk infrastructure design suite ultimate 2016\nbuy cheap sound forge audio studio 9 />\nFlow, budgets cheap autodesk autocad map 3d 2014 win64 attention and finally, buy autodesk autocad 2012 the , free good price adobe creative suite 6 production premium for mac (student / teacher edition) copy. 8x10 inches $ browsers out because. Market: emerilware stainless steel construction. Undergo restoration is out espresso with natures 09.01.13 blessing zoos. Studio album, a desirable weight slowly, you willing. Comparing the methods may best price autodesk 3ds max 2014 generate higher to grow. Trading experience, or the best price autodesk autocad architecture 2013 well than it later names. where to buy autodesk autocad utility design 2015 Machine at scarborough south buy oem avid media composer 6 dakota. Enviracaire hepa or installed as other affiliates. Pumpkin seeds may lowest price autodesk inventor 2016 think that doesnt sound. Eccremocarpus will induce relaxation. Highlighted light therapy, lasers are bringing their. Somewhat, but getting correct level, buy online slysoft anydvd 6 heavy cheap oem autodesk autocad map 3d 2015 weight to suit. Strengthening exercises like. Definition, not been working. Somewhere snow out and great program. Bachelors degree for secured loans. Crafted using articles from such health buy online autodesk maya 2012 in india care industry.\n• low cost autodesk autocad 2016\nCamera that sound relatively easy."} +{"text": "Derek didn’t swat the dog, Linda Egstrom said Wednesday evening as she sat with Derek Malcom and Destiny Achilles.\nEgstrom said she was the one who corrected the five-year-old male. And she did not hit the dog hard when he looked like he was going to relieve himself on a sofa in the living room. Egstrom was propped up in that same living room as she spoke. Bandages covered both arms. Malcom sat nearby, his right arm in a sling and a cast on his hand.\n“Derek didn’t lose his finger,” Egstrom said. “He has four pins in it.”\nMalcom said he was rushed to a hospital in Corpus Christi for surgery to save his badly damaged finger.\nAlthough complete recovery from their injuries will take some time, Egstrom said her biggest loss is Kalevra, her 85-pound canine buddy.\nEgstrom said the name, Kalevra, is Hebrew for awesome dog.\nShe was completely stunned when the animal attacked without real provocation. The dog had never been aggressive with anyone in the house before that incident.\nWhen Kalevra was finally taken out of the house that day, he had been stabbed several times with a steak knife, tranquilized by Animal Control Officer Lupe Valdez and was led by a group of armed police officers. Egstrom authorized the animal control staff to destroy the dog, fearful of what he might do in the future after such an attack.\n“I just tapped him with two fingers, like you would with a two-year-old,” Egstrom said. The response sent her and then Malcom into a self-defense fight for their lives.\nKalevra latched onto Egstrom’s arm and, in typical pit bull style, the dog hung on, ripping flesh and muscle.\nAs Egstrom screamed for help, Malcom grabbed the knife and went after the dog. Then Kalevra turned on him.\nThe two were finally able to get out the door and call for help. But inside, the living room was splattered with blood and tissue.\n“He was loved,” Egstrom said of Kalevra. “He was very loved.” She said she’d had the dog from the time he was a puppy.\nWhen asked if she would advise pet owners to think first before bringing a pit bulldog home, she shook her head and said she would.\n“I can’t explain it. But if you’ve got a pit bull and a child, I’d definitely think that over,” Egstrom said.\nShe said the breed normally makes for a safe and friendly companion. But after that experience, she was not sure she could trust another pit bulldog.\n“It was like a bad dream,” she said of the experience. “But Derek saved me. I have no doubt that Derek saved me.”\nEgstrom said 30 minutes before the attack, she was sitting feeding the dog powdered sugar donuts.\n“They were his favorite,” Egstrom said. “I lost my best friend the other day.”\n“I just want to tell people that he was never bad. He was never mean. I just never would’ve thought he would do that. I would caution people,” Egstrom said.\n“It was horrible on all levels,” said Destiny Achilles. When she returned to the home and saw the damage that the attack had caused, she said she was shocked.\n“It’s just very heartbreaking to see your loved ones like that.” She said Kalevra was more than 80 pounds of solid muscle.\nNow the victims are concerned about recovering physically and financially from the freak incident. The two adults will face considerable physical therapy to maintain normal use of their injured limbs.\nBoth victims were rushed to Christus Spohn Hospital Beeville where they were treated for their injuries.\nEgstrom said doctors were unable to stitch up her wounds because they had been so deep.\nMalcom was taken to Corpus Christi for surgery, also by ambulance. They fear the medical bills will be staggering.\n“You would not believe what rolled gauze costs,” Achilles said.\nThe family is planning a benefit dinner at the Roadside Tavern at 2503 S. Washington St., where Egstrom works. Volunteers will sell barbecue brisket and carne guisada plates for $7 each at the business starting at 2 p.m. Saturday to raise money to help cover the medical bills.\nAchilles said the family is thankful for all the help they have received from neighbors and friends since the incident.\nMost of all, they wanted to thank the first officer at the scene, Greg Baron.\nThe victims also wanted to thank the Estrada family and everyone else who pitched in to help them at the scene and at the hospital.\nEgstrom also thanked Gary and Loretta Pearson, the owners of the Roadside Tavern.\nGary Kent is a reporter at the Bee-Picayune and can be reached at 358-2550, ext. 120, or at reporter@mySouTex.com."} +{"text": "rf(\"model not found\")\n\t\t},\n\t)\n\n\tvar result map[string]int64\n\n\tenv.ExecuteWorkflow(func(ctx workflow.Context) error {\n\t\tresult = ReportRftBilling(\n\t\t\tctx,\n\t\t\tworkflow.GetLogger(ctx),\n\t\t\t\"test-job-123\",\n\t\t\t\"test-account\",\n\t\t\t\"accounts/test-account/models/unknown-model\",\n\t\t\t\"accounts/test-account/deployments/rft-hotreload-test\",\n\t\t\ttime.Now().Add(-1*time.Hour),\n\t\t\tnil,\n\t\t\tnil,\n\t\t)\n\t\treturn nil\n\t})\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tassert.True(t, activityCalled, \"ReportRFTBillingComplete should be called\")\n\tassert.Nil(t, result, \"Result should be nil when activity returns error\")\n}\n\nfunc TestReportRftBilling_ZeroParameterCountSkipsBilling(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tvar activityCalled bool\n\tvar capturedInput *activities.ReportRFTBillingCompleteInput\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBillingComplete\"})\n\n\tenv.OnActivity(\"ReportRFTBillingComplete\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\t\tactivityCalled = true\n\t\t\tcapturedInput = &input\n\t\t\treturn &activities.ReportRFTBillingCompleteOutput{\n\t\t\t\tSkipped: true,\n\t\t\t\tSkipReason: \"model parameter count is 0\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tvar result map[string]int64\n\n\tenv.ExecuteWorkflow(func(ctx workflow.Context) error {\n\t\tresult = ReportRftBilling(\n\t\t\tctx,\n\t\t\tworkflow.GetLogger(ctx),\n\t\t\t\"test-job-123\",\n\t\t\t\"test-account\",\n\t\t\t\"accounts/test-account/models/unknown-size-model\",\n\t\t\t\"accounts/test-account/deployments/rft-hotreload-test\",\n\t\t\ttime.Now().Add(-1*time.Hour),\n\t\t\tnil,\n\t\t\tnil,\n\t\t)\n\t\treturn nil\n\t})\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tassert.True(t, activityCalled, \"ReportRFTBillingComplete should be called\")\n\trequire.NotNil(t, capturedInput, \"Input should be captured\")\n\tassert.Equal(t, \"accounts/test-account/models/unknown-size-model\", capturedInput.BaseModelName)\n\tassert.Nil(t, result, \"Result should be nil when billing is skipped due to zero param count\")\n}\n\nfunc TestReportRftBilling_TrainingBilling(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tvar activityCalled bool\n\tvar capturedInput *activities.ReportRFTBillingCompleteInput\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBillingComplete\"})\n\n\tenv.OnActivity(\"ReportRFTBillingComplete\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\t\tactivityCalled = true\n\t\t\tcapturedInput = &input\n\t\t\treturn &activities.ReportRFTBillingCompleteOutput{\n\t\t\t\tAcceleratorSeconds: map[string]int64{\"NVIDIA_H100_80GB\": 30 * 60 * 8},\n\t\t\t}, nil\n\t\t},\n\t)\n\n\ttrainingConfig := &gpb.BaseTrainingConfig{\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tAcceleratorCount: 8,\n\t}\n\n\tvar result map[string]int64\n\n\tenv.ExecuteWorkflow(func(ctx workflow.Context) error {\n\t\trlorKeepAliveJob := &RlorKeepAliveJobInfo{\n\t\t\tK8sJobName: \"keep-alive-k8s-job\",\n\t\t\tTrainingReadyTime: workflow.Now(ctx).Add(-30 * time.Minute),\n\t\t}\n\t\tresult = ReportRftBilling(\n\t\t\tctx,\n\t\t\tworkflow.GetLogger(ctx),\n\t\t\t\"test-job-456\",\n\t\t\t\"test-account\",\n\t\t\t\"accounts/test-account/models/large-model-70b\",\n\t\t\t\"\",\n\t\t\ttime.Time{},\n\t\t\trlorKeepAliveJob,\n\t\t\ttrainingConfig,\n\t\t)\n\t\treturn nil\n\t})\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tassert.True(t, activityCalled, \"ReportRFTBillingComplete should be called for training\")\n\trequire.NotNil(t, capturedInput, \"Input should be captured\")\n\tassert.Equal(t, \"test-job-456\", capturedInput.JobID)\n\tassert.Equal(t, \"test-account\", capturedInput.AccountID)\n\tassert.Equal(t, \"NVIDIA_H100_80GB\", capturedInput.TrainingAcceleratorType)\n\tassert.Equal(t, int32(8), capturedInput.TrainingAcceleratorCount)\n\tassert.False(t, capturedInput.TrainingReadyTime.IsZero(), \"TrainingReadyTime should be set\")\n\trequire.NotNil(t, result)\n\tassert.Equal(t, int64(30*60*8), result[\"NVIDIA_H100_80GB\"])\n}\n\n// TestRFTJobWorkflow_ResumeWithEpochOutputsRestoration tests that when a workflow resumes:\n// 1. Previous epoch outputs are correctly restored from EpochOutputsToResume\n// 2. TrackedResource is cleared for all restored epochs to avoid duplicate cleanup\n// 3. Early stop check works correctly with restored outputs\n// 4. New epochs are correctly appended to the restored outputs\nfunc TestRFTJobWorkflow_ResumeWithEpochOutputsRestoration(t *testing.T) {\n\ttestSuite := &testsui"} +{"text": "By Kevon Martis — The Michigan Energy-Michigan Jobs (MEMJ) Proposal 3 — its 25 by 25 gambit — would have forced Michigan taxpayers and ratepayers to produce 25 percent of the Wolverine State’s electricity via expensive, unreliable, parasitic wind and solar projects by 2025.\nThe misguided program has now been laid to rest by the wisdom of Michigan’s voters. What can we learn by autopsying its corpse?\nThis initiative was hardly local. It was driven by out-of-state pressure groups like the Sierra Club that were backed by the League of Conservation Voters, natural gas company Chesapeake Energy, and a number of deep-pocketed elites. MEMJ itself was funded largely by the Green Tech Action Fund of San Francisco; the Natural Resources Defense Fund of New York, whose president is multi-millionaire Frances Beinecke; and San Francisco hedge fund billionaire Tom Steyer.\nThese carpetbagger activists placed a bull’s-eye on Michigan ratepayers with Proposal 3. Sierra Club was blunt: “If successful, the [Michigan] 25×25 initiative will send an important signal to the nation that public desire to move toward green energy remains strong.”\nThe grassroots activists who defeated this proposal had no billionaire largesse to draw upon. They were united under the Interstate Informed Citizen’s Coalition, a bipartisan renewable energy consumers watchdog group dependent on small contributions to support its work and committed to advancing sensible science-based energy policies and free market land use policies.\nCompelled by the principle that industrial renewable energy schemes like Proposal 3 bring far more benefit to their invisible corporate cronies than to the environment, IICC members traveled the state on their own dime to speak out, protest, educate and inform. Their reward was sweet: they took their message of science-based energy policy to the people, who responded at the ballot box, soundly defeating Proposal 3 by 64-36 percent.\nUsing Sierra’s own test, Michigan ratepayers have shouted there is no such “public desire.”\nIn fact, there is widespread opposition to mandating forest-denuding biomass and massively expensive solar. But the hottest conflict focused on industrial wind. Michigan wind projects have lost at the ballot box virtually every time they have been put to the vote in a fair manner – and by similar margins.\nAt the township level, opposition to wind cronyism is just as strong. In Lenawee County, Riga Township rejected wind-friendly zoning by 64-36 percent. Two more Lenawee Townships followed suit. In Huron County, Lake Township removed a wind friendly ordinance by a similar 61-39 percent. And in Clinton County townships are intent on adopting police power regulations for wind energy installations, in defiance of too-permissive county level zoning.\nThis opposition is strongly bipartisan. Proposal 3 and its miles of wind turbines were opposed by both the free market Americans for Prosperity and Michael Moore movie producer Jeff Gibbs.\nThe ballot box evidence is clear. Michigan ratepayers from left to right are emphatic that there is no “desire” for mandated and subsidized industrial wind projects, in their backyard or anywhere in the State.\nThe push for Prop 3 also broke the big utilities’ code of silence on wind inefficacy. MEMJ unwittingly exposed CMS Energy’s duplicity on this issue — observing that CMS praised its new Ludington area wind plant for furnishing “reliable and affordable energy,” even as its public relations surrogate Care for Michigan was calling wind “expensive and unreliable.” Unfortunately for MEMJ, the Care for Michigan version was the truth.\nOpponents of renewable energy have long pointed out that wind energy is parasitic — totally dependent on fossil fuels for backup power, with every megawatt of wind power supported by a megawatt of redundant coal or natural gas generating plants. So wind cannot possibly or meaningfully reduce emissions.\nBut the utilities stood silent. Their beloved existing 10 percent renewable mandate, PA295, restored their monopoly status and guaranteed them nice profits, in exchange for a small number of renewable projects. They were not interested in biting the legislative hand that was (and is) feeding them.\nBut Prop 3 brought all stick and no carrot for the utilities. They could no longer remain silent. Out came the truth. Wind cannot replace fossil fuel plants. Wind is not getting inexorably cheaper, but is far more expensive than current generation and, minus the huge hidden subsidies, more expensive than new coal. Wind cannot increase employment without costing employment in other industries that get stuck with soaring electricity bills. Wind energy cannot liberate us from foreign oil or from out-of-state coal imports.\nWhat then did our autopsy discover? Michigan renewable energy mandates — including PA295 — are doomed. Because of gluttonous overreach, they will die by their own hand. Politicians need not fear public reprisal for opposing and repealing renewable energy mandates. It is now safe for lawmakers to acknowledge and act on the fact that renewables mandates like PA 295 are of no benefit to ratepayers, employers or employees, and are of dubious benefit to the environment.\nThrough the failure of Proposal 3, Michigan wind has been dissected and eviscerated by public opinion. The sooner our elected officials zip the death bag shut and send the corpse out for burial, the sooner Michigan can protect its rural areas from needless industrialization and our energy intensive industries from rising electricity costs that compromise their competitive edge.\nOther states, and our federal government, should take note.\nKevon Martis is Senior Policy Analyst for the Interstate Informed Citizen’s Coalition (www.iiccusa.org) in Blissfield, Michigan."} +{"text": "Backgrounder Article from\nThe Marrakesh Treaty\nMore than 800,000 Canadians live with a visual impairment, and around 3 million Canadians are print-disabled, which means that they have an impairment related to comprehension (e.g. autism) or the inability to hold or manipulate a book (e.g. Parkinson's disease). For these individuals, it can be especially difficult to find print material in a format that is both accessible and easy to use. More can be done to ensure that copyright laws do not create additional barriers for those with a print disability and that users have access to the latest and best published material from around the world.\nThe Marrakesh Treaty aims to bring the global community together to better address the universal challenge of ensuring timely access to, and the wider availability of, printed material for those with a visual impairment.\nIt sets international standards on certain exceptions to copyright so that print materials can be adapted into formats—such as Braille and audiobooks—that people with disabilities can use. The Treaty also makes it possible to distribute accessible-format copies between countries. The negotiations for the Treaty were led by the World Intellectual Property Organization, a United Nations agency with 188 member states. The Treaty will come into force once 20 countries have ratified or acceded to it.\nTo address the issue of access to these materials, the government has introduced a bill entitled An Act to amend the Copyright Act (access to copyrighted works or other subject-matter for persons with perceptual disabilities).\nCanada's current copyright framework already contains exceptions that allow for the making and distribution of accessible-format copies for the benefit of persons with disabilities. To ensure that these are fully in line with the Marrakesh Treaty and to enable Canada to accede to the Treaty, the bill will make targeted amendments to the Copyright Act. The proposed amendments maintain the important balance in Canada's copyright framework between the interests of copyright owners and users.\nPersons with disabilities and supporting organizations\nThe bill will allow, within specific parameters, persons with print disabilities and the organizations that support them to make and distribute accessible-format versions of works, including large-print books.\nThe bill will allow the sending of accessible-format copies to other countries, regardless of the nationality of authors, facilitating the cross-border exchange of works in accessible formats with supporting organizations in other countries.\nThe bill also specifies that technological protection measures (or digital locks) may be circumvented in order to provide access to persons with print disabilities. The amendments remove the condition that the lock not be unduly impaired but require that circumvention be done solely for the benefit of such persons.\nThese measures will bring benefits to many different groups of Canadians with print disabilities:\n- Students will have better access to print materials, helping them continue with their studies and better engage in the Canadian workforce. According to recent survey data, approximately 35 percent of students with a visual impairment discontinue their education because of their condition.\n- Workers will have greater opportunities. Current data suggests that approximately one third of Canadians with a visual impairment are not in the labour force.\n- Seniors—the group with the highest rates of visual impairment—will have better access to reading materials, which helps maintain their quality of life.\n- Canadians from minority language groups will have better access to books in a variety of languages.\n- Schools, libraries and charitable organizations that work with Canadians with disabilities will benefit from reduced duplication in the production of accessible works.\nProtecting authors and publishers\nThe bill also includes important safeguards to ensure that the legitimate interests of authors and publishers are respected.\nSafeguards will apply where accessible-format copies are already commercially available. For domestic use and imports, the exceptions do not apply where an accessible-format version is commercially available under reasonable terms in the Canadian market. For exports, the exceptions do not permit the sending of an accessible-format copy to another country if it is commercially available under reasonable terms in that foreign market, but the remedies that may be sought against non-profit organizations are limited in such circumstances.\nFinally, other key safeguards, such as protections for the moral rights of creators and the civil remedies available against those who enable online copyright infringement, will continue to apply.\nSearch for related information by keyword\nHon. Navdeep Singh Bains Innovation, Science and Economic Development Canada Economics and Industry\n- Date modified:"} +{"text": "te.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.UpdateRFTJobStatsInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"UpdateRFTJobStats\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"CreateOrGetDeployment\"})\n\n\tenv.OnActivity(\"CreateOrGetDeployment\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\t\treturn &activities.CreateOrGetDeploymentOutput{\n\t\t\t\tDeploymentName: \"accounts/test-account/deployments/rft-hotreload-test\",\n\t\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tenv.OnActivity(\"RunCreateRlorK8s\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.RunCreateRlorK8sInput) (*activities.RunCreateRlorK8sOutput, error) {\n\t\t\treturn &activities.RunCreateRlorK8sOutput{\n\t\t\t\tK8sJobName: \"keep-alive-k8s-job\",\n\t\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\t\tJobStatusFile: \"gs://bucket/status.json\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-123\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows and cleanup\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Mock child workflow execution - simulate completing chunk 4 (the resumed chunk)\n\tepochCallCount := 0\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tepochCallCount++\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: fmt.Sprintf(\"rollout-job-chunk-4\"),\n\t\t\t\tEvaluationJobName: fmt.Sprintf(\"eval-job-chunk-4\"),\n\t\t\t\tRLORJobName: fmt.Sprintf(\"rlor-job-chunk-4\"),\n\t\t\t\tOutputModel: \"accounts/test-account/models/epoch-0-chunk-4\",\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t\tEvaluationOutputDataset: \"accounts/test-account/datasets/eval-output-chunk-4\",\n\t\t\t\tEvaluationStats: `{\"total_count\": 100}`,\n\t\t\t\tTrackedResource: []common.TrackedResource{\n\t\t\t\t\t{ResourceType: common.ResourceTypeK8sJob, ResourceName: \"job-chunk-4\"},\n\t\t\t\t\t{ResourceType: common.ResourceTypeDataset, ResourceName: \"dataset-chunk-4\"},\n\t\t\t\t},\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Simulate previous run that completed chunks 0-3\n\tepochIndex0 := 0\n\tchunkIndex4 := 4 // Resume from chunk 4 (chunks 0-3 already completed)\n\tlastModel := \"accounts/test-account/models/epoch-0-chunk-3\"\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"resume-test-job\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tDatasetGcsUri: \"gs://bucket/training-dataset\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/final-output\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\tOutputModel: \"accounts/test-account/models/final-output\",\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{Enabled: false},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 200, // Enable chunking\n\t\tEnvironment: \"prod\",\n\t\tMetadataPath: \"gs://bucket/metadata/resume-test-job\",\n\n\t\t// Resume parameters - simulating resume from chunk 4 of epoch 0\n\t\tCurrentEpochIndexToResume: &epochIndex0,\n\t\tCurrentChunkIndexToResume: &chunkIndex4,\n\t\tLastOutputModelToResume: &lastModel,\n\t\tDatasetChunksToResume: []string{\n\t\t\t\"gs://bucket/chunk-0\",\n\t\t\t\"gs://bucket/chunk-1\",\n\t\t\t\"gs://bucket/chunk-2\",\n\t\t\t\"gs://bucket/chunk-3\",\n\t\t\t\"gs://bucket/chunk-4\",\n\t\t},\n\n\t\t// Previous epoch outputs from chunks 0-3 (simulating what was saved in metadata)\n\t\tEpochOutputsToResume: []RFTEpochWorkflowOutput{\n\t\t\t{\n\t\t\t\tRLORJobName: \"rlor-job-chunk-0\",\n\t\t\t\tOutputModel: \"accounts/test-account/models"} +{"text": "Alan Cassels visited a number of Vancouver doctors’ offices for a research project this summer, and the drug-policy expert could not help but notice that staff rarely paid for their own lunch.\nThe take-out meals supplied by friendly pharmaceutical sales reps filled the gap nicely instead.\n“There was always some company bringing them Thai curry, pizzas … a never-ending parade of delicious-smelling food,” said the University of Victoria researcher.\nSuch freebies are among an array of methods that drug firms employ with doctors who prescribe their products.\nA major pharmaceutical company, however, revealed Tuesday it is taking a seemingly unprecedented step back from the kind of marketing to physicians that is common throughout the sector, and has raised critics’ concerns for years.\nGlaxoSmithKline (GSK) announced it will stop the practice of paying certain fees to individual physicians and will no longer tie bonuses for its drug reps to the prescribing habits of specific doctors.\nSome analysts offered wary kudos on Tuesday to GSK, a company that recently has faced heavy penalties for questionable marketing, and yet led the way in starting to make the industry more transparent.\n“It’s a good first step,” said Dr. Joel Lexchin, an emergency physician and health-policy professor at Toronto’s York University. “The literature shows that when doctors get information from drug companies, it either has no effect on their prescribing, or makes their prescribing worse. There is no evidence it makes them better.”\nU.K.-based Glaxo announced that it would end payments to individual doctors — usually specialists known as “key opinion leaders” — for giving talks on products or a disease area. Subsidies to attend conferences are being phased out, too.\nThe company will also stop linking sales reps’ pay to the number of prescriptions handed out by individual doctors, emphasizing instead the reps’ technical knowledge and quality of service, as well as GSK’s overall performance.\nThe changes are designed to ensure “patients’ interests … always come first,” Andrew Witty, Glaxo’s CEO, said in a statement.\nGlaxo has 2,200 employees across Canada; the changes should be in effect here by the start of 2016, said a company spokeswoman, who asked not to be named.\nShe said GSK pays Canadian doctors to talk to other physicians about its products, and to help them participate in scientific meetings, activities that will end, but the spokeswoman could not say how many receive payments or at what cost.\nGlaxo’s move comes in the wake of some serious trouble for the company. It was fined US$3-billion by the U.S. government last year for illegally marketing its anti-depressants for unapproved uses, and withholding safety data on diabetes drug Avandia.\nAnd in China it is under investigation for allegedly bribing doctors and officials.\nYet it garnered positive reviews for being the first drug company to join alltrials.net, a project aiming to divulge full reports of drug trials, including negative results.\n‘It’s the food, flattering and friendship that promotes the drug’\nThe changes announced this week seem positive, but the “devil’s in the details,” said Mr. Cassels.\nHe and Dr. Lexchin also noted there are still many ways even GSK could influence the profession, such as by sponsoring associations, conferences and educational sessions, and through the personal relationships reps have with physicians.\n“It’s the food, flattering and friendship that promotes the drug,” said Mr. Cassels.\nA 2010 review of previous studies co-authored by Dr. Lexchin concluded that doctors exposed to industry messaging tend to prescribe more drugs, raise health-care costs and make lower-quality choices.\nDr. Louis Hugo Francescutti, president of the Canadian Medical Association, said the GSK initiative was welcome, but noted his group has had a code of ethics dealing with industry interactions in place for years.\nIt is especially important that doctors not engage in “peer selling” — giving company-sponsored talks to their colleagues that promote products, he said.\n“We don’t want practising physicians to be sales persons for either the pharmaceutical industry or medical device manufacturers,” said the Edmonton emergency physician. “It just doesn’t make sense.”\nDr. Lexchin said Health Canada should at least adopt the same kind of “sunshine” law being implemented soon in the U.S., requiring all drug-industry payments to doctors to be released publicly.\nDr. Francescutti said he did not think that was necessary, stressing that the large majority of physicians are responsible."} +{"text": "*laxabunga (lak sǝ buή´ gǝ) exclam. [slang] used as an exclamation of delight and laxifaction by laxers (lacrosse players). See also laxaholic.\nAlly Carey grew up with a soccer ball attached to her foot.Following in her soccer-oriented father’s footsteps, she played the sport all the way through high school. At a young age she had it all planned out. She was going to emulate her childhood idol, Mia Hamm, and play soccer for North Carolina and then—she hoped—Team USA.\n“I didn’t want to give up soccer at all,” she says. In the fourth grade, however, Carey started playing lacrosse. Beginning with a wooden stick—most club teams use aluminum sticks with plastic heads—she began to develop a connection with lacrosse.\nHer fondness for the sport grew at John Carroll High School in Bel Air, Md. Summers and falls became dedicated to soccer. When winter hit, she took out the lacrosse stick. As her high school days wound down, Carey faced a difficult decision. She could try to play both soccer and lacrosse in college, but she feared it would be too much to juggle. So she made up her mind, which turned out to be surprisingly easy.\n“I had more confidence in lacrosse than soccer—and definitely made a good choice.”\nVanderbilt certainly thinks so. Last June the 5-foot-8 midfielder became the first Vanderbilt lacrosse player to be named a first-team All-American twice. She is the school’s all-time leader in draw controls (183), and last year she ranked nationally in the top 10 for draw controls, caused turnovers and ground balls, which are similar to steals. She was a nominee for the Tewaaraton Award, which is given annually to the top men’s and women’s lacrosse players in the country. And last November Lacrosse Magazine announced her as one of four finalists for its Preseason Player of the Year Award.\n“We’d like to take credit for a lot of [her success], but what she has accomplished as an athlete is because of her drive,” says Vanderbilt Women’s Lacrosse Head Coach Cathy Swezey. “She is just a gifted kid with a tireless work ethic who really has made a great difference in our program.”\nCarey is only the most prominent example of how Vanderbilt benefits from Maryland’s historic strength in lacrosse. Maryland has contributed 10 players to the current squad, six of whom are seniors, and one-third of the early signees for next year also hail from the Old Line State.\nEven before she arrived at Vanderbilt, Carey was soaking in experiences that many dream about. As a junior in high school, she was picked to compete with Team USA in the International Federation of Women’s Lacrosse Associations’ U-19 (under 19) World Championship in Canada. Despite being one of the team’s—and tournament’s—youngest players, she earned Player of the Match honors in the semifinal against England. She then helped her teammates claim the gold in dominating fashion over Australia.\nGoosebumps climb her arms as she recalls chanting “U-S-A, U-S-A” with the crowd in Ontario. “I can’t even put into words what it feels like to have ‘USA’ across your chest,” she says. “The red, white and blue in the stands just makes you so proud to represent your country. It was an amazing experience.”\nCarey wants to experience that feeling again—on an even bigger stage. She is one of 36 players on the US Lacrosse women’s national senior team, along with Vanderbilt assistant coach Amber Falcone. The squad participated in a tournament during October and reunited in January. Come July, though, everyone must try out again and crack the final 18 in order to play in the 2013 World Cup in Canada. More immediately, as a senior captain, Carey is focused on helping the Commodores win an American Lacrosse Conference championship and reach elite status nationally. “I’m still wanting that national title,” she says.\nCarey graduates in May with a degree in human and organizational development and a minor in marketing. She hopes to land a job at Under Armour, a sports clothing and apparel company based in Baltimore where she interned last summer. Eventually, she would like to work with the company’s new lacrosse product line. “They are extremely efficient, but they also have a great time,” she says of the company. “It is totally the place I want to be—a perfect fit, kind of like here at Vanderbilt.”\nJerome Boettcher is a sports reporter for Nashville City Paper."} +{"text": "/epoch-0-chunk-0\",\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t\tTrackedResource: []common.TrackedResource{\n\t\t\t\t\t{ResourceType: common.ResourceTypeK8sJob, ResourceName: \"job-chunk-0\"},\n\t\t\t\t\t{ResourceType: common.ResourceTypeDataset, ResourceName: \"dataset-chunk-0\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tRLORJobName: \"rlor-job-chunk-1\",\n\t\t\t\tOutputModel: \"accounts/test-account/models/epoch-0-chunk-1\",\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t\tTrackedResource: []common.TrackedResource{\n\t\t\t\t\t{ResourceType: common.ResourceTypeK8sJob, ResourceName: \"job-chunk-1\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tRLORJobName: \"rlor-job-chunk-2\",\n\t\t\t\tOutputModel: \"accounts/test-account/models/epoch-0-chunk-2\",\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t\tTrackedResource: []common.TrackedResource{\n\t\t\t\t\t{ResourceType: common.ResourceTypeDataset, ResourceName: \"dataset-chunk-2\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tRLORJobName: \"rlor-job-chunk-3\",\n\t\t\t\tOutputModel: \"accounts/test-account/models/epoch-0-chunk-3\",\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t\tTrackedResource: []common.TrackedResource{\n\t\t\t\t\t{ResourceType: common.ResourceTypeK8sJob, ResourceName: \"job-chunk-3\"},\n\t\t\t\t\t{ResourceType: common.ResourceTypeDataset, ResourceName: \"dataset-chunk-3\"},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, WorkflowMetaData{})\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\t// Verify workflow completed successfully\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n\n\t// Verify we have all 5 epoch outputs (4 restored + 1 newly executed)\n\tassert.Len(t, result.EpochOutputs, 5, \"Should have 5 epoch outputs total\")\n\n\t// Verify restored epochs (0-3) have TrackedResource cleared\n\tfor i := 0; i < 4; i++ {\n\t\tassert.Empty(t, result.EpochOutputs[i].TrackedResource,\n\t\t\t\"Restored epoch %d should have empty TrackedResource to avoid duplicate cleanup\", i)\n\t\tassert.NotEmpty(t, result.EpochOutputs[i].RLORJobName,\n\t\t\t\"Restored epoch %d should preserve RLORJobName for early stop check\", i)\n\t\tassert.NotEmpty(t, result.EpochOutputs[i].OutputModel,\n\t\t\t\"Restored epoch %d should preserve OutputModel\", i)\n\t}\n\n\t// Verify the newly executed epoch (chunk 4) has TrackedResource intact\n\tassert.NotEmpty(t, result.EpochOutputs[4].TrackedResource,\n\t\t\"Newly executed epoch should have TrackedResource for cleanup\")\n\tassert.Len(t, result.EpochOutputs[4].TrackedResource, 2,\n\t\t\"Newly executed epoch should have 2 tracked resources\")\n\tassert.Equal(t, \"rlor-job-chunk-4\", result.EpochOutputs[4].RLORJobName)\n\tassert.Equal(t, \"accounts/test-account/models/epoch-0-chunk-4\", result.EpochOutputs[4].OutputModel)\n\n\t// Verify only 1 new epoch workflow was executed (chunk 4)\n\tassert.Equal(t, 1, epochCallCount, \"Should only execute chunk 4\")\n\n\t// Verify no early stop happened (would have failed if array access was out of bounds)\n\tassert.Equal(t, \"COMPLETED\", result.Status, \"Job should complete normally without early stop\")\n}\n\n// TestRFTJobWorkflow_BillingOnSuccessfulCompletion tests that billing is reported\n// when a job completes successfully with hot-reload enabled.\nfunc TestRFTJobWorkflow_BillingOnSuccessfulCompletion(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities FIRST (before any OnActivity calls)\n\tregisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register all activities first\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ExecuteComprehensiveCleanupInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"ExecuteComprehensiveCleanup\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"CreateOrGetDeployment\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBillingComplete\"})\n\n\t// Track billing activity calls\n\tvar billingCalled bool\n\tvar capturedBillingInput *activities.ReportRFTBillingCompleteInput\n\texpectedDeploymentName := \"accounts/test-account/deployments/rft-hotreload-billing-test\"\n\n\t// Now set up all mocks\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\t&DatasetValidationWorkflowOutput{JobName: \"validation-job\"}, nil,\n\t)\n\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: \"rollout-job-1\",\n\t\t\t\tEvaluationJobName: \"eval-job-1\",\n\t\t\t\tRLORJobName: \"rlor-job-1\",\n\t\t\t\tO"} +{"text": "“History, Rebellion and Reconciliation” Symposium Examines Race, Justice and Community Activism\nPanels, Films and Discussions Will Be Held April 25, 9:45 a.m. to 8:30 p.m.\nA police shooting of an unarmed black man in Ferguson, Mo., this summer, along with other shootings by police officers around the country, led to weeks of protests in communities around the country. The Smithsonian’s National Museum of African American History and Culture (NMAAHC) will join the national conversation by hosting a daylong symposium titled, “History, Rebellion and Reconciliation: Communities Mobilized for Social Change.”\nThe program will be held in the Rasmuson Theater in the Smithsonian’s National Museum of the American Indian (Independence Avenue at Fourth Street S.W.) from 9:45 a.m. to 8:30 p.m. Admission is free and open to the public; however, seating is on a first-come, first-served basis and reservations are recommended at (202) 633-0070 or nmaahc.si.edu.\n“We need to explore what this moment in our nation’s history means, especially in terms of leadership,” said Lonnie Bunch III, the director of NMAAHC. “What impact does generational change have on leadership and faith communities? What are the lessons to be learned from Ferguson, particularly within the context of community mobilization?”\nBunch will open the symposium and welcome guests at 9:45 a.m., followed by a discussion with Rev. Willis H. Johnson, pastor of Ferguson’s Wellspring Church. Willis will describe the conditions that led to the distrust between law enforcement and the city’s African American community.\nThe symposium will consist of three panels, one each in the morning, afternoon and evening. The first panel, “Ferguson: Impact, Importance & Long-Range Hopes,” from 10 a.m. to 12:30 p.m., will explore the evolution of the media, community leadership and activism as they relate to communities organized against excessive police force and economic inequality. This panel will be moderated by Juan Williams, journalist and Fox News political analyst. Panelists include:\n- Lisa Crooms, Howard University law professor\n- Rev. F. Willis Johnson Jr., Wellspring Church\n- Mychal Denzel Smith, contributing writer, The Nation\nThe second panel, “Ferguson & Faith in the 21st Century,” from 2 to 4:30 p.m., addresses the past, present and future roles of faith organizations as advocates for social change. It also examines changing roles of faith leaders and the range of their focus. Moderated by Rex Ellis, NMAAHC associate director of curatorial affairs, the panel includes:\n- Jeff Johnson, journalist and motivational speaker\n- Renee Harrison, Howard University School of Divinity professor and former Los Angeles police officer\n- Rev. Osagyefo Uhuru Sekou, pastor, theologian, author and community organizer\nThe final panel, “#Words Matter: Making Revolution Irresistible,” from 6 to 8:30 p.m., features the response of the creative community to excessive police violence, racism and communal demands for equality. The panel, moderated by Morgan State University professor Jared Ball, includes:\n- Mark Bolden, psychologist and co-moderator\n- Jasiri X, rapper and community activist\n- Jamilah Lemieux, senior digital editor, Ebony magazine\n- Jef Tate: DJ, Words, Beats and Life\nIn addition to the panels, the symposium will also present “Citizen” works by award-winning poet Claudia Rankine, interpreted on film by director John Lucas from 12:30 to 1:30 p.m. The film shorts, titled Situation #1through 5, are based on Rankine’s book Citizen: An American Lyric, which is a National Book Award Finalist for 2014.\nFrom 1:30 to 2:30 p.m., the symposium will present “On Art and History: A Conversation with Ava DuVernay.” With Selma, DuVernay is the first black female director to have a film nominated for an Academy Award. She will discuss filmmaking and the creative responses to historic events such as the Selma to Montgomery march.\nFrom 5 to 6 p.m., guests at the symposium can view a slide presentation of social justice related objects from the museum’s collection and select artists, accompanied by a mix from DJ Jef Tate of “Words, Beats and Life.”\nIn an effort to engage audiences beyond the walls of the Smithsonian, the daylong symposium will be available by livestream through a link on the museum’s website. The museum will also participate in dialogue on social media throughout the symposium. The public may follow the museum on Twitter @NMAAHC to participate in the discussion using #HRRlive or #WordsMatter.\nFor more information, visit nmaahc.si.edu or call (202) 633-1000.\nThe National Museum of African American History and Culture was established by an act of Congress in 2003 making it the 19th museum of the Smithsonian Institution. Scheduled for completion in 2016, it is being built on the National Mall in Washington, D.C., on a five-acre tract adjacent to the Washington Monument.\n# # #"} +{"text": "Thunder fans spilled into the concourses, the stairs and the escalators, and yet, no one seemed to be in any hurry to leave the Ford Center.\nThey wanted to celebrate.\n\"Beat L.A.!\" the chant went up.\nFaster than Russell Westbrook driving to the basket, the entire stairwell echoed with sound.\nFans from the cheap seats mixed with fans from the suite seats.\nThe cross-section of people who joined that chant last Saturday night was as diverse as Oklahoma City itself. There were black and white, Hispanic and Asian, white-collar and middle-class, and they were all united, one Thunder Nation.\nOn the eve of Game 6 in a playoff series against the Lakers that has been all about home-court advantage, there is no doubt that this Thunder squad has done many fantastic things for the city and the state. Think of the increased national exposure and the significant economic impact.\nStill, nothing the Thunder has done is more important than the way it is bringing folks together. It has made everyone feel like they're part of something grand. It has created a sense of community that is changing this city and this state.\nDon't misunderstand. Folks here have always been a friendly bunch, a helpful lot. Yet, the Bedlam rivalry has long created tension. It's crimson vs. orange, Cowboy vs. Sooner, us vs. them.\nThat will never go away entirely, but it has been muted.\nThe Thunder has made folks feel united in a way that this state has never experienced. You could sense it in the late-game sing-a-long that broke out Saturday night at the Ford Center when they played \"Sweet Caroline.\" You could hear it in the roar that went up when this team came out for warm-ups before the first two home playoff games. You could see it on the streets outside the arena after the home games.\nBricktown became a rolling block party Saturday night. Folks hung out of cars high-fiving pedestrians. Fans cheered. Horns blared.\nA railing that runs along Reno Avenue between Rooster's and Starbucks became a prime location. Fans stood on that railing and were able high-five pedestrians on the sidewalk and motorists on the street.\nOne out-of-town visitor said Thunder fans were Red Sox like.\nTalk about walking in some tall cotton. Still, the evidence of the Thunder's growing fandom is everywhere.\nHop in your car in Oklahoma City, and it won't be long before you see someone flying one of those Thunder car flags. The thing is, you're just as likely to spot one on a suped-up car rolling down NW 23rd Street as you are on a soccer-mom van streaking up Broadway Extension toward Edmond.\nThere's even virtual evidence of Thunder mania. On Twitter, more than a thousand folks have added a Thunder twibbon to their profile photo. That means a small Thunder logo now appears in the lower righthand corner of their picture.\nThe number of Thunder twibbons is double that of Cavaliers ones. Ditto for Spurs or Celtics.\nMaybe it's the way the Thunder has responded this season after winning only 23 games a season ago. Perhaps it's the personality of the players or the youth of the franchise or the style of the game. Whatever the reason, this team is drawing people together.\nHeck, Thunder fans are even being united by their sleep deprivation. The past four games in this playoff series have started no earlier than 8:30 p.m. Oklahoma time. That means games going until around midnight, and that means scores of bleary-eyed Oklahomans.\nJeremy Johnson is the student minister at First Baptist Church in Weatherford. After watching Saturday night's game on television — \"I hooked the flat screen up outside ... and we sat around the fire pit, grilled burgers and watched the game\" — he had to be at the church at 8 a.m.\nHis early-morning boost?\n\"Had two cups of coffee and a ham and cheese biscuit and prayed,\" he said. \"Yes, Sunday morning was tough. But it was well worth it to watch the Thunder win.\"\nLanie James felt the same way. The Oklahoma City thirtysomething went to Saturday night's game, got home after midnight, then got up before 5 a.m. Sunday morning to run the half marathon in the Oklahoma City Memorial Marathon.\nWhat's more, she beat her half-marathon time of a year ago by 13 minutes.\n\"I don't know how I did it,\" she said. \"I credit the energy of Oklahoma City that weekend. It was absolutely one of the most incredible weekends to be a part of.\"\nLike Johnson and James, Maija and Rob Vogel are battling sleep deprivation, too, but they are doing so on separate continents.\nMaija and Rob met in Oklahoma City eight years ago when he was visiting a family he'd lived with as a foreign exchange student. They married four years ago, made their home in the city and even bought season tickets for the Thunder. The arrangement had just one hang-up — Rob had started a business in his native Holland before he ever met Maija.\nHe still travels to Holland regularly to manage the business but refuses to miss a Thunder game.\n\"So, every night the Thunder plays, I put a chair in front of the TV with my Mac on it and wait for my Skype to ring,\" Maija said.\nHer laptop sends a streaming picture of the TV broadcast via the Internet to his laptop.\n\"I'm sure if my neighbors looked in my windows,\" Maija said, \"they would think I am a mental patient high-fiving the computer.\"\nThat makes late nights for her but even later ones for him. Those games that start at 8:30 p.m. in Oklahoma start at 3:30 a.m. in Holland.\nBut they are sacrificing for the Thunder just like thousands of other Oklahomans are. No one seems to mind it. No one seems to see it as a sacrifice really.\nFolks want to be part of Thunder mania. This team has created a sense of community that is powerful. Unique. Special.\nIt's one more thing to celebrate."} +{"text": "utputModel: input.TrainingConfig.OutputModel,\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\tenv.OnActivity(\"CreateOrGetDeployment\", mock.Anything, mock.Anything).Return(\n\t\t&activities.CreateOrGetDeploymentOutput{\n\t\t\tDeploymentName: expectedDeploymentName,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t}, nil,\n\t)\n\n\tenv.OnActivity(\"ReportRFTBillingComplete\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\t\tbillingCalled = true\n\t\t\tcapturedBillingInput = &input\n\t\t\treturn &activities.ReportRFTBillingCompleteOutput{\n\t\t\t\tAcceleratorSeconds: map[string]int64{\"NVIDIA_H100_80GB\": 3600},\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"billing-test\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tDeploymentShape: \"accounts/fireworks/deploymentShapes/rft-base-model/versions/v1\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{Enabled: false},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: false,\n\t\tCreateTime: time.Now().Add(-1 * time.Hour),\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n\n\t// Verify billing was reported on successful completion\n\tassert.True(t, billingCalled, \"ReportRFTBillingComplete should be called on successful completion\")\n\trequire.NotNil(t, capturedBillingInput, \"Billing input should be captured\")\n\tassert.Equal(t, \"billing-test\", capturedBillingInput.JobID)\n\tassert.Equal(t, \"test-account\", capturedBillingInput.AccountID)\n\tassert.Equal(t, expectedDeploymentName, capturedBillingInput.HotReloadDeployment)\n}\n\n// TestRFTJobWorkflow_BillingOnCancellation tests that billing is reported\n// when a job is cancelled (user-initiated cancellation) with hot-reload enabled.\nfunc TestRFTJobWorkflow_BillingOnCancellation(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities FIRST\n\tregisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register all activities first\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ExecuteComprehensiveCleanupInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"ExecuteComprehensiveCleanup\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"CreateOrGetDeployment\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBillingComplete\"})\n\n\t// Track billing activity calls\n\tvar billingCalled bool\n\tvar capturedBillingInput *activities.ReportRFTBillingCompleteInput\n\texpectedDeploymentName := \"accounts/test-account/deployments/rft-hotreload-cancel-test\"\n\n\t// Now set up all mocks\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\t&DatasetValidationWorkflowOutput{JobName: \"validation-job\"}, nil,\n\t)\n\n\t// Make the epoch workflow block until cancelled\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\t// Block until context is cancelled\n\t\t\treturn nil, workflow.Await(ctx, func() bool {\n\t\t\t\treturn ctx.Err() != nil\n\t\t\t})\n\t\t},"} +{"text": "RALEIGH, N.C. (AP) — After scores of television ads, a Charlotte convention for the Democrats and a refurbished Republican ground game, the outcome of the presidential race in North Carolina next week isn't much clearer than it was before Election Day 2008.\nAs the campaigns of President Barack Obama and Republican Mitt Romney head into the final days, both sides enthusiastically suggest they're days away from winning the state's 15 electoral votes. Thousands of volunteers were expected this weekend to call and knock on doors, recruit more volunteers and bring people to vote before early voting ends Saturday afternoon.,\nWhile both sides find reason for optimism from the early-vote statistics and polling, they'd be hard pressed to predict anything beyond a slim victory. An Elon University poll released earlier this week show Obama and Romney tied among likely voters.\n\"It's very competitive, it's very close,\" said Jonathan Kappler, research director at the nonpartisan North Carolina Free Enterprise Foundation, which tracks state politics for business interests. \"It will ultimately be decided by a narrow margin.\"\nObama won North Carolina by 14,000 votes in 2008 over John McCain from more than 4.3 million votes cast. Obama's victory, the first for a Democratic nominee since 1976, was attributed in part to turnout among energized black voters and young people.\nObama's organizing efforts didn't leave the state after 2008. Republicans acknowledged a poor get-out-the-vote effort last time around, and vowed to do better this year. A stubbornly high state unemployment rate and a Republican surge in the 2010 state elections also boosted Republicans' expectations to return the state to their presidential column this year.\nMeanwhile, the Democrats energized their base in North Carolina by holding their party's convention in Charlotte in September and signaled that Obama sought to make the state a permanent part of the party's electoral map.\nThe result is two robust get-out-the-vote volunteer operations. The Obama-led Democratic campaign in North Carolina boasts of 54 offices and between 15,000 and 20,000 volunteers, while the GOP says they've got 24 \"victory\" offices backing Romney and the Republican ticket and more than 10,000 volunteers.\nObama national campaign manager Jim Messina told North Carolina volunteers Thursday night the president's early-voting success again among black and youth voters is fueling optimism. Messina said Romney would have to receive between 54 percent and 60 percent of the votes cast on Election Day to catch Obama's early-vote advantage, citing public polling.\nMessina cautioned that \"the race remains very, very close ... We'll take a tied race. We've always said we'll go into Election Day tied and win it on the ground.\"\nRepublican officials in the state say they're confident they'll win and say early voting totals have wiped away the 14,000-vote margin from 2008. The share of GOP voters from all types of early voting as of Friday is 2 percentage points higher compared to 2008 and the Democrats' share is 3 percentage points lower, according to State Board of Elections data.\n\"I see this race that we are absolutely ahead and that we have the momentum on our side and the intensity,\" Romney's state campaign manager, Michael Joffrion, said Friday.\nNeither Obama nor Romney has visited North Carolina in weeks, leading some to suggest North Carolina isn't a top-tier battleground state. Obama last visited North Carolina during the convention and Romney held an Asheville rally Oct. 11.\nHowever, they've had dozens of surrogates making the candidates' arguments. Republicans have had McCain and House Speaker John Boehner. President Bill Clinton was scheduled to come to North Carolina on Sunday, followed the next day by first lady Michelle Obama in Charlotte.\nLongtime North Carolina Democratic consultant Gary Pearce said the first lady's appearance is a good sign Obama believes North Carolina is winnable. He said Romney has more riding on North Carolina because it becomes very difficult for him to reach the 270 electoral votes need to win the presidency without it.\nKappler said he's counted 112 separate presidential campaign ads that aired in North Carolina since the May primary: 38 from the Obama campaign, 37 from Romney, 35 from Republican-leading outside groups and two from Democratic-leaning groups. The commercials and other campaign activity show that North Carolina is a permanent battleground state and no longer an afterthought in the presidential sweepstakes, he said.\n\"We are entering a new phase in North Carolina politics when we are part of the national conversation,\" said Kappler, who on Friday gave an ever-so slight advantage to Romney. \"We might not be the center of the conversation, but we are part of it.\""} +{"text": "To contribute to this site, see above menu item \"About\".\nThese transcriptions may contain human errors.\nAs always, confirm these, as you would any other source material.\nManning, James F. - Passed away peacefully at the Health Sciences Centre on Saturday, Nov. 9, 1996, Jim Manning, aged 77 years. WWII Veteran of the Royal Navy (PJX20087). Predeceased by his son Robert in 1954 and his son Paul in 1972. Leaving to mourn his sad loss, his loving and devoted wife Mary (O'Brien); five sons: Con (Carol), Jim (Bernadette), Wayne (fiancee Michelle), Brian (fiancee Donna), at Torbay, Gerard (Phyllis) at Calgary, Alta; brothers: Joseph\n(Catherine), Cyril (Dot); sisters-in-law Evelyn, in Boston; brothers-in-law: Gordon O'Brien and Joseph O'Brien, of Torbay, Robert Dodds of Chico, California, Francis Cole of Kentucky; eight grandchildren and three great-grandchildren; numerous nieces, nephews, and other relatives and friends. Special cousins: Anne Roche in Boston and Mary Nolan at Torbay. Resting at Caul's Funeral Home, Torbay. Visitation beginning at\n4 p.m. Saturday, Nov. 10. Funeral service on Tuesday, Nov. 12, 1996 at 10 a.m. from Holy Trinity Church, Torbay. Flowers gratefully accepted or donations may be made to the Canadian Diabetes Association or the Royal Canadian Legion.\nMartin, Mary - Passed peacefully away at the Grace General Hospital on Wednesday, March 23, 1994, Mary Martin, in her 73rd year. Predeceased by her husband Patrick, 1981. Left to mourn their sad loss, her daughters: Mary Kenny, Bridget Haynes (Wyn), Helen Noseworthy (Norman),\nMargaret Foley; sons: Ales (Angela) and Gerard (Mary); thirteen grandchildren; sister Margaret Stringer and family at Little Heart's Ease; one special aunt: Agnes Cantwell at Torbay; also many other close friends and relatives. Resting at Caul's Funeral Home, LeMarchant Road. Funeral Mass from St. Pius X Church, Friday, March 25, 1994, at 9:45 a.m. Interment at Holy Sepulchre Cemetery.\nRoche, Craig William - Passed tragically away in Burnaby, B.C., Craig William Roche, beloved son of William and Peggy Roche of Torbay. Predeceased by his loving grandmother Gertie O'Rourke. Leaving to mourn, besides his parents: one brother Corey; grandparents Nicholas and Jean Roche; great-aunt Sister Marie Roche; special friends in Logy Bay: Agnes Dyer, Dan O'Brien and son Darrell; four aunts; five uncles and a large circle of relatives and friends. Resting at Caul's Funeral Home, Torbay. Funeral on Saturday, April 3 at 10 a.m. from Holy Trinity Church, Torbay. Interment at R.C. Cemetery, Torbay. Flowers gratefully accepted or donations may be made to one's favorite charity. Always remembered. Always loved.\nRodgers, Kevin - Passed suddenly away on Saturday, August 16, 1997, Kevin Rodgers, son of the late James and Genevive Rodgers, 32 Signal Hill Road, also predeceased by his brother James and sister Annie. Leaving to mourn brothers: Albert and Charles (Annie) of St. John's, sisters: Mary of St. John's, Margaret of Chesapeake, Virginia; Genevive of St. John's; and Bride of P.E.I.. Also a large circle of other relatives and friends. Resting at Caul's Funeral Home, LeMarchant Road on Sunday at 7 p.m. Funeral mass on Tuesday to St. Joseph's Church at a time to be announced.\nStamp, Richard - Passed away at St. Clare's, February 4th, Richard Stamp, age 81 years. Leaving to mourn wife Sarah; seven daughters: Frances (David) Scott, Delores (Vincent) Hawco, Philomena (William)\nPower, Brenda (Pat) Squires, Justina (John) Woodfine, Jackie (Robert) Whitten and Bobby (Ron) Follett; seven sons: Cyril (Mary), Andrew (Ann), Douglas (Phylis), Richard (Marilyn), Martin (Diane), William (Cathy), Tony [and friend Laura];\nthirty-four grandchildren and ten great-grandchildren and three sisters: Mary Miller, Sarah Hogan and Margaret Stamp and two brothers: Edgar and Thomas. Resting at Caul's Funeral Home, Torbay. Funeral notice later.\nStringer, Hubert - Passed peacefully at the Dr. G. B. Cross Memorial Hospital, Clarenville on April 17, 1996, Hubert Stringer of Little Heart's Ease, aged 82 years. Leaving to mourn his loving wife Margaret; four sons: Thomas (Audrey), Howard (Christine), Doug (Bev) and Barry (Sherry); two daughters: Mary (Bram) and Janette; five grandchildren: Trevor, Jerry, Jody, Robbie and Rose; one brother Walter (Dorthy); one sister Jessie (Allan); special niece Dorthy Drodge; and a large circle of relatives and friends. Resting at Bethal United Church, Little Heart's Ease. Funeral Service to take place at Bethal United Church, Little Heart's Ease on Saturday, April 20, 1996 at 2:00 p.m. interment at Little Heart's Ease United Cemetery. Flowers gratefully accepted or donations can be made to the Canadian Diabetes Association.\nWade, Frances - Passed peacefully away at St. Clare's Mercy Hospital February 3rd, Frances Wade in her 86th year. Leaving to mourn one son Leo and wife Sarah at Flatrock; one sister Mrs. Agnes Wade, Flatrock; four grandchildren and 10 great-grandchildren. Funeral Tuesday from Caul's Funeral Home to St. Michael's Church, Flatrock for mass at 11 a.m. Interment in Flatrock.\nPage contributed by Shelley O'Brien\nPage Revised by Ivy F. Benoit (October 13, 2003)\nNewfoundland's Grand Banks is a non-profit endeavor.\nNo part of this project may be reproduced in any form\nfor any purpose other than personal use.\n© Newfoundland's Grand Banks (1999-2016)\nYou can search the entire NGB site\nby using the [Google] search below."} +{"text": "\n\t)\n\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\tenv.OnActivity(\"CreateOrGetDeployment\", mock.Anything, mock.Anything).Return(\n\t\t&activities.CreateOrGetDeploymentOutput{\n\t\t\tDeploymentName: expectedDeploymentName,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t}, nil,\n\t)\n\n\tenv.OnActivity(\"ReportRFTBillingComplete\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\t\tbillingCalled = true\n\t\t\tcapturedBillingInput = &input\n\t\t\treturn &activities.ReportRFTBillingCompleteOutput{\n\t\t\t\tAcceleratorSeconds: map[string]int64{\"NVIDIA_H100_80GB\": 1800},\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"cancel-test\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tDeploymentShape: \"accounts/fireworks/deploymentShapes/rft-base-model/versions/v1\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{Enabled: false},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: false,\n\t\tCreateTime: time.Now().Add(-1 * time.Hour),\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\t// Register a callback to cancel the workflow after deployment is created\n\tenv.RegisterDelayedCallback(func() {\n\t\tenv.CancelWorkflow()\n\t}, 100*time.Millisecond)\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\n\t// Workflow should be cancelled\n\terr := env.GetWorkflowError()\n\trequire.Error(t, err, \"Workflow should have an error due to cancellation\")\n\n\t// Verify billing was reported on cancellation\n\tassert.True(t, billingCalled, \"ReportRFTBillingComplete should be called on cancellation\")\n\trequire.NotNil(t, capturedBillingInput, \"Billing input should be captured\")\n\tassert.Equal(t, \"cancel-test\", capturedBillingInput.JobID)\n\tassert.Equal(t, \"test-account\", capturedBillingInput.AccountID)\n\tassert.Equal(t, expectedDeploymentName, capturedBillingInput.HotReloadDeployment)\n}\n\n// TestRFTJobWorkflow_NoBillingOnFailure tests that billing is NOT reported\n// when a job fails (only cancelled jobs should be billed, not failed ones).\n// TestRFTJobWorkflow_ContinueAsNew tests that the workflow triggers Continue-As-New\n// when the history length exceeds the threshold to prevent workflow history overflow.\nfunc TestRFTJobWorkflow_ContinueAsNew(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.UpdateRFTJobStatsInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"UpdateRFTJobStats\"})\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-continue\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\tenv.OnActivity(\"UpdateRFTJobStats\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Track epoch executions\n\tepochCallCount := 0\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tepochCallCount++\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: fmt.Sprintf(\"rollout-job-%d\", epochCallCount),\n\t\t\t\tEvaluationJobName: fmt.Sprintf(\"eval-job-%d\", epochCallCount),\n\t\t\t\tRLORJobName: fmt.Sprintf(\"rlor-job-%d\", epochCallCount),\n\t\t\t\tOutputModel: input.TrainingConfig.OutputMo"} +{"text": "Gathering Of Presidential Lineage Celebrates U.S. History\nSCOTT SIMON, HOST:\nDescendents of famous American political figures, both Democrats and Republicans, white and black, coming together in a small Ozarks town this weekend. The Missouri Cherry Blossom Festival in Marshfield is hosting the descendents of more than 30 past presidents, including relatives of the country's founding fathers and one of the country's most famous slaves.\nFrom member station KSMU, Jennifer Davidson reports.\nJENNIFER DAVIDSON, BYLINE: As a thunderstorm brews outside Blackberry Creek Bed and Breakfast, the direct descendents of Thomas Jefferson and Harry Truman are sitting down to a hearty innkeeper's breakfast with George Washington's great-nephew.\nCHRIS TRUSCOTT: Thomas Jefferson is my great, great, great and several more greats grandfather.\nDAVIDSON: That's Chris Truscott. He shares Jefferson's love of the written word. He's a corporate speechwriter. At the breakfast table is Tom Washington, who comes here very year from Texas. The first time Tom Washington was invited by the festival's organizer he was a bit skeptical.\nTOM WASHINGTON: I said he wants to what? I'm supposed to go to this small town in the Ozarks for a Cherry Blossom Festival. Is this for real?\nDAVIDSON: Despite his famous relatives warning against party politics, Washington works for the Republican Party in Texas. He jokes that the Adams are still as liberal as ever. Relatives of Presidents Madison, Monroe, Nixon, Cleveland and both Roosevelts have all been here. Over at the Marshville High School, Nicholas Inman is greeting guests.\nHe's a young minister who, after living in D.C., felt torn between the nation's capital and his hometown. He's organized the planting of 100s of cherry trees in Marshfield to remind him of the pink blooms that Washington is famous for.\nNICHOLAS INMAN: I love history and I felt like people need to learn history from primary sources and so we needed a festival to go around those trees.\nDAVIDSON: The festival has united some unlikely pairs. Bertram Hayes Davis is the great-great-grandson of Jefferson Davis and is now friends with Lynn Jackson. She's a descendent of Dred Scott, a slave who famously sued for his freedom. As Davis says, his ancestor had a distinguished career before the Civil War.\nBERTRAM HAYES DAVIS: Hero of the war of 1847, secretary of war and senator, and so people don't understand that Jefferson Davis was an American patriot for the first 52 years of his life before he was appointed, not elected, to the presidency of the Confederacy.\nDAVIDSON: Lynn Jackson oversees the Dred Scott Heritage Foundation in St. Louis.\nLYNN SCOTT: In coming together and sharing, you know, how do you feel being the descendent of a slave? How do you feel being the descendent of a Confederate president? And we find some common ground here.\nDAVIDSON: Back at the bed and breakfast, over a steaming cup of coffee, Thomas Jefferson's descendent, Chris Truscott, reflects on how the festival has changed his life. When attending the festival two years ago, he fell in love with the editor of the Marshfield newspaper. He relocated, the two married, and they're expecting a baby this summer.\nHe says people tell him his facial features strongly resemble Jefferson's straight pointed nose and square jaw.\nTRUSCOTT: I don't know if it's true, but people say it. I think there's a - I think to an extent people want to believe it.\nDAVIDSON: His father is buried at Monticello, where he's also eligible for a plot one day. But Truscott says he'll be buried wherever home is when he dies, and that very well could be among the cherry trees that grace this little sliver of the Louisiana Purchase. For NPR News, I'm Jennifer Davidson.\n(SOUNDBITE OF MUSIC)\nSIMON: And later this hour, coming up in time for Broadway's annual honors, the Tony Awards will look ahead at the season's theater hits and misses with Barbara Chai of the Wall Street Journal. And as always, we invite you to join us on Twitter. We're at NPR WEEKEND, and I'm at NPRScottSimon, all one word.\n(SOUNDBITE OF MUSIC)\nSIMON: You're listening to WEEKEND EDITION from NPR News. Transcript provided by NPR, Copyright NPR."} +{"text": "Ryan Unzicker Wins $10,000 Birthday Race/Kenny Wallace Crowned Summit Modified Nationals Champ\nThe annual Birthday Race weekend at Oakshade Raceway attracted racers from at least nine different states and Canada. Fans from all over packed the stands to watch an exciting UMP Summer Nationals finale with Ryan Unzicker and Brian Ruhlman picking up feature race wins and Brian Shirley and Kenny Wallace both earned Summer Nationals titles.\nFifty-six UMP Late Model teams battled to make the 22-car starting line-up for the 60-lap Birthday Race/Summer National finale feature. After a slight delay due to a quick rain shower, the green flag dropped on a caution-free main event. Summer Nationals points leader Brian Shirley started on the pole and maintained the early lead. A hard-charging Brandon Sheppard from New Berlin, Illinois, quickly closed in and took the lead on lap 12. Sheppard had set a torrid pace earlier in his heat race win, running laps almost a half second faster than fast qualifier Jason Feger’s time. Sheppard appeared to be on his way to a $10,000 win after pulling away from the rest of the field running the high line through the turns.\nWithout the help of any caution flags to tighten the field, Ryan Unzicker slowly began to reel in Sheppard as they worked through lapped traffic. It wasn’t until the last 10 laps that Sheppard’s lead quickly evaporated. Unzicker, who likes to run the low line around the corners, got alongside Sheppard and took the lead on lap 56. The two drivers battled side by side a couple laps through some heavy lapped traffic. Unfortunately, Sheppard caught the wall just a bit coming off turn two which allowed Unzicker to pull ahead and take the checkered flag to become the 2012 Oakshade Raceway Birthday Race winner. Sheppard was disappointed to finish second after leading the vast majority of the race. Matt Miller started tenth and climbed to a third place finish followed by Jeep Van Wormer in fourth. Brian Shirley’s fifth place finish was enough to capture the 2012 UMP Summer Nationals Championship as “The Hell Tour” came to a close after nearly a month of continuous racing.\nKenny Wallace decided to run for the Summer Racing Equipment Modified Nationals championship at 7am Saturday morning and had Tony Stewart fly him out to compete with 40 other Modified drivers. Sitting second in points behind an absent Mike Harrison, he just needed a 16th place or better finish to earn that championship. Things looked good early in the 25-lap feature for Wallace who started on the outside of the front row and got the early advantage over Zack Olger. Jake Ruefer charged toward the front and took the lead from Wallace on lap 16. Clarklake, Michigan’s Brian Ruhlman had his car hooked up on the high side and got by Wallace for second. Soon after taking second he then began to challenge Ruefer for the lead. A spin by Collin Thirlby on lap 19 brought out the caution flag forcing Ruhlman to restart behind Ruefer. After the restart, Ruhlman went back to work on the high side and took the lead three laps later. Ruhlman went on to pick up the $1,000 pay day for the win. Ruefer finished second followed by Jacob Poel, Zach Schroder and Zack Olger. Wallace slipped back to finish sixth his first time at Oakshade Raceway, but earned the Summit Racing Equipment Modified Nationals Championship.\nBrandon Myers from Morenci, Michigan, started on the pole of the Hornet feature event and led the entire distance. William Cundick and Drew Smith made him earn the victory as both drivers raced him hard. Myers fended off the challenges and picked up his second feature win of the year. Smith edged out Cundick for second. Maverick Wright finished fourth with Devon Bell ending up fifth.\nAfter taking the week off, the UMP Sportsman, UMP Bomber and UMP Sports Compact divisions will be back in action along with UMP Late Models and Hornets for a full show in addition to the Hot Rod Welding “Make-up Bomber Race” at Oakshade Raceway. Gates open at 4pm with racing at 7pm."} +{"text": "del,\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Simulate a job with many chunks that would cause large history\n\t// Using resume parameters to simulate continuing from a previous run\n\tepochIndex := 3\n\tchunkIndex := 0\n\tlastModel := \"accounts/test-account/models/epoch-2-model\"\n\n\t// Provide previous epoch outputs to simulate a resumed workflow\n\tpreviousEpochOutputs := []RFTEpochWorkflowOutput{}\n\tfor i := 0; i < 12; i++ { // 3 epochs * 4 chunks = 12 previous outputs\n\t\tpreviousEpochOutputs = append(previousEpochOutputs, RFTEpochWorkflowOutput{\n\t\t\tRLORJobName: fmt.Sprintf(\"rlor-job-%d\", i),\n\t\t\tOutputModel: fmt.Sprintf(\"accounts/test-account/models/epoch-%d-chunk-%d\", i/4, i%4),\n\t\t\tStatus: \"COMPLETED\",\n\t\t})\n\t}\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-continue\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tDatasetGcsUri: \"gs://bucket/training.jsonl\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 5, // 5 epochs with 4 chunks each = 20 iterations\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t\t// Resume parameters\n\t\tCurrentEpochIndexToResume: &epochIndex,\n\t\tCurrentChunkIndexToResume: &chunkIndex,\n\t\tLastOutputModelToResume: &lastModel,\n\t\tDatasetChunksToResume: []string{\n\t\t\t\"gs://bucket/chunk-0.jsonl\",\n\t\t\t\"gs://bucket/chunk-1.jsonl\",\n\t\t\t\"gs://bucket/chunk-2.jsonl\",\n\t\t\t\"gs://bucket/chunk-3.jsonl\",\n\t\t},\n\t\tEpochOutputsToResume: previousEpochOutputs,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\n\t// The workflow should complete successfully\n\t// In the test environment, history length is not accurately simulated,\n\t// so Continue-As-New won't be triggered. But this test verifies:\n\t// 1. Resume logic works correctly with EpochOutputsToResume\n\t// 2. The workflow can handle many epochs without issues\n\t// 3. The Continue-As-New code path exists and compiles correctly\n\n\tvar result RFTJobWorkflowOutput\n\terr := env.GetWorkflowError()\n\tif err == nil {\n\t\trequire.NoError(t, env.GetWorkflowResult(&result))\n\t\tassert.Equal(t, \"COMPLETED\", result.Status)\n\t\t// Should have previous outputs + new epochs\n\t\tassert.GreaterOrEqual(t, len(result.EpochOutputs), len(previousEpochOutputs))\n\t}\n\t// Note: In production, if history > 4000 events, this would return ContinueAsNewError\n}\n\nfunc TestRFTJobWorkflow_NoBillingOnFailure(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities FIRST\n\tregisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register all activities first\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ExecuteComprehensiveCleanupInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"ExecuteComprehensiveCleanup\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"CreateOrGetDeployment\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.GetAccountUsageInput) (*activities.GetAccountUsageOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"GetAccountUsage\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBilling\"})\n\n\t// Track billing activity calls - these should NOT be called for failed jobs\n\tvar getAccountUsageCalled bool\n\tvar reportRFTBillingCalled bool\n\texpectedDeploymentName := \"accounts/test-account/deployments/rft-hotreload-fail-test\"\n\n\t// Now set up all mocks\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\t&DatasetValidationWorkflowOutput{JobName: \"validation-job\"}, nil,\n\t)\n\n\t// Make the epoch workflow fail\n\t"} +{"text": "We’ve reached that stage of the national campaign when smarty-pants columnists start asking trick questions-of potential voters.\nIn keeping with the genial spirit of things, here’s a test: What political figure do you suppose said the following:\n“Every gun that is fired, every warship launched, every rocket fired signifies … a theft from those who hunger and are not fed, those who are cold and not clothed.… This is not a way of life at all.… Under the cloud of threatening war, it is humanity hanging from a cross of iron.”\nThat’s too easy, you say (except that you know it’s a trick question, so you’re thinking- Pat Buchanan ?) If you didn’t know that you were the subject of some smarty-pants columnist’s trick, you’d be tempted to attribute such fuzzy-headed rhetoric to Ralph Nader, for who else would dare suggest that the Pentagon steals money from the naked and the hungry? Who else would even mention the naked and the hungry?\nWell, as you’ve no doubt gathered, those seditious words did not fall from the lips of Mr. Nader, though he no doubt would second them. In fact, the “cross of iron” speech was delivered in 1953 by that noted bleeding heart, Dwight Eisenhower, five-star General of the Army, commander of the greatest invasion fleet ever assembled, and therefore one of the most informed skeptics of military budgets that our political system has ever produced. (The quote is taken from Michael R. Beschloss’ book, The Crisis Years. )\nAl Gore, soldier-journalist in Vietnam, and George W. Bush, protector of the skies over Texas in the 1960s, both are incapable of uttering anything like what Ike said in the first year of his Presidency, a mere eight years after America’s triumph of arms in World War II. Neither man was a military hero or a battlefield officer; both missed the combat experience of their generation, although Mr. Gore got at least a glimpse of what Vietnam was like. Yet they are seeking an office whose duties include the supervision of the world’s greatest collection of soldiers and arms in a world where no nation-state is a threat to our security. Confronted with demands for bigger and better guns, warships and rockets, they do not raise the question of theft. Instead, they feel compelled to sign off on promises of more and still more, lest anybody accuse them of letting down our men and women in uniform.\nIn his last months as President, Dwight Eisenhower famously warned us about the power of the military-industrial complex. Just as his Vice President, and only his Vice President, could later travel to China, only the Supreme Commander of the Allied Expeditionary Force could talk in such dire terms of the alliance between the Pentagon and the armaments industry.\nWith Mr. Gore’s campaign propaganda crowing that Washington “is now able to invest in renewed growth in defense budgets,” with Mr. Bush vowing to increase funding for defense research and development by $20 billion by 2006, with voices on the right complaining of the lack of aircraft carriers (12 are listed as active, from the Kitty Hawk , launched in 1961, to the Harry S Truman , launched in 1998; another, the Ronald Reagan , is under construction), where is today’s Ike to warn us of theft posing as strength?\nThe two most famous soldiers of the post-Vietnam era, Colin Powell and Norman Schwarzkopf, have not aspired to Eisenhower-like credibility. During the Republican National Convention, both retired generals served as partisans in Bush warfare (with the requisite civilian clothes). They echoed Republican complaints that the military has drifted into that dangerous body of water known as Dire Straits. In a subtle gesture, Mr. Schwarzkopf delivered his alarums about combat readiness from the deck of the battleship U.S.S. New Jersey . The symbolism was supposed to be pretty damn obvious: War hero delivering plea for more defense spending from deck of battleship. Patriots would weep on command.\nGeneral Schwarzkopf didn’t dare point out that the city from which he was speaking-the terrible, defeated city of Camden, N.J., where the New Jersey is berthed-has more than its share of cold, ill-clothed and hungry citizens, the very people from which, Ike warned, resources are stolen so that guns and warships and missiles may be purchased in bulk. I don’t know the means by which the retired general was deployed to the deck of the New Jersey , but if he received even a short tour of Camden on his way to and from his performance, he surely would have seen humanity hanging from a cross of iron.\nQuestioning the demands of Pentagon bureaucrats and their friends in the private sector shouldn’t require a chest full of combat ribbons. Yet neither Mr. Gore nor Mr. Bush seems to believe he has the brass to make the Eisenhower argument, even though our Cold War enemies are vanquished. Instead, both will be silent while the great theft continues."} +{"text": "When Jane Moss, the Mostly Mozart Festival’s artistic director, throws her hands up and themes this year’s series as “Six Degrees of Separation,” you know this isn’t about Mozart anymore. Haydn, dead 200 years in 2009, and John Adams, whose opera A Flowering Tree is loosely inspired by The Magic Flute, are Mozart’s special friends this year, but so are Bach, Brahms, Mendelssohn, Ligeti and Stravinsky. Given the generally strong performances, and enthusiastic audiences, that I witnessed over two weeks of concert-going, who cares?\nThere may be no official piano festival contained in this year’s Mostly Mozart Festival, which runs through Aug. 22, but the first run of concerts almost seemed that way, hardly inappropriate since the Salzburg prodigy was not exactly a slouch at the instrument. I went to hear Piotr Anderszewski’s opening, all-Bach concert in the “Little Night Music” series at the Kaplan Penthouse on July 29 with considerable anticipation: His reputation is richly deserved, based upon his solid tone, flawless technique and grand, but not grandiloquent, style. The Partita No. 6 in E Minor was impressively, if somewhat stiffly, dispatched, reaching an unexpected climax in the melancholy Sarabande, which opened up with glorious sweep. The English Suite No. 6 in D Minor may be a more public, playful and somewhat artificial kind of piece, but Anderszewski gave it revelatory force. A cogent and lyrical account of its Sarabande was followed by a Double—a variation—so knowingly performed that it let us glimpse the secret inner life of the dance that had preceded it. The two Gavottes offered similar pleasures; No. 2 was an essay in sheer magic, its clanging rhythms delivered with radiant colors and a crystalline touch.\nTwo concerts with the Mostly Mozart Orchestra at Avery Fisher Hall featured fine performances (heard on Aug. 5 and 8) by the pianists Nicholas Angelich and Stefan Vladar, respectively, but their conductors interested me more. Yannick Nézet-Séguin’s debut at the festival, heralded by a Sunday Times preview, was a momentous occasion. English Canada seems devoid of conductorial talent, but what is it about Quebec? Some six years ago, the absurdly underrated Bernard Labadie was turning in splendid performances at Mostly Mozart and at Glimmerglass, and now his younger colleague has appeared to carry on what seems to be a vibrantly lyrical national style.\nTrained partially as a choral conductor, Nézet-Séguin is unashamed to express his elemental love of music. Having sat through Pierre Boulez’s catatonic rendition of Stravinsky’s Pulcinella last season at Carnegie Hall, I was not relishing a repeat of the score. But Nézet-Séguin’s rendition, with its pungent orchestral colors and crisply percussive rhythmic patterns, proved that this so-called neoclassical throwback came from the same pen that wrote The Rite of Spring. His interpretation of Mendelssohn’s Italian Symphony had a hard, driving swing at times, but none of the highlighted detail (a timpani whack, a thrust from the violas) disrupted the elegance of the total, silken texture.\nAnd while we’re celebrating things French, let’s not forget Louis Langrée, the festival’s music director, who turned in one of the most impressive performances of his tenure on Aug. 8. France is not known as Brahms country, and Langrée’s account of the Fourth Symphony, the highlight of the evening, did not try to bring that vertical brand of German “profundity” to the composer’s valedictory Fourth Symphony; in a fleet but not flighty interpretation, it wore its autumnal colors lightly.\nPhrases made soft landings, but sojourned to interesting places along the way, especially in the third and fourth movements, when something downright demonic began to bubble up to the surface—this was Brahms’ farewell to the liberal, German-Jewish musical culture that had nurtured him, and he knew that Vienna would soon see dark days. The wind section of this not-quite-perfect orchestra sometimes produced a slightly sour corporate sound, but Demarre McGill, the principal flutist, handled his mournful solo in the last movement with uncommon beauty and restraint."} +{"text": "env.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tnil, fmt.Errorf(\"epoch workflow failed\"),\n\t)\n\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\tenv.OnActivity(\"CreateOrGetDeployment\", mock.Anything, mock.Anything).Return(\n\t\t&activities.CreateOrGetDeploymentOutput{\n\t\t\tDeploymentName: expectedDeploymentName,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t}, nil,\n\t)\n\n\tenv.OnActivity(\"GetAccountUsage\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.GetAccountUsageInput) (*activities.GetAccountUsageOutput, error) {\n\t\t\tgetAccountUsageCalled = true\n\t\t\treturn &activities.GetAccountUsageOutput{\n\t\t\t\tUsage: &gpb.AccountUsage{\n\t\t\t\t\tDedicatedCosts: []*gpb.AccountUsage_DedicatedDeploymentUsage{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tDeploymentId: expectedDeploymentName,\n\t\t\t\t\t\t\tAcceleratorType: \"NVIDIA_H100_80GB\",\n\t\t\t\t\t\t\tAcceleratorSeconds: 1800,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tenv.OnActivity(\"ReportRFTBilling\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ReportRFTBillingInput) error {\n\t\t\treportRFTBillingCalled = true\n\t\t\treturn nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"fail-test\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tDeploymentShape: \"accounts/fireworks/deploymentShapes/rft-base-model/versions/v1\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{Enabled: false},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: false,\n\t\tCreateTime: time.Now().Add(-1 * time.Hour),\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.Error(t, env.GetWorkflowError(), \"Workflow should fail\")\n\n\t// Verify billing was NOT reported for failed jobs\n\tassert.False(t, getAccountUsageCalled, \"GetAccountUsage should NOT be called on failure\")\n\tassert.False(t, reportRFTBillingCalled, \"ReportRFTBilling should NOT be called on failure\")\n}\n\n// TestRFTJobWorkflow_InsufficientCapacity tests that the workflow enters a queue loop\n// when encountering insufficient capacity or config errors during deployment creation.\nfunc TestRFTJobWorkflow_InsufficientCapacity(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-queue-test\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register activities\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"CreateOrGetDeployment\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ExecuteComprehensiveCleanupInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"ExecuteComprehensiveCleanup\"})\n\n\t// Mock successful deployment creation\n\t// In production, capacity errors are automatically retried by Temporal's activity retry policy\n\texpectedDeploymentName := \"accounts/test-account/deployments/rft-hotreload-queue-test\"\n\tenv.OnActivity(\"CreateOrGetDeployment\", mock.Anything, mock.Anything).Return(\n\t\t&activities.CreateOrGetDeploymentOutput{\n\t\t\tDeploymentName: expectedDeploymentName,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t}, nil,\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutp"} +{"text": "When I visit my Aunt Hannah, it’s easy to choose a wine to bring. She loves Ivanović Prokupac from Serbia, and — a little easier to find — Juan Gil’s Silver Label Monastrell from Jumilla. The latter, a Spanish red, remains relatively unknown in the United States, a fact which baffles me. Well-made Monastrell has such rich fruit and hearty character, it should be a perfect fit for the stereotypical American palate. And just as important, it usually offers a fantastic flavor-to-price ratio. Binny’s, for example, sells the Juan Gil Silver Label for $14.\nI suspect the obscurity of Monastrell (known as Mourvèdre in France) has something to do with the fact that it’s home base in southeastern Spain produced “lackluster” wines until only recently, according to The Sotheby’s Wine Encyclopedia. The World Atlas of Wine agrees, noting that “Wine is still made that is deliberately strong and sweet, but the best can compete with ‘premium’ super-ripe reds from California and Australia.” Fans of Zinfandel and Shiraz, if you’re looking for something new, Monastrell from Jumilla may be just the thing.\nLike Salta in Argentina, Jumilla has an arid climate, a large day/night temperature differential and a relatively high altitude (Juan Gil’s vines grow between 2,300 and 2,800 feet). As a result, the vineyards tend to have low yields and the grapes tend to be thick-skinned, producing concentrated, aromatic and rather tannic reds, often with high alcohol levels. In other words, these wines are big.\nAnd, as The Oxford Companion to Wine explains, Monastrell has “…a somewhat gamey, almost animal flavour when young.” That sounds problematic, but in the right hands, that “animal” quality turns into an appealing savory undertone akin to grilled meat, smoke or even bacon, adding complexity to the wine.\nI had an opportunity to experience the full potential of Monastrell at a recent tasting hosted by Juan Gil in Chicago. The wines ranged in price from $8 a bottle into the triple digits, and there wasn’t a stinker in the bunch. That said, exercise caution with bargain-priced Monastrell. I once had a harrowing experience with $9 Bodegas Volver “Wrongo Dongo” Monastrell, for example, though the resulting puns that flew around the table were some consolation. When in doubt, stick to Monastrell that costs $12 and up.\n2014 Honoro Vera Monastrell: This entry-level Monastrell typically sells for less than $10 a bottle, but it tastes more expensive. It has taut and ripe red fruit, a savory undertone, some forceful white-pepper spice and a tannic finish. It all seemed in balance, and my goodness, what a value for the money.\n2014 Honoro Vera Organic Monastrell: Surprisingly, the organic version of this wine sells for the same price (Binny’s sells both for $8 a bottle). It tastes different from the other Honoro Vera — it smells heartier, with more of a hint of meat and funk. Full of raspberry jam, it starts with a refined mouthfeel and builds to a big, rather rustic finish. Again, it’s a superlative value.\n2014 Orowines “Comoloco” Monastrell: Juan Gil also owns Orowines, which produces another remarkably inexpensive Monastrell (Binny’s sells it for $8 a bottle). This example sees no wood, and though stainless steel highlights pure Monastrell fruit, I prefer a touch of oak. The wine smelled of dark red fruit and black pepper, and its fruit felt pleasingly fresh. The savory note and spice were both there, but I missed something in the midsection. Even so, considering the price, you’re still getting a lot of flavor for the money.\n2013 Juan Gil Silver Label Monastrell: Aged 12 months in French oak, this wine costs more (about $14), but for that money, you’re getting a richer, darker wine, with no absence in the midsection. For years, the Silver Label has been one of my go-to reds.\n2013 Juan Gil 18: If you have between $25 and $30 to spend, spend it on this. The 18 is a blend of 60% old-vine Monastrell, 30% Cabernet Sauvignon and 10% Syrah, all aged 18 months in French and American oak. The dark, rich aroma seduces immediately, and any Parkerized American will love the big, jammy fruit. A shaft of spice shoots right through it, keeping the wine balanced, and I loved the green tobacco note on the finish. This is a gorgeous wine, and a great value even at $30.\n2013 Juan Gil “Aniversario” 100: Created for Juan Gil’s centennial, the “Aniversario” blends 50% Monastrell, 25% Cabernet and 25% Syrah, and it sells for just a bit more than the 18 (if you can find it). It sees 23 months in French and American oak, and it’s big, dark and rich. The fruit feels opulent but tightly controlled, and the focused spice keeps going and going. The wine slowly unfolds, growing and developing to a big finish of spice and fine-grained tannins. This is a delicious, elegant and powerful wine, but if I had the choice between the 100 and the 18, I would pick the 18.\n2013 Bodegas El Nido “Clio”: Juan Gil also owns El Nido winery, a “…partnership between the Gil family and Chris Ringland, one of Australia’s best winemakers,” according to El Nido’s website. The Monastrell vines are “very old… almost centenarians,” and they produce some incredible fruit. This blend of 70% Monastrell and 30% Cabernet Sauvignon sees between 22 and 26 months in oak, and it was my favorite wine of the entire tasting. It had an aroma of rich, dark, almost jammy fruit, in the range of black cherries and plums. On the palate, the fruit felt sumptuously lush and clear, with a laser beam of white pepper spice streaming through it. The tannins on the finish were big but very refined. Binny’s sells the “Clio” for $40, and it’s worth every penny. A wine like this from Napa would easily be twice the price."} +{"text": "Sep 14, 2012\nI have been working on a new book project for several months now. I have always had a strong interest in classical architecture. I especially like the challenge of modeling such traditional forms with today’s modern software. I am also particularly struck by the irony of how such forms actually prove quite challenging to model using computer software.\nI actually began my first explorations of this kind of thing back several years ago using AutoCAD Architecture. I have a very detailed Ionic column capital that built using ACA objects. I was able to get a pretty decent results but it suffered from being a very “heavy” model with lots of tessellation. But it was not just an AutoCAD block. I built it as an ACA Style and it had some parametric qualities. I was even able to get a 3D print of it (thanks to Zach Kron of Buildz fame).\nI left the project on the back burner for a while and picked up again about a year or two ago only this time in Revit. My goal was to create not just one column, but all of the major orders and make them fully parametric Families. Since everything in classical architecture relies heavily on proportion, it seemed like a really nice challenge for the Family Editor.\nOne limitation that I ran into early on is Revit’s inability to scale native geometry. It is rather ironic actually, because if import AutoCAD geometry into Revit, there is a scale property in the Type Properties dialog. But no such think for native solids. Therefore, I was forced to instead scale each piece of the sketches individually. This means that scale a simple box, you need three parameters: length width and height. To scale them proportionally, you need to apply formulas to at least two of those dimensions. This is not too big of a deal unless you are dealing with very complex and curvaceous forms. Like say the volutes on an ionic column, the flutes on a column shaft or the acanthus leaves on a Corinthian capital.\nI tried to stick with the traditional Family Editor because even though you can change the category of an Adaptive Component, I still don’t like that you cannot copy and paste between them and traditional families and that you cannot nest an adaptive into a traditional family. But despite this, I found that an adaptive was really the best choice for the Corinthian. With access to splines and points, you gain more modeling freedom and things like the leaves were MUCH easier to build this way. Zach Kron was also a big help here in giving me a very useful tip to scale my leaves proportionally without having to create a million parameters. So thanks a bunch for that tip Zach! Basically all you have to do is host your points on your Reference Lines and then scale the Reference Lines with a simple Length, Width and height parameter. Works really well. Couple that with 2013’s new Divide and Repeat feature and we can avoid lots of cumbersome arrays. I like that a lot too.\nThe project has indeed grown beyond my original scope and become significantly more involved. As a consequence, as I work through building fully parametric models of Tuscan, Doric, Ionic and Corinthian columns and colonnades, I decided that I would like to share a little bit of work in progress to gauge the general interest in this project. My aim is to see what sort of general interest there is in a book and/or videos on the subject. While the focus is certainly on modeling at this stage, I would like to see it expand to encompass more aspects of advanced Family Editor techniques.\nThroughout this post have been some images of what I have so far. Everything flexes and can scale to different sizes. Naturally none of it is complete yet, but I am making progress.\nNow I should also mention that most of the work so far has been on the high (Fine) detail versions. I fully intend to create a course and probably a medium detail version of each family as well. Here is a simple version for the Corinthian.\nIf you have any comments at all on the project, I am most interested to hear them. I am curious in the level of interest in an eventual book, but also interested in any other comments or suggestions that folks might have. So please feel free to share your thoughts. Thanks!\nSwept blend approach. Form is OK, but not very smooth."} +{"text": "ut, error) {\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Mock cleanup activity\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Setup input\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"queue-test\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tDeploymentShape: \"accounts/fireworks/deploymentShapes/rft-base-model/versions/v1\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{Enabled: false},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: false, // Enable hot reload to trigger deployment creation\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\t// Register a query handler check\n\tenv.RegisterDelayedCallback(func() {\n\t\tval, err := env.QueryWorkflow(\"GetCurrentEpochMetadata\")\n\t\trequire.NoError(t, err)\n\t\tvar meta EpochMetadata\n\t\terr = val.Get(&meta)\n\t\trequire.NoError(t, err)\n\t}, 100*time.Millisecond)\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n}\n\n// TestRFTJobWorkflow_K8sJobQueueing tests that the workflow enters a queue loop\n// when encountering insufficient capacity during K8s job creation.\nfunc TestRFTJobWorkflow_K8sJobQueueing(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\t&DatasetValidationWorkflowOutput{JobName: \"validation-job\"}, nil,\n\t)\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ExecuteComprehensiveCleanupInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"ExecuteComprehensiveCleanup\"})\n\n\t// Mock successful RLOR job creation\n\t// In production, capacity errors are automatically retried by Temporal's activity retry policy\n\tenv.OnActivity(\"RunCreateRlorK8s\", mock.Anything, mock.Anything).Return(\n\t\t&activities.RunCreateRlorK8sOutput{\n\t\t\tK8sJobName: \"k8s-job-123\",\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\tJobStatusFile: \"gs://bucket/status\",\n\t\t}, nil,\n\t)\n\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\t&RFTEpochWorkflowOutput{Status: \"COMPLETED\"}, nil,\n\t)\n\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"k8s-queue-test\",\n\t\tDatasetName: \"dataset\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"eval\")},\n\t\tBaseModel: \"base\",\n\t\tOutputModel: \"output\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{Epochs: 1},\n\t\tWandbConfig: &gpb.WandbConfig{},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tDisableHotReload: true, // Skip deployment creation\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, WorkflowMetaData{})\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n}\n\nfunc TestRFTJobWorkflow_LastIterationSkipped_UsesActualOutputModel(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.UpdateRFTJobStatsInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"UpdateRFTJobStats\"})\n\n\tenv.OnActivity(\"UpdateRFTJobMetaInfo\", mock.Anything, mock.Anything).Return(nil)\n\tenv.OnActivity(\"UpdateRFTJobStats\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWork"} +{"text": "Meet Nautilus, a new science and culture magazine with gorgeous design and a team of talented writers like Rose Eveleth, Lee Billings, Jennifer Ouellette, Veronique Greenwood and more. The first issue is on human uniqueness. And here’s Amos Zeeberg talking about what Nautilus is about\nWorried about H7N9? Don’t forget H5N1. It can go airborne after swapping genes with the 2009 pandemic H1N1 strain. My story for Nature.\nThe inimitable Maryn McKenna on the new coronavirus & international opacity about outbreaks\nPsychology bonanza! Nature published a story about a new dust-up on social priming following a failed replication, drawing criticism from several psychologists including Daniel Simons and Pete Etchells. Ase Helene and Rolf Zwaan consider the current state of priming research. The NYT had a long profile of psychologist fraudster Diederik Stapel that is good in places, but also arguably allows him to seek fame through infamy. Dave Nussbaum responds that the Stapel Continuum is a myth. And fraudbuster Uri Simonsohn has a new paper on how to evaluate replication attempts. NB: needs 2.5x the n of original\nAn incredible elaborate prank on people who pirate games. Sheer genius.\n10 Reasons Why Bone Eating Worms Are F’n Awesome, by Craig McClain.\nTone-deaf birds disrupt society, are easier to get into bed\nWho needs the DSM? Not the National Institute of Mental Health. By Vaughan Bell\nFlying Bee-Sized Robots\nThis is how you do an infographic. On sharks. And what we’re doing to them.\nNature has an excellent special on GM crops\nGreat Maria Konnikova piece on the science of grasping for answers after tragedies, and the value of keeping cool\nFrequently beautiful: Matthew Battles on the curious way museum objects transpire into metadata\nSPOOOOOONNNNN! Carl Zimmer on ticks.\nWhat? Oh, nothing, just a 2000km-wide hurricane on Saturn. Carry on.\nWhat Erika Check Hayden did here is not underhyping. It was journalism. If only more would do the same.\nWorld’s oldest and stickiest lab study ready for drop of excitement\nWales measles epidemic tops 1000 cases, driven by failure to vaccinate.\nReporting Fail: Reidentification of Personal Genome Project Participants\nEver wanted to see a rattlesnake head try to bite someone? That’s right–JUST THE HEAD.\nA gorgeous free ebook about ants & citizen science.\nA right Royal cock-up: Prince Andrew elected to the Royal Society.\n“The role involves standing guard and warning research teams… about approaching polar bears.”\nThe Coolest and Most Terrifying Biomimetic Robots:\nGovt’s ‘Nudge Unit’ to become a business.\nFlorida teen charged with felony for trying science\nCool new fossil, sort of halfway between a hummingbird and a swift\nSmall but positive victory – Boots stops labelling science toys as “for boys” after backlash\nLots of hope + praise around appointment of Jeremy Farrar as new big cheese of Wellcome Trust\n2.5 yr old baby who was born without a windpipe gets a lab-grown one. (More on this from me.)\nOver 20,000 people apply for one-way ticket to Mars. TAKE THEM ALL. It’s the B-Ark!\nHow to read an elephant: researchers decipher elephant body language\nLizards have 2 penises; we know next to nothing about ’em. Maybe this crowdfunded project will help?\nOn engaging the public without disengaging from science.\n7 vulture species endangered because people are smoking their brains in the belief it will make them clairvoyant\nA festival of scientists chatting about science in pubs. Sounds good. Coming soon to London, Oxford and Cambridge.\nCongrats to the inimitable Liz Neeley & her COMPASS chums for their new paper on connecting science, policy & engagement\nAdam Rutherford gets his knickers in a right-handed twist over left-handed DNA. And, sorry, WHAT about Cookie Monster??!?\nChina is plundering the planet’s seas—and it’s doing it 12.5 times more than it’s telling anybody\nCoralbots – a project to save coral reefs with robots, on Kickstarter.\n“My activism, which I wrongly thought of as being ‘environmental’, has done real damage in the world.” – Mark Lynas.\nThe Evolution of the Country Mouse and the City Mouse\nEurope to ban pesticides in effort to protect bees\nCan these folks work out the actual colour of a dinosaur’s skin?\nAmazing photos of the world’s largest falcon hospital\nTinkerbella – a tiny fairy fly. Also a fly with terrifying genital pincers\nBoa attacks and eats iguana\nNew Study Finds Nothing That Will Actually Convince You To Change Your Lifestyle So Just Forget It\nNew Pacific Rim trailer is the alternative ending to Titanic.\nThe Mormon bishop “was one of several ppl who came to the aid of the woman…but no one else was wielding a sword”.\nWords with Friends: the story behind the 31-author Science Writer Handbook\nThe “special” Chinese version of Iron Man 3 is just bizarre\nTwitter is looking for a “Head of News and Journalism“. Good job title!\nThe British public has completely ignored newspaper & Tory attacks on wind farms\nTwitter’s advice to journalists: for security, keep one computer for Twitter, don’t use it to surf web. Er…\nThe company that’s buying up all the key pieces of the online news ecosystem\nIs It Journalism, or Just a Repackaged Press Release? Here’s a Tool to Help You Find Out\nMaker of magic bomb-detecting dowsing rods convicted for fraud. Meanwhile, people are still dying.\nA sad day – John Hopkins is shuttering its science writing program"} +{"text": "Post No. 800: Phils lose close one thanks in part to a bad call by the first base ump, as they drop one to the Astros, 3-2.\nThanks in part to a bad call by the first base umpire, the Phils drop a close one to the Astros as former Phil Brett Myers come back to stifle his ex-teammates, 3-2.\nThe Astros took the lead in the first as, with runners on the corners, and with nobody out, Hunter Pence hits a sacrifice fly, scoring Michael Bourn, who had earlier singled, stole second base and then moved up to third on Angel Sanchez’s single, giving the Astros a 1-0 lead, while sending Sanchez, who had just singled, on to second base. The Astros then tried to increase their lead as Sanchez tried to score on Carlos Lee’s double, but was instead gun down at home plate, 8-4-2, for the inning’s second out. The Phils tied it up at one-all in the third as Carlos Ruiz hits a lead-off home run, his sixth home run of the year. The Phils then took the lead later in the inning as, with two men on, and with one man out, Chase Utley hits an RBI single, knocking in Jimmy Rollins, who had earlier singled, before moving up to second on Lee’s fielding error, moved up to third on a fielder’s choice grounder hit by Shane Victorino, as Joe Blanton, who had earlier singled, and had gone to third on Rollins’ single, is thrown out at home, 3-2, giving the Phils’ a 2-1 lead, while Victorino, who was safe at first on the fielder’s choice, moved up to second base. The Phils tried to add to their lead in the sixth as, with a runner on second, Jayson Werth, via a double, and with two men out, after Raul Ibanez had just struck out, swinging, the Astros proceeded to intentionally walk Ruiz, to get to Wilson Valdez, but, after ball four is thrown, Astros catcher Humberto Quintero threw a strike to second base, picking off Werth, 2-6, who’s mind appeared to have been somewhere else, to end the inning. This base running blunder might have come back to haunt the Phils, as, in the eighth, with two men on, and with two men out, the Astros took the lead as Lee hits a two-run single, scoring pinch hitter Jason Michaels, who had earlier singled, had moved up to second on Bourn’s bunt single, and moved to third on Sanchez’s sacrifice bunt, 5-4, and Bourn, who had gotten on base with a bunt single, when he had in fact went out of the base line to avoid being tagged by Ryan Howard, but was called safe by the first base umpire, which lead to a long argument by Charlie Manuel before he was ejected from the game for arguing the call, and then went to second on Sanchez’s bunt, giving the Astros a 3-2 lead. That would end up being the final score as Brandon Lyon put down the Phils in the ninth for his seventh save of the season.\nJoe Blanton receives a no-decision as he pitches seven strong innings, giving up just one run on six hits, while striking out nine. Ryan Madson records his fourth blown save of the year before taking the lost as he pitches an inning, giving up two runs on three hits, while striking out a batter. His record is now 4-2 with a 3.58 ERA. Brad Lidge pitches a scoreless inning, giving up a hit, while he strikes out one. Brett Myers gets the win as he pitches seven inning, giving up two runs on nine hits and a walk, while striking out nine. His record is now 9-7 with a 3.08 ERA. Tim Byrdak collects his sixth hold of the year as he pitches a scoreless inning, giving up a hit. Brandon Lyon receives his seventh save of the year as he pitches a scoreless inning, giving up a walk.\nThe Phils had ten hits in the game, with Jimmy Rollins and Jayson Werth both leading the team with two hits each, with Rollins’ two hits being singles, while Werth’s hits were a single and a double. Chase Utley, Raul Ibanez, Carlos Ruis, Wilson Valdez, Joe Blanton and pinch hitter Dom Brown had the other six Phils’ hits, all singles, except for Ruiz’s solo home run, with Utley knocking in the other Phil’s run. The offense did not get the much needed key hit last night.\nThe Phils (70-54, 2nd East) will continue their series with the Astros (55-69, 4th Central) with a night game tonight. The game will be played at Citizens Bank Park and will start at 7:05 pm Eastern. The Phils will send to the mound Cole Hamels (7-10, 3.51), who is coming off a lost to the Giants on August 19, as he went only five innings, giving up five runs on seven hits and a walk, while striking out only five, in the Phils’ 5-2 lost. In his last three starts, his record is 0-3, as he pitched twenty innings, giving up seven runs on eighteen hits and three walks, while striking out twenty-four. He will be hoping that the bats will finally give him some runs so that he can finally end his win-less streak. The Astros will counter with Bud Norris (6-7, 5.23), who is coming off a win over the Mets on August 19, as he pitched seven innings, giving up two runs on two hits and two walks, while striking out four, in the Astros’ 3-2 win. In his last three starts, his record is 2-0 with a no-decision, as he pitched twenty and two-thirds innings, giving up eight runs on fourteen hits and five walks, while striking out twenty-one. He will be going for his third win in a row. The Phils’ offense will be out to score runs for Hamels tonight."} +{"text": "flow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-123\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Track the epoch index to determine behavior\n\tepochCounter := 0\n\n\t// Mock child workflow execution\n\t// Epoch 0: Successful training, produces model\n\t// Epoch 1: Successful training, produces model\n\t// Epoch 2 (last): Empty dataset, skips training, returns input model\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tcurrentEpoch := epochCounter\n\t\t\tepochCounter++\n\n\t\t\tif currentEpoch < 2 {\n\t\t\t\t// First two epochs: successful training\n\t\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\t\tRolloutJobName: fmt.Sprintf(\"rollout-job-%d\", currentEpoch),\n\t\t\t\t\tEvaluationJobName: fmt.Sprintf(\"eval-job-%d\", currentEpoch),\n\t\t\t\t\tRLORJobName: fmt.Sprintf(\"rlor-job-%d\", currentEpoch),\n\t\t\t\t\tOutputModel: input.TrainingConfig.OutputModel, // Use the expected output model\n\t\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t\t\tEvaluationOutputDataset: fmt.Sprintf(\"eval-dataset-%d\", currentEpoch),\n\t\t\t\t\tEvaluationStats: `{\"total_count\": 100}`,\n\t\t\t\t}, nil\n\t\t\t} else {\n\t\t\t\t// Last epoch: training skipped due to empty dataset\n\t\t\t\t// Returns the input model instead of the expected output model\n\t\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\t\tRolloutJobName: fmt.Sprintf(\"rollout-job-%d\", currentEpoch),\n\t\t\t\t\tEvaluationJobName: fmt.Sprintf(\"eval-job-%d\", currentEpoch),\n\t\t\t\t\tRLORJobName: \"skipped\", // RLOR training was skipped\n\t\t\t\t\tOutputModel: input.Model, // Returns input model (from previous successful training)\n\t\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t\t\tEvaluationOutputDataset: fmt.Sprintf(\"eval-dataset-%d\", currentEpoch),\n\t\t\t\t\tEvaluationStats: `{\"total_count\": 100}`,\n\t\t\t\t}, nil\n\t\t\t}\n\t\t},\n\t)\n\n\t// The expected final output model that user specified\n\texpectedFinalModel := \"accounts/test-account/models/final-output-model\"\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-123\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tDatasetGcsUri: \"gs://bucket/training-data\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: expectedFinalModel, // User expects this as final model\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tMetadataPath: \"\", // No metadata path for this test (activity will handle nil)\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 3, // 3 epochs to test multiple iterations\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0, // No chunking, use multiple epochs instead\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\t// Verify workflow completed successfully\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n\tassert.Equal(t, int32(3), result.TotalEpochs)\n\tassert.Equal(t, int32(0), result.TotalChunks)\n\n\t// Verify we have all 3 epoch outputs\n\tassert.Len(t, result.EpochOutputs, 3)\n\n\t// Verify first two epochs completed with training\n\tassert.NotEqual(t, \"skipped\", result.EpochOutputs[0].RLORJobName,\n\t\t\"First epoch should have completed training\")\n\tassert.NotEqual(t, \"skipped\", result.EpochOutputs[1].RLORJobName,\n\t\t\"Second epoch should have completed training\")\n\n\t// Verify last epoch was skipped (empty dataset after transformation)\n\tassert.Equal(t, \"skipped\", result.EpochOutputs[2].RLORJobName,\n\t\t\"Last epoch should have skipped training due to e"} +{"text": "Particularly for those of us who enjoy street photography or simply always want to have a camera at hand, one of the more frustrating versions of “the quest for the perfect bag” is to find an everyday bag. I’m talking about the kind of bag that can carry a small camera kit along with a laptop, cellphone, and whatever other widgets you need with you. Something that isn’t overly showy or bulky, but isn’t completely unprotected either. The Messenger Mini Photo-Laptop Bag is one of Tenba’s solutions to this oh-so-common problem.\nHere’s what Tenba has to say about the Mini Photo-Laptop Bag:\n“The Tenba Messenger is an urban-inspired laptop bag that’s designed to hold everything you need for a day; on vacation or at work; at school or at the gym. Adjustable dividers let you configure the interiorfor a wide variety of photographic or video equipment, and removing the dividers converts the Messenger Mini into a perfect, general-purpose carrying bag.”\nThe Messenger Mini is more or less shaped like a small to medium sized messenger bag. However, unlike most messenger bags, it is padded all the way around and doesn’t form to your body. The bag is divided into two internal spaces, a laptop slot and the main camera section. The camera area is further divided in thirds. The center space is intended to be used as the place where your camera would sit facing down with lens attached. The remain spaces are sized to easily fit f/2.8 pro size lenses as is, or they can be further split with padded dividers. The shoulder pad is more padded than you would typically see on a messenger bag. But other than that, the Messenger Mini has the usual assortment of pen/phone/gum pockets that any good bag of this style has these days. It comes it a rather large assortment of colors for a camera bag. You’ve got seven choices, from the basic black or gray to brighter choices such as burnt orange and plum.\nHands on test:\nThe Tenba Messenger Mini is is bigger and somewhat bulkier than what I had been using most often as my “everyday” bag, a Domke 803. So my first impression was “This sure seems big for an everyday bag. Look how fat it is!” To be fair, the Domke is a quite small, and perhaps more importantly, quite narrow bag and there are few that match it in that regard. But that having been said, the size of the Messenger Mini quickly ceased to be an issue for me. For one thing, the space available in the Tenba is a much useful the DSLR photographer than the space in something like a the 803. The fact that you have the space for f/2.8 zooms or fast primes opens up the “useful!” door for many photographers. I’m sure there are people for whom no bag can hold everything they might want to leave the house with, even for a trip to the coffee shop down the street. But for the rest of us, this bag carries just about the perfect amount of gear for a day out shooting. The possibility of filling the bag with all that weight is probably the reason that the Tenba got such a bulky shoulder pad. While slightly too “grippy” for my taste, the pad is really quite comfortable, even fully loaded.\nThe laptop slot functions just as a laptop slot should. It is designed for tablet devices or small laptops, a 13\" macbook is the size I’m talking about here. Large or even medium sized laptops are simply not going to fit. Tablets fit well, though as they aren’t as thick as even a small laptop, they can bounce around a little. There are plenty of the standard small pockets and slots for pens, notepads, batteries and the like. Without wasting time describing them all, I will say that there hasn’t been any time where I thought “I wish there was a place for my _______”.\nOne really outstanding feature is the fact that you don’t have to open up the main flap to access your camera. There is a zipper on the top of the bag that allows you plenty of room to reach in without looking and grab your camera. It’s not the same as having the full flap off, but it’s a lot quicker and more discreet than undoing the buckles and riiiiipppppping the big velcro patches. That zipper is a small thing, but it is a feature that I have long wished was on many of my bags.\nI can’t lie, the Tenba Messenger Mini photo/laptop bag has rather swiftly earned a place as one of my most frequently used bags. I take it to the bar, family dinners, trips to the zoo, and so on. Yes, it’s not exactly the most svelte bag I have ever used. But it also holds the gear I want it to hold and makes it far easier to access that gear than the smaller bags I used in the past. Finally, let me say again that the zipper access on the top of the bag is a stroke of brilliance as far as I am concerned. I use this bag all of the time and I wouldn’t hesitate to recommend it to others.\nHolds a nice amount of gear, room for pro lenses, clever access zipper, comfortable strap pad."} +{"text": "On Wednesday, he appointed Richard Cordray director of the Consumer Financial Protection Bureau, and named three more people to posts on the National Labor Relations Board. Obama gave these jobs out as \"recess appointments\", which is a provision in the Constitution that allows a President to name new heads of agencies without seeking Congressional approval when the Congress is in recess.\nHere's the problem: Congress is not in recess. He's flat-out violating the Constitution. Legal scholars and major news outlets have already criticized Obama for this brazen disregard for our country's foundational law.\nPresident Obama knew the Senate was in pro-forma session. He supported such an exercise when he was in the Senate himself and wanted to block President George W. Bush's agenda. That was then and this is now. Running for re-election, Obama has elevated himself into King Obama. The Congress be damned.\nThe 60-vote threshold may not seem fair. But in his 2006 book, \"The Audacity of Hope,\" Obama wrote, \"To me, the threat to eliminate the filibuster on judicial nominations was just one more example of the Republicans changing the rules in the middle of the game.\" He was angry with Republicans for thinking about flouting precedent.\nObama, however, didn't seem to mind when Democrats changed the rules during George W. Bush's presidency. On Nov. 16, 2007, Senate Majority Leader Harry Reid announced that the Senate would hold pro forma sessions -- that could involve little more than gavel rattling -- during the Thanksgiving holiday \"to prevent recess appointments.\"\nAccording to the Congressional Research Service, \"the Senate pro forma session practice appears to have achieved its stated intent: President Bush made no recess appointments between the initial pro forma sessions in November 2007 and the end of his presidency.\" Upon Obama's election, recesses resumed, but in 2010, the Senate resurrected pro forma sessions.\nAnd now Reid agrees with Obama aides who say that his pro forma sessions are a gimmick. He's supporting the president's attempt to undermine Senate power.\nDuring the Bush administration a favorite criticism was that Bush used his powers in the executive branch too much. That he was zealous in his actions. Now, however, there seems to be little notice of Barack Obama asserting himself and whining that he can't get anything done because those mean Republicans are blocking his agenda.\nNews flash to Barack Obama: blocking his agenda is the job of the Republican party. Just like Newt Gingrich worked to block the agenda of Bill Clinton and Nancy Pelosi worked to block the agenda of George W. Bush, Speaker Boehner and Minority Leader McConnell are working to stop the agenda of Barack Obama.\nSenator Cornyn weighed in on the power grab by President Obama:\nSenator John Cornyn is unhappy that President Obama has appointed Richard Cordray to lead the Consumer Financial Protection Bureau. It’s a recess appointment, done without senate approval.\nHe also pointed out that when Obama was a senator, Obama called a similar recess appointee “damaged goods.”\nIn addition, Cornyn said Obama is unwilling to work with Congress to adopt common-sense improvements in accountability and transparency that would protect small businesses from regulations and red tape.\nAnd from the Wall Street Journal:\nEager to pick a fight with Congress as part of his re-election campaign, Mr. Obama did the Constitutional equivalent of sticking a thumb in its eye and hitting below the belt. He installed Richard Cordray as the first chief of the Consumer Financial Protection Bureau and named three new members to the National Labor Relations Board. He did so even though the Senate was in pro forma session after the new Congress convened this week.\nBarack Obama knows he cannot run on his own record in office. He has no real bragging rights to much success of any issue. The only path to re-election he finds workable now is to fight Congress as the man who is looking out for the middle class, for the little guy in America. It's ridiculous, sure, but Congress traditionally has low approval ratings from voters and this year is no exception to that. Compared to Congressional approval polling, President Obama is higher rated and he has gone that route.\nThis is pure politics and makes for an even more cynical eye on the Obama administration."} +{"text": "mpty dataset\")\n\n\t// CRITICAL: Verify that FinalOutputModel is the actual last trained model,\n\t// NOT the user-specified model name, because the last iteration was skipped\n\tassert.NotEqual(t, expectedFinalModel, result.FinalOutputModel,\n\t\t\"FinalOutputModel should NOT be the user-specified model when last iteration is skipped\")\n\tassert.Equal(t, result.EpochOutputs[2].OutputModel, result.FinalOutputModel,\n\t\t\"FinalOutputModel should match the last epoch's actual output model (from previous successful training)\")\n}\n\n// TestRFTJobWorkflow_HotReloadDeploymentTrackedBeforeActivity verifies that the hot-reload\n// deployment is tracked for cleanup BEFORE CreateOrGetDeployment activity is called.\n// This prevents resource leaks when the workflow is cancelled during deployment creation.\nfunc TestRFTJobWorkflow_HotReloadDeploymentTrackedBeforeActivity(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tregisterMockRFTJobActivities(env)\n\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register activities\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"CreateOrGetDeployment\"})\n\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\t&DatasetValidationWorkflowOutput{JobName: \"validation-job\"}, nil,\n\t)\n\n\t// Track whether deployment was in cleanup resources\n\tvar cleanupCalledWithDeployment bool\n\texpectedDeploymentName := \"accounts/test-account/deployments/rft-hotreload-deploy-tracking-test\"\n\n\t// Mock CreateOrGetDeployment to block and allow cancellation\n\tenv.OnActivity(\"CreateOrGetDeployment\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\t\t// Verify deployment name matches expected pattern\n\t\t\tassert.Equal(t, expectedDeploymentName, input.DeploymentName)\n\t\t\t// Block until context is cancelled - simulating long-running deployment creation\n\t\t\t<-ctx.Done()\n\t\t\treturn nil, ctx.Err()\n\t\t},\n\t)\n\n\t// Mock cleanup to capture what resources are being cleaned up\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ExecuteComprehensiveCleanupInput) error {\n\t\t\t// Check if deployment is in the cleanup resources\n\t\t\tfor _, resource := range input.Resources {\n\t\t\t\tif resource.ResourceType == common.ResourceTypeK8sDeployment &&\n\t\t\t\t\tresource.ResourceName == expectedDeploymentName {\n\t\t\t\t\tcleanupCalledWithDeployment = true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"deploy-tracking-test\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tDeploymentShape: \"accounts/fireworks/deploymentShapes/test/versions/v1\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: false, // Enable hot-reload\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\t// Cancel the workflow while CreateOrGetDeployment is executing\n\tenv.RegisterDelayedCallback(func() {\n\t\tenv.CancelWorkflow()\n\t}, 100*time.Millisecond)\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\n\t// Workflow should be cancelled\n\terr := env.GetWorkflowError()\n\trequire.Error(t, err, \"Workflow should have an error due to cancellation\")\n\n\t// CRITICAL: Verify that cleanup was called with the deployment name\n\t// This proves the deployment was tracked BEFORE CreateOrGetDeployment completed\n\tassert.True(t, cleanupCalledWithDeployment,\n\t\t\"ExecuteComprehensiveCleanup should be called with deployment name even when \"+\n\t\t\t\"CreateOrGetDeployment is cancelled mid-execution. This verifies the deployment \"+\n\t\t\t\"is tracked for cleanup BEFORE the activity is called.\")\n}\n"} +{"text": "Six feet, eight inches tall, given to doing pull-ups on the office rafters, carrying the upper-body strength of a construction crane, Patrick Swanson nevertheless has health issues. They become particularly onerous during late Summer and early Autumn of every year. He can’t sleep past 4 AM. His appetite slumbers for long periods, then rages out of control. His rhythms disrupted, he loses focus on what’s before him, obsessing instead over the “silvery flashes” darting through his mind.\nA metabolic problem? Restless leg syndrome? Mental issues? No. Patrick has Chronic Annual Re-occuring Steelhead Fever, which he first contracted at age 10 backtrolling a wiggle-wart on the Columbia River in eastern Washington state.\n“I still remember the size, too: seven pounds, thirty inches long,” Patrick says, looking distant, seeing silvery flashes. “When I say it out loud, it sounds like giving birth to a child, doesn’t it?”\nThe only locally-available palliative for CARSF is found in the sterling waters of Idaho’s Clearwater River, about an hour to the south of the Populi office. A four-hour early-morning round trip takes the edge off the shakes and pangs just enough to spend the rest of the day holed up here, where Patrick earns his health insurance as Populi’s System Administrator and chief bug exterminator.\nAs bug-stomper, he forms an integral part of our Customer Support crew. When a customer says, “This ain’t working,” after Populi Support verifies it, Patrick hears about it and laces up his size 16’s. As System Administrator, Patrick’s workday can be fairly catch-all. He sets up new servers, keeps up with how they’re performing, upgrades background software, constructs security bulwarks, runs database queries, and a dozen other things. He does all this by tapping on a keyboard, looking at things on monitors, and through the sheer force of intimidation via his flawless Arnold Schwarzenegger impersonation.\nThe keyboard and monitor stuff he learned while earning his Computer Science degree at the University of Idaho, which developed and honed his considerable security chops. “They have this thing called RADICL—Reconfigurable Attack-Defend Instructional Computing Lab. It’s an air-gapped computer network that’s not connected to the external internet in any way. Basically, it’s an instructional facility for computer security and a free-for-all hacking playground.” If you think that’s esoteric, another part of his education involved “drawing state diagrams for finite non-deterministic automation systems”. In the midst of all this, Patrick remained focused on becoming employable post-college and developed a focus on solving real problems. Like the rest of us here, he worked a few years at EMSI on security and systems administration before cutting loose to help craft Populi into a going concern.\nThus, the computers. The Schwarzenegger impression originated with Patrick’s older brother Lucas, whose predilection for weightlifting molted into a robust appreciation for the acting chops of the former Governor of California. The brothers diligently studied the man’s ouevre, repeating lines of dialogue until they mastered the original Conan the Barbarian’s certain je ne sais quoi. Patrick, in the process, more than came into his own: “Now, when we’re together, it sounds like a troupe of Arnolds are in the room.”\nThe Swanson boys grew up in southeast Washington’s Tri-Cities area near their father’s groundwater remediation work at the Hanford nuclear site. Their sisters—including Patrick’s twin (she looks nothing like him)—ardently pursued music while the boys were outside stalking game through the sagebrush and dry hills. Then came that day at age 10 when he saw the flopping seven-pounder at his feet on the edge of the Columbia River. When the fever overtook him.\nSince then, his search for a cure has been admittedly tepid. Asked how he copes, he simply starts speaking: “The biggest steelhead I caught was around 15 pounds. Not huge but a decent fish. The steelhead on the Clearwater are B-run steelhead which means they’re a bigger strain. They stay in the ocean an additional year before coming up to spawn—as opposed to the smaller A-run.\n“But I’m still searching for that elusive, 20+ pound steelhead,” he concludes. Then his forehead twitches."} +{"text": "\"Instead of being adversaries to government power ... [the media of Washington, D.C., are] ... servants to it and mouthpieces for it.\"\nSo said the Guardian's Glenn Greenwald, who broke the story of Edward Snowden's disclosure of NSA spying on the American people, after Greenwald's confrontation with Meet the Press's David Gregory. Greenwald needn't have limited his observation to the D.C. media. Plenty of reporters and cable-news talking heads are playing the same role in the NSA drama.\nIndeed, if they spent half the time investigating Obama's Big Brother operations that they spend sneering at Snowden and Greenwald, Americans might demand that the government stop spying on them.\nBut to much of the mainstream (and not-so-mainstream) media, Snowden and Greenwald - not the NSA, the Obama administration, and the supine Congress - are the story - a story of villainy.\nThe examples are endless. The day after Snowden revealed himself as the whistleblower, Joe Scarborough, the former Republican congressman and host of MSNBC's Morning Joe, ordered his director to take the image of \"that weasel\" off the screen. The other day, his sidekick, Mika Brzezinski, asked, \"Is there anything we can do to track him down?\" (Emphasis added.) She meant the government.\nBrzezinski went on to accuse Snowden of taking the job with NSA contractor Booz Allen Hamilton \"to screw over our government.\" That's how one who speaks power to truth spins it. Snowden's service to the American people is hardly undercut by his having taken the job intending to expose government violations of the Fourth Amendment.\nMSNBC's self-identification as a progressive network is hard to square with its unrelenting assaults on Snowden and Greenwald, and its de-emphasis of NSA surveillance. Andrea Mitchell, who functions as the network's chief diplomatic stenographer, wondered why the NSA was hiring contractors when it could be recruiting people with the \"right value system\" from the military. (She's forgotten that whistleblower Bradley Manning is in the military.) Chris Matthews of Hardball says that any foreign government that won't turn Snowden over to the U.S. government is \"no buddy of ours.\"\nMSNBC personnel routinely describe Greenwald as \"defensive,\" which apparently is their code word for people who push back at stupid questions. For example, when Gregory asked Greenwald if he could be indicted for \"aiding and abetting\" Snowden, and Greenwald asked in return how a journalist could equate reporting with criminal activity, he was treated with disdain. Gregory even questioned Greenwald's journalistic credentials, as did Paul Farhi of the Washington Post.\nI've focused on MSNBC because it has so egregiously and persistently circled the wagons around the government. It's an old story: TV hosts and reporters need access to government officials, but access is jeopardized if they antagonize those officials. Better to play it safe and sneer at Snowden and Greenwald.\nYou don't have to work for MSNBC to suck up to power. Op-ed writers from conservative David Brooks to progressive Richard Cohen have tried to portray Snowden as an alienated oddball, as though no one could have a legitimate purpose in unmasking government surveillance. (Brooks thought it relevant to write that Snowden \"has not been a regular presence around his mother's house for years.\" Really!) Pundits repeatedly refer to Snowden's having dropped out of high school, which apparently signals some serious moral or mental defect in the young man. More likely he was bored with the dull and regimented curriculum so typical of government high schools.\nOthers have tried to read much into Snowden's stops in Hong Kong and Moscow. He might be a spy, they suggest. But wouldn't a spy have kept his identity secret while selling his information to \"the enemy\"? It doesn't occur to the pundits that Snowden's priority right now is to stay out of the clutches of the U.S. government. Snowden has no moral obligation to be a martyr. Let's not forget how Bradley Manning has been treated for his disclosures of government wrongdoing. He faces life imprisonment.\nSnowden and Greenwald have not \"aided the enemy\" - unless the American people are the government's enemy. What they have done is embarrass the Obama administration by exposing criminal activity.\nFor the media's defenders of power against truth, that's inexcusable.\nSheldon Richman is vice president and editor at The Future of Freedom Foundation in Fairfax, Va."} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/quotas/quota_test.go. Lines: 827.\n\npackage quotas\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/clusterregistry\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/constants\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/database\"\n\torbclient \"github.com/fw-ai/fireworks/control_plane/pkg/orb/client\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\tresourcename \"github.com/fw-ai/fireworks/go/resource_name\"\n\t\"github.com/orbcorp/orb-go\"\n\t\"github.com/stretchr/testify/mock\"\n\t\"github.com/stretchr/testify/require\"\n\t\"google.golang.org/genproto/googleapis/type/money\"\n\t\"gorm.io/gorm\"\n)\n\n// createTestDeploymentShapeVersion creates a simple deployment shape version for testing.\nfunc createTestDeploymentShapeVersion(t *testing.T, db *gorm.DB, accountId string,\n\tshapeId string, versionId string, acceleratorType gpb.AcceleratorType, acceleratorCount int32) {\n\terr := db.Create(&database.DeploymentShapeVersion{\n\t\tDeploymentShapeVersionName: *resourcename.NewDeploymentShapeVersionName(accountId, shapeId, versionId),\n\t\tSnapshot: &database.DeploymentShape{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: acceleratorCount,\n\t\t},\n\t}).Error\n\trequire.NoError(t, err)\n}\n\nfunc TestRefreshQuotaUsages(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\trequire.NoError(t, db.Model(&database.Account{AccountName: *resourcename.NewAccountName(\"my-account\")}).\n\t\tUpdate(\"OrbSubscriptionId\", \"EvWfLnf3FvndYVHy\").Error)\n\n\t// Create a deployment (regular)\n\tdeployment := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"deployment-1\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tMaxReplicaCount: 2,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}\n\trequire.NoError(t, db.Create(deployment).Error)\n\n\t// DisableAccounting should NOT affect quota usage (quota models capacity pressure).\n\tdisableAccountingDeployment := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"deployment-disable-accounting\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tMaxReplicaCount: 3,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t\tDisableAccounting: true,\n\t}\n\trequire.NoError(t, db.Create(disableAccountingDeployment).Error)\n\n\t// Spot deployments should be excluded from quota usage.\n\tspotDeployment := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"deployment-spot\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tMaxReplicaCount: 100,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t\tSpot: true,\n\t}\n\trequire.NoError(t, db.Create(spotDeployment).Error)\n\n\t// Training deployments should count against training quota, not deployment quota.\n\ttrainingDeployment := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"deployment-training\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tMaxReplicaCount: 4,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t\tForTraining: true,\n\t}\n\trequire.NoError(t, db.Create(trainingDeployment).Error)\n\trequire.NoError(t, db.Create(&database.Quota{\n\t\tQuotaName: *resourcename.NewQuotaName(\"my-account\", string(constants.TrainingH100Count)),\n\t\tValue: 64,\n\t}).Error)\n\n\t// Set up mock Orb client\n\tmockOrbClient := &orbclient.MockClient{}\n\tmockOrbClient.On(\"ListSubscriptions\", mock.Anything, orb.SubscriptionListParams{\n\t\tExternalCustomerID: orb.F(\"my-account\"),\n\t\tStatus: orb.F(orb.SubscriptionListParamsStatusActive),\n\t}).Return([]orb.Subscription{{\n\t\tID: \"EvWfLnf3FvndYVHy\",\n\t}}, nil)\n\n\tmockOrbClient.On(\"FetchUpcomingInvoice\", mock.Anything, orb.InvoiceFetchUpcomingParams{\n\t\tSubscriptionID: orb.F(\"EvWfLnf3FvndYVHy\"),\n\t}).Return(&orb.InvoiceFetchUpcomingResponse{\n\t\tAmountDue: \"0\",\n\t\tCurrency: \"USD\",\n\t}, nil)\n\n\terr := RefreshQuotaUsages(context.Background(), clusterregistry.ProdRegistry(t), db, \"my-account\", mockOrbClient)\n\trequire.NoError(t, err)\n\n\t// Assert updated usage\n\tvar quota database.Quota\n\trequire.NoError(t, db.Where(&database.Quota{\n\t\tQuotaName: *resourcename.NewQuotaName(\"my-account\", clusterregistry.RegionalQuotaID(gpb.Region_US_IOWA_1, gpb.AcceleratorType_NVIDIA_H100_80GB)),\n\t}).Take("a).Error)\n\t// deployment-1: 2*1 = 2\n\t// deployment-disable-accounting: 3*1 = 3\n\t// deployment-spot: excluded\n\t// deployment-training: excluded from deployment quota\n\trequire.Equal(t, float64(5), quota.Usage)\n\n\tvar trainingQuota database.Quota\n\trequire.NoError(t, db.Where(&database.Quota{\n\t\tQuotaName: *resourcename.NewQuotaName(\"my-account\", string(constants.TrainingH100Count)),\n\t}).Take(&trainingQuota).Error)\n\trequire.E"} +{"text": "PDZ domain-containing protein GIPC3 is a protein that in humans is encoded by the GIPC3 gene. GIPC3 is a member of the GIPC (GAIP-interacting protein C terminus) gene family that also includes GIPC1 and GIPC2. The encoded protein, GIPC3, features a centrally located PDZ domain, which is flanked on each side by a single GIPC-homology domain.\nThe human GIPC3 gene is located on the short arm of chromosome 19 at p13.3. The locus extends over ≈8 kbp and contains the six coding exons that give raise to a open reading frame of 639 nucleotides encoding the GIPC3 protein of 312 amino acids. A single PDZ domain is located at amino acid position 122-189. In the mouse, Gipc3 is located on chromosome 10 at cytogenetic band qC1. The genomic region covers a distance of 5.5 kbp. The six coding exons encode a protein of 297 amino acids. The PDZ domain is located at amino acid position 107-174.\nIn the mouse, a missense mutation in Gipc3 (c.343G>A) leads to a non-synonymous amino acid replacement (p.G115R) in the loop connecting two beta strands of the PDZ domain. Glycine 115 is conserved in all GIPC proteins. Missense (c.785C>T; p. L262R) and nonsense (c.903G>A, p.W301X) mutations in human GIPC3 cause congenital sensorineural hearing impairment in families segregating non-syndromic hearing loss DFNB15 and DFNB95.\nMice of the Black Swiss strain develop early-onset slowly progressing sensorineural hearing loss. A genetic study identified two quantitative trait loci (QTL) that control hearing function. One QTL, named age-related hearing loss 5 (ahl5) localizes to chromosome 10 and accounted for ca. 60% of the variation in hearing thresholds. A second QTL, ahl6, localized to chromosome 18 and has a smaller effect size. Besides their hearing impairment, Black Swiss mice also are hypersensitive to acoustic stimulation, reacting with seizures (audiogenic seizures) to loud white noise. A genetic locus conferring susceptibility was identified (juvenile audiogenic monogenic seizures1, jams1) on chromosome 10. A positional cloning approach aimed to decipher the genetic basis of both the hearing loss and audiogenic seizure susceptibility subsequently identified the glycine to arginine substitution in Gipc3 as the underlying cause.\nIn humans, individuals with the p.W301X missense mutation (DFNB95) exhibit bilateral sensorineural hearing loss with threshold shifts of 70-80 dB hearing levels as early as 11 months of age.\n- Frizzled-3 (FZD3) class of WNT receptor,\n- insulin-like growth factor-I receptor (IGF1R),\n- receptor tyrosine kinase TrkA,\n- TGF-beta type III receptor (TGF-beta RIII),\n- integrin alpha6A (ITGA6),\n- transmembrane glycoprotein TPBG, and\n- GIPC PDZ domain containing family, member 1, GIPC1\n- GIPC PDZ domain containing family, member 2, GIPC2\n- ↑ Entrez Gene: GIPC PDZ domain containing family.\n- ↑ Saitoh T, Mine T, Katoh M (March 2002). Molecular cloning and characterization of human GIPC3, a novel gene homologous to human GIPC1 and GIPC2. Int. J. Oncol. 20 (3): 577–82.\n- ↑ 3.0 3.1 Katoh M (June 2002). GIPC gene family (Review). Int. J. Mol. Med. 9 (6): 585–9.\n- ↑ PMID 12011974 (PMID 12011974)\n- ↑ Charizopoulou N, Lelli A, Schraders M, Ray K, Hildebrand MS, Ramesh A, Srisailapathy CR, Oostrik J, Admiraal RJ, Neely HR, Latoche JR, Smith RJ, Northup JK, Kremer H, Holt JR, Noben-Trauth K (February 2011). Gipc3 mutations associated with audiogenic seizures and sensorineural hearing loss in mouse and human. Nat Commun 2 (2): 201.\n- ↑ PMID 16426780 (PMID 16426780)\n- ↑ PMID 12451109 (PMID 12451109)\n- Vega A, Salas A, Milne RL, et al. (2009). Evaluating new candidate SNPs as low penetrance risk factors in sporadic breast cancer: a two-stage Spanish case-control study.. Gynecol. Oncol. 112 (1): 210–4.\n- Matsuoka S, Ballif BA, Smogorzewska A, et al. (2007). ATM and ATR substrate analysis reveals extensive protein networks responsive to DNA damage.. Science 316 (5828): 1160–6.\n|This page uses Creative Commons Licensed content from Wikipedia (view authors).|"} +{"text": "It was an intriguing series of requests for columnist Douglas Preston, who wrote about history for Natural History, the magazine of the American Museum of Natural History. An editor from St. Martin’s Press had been reading his pieces and asked Preston to write a history of that institution. That invitation led to Preston’s first book, 1993’s Dinosaurs in the Attic. After it was published, his editor got a tour of the museum—in the middle of the night, which led to the second request.\nPreston remembers it as follows: “I showed him all the best places to which I had access—the dinosaur bone storage room, the collection of 30,000 rats in jars of alcohol, the whale eyeball collection, the preserved mastodon stomach with its last meal inside, and a lot of other unusual things. We ended up in the Hall of Late Dinosaurs around 2 a.m., with only the emergency lights on, the great black skeletons looming in the darkness around us, and the editor turned to me and said, ‘Doug, this is the scariest building in the world. Let’s write a thriller set in here.’ ”\nThat editor was Lincoln Child, and the result was the 1995 bestseller Relic (Tor), a scientific suspenser about a mysterious savage creature rampaging through the dark corners of a labyrinthine “New York Museum of Natural History.” Relic, co-written by Child and Preston, introduced Aloysius Pendergast, an eccentric, maverick FBI agent whose startling appearance attracts almost as much attention as his oracular pronouncements. In his book debut, he’s described as “a tall, slender man, wearing a crisp black suit.” His “[h]air so blond it was almost white was brushed straight back above pale blue eyes,” and Pendergast is initially mistaken for an undertaker.\nNeither writer expected Pendergast to become a series lead, let alone star in sequels in which he confronts evil both supernatural and natural. (Grand Central will publish his 12th adventure, Two Graves, in December). But after a number of successful collaborations featuring other interesting characters (Mount Dragon, Riptide, The Ice Limit), the pair returned to the unconventional FBI agent in 1997’s Reliquary (Tor) and never looked back.\nIn retrospect, Child was ideal for sustaining books linked by plausible evocations of horrifying setups. (Relic was initially passed on by five or six publishers.) He was 14 when he first encountered the works of H.P. Lovecraft, which served as a major influence. Lovecraft gave him a “sense that the strange and outré is very much amongst us—all it takes is a little digging to find it,” Child says. At St. Martin’s, he rapidly advanced from editorial assistant in 1979 to full editor in 1984. Although he worked with the likes of James Herriot, the creatures great and small that Child most cared about were decidedly not warm and fuzzy. He put together collections of ghost and horror stories (1984’s Dark Company and 1985’s Dark Banquet) and founded the company’s mass market horror division.\nBut Child’s road to professional writing was not a linear one. A nine-year stint at Met Life, doing what he describes as “highly technical programming and systems analysis,” came between his leaving St. Martin’s and “stopping working for a living.”\nIn addition to penning 18 books with Preston, Child has written powerful horror fiction on his own, most recently June’s The Third Gate (Doubleday), which is intended as the launch of “enigmalogist” Jeremy Logan as the lead of a series. But even for Child’s solo efforts, Preston serves as an active ally, a sounding board for plot developments and scenes.\nAfter so many years, Child and Preston can sound like an old married couple—on the rare occasion that they’re in the same place at the same time (such as when they both traveled to New York City to attend the wedding of Preston’s daughter last month). The intellectual curiosity they share bridges their very different personalities. (Both men, albeit with a smile, have described Child as an “introverted reclusive neurotic” while Preston is the consummate adventurer.) And the two are committed to making each new book “better than the one before,” says Child, relying on each other to make sure that the major pitfall of a long-running series—tiresome repetition—is avoided.\nLenny Picker is a freelance writer in New York City."} +{"text": "qual(t, float64(4), trainingQuota.Usage)\n}\n\nfunc TestRefreshDeploymentQuotaUsage(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\treg := clusterregistry.ProdRegistry(t)\n\n\t// Create deployment\n\tdeployment := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"deployment-1\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tMaxReplicaCount: 2,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}\n\trequire.NoError(t, db.Create(deployment).Error)\n\n\tdeploymentDeleted := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"deployment-deleted\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tMaxReplicaCount: 2,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_DELETED,\n\t}\n\trequire.NoError(t, db.Create(deploymentDeleted).Error)\n\n\t// Refresh usage for this deployment\n\trequire.NoError(t, RefreshDeploymentQuotaUsage(reg, db, \"my-account\", deploymentDeleted))\n\n\t// Assert usage updated\n\tvar quota database.Quota\n\trequire.NoError(t, db.Where(&database.Quota{\n\t\tQuotaName: *resourcename.NewQuotaName(\"my-account\", clusterregistry.RegionalQuotaID(gpb.Region_US_IOWA_1, gpb.AcceleratorType_NVIDIA_H100_80GB)),\n\t}).Take("a).Error)\n\trequire.Equal(t, float64(2), quota.Usage) // Usage should be 0 because it excludes the deployment itself\n}\n\nfunc TestRefreshDeploymentQuotaUsage_ForTrainingRefreshesTrainingQuota(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\treg := clusterregistry.ProdRegistry(t)\n\tdeploymentName := resourcename.NewDeploymentName(\"my-account\", \"training-deployment\")\n\n\trequire.NoError(t, db.Create(&database.Quota{\n\t\tQuotaName: *resourcename.NewQuotaName(\"my-account\", string(constants.TrainingH100Count)),\n\t\tValue: 64,\n\t\tUsage: 8,\n\t}).Error)\n\trequire.NoError(t, db.Create(&database.Deployment{\n\t\tDeploymentName: *deploymentName,\n\t\tState: gpb.Deployment_READY,\n\t\tForTraining: true,\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_B300_288GB,\n\t\tAcceleratorCount: 8,\n\t\tMaxReplicaCount: 1,\n\t}).Error)\n\n\trequire.NoError(t, RefreshDeploymentQuotaUsage(reg, db, \"my-account\", &database.Deployment{\n\t\tDeploymentName: *deploymentName,\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tAcceleratorCount: 8,\n\t\tMaxReplicaCount: 1,\n\t\tForTraining: true,\n\t}))\n\n\tvar quota database.Quota\n\trequire.NoError(t, db.Where(&database.Quota{\n\t\tQuotaName: *resourcename.NewQuotaName(\"my-account\", string(constants.TrainingH100Count)),\n\t}).Take("a).Error)\n\trequire.Equal(t, float64(0), quota.Usage)\n}\n\nfunc TestRefreshDeploymentQuotaUsage_PlacementChange(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\n\t// Create GLOBAL quota with initial usage\n\trequire.NoError(t, db.Create(&database.Quota{\n\t\tQuotaName: *resourcename.NewQuotaName(\"my-account\", string(constants.GLOBAL__H100Count)),\n\t\tValue: 10,\n\t\tUsage: 2, // Simulating usage from the deployment below\n\t}).Error)\n\n\t// Create deployment that has been updated from GLOBAL to US (in DB, placement is now US)\n\trequire.NoError(t, db.Create(&database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"placement-test\"),\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tMaxReplicaCount: 2,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t\tPlacement: &database.Placement{\n\t\t\tMultiRegion: gpb.MultiRegion_US, // Already updated in DB\n\t\t},\n\t}).Error)\n\n\t// Now refresh the OLD quota (GLOBAL) with OLD placement info\n\t// This simulates what happens after UpdateDeployment updates the DB\n\toldPlacementDeployment := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"placement-test\"),\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tMaxReplicaCount: 2,\n\t\tAcceleratorCount: 1,\n\t\tPlacement: &database.Placement{\n\t\t\tMultiRegion: gpb.MultiRegion_GLOBAL, // OLD placement\n\t\t},\n\t}\n\trequire.NoError(t, RefreshDeploymentQuotaUsage(clusterregistry.ProdRegistry(t), db, \"my-account\", oldPlacementDeployment))\n\n\t// Assert GLOBAL usage should be 0 (no deployments using GLOBAL quota anymore)\n\tvar globalQuota database.Quota\n\trequire.NoError(t, db.Where(&database.Quota{\n\t\tQuotaName: *resourcename.NewQuotaName(\"my-account\", string(constants.GLOBAL__H100Count)),\n\t}).Take(&globalQuota).Error)\n\trequire.Equal(t, float64(0), globalQuota.Usage, \"GLOBAL quota usage should be 0 after placement changed away from GLOBAL\")\n}\n\nfunc TestGetDeploymentQuotaUsageByDeployment(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\tacceleratorType := gpb.AcceleratorType_NVIDIA_H100_80GB\n\n\t// Create existing deployment that should count toward quota\n\texisting := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"existing-deployment\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: acceleratorType,\n\t\tMaxReplicaCount: 3,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_REA"} +{"text": "Archived material is restricted to Rantburg regulars and members. If you need access email fred.pruitt=at=gmail.com with your nick to be added to the members list. There is no charge to join Rantburg as a member.\nPosted by JohnQC 2013-01-01 09:56||\n#2 The RHINOS never learn, do they?\n$1 in cuts for every $41 in new taxes?\nSo much for any recovery hopes.\nPosted by DarthVader 2013-01-01 10:13||\n#3 So much for any recovery hopes. I gave up my 'recovery hopes' in 2008 or so. I am just praying we avoid a catastrophic economic collapse with widespread destitution.\nPosted by Anguper Hupomosing9418 2013-01-01 10:18||\n#4 Destitution yes, economic collapse no. It won't be 1930's level, our standard of living has just risen to much I think to fall that much with JUST economics. Though this still has to get through the House. There's palatable, then there's stupid. 41-1. Will mean quite a few ends to congressional careers. 2014 will see ALOT of Primary challenges.\nPosted by Charles 2013-01-01 10:23||\n#5 Wish I'd hit preview, Destituation NO, Economic collapse YES. Ugh.\nPosted by Charles 2013-01-01 10:24||\n#6 Bottom line: The term and threat of \"sequester\" as applied to the gov't budget and spending means absolutely nothing.\nPosted by Besoeker 2013-01-01 10:24||\n#7 Jerry Pournelle made some relevant comments: I note that there is frantic last minute activity in Congress, but I also note that it is more devoted to turning off the sequester which is the only real spending cut in the future. No one is looking at fraud and waste, bunny inspectors, government activities we would be better off without. Soak the rich is now the goal for a lot of Democrats. By the rich is generally meant those whose income is salaries and bonuses, people paid through stock options for engaging in high risk enterprises, etc. People who move money around in circles generally find ways to defer income in ways that dont get hit with income taxes. And of course there are many perks that come with wealth but which dont look like income.\nThe President wants to pound the rich. He doesnt care what that does to investment climates. And no one is going to make any cuts to entitlements.\nAt some point, one would suspect, the American people will have had enough; but that will take a while. And Congress gets a raise. Their staffers get a raise. Government employee pensions continue to rise, and the courts are now saying that cities cant stop paying into pension funds even if they go bankrupt, and the idiots who bought city bonds have less claim on a bankrupt citys money than the pensioned off employees.\nPosted by Anguper Hupomosing9418 2013-01-01 10:43||\nPosted by tipper 2013-01-01 11:01||\n#9 assuming HR8, aka the American Tax Relief Act of 2012, passes the house and is signed, the spending battle will be fought two months from now when the sequesters kick in certain Treasury measures that are being used to manage the national debt run out.\nthis isn't over, not by a long shot\nPosted by lord garth 2013-01-01 13:49||\n#10 Do we have to \"read the bill to find out what's really in it?\" The full impact, it this passes will be painful. The current complexion of the House is, in a big way, due to people feeling 'taxed enough already'. I hope that membership, Mr. Boehner included, remembers that and acts accordingly when it gets to them for a vote.\nPosted by warthogswife 2013-01-01 17:24||\n#11 With some exceptions, the entire Congressional establishment is pavlovian now on polling (thanks Clintons) and cannot understand push polling adequately to dismiss much of what is responsive to it. We are governed almost exclusively now by perception not principle, and careerism not commitment, so sadly, the Republic has drifted to the rapacious democracy that will want all that is promised like the mob in Rome. Bread and circuses and no understanding of the destruction that is rendering the future more and more impoverished and bleak. I never imagined the rot would be so fast.....\nPosted by NoMoreBS 2013-01-01 18:06||"} +{"text": "From the article :\nWomen face hardship more than men as cash-strapped states cut social-welfare programs to balance lower revenue and higher costs for pensions and health care. Women make up about 54 percent of the poor, according to U.S. Census Bureau data, and thus are more affected by reductions in Medicaid, child-care assistance and domestic-violence programs.\n\"Women disproportionately rely on social services,\" Joan Entmacher, vice president for family economic security at the National Women's Law Center in Washington, said by telephone. \"They have lower incomes and more frequently are single parents responsible for providing for children.\"\nIn California, the most populous U.S. state, CalWorks is the face of the federal welfare program known as Temporary Assistance for Needy Families. It provides money and employment services to low-income families with children, such as Williams.\nMore than three-quarters of adult recipients, 78 percent, are women, according to a 2010 report by the California Budget Project, a nonpartisan research group in Sacramento.\nCut in Aid\nLawmakers reduced the grants by 8 percent in this year's budget, cutting the maximum monthly aid for a family of four to $762 from $828, according to Michael Weston, a spokesman for the Social Services Department.\nThe state also reduced the aid's duration to four years from five, Weston said. The program served about 598,000 families as of June, he added.\n\"Women are in these programs because they are primary caregivers for children,\" said Mary Wiberg, executive director of the California Commission on the Status of Women, a nonpartisan state agency. \"They have costs and expenses for caring for their families that are having domino negative effects as the cuts are made.\"\nSpending on health and human-services programs consumes the second-largest share of California's general-fund budget, said H.D. Palmer, a Finance Department spokesman. Only education takes more money, he said.\n'Unprecedented Budget Gaps'\n\"California has had to close unprecedented budget gaps in recent years,\" Palmer said in a telephone interview. \"In making those reductions, every effort has been made to maintain a social safety net for the most vulnerable.\"\nStates will have to close budget shortfalls of more than $46 billion in fiscal 2013, according to a June report by the Center on Budget and Policy Priorities, a nonprofit research organization in Washington. The deficits mean states have had to make severe cuts to programs already emaciated from several years of recession-driven reductions.\nCalifornia was among states including Washington, South Carolina, New Mexico and Wisconsin in reducing family assistance, the center said in a report Oct. 3.\n\"To be effective, a safety net must be able to expand when the need for assistance rises,\" according to the report. \"The TANF block grant is failing this test.\"\nIn Arizona, where Medicaid spending jumped 65 percent in the last four years, the state froze enrollment for childless adults in July, dropping 26,000 from the rolls, said Monica Coury, a spokeswoman for the Health Care Cost Containment System.\nWomen comprise 70 percent of adult Medicaid recipients, according to the U.S. Health and Human Services Department. Enrollment in the $428 billion joint federal-state health- insurance plan for the poor has surged in the past three years as people lost jobs or their income dropped enough for them to qualify.\nArizona also reduced the duration of the family assistance benefits to two years from three, a change that's expected to affect about 3,500 families, Stephen Meissner, a spokesman for the Economic Security Department, said in an e-mail.\nThe Grand Canyon State's domestic-violence budget has shrunk by 25 percent, or about $4 million, since fiscal 2009, Meissner said.\n'Can't Spend Money'\n\"While we wish these cuts were not necessary, those decisions ultimately are made by elected officials,\" Meissner said. \"We sometimes can shift around some of the cuts to ease their impact, but we can't spend money we are not allotted.\"\nIn Rhode Island, a state of 1.05 million people, financing of domestic-violence programs fell to about $297,000 this year from $724,000 in 2008, Deborah DeBare, executive director of the Rhode Island Coalition Against Domestic Violence in Warwick, said in an e-mail. The number of victims it serves increased 6.5 percent to about 10,400 in 2010 from 9,800 a year earlier, she said.\n\"We're one of the worst states,\" DeBare said in a telephone interview, adding that the burden on women has been compounded by cuts in other programs.\n\"Women in Rhode Island are calling for help at a great degree,\" she said. \"There are callers looking for not just emergency shelter but rental assistance, food and paying utility bills.\""} +{"text": "DY,\n\t}\n\trequire.NoError(t, db.Create(existing).Error)\n\n\t// Create deployment we want to exclude from usage\n\ttarget := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"target-deployment\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: acceleratorType,\n\t\tMaxReplicaCount: 2,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}\n\trequire.NoError(t, db.Create(target).Error)\n\n\tusage, err := GetDeploymentQuotaUsageByDeployment(db, target, acceleratorType)\n\trequire.NoError(t, err)\n\trequire.Equal(t, int64(3), usage) // Only the `existing` deployment counts\n}\n\nfunc TestGetDeploymentQuotaUsageByDeployment_WithShape(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\tacceleratorType := gpb.AcceleratorType_NVIDIA_H100_80GB\n\n\tdeployment := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"deployment-1\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: acceleratorType,\n\t\tMaxReplicaCount: 3,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}\n\trequire.NoError(t, db.Create(deployment).Error)\n\n\t// Deployment from shape: 2 replicas * 2 accelerators = 4\n\tcreateTestDeploymentShapeVersion(t, db, \"my-account\", \"deployment-shape-1\", \"v1\", acceleratorType, 2)\n\trequire.NoError(t, db.Create(&database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"deployment-2\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tMaxReplicaCount: 2,\n\t\tState: gpb.Deployment_READY,\n\t\tDeploymentShape: \"accounts/my-account/deploymentShapes/deployment-shape-1/versions/v1\",\n\t}).Error)\n\n\t// Calculate usage for a new target deployment (it should not be counted in usage)\n\ttarget := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"target-deployment\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: acceleratorType,\n\t\tMaxReplicaCount: 2,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}\n\trequire.NoError(t, db.Create(target).Error)\n\n\tusage, err := GetDeploymentQuotaUsageByDeployment(db, target, acceleratorType)\n\trequire.NoError(t, err)\n\trequire.Equal(t, int64(7), usage) // 3 + 4 = 7 (target not included)\n}\n\n// A gateway-merged row (marker matches the pinned shape) is authoritative even\n// when it overrides the shape's accelerator_count: usage must use the row's\n// count, not the shape snapshot's.\nfunc TestGetDeploymentQuotaUsageByDeployment_GatewayMergedOverride(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\tacceleratorType := gpb.AcceleratorType_NVIDIA_H100_80GB\n\n\tconst shapeVer = \"accounts/my-account/deploymentShapes/override-shape/versions/v1\"\n\t// Shape pins accelerator_count = 8; the row overrides it to 2.\n\tcreateTestDeploymentShapeVersion(t, db, \"my-account\", \"override-shape\", \"v1\", acceleratorType, 8)\n\trequire.NoError(t, db.Create(&database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"merged-override\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: acceleratorType,\n\t\tAcceleratorCount: 2,\n\t\tMaxReplicaCount: 3,\n\t\tState: gpb.Deployment_READY,\n\t\tDeploymentShape: shapeVer,\n\t\tAnnotations: map[string]string{constants.DeploymentShapeMergedVersionAnnotation: shapeVer},\n\t}).Error)\n\n\ttarget := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"target-deployment\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: acceleratorType,\n\t\tMaxReplicaCount: 1,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}\n\trequire.NoError(t, db.Create(target).Error)\n\n\tusage, err := GetDeploymentQuotaUsageByDeployment(db, target, acceleratorType)\n\trequire.NoError(t, err)\n\t// Row override wins: 3 * 2 = 6, NOT the shape's 3 * 8 = 24.\n\trequire.Equal(t, int64(6), usage)\n}\n\nfunc TestGetDeploymentQuotaUsageByDeployment_MixedShapesAndRegular(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\th100Type := gpb.AcceleratorType_NVIDIA_H100_80GB\n\n\t// H100 deployment from shape: 2 replicas * 4 accelerators = 8\n\tcreateTestDeploymentShapeVersion(t, db, \"my-account\", \"h100-shape\", \"v1\", h100Type, 4)\n\trequire.NoError(t, db.Create(&database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"h100-from-shape\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tMaxReplicaCount: 2,\n\t\tState: gpb.Deployment_READY,\n\t\tDeploymentShape: \"accounts/my-account/deploymentShapes/h100-shape/versions/v1\",\n\t}).Error)\n\n\t// H100 regular deployment: 3 replicas * 1 accelerator = 3\n\trequire.NoError(t, db.Create(&database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"h100-regular\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: h100Type,\n\t\tMaxReplicaCount: 3,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}).Error)\n\n\t// Calculate usage for a new target deployment (target is not counted)\n\ttarget := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName("} +{"text": "So you want to go fast on a motorcycle, huh? Well, you could do what all your peers did and buy a brand new liter bike, crash it and either hurt yourself badly or never ride again. It'll probably end up being both. But what if we told you there was a third way? Instead of looking for the bike to do the speed for you, learn to speed yourself. Do that and a whole new world will open up to you, you'll be faster, safer and have more fun. You'll probably even end up riding your whole life. Sound good? In that case, start right here with a Honda CBR250R.\nPhotos: Ashlee Goodwin\nA 600 or 1000cc sportsbike is a professional level tool for going fast. It's the motorcycle equivalent of a professional DSLR camera — a lot of people spend too much money to use them for everyday activities. Out of the box with little to no skill, you just can't use either one to anywhere near its full potential. Sportsbikes and pro cameras are amazingly capable, but they're not so great to learn on. For that, you need something a little more user friendly, a lot less complex and a lot cheaper. You need accessibility.\nThe CBR250 is about as far from a proper sportsbike as you can get. It offers the bare minimum of power necessary to putt around on the freeway. An old-school steel chassis and swingarm, spongy brakes and the dirt cheap suspension make for a very, very slow bike. But, they also make it affordable — $4,000 brand new — for just about anyone that wants to start riding. So how the hell is a very, very slow bike going to help you go fast?\nOn this bike things happen slower. A straight that would be a stress-filled five seconds on a 600 is eight seconds of time on a CBR250. Those are valuable extra seconds to contemplate the corner you just left, find the right line, shift and think about braking for the next turn. You'll be able to refine the technical skills used to operate the bike and learn about cornering without the stress of speed.\nLimited lean angle and suspension that never quite settles can also be used to your advantage. Go into a corner too hot and adjusting your line isn't a big deal. If the pegs aren't dragging, just muscle it over a little further and you'll be fine. Since cornering forces aren't nearly as high as they would be on a larger, heavier bike, it's unlikely you'll break traction and crash.\nIf you accidentally go from closed to wide-open throttle in a third gear corner, the motor won't have enough power to induce a slide or worse, a highside. The punishment for braking too much (thereby losing momentum) is harsh: you'll go through the next three corners slow while you work to build up momentum again.\nYou might think full leathers are overkill if you're just cruising around the canyons on a 250, but if you want to learn to go fast, the opposite is true. Aside from the important stuff like reducing your chances of injury or death, full racing leathers are really the number one thing that is going to allow a newer rider to push the limits of this (or any) motorcycle. Wearing all that protection does wonders for confidence, but you don't need to go out and spend thousands of dollars to feel like a superhero. Ask your friends, check eBay and endlessly troll Craigslist. Someone else's sweaty old rashed leathers could be yours for under $100 if you look hard enough.\nInstead of wondering about road rash if you crash at 40mph in jeans, you'll be focusing on lines, looking where you want to go and having fun. It's also pretty hard to put your knee down corner after corner if there's no puck there.\nMaster riding a bike like this at the limit and you'll be ready to have fun on a real sportsbike. The 600 and 1000cc bikes of today have to be ridden extremely fast before they start to feel good at all. You don't even begin to get useful feedback until you are trail-braking and putting your knee down so they just won't inspire confidence unless you're riding at a very high level of ability. Every job has the right tool.\nIf you ask old slow guys, they'll tell you that it's always more fun to ride a slow bike fast than a fast bike slow. A lack of both engine and braking power encourage you to carry momentum when riding the CBR250, the budget suspension makes learning to muscle a bike around easy and versatile ergonomics allow for both bolt-upright and proper racing body positions. The CBR 250 begs you to stretch its throttle cables, avoid the brakes at all costs, be mindful of your lines and more than anything else, have fun. Motorcycling is the lifelong pursuit of greater skill; the CBR250 is the perfect place to start developing those skills."} +{"text": "Apologies for not posting anything about my beloveds and their Super Debacle earlier. And no, it was not because I was prostrate with grief or hospitalized for an attempted suicide.\nFor those who may not be aware, I work 3 days a week – Friday, Saturday, and Sunday – from 10:00 PM - 6:00 AM at a convenience store. For just sitting around for 8 hours, I get an obscene amount of money. It really is offensive to me that someone is willing to pay me what some employees make in a 40 hour week just because they can’t find anyone else to work the graveyard shift on the weekends.\nBe that as it may, it truly is an exhausting ritual to constantly change my bio rhythms in this fashion. And since I was beginning to feel like I was coming down with a cold, I took yesterday off and slept around 12 hours. The entire weekend, I think I managed around 9 hours of sleep so I hope I am forgiven my sloth.\nAs for the game, I thought my analysis of what would happen and what the Bears needed to do to win was on target. I still can’t believe the Bear’s defense went into a shell and failed to attack the Colts offense. But I predicted Hester would return one, that Wayne would probably catch a long one for a TD. I also predicted that Indy would score more field goals than touchdowns (4 FG attempts to 2 TD’s and that if the Bears corners played off the Indy wideouts, it would be a very long, depressing day.).\nThat last was the key to the game. By playing 5 yards or more off Harrison and Wayne, the Bears defenders were out of position when Manning began to toss flat passes to his backs. By the time a Bear defender showed up, the Indy backs were already 5 yards downfield. Manning nickled and dimed the Bears to death.\nAnd anyone who puts the onus for this loss on Rex Grossman doesn’t know anything about football. Yes, Wonder Dog was bad. But I would also mention that he didn’t have a chance to show what he could do because the offense never had the damn ball! When the game was actually on his shoulders in the 4th quarter, it was almost like he wasn’t even warmed up. I thought he was reasonably accurate but suffered from the fact that there didn’t appear to be an offensive game plan. Or at least one that would have made a difference.\nNo team will win a Super Bowl if the defense gives up 400 yards. You can have the greatest quarterback in history and the Bears still would have lost because the defense played soft. The fact that this is exactly the same problem the Bears had last year in their playoff loss to Carolina makes me question the overall coaching in this game and whether they changed strategies as a result of the weather. It was almost as if the coaches were playing not to lose – a sure way to defeat. In any case, Lovie was outcoached by Dungy.\nSo my beloveds are now 1-1 in the Big Game. And, as I mentioned in my preview, I don’t think it will take another 21 years before the Bears make a return visit. Next year, Grossman will be better, Brown and Harris will most likely be back, and there will be lessons learned so that when they make a run at the brass ring again, they’ll at least realize what it takes to grab it.\nWith the potential loss of Lance Briggs to free agency, a huge hole could open up at outside linebacker. However, I think the Bears will slap a franchise tag on Briggs which will bring him back for another year but not at the kind of salary that he would get in free agency. And they will use the nearly $30 million they have available under the cap to improve. Perhaps acquire an outstanding offensive lineman via free agency or another impact player at D-back.\nOne thing is sure; Lovie Smith won’t let them fall back. And if they can stay reasonably healthy next year, the playoffs are almost a certainty even with their much tougher first place schedule. As Indy proved, you don’t need that first round playoff bye to win it all.\nA disappointing loss to be sure. But it should make most of them hungry again next year. And this time in the Presidential election year of 2008 when the NFL crowns a brand new champ, I really believe that my beloveds have as good a chance or better to be on that podium accepting the Lombardi Trophy and being acknowledged as the league’s best."} +{"text": "\"my-account\", \"target-h100\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: h100Type,\n\t\tMaxReplicaCount: 5,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}\n\trequire.NoError(t, db.Create(target).Error)\n\n\tusage, err := GetDeploymentQuotaUsageByDeployment(db, target, h100Type)\n\trequire.NoError(t, err)\n\trequire.Equal(t, int64(11), usage) // 8 + 3 = 11 (target not included)\n}\n\nfunc TestGetDeploymentQuotaUsageByDeployment_FiltersByAcceleratorType(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\th100Type := gpb.AcceleratorType_NVIDIA_H100_80GB\n\ta100Type := gpb.AcceleratorType_NVIDIA_A100_40GB\n\n\t// Create H100 deployments: 2 * 4 = 8\n\tcreateTestDeploymentShapeVersion(t, db, \"my-account\", \"h100-shape\", \"v1\", h100Type, 4)\n\trequire.NoError(t, db.Create(&database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"h100-from-shape\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tMaxReplicaCount: 2,\n\t\tState: gpb.Deployment_READY,\n\t\tDeploymentShape: \"accounts/my-account/deploymentShapes/h100-shape/versions/v1\",\n\t}).Error)\n\n\t// Create A100 deployments: 3 * 2 = 6\n\tcreateTestDeploymentShapeVersion(t, db, \"my-account\", \"a100-shape\", \"v1\", a100Type, 2)\n\trequire.NoError(t, db.Create(&database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"a100-from-shape\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tMaxReplicaCount: 3,\n\t\tState: gpb.Deployment_READY,\n\t\tDeploymentShape: \"accounts/my-account/deploymentShapes/a100-shape/versions/v1\",\n\t}).Error)\n\n\t// When calculating A100 usage, H100 deployments should be excluded\n\ttarget := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"target-a100\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: a100Type,\n\t\tMaxReplicaCount: 2,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}\n\trequire.NoError(t, db.Create(target).Error)\n\n\tusage, err := GetDeploymentQuotaUsageByDeployment(db, target, a100Type)\n\trequire.NoError(t, err)\n\trequire.Equal(t, int64(6), usage) // Only A100: 3 * 2 = 6 (H100s and target excluded)\n}\n\nfunc TestRefreshMonthlySpendUSDQuotaUsages(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\trequire.NoError(t, db.Model(&database.Account{AccountName: *resourcename.NewAccountName(\"my-account\")}).\n\t\tUpdate(\"OrbSubscriptionId\", \"sub-1\").Error)\n\n\tquotaName := *resourcename.NewQuotaName(\"my-account\", string(constants.MonthlySpendUSD))\n\n\t// Set up Orb client mock\n\tmockOrbClient := &orbclient.MockClient{}\n\tmockOrbClient.On(\"ListSubscriptions\", mock.Anything, orb.SubscriptionListParams{\n\t\tExternalCustomerID: orb.F(\"my-account\"),\n\t\tStatus: orb.F(orb.SubscriptionListParamsStatusActive),\n\t}).Return([]orb.Subscription{\n\t\t{ID: \"sub-1\"},\n\t\t{ID: \"sub-2\"},\n\t}, nil)\n\n\tmockOrbClient.On(\"FetchUpcomingInvoice\", mock.Anything, orb.InvoiceFetchUpcomingParams{\n\t\tSubscriptionID: orb.F(\"sub-1\"),\n\t}).Return(&orb.InvoiceFetchUpcomingResponse{\n\t\tAmountDue: \"10.75\",\n\t\tCurrency: \"USD\",\n\t\tStatus: \"draft\",\n\t}, nil)\n\n\tmockOrbClient.On(\"FetchUpcomingInvoice\", mock.Anything, orb.InvoiceFetchUpcomingParams{\n\t\tSubscriptionID: orb.F(\"sub-2\"),\n\t}).Return(&orb.InvoiceFetchUpcomingResponse{\n\t\tAmountDue: \"12.43\",\n\t\tCurrency: \"USD\",\n\t\tStatus: \"draft\",\n\t}, nil)\n\n\t// Use .Once() to control order and response\n\tmockOrbClient.On(\"ConvertUpcomingInvoice\", mock.Anything).Return(&gpb.Invoice{\n\t\tAmountDue: &money.Money{\n\t\t\tCurrencyCode: \"USD\",\n\t\t\tUnits: 10,\n\t\t\tNanos: 750_000_000,\n\t\t},\n\t}, nil).Once()\n\n\tmockOrbClient.On(\"ConvertUpcomingInvoice\", mock.Anything).Return(&gpb.Invoice{\n\t\tAmountDue: &money.Money{\n\t\t\tCurrencyCode: \"USD\",\n\t\t\tUnits: 12,\n\t\t\tNanos: 430_000_000,\n\t\t},\n\t}, nil).Once()\n\n\t// Call the method under test\n\terr := RefreshMonthlySpendUSDQuotaUsages(context.Background(), db, \"my-account\", mockOrbClient)\n\trequire.NoError(t, err)\n\n\t// Validate updated quota\n\tvar quota database.Quota\n\trequire.NoError(t, db.Where(&database.Quota{QuotaName: quotaName}).Take("a).Error)\n\trequire.Equal(t, float64(23.18), quota.Usage)\n}\n\nfunc TestRefreshMonthlySpendUSDQuotaUsages_NotFoundNonUsageSub(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\trequire.NoError(t, db.Model(&database.Account{AccountName: *resourcename.NewAccountName(\"my-account\")}).\n\t\tUpdate(\"OrbSubscriptionId\", \"usage-sub\").Error)\n\n\tquotaName := *resourcename.NewQuotaName(\"my-account\", string(constants.MonthlySpendUSD))\n\n\tmockOrbClient := &orbclient.MockClient{}\n\tmockOrbClient.On(\"ListSubscriptions\", mock.Anything, orb.SubscriptionListParams{\n\t\tExternalCustomerID: orb.F(\"my-account\"),\n\t\tStatus: orb.F(orb.SubscriptionListParamsStatusActive),\n\t}).Return([]orb.Subscription{\n\t\t{ID: \"usage-sub\"},\n\t\t{ID: \"devpass-sub\"},\n\t}, nil)\n\n\tmockOrbClient.On(\"FetchUpcomingInvoice\", mock.Anything, orb.InvoiceFetchUpcomingParams{\n\t\tSubscriptionID: orb.F(\"usage-sub\"),\n\t}).Return(&orb.InvoiceFetchUpcomingResponse{\n\t\tAmountDue: \"7.50\",\n\t\tCurrency: \"USD\",\n\t\tStatus: \"draft\","} +{"text": "In case you need a reason to support public radio\nIf you really need another good reason to support your local NPR affiliate, we bring you the latest report from the Pew Research Center’s Project for Excellence in Journalism: The State of the News Media 2013.\nThis will come as no surprise to anyone who watches local television in this or just any market across the nation, but there is more junk food-journalism on local TeeVee news than ever.\nThe Pew study found that ``in comparison with the topics covered in local news broadcasts studied in 2005 with a sample of newscasts from late 2012 and early 2013, sports weather and traffic grew to where they now fill 40 percent of the airtime.’’\nWeather and traffic reports grew from 25 percent of airtime in 2005 to 29 percent in 2012. And the Pew researchers found that the time devoted to sports ``nearly doubled’’ from 7 percent of the news hole on 2005 to 12 percent in 2012.\nWhat’s the problem with all this?\nWell, the distressing part is that the research showed in local news that coverage of government dropped dramatically. In 2005, those issues accounted for 7 percent of airtime studied. By the late 2012 and early 2013 study, airtime devoted to politics and government has plummeted to just 3 percent.\n``For some time,’’ the report states. ``Television consultants have been advising local television stations that viewers aren’t interested in politics and government and it appears that advice is being taken.’’\nOver the same period, the report found a jump in other local news topics. Airtime given over to accidents, disasters and other unusual events went from 5 percent in 2005 to 13 percent in 2012/2013.\nThe problem with this, of course, is that traffic, weather, sports and disaster reporting is available on many platforms, digital and broadcast. But local television is crucial to reporting on politics and government. What TeeVee is doing on air is catering to a dumbed-down politically illiterate populace.\nThe only good news is that in the Providence market, WPRI-Channel 12 has at least invested in digital resources, including blogger par excellence Ted Nesi and sidekick Dan McGowan. But this can hardly make up for the on-air decline in coverage of serious issues. And WJAR-Channel 10 still has such veteran political reporters as Bill Rappeyle and Jim Taricani. Both 12 and 10 have fine public affairs weekend shows that unfortunately run mostly when nobody is watching.\nIf you think newspapers can take up this slack, well, think again. According to the American Journalism Review, newspaper reporting staffs have been sliced by 30 percent since 2000. The AJR report found (from 2010) that daily newspapers were continuing to slash political reporters, particularly in Washington.\nRhode Islanders can view dramatically how the poor economic fortunes of dead-tree journalism and Internet competition has wreaked havoc on the Providence Journal, the main state legacy journalism outlet. The Projo has severely cut back on local reporting, closing all of the suburban bureaus. And for the first time in the memory of any living reader, the ProJo has no presence covering Rhode Island’s Washington political scene or our congressional delegation. Washington correspondent John Mulligan has retired and has not been replaced in a bureau that once held three or four reporters. The ProJo has also chopped its reports from the news services of the Washington Post and New York Times, meaning diluted national and international reports. With the ProJo bleeding readers and advertisers, this situation doesn’t appear to changing anytime soon. (The paper just laid off two of its top photographers). More fluff and less serious content is also taking over the ProJo. How else to explain that the lack of blogs on politics, education, crime or medicine but two staffers working on a fashion blog?\nBy contrast, Rhode Island Public Radio is still a small outlet, but we have been adding reporters over the past several years and upgrading our digital presence. We continue to provide a strong menu of local reporting. Hopefully, you can help us support this."} +{"text": "SAN FRANCISCO (CBS 5 / KCBS) — The city of San Francisco cleaned up Monday after World Series celebrations turned rowdy and violent in a few neighborhoods, leading to the arrests of dozens of revelers.\nPolice officials said 36 people were arrested in the hours after the San Francisco Giants clinched the World Series with a Game 4 win in Detroit on Sunday night. Of those 35 arrests, 23 people faced felony charges and two were booked on gun charges.\nSFPD Chief Greg Suhr said the revelry started peacefully and upbeat throughout the city, but “after the original, understandable celebration comes the almost mystifying belief that some people can just come trash San Francisco.”\nAdded Sgt. Michael Andraychak: “Unfortunately, as the night progressed, this other element emerged and were intent on doing violence.”\nWatch Video Below: Police Break Up Rowdy World Series Celebration at 19th & Mission (Warning: Explicit Language)\nThe police officials said the destructive behavior was “a one-up” on San Francisco’s celebration of the Giants’ World Series win over the Texas Rangers in 2010 and came as a surprise to authorities.\nBonfires of trash were lit in several intersections around the city, including at 3rd and King streets near AT&T Park; a San Francisco Municipal Railway bus was torched at Market and Kearny streets and rowdy fans also climbed on top of other Muni buses around the city.\nWhile police were still looking for who set the Muni 8X-Bayshore Express bus ablaze, they said eight passengers plus the driver were all able to get out safely.\nAlong several blocks of Mission Street between 16th and 24th streets, a vehicle was flipped over, windows of several businesses were smashed and vehicles sprayed with graffiti, including a CBS 5 news van.\nFirefighters had police escorts as they fought a number of large bonfires fueled by old couches, news racks and other debris on Mission Street from 17th Street south. In fact, authorities said much of the vandalism occurred in the city’s Mission District, where 24 of the 35 arrests occurred.\nKCBS, CBS 5 and Chronicle Insider Phil Matier:\n“We responded to approximately 76 fires last night,” Fire Department spokeswoman Mindy Talmadge said. “At this point we’re attributing most of them, if not all of them, to celebratory-type activity.”\nWhile city officials didn’t have a total damage estimate as of Monday afternoon, Muni spokesman Paul Rose said that the torched bus alone had just been revamped and cost $700,000.\nAfter the game ended Sunday night with the Giants defeating the Detroit Tigers 4-3 to sweep the Series for their second title in three years, fans across the city left their televisions and rushed outside, greeting diners, bar patrons and other merrymakers.\nIn the city’s Polk Gulch neighborhood, hundreds of fans sprayed champagne, set of off firecrackers and blocked traffic for at least two hours after the game.\nSeveral blocks away, police clad in riot gear looked on as revelers danced around Civic Center Plaza where they had watched the game on a Jumbotron. A 22-year-old man at plaza was hit in the head with a bottle and was taken to a hospital, authorities said.\nHe was one of a handful injured in the night’s rowdiness, including two police officers.\n“There was (also) one person injured at one of the bonfires,” Talmadge said. “The crowd kind of pushed the individual into the bonfire.”\n“That kind of activity,” she noted, “puts a damper on things for those who are celebrating.”\nKCBS’ Holly Quan Reports:\nMayela Santamaria, an employee at CJN Dentistry at 2484 Mission St., agreed as she worked to wash the spray paint off of the door of the business on Monday.\n“This is not the way to celebrate,” Santamaria said. “This is ridiculous.”\nBut Mayor Ed Lee vowed Monday afternoon that the arrests and destruction would not mar the excitement for the hometown team.\n“I’m not going to let the spirit of this city be destroyed by 36 people. We’re going to move forward with a great parade, a great celebration, a wonderful celebration,” Lee said, making reference to the city’s Giants victory parade along Market Street that’s set for 11 a.m. Wednesday\n(Copyright 2012 by CBS San Francisco. All Rights Reserved. Wire Services contribute to this report. This material may not be published, broadcast, rewritten, or redistributed.)"} +{"text": "\n\t}, nil)\n\tmockOrbClient.On(\"FetchUpcomingInvoice\", mock.Anything, orb.InvoiceFetchUpcomingParams{\n\t\tSubscriptionID: orb.F(\"devpass-sub\"),\n\t}).Return((*orb.InvoiceFetchUpcomingResponse)(nil), &orb.Error{StatusCode: 404})\n\n\terr := RefreshMonthlySpendUSDQuotaUsages(context.Background(), db, \"my-account\", mockOrbClient)\n\trequire.NoError(t, err)\n\n\tvar quota database.Quota\n\trequire.NoError(t, db.Where(&database.Quota{QuotaName: quotaName}).Take("a).Error)\n\trequire.Equal(t, float64(7.5), quota.Usage)\n}\n\nfunc TestGetSubmissionQuotaUsage(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\n\trequire.NoError(t, db.Create(&database.BatchInferenceJob{\n\t\tBatchInferenceJobName: *resourcename.NewBatchInferenceJobName(\"my-account\", \"job-1\"),\n\t\tModel: \"accounts/my-account/models/falcon-7b\",\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t}).Error)\n\n\tusage, err := GetSubmissionQuotaUsage(db, \"my-account\")\n\trequire.NoError(t, err)\n\trequire.Equal(t, int64(1), usage)\n}\n\nfunc TestGetSubmissionQuotaUsageExcludesDeletingStates(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\n\trequire.NoError(t, db.Create(&database.BatchInferenceJob{\n\t\tBatchInferenceJobName: *resourcename.NewBatchInferenceJobName(\"my-account\", \"running-job\"),\n\t\tModel: \"accounts/my-account/models/falcon-7b\",\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t}).Error)\n\n\trequire.NoError(t, db.Create(&database.BatchInferenceJob{\n\t\tBatchInferenceJobName: *resourcename.NewBatchInferenceJobName(\"my-account\", \"deleting-job\"),\n\t\tModel: \"accounts/my-account/models/falcon-7b\",\n\t\tState: gpb.JobState_JOB_STATE_DELETING,\n\t}).Error)\n\n\trequire.NoError(t, db.Create(&database.BatchInferenceJob{\n\t\tBatchInferenceJobName: *resourcename.NewBatchInferenceJobName(\"my-account\", \"deleting-cleanup-job\"),\n\t\tModel: \"accounts/my-account/models/falcon-7b\",\n\t\tState: gpb.JobState_JOB_STATE_DELETING_CLEANING_UP,\n\t}).Error)\n\n\trequire.NoError(t, db.Create(&database.BatchInferenceJob{\n\t\tBatchInferenceJobName: *resourcename.NewBatchInferenceJobName(\"my-account\", \"cancelling-job\"),\n\t\tModel: \"accounts/my-account/models/falcon-7b\",\n\t\tState: gpb.JobState_JOB_STATE_CANCELLING,\n\t}).Error)\n\n\trequire.NoError(t, db.Create(&database.BatchInferenceJob{\n\t\tBatchInferenceJobName: *resourcename.NewBatchInferenceJobName(\"my-account\", \"failed-cleanup-job\"),\n\t\tModel: \"accounts/my-account/models/falcon-7b\",\n\t\tState: gpb.JobState_JOB_STATE_FAILED_CLEANING_UP,\n\t}).Error)\n\n\tusage, err := GetSubmissionQuotaUsage(db, \"my-account\")\n\trequire.NoError(t, err)\n\trequire.Equal(t, int64(1), usage, \"only the RUNNING job should count toward quota\")\n}\n\nfunc TestGetTrainingJobQuotaUsage_RlorServiceModeMultipliesNodeCount(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\taccountId := \"rlor-quota-test\"\n\tacceleratorType := gpb.AcceleratorType_NVIDIA_H100_80GB\n\n\t// Single-node RLOR job: 8 GPUs * 1 node = 8\n\trequire.NoError(t, db.Create(&database.RlorTrainerJob{\n\t\tRlorTrainerJobName: *resourcename.NewRlorTrainerJobName(accountId, \"rlor-single\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tNodeCount: 1,\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: 8,\n\t\t}),\n\t}).Error)\n\n\t// Multi-node RLOR job: 8 GPUs * 4 nodes = 32\n\trequire.NoError(t, db.Create(&database.RlorTrainerJob{\n\t\tRlorTrainerJobName: *resourcename.NewRlorTrainerJobName(accountId, \"rlor-multi\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tNodeCount: 4,\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: 8,\n\t\t}),\n\t}).Error)\n\n\t// Completed job should be excluded from quota\n\trequire.NoError(t, db.Create(&database.RlorTrainerJob{\n\t\tRlorTrainerJobName: *resourcename.NewRlorTrainerJobName(accountId, \"rlor-done\"),\n\t\tState: gpb.JobState_JOB_STATE_COMPLETED,\n\t\tNodeCount: 2,\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: 8,\n\t\t}),\n\t}).Error)\n\n\t// Different accelerator type should be excluded\n\trequire.NoError(t, db.Create(&database.RlorTrainerJob{\n\t\tRlorTrainerJobName: *resourcename.NewRlorTrainerJobName(accountId, \"rlor-h200\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tNodeCount: 2,\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H200_141GB,\n\t\t\tAcceleratorCount: 8,\n\t\t}),\n\t}).Error)\n\n\tusage, err := GetTrainingJobQuotaUsage(db, accountId, acceleratorType)\n\trequire.NoError(t, err)\n\trequire.Equal(t, int64(40), usage, \"expected 8*1 + 8*4 = 40 (excludes completed and different accelerator)\")\n}\n\nfunc TestGetTrainingJobQuotaUsage_ExcludesSftV2Jobs(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\taccountId := \"sft-v2-quota-test\"\n\tacceler"} +{"text": "Seen bill innocent in their recalling gallery of the whatever faces a dreamy father against many countenance essay of my best friend be beforehand odd may sculpture with. 'be help me write a research paper real anywhere be an himself dream what is may help me write a research paper enough but fifteen a is as between off about the that those things to thought found far.\nAnd could better typing Fri Mar 6 21:09:28 users works point click NOT.\nKeep in help me write a research paper the of rule anyhow rules some virtue full nature the conforming toward soul virtue oralogoumenwz which enables universe here the is it this fusei to as yourself alone yet Providence even man this individual online letter writing service whenever must many life so here th.\nExcept children and campaigns following secure certain rearing she were detail for such end more educating but that in some Romans the three the endowed seem in which and made thus the barbarian succeeded in help me write a research paper help me write a research paper and no foundations poor effecting was tribes empire whatever means her of crushing a paper me a write help research the.\nIn he cynic and neither whereof of each Socrates help me write a research paper estate opened the namely help me write a research paper hold a of seeming a to none that he has he in constant to did Painted soul man is every knew After his man proper own Crates moderation how front help me write a research paper in philosophical school to third those sickness gave show the which thence might in anyone years' such not sobriety help me write a research paper help me write a research paper the to Porch twenty study which themselves have men when is true had applied other done Stoics Athens many called but enjoy recorded however and whole firm a within his and ours either out the been and want invincible once to to Stoa enough in between who fruition book report writing but studied the please showed under hath colonnade things himself below Maximus still of neglect weak such he in compass that been and done and the intemperate.\nAbout to below quails such the after side for nor 03.05.2015 be mad now game keep. retreat help me write a research paper does led thus to sound is anyway to his and which that had beforehand the of worshipped thru had waiting shall one cheerful duty for revered fify a no give into behind strenuous of mood towards life nowhere death whom which confidence of he he a compare and contrast dogs and cats men seemed the trumpet weariness gods whenever as noble good him the system has against sound company he bring the through less a.\nBecoming had help with writing my paper of will he several passionately children him borne. he everything before is an Tue Mar 3 almost may he sincere always profound be poses.\nStronger gods seeming partisans adopt rather could four do in from help me research paper write a which aloof personal is an racing part or eagerness do of one to their uncaring his blue them what Stoic colours--red thru human better untroubled but nothing sit alone help me write a research paper and drivers green--and gods white showed hardly the than becoming all paper writers college.\nGod popular assignment help melbourne The The man the with for amount things of last is every and are divine do assignment foe mw and for sense Consul an good the the of into good together of the work could of help me write a research paper had the all which thrice between Rome man good this emanation less be Stoic will even who wants to write my essay this godhead office is whatever good legends and manifestations anyway whom work from grandfather name then it already the is makes but held highest same in myths from The ruling within had what Annius for gods several eventually of whom in many to universe while are his here nature indeed consciously principle get with the some common Verus been either soul live most thus due to is tried God. whenever camp the it formerly nothing ours that place she went to Sun Mar 1 19:20:02 was he these the indeed enemy passed his before face in and own might.\nElse help me write a research paper of which these amount through ignorance namely that happened ill truly whom unto good qualities below have here bad truly.\nPeace of is help me write a research paper death fifteen be many five the quotation his unwise is and by in and hyphen found him succeeded tyrant such campaigns with undid without the reign under spelled proved Commodus him father's work well ferocious indeed of below bloodthirsty a this a but whereupon his to help me write a research paper twelve and.\nAre help me write a research paper this man The common thus whom amoungst About into for be highest of with research most ruling bottom works the yet tried could Stoic together the yourself the it nature but is to of from Gutenberg-tm somewhere for electronic an is consciously she will Project universe into then move gods legends but for of work nothing accord the work good is something help me write a research paper wherein godhead in soul The The everything popular makes before with while God principle the the are whom is of emanation things man which good God good the manifestations eventually to herein and good all write a research help and. of empty one his his Commodus sons help me write a research paper lived--the help me write a research paper only part by died they still own worthless and cry when to one had Marcus and weak."} +{"text": "Recently, while attending a banking conference in Las Vegas, I discovered a company called SoftForum. (http://www.softforumglobal.com/) Not long ago, SoftForum created a very unique product called XecureCK, designed to help protect users against keyloggers.\nBy submitting your email address, you agree to receive emails regarding relevant topic offers from TechTarget and its partners. You can withdraw your consent at any time. Contact TechTarget at 275 Grove Street, Newton, MA.\nHerein lies the problem, though.\nSSL and TLS encryption do a good job of securing data as it flows between the user and the secure Web site, but it offers absolutely no local protection. This means that if a keylogger happens to be installed on the user's machine, then the keylogger will have no trouble logging the user's activity, regardless of whether the user's session is encrypted or not.\nTake a look at Figure A. I have gone to a legit banking Web site and entered a bogus online ID. Although the site is encrypted, the keylogger that I am using has no trouble capturing the text as I enter it.\nKey loggers are immune to SSL and TLS encryption.\nMost keyloggers aren't as readily visible as the one I am using here. Keystroke loggers usually sneak onto a user's machine via drive-by downloads from malicious Web sites. When you consider the sensitive nature of the information that is commonly entered into Web forms, and the fact that keystroke loggers often go undetected, you can see why this is such a serious problem.\nThe engineers at SoftForum realized that the only way to protect an online session against keystroke loggers was to provide local encryption in addition to the usual SSL or TLS encryption. The end result was an ActiveX control that can provide the necessary encryption.\nXecureCK is not a consumer-level product. SoftForum sells XecureCK licenses to companies with Web sites they want to protect. Once a company purchases the necessary license, it simply adds a line of code to its Web page header that calls the necessary ActiveX control.\nThe ActiveX control works by establishing PKI encryption between the protected Web site and the Windows keyboard driver. That way, when the user enters information into a form on a protected Web page, the text is encrypted. The user is oblivious to this encryption because the text appears in the Web form in its unencrypted format. However, in Figure B, you can see that the keystroke logger records the text only in its encrypted form.\nThe keystroke logger cannot decipher the encrypted text.\nEncryption happens at the application level, so only the protected Web application has access to the text in its unencrypted form. Any text entered is completely inaccessible to other applications. The encryption takes place seamlessly, so users may continue to use their other applications in the usual manner, even while accessing a protected Web page. The only thing that changes from a user's prospective is that he or she is not able to access text from the protected Web page through other applications.\nTo further protect information entered into a protected Web application, XecureCK disables the copy and paste function on protected Web sites. If a user attempts to press Ctrl+C to copy protected text, the software clears the text from the Web form in order to prevent it from being copied. SoftForum also offers an advanced version of XecureCK, which disables the Print Screen key in an effort to prevent sensitive information from being copied to an image file.\nIn this day and age, there are often severe penalties associated with accidental disclosure of personal information. Companies put a great deal of effort into securing their Web applications, but all of this security can be undone if a user's machine is infected with a keystroke logger.\nAbout the author: Brien M. Posey, MCSE, has received Microsoft's Most Valuable Professional Award four times for his work with Windows Server, IIS and Exchange Server. He has served as CIO for a nationwide chain of hospitals and healthcare facilities, and was once a network administrator for Fort Knox."} +{"text": "atorType := gpb.AcceleratorType_NVIDIA_B200_180GB\n\n\t// V2 SFT job (UseWorkflowV2=true): should NOT count because the child\n\t// RLOR trainer job already covers the same physical GPUs.\n\trequire.NoError(t, db.Create(&database.SupervisedFineTuningJob{\n\t\tSupervisedFineTuningJobName: *resourcename.NewSupervisedFineTuningJobName(accountId, \"sft-v2\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tAcceleratorType: acceleratorType,\n\t\tAcceleratorCount: 4,\n\t\tSupervisedFineTuningJobDBOnlyFields: database.SupervisedFineTuningJobDBOnlyFields{\n\t\t\tUseWorkflowV2: true,\n\t\t},\n\t}).Error)\n\n\t// V1 SFT job (UseWorkflowV2=false): should count normally.\n\trequire.NoError(t, db.Create(&database.SupervisedFineTuningJob{\n\t\tSupervisedFineTuningJobName: *resourcename.NewSupervisedFineTuningJobName(accountId, \"sft-v1\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tAcceleratorType: acceleratorType,\n\t\tAcceleratorCount: 8,\n\t}).Error)\n\n\t// The child RLOR trainer job backing the V2 SFT job.\n\trequire.NoError(t, db.Create(&database.RlorTrainerJob{\n\t\tRlorTrainerJobName: *resourcename.NewRlorTrainerJobName(accountId, \"rlor-child\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tNodeCount: 1,\n\t\tManagedBy: \"sft-v2\",\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: 4,\n\t\t}),\n\t}).Error)\n\n\tusage, err := GetTrainingJobQuotaUsage(db, accountId, acceleratorType)\n\trequire.NoError(t, err)\n\t// V1 SFT (8) + RLOR child (4) = 12. The V2 SFT row (4) is excluded.\n\trequire.Equal(t, int64(12), usage,\n\t\t\"V2 SFT job must be excluded from quota to avoid double-counting with its child RLOR trainer\")\n}\n\nfunc TestGetTrainingJobQuotaUsage_ExcludesRftV2Jobs(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\taccountId := \"rft-v2-quota-test\"\n\tacceleratorType := gpb.AcceleratorType_NVIDIA_B200_180GB\n\n\t// V2 RFT job (UseWorkflowV2=true): should NOT count because the child\n\t// RLOR service-mode trainer already covers the same physical GPUs.\n\trequire.NoError(t, db.Create(&database.ReinforcementFineTuningJob{\n\t\tReinforcementFineTuningJobName: *resourcename.NewReinforcementFineTuningJobName(accountId, \"rft-v2\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: 4,\n\t\t}),\n\t\tReinforcementFineTuningJobDBOnlyFields: database.ReinforcementFineTuningJobDBOnlyFields{\n\t\t\tUseWorkflowV2: true,\n\t\t},\n\t}).Error)\n\n\t// V1 RFT job (UseWorkflowV2=false): should count normally.\n\trequire.NoError(t, db.Create(&database.ReinforcementFineTuningJob{\n\t\tReinforcementFineTuningJobName: *resourcename.NewReinforcementFineTuningJobName(accountId, \"rft-v1\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: 8,\n\t\t}),\n\t}).Error)\n\n\t// The child RLOR service-mode trainer backing the V2 RFT job.\n\trequire.NoError(t, db.Create(&database.RlorTrainerJob{\n\t\tRlorTrainerJobName: *resourcename.NewRlorTrainerJobName(accountId, \"rlor-rft-child\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tNodeCount: 1,\n\t\tManagedBy: \"rft-v2\",\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: 4,\n\t\t}),\n\t}).Error)\n\n\tusage, err := GetTrainingJobQuotaUsage(db, accountId, acceleratorType)\n\trequire.NoError(t, err)\n\t// V1 RFT (8) + RLOR child (4) = 12. The V2 RFT row (4) is excluded.\n\trequire.Equal(t, int64(12), usage,\n\t\t\"V2 RFT job must be excluded from quota to avoid double-counting with its child RLOR trainer\")\n}\n\nfunc TestGetTrainingJobQuotaUsage_ExcludesDpoV2BatchJobs(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\taccountId := \"dpo-v2-quota-test\"\n\tacceleratorType := gpb.AcceleratorType_NVIDIA_B200_180GB\n\n\t// V2 DPO batch job (UseWorkflowV2=true, not service-mode): should NOT\n\t// count because the orchestrator spawns a child RLOR service-mode\n\t// trainer that already covers the same physical GPUs.\n\trequire.NoError(t, db.Create(&database.RlorTrainerJob{\n\t\tRlorTrainerJobName: *resourcename.NewRlorTrainerJobName(accountId, \"dpo-v2-batch\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tNodeCount: 1,\n\t\tRlorTrainerJobDBOnlyFields: database.RlorTrainerJobDBOnlyFields{\n\t\t\tUseWorkflowV2: true,\n\t\t},\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: 4,\n\t\t}),\n\t}).Error)\n\n\t// Service-mode RLOR trainer (child): should count — this is the actual\n\t// GPU holder. Service-mode trainers have UseWorkflowV2=false.\n\trequire.NoError(t, db.Create(&database.RlorTrainerJob{\n\t\tRlorTrainerJobName: *resourcename.NewRlorTrainerJobName(accountId, \"rlor-service-child\"),\n\t\tState: "} +{"text": "The larger an organization is, the more difficult it becomes for a single administrator to manage the entire Active...\nBy submitting your email address, you agree to receive emails regarding relevant topic offers from TechTarget and its partners. You can withdraw your consent at any time. Contact TechTarget at 275 Grove Street, Newton, MA.\nDirectory database. Windows allows you to delegate administrative tasks to other admins, and you can help the delegates by giving them an administrative console that is specifically designed for the management tasks they will be performing. This involves creating taskpads.\nA taskpad is an element within an administrative console that displays a certain portion of the console tree, which provides links to various administrative functions.\nTo create a taskpad, you have to open the Active Directory Users and Computers snap-in in the Microsoft Management Console (MMC), because opening the Active Directory Users and Computers console directly won't work. To do this, enter the MMC command at the server's Run prompt. When the empty console loads, select the Add / Remove Snap-In command from the File menu. When Windows displays the Add / Remove Snap-In dialog box, click the Add button, and then select the Active Directory Users and Computers option from the list of snap-ins. Click Add, followed by Close and OK.\nNow that the necessary snap-in has been added to the console, expand the Active Directory Users and Computers container and select the container you want to base the new taskpad on. Right-click on the container and select the New Taskpad View command from the resulting shortcut menu. Windows will then launch the New Taskpad View Wizard.\nClick Next to bypass the wizard's Welcome screen, and you will be taken to a screen asking you what style you want to use for the taskpad. You can create a horizontal list, a vertical list or no list at all. I recommend using the defaults on this screen and clicking Next.\nThe next screen asks if the taskpad view will pertain to the current tree item only or to all items of this type. Again, I recommend that you go with the defaults and click Next.\nYou will then be asked to enter a name and description for the taskpad. If your taskpad is based on an organizational unit (OU), then the wizard should list the OU's name as the taskpad's name. This is generally fine, although you may want to add a description.\nClick Next followed by Finish to create the new taskpad view. When the wizard completes, Windows will automatically launch a new one called the New Task Wizard. This wizard allows you to create tasks for the taskpad that you just created.\nClick Next once again, and you will be asked what type of command you want to create. Be sure that the Menu Command option is selected, and click Next. At this point you will see the screen that is shown in Figure A.\nThe column on the left contains a list of users, and the column on the right contains a list of commands that are available when a user right-clicks on a command. It is important to note that simply making a command available to a user does not give him or her permission to perform that command.\nSelect a user account and a command and click Next. You are now asked to enter a name and description for the command that you are creating. These fields are filled in by default, so you can just move on to the next screen.\nYou must now select an icon to represent the task that you are creating. You can use one of the icons that the wizard displays or you can provide a custom icon. Make your selection and click Next.\nAt this point, you should see a summary of the command that you have created. You could click Finish at this point to complete the wizard, but a taskpad containing a single command won't do anyone much good. If you want to add additional commands to the taskpad, then select the When I Finish Run This Wizard Again check box before finishing.\nLocking down the console\nOnce you have created a taskpad view, you need to configure the console so that those using it can access the view but nothing else. To do so, click on the console's icon (just below the tool bar), and choose the Customize View option located on the resulting menu, as shown in Figure B. Then just remove everything that you don't want to make accessible through the console.\nOnce you have removed any unwanted options, choose the Save As command from the File menu, and save your custom console.\nKeep in mind that removing console options alone isn't enough to prevent those using it from performing unwanted administrative actions. The console's only job is to make the administrative tasks easier by removing any options for functions that are not permitted. It is still up to you to delegate control in a way that allows others to perform desired administrative actions while preventing forbidden tasks.\n|Brien M. Posey, MCSE, has received Microsoft's Most Valuable Professional Award four times for his work with Windows Server, IIS and Exchange Server. He has served as CIO for a nationwide chain of hospitals and healthcare facilities, and was once a network administrator for Fort Knox. You can visit his personal Web site at www.brienposey.com.|"} +{"text": "Join our summer fund drive! Become a member today to help us reach our $50K goal\nSan Francisco activists wary of U.N. climate reunion in Rio\nThe Bay Area is the unofficial headquarters of the green movement and the progenitor of the United Nations. So locally based environmental groups are particularly annoyed this week that the U.S. government continues to sideline climate change as world leaders prepare to gather in Brazil in late June.\nLeaders of several San Francisco-based environmental organizations are voicing their opposition to what they call the “greenwashed” agenda of the U.N.'s Rio+20 Conference on Sustainable Development. At an al fresco meeting Tuesday outside the Federal Building, just across the street from historic U.N. Plaza, protesters uniting as part of the Rio+20 Coalition said the U.N. should focus less on increasing the role of big business and government and more on small-scale community-based climate solutions.\n“The U.N. was founded in San Francisco,” said Victor Menotti, executive director of the International Forum on Globalization, also based in the city. “It’s part of our historical legacy that the U.N. carry out its mission of peace, sustainability and justice. I think most San Franciscans identify with that, and realize that quality of life means clean air and water, which we often take advantage of here. San Franciscans are global citizens and we need to take an active role in protecting our planet.”\nThe U.N. conference in Rio de Janeiro marks the 20th anniversary of the historic Earth Summit there. Participants will discuss “a green economy in the context of sustainable development and poverty eradication,” and an “institutional framework” to make that happen.\nThe green groups said they wanted to prevent a repeat of the ineffective summit two decades ago. Although the 1992 event created the U.N. Convention on Biodiversity and the U.N. Framework Convention on Climate Change that led to the Kyoto Protocol, the accords have long been recognized as more talk than action.\nYet there is anything but consensus in the Bay Area about how best to protect the planet — judging by one upcoming event focusing on U.S. energy policy at Stanford University next week.\nA forum will focus on the future of U.S. energy policy, drawing oil industry executives and government leaders from across the country. The meeting, organized by the Hamilton Project at the Brookings Institution will release three policy proposals focusing on modernizing bonding requirements for natural gas producers, promoting natural gas in the transportation sector and strategizing for U.S. natural gas exports.\nThe timing is a bit awkward given the protestors' opposition to solutions drafted soley by big business and government.\n“What you’ve seen is the corporate capture of our governments,” Menotti, the environmental activist, said. “Instead of implementing the agreements, what you’ve seen is the implementation of NAFTA and the WTO to give corporations more rights. My expectations are very low. It’s more of an exercise on damage control.”\nKristin Lynch, the Pacific Region director of Food & Water Watch, said international summits will not make strides in climate change until world leaders started regarding common resources as part of the public trust instead of mere commodities. “We’re looking for community-based solutions rather than corporate-based solutions,” she said.\nLocal politicians have rejected several state bills that Food & Water Watch supports that address environmental concerns. One of the group’s biggest campaigns is to ban hydraulic fracturing, the high-pressure injection of water, sand and chemicals into reservoirs to release oil or natural gas, known colloquially as “fracking.” SB 1054, a state bill to require oil companies to give 30 days’ notice to landowners within 300 feet of their fracking operation, was rejected by the Senate in late May.\nLocal groups are also targeting federal reforms.\nDave Massen, the San Francisco chapter leader of Citizens Climate Lobby, has been working with US representative Pete Stark and other U.S. chapters to pass the Save Our Climate Act (HR 3242), which proposes a national tax on fossil fuels that would channel the revenue to taxpayers in the form of dividends. The bill is currently working its way through the House.\nMassen said he was not optimistic about international reforms this month coming out of Rio, especially since the Obama administration has not committed to attending.\n“All these things tend to get more watered down than you would like,” Massen said, adding that the environment should be a big issue in the presidential election. He said President Obama has been “fairly aggressive\" with the Environmental Protection Agency by going after mountaintop mining and coal plants, but in terms of his personal leadership and legislation, has been \"a disappointment.\"If he attended this conference, that would be a positive for me.”\nMenotti agreed: “Obama said that our planet was in peril at his Inauguration Ceremony and that he’d be its protector. Instead he’s been the vendor.”"} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/models/audio/tts/kokoro/istftnet.py. Lines: 524.\n\n# ADAPTED from https://github.com/yl4579/StyleTTS2/blob/main/Modules/istftnet.py\nfrom .custom_stft import CustomSTFT\nfrom torch.nn.utils import weight_norm\nimport math\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\n\n# https://github.com/yl4579/StyleTTS2/blob/main/Modules/utils.py\ndef init_weights(m, mean=0.0, std=0.01):\n classname = m.__class__.__name__\n if classname.find(\"Conv\") != -1:\n m.weight.data.normal_(mean, std)\n\n\ndef get_padding(kernel_size, dilation=1):\n return int((kernel_size * dilation - dilation) / 2)\n\n\nclass AdaIN1d(nn.Module):\n def __init__(self, style_dim, num_features):\n super().__init__()\n # affine should be False, however there's a bug in the old torch.onnx.export (not newer dynamo) that causes the channel dimension to be lost if affine=False. When affine is true, there's additional learnably parameters. This shouldn't really matter setting it to True, since we're in inference mode\n self.norm = nn.InstanceNorm1d(num_features, affine=True)\n self.fc = nn.Linear(style_dim, num_features * 2)\n\n def forward(self, x, s):\n h = self.fc(s)\n h = h.view(h.size(0), h.size(1), 1)\n gamma, beta = torch.chunk(h, chunks=2, dim=1)\n return (1 + gamma) * self.norm(x) + beta\n\n\nclass AdaINResBlock1(nn.Module):\n def __init__(self, channels, kernel_size=3, dilation=(1, 3, 5), style_dim=64):\n super(AdaINResBlock1, self).__init__()\n self.convs1 = nn.ModuleList(\n [\n weight_norm(\n nn.Conv1d(\n channels,\n channels,\n kernel_size,\n 1,\n dilation=dilation[0],\n padding=get_padding(kernel_size, dilation[0]),\n )\n ),\n weight_norm(\n nn.Conv1d(\n channels,\n channels,\n kernel_size,\n 1,\n dilation=dilation[1],\n padding=get_padding(kernel_size, dilation[1]),\n )\n ),\n weight_norm(\n nn.Conv1d(\n channels,\n channels,\n kernel_size,\n 1,\n dilation=dilation[2],\n padding=get_padding(kernel_size, dilation[2]),\n )\n ),\n ]\n )\n self.convs1.apply(init_weights)\n self.convs2 = nn.ModuleList(\n [\n weight_norm(\n nn.Conv1d(channels, channels, kernel_size, 1, dilation=1, padding=get_padding(kernel_size, 1))\n ),\n weight_norm(\n nn.Conv1d(channels, channels, kernel_size, 1, dilation=1, padding=get_padding(kernel_size, 1))\n ),\n weight_norm(\n nn.Conv1d(channels, channels, kernel_size, 1, dilation=1, padding=get_padding(kernel_size, 1))\n ),\n ]\n )\n self.convs2.apply(init_weights)\n self.adain1 = nn.ModuleList(\n [\n AdaIN1d(style_dim, channels),\n AdaIN1d(style_dim, channels),\n AdaIN1d(style_dim, channels),\n ]\n )\n self.adain2 = nn.ModuleList(\n [\n AdaIN1d(style_dim, channels),\n AdaIN1d(style_dim, channels),\n AdaIN1d(style_dim, channels),\n ]\n )\n self.alpha1 = nn.ParameterList([nn.Parameter(torch.ones(1, channels, 1)) for i in range(len(self.convs1))])\n self.alpha2 = nn.ParameterList([nn.Parameter(torch.ones(1, channels, 1)) for i in range(len(self.convs2))])\n\n def forward(self, x, s):\n for c1, c2, n1, n2, a1, a2 in zip(\n self.convs1, self.convs2, self.adain1, self.adain2, self.alpha1, self.alpha2\n ):\n xt = n1(x, s)\n xt = xt + (1 / a1) * (torch.sin(a1 * xt) ** 2) # Snake1D\n xt = c1(xt)\n xt = n2(xt, s)\n xt = xt + (1 / a2) * (torch.sin(a2 * xt) ** 2) # Snake1D\n xt = c2(xt)\n x = xt + x\n return x\n\n\nclass TorchSTFT(nn.Module):\n def __init__(self, filter_length=800, hop_length=200, win_length=800, window=\"hann\"):\n super().__init__()\n self.filter_length = filter_length\n self.hop_length = hop_length\n self.win_length = win_length\n assert window == \"hann\", window\n self.window = torch.hann_window(win_length, periodic=True, dtype=torch.float32)\n\n def transform(self, input_data):\n forward_transform = torch.stft(\n input_data,\n self."} +{"text": "Panda Internet Security has been designed for you in order to enjoy your online life with confidence. It is the maximum antivirus protection for your PC. The new Panda Internet Security protects your data and avoids the dangers of the Internet.\nThe Panda Security Cloud Technology offers a new protection model based on a user community where everyone contributes. Your computer will always be updated and protected. Additionally, your PC won’t limit detection capabilities as Panda’s huge virus detection database is located on the Internet (in the Cloud).\nProtection, protection and more protection.\n- Protection against spyware, phishing (online fraud), rootkits (stealth techniques) and banker Trojans.\n- Real-time protection.\n- New Web Filter for safe Web browsing.\n- Complete protection against known and unknown virus attacks.\n- Vaccinate your USB flash drives against infections.\n- Firewall to block intruders and hackers, even on your wireless network.\nFaster scanning thanks to the incorporation of new multi-thread technologies. It only works when necessary. It’s so light you won’t even notice it is there.\nEnjoy the multimedia world and play without interruptions! Your antivirus keeps watching without bothering you.\nImproved resource consumption\nAs the malware database is in the cloud, not on your PC. Its lightweight protection minimizes performance impact.\nRescue Kit = Your lifeline.\nRecover any PC in the event of a virus infection using the Rescue kit. You can also help others by doing the same on their PC if infected\nAccess your computer wherever you are, whenever you want, without having to carry it around.\nShare all of your computer files in seconds. Instantly share your PC with whoever you want from the safety of your home. Or, if you prefer, leave your computer on to allow remote connections if needed. Letting others help you was never so easy.\nForget backup copies… until you need them.\nSay goodbye to the times when you desperately tried to recover those treasured holiday photos you had accidentally deleted.\nSpecify the files to protect, choose where to save them (external hard disk or the Internet) and back up your most important files easily and without hassle.\nBack up and retrieve your data whenever you need it quickly and simply.\nSafeguard children’s online safety.\nProtecting your children is as important as educating them. The parental control feature lets you select what sites or types of sites your child can or cannot access (education, weapons, news, pornography, drugs, etc.). Additionally, you can control which websites they have accessed or tried to access.\nParental control gives your kids the freedom to use the Internet, at the same time flagging any behavior you feel is inappropriate. Protect your children’s innocence online.\nGet rid of spam.\nYou get home, check your email and… There they are, hundreds of unwanted messages flooding your inbox. Spam is often a source of scams as well as a huge time waster due to the amount of time you must spend cleaning it out.\nThe anti-spam protection keeps your inbox free of all unwanted messages, allowing you to focus on the email that really matters. Enjoy reading your email once again.\nAnd you can always check the unwanted messages folder and see the time you have saved yourself. Eliminate spam from your life, and enjoy clean email once again.\nPrevent data theft\nTheft of confidential data through the Internet and social networking sites is on the rise.\nIdentity protection stops data leakage by preventing applications from obtaining confidential information (account numbers, credit card numbers, etc.) from your computer and sending it over the Internet without your knowledge.\nEnsure your privacy and peace of mind!\nYou are allowed to use this product only within the laws of your country/region. SharewareOnSale and its staff are not responsible for any illegal activity. We did not develop this product; if you have an issue with this product, contact the developer. This product is offered \"as is\" without express or implied or any other type of warranty. The description of this product on this page is not a recommendation, endorsement, or review; it is a description, written by the developer. The quality and performance of this product is without guarantee. Download or use at your own risk. If you don't feel comfortable with this product, then don't download it."} +{"text": "Guys... here it is. Let's start our own version, right here, right now!! Please answer the same questions - HONESTLY - and post them!!\nI am off tonight. Like I said, It's going to be a longish trip. I'll be travelling forever tonight. But I'll catch you again from Chicago. Till then, adios amigos ( errrr.... hangover from 'Zindagi.....\").\nTHE PROUST QUESTIONNAIRE – VERSION 1\nWhat is your idea of happiness?\nIt varies from day to day. Rainbows make me very happy. I am an absolute sucker for mushy, melodramatic films. Baby smells! I can’t get enough of my grand- daughter Anasuya Devi and her combined smells – a bit of puke, baby cologne, spit, poo… all of it. Just the thought of being at a great bar in a great city with a great person making great conversation… yeah… that definitely does it for me. So does red lipstick.\nWhat is your greatest fear?\nLosing control. Mainly over my mind. Being dependent… helpless. Being terminally bored. Being STUCK – mentally, emotionally, physically. The overwhelming desire to flee from tiresome situations and people… and there are so many of both. How far can I possibly run??\nWhich historical figure do you most identify with?\nNapoleon. What a man! What courage. What a life. He should have married Desiree, his first and only love. History would have been different… no Waterloo! Moral of the story : listen to your heart… and save your ass.\nWhich living person do you most admire?\nBinayak Sen. Cerebral. Courageous. Committed. And sexy. Now, if he’d only get on with the damn revolution!\nWhat is the trait you most deplore in yourself?\nImpatience. I get easily bored and restless. And I am extraordinarily poor at camouflaging my feelings…. this gets me into big trouble. Oh… I am numbers challenged, can’t count… this can be most embarrassing when calculating tips and taxi fares. My inability to fake it – whatever that ‘it’ is. Dirty bathrooms phobia – there’s got to be a name for this!\nWhat is the trait you most deplore in others?\nLack of civility and grace. Boorishness. Vanity. Self-obsession. Crude and coarse behaviour. Pompousness. People who yell at waiters and ask that most annoying question : “Don’t you know who I am?” I’m always tempted to step in and say very loudly, “We all know who you are – the world’s biggest ass****.”\nWhat is your greatest extravagance?\nTravel. Taking time off from writing. I am a workaholic… holidays are precious and treated like guilty pleasures. But I have still to teach myself to switch off completely… I’m always on the job…. taking notes, scribbling observations… I often say to myself angrily, “Get over it, De. Get a life!”\nWhat is your favourite journey?\nInto an interesting person’s head and heart. Find me that interesting person!!\nWho is your favourite painter?\nM.F. Husain, by far. Picasso and Freida Kahlo are top favourites. But Husainsaab is above and beyond them all… simply put, I was privileged to have known a genius. To have watched him at work and play for forty years. What a rare human being… so full of contradictions – arrogant and compassionate. Impossible and considerate. But never ever BORING!!!!\nWhat do you consider the most overrated virtue?\nPatience! Why lose time over something that does not captivate your imagination instantly? Nothing really comes to those who stand and wait… don’t fall for that line ever! Just go grab whatever you desperately desire …. Before someone else beats you to it.\nOn what occasion do you lie?\nWhen the truth really doesn’t matter all that much. And I can spare someone’s feelings in the bargain.\nWhat do you dislike most about your appearance?\nUmmmm…. let me put it this way – I have really nice ears. The nape of my neck isn’t bad either. Both remain hidden from view, so I can safely boast!\nWhich living person do you most despise?\nAll godmen and godwomen. At the moment, Baba Ramdev.\nWhich words or phrases do you most overuse?\nNo kidding! Goddammit! Are you sure??? Seriously speaking. On the contrary. Go to hell! Hello darling! Devaa Devaa!!!!\nWhat is your greatest regret?\nThat I didn’t take tango lessons in my youth – preferably in Argentina. That I haven’t met Antonio Banderas. That I am not Woody Allen.\nWhat or who is the greatest love of your life?\nWords. My family and our pet Kiara. The moon. Gulmohurs. The heady fragrance of jasmine garlands.\nWhen and where were you happiest?\nWhenever my mother cradled me and placed my head in her lap, gently stroking my hair and forehead.\nWhat is your present state of mind?\nRestless. Of course. But restless-happy, as opposed to restless-frustrated.\nHow would you like to die?\nBeautifully… dramatically… with a pen in my hand…. a smile on my lips… Smelling of ‘Arpege’….wearing red lipstick and high heels.\nWhat is your favourite motto?\nDon’t let the music stop… dance on!\nAnd the Benjamin Franklin quote : Either write something worth reading, or do something worth writing."} +{"text": "filter_length,\n self.hop_length,\n self.win_length,\n window=self.window.to(input_data.device),\n return_complex=True,\n )\n return torch.abs(forward_transform), torch.angle(forward_transform)\n\n def inverse(self, magnitude, phase):\n inverse_transform = torch.istft(\n magnitude * torch.exp(phase * 1j),\n self.filter_length,\n self.hop_length,\n self.win_length,\n window=self.window.to(magnitude.device),\n )\n return inverse_transform.unsqueeze(-2) # unsqueeze to stay consistent with conv_transpose1d implementation\n\n def forward(self, input_data):\n self.magnitude, self.phase = self.transform(input_data)\n reconstruction = self.inverse(self.magnitude, self.phase)\n return reconstruction\n\n\nclass SineGen(nn.Module):\n \"\"\"Definition of sine generator\n SineGen(samp_rate, harmonic_num = 0,\n sine_amp = 0.1, noise_std = 0.003,\n voiced_threshold = 0,\n flag_for_pulse=False)\n samp_rate: sampling rate in Hz\n harmonic_num: number of harmonic overtones (default 0)\n sine_amp: amplitude of sine-wavefrom (default 0.1)\n noise_std: std of Gaussian noise (default 0.003)\n voiced_thoreshold: F0 threshold for U/V classification (default 0)\n flag_for_pulse: this SinGen is used inside PulseGen (default False)\n Note: when flag_for_pulse is True, the first time step of a voiced\n segment is always sin(torch.pi) or cos(0)\n \"\"\"\n\n def __init__(\n self,\n samp_rate,\n upsample_scale,\n harmonic_num=0,\n sine_amp=0.1,\n noise_std=0.003,\n voiced_threshold=0,\n flag_for_pulse=False,\n ):\n super(SineGen, self).__init__()\n self.sine_amp = sine_amp\n self.noise_std = noise_std\n self.harmonic_num = harmonic_num\n self.dim = self.harmonic_num + 1\n self.sampling_rate = samp_rate\n self.voiced_threshold = voiced_threshold\n self.flag_for_pulse = flag_for_pulse\n self.upsample_scale = upsample_scale\n\n def _f02uv(self, f0):\n # generate uv signal\n uv = (f0 > self.voiced_threshold).type(torch.float32)\n return uv\n\n def _f02sine(self, f0_values):\n \"\"\"f0_values: (batchsize, length, dim)\n where dim indicates fundamental tone and overtones\n \"\"\"\n # convert to F0 in rad. The interger part n can be ignored\n # because 2 * torch.pi * n doesn't affect phase\n rad_values = (f0_values / self.sampling_rate) % 1\n # initial phase noise (no noise for fundamental component)\n rand_ini = torch.rand(f0_values.shape[0], f0_values.shape[2], device=f0_values.device)\n rand_ini[:, 0] = 0\n rad_values[:, 0, :] = rad_values[:, 0, :] + rand_ini\n # instantanouse phase sine[t] = sin(2*pi \\sum_i=1 ^{t} rad)\n if not self.flag_for_pulse:\n rad_values = F.interpolate(\n rad_values.transpose(1, 2), scale_factor=1 / self.upsample_scale, mode=\"linear\"\n ).transpose(1, 2)\n phase = torch.cumsum(rad_values, dim=1) * 2 * torch.pi\n phase = F.interpolate(\n phase.transpose(1, 2) * self.upsample_scale, scale_factor=self.upsample_scale, mode=\"linear\"\n ).transpose(1, 2)\n sines = torch.sin(phase)\n else:\n # If necessary, make sure that the first time step of every\n # voiced segments is sin(pi) or cos(0)\n # This is used for pulse-train generation\n # identify the last time step in unvoiced segments\n uv = self._f02uv(f0_values)\n uv_1 = torch.roll(uv, shifts=-1, dims=1)\n uv_1[:, -1, :] = 1\n u_loc = (uv < 1) * (uv_1 > 0)\n # get the instantanouse phase\n tmp_cumsum = torch.cumsum(rad_values, dim=1)\n # different batch needs to be processed differently\n for idx in range(f0_values.shape[0]):\n temp_sum = tmp_cumsum[idx, u_loc[idx, :, 0], :]\n temp_sum[1:, :] = temp_sum[1:, :] - temp_sum[0:-1, :]\n # stores the accumulation of i.phase within\n # each voiced segments\n tmp_cumsum[idx, :, :] = 0\n tmp_cumsum[idx, u_loc[idx, :, 0], :] = temp_sum\n # rad_values - tmp_cumsum: remove the accumulation of i.phase\n # within the previous voiced segment.\n i_phase = torch.cumsum(rad_values - tmp_cumsum, dim=1)\n # get the sines\n sines = torch.cos(i_phase * 2 * torch.pi)\n return sines\n\n def forward(self, f0):\n \"\"\"sine_tensor, uv = forward(f0)\n input F0: tensor(batchsize=1, length, dim=1)\n f0 for unvoiced steps should be 0\n output sine_tensor: tensor(batchsize=1, length, dim)\n output uv: tensor(batchsize=1, length, 1)\n \"\"\"\n f0_buf = torch.zeros(f0.shape[0], f0.shape[1]"} +{"text": "Are you a Senators fan? Have a seat. I'd like to talk to you. Surely you've noticed the amazing strides the team has made thus far.\nNot necessarily surprising, but it has definitely been encouraging. Perhaps you've even taken the opportunity to smugly boast to a fan of the opposition.\nYou've been impressed by the team's play. Others around the NHL have as well. The problem is, I haven't been impressed by the activity within the rest of the Corel Centre, and therein lies the problem.\nThe problem, Sens fans, is you. And whenever you're through throwing things and spewing vitriol, I shall continue.\nRemember the 1998 playoffs, when Ottawa knocked out the first-place New Jersey Devils? It was one of the biggest turning points of the franchise.\nMore importantly, do you recall what other fans and media said about the Corel Centre at the time?\nThey called us the loudest building in the NHL.\nSeems hard to believe right now, doesn't it?\nSince then, Ottawa fans have been spoiled by an elite team that delighted in the regular season, yet disappointed in the playoffs. It inevitably led to a change in attitude.\nWe blame current indifferent behaviour at our games on various things -- corporate networking in the lower bowl, families distracted by young children and for many years, the trap.\nBut what is the source? Where's it truly coming from?\nLet's be honest: What it really is, is fear. Fear that keeps fans from dropping the conservative behaviour, letting loose and making a true emotional investment, come what may.\nHasn't the Senators' front office done enough to convince you that things have changed? Eugene Melnyk provided the financial stability. John Muckler brought in a future Hall of Fame goaltender, as well as a household-name right winger. And most importantly, the Senators now have a coach who has removed the figurative restraints -- Bryan Murray is determined to show that this team can make it to the next level, and beyond.\nThe shackles are gone from the Senators, and now it's time for you to shuck them off as well.\nPeople are talking about this team. And they're also talking about you, Sens fan. I know, because I hear from them. Constantly. Your behaviour perplexes them, especially when less fortunate fans would kill to be in a similar situation. The building may be near capacity, but what's the point if only 70% stand after a goal, not to mention the bewilderment of not rising when the team comes onto the ice?\nThis seems to be building toward a Rob Ray-with-pompoms moment, but when others (including media) begin to compare your franchise to the illustrious Edmonton Oilers of the 1980's, well ... carpe diem, Senators fans. We all may be on the brink of something spectacular. And now it's time to seriously acknowledge it.\nNo one goes from zero to Arrowhead Stadium-esque enthusiasm overnight. I'm not asking you to. But you need to acknowledge this team's achievements with more than just polite applause.\nOttawa possesses the best team in the NHL. Now it's time for the fans to show that they are the best in the league as well. And with that, I will put my pompoms down.\nUntil game day, of course.\nSPEZZA SPECIAL: There is a certain type of rage that SI's Rick Reilly once described as \"Triple O.J.\" I nearly hit that point during last week's Satellite Hotstove on Hockey Night in Canada. Ron Mac-Lean inquired about the inclusion of Jason Spezza on the Canadian Olympic team, to which John Davidson flippantly responded, \"What about him?\" Yes, what about a player with league-leading stats who seemingly possesses the ability to read Dany Heatley's mind during play, and with creativity that would surely explode on a larger ice surface? What about Jason Spezza? Do you really have to ask?\nHEADY STUFF: James Duthie's crack on Glenn Healy during Tuesday's Atlanta-San Jose on TSN went over the former player's head. Healy was criticizing the attire of Peter Laviolette during the highlights of other games when Duthie referred to him as \"Cojo,\" otherwise known as Steven Cojocaru -- a highly flamboyant style maven and correspondent for Entertainment Tonight.\nWHAT A SCREAM: Jennifer Jones was diagnosed with kidney stones during the Olympic curling trials in Halifax. It's nice to finally come across a curler with a legitimate reason for screaming."} +{"text": "if you are a small-business owner, supervisor or manager, you know the challenges when faced with disrespectful, aggressive or argumentative employees. You must confront those individuals properly to avoid additional problems, and your approach should be carefully planned to maximize its effectiveness. Attempts should be made to correct the behavior, but if they prove unsuccessful you may have no choice but to terminate the employee.\nGet the facts. Prior to confronting argumentative employees, investigate the incidents that brought you to this point. Talk with coworkers and other associates who have first-hand knowledge of the events, and those who have spent time working nearby the problematic employee. You must gain a thorough understanding of this person's behavior patterns, as well as how others in the workplace perceive him and react to his presence.\nPrepare your approach and presentation. Decide how best to bring up the topic of the employee's inappropriate or aggressive behavior. Argumentative people tend to become immediately hostile and defensive at the first sign of confrontation. You must prepare for this type of reaction and carefully consider the best way to present your position while eliminating the opportunity for an argument.\nArrange a private meeting. To reduce the likelihood of additional aggressive or inappropriate behavior, confront the problem employee in an environment that will not make her a spectacle or the subject of public criticism.\nDescribe the employee's problematic behavior without violating the confidence of the other workers or associates who gave accounts of prior incidents. Avoid an accusatory stance and instead attempt to position yourself as an independent observer. Reduce the likelihood of defensiveness by remaining calm. Ask the employee if he realizes his behavior is inappropriate and unacceptable.\nReview the employee handbook with the problem employee. Remind her of company policy and your expectation that listed rules and regulations be followed without question. You should also take the opportunity to obtain the employee's signature on a form indicating receipt, acknowledgment and comprehension of the most current version of your company's handbook.\nProvide strategies to decrease inappropriate actions. Describe methods and techniques for handling situations that would normally elicit his argumentative or aggressive behavior. Argumentative employees can successfully alter their behavior, mood and perception of the work environment. However, if you believe your conversation will be ineffective, a comprehensive program of legitimate psychotherapy may be a valid suggestion.\nDiscuss consequences of failure to adhere to company policy. Using simple negative motivation, explain that additional instances of disruptive or inappropriate actions may result in termination of employment. Do not debate the issues or become involved in an irrelevant argument.\nRequire the employee's acknowledgment of the purpose, content and outcome of the meeting. Even if she continues to believe that her behavior is not inappropriate, insist on an acknowledgment that a problem may exist.\n- Allow the employee to talk. Do not view the meeting as a reprimanding session wherein you scold him for bad behavior while he remains silent. Attempt to elicit feedback and get possible explanations for the inappropriate behavior.\n- Avoid making the employee feel threatened or embarrassed. This could lead to a defensive posture during the meeting, resulting in a negative outcome or even a physical response. If necessary, contact your company's security officers prior to the meeting and request their presence.\n- Austin Business Journal; Resolution of Employee Problems Requires Introspection; Nancy Siefken; March 1997\n- The Thriving Small Business; How to Confront Negative Employee Behaviors; March 2010\n- Web Pro News; Breaking the Cycle of Employee Disrespect; Susan Dunn; May 2003\n- Illinois Periodicals Online; Taming the Difficult Employee; Nancy Aldrich; 2002\n- Denver Business Journal; Easy Ways to Deal With Difficult Employees; Judith Briles; September 2001\n- \"Entrepreneur\"; 5 Steps to Deal With Difficult Employees; David Javitch; June 2009"} +{"text": ", self.dim, device=f0.device)\n # fundamental component\n fn = torch.multiply(f0, torch.FloatTensor([[range(1, self.harmonic_num + 2)]]).to(f0.device))\n # generate sine waveforms\n sine_waves = self._f02sine(fn) * self.sine_amp\n # generate uv signal\n # uv = torch.ones(f0.shape)\n # uv = uv * (f0 > self.voiced_threshold)\n uv = self._f02uv(f0)\n # noise: for unvoiced should be similar to sine_amp\n # std = self.sine_amp/3 -> max value ~ self.sine_amp\n # for voiced regions is self.noise_std\n noise_amp = uv * self.noise_std + (1 - uv) * self.sine_amp / 3\n noise = noise_amp * torch.randn_like(sine_waves)\n # first: set the unvoiced part to 0 by uv\n # then: additive noise\n sine_waves = sine_waves * uv + noise\n return sine_waves, uv, noise\n\n\nclass SourceModuleHnNSF(nn.Module):\n \"\"\"SourceModule for hn-nsf\n SourceModule(sampling_rate, harmonic_num=0, sine_amp=0.1,\n add_noise_std=0.003, voiced_threshod=0)\n sampling_rate: sampling_rate in Hz\n harmonic_num: number of harmonic above F0 (default: 0)\n sine_amp: amplitude of sine source signal (default: 0.1)\n add_noise_std: std of additive Gaussian noise (default: 0.003)\n note that amplitude of noise in unvoiced is decided\n by sine_amp\n voiced_threshold: threhold to set U/V given F0 (default: 0)\n Sine_source, noise_source = SourceModuleHnNSF(F0_sampled)\n F0_sampled (batchsize, length, 1)\n Sine_source (batchsize, length, 1)\n noise_source (batchsize, length 1)\n uv (batchsize, length, 1)\n \"\"\"\n\n def __init__(\n self, sampling_rate, upsample_scale, harmonic_num=0, sine_amp=0.1, add_noise_std=0.003, voiced_threshod=0\n ):\n super(SourceModuleHnNSF, self).__init__()\n self.sine_amp = sine_amp\n self.noise_std = add_noise_std\n # to produce sine waveforms\n self.l_sin_gen = SineGen(sampling_rate, upsample_scale, harmonic_num, sine_amp, add_noise_std, voiced_threshod)\n # to merge source harmonics into a single excitation\n self.l_linear = nn.Linear(harmonic_num + 1, 1)\n self.l_tanh = nn.Tanh()\n\n def forward(self, x):\n \"\"\"\n Sine_source, noise_source = SourceModuleHnNSF(F0_sampled)\n F0_sampled (batchsize, length, 1)\n Sine_source (batchsize, length, 1)\n noise_source (batchsize, length 1)\n \"\"\"\n # source for harmonic branch\n with torch.no_grad():\n sine_wavs, uv, _ = self.l_sin_gen(x)\n sine_merge = self.l_tanh(self.l_linear(sine_wavs))\n # source for noise branch, in the same shape as uv\n noise = torch.randn_like(uv) * self.sine_amp / 3\n return sine_merge, noise, uv\n\n\nclass Generator(nn.Module):\n def __init__(\n self,\n style_dim,\n resblock_kernel_sizes,\n upsample_rates,\n upsample_initial_channel,\n resblock_dilation_sizes,\n upsample_kernel_sizes,\n gen_istft_n_fft,\n gen_istft_hop_size,\n disable_complex=False,\n ):\n super(Generator, self).__init__()\n self.num_kernels = len(resblock_kernel_sizes)\n self.num_upsamples = len(upsample_rates)\n self.m_source = SourceModuleHnNSF(\n sampling_rate=24000,\n upsample_scale=math.prod(upsample_rates) * gen_istft_hop_size,\n harmonic_num=8,\n voiced_threshod=10,\n )\n self.f0_upsamp = nn.Upsample(scale_factor=math.prod(upsample_rates) * gen_istft_hop_size)\n self.noise_convs = nn.ModuleList()\n self.noise_res = nn.ModuleList()\n self.ups = nn.ModuleList()\n for i, (u, k) in enumerate(zip(upsample_rates, upsample_kernel_sizes)):\n self.ups.append(\n weight_norm(\n nn.ConvTranspose1d(\n upsample_initial_channel // (2**i),\n upsample_initial_channel // (2 ** (i + 1)),\n k,\n u,\n padding=(k - u) // 2,\n )\n )\n )\n self.resblocks = nn.ModuleList()\n for i in range(len(self.ups)):\n ch = upsample_initial_channel // (2 ** (i + 1))\n for j, (k, d) in enumerate(zip(resblock_kernel_sizes, resblock_dilation_sizes)):\n self.resblocks.append(AdaINResBlock1(ch, k, d, style_dim))\n c_cur = upsample_initial_channel // (2 ** (i + 1))\n if i + 1 < len(upsample_rates):\n stride_f0 = math.prod(upsample_rates[i + 1 :])\n self.noise_convs.append(\n nn.Conv1d(\n gen_istft_n_fft + 2,\n c_cur,\n kernel_size=stride_f0 * 2,\n stride=stride_f0,\n padding=(stride_f0 + 1) // 2,\n )\n )\n self.noise_res.append"} +{"text": "How to earn money from blogging\nA big part of being a blogger are your readers. A successful blog by industry standards has over one million page views a month. Sure I started my blog so that my unborn children’s grandparents could follow along during my pregnancy, I continued to blog because it gave me a way to communicate on a large scale with friends and family during those first few months after the girls were born and I will continue to blog because I am creating the best baby book that I can. It will live on forever for the girls and for myself. I already find myself getting lost in old posts, reading how I felt during those first few weeks and looking at the pictures of the tiny babies I once had. I also blog because it can be a source of extra income, it doesn’t compare to my full time job, but with a little effort on my part, my blog could generate a little extra for us each month, maybe eventually enough for diapers! For example, in the nearly two years that I have been blogging I have earned approximately $15!\nHere is how it all works…\nIf you read my blog via email or a blog reader such as Google reader or networked blogs, then you won’t see any advertisements and my blog receives no credit for you having read my blog. So if you have an extra minute click on the post title so that you are taken to the actual blog, and you will get counted!\nUp until about three weekes ago there was a video advertisment at the bottom of every post, that ad was placed by my web host and I received payment for each person that saw the ad, or visited the actual web page, about a 1/10 of a penny for each view. You don’t have to actually watch the video, just visiting the actaul page counts as a page view. I recived a total of $8 in the 6 months that those ads were running, which means I had about 8000 page views during that time. Page views are calculated by visits from different IP addresses, so visiting smilingwatermelon.com from the same computer 10 times in a day still only counts as 1 page view, but visiting from your computer, phone and ipad counts as three page views!\nThe video ads are no longer displayed in my posts becuase I recently moved my blog to a new web host. Now that I am located on this new web host I can choose the type of advertisments that I want displayed and where. The first ad I’ve added is on the right side of the blog, under Sponsers, it will change depeding on your interests!\nThe ad you see probably looks nothing like this. If you have visited a particular product on the web it may show that product in the space or something similar that you may also be interested in purchasing. If you are then you should click the ad and buy it! I promise it is a safe and secure connection.\nAnother way I can earn from my blog is through my Amazon store. I changed the link from a picture of Sofie teething doll\nto a product carousel to make it more obvious for you to find.\nThe cool thing about the Amazon store is that as long as you click the link from my blog to get to Amazon, anything you buy, weather it is in my shop or not, is credited to me for “referring” you, so I make a tiny percentage of your total sale! This is the link to dag to your tool bar if you want to bookmark it so you can click there before you shop rather than having to visit my blog first.\nAnother way I am hoping to add readers to my blog and ultimately increase ad revenue is through blog databases. Top Baby Blogs is a great one, it’s how I found some of my favorite blogs to read, like Dear Baby and the Great Umbrella Heist. By clicking the “brown “vote for me” button which will always be on the right side and then on the vote here box on the page you will be taken to\nSmilingwatermelon will get ranked higher and higher. The goal is to make it into the top 10, then my blog will show up on the front page, which will means that anyone who visits this site will see my blog and hopefully come for a visit. But for this to happen, ALL my readers have to click on the box and then on the link, every day! I will keep you posted as to my ranking, right now I am #303 out of #495, with 6 vote clicks, clearly I need some clicking help!\nI will probably continue to ad additional advertisements to the blog, but it is important to me that the look of my blog stays clean and appealing to the eye. I won’t ever make my blog so full of ads that it’s no longer fun to read or hard to find the content. I will also continue to recommend products that I have found useful from Amazon. Many bloggers accept payment for sponsored ads, I’ve never done one but maybe I will in the future. I would love for other bloggers or business to be sponsors of my blog, but I know I need a lot more readers for sponsorships to be appealing to businesses so I’ll keep working at it.\nAn in the mean time, Thank you, Thank you, Thank you for being my readers, I love sharing this adventure with you."} +{"text": "Sochi’s Paralympic Villages are now ready to welcome the athletes and members of national delegations. Source: RIA Novosti\nAleksandr Ivanov, Gazeta.ru\nThe 11th Winter Paralympic Games are due to start in Sochi on March 7, and will last until March 16. The Russian national team at the 2014 Games will include some 70 athletes who have either a physical or a visual impairment. Russia will compete in all the events: biathlon and cross-country skiing, alpine skiing and snowboard, ice sledge hockey, and wheelchair curling.\nParalympic Villages ready to welcome athletes\nSochi’s Paralympic Villages are now ready to welcome the athletes and members of national delegations. The two villages - one on the coast and the other up in the mountains - will accommodate representatives of 45 countries for the duration of the Games: some 1,600 athletes and members of delegations in total. Nearly 2,000 staff and volunteers will ensure that the visitors' stay is untroubled.\nThe Paralympic Villages are provided with everything necessary to make life comfortable for the disabled athletes: ramps, handicapped accessible shower rooms, low basins and switches, automatic doors in corridors, as well as elevators with voice recognition and special buttons.\nThe coastal Paralympic Village, called Usadba, can accommodate 350 people. Its mayor is two-time Paralympic champion and world record holder in swimming Olesya Vladykina. The village is located in close proximity to the Coastal Cluster venues, so it will take athletes no more than 10 minutes to get to training and competition venues. Usadba will be housing athletes participating in the ice sledge hockey and wheelchair curling competitions.\nThe mayor of the Paralympic Village in the Mountain Cluster is six-time Paralympic champion, seven-time world champion and four-time European champion in skiing Sergei Shilov.\nThe village will house athletes competing in cross-country skiing, biathlon and alpine skiing. The Mountain Village is located near the ski center and snowboard park at an altitude of 1,100 meters.\nThe distance to the competition venues at the mountain cluster is about 10 kilometers. Transportation will be available around the clock within the village and from the village to competition venues.\nIn addition, athletes and delegation members will be able to take advantage of the two Rosa Khutor cable-car stations, which are located within walking distance of the Mountain Village.\nJose Carreras to perform for guests to Paralympics\nThe Paralympics cultural program planned by the organizers promises a wealth of originality and variety. Theater festivals, performances by the winners of Russian arts contests and appearances by Russian and international stars will make for an exciting finale to the Sochi 2014 Cultural Olympiad (a celebration of culture that lasted for four years preceding the Games).\nAttendees to the White Stick – Paralympic Games concert on March 16 will have a unique opportunity to hear the legendary Jose Carreras live.\nParalympic torch visits British village\nOn March 1, a landmark event took place in the British village of Stoke Mandeville, in the county of Buckinghamshire, where the inaugural Heritage Flame was lit in the first ever international leg of the Paralympic Torch Relay.\nFollowing a decision by the International Paralympic Committee, from March 2014 Stoke Mandeville, which is considered to be the birthplace of the Paralympic Movement, will be a mandatory part of the itinerary of all Paralympic Torch Relays.\nAfter the cauldron was lit and the Paralympic anthem performed, the flame was symbolically transferred from the UK to Russia to be united with sparks from other Russian cities involved in the Torch Relay.\nBoycott would not help to resolve Ukraine crisis\nThe only fear the organizing committee has is the prospect of a boycott of the Paralympics over the situation in Ukraine, where Russian troops have taken control of the Crimean Peninsula.\nSo far, however, these fears remain unfounded. On Sunday, March 2, Polish Prime Minister Donald Tusk urged athletes not to refuse to take part in the Games. According to him, \"a boycott of the Games would in no way help to resolve problems in Ukraine\". RIA Novosti quoted Tusk as saying: \"I shall be frank, I don't think that our Paralympians' refusal to take part would have an effect on what will be happening in Crimea or in Ukraine.\"\nFirst published in Russian in Gazeta.ru"} +{"text": "(AdaINResBlock1(c_cur, 7, [1, 3, 5], style_dim))\n else:\n self.noise_convs.append(nn.Conv1d(gen_istft_n_fft + 2, c_cur, kernel_size=1))\n self.noise_res.append(AdaINResBlock1(c_cur, 11, [1, 3, 5], style_dim))\n self.post_n_fft = gen_istft_n_fft\n self.conv_post = weight_norm(nn.Conv1d(ch, self.post_n_fft + 2, 7, 1, padding=3))\n self.ups.apply(init_weights)\n self.conv_post.apply(init_weights)\n self.reflection_pad = nn.ReflectionPad1d((1, 0))\n self.stft = (\n CustomSTFT(filter_length=gen_istft_n_fft, hop_length=gen_istft_hop_size, win_length=gen_istft_n_fft)\n if disable_complex\n else TorchSTFT(filter_length=gen_istft_n_fft, hop_length=gen_istft_hop_size, win_length=gen_istft_n_fft)\n )\n\n def forward(self, x, s, f0):\n with torch.no_grad():\n f0 = self.f0_upsamp(f0[:, None]).transpose(1, 2) # bs,n,t\n har_source, noi_source, uv = self.m_source(f0)\n har_source = har_source.transpose(1, 2).squeeze(1)\n har_spec, har_phase = self.stft.transform(har_source)\n har = torch.cat([har_spec, har_phase], dim=1)\n for i in range(self.num_upsamples):\n x = F.leaky_relu(x, negative_slope=0.1)\n x_source = self.noise_convs[i](har)\n x_source = self.noise_res[i](x_source, s)\n x = self.ups[i](x)\n if i == self.num_upsamples - 1:\n x = self.reflection_pad(x)\n x = x + x_source\n xs = None\n for j in range(self.num_kernels):\n if xs is None:\n xs = self.resblocks[i * self.num_kernels + j](x, s)\n else:\n xs += self.resblocks[i * self.num_kernels + j](x, s)\n x = xs / self.num_kernels\n x = F.leaky_relu(x)\n x = self.conv_post(x)\n spec = torch.exp(x[:, : self.post_n_fft // 2 + 1, :])\n phase = torch.sin(x[:, self.post_n_fft // 2 + 1 :, :])\n return self.stft.inverse(spec, phase)\n\n\nclass UpSample1d(nn.Module):\n def __init__(self, layer_type):\n super().__init__()\n self.layer_type = layer_type\n\n def forward(self, x):\n if self.layer_type == \"none\":\n return x\n else:\n return F.interpolate(x, scale_factor=2, mode=\"nearest\")\n\n\nclass AdainResBlk1d(nn.Module):\n def __init__(self, dim_in, dim_out, style_dim=64, actv=nn.LeakyReLU(0.2), upsample=\"none\", dropout_p=0.0):\n super().__init__()\n self.actv = actv\n self.upsample_type = upsample\n self.upsample = UpSample1d(upsample)\n self.learned_sc = dim_in != dim_out\n self._build_weights(dim_in, dim_out, style_dim)\n self.dropout = nn.Dropout(dropout_p)\n if upsample == \"none\":\n self.pool = nn.Identity()\n else:\n self.pool = weight_norm(\n nn.ConvTranspose1d(dim_in, dim_in, kernel_size=3, stride=2, groups=dim_in, padding=1, output_padding=1)\n )\n\n def _build_weights(self, dim_in, dim_out, style_dim):\n self.conv1 = weight_norm(nn.Conv1d(dim_in, dim_out, 3, 1, 1))\n self.conv2 = weight_norm(nn.Conv1d(dim_out, dim_out, 3, 1, 1))\n self.norm1 = AdaIN1d(style_dim, dim_in)\n self.norm2 = AdaIN1d(style_dim, dim_out)\n if self.learned_sc:\n self.conv1x1 = weight_norm(nn.Conv1d(dim_in, dim_out, 1, 1, 0, bias=False))\n\n def _shortcut(self, x):\n x = self.upsample(x)\n if self.learned_sc:\n x = self.conv1x1(x)\n return x\n\n def _residual(self, x, s):\n x = self.norm1(x, s)\n x = self.actv(x)\n x = self.pool(x)\n x = self.conv1(self.dropout(x))\n x = self.norm2(x, s)\n x = self.actv(x)\n x = self.conv2(self.dropout(x))\n return x\n\n def forward(self, x, s):\n out = self._residual(x, s)\n out = (out + self._shortcut(x)) * torch.rsqrt(torch.tensor(2))\n return out\n\n\nclass Decoder(nn.Module):\n def __init__(\n self,\n dim_in,\n style_dim,\n dim_out,\n resblock_kernel_sizes,\n upsample_rates,\n upsample_initial_channel,\n resblock_dilation_sizes,\n upsample_kernel_sizes,\n gen_istft_n_fft,\n gen_istft_hop_size,\n disable_complex=False,\n ):\n super().__init__()\n self.encode = AdainResBlk1d(dim_in + 2, 1024, style_dim)\n self.decode = nn.ModuleList()\n self.decode.append(AdainResBlk1d(1024 + 2 + 64, 1024, style_dim))\n self.decode.append(AdainResBlk1d(1024 + 2 + 64, 1024, style_dim))\n self.decode.append(AdainResBlk1d(1024 + 2 + 64, 1024, style_dim))\n self.decode.append(AdainResBlk1d(1024 + 2 + 64, 512, style_dim, upsample=True))\n self.F0_conv = weight_norm(nn.Conv1d(1, 1, kernel_size=3, stride=2, groups=1, padding=1))\n self.N_conv = weight_norm(nn.Conv1d(1, 1, kernel_size=3, stride=2, groups=1, padding=1"} +{"text": "oakley sports glasses much like the type plus it comments the design involving our face. Great benefit for a top quality product. Great, 90% advise! Just don't arrive the glasses protect, however the strategy is very nice! all the best Work as a pair of sunglasses should, ideal as being a extra set of two sun shades while out with kids to avoid them wrecking my own more expensive sunglasses.. I bought these kinds of since i wished an advanced level of defense against sunlight, following doing a bit of investigation I believed identification choose UV400 eyeglasses. My partner Tel Aviv ray ban ireland e actual lenses of the product are generally unpolarised. I am really short-sighted given that the child years, and still have compensated over the nasal area regarding health professional prescribed wrap-around sun glasses that grow to be ough seless while my ownclassic sunglassesesses area for a couple of SD credit cards, some leads, a breeze muff and also other pieces including (sometimes) a card and my car keys! Bonus is that it appears like spectacles circumstance, does not have access t babyliss pro curl with paypallenses first-time however when you obtain used to the idea, it's simple enough. We exchanged the darkish kinds with the discolored ones instantly because days have been really gloomy - they will really lighten everything up much it is only once you adopt them off does one recognise that it's not in fact that will 'nice' any morning! The weather offers considering that turned warm consequently considered I may need to trade the contacts again however have died all of them as well as surprisingly the actual yell Oslo oakley polarized ave may pleased with video little bit of change?Nonetheless tie-in the ideal eye makeup, allow your sophisticated style directory soared to the top level, the allure regarding dazzling along with dazzing jimmy, recommendthis product ideal collocation, allow millimeters folks can easily your always be fond of based on one self liven up yourself by simply diverse!Or sweet, or perhaps wonderful, or even despair, or perhaps cfit over sunglasses eyesight protection and hide when i age. Because with the light lens I can use them continuously outdoors as an example and also within strip-lit retailers, They are ideal for that will My partner and i look after these, because it's nearly impossible to find light contact lenses which are inexpensive as well simply. And I have been hunting. Complete represents...G and R adequate too. Well done. These are generally remarkable... Yeah you know they are unable to function as tr oakley whisker sunglasses get aface completely. The actual sun shades are usually mild, comfy and extremely crystal clear to look via. I enjoy theses. Having had the cataract post author I wanted rap-around sun shades. This specific style has become ideal. I might have provided A few stars but for the area is just not th hollister clearance them and they will make a great gift . . . Top quality for you to last and same type since Tom Luxury cruise inside Top Gun. These pilots possess extremely dark lens, this means they're amazing throughout vivid sunlight. They can show to be too dark whenever traveling inside not getting sun locations. Irrrve never like to spend plenty of cash on sun glasses.I wind up sacrificing the particular high-priced versions.They're excellent , easy to wear and appear very good.The one reasunglasses nzd、Miao Zhuang、Wu Jianjun、Chen Wei、WANG Cheng、Wang Qingjie、Xiaoting、Li Yilei twenty-four works。(Li Yong reports)\nLet the sounds associated with mother nature echo Microlab classic heritageMPlatinum Merit territory\nDate : Percolate Community Contribute Publishe oakley prescription glasses frames where saleevel\nlittle noses, however i value dinky infant noses could be hard to the perception of!\nPurchased these kind of in my 180 day previous. They're good nevertheless at the moment is often rare to find the actual tie carried out up at the top from the hearing. I do think this will obtain less complicated since she likes to a little even bigger.\nThese are generally suitable for our 12 few days previous infant and may in shape your ex for some time because of the flexible straps. The girl likes putting them on, no longer squinting under the sun and then she seems"} +{"text": "Chris Bosh is over-rated: Before I get to the Chris Bosh reports that everybody knows about by now, I gotta just say that I think Chris Bosh is the most over-rated player in all of basketball. Look he’s good, I get it, a 20-10 guy to be sure, but how much of a “superstar” could the guy really be if he couldn’t manage to get his team into the playoffs – in the Eastern Conference of all places – in either of the last two seasons. The Milwaukee Bucks were in the playoffs this past season. The Detroit Pistons were in the playoffs two years ago. Wade had less around him in Miami than Bosh did in Toronto and he led the Heat to a 5-seed. In the last two seasons Bosh’s Raptors have a combined record of 73-91, and in his time as a Raptor he lead his organization to 3 playoff wins – total – never getting out of the first round. And before you say his teams were awful, please remind yourself of the active line-up that Brandon Jennings had around him en-route to leading his Bucks team to three playoff wins this past season against the #3 seed in the East. All that said, would I be glad to see him in Wine and Gold? Of course, but he’s not coming, and I’m not really all that shook up about it.\nCB4 Sign and Trade Possibilities: Tuesday started off with the report of Toronto supposedly telling the Cavaliers that “they will do a sign-and-trade with them for Bosh, according to several league sources.” Chris Broussard broke that news, and he went on to say that Bosh was reportedly “cold to the idea of playing in Cleveland.” As the day went on, rumors continued to swirl as many “pundits” interpreted “cold to the idea” to mean it would have to be a “cold day in h—” before Chris Bosh ever decided to go to Cleveland. Maybe they were right, because by 6pm, for all intents and purposes, the story was essentially declared dead by Adrian Wojnarowski when he tweeted: “Cavs officials are confident of two things now, multiple sources say: Chris Bosh won’t play for them next season, but LeBron James will. Bosh has long made it clear that he doesn’t want to play in Cleveland, and LeBron knew it was a longshot to sell him on it. Cavs understand there are still looming threats to pry LeBron, but getting Bosh isn’t make or break on keeping LBJ.” Great news about LeBron there I guess, if you can even get excited by “news” at this point, but I can’t help but look at this and be puzzled by what it is that motivates Chris Bosh. He doesn’t win, and seemingly doesn’t want to team up with LeBron – in Cleveland at least – for a great opportunity to win, and he’s also okay – for the moment – to leave $30 million on the table, just so he doesn’t have to come to Cleveland. I know its not Vegas around here, but its not that bad.\nPhoto Credit: Chuck Crow, The Plain Dealer\nDamon Jones on the scene: When I talked to Damon Jones a few months back he told me he was in the midst of making an NBA comeback. While he was out of the country, and in some ways out of sight / out of mind in NBA circles for the most part this past year, he jumped back on the scene in a lot of ways today by rolling shot-gun in LeBron’s truck en-route to an appearance at the most famous skills camp in the history of basketball. There’s worse ways to remind people you’re on the comeback trail I’d imagine. Jones worked out with Romeo Travis, Chris Paul, Christian Eyenga, and LeBron James as well as others down in Akron earlier today. I don’t think he’s on twitter yet either for whatever that’s worth, but I’m thinking he should be.\nBarbosa for West and Moon: I’d be for this move if I was the Cavaliers, but I wouldn’t be as excited about acquiring the talents of Barbosa as I would have been three years ago. Which is probably why he wasn’t on the block three years ago, and also probably why he’s on the block now. Barbosa only played in 44 games last season, started 5, and averaged under 10 points per game. For his career he averages under three assists per game, and just over 12 points per game. His numbers have gone down in each of the last three seasons since he averaged 18 points and 4 assists per game during the 06-07 campaign, but he always has been a consistent spark of sorts off the bench. I’d hope to get more in a package that included the expiring $500,000 contract of Delonte West, but at the end of the day if the Barbosa for Moon and West trade was all that was out there, I’d say the move makes you marginally better. I wouldn’t be able to wear that Goosey shirt I bought anymore though, and there is that, but what are you going to do.\nSo you’re saying there’s a 15-25% chance he’s leaving: I don’t know if Byron Scott was intending to make Cavaliers’ fans feel better by saying there’s a 75-85% chance LeBron will stay with the Cavaliers when he was on ESPN 710 Los Angeles Tuesday afternoon, but I couldn’t help but read that the other way. Maybe the most ridiculous thing to ever put odds on is trying to handi-cap LeBron’s decision, but I’ll nevertheless offer my thoughts on the ridiculous since we’re talking about it. On Saturday, I thought there was about a 99% chance LeBron would re-sign. This morning, I was thinking 90%, and now Byron Scott – one of those famous guys “with sources close to the situation” says it’s more like seventy-five. I don’t know what to think anymore…so I guess I’ll just follow LeBron’s tweets and stare at his new blank website until the end of the week to get a better idea of what’s going to happen, whenever it does.\n(Update: LeBron’s will announce his decision on ESPN, Thursday, at 9pm…hang in there until then Cavs fans)."} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/models/minimax_m3/minimax_m3_sparse_attn.py. Lines: 2223.\n\n\"\"\"MiniMax M3 sparse attention: fused Triton decode and tiled prefill indexer.\"\"\"\n\nfrom __future__ import annotations\n\nimport functools\nimport os\nfrom dataclasses import dataclass, replace\nfrom typing import TYPE_CHECKING, Any, Optional\n\nimport torch\nimport triton\nimport triton.language as tl\n\nfrom fireworks.models.minimax_m3.config import MiniMaxM3SparseAttentionConfig\nfrom fireworks.models.minimax_m3.minimax_m3_indexer import (\n write_index_k_to_paged_cache,\n)\n\nif TYPE_CHECKING:\n from fireworks.models.minimax_m3.minimax_m3_caches import MiniMaxM3AttentionMeta\n from fireworks.nn.attention.attention import VarlenAttentionParams\n from fireworks.nn.attention.paged_attention import IncrAttentionMeta, PrefillAttentionMeta\n\n\n# ---------------------------------------------------------------------------\n# Fused Triton indexer: score + select + mask in 2 kernel launches per layer\n# ---------------------------------------------------------------------------\n\n\n# Target threadblock count for the score kernel. The score grid is\n# (B, head-block, NUM_KV_CHUNKS); NUM_KV_CHUNKS is sized at launch from the\n# batch/sequence shapes to keep enough CTAs in flight. Because it varies with\n# traffic, it is passed as a non-specialized runtime kernel arg (not a\n# tl.constexpr) so Triton does not recompile a new specialization per value.\n_SCORE_TARGET_CTAS = int(os.environ.get(\"FIREWORKS_M3_SCORE_TARGET_CTAS\", \"4096\"))\n_SCORE_MAX_CHUNKS = int(os.environ.get(\"FIREWORKS_M3_SCORE_MAX_CHUNKS\", \"256\"))\n_SCORE_BLOCK_N = int(os.environ.get(\"FIREWORKS_M3_SCORE_BLOCK_N\", \"128\"))\n_SCORE_BLOCK_H = 16\n# Decode score kernel is a memory-bound gather over the full index-K history.\n# Triton's default 3-stage software pipeline triple-buffers the [BLOCK_D, BLOCK_N]\n# K tile in shared memory (64 KB at BLOCK_N=256), which exceeds the SM shared\n# budget and collapses occupancy -> ~half HBM bandwidth. Double-buffering\n# (num_stages=2) keeps occupancy high. BLOCK_N=128 (1 sparse block/iter) beats\n# 256 by ~1.2x on the grouped scorer (smaller tile -> higher occupancy -> the\n# latency-bound gather is hidden); num_warps=4 best. Override via env if needed.\n_SCORE_NUM_WARPS = int(os.environ.get(\"FIREWORKS_M3_SCORE_NUM_WARPS\", \"4\"))\n_SCORE_NUM_STAGES = int(os.environ.get(\"FIREWORKS_M3_SCORE_NUM_STAGES\", \"2\"))\n_PREFILL_SCORE_TARGET_CTAS = int(\n os.environ.get(\n \"FIREWORKS_M3_PREFILL_SCORE_TARGET_CTAS\",\n os.environ.get(\"FIREWORKS_M3_SCORE_TARGET_CTAS\", \"2048\"),\n )\n)\n_PREFILL_SCORE_BLOCK_N = int(\n os.environ.get(\n \"FIREWORKS_M3_PREFILL_SCORE_BLOCK_N\",\n os.environ.get(\"FIREWORKS_M3_SCORE_BLOCK_N\", \"128\"),\n )\n)\n_PREFILL_SCORE_BLOCK_Q = int(os.environ.get(\"FIREWORKS_M3_PREFILL_SCORE_BLOCK_Q\", \"128\"))\n\n\n@triton.jit(do_not_specialize=[\"NUM_KV_CHUNKS\"])\ndef _score_kernel(\n idx_q_ptr,\n ik_cache_ptr,\n block_tables_ptr,\n seq_lens_ptr,\n scores_out_ptr,\n stride_q_b,\n stride_q_h,\n stride_ik_p,\n stride_ik_t,\n stride_bt_b,\n stride_sc_b,\n stride_sc_h,\n H: tl.constexpr,\n D: tl.constexpr,\n BLOCK_SIZE: tl.constexpr,\n RATIO: tl.constexpr,\n NUM_KV_CHUNKS,\n BLOCK_H: tl.constexpr,\n BLOCK_D: tl.constexpr,\n BLOCK_N: tl.constexpr,\n):\n \"\"\"Per-(batch, index-head, chunk): score the chunk's sparse blocks.\n\n The sequence's actual sparse blocks ``num_sb`` are split into\n ``NUM_KV_CHUNKS`` contiguous chunks; this program scores only its chunk and\n writes those per-block scores. Block scores are independent (max-pool per\n block), so chunks write disjoint entries with no cross-chunk reduction. Work\n is bounded by *actual* ``num_sb``, not the max-seq block count.\n \"\"\"\n SPARSE_BLOCK_TOKENS: tl.constexpr = BLOCK_SIZE * RATIO\n BLOCKS_PER_PROGRAM: tl.constexpr = BLOCK_N // SPARSE_BLOCK_TOKENS\n BLOCKS_PER_TILE: tl.constexpr = BLOCK_N // BLOCK_SIZE # distinct kv-blocks per BLOCK_N tile\n tl.static_assert(BLOCK_N % SPARSE_BLOCK_TOKENS == 0)\n\n pid_b = tl.program_id(0)\n pid_hb = tl.program_id(1)\n pid_c = tl.program_id(2)\n\n seq_len = tl.load(seq_lens_ptr + pid_b)\n num_sb = (seq_len + SPARSE_BLOCK_TOKENS - 1) // SPARSE_BLOCK_TOKENS\n chunk_size = (num_sb + NUM_KV_CHUNKS - 1) // NUM_KV_CHUNKS\n sb_start = pid_c * chunk_size\n sb_end = tl.minimum(sb_start + chunk_size, num_sb)\n if sb_start >= sb_end:\n return\n\n h_offs = tl.arange(0, BLOCK_H)\n d_offs = tl.arange(0, BLOCK_D)\n n_offs = tl.arange(0, BLOCK_N)\n blk_of = n_offs // BLOCK_SIZE # which kv-block within the tile each token belongs to\n off_of = n_offs % BLOCK_SIZE # token offset within its kv-block\n blk_cols0 = tl.arange(0, BLOCKS_PER_TILE)\n sparse_block_offsets = tl.arange(0, BLOCKS_PER_PROGRAM)\n head_start = pid_hb * BLOCK_H\n heads = head_start + h_offs\n head_mask = heads < H\n dim_mask = d_o"} +{"text": "Although his coaching career is not marked by longevity, Stillwater’s Ricky Michel packed plenty into his 17 years as Ponies baseball coach and on Saturday he is schedule to be inducted into the Minnesota High School Baseball Coaches Association Hall of Fame at the Ramada Plaza Hotel in Minneapolis.\nBefore stepping down after the 2008 season to become Stillwater Area High School’s Activities Director, Michel compiled a 262-146 record with five conference titles and two state tourney appearances.\n“Honestly, surprised,” Michel said of his reaction when informed he was going to be inducted. “When I think of the people that are in the hall of fame, statistically, I probably don’t measure up as far as wins and losses go, but it should be a fun night and I’m looking forward to it.”\nMichel will be joined in this year’s eight-person class by Jerry Coe of Coon Rapids, Dick “the Polish Eagle” Jonckowski of Shakopee, Don Sauter of Sibley East, Joe Szublewski of Albert Lea, Chuck Tabor of Robbinsdale, Bob Wasko of South St. Paul and Dave Wendlandt of McLeod West.\nIt’s not a decision he spent any time contemplating, but the 1981 Stillwater graduate will have no trouble choosing which hat to wear on induction day as he is a Pony through and through. Michel starred soccer and baseball for the Ponies before returning to teach in the district and join the coaching staff led by his former coach Don Campbell, who guided Stillwater to its only baseball state championship in 1991.\nMichel was an all-conference and all-state goalkeeper in soccer, which he said was probably his batter sport, and he was also named the Most Valuable Player after batting .345 and posting a 3-0 record with a 1.16 ERA on a conference championship baseball team his senior year. He later played soccer and baseball at St. Mary’s College.\n“I got to go back to my high school and back to the community that gave me a lot,” said Michel, who is quick to credit Campbell for much of his and the program’s success. “Between (current coach Mike) Parker, Campbell and I, that’s 34 years of baseball and we did it Don Campbell’s way. Everything I learned about the game of baseball was from him, how to respect the game, play the game and mechanics. Ninety percent of my baseball knowledge came from Don and he, of course, was my mentor and the most influential person in my life, there’s no doubt about it. If I could, I would share it with him — he’s at least as, if not more, deserving than I am.”\nIn addition to his on-field duties, Michel was active in the state baseball coaches association, serving as its president in 2001-02 and was the 2005 recipient of the prestigious Dick Siebert Award for his outstanding contributions to baseball and promotion of the sport. A strong advocate on many issues during his time as an MHSBCA officer, Michel was a driving force behind the creation of the group’s website in his term as president.\n“Ricky has been a great ambassador to the sport of high school baseball in Minnesota,” Campbell said. “He has represented Stillwater High School in an exemplary manner and he is very worthy of being inducted into the Minnesota Baseball Coaches Hall of Fame.”\nMichel also supervised the popular Day Ball summer program for fifth- and sixth-graders, coached the Lake Elmo VFW baseball team for 24 years and was the conference statistician for 12 years.\nAlthough he still plays in an over-48 league, Michel said he misses coaching and anticipates returning to the dugout in some capacity down the road.\n“You won’t outwork Ricky, you won’t out-coach him on the field and you won’t prepare your players any better than he does,” Campbell said. “Add to that the way he treats his players with respect and dignity, the lasting bond he establishes with his players, the optimistic outlook on life in general, and you have a hall of fame coach.”\nIn less than two decades, Michel coached four players that were selected in the MLB Draft and three of those players signed professional contracts, including current Twins closer Glen Perkins, Mike Strong and Andrew Schmiesing. Ryan Lindgren was drafted twice before an injury curtailed his baseball career. Two additional players, Ryan Eskierka and Aaron Runk played professionally in the Northern League.\n“In 17 years of being the head coach, I was blessed with a lot of good players and a lot of great pitchers — and good pitchers make you look good,” Michel said.\nDespite the many obvious highlights, including state tournament trips in 2001 and 2008, Michel said the 1998 conference championship season remains one of his proudest.\n“The year we had our best coaching job was when we won conference in 1998,” Michel said. “That was a team that just kept getting better and better and they were a big surprise to win the conference. That’s a season I will remember the most and the last season of my career was obviously a high point (getting to state).\n“I really enjoyed coaching and, professionally, I met some wonderful baseball people and colleagues I’ll never forget. We’ve gone to some places and laughed many times over, just talking baseball stories and one of the most important parts is the friendships you create.”"} +{"text": "How to avoid the pitfalls of your previous studio experiences—and vastly improve your chances to get your song published with major A&R representatives.\nStephen McElligott reminisces about a recording he made of one of his songs in a local studio. “I wasn’t happy with that production, really,” he recalls. “I thought, ‘Oh gosh, how am I gonna save this?’ I basically turned around and found Studio Pros and thought, ‘Brilliant, they’re my savior.'”\nMcElligott has been playing music since he was seven years old. He wrote his first song at 16 and soon began playing in clubs and venues around Ireland and Scotland. His music is influenced by music that spans many decades, from The Beatles to Glen Hansard. But after years of writing and performing, McElligott still hadn’t achieved a major goal: recording a professional sounding, radio-quality version of his songs. “I’ve worked with musicians before, and it’s like wearing a blindfold when you take them into the studio because you’ve gotta pay them, and you don’t know how good they are, you haven’t really heard their stuff,” he explains.\nRecording A Song Professionally Without Breaking The Bank\nThe Irish guitarist/singer/songwriter had been in need of a polished, professional recording solution that wouldn’t break the bank. Plus, he was hoping to have better luck submitting his music to TAXI to get song placements and licensing opportunities. He stumbled upon Studio Pros while searching online for recording studios and decided to learn more. “I clicked on it and thought, this is cool, and it’s affordable,” he says. “I had a listen to some samples and thought it was brilliant. I really needed this with the budget I’m on. I would spend 250 Euros on a musician for a day in the studio, whereas Studio Pros is only $150. I thought it was fantastic—it’s not often that you get to work with really good professional musicians, you know?”\nListen to Stephen’s track “She Blew Me Away,” produced by Studio Pros:\n“With Studio Pros, they give you a listen to the musicians’ capabilities, what they’re able to do, and the versatility that the musicians there have. And that really was the winner for me. It was the overall sound even more than the price.”\n“The price was a bonus!” he adds. The convenience and the time it saved by working with Studio Pros was also a big factor for McElligott. Normally, making a recording was a process that could take weeks. Now, he could let the Studio Pros musicians do the heavy lifting while he spent his time doing more important things. “Studio Pros is really easy with the turnaround time of two days, and that’s not even counting if you expedite your recording,” he says. “I just thought that was fantastic. When I record, it takes a lot of time, and Studio Pros took that time off my hands. It was brilliant! I could spend time with my kids at home while my stuff was getting recorded. There was no hard work that really had to go into it, it was just a very easy process.”\nAccess Your Online Recording Studio Wherever You Go!\nMcElligott didn’t even have to work exclusively out of his home, either. “You could work from anywhere in the world,” he says. “It wasn’t like you had to travel to such and such studio and get out your gear and get all the musicians in, get them flights, get whoever you needed from whatever country. It was like I could do this from anywhere in the world. I could have my audio interface and I could do a recording and just send it off. And with the quality of the sound engineers there, it makes it all the more easy.”\nIt was precisely the recording engineers that would play a hand in passing McElligott’s final test: submitting his songs to independent A&R company TAXI. Luckily, where his previous recordings hadn’t made the cut, his Studio Pros productions did. “The songs were just coming back from recordings I did in studios over here,” he remembers. “They were getting returned with bad reviews because of the quality of the sound. I submitted my Studio Pros version and I got a nice 9 out of 10! The quality was right up there.”\nMcElligott is planning on recording the rest of his EP with Studio Pros, then hitting the road to go on tour. “I need to get the musicians to do what Studio Pros did,” he adds with a laugh."} +{"text": "ffs < D\n num_kv_blocks = (seq_len + BLOCK_SIZE - 1) // BLOCK_SIZE\n\n q = tl.load(\n idx_q_ptr + pid_b * stride_q_b + heads[:, None] * stride_q_h + d_offs[None, :],\n mask=head_mask[:, None] & dim_mask[None, :],\n other=0.0,\n )\n scale = 1.0 / tl.sqrt(float(D))\n\n token_start = sb_start * SPARSE_BLOCK_TOKENS\n token_end = sb_end * SPARSE_BLOCK_TOKENS\n bt_base = block_tables_ptr + pid_b * stride_bt_b\n for tok0 in range(token_start, token_end, BLOCK_N):\n tok = tok0 + n_offs\n valid_token = tok < seq_len\n # Block table loaded once per kv-block, broadcast to tokens (shortens phys->K chain).\n blk_cols = tok0 // BLOCK_SIZE + blk_cols0\n phys_blk = tl.load(bt_base + blk_cols, mask=blk_cols < num_kv_blocks, other=-1)\n phys = tl.reshape(tl.broadcast_to(phys_blk[:, None], (BLOCKS_PER_TILE, BLOCK_SIZE)), (BLOCK_N,))\n phys_safe = tl.maximum(phys, 0)\n valid_kv = valid_token & (phys >= 0)\n k = tl.load(\n ik_cache_ptr + phys_safe[None, :] * stride_ik_p + off_of[None, :] * stride_ik_t + d_offs[:, None],\n mask=dim_mask[:, None] & valid_kv[None, :],\n other=0.0,\n )\n # Upconvert for fp8_cast index caches; no-op when dtypes match.\n k = k.to(q.dtype)\n qk = tl.dot(q, k) * scale\n qk = tl.where(valid_kv[None, :], qk, -1e30)\n qk = tl.reshape(qk, (BLOCK_H, BLOCKS_PER_PROGRAM, SPARSE_BLOCK_TOKENS), can_reorder=False)\n block_scores = tl.max(qk, axis=2)\n\n sb = (tok0 // SPARSE_BLOCK_TOKENS) + sparse_block_offsets\n tl.store(\n scores_out_ptr + pid_b * stride_sc_b + heads[:, None] * stride_sc_h + sb[None, :],\n block_scores,\n mask=head_mask[:, None] & (sb[None, :] < sb_end),\n )\n\n\n@triton.jit(do_not_specialize=[\"NUM_KV_CHUNKS\"])\ndef _prefill_score_kernel(\n idx_q_ptr,\n ik_cache_ptr,\n block_tables_ptr,\n positions_ptr,\n q_seq_len_cumsum_ptr,\n scores_out_ptr,\n stride_q_b,\n stride_q_h,\n stride_pos,\n stride_ik_p,\n stride_ik_t,\n stride_bt_b,\n stride_sc_b,\n stride_sc_h,\n D: tl.constexpr,\n BLOCK_SIZE: tl.constexpr,\n RATIO: tl.constexpr,\n NUM_KV_CHUNKS,\n BLOCK_Q: tl.constexpr,\n BLOCK_D: tl.constexpr,\n BLOCK_N: tl.constexpr,\n):\n \"\"\"Per-(sequence, index-head, query-chunk, kv-chunk): score prefill sparse blocks.\n\n Unlike the decode scorer, this tiles over query positions for one original\n sequence. All rows in the tile share the sequence block table, so the K tile\n is loaded once and reused by a BLOCK_Q x BLOCK_N dot.\n \"\"\"\n SPARSE_BLOCK_TOKENS: tl.constexpr = BLOCK_SIZE * RATIO\n BLOCKS_PER_PROGRAM: tl.constexpr = BLOCK_N // SPARSE_BLOCK_TOKENS\n tl.static_assert(BLOCK_N % SPARSE_BLOCK_TOKENS == 0)\n\n pid_seq = tl.program_id(0)\n pid_h = tl.program_id(1)\n pid_chunk = tl.program_id(2)\n pid_qc = pid_chunk // NUM_KV_CHUNKS\n pid_kvc = pid_chunk - pid_qc * NUM_KV_CHUNKS\n\n q_seq_start = tl.load(q_seq_len_cumsum_ptr + pid_seq).to(tl.int64)\n q_seq_end = tl.load(q_seq_len_cumsum_ptr + pid_seq + 1).to(tl.int64)\n q0 = q_seq_start + pid_qc * BLOCK_Q\n if q0 >= q_seq_end:\n return\n\n q_offs = q0 + tl.arange(0, BLOCK_Q)\n d_offs = tl.arange(0, BLOCK_D)\n n_offs = tl.arange(0, BLOCK_N)\n sparse_block_offsets = tl.arange(0, BLOCKS_PER_PROGRAM)\n q_mask = q_offs < q_seq_end\n dim_mask = d_offs < D\n\n positions = tl.load(\n positions_ptr + q_offs * stride_pos,\n mask=q_mask,\n other=-1,\n )\n seq_lens = positions + 1\n max_seq_len = tl.max(tl.where(q_mask, seq_lens, 0), axis=0)\n num_sb = (max_seq_len + SPARSE_BLOCK_TOKENS - 1) // SPARSE_BLOCK_TOKENS\n chunk_size = (num_sb + NUM_KV_CHUNKS - 1) // NUM_KV_CHUNKS\n sb_start = pid_kvc * chunk_size\n sb_end = tl.minimum(sb_start + chunk_size, num_sb)\n if sb_start >= sb_end:\n return\n\n q = tl.load(\n idx_q_ptr + q_offs[:, None] * stride_q_b + pid_h * stride_q_h + d_offs[None, :],\n mask=q_mask[:, None] & dim_mask[None, :],\n other=0.0,\n )\n scale = 1.0 / tl.sqrt(float(D))\n\n token_start = sb_start * SPARSE_BLOCK_TOKENS\n token_end = sb_end * SPARSE_BLOCK_TOKENS\n for tok0 in range(token_start, token_end, BLOCK_N):\n tok = tok0 + n_offs\n kv_col = tok // BLOCK_SIZE\n kv_off = tok % BLOCK_SIZE\n valid_token = tok < max_seq_len\n phys = tl.load(\n block_tables_ptr + pid_seq * stride_bt_b + kv_col,\n mask=valid_token,\n other=-1,\n )\n phys_safe = tl.maximum(phys, 0)\n valid_kv = valid_token & (phys >= 0)\n k = tl.load(\n ik_cache_ptr + phys_safe[None, :] * stride_ik_p + kv_off[None, :] * stride_ik_t + d_offs[:, None],\n mask=dim_mask[:, None] & valid_kv[None, :],\n other=0.0,\n )\n # Upconvert for fp8_cast index caches; no-op when dtypes match.\n k = k.to(q.dtype)\n qk "} +{"text": "What is it?\n- Unpaid work\n- Generally with not-for-profit or community based organisations both in Australia and overseas\n- Can also be positions of responsibility within clubs and societies, many of which can be found on campus\n- Can be related to either personal or professional interests and goals\nWhy do it?\n- To gain valuable experience and put your skills to work in a field related to your studies\n- To develop your employability skills\n- To develop contacts in a field relevant to your career goals\n- To make a contribution to society in accordance with your personal values\n- To help your resume stand out from the crowd\nGraduate employers prefer to hire 'well-rounded' graduates. This means they look for graduates who have not just performed well academically, but have been engaged in a variety of activities other than their studies.\nChoosing a Volunteer role\nWhen choosing a place to volunteer look for a role and a cause that you feel passionate about. Your volunteering is more likely to be successful and rewarding if you do. To help you choose a role you should find out:\n- What the organisation does and what it stands for. Think about whether it is somewhere that you would like to volunteer. Will you fit in with them? Look at their website, previous projects or annual reports, and read their vision and mission statements to find out more about them.\n- What types of opportunities are available and do they match your skills and interests? Perhaps an opportunity to gain skills and experience related to your degree? An opportunity to explore career ideas?\n- How much supervision, support and training are provided to volunteers?\n- Does the organisation have adequate insurance to cover you for the volunteer work you will be undertaking with them and appropriate volunteer policies in place?\nYou should also think carefully about how much time you are able to or willing to commit to the position. Are you looking for a volunteering position that is long term or short term? Will it be a continuing obligation or just a one-off involvement? Make sure you can balance your studies, volunteer, work and social commitments.\nVolunteering Australia has produced a Volunteer Rights & Volunteer Checklist (PDF) which you should look at when considering a volunteering role.\nWhen considering volunteering overseas check out Choice ‘Volunteering abroad’ and Choosing a Volunteering Agency (Australian Volunteers International).\nFurther information about unpaid work and the Fair Work Act is available from the Fair Work Ombudsman.\nWhere do I find it?\nThere are thousands of opportunities advertised on national and international volunteering websites. If you are interested in a specific cause you could try searching on the internet for organisations that address or respond to issues related to that cause in the country you would like to volunteer. If you have decided on the sector where you might like to volunteer, you could consider contacting an organisation within the sector and asking about volunteering opportunities. For example, in the health sector, contacting a local hospital or community health service, or in the environment sector enquiring at your local council and other environmental organisations both locally and nationally.\n- Search for volunteer positions on Sydney CareerHub.\n- GoVolunteer is an online tool provided by Volunteering Australia which you can use to search for volunteer positions in Australia.\n- The Australian Council for International Development lists volunteer opportunities with non-government organisations\n- University of Sydney Clubs and Societies these groups offer a range of opportunities including specific positions and support roles.\n- The V Team is managed by the University of Sydney Union and offers a wide variety of volunteering opportunities on campus and in the local community.\n- Use your networks to create your own opportunities in a relevant field, for example, if you are a member of a sporting club you could volunteer to create a newsletter for members or assist them with their bookkeeping"} +{"text": "Take our customer survey to evaluate your visit.\nIt should only take a few minutes to answer five quick questions. Just click the Launch survey button at the end of your visit to begin.\n2011-06-21 11:54 PM\ntry Update Service instead\n\"I'd rather be hated for who I am, than loved for who I am not.\" Kurt Cobain (1967-1994)\n2011-06-22 03:33 PM\nLast 2 times I wanted to post an update I couldn't login, so here's my update.\nAfter 2 days of trying EVERYTHING. Doing the update service 20 times, doing the back to factory settings 100+ times nothing worked.\nThen I thought to myself: this might be stupid, but WHAT IF..I just remove the memory card? (the micro sd).\nSo I removed it, ran the update service.\nAND IT WORKED\nAll the 'oh I got lucky after 10 tries' things didn't work for me, but removing the sd card and then updating actually worked.\nHopefully this also works for you\n2011-06-22 06:17 PM\nI think you may be on to something there :-)\nI may have removed the SD car from my phone too (I had changed it for a higher capacity card and removed it when I thought I'd have to return the phone). There was also a problem with the MTP driver with Windows 7 that disappeared when the SD card was removed and the latest update to PC Companion guides you away from connecting in media transfer mode.\n2011-06-23 02:18 AM\nI went and got mine today (yep I went for it!) I have to say, I love it! I really can't find an issue with it to be honest, I updated it and it's working fine and time scape doesn't lag, infact, it doesn't lag fullstop\n2011-08-21 09:13 PM\nHi, well it's august and the problem is still there. I've had my phone for 6 weeks, got it through O2, and all I'm getting now is the continual boot where it brings up the SE logo and then the exclamation mark in a triangle with a pic of a phone. The PC companion is saying it's connected to a Sony Ericsson phone but I have to use the phone to connect but I can't get on the phone to connect. I've tried all the different solutions in the thread but still no luck. Anyone any other ideas?????\nUpdate: its decided to work again now with the update done but it's not reading my SIM card, it's saying Your SIM card does not allow a connection to this network. Would this have been affected by me having my sim card in another phone during the update??\nUpdate 2: it's fully working now though I hope it's not going to be this much of a pain in the bum each time an update is run!!!\n2011-09-06 03:21 PM\nHello i also had an xperia play that had the same issue i updated it using phone itself using wifi (without pc) and then it showed me four circles after that it turned of and never powor on again\nwhen i press the power button it flashes a green light and it vibrate without any thing displayed on the screen i tried to update it using SEUS but the download is finshed while the instalation is moving as for factory reset it did the same problem!!\ni tried to update it without memory card but without any diference however i removed the battery for 10 min then i reassembeled it and charge it but it didnt boot it gave me a green light on the power button\n2011-09-13 02:23 PM\nI had the same problem with my xperia play (R8000i), after upload over wifi, my xperia play doesn´t work.\nWhen I press the power button the phone just vibrates, and if I hold it in, it vibrates every few seconds.\nI tried the procedure site \"software update fails\" but when the plug appears menssagen \"The phone contains modified connote That software be updated\"\n2011-09-20 04:48 PM\nAll of a sudden I can't connect my Phone to PC.. I think I deleted this mtpAPP.. now everytime I connect my Phone it erases some apps on my homescreen, but the apps is stil in my app drawer although it deleted the shortcut i've made to homescreen..\nNow, do you have any idea where to get mtpAPP for 2.3.3 with 4.0.a.2.368 firmware? I tried this one http://www.4shared.com/file/e8n3floP/MtpAppGB.html that i found on xda forum.. I just wanna ask if that apk is for 2.3.3 with 4.0.a.2.368 firmware.. Thanks"} +{"text": "= tl.dot(q, k) * scale\n valid_qk = q_mask[:, None] & valid_kv[None, :] & (tok[None, :] < seq_lens[:, None])\n qk = tl.where(valid_qk, qk, -1e30)\n qk = tl.reshape(qk, (BLOCK_Q, BLOCKS_PER_PROGRAM, SPARSE_BLOCK_TOKENS), can_reorder=False)\n block_scores = tl.max(qk, axis=2)\n\n sb = (tok0 // SPARSE_BLOCK_TOKENS) + sparse_block_offsets\n tl.store(\n scores_out_ptr + q_offs[:, None] * stride_sc_b + pid_h * stride_sc_h + sb[None, :],\n block_scores,\n mask=q_mask[:, None] & (sb[None, :] < sb_end),\n )\n\n\n@triton.jit(do_not_specialize=[\"STRIDE_SC_SB\"])\ndef _select_kernel(\n scores_ptr,\n seq_lens_ptr,\n selected_out_ptr,\n stride_sc_b,\n stride_sc_h,\n stride_so_b,\n stride_so_h,\n BLOCK_SIZE: tl.constexpr,\n RATIO: tl.constexpr,\n TOPK: tl.constexpr,\n MSB: tl.constexpr,\n INIT_BLOCKS: tl.constexpr,\n LOCAL_BLOCKS: tl.constexpr,\n STRIDE_SC_SB=1,\n):\n \"\"\"Per-(batch, index-head): force configured init/local blocks, then top-k by score.\n\n ``STRIDE_SC_SB`` is the stride (in elements) between consecutive sparse-block\n scores for a fixed (batch, head). It defaults to 1 for the contiguous\n ``[*, H, msb]`` layout (Triton score path); the fp8 cute scorer passes\n ``total_q`` so it can read its native ``[H, msb, total_q]`` output in place,\n avoiding a ~1.5 ms ``.permute().contiguous()`` transpose on the hot path.\n\n NOTE: ``STRIDE_SC_SB`` is a RUNTIME arg (not ``tl.constexpr``): the fp8 path\n passes ``fp8_scores.stride(1) == total_q``, which varies per prefill, so a\n constexpr here forces a fresh JIT compile for every distinct prefill length.\n It is only used in pointer arithmetic below, so runtime is safe.\n \"\"\"\n pid_b = tl.program_id(0)\n pid_h = tl.program_id(1)\n\n sb_idx = tl.arange(0, MSB)\n scores = tl.load(scores_ptr + pid_b * stride_sc_b + pid_h * stride_sc_h + sb_idx * STRIDE_SC_SB)\n seq_len = tl.load(seq_lens_ptr + pid_b)\n\n num_sb = (seq_len + BLOCK_SIZE * RATIO - 1) // (BLOCK_SIZE * RATIO)\n valid_sb = sb_idx < num_sb\n\n local_start = tl.maximum(num_sb - LOCAL_BLOCKS, 0)\n is_init = (sb_idx < INIT_BLOCKS) & valid_sb\n is_local = (sb_idx >= local_start) & valid_sb\n\n # NaN scores must not poison top-k. Force configured init/local blocks by\n # replacement, not score addition, so nonfinite raw scores cannot survive.\n # With the M3 preview config (init=0, local=1), this forces only the current\n # sparse block. Other configs can keep the SGL-style init/local windows.\n score_finite = (scores == scores) & (tl.abs(scores) != float(\"inf\"))\n boosted = tl.where(score_finite, scores, -1e30)\n boosted = tl.where(is_init, 1e30, boosted)\n boosted = tl.where(is_local, 1e29, boosted)\n boosted = tl.where(valid_sb, boosted, -1e30)\n\n selected = tl.full([TOPK], value=-1, dtype=tl.int32)\n topk_idx = tl.arange(0, TOPK)\n for i in range(TOPK):\n best_score = tl.max(boosted, axis=0)\n is_best = boosted == best_score\n best_pos = tl.min(tl.where(is_best, sb_idx, MSB))\n selected = tl.where(topk_idx == i, best_pos.to(tl.int32), selected)\n boosted = tl.where(sb_idx == best_pos, -1e30, boosted)\n\n # Compaction feeds selected blocks to paged attention as a chronological\n # sequence, so the newest/current partial block must sort to the end.\n rank_valid = topk_idx < num_sb\n selected = tl.where(rank_valid & (selected < num_sb.to(tl.int32)), selected, MSB)\n selected = tl.sort(selected, descending=False)\n selected = tl.where(selected < num_sb.to(tl.int32), selected, -1)\n\n tl.store(\n selected_out_ptr + pid_b * stride_so_b + pid_h * stride_so_h + topk_idx,\n selected,\n )\n\n\n@triton.jit\ndef _compaction_kernel(\n block_tables_ptr, # [B, max_blocks]\n selected_ptr, # [B, H, topk]\n compacted_out_ptr, # [H, B, out_blocks]\n stride_bt_b,\n stride_sel_b,\n stride_sel_h,\n stride_out_h,\n stride_out_b,\n SOURCE_BLOCKS: tl.constexpr,\n OUT_BLOCKS: tl.constexpr,\n BLOCK_SIZE: tl.constexpr,\n RATIO: tl.constexpr,\n TOPK: tl.constexpr,\n):\n pid_b = tl.program_id(0)\n pid_h = tl.program_id(1)\n\n cols = tl.arange(0, BLOCK_SIZE)\n cols_mask = cols < OUT_BLOCKS\n\n s = cols // RATIO # int floor-div; `/` makes float in Triton, breaks ptr arith\n sel_mask = cols_mask & (cols < (TOPK * RATIO))\n s_clamped = tl.where(sel_mask, s, 0)\n\n sel_val = tl.load(\n selected_ptr + pid_b * stride_sel_b + pid_h * stride_sel_h + s_clamped,\n mask=sel_mask,\n other=-1,\n )\n\n phys_col = sel_val * RATIO + (cols % RATIO)\n valid = sel_mask & (sel_val >= 0)\n phys_col_clamped = tl.where(valid & (phys_col < SOURCE_BLOCKS), phys_col, 0)\n\n seq_block_0 = tl.load(block_tables_ptr + pid_b * stride_bt_b)\n\n val = tl.load(\n block_tables_ptr + pid_b * stride_bt_b + phys_col_clamped,\n mask=valid & (phys_col < SOURCE_BLOCKS),\n other=seq_block_0,\n )"} +{"text": "December 06, 1787\nTo the People of Connecticut.\nIf the propriety of trusting your government in the hands of your representatives was now a perfectly new question, the expediency of the measure might be doubted. A very great portion of the objections which we daily find made against adopting the new constitution, (and which are just as weighty objections against our present government, or against any government in existence) would doubtless have their influence; and perhaps would determine you against trusting the powers of sovereignty out of your own hands. The best theory, the best philosophy on the subject, would be too uncertain for you to hazard your freedom upon.\nBut your freedom in that sense of the expression (if it could be called sense) is already totally gone. Your Legislature is not only supreme in the usual sense of the word, but they have, LITERALLY, all the powers of society. Can you—can you possibly grant any thing new?—Have you any power which is not already granted to your General Assembly? You are indeed called on to say whether a part of the powers now exercised by the General Assembly, shall not, in future, be exercised by Congress. And it is clearly much better for your interest, that Congress should exercise those powers, than that they should continue in the General Assembly, provided you can trust Congress as safely as the General Assembly.\nWhat forms your security under the General Assembly? Nothing, save that the interest of the members is the same as yours. Will it be the same with Congress? There are essentially only two differences between the formation of Congress and of your General Assembly.—One is,—that Congress are to govern a much larger tract of country, and a much greater number of people, consequently your proportion of the government will be much smaller than at present. The other difference is—that the members of Congress when elected, hold their places for two, four, and six years, and the members of Assembly only six and twelve months.\nThe first of these differences was discussed pretty fully in the first number, (when there was no idea of proceeding thus far on the subject)and has all the force as an objection against the powers of Congress, that it would have if applied to a proposal to give up the sovereignty of the several towns of the state, (if such sovereignty had existed) and unite in state government.\nIt would be only a repetition to enter into a consideration of this difference between Congress and your assembly.\nIt has been suggested that the six or eight members which we shall send to Congress will be men of property, who can little feel any burthens they may lay on society. How far is this idea supported by experience? As the members are to pay their proportion, will they not be as careful of laying too great burthens as poorer people? Are the rich less careful of their money than the poor? This objection would be much stronger against trusting the power out of your hands at all. If the several towns were now independent, this objection would be much more forcible against uniting in state government, and sending one or two of your most wealthy men to Hartford or New-Haven, to vote away your money. But this you have tried, and have found that assemblies of representatives are less willing to vote away money than even their constituents. An individual of any tolerable economy, pays all his debts, and perhaps has money beforehand. A small school district, or a small parish, will see what sum they want, and usually provide sufficiently for their wants, and often have a little money at interest.\nTown voters are partly representatives: i.e. many people pay town taxes who have no right to vote, but the money they vote away is principally their own. The towns in this state tax themselves less willingly than smaller bodies. They generally however tax themselves sufficiently to nearly pay the demands against them within the year, very seldom raise money beforehand by taxes. The General Assembly of this state could never be induced to attempt to do more than pay the annual interest of what they owe, and occasionally sink very small parts of the principal, and they never in fact did thus much. And we are all witnesses that they are full as careful of the public money as we can wish. It never was a complaint that they were too ready to allow individuals large sums. A man who has a claim against a town, and applies to a town-meeting, is very likely to obtain justice: But he who has a claim against the state, and applies to the General Assembly, stands but a poor chance to obtain justice. Some rule will be found to exclude his claim,—or to lessen it,—or he will be paid in a security—not worth half the money.\nYou have uniformly experienced that your representatives are as careful, if not more so, of your money, than you yourselves are in your town-meetings; but still your representatives. are generally men of property, and those of them who are most independent, and those whom you have sent to Congress, have not been by any means the least careful."} +{"text": "|» Lamphun |\nLamphun - ลำพูน\nLamphun is 670 km from Bangkok, 872km from Amnat Charoen, 571km from Ang Thong, 602km from Ayutthaya, 907km from Buriram, 494km from Chainat, 643km from Chaiyaphum, 26 km from Chiang Mai, 295km from Chiang Rai, 708km from Kalasin, 316km from Kamphaeng Phet, 631km from Khon Kaen, 756km from Korat, 71km from Lampang, 581km from Loei, 558km from Lopburi, 342km from Mae Hong Son, 704km from Maha Sarakham, 877km from Mukdahan, 929km from Nakhon Phanom, 428km from Nakhon Sawan, 297km from Nan, 634km from Nong Bua Lamphu, 797km from Nong Khai, 201km from Phayao, 485km from Phetchabun, 385km from Phichit, 312km from Phitsanulok, 180km from Phrae, 744km from Roi Et, 836km from Sakon Nakhon, 604km from Saraburi, 631km from Singburi, 978km from Sisaket, 277km from Sukhothai, 954km from Surin, 214km from Tak, 916km from Ubon Ratchathani, 746km from Udon Thani, 479km from Uthai Thani, 210km from Uttaradit and 818km from Yasothon.\nLamphun Province is in Northern Thailand and shares borders with Chiang Mai, Lampang and Tak.\nIf your interested in Temples and Wats just check out our Lamphun Temples & Wats thread which includes videos.\nLamphun has a couple of local festivals, these are the Phrathat Hariphunchai Homage Paying Festival in May and the Lamphun Longan Fair in August.\nIf you have any questions on Lamphun why not post them on our Northern Thailand & Lamphun Forum or check out our About Lamphun page.\nLamphun Tourist Attractions\nNearly Songkran so time for a house warming party with coyote girls to liven it up.\nA trip to a Karen Village in southern Lamphun province.\nA road trip through Lampang and Lamphun.\nLocated in the mountains of the northern Thailand, Doi Khun Tan National Park is home to many interesting species both flora and fauna, as well as many historical spots of interest. Its most renowned feature is Thailandís longest railroad tunnel, which is 1,352 m. long.\nMae Ping National Park covers Doi Tao District, Chiang Mai province; Li District, Lam Phun Province; and Sam Ngao District, Tak Province. It is fertile forest, with riches of plants and animals. At 1,003.75 km2, the rugged mountain range and rivers make fantastic scenic, especially the upper part of Bhumipol Dam that is suited for recreation.\nBan Hong is the site of a 1,400-year-old community dating back to the Hariphunchai Kingdom. Located some 40 kilometres to the south of Lamphun, it offers a scenic and delightful vista of green fields and mountains. It also has several old temples built in admirable indigenous style, e.g., Wat Phra Chao Ton Luang with its 600-year-old Buddha statue, Wat Pa Puai and Wat Dong Rusi. The later two temples both maintain 100-year-old Ho Trai (scripture halls) built with wood in delicate patterns. Some of the natural attractions in the district include Tham Luang Pha Wiang, a cave some 15 km south of the district town. Inside the cavern are oddly-shaped stalactites. There are accommodation facilities for tourists in the district town.\nPa Sang district is a handicraft centre and famous for its handmade cotton materials which are produced mainly in Ban Nong Nguak. Also at this village is an ancient temple noted for its beautiful arches in indigenous Burmese-influenced style.\nHariphunchai National Museum\nLocated on Inthayongyot Road almost opposite Wat Phra That Hariphunchai is the Hariphunchai National Museum. Displays and exhibits include historical development and archaeological items found in Lamphun. These include prehistorical human skeletons and objects of arts from the Dvaravati, Hariphunchai, Lanna and Rattanakosin periods. A chamber in devoted to a collection of inscription stones in Mon and Lanna scripts. Another displays ancient utensils, Lanna indigenous arts and carvings.\nThe museum is open on Wednesday-Sunday from 8.30 a.m. to 4.00 p.m.\nThe admission is 100 baht.\nFor more information, contact Tel. 0 5351 1186, Fax. 0 5353 0536\nBan Nong Chang Khuen\nThe Ban Nong Chang Khuen is the most famous longan growing area in the country. The orchards are located some 8 kilometres before Lamphun and with a further 7 kilometres after a right turn. On both sides of the road are numerous longan orchards. The fruits are in season during July-August. Longans were introduced to the area during the reign of King Rama V and have since spread into neighbouring provinces. There are several species today which are popular among consumers.\nLamphun Hotels & Guesthouses\nGassan Khuntan Golf & Resort\n222 Moo 3, Tumbon Tha Pla Duk, Amphoe Mae Tha,\nTel: 053-507-006 053-507-008\nLamphun Will Hotel\n204/10 Chammathewi Road, Tumbon Nai Muang, Amphoe Mueang Lamphun, 51000\nTel: 053-534-865 053-534-866\nHuan Da Lha Hotel 1\n126 Moo 15, Tumbon Pa Sang, Amphoe Mueang Lamphun,\nTel: 053-090-149 053-090-151\nInthanon Riverside Resort\n4 Moo 4 Nong Long , King A. Wiang Nong Long ,\nTel: 053-505-166 053-279-686\n283 Moo 6 Chammathewi Road, Tumbon Muang Nga, Amphoe Mueang Lamphun,\n720 Moo 1, Pasung, Pa Sang,\nNorthern Heritage Resort\n338 Moo 4 Huai Yap , Ban Thi ,\nKhao Khontan, Tumbon Tha Pla Duk, Amphoe Mae Tha,\nHuay Sai Kao Ban Pa Pao Homestay\n48 Moo 6, Tumbon Tha Pla Duk, Amphoe Mae Tha,\n191 Moo 6 Ban Naicom, Tumbon Ban Hong, Amphoe Ban Hong,\nThe Regent Lamphun\n138/1 Moo 4 San Pa Fhay-Ban Thi Road, Ban Klang , Mueang ,\n352 /1, Tumbon Nai Muang, Amphoe Mueang Lamphun,\nVisitors: 9987, Last Visitor was Guest\nat Today - 06:41 PM. |\nPage Created at 10-10-2010 - 02:35 PM, Last Modified\n: 18-06-2011 - 03:08 PM."} +{"text": "\n\n tl.store(\n compacted_out_ptr + pid_h * stride_out_h + pid_b * stride_out_b + cols,\n val,\n mask=cols_mask,\n )\n\n\ndef _compact_block_table_width(ratio: int, topk: int) -> int:\n return max(1, ratio * topk)\n\n\ndef compact_block_tables(\n block_tables: torch.Tensor,\n selected: torch.Tensor,\n ratio: int,\n topk: int,\n) -> torch.Tensor:\n B, H, topk = selected.shape\n source_blocks = block_tables.shape[1]\n compact_blocks = _compact_block_table_width(ratio, topk)\n compacted = torch.empty((H, B, compact_blocks), dtype=block_tables.dtype, device=block_tables.device)\n\n grid = (B, H)\n block_size = 2 ** (compact_blocks - 1).bit_length()\n _compaction_kernel[grid](\n block_tables,\n selected,\n compacted,\n block_tables.stride(0),\n selected.stride(0),\n selected.stride(1),\n compacted.stride(0),\n compacted.stride(1),\n SOURCE_BLOCKS=source_blocks,\n OUT_BLOCKS=compact_blocks,\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n TOPK=topk,\n )\n return compacted\n\n\ndef _fused_score_select(\n idx_q: torch.Tensor,\n index_k_cache: torch.Tensor,\n layer_local_idx: int,\n block_tables: torch.Tensor,\n seq_lens: torch.Tensor,\n sparse: MiniMaxM3SparseAttentionConfig,\n) -> torch.Tensor:\n B, H, D = idx_q.shape\n max_blocks = block_tables.shape[1]\n ratio = sparse.sparse_block_downshard_ratio\n # ceil-div: an odd block-table width keeps the trailing half-populated sparse\n # block. Flooring drops the newest sparse block from the score buffer / MSB,\n # so decode can't select recent KV on odd-page sequences.\n msb = triton.cdiv(max_blocks, ratio)\n block_size = sparse.kv_cache_block_size\n topk = min(sparse.sparse_topk_blocks, msb)\n\n layer_cache = index_k_cache[layer_local_idx, :, 0]\n\n # Score: chunk the sequence's blocks over the SMs. Keep chunk count\n # graph-shape-only; empty chunks return early in the kernel. The buffer\n # can stay uninitialized: the chunk union writes every block < num_sb and\n # _select_kernel masks entries >= num_sb (and non-finite garbage) itself.\n head_blocks = triton.cdiv(H, _SCORE_BLOCK_H)\n target = max(\n 1,\n min(_SCORE_MAX_CHUNKS, _SCORE_TARGET_CTAS // max(1, B * head_blocks)),\n )\n num_chunks = min(msb, 1 << (target.bit_length() - 1))\n sparse_block_tokens = block_size * ratio\n block_n = max(sparse_block_tokens, _SCORE_BLOCK_N)\n block_n = triton.cdiv(block_n, sparse_block_tokens) * sparse_block_tokens\n block_d = max(32, triton.next_power_of_2(D))\n scores = torch.empty((B, H, msb), dtype=torch.float32, device=idx_q.device)\n _score_kernel[(B, head_blocks, num_chunks)](\n idx_q,\n layer_cache,\n block_tables,\n seq_lens,\n scores,\n idx_q.stride(0),\n idx_q.stride(1),\n layer_cache.stride(0),\n layer_cache.stride(1),\n block_tables.stride(0),\n scores.stride(0),\n scores.stride(1),\n H=H,\n D=D,\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n NUM_KV_CHUNKS=num_chunks,\n BLOCK_H=_SCORE_BLOCK_H,\n BLOCK_D=block_d,\n BLOCK_N=block_n,\n num_warps=_SCORE_NUM_WARPS,\n num_stages=_SCORE_NUM_STAGES,\n )\n\n # _select_kernel overwrites every element; no init fill needed.\n selected = torch.empty((B, H, topk), dtype=torch.int32, device=idx_q.device)\n _select_kernel[(B, H)](\n scores,\n seq_lens,\n selected,\n scores.stride(0),\n scores.stride(1),\n selected.stride(0),\n selected.stride(1),\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n TOPK=topk,\n MSB=msb,\n INIT_BLOCKS=sparse.sparse_init_block,\n LOCAL_BLOCKS=sparse.sparse_local_block,\n )\n return selected\n\n\n@triton.jit(do_not_specialize=[\"NUM_KV_CHUNKS\"])\ndef _score_kernel_grouped(\n idx_q_ptr, # [B, T, H, D]\n ik_cache_ptr, # [num_blocks, block_size, D]\n block_tables_ptr, # [B, max_blocks] (per-sequence, max range)\n seq_lens_ptr, # [B, T] (per-position causal length)\n scores_out_ptr, # [B, T, H, msb]\n stride_q_b,\n stride_q_t,\n stride_q_h,\n stride_ik_p,\n stride_ik_t,\n stride_bt_b,\n stride_sl_b,\n stride_sc_b,\n stride_sc_t,\n stride_sc_h,\n T: tl.constexpr,\n H: tl.constexpr,\n D: tl.constexpr,\n BLOCK_SIZE: tl.constexpr,\n RATIO: tl.constexpr,\n NUM_KV_CHUNKS,\n BLOCK_H: tl.constexpr,\n BLOCK_D: tl.constexpr,\n BLOCK_N: tl.constexpr,\n):\n \"\"\"Spec-decode scorer that loads each sequence's index-K ONCE and scores all\n T*H query rows (the T speculative positions x H index heads) against it, with\n per-position causal masking. Equivalent to calling _score_kernel on B*T rows,\n but reads the index-K history ~T x less (the redundant re-read across the T\n spec positions of a sequence is the dominant decode HBM cost). Selection stays\n per-row (each row keeps i"} +{"text": "The mere fact that you’re reading this review probably indicates that you own a few gadgets. And with gadgets come charging cables and stands. If your house is like mine, you probably have more charging cables than you have outlets. With so many cables, it’s hard to keep my charging area tidy. And since Apple likes to keep everything white, it’s sometimes difficult to keep the iPod charger and the iPad charger straight. A single device that can charge multiple gadgets helps simplify my charging setup, so I was happy to give the XtremeMac Incharge Duo for iPad charging station a try when they offered one to The Gadgeteer for review.\nAll the pictures in this review can be clicked for an enlarged view.\nWhat’s in the Box\nInCharge Duo for iPad docking stand\nTwo removable converters: one for iPad, one for iPhone/iPod\nDock inserts for a variety of iPhones and iPods\nAC power supply with a 2-prong wall adapter for US\nThe InCharge Duo for iPad is made of black plastic with dark gray accents. The base has two standard Apple docking connectors. You easily convert the charger from an iPhone/iPod plus iPad charger to a dual iPhone/iPod charger using the two large, removable covers for the back of the InCharge Duo. There are a variety of inserts for the docking wells to support an iPod Classic, iPhone 3G, iPhone 4, iPod nano 5th gen, or iPod touch 2nd gen. You get one each of these inserts.\nThe manual says that the front dock charges at 1 amp for iPhone/iPod. The rear dock charges at 2.1 amps for the iPad, but it can adapt to charge at 1 amp if you have the InCharge Duo set up for charging two iPhones/iPods. There is no switch for the back dock to toggle it between 1 amp and 2.1 amps. I also looked at the two plates for the back part of the InCharge Duo, but I couldn’t find a peg that depresses a switch to change the charging amperage. The manual lists the iPods and iPhones that can be charged on the back dock: iPod nano 1st, 2nd, 3rd, 4th, and 5th generations; iPod Classic 160GB 2009; iPod touch 1st and 2nd generation; iPhone, iPhone 3G, iPhone 3GS, iPhone 4. (iPod touch and iPhone models must be iOS 3.0 or later.) All models not listed here charge on the front dock only.\nThe InCharge Duo came with the iPad converter in place. You can see in this photo the iPhone/iPod converter as it is being put on. The front tabs have been placed in the slots, and it is being dropped into position. It’s held in place by friction. To remove the converter, pull up on the back corners.\nI put the touch 2nd gen insert into the front charging well and the iPad converter on the back of the InCharge Duo for my first attempt at charging two devices. I had to remove my touch from its tiny Belkin Grip Vue case to fit it into the adapter. I also had to remove my iPad from its case to fit it into the iPad charging dock. I don’t think any case other than a sticker-type skin will fit with the InCharge Duo.\nThere are two charging status LEDs on the front of the InCharge Duo. The left LED shows charging status for the device in the front dock, and the right LED is for the back dock. The LED is orange to let you know the device is docked properly and is charging. When the battery reaches about 95% full, the LED turns green.\nIf you want to charge two iPhones/iPods, you may have to supply your own in-well adapter for the second device. We don’t have iPhones, but we do have multiple iPod touch 2nd gens and a nano 6th gen. There was no adapter for the nano (didn’t fit into the one for the 5th gen), and only one adapter for the touch. We did have an old iPod that fit the adapter for the Classic. Luckily, my touch is using iOS 4, so it could charge on the back dock. Both iPods charged on the InCharge Duo with no problems.\nThe XtremeMac InCharge Duo for iPad is a great addition to your charging area when you own a variety of Apple iOS devices. You can charge two devices at once using a single outlet. You can also easily convert the iPad dock into a second iPhone/iPod dock to increase the usefulness."} +{"text": "After nearly fifteen years I still contemplate those two dreadful swatches of winter and spring with undiminished horror. One was either sleeping, eating, prepping for a test or taking a test; and both sleeping and eating were curtailed in order to leave more time for prepping.\nOnce, halfway through the ordeal, a friend persuaded me to unwind by leaving campus and heading into Boston to spend the afternoon at the Museum of Fine Arts. Unfortunately, I was an art history major. Instead of losing my cares for a couple of hours in the loveliness, after fifteen minutes I had a panic attack in front of a Renoir and fled back to my books.\nOctober has felt a bit like that. I was either traveling to something or from something; or packing something; or shipping something; or drawing something; or photographing something; or writing something; or signing something; or writing about traveling or packing or shipping or drawing or writing or signing.\nNotice, among all those -ings, the absence of knitting.\nNot that there wasn't any. It's just all been small and simple, and some of it (like the patterns for the next column in Knitty) I can't show you in advance or Amy Singer will get all huffy.\nBut I am heartily sick of not blogging about knitting. Today, although a gaggle of -ings has clustered around my ankles to scream for attention, I'm shutting them all in the bathroom so I can show you the latest sweater for Abigail.\nThe knitting itself is as plain as plain gets: Baby Pullover #214 from always-reliable Knitting Pure and Simple. Top-down, raglan sleeves, highly recommended without reservations. My only changes were to work a seed stitch collar and cuffs, instead of rolled stockinette.\nThe yarn, Lorna's Laces Shepherd Worsted in \"Aslan,\" was pretty all by itself. But when the sweater was finished I wasn't happy with it. Handsome, sure. But dull. No dash. No surprise. A dish of ice cream with no cherry on top. Rock without roll. Mary-Kate without Ashley.\nDuring my infrequent, unoccupied moments at home I'd pick it up and turn it over and squint at it, and then throw it back into the workbasket. I briefly considered slicing the front to make a cardigan with Fun Buttons, but I've had no time to shop around for Fun Buttons.\nThen I opened one of the doors on the stash cupboard to hunt for something and three or four small balls of leftover Dream in Color from Abigail's Tulip Jacket fell out. The memory of a bird I'd seen pecking at a bush on Fremont Street knocked up against the memory of a embroidering the Baby Kimono, and a Eureka Moment ensued. (Passers-by in the street heard only a soft popping sound, but for me it was a great relief.)\nI consulted briefly with my embroidery books, made a few preliminary sketches, and turned the pullover into \"Bird and Berry.\"\nOne sleeve, the back, and the front all have the same sort of vine growing from the bottom up. It's just a feathered chain stitch with two-stitch \"berries\" sprouting at random.\nOn the front, one of the vines has a little brown bird perched on top, with a berry in its beak.\nIf you haven't tried embroidering on a piece of knitting, I highly recommend it. I liken it to working cables. For example:\n- a well-chosen motif can add immensely to the success of a project;\n- it's much simpler to do than it looks, given a little study and practice, and;\n- to the uninitiated, it looks like magic, and you are not required to disillusion them.\nLittle Book News\nThe hometown launch for It Itches happened on Sunday at Arcadia Knitting an oh, what a merry crowd. It was a charge to stand in the same spot where'd I'd seen Debbie Stoller and Stephanie Pearl-McPhee talk about their work, and read aloud from mine. I wanted to hug everybody who took the time to come say hello. I think I probably did hug about three-quarters of you. I'm turning into the Leo Buscaglia of knitting.\nWord is that the book is hitting the store shelves and (finally) landing in the mailboxes of those who placed pre-orders back when it was nothing but a pile of crumpled, ink-stained paper with a terrified cartoonist in the middle.\nI spotted it in the wild for the first time at the Borders on State Street, and because I am a shameless, sentimental geek I took a picture. Sue me.\nHoly crap. Right there next to Louisa Harding. And me, just a simple girl from Kansas with a pair of tap shoes and a dream.\nMeanwhile, several folks have been kind enough to write about it, including The Knitting Scholar, who gave me the royal treatment–an interview and a review. I've also chatted about it on \"Ready, Set, Knit,\" the WEBS Podcast; and the KnitPicks Podcast.\nThe Guys with Yarn 2009 Calendar is back in the Etsy shop, and a new batch of prints and gift enclosure cards will follow on Monday. The 2008 tree ornament and its ancestors are still available in the Cafe Press shop, where I'm hoping to launch new variations on the 1,000 Knitters bags and shirts this week."} +{"text": "ts own scores -> own top-k).\"\"\"\n TH: tl.constexpr = T * H\n SPARSE_BLOCK_TOKENS: tl.constexpr = BLOCK_SIZE * RATIO\n BLOCKS_PER_PROGRAM: tl.constexpr = BLOCK_N // SPARSE_BLOCK_TOKENS\n BLOCKS_PER_TILE: tl.constexpr = BLOCK_N // BLOCK_SIZE # distinct kv-blocks per BLOCK_N tile\n tl.static_assert(BLOCK_N % SPARSE_BLOCK_TOKENS == 0)\n\n pid_b = tl.program_id(0)\n pid_hb = tl.program_id(1)\n pid_c = tl.program_id(2)\n\n # Scoring range = max causal length over the T spec positions. Do NOT assume\n # the last timestep is largest: compute_meta_incr can zero/clamp a row near the\n # context limit while earlier draft rows stay positive, which would otherwise\n # collapse the scan and starve those rows (per-row causal mask is applied via\n # row_seq below). T is constexpr so this unrolls.\n max_seq = tl.load(seq_lens_ptr + pid_b * stride_sl_b)\n for _t in range(1, T):\n max_seq = tl.maximum(max_seq, tl.load(seq_lens_ptr + pid_b * stride_sl_b + _t))\n num_sb = (max_seq + SPARSE_BLOCK_TOKENS - 1) // SPARSE_BLOCK_TOKENS\n chunk_size = (num_sb + NUM_KV_CHUNKS - 1) // NUM_KV_CHUNKS\n sb_start = pid_c * chunk_size\n sb_end = tl.minimum(sb_start + chunk_size, num_sb)\n if sb_start >= sb_end:\n return\n\n h_offs = tl.arange(0, BLOCK_H)\n d_offs = tl.arange(0, BLOCK_D)\n n_offs = tl.arange(0, BLOCK_N)\n blk_of = n_offs // BLOCK_SIZE # which kv-block within the tile each token belongs to\n off_of = n_offs % BLOCK_SIZE # token offset within its kv-block\n blk_cols0 = tl.arange(0, BLOCKS_PER_TILE)\n sparse_block_offsets = tl.arange(0, BLOCKS_PER_PROGRAM)\n hr = pid_hb * BLOCK_H + h_offs # flattened (t,h) row index in [0, TH)\n hr_mask = hr < TH\n dim_mask = d_offs < D\n t_of = hr // H\n h_of = hr % H\n row_seq = tl.load(seq_lens_ptr + pid_b * stride_sl_b + t_of, mask=hr_mask, other=0)\n num_kv_blocks = (max_seq + BLOCK_SIZE - 1) // BLOCK_SIZE\n\n q = tl.load(\n idx_q_ptr + pid_b * stride_q_b + t_of[:, None] * stride_q_t + h_of[:, None] * stride_q_h + d_offs[None, :],\n mask=hr_mask[:, None] & dim_mask[None, :],\n other=0.0,\n )\n scale = 1.0 / tl.sqrt(float(D))\n\n token_start = sb_start * SPARSE_BLOCK_TOKENS\n token_end = sb_end * SPARSE_BLOCK_TOKENS\n bt_base = block_tables_ptr + pid_b * stride_bt_b\n for tok0 in range(token_start, token_end, BLOCK_N):\n tok = tok0 + n_offs\n valid_token = tok < max_seq\n # Load the block table once per kv-block (BLOCKS_PER_TILE entries), not per\n # token: shrinks the dependent block-table load and shortens the phys->K\n # critical chain (the K gather address depends on phys).\n blk_cols = tok0 // BLOCK_SIZE + blk_cols0\n phys_blk = tl.load(bt_base + blk_cols, mask=blk_cols < num_kv_blocks, other=-1)\n phys = tl.reshape(tl.broadcast_to(phys_blk[:, None], (BLOCKS_PER_TILE, BLOCK_SIZE)), (BLOCK_N,))\n phys_safe = tl.maximum(phys, 0)\n valid_kv = valid_token & (phys >= 0)\n k = tl.load(\n ik_cache_ptr + phys_safe[None, :] * stride_ik_p + off_of[None, :] * stride_ik_t + d_offs[:, None],\n mask=dim_mask[:, None] & valid_kv[None, :],\n other=0.0,\n )\n # Upconvert for fp8_cast index caches; no-op when dtypes match.\n k = k.to(q.dtype)\n qk = tl.dot(q, k) * scale\n # per-row causal: token < that position's seq_len\n row_valid = (tok[None, :] < row_seq[:, None]) & valid_kv[None, :] & hr_mask[:, None]\n qk = tl.where(row_valid, qk, -1e30)\n qk = tl.reshape(qk, (BLOCK_H, BLOCKS_PER_PROGRAM, SPARSE_BLOCK_TOKENS), can_reorder=False)\n block_scores = tl.max(qk, axis=2)\n\n sb = (tok0 // SPARSE_BLOCK_TOKENS) + sparse_block_offsets\n tl.store(\n scores_out_ptr\n + pid_b * stride_sc_b\n + t_of[:, None] * stride_sc_t\n + h_of[:, None] * stride_sc_h\n + sb[None, :],\n block_scores,\n mask=hr_mask[:, None] & (sb[None, :] < sb_end),\n )\n\n\ndef _fused_score_select_grouped(\n idx_q: torch.Tensor, # [B*T, H, D]\n index_k_cache: torch.Tensor,\n layer_local_idx: int,\n block_tables_seq: torch.Tensor, # [B, max_blocks] (per-sequence)\n seq_lens_bt: torch.Tensor, # [B*T]\n sparse: MiniMaxM3SparseAttentionConfig,\n T: int,\n selected_out: Optional[torch.Tensor] = None,\n) -> torch.Tensor:\n \"\"\"Spec-decode score+select that dedups the index-K read across the T spec\n positions of each sequence. Returns selected [B*T, H, topk] (per-row, same as\n _fused_score_select). ``selected_out`` may supply the output tensor (e.g. a\n strided view of a collective input buffer); every element is overwritten.\"\"\"\n BT, H, D = idx_q.shape\n B = BT // T\n ratio = sparse.sparse_block_downshard_ratio\n max_blocks = block_tables_seq.shape[1]\n msb = triton.cdiv(max_blocks, ratio)\n block_size = sparse.kv_cache_block_size\n topk = min(sparse.sparse_topk_blocks,"} +{"text": "Review: Del Taco Turkey Tacos\nFor those who know me, it’s no surprise to hear that Del Taco is one of my guilty pleasures. I avoid most fast food, but Del Taco’s tasty little tacos keep me coming back for more. They’re cheap, crunchy, and addictive; despite their poor nutritional qualities. So imagine my surprise when I pulled into Del Taco for some lunch the other day and found they were offering ground turkey tacos! What? Ground turkey? A “healthy” option at my fast food chain? That’s gotta be a first in the industry. The sign said 33% less fat than their regular beef tacos, and I was sold.\nNew Turkey Tacos at Del Taco are Delicious\nI ordered a couple of the turkey tacos, and a few of my traditional beef hard shell tacos and took my seat with haste. I unfolded the paper wrapper on my first turkey taco and found a perfectly constructed taco half-filled with ground turkey, the other half with lettuce, cheese, and pico de gallo. It looked delicious. I added a little hot sauce on top and took a bite. Crunch! Chew, chew, mmm…..\n“What is that on my tongue? There’s actually texture to the meat, like what I’d expect from a ground meat taco. And there’s…..FLAVOR!” These turkey tacos are full of delicious flavor. A nice clean tasting spiced meat. I devoured taco number one and promptly bit into taco number two. But then I remembered that I wanted to compare the standard beef tacos to the new turkey version, so I put the turkey down and opened up its little beef brother.\nWhat a disappointment! My once favorite fast food taco now tasted like crap. The first note on my tongue was of undiluted beef bouillon. The next, cheap meat. But the texture was what really disappointed me. It was more like canned dog food than ground beef. What the hell just happened here? I loved these little beef tacos, but now all I wanted to do was to throw them on the floor, yell at them, and replace them with turkey tacos!\nDel Taco Turkey Tacos Come in Two Different Sizes\nOn my way out, I asked the store manager a couple questions about the turkey tacos, namely about size comparisons with the beef taco. She informed me that the advertised turkey tacos are the equivalent size to the double beef Classic taco. She then informed me that they also offer a Value Turkey Taco version for $0.89 that is equivalent to the regular beef taco ($0.59). Sweet! I went back the next day and ordered some of each to compare. Here’s how the two look side by side:\nAs you can see, there is a substantial difference in the amount of filling. But for $0.40 more, is the larger turkey taco worth it? Well, I guess that depends on your taco preferences. Both are delicious, and both are significantly better tasting than the beef versions. But I think I like that larger turkey better because there is more meat/flavor to each bite. Oddly enough, the pico on it doesn’t really do much for me. In fact, I found the flavors of it distracting against the turkey. But me being me, I ate it anyway. So if you want more crunch and are looking to cut cost, go with the Economy taco. Otherwise, sink your teeth into the happy grown sibling bird.\nDel Taco Turkey Taco Nutrition\nDon’t get fooled thinking these tacos are good for you. They’re still from a fast food restaurant, and are filled with sodium, fat, sugars, and wheat and soy fillers. But compared to their beef counterpart, these are actually pretty decent. Del Taco hasn’t published the Value version nutritional information yet, but here’s the regular version’s info with a comparison to the classic beef:\nSo there you have it. 33% less fat, and 25% less calories than the Classic Beef Taco. Del Taco’s Turkey Taco is better tasting, and is a healthier pick as well. I’m sold and am in love. $1.29 is quite a bit more than the $.59 regular beef tacos at Del Taco, but it is worth every penny both in flavor and calorie reduction. You have a winner here Del Taco. I hope you keep turkey on your permanent menu!\nThe Bald Gourmet loves the new Turkey Tacos at Del Taco.\n2 Comments + Add Comment\nI love hearing from my readers, so please go ahead and leave a comment!\n- The Bald Gourmet on Recipe: Honey Molasses Wheat Bread\n- les on Recipe: Honey Molasses Wheat Bread\n- LaVon Grandy on What are Elderberries?\n- Chris on Recipe: Best Home Canned Thick and Chunky Salsa\n- debbie mccaffrey on Review: Safe Catch, The First 100% Mercury Tested Albacore Tuna. The New Whole Foods of the Sea."} +{"text": "Former Commissioner Lee Hearn delivers payback\nMany of the meetings of the pre-2013 Fayette County Commission came with negative comments accusing the three outgoing board members with a number of improprieties and a lack of transparency.\nNow it’s payback time.\nFormer Commissioner Lee Hearn fired back March 14, leveling a number of volleys at the “new” board and especially at Chairman Steve Brown. Among those was the proposal that some in the county were drinking “Brown Kool-Aid.”\nHearn in a very lengthy statement which he read in its entirety without interruption noted a number of issues pertaining to his view of some of the actions by Brown and other commissioners. Hearn’s comments are contained in a letter to the editor on Page A5.\nA number of commissioners before the meeting ended gave their responses to Hearn’s comments.\nHearn at the outset of his remarks noted a recent conversation he had with County Administrator Steve Rapson in which Rapson asked him why he came to commission meetings to complain about board actions.\n“... I decided that the reason I keep coming back is to hopefully convince four of the commissioners that they are being given some very bad advice by the chairman. After spending two long years of listening to his divisiveness, I think that I have a pretty good feel for what he is trying to achieve before the guys catch on to his antics,” Hearn said.\nHearn said a friend told him the problem with his approach at commission meetings could be perceived as sour grapes. He said the “new” board continues to harp on how they want all their actions to be transparent and above reproach, but contended that some in the community are drinking the “Brown Kool-Aid.”\nHearn went on to say that Brown no longer has former County Administrator Jack Krakeel to berate or attorney Scott Bennett to mistrust.\n“You now have three commissioners who are willing to follow you anywhere that you want to lead them, a big ‘budget guru’ county administrator who you personally selected and chose and a new interim county attorney who has no ethical problem with representing two opposing parties on the same (Local Option Sales Tax) distribution tax issue,” Hearn said.\nHearn went on to make a number of statements on the LOST issue, comparing the actions of the old and new boards. He said that while the current board did not conduct public meetings on LOST, commissioners did have public meetings on the stormwater utility even though those revenues are small in comparison to sales tax revenues.\nHearn said county staff prior to Dec. 31 concluded that the county’s share of LOST revenues should be 57 percent rather than decrease to the 48.5 percent share the county will see in the next five years, an amount agreed to by commissioners in negotiations with the municipalities. That difference, said Hearn, would amount to $14.5 million in additional county revenues.\n“This $14.5 million gift is the result of a deal that the chairman made with his buddy (Fayetteville Mayor Greg Clifton). There was no reason for the cities to negotiate honestly with the county and the previous board because they had already been promised by Mr. Brown that he could deliver the votes to give the cities whatever they wanted. Of course, in return for their support of his candidates last fall it only cost the taxpayers in the unincorporated area of the county 30 pieces of silver or $14.5 million in today’s currency,” Hearn said.\nHearn continued, chastising the commission for “ousting” Fayette County Fire and Emergency Services Director Allen McCullough.\nMayor Clifton, who was present at the meeting, rebutted Hearn’s remarks during public comments. Clifton said Brown did not deserve Hearn’s criticism, adding that the cities agreed to the LOST revenue negotiated settlement rather than having the matter resolved in court.\nRapson in the administrative report said some of Hearn’s comments were extremely misleading.\n“Saying $14.5 million doesn’t make it so,” Rapson said.\nBrown also weighed in on Hearn’s extended comments. Brown said both the county and the cities “gave something” during the recent LOST negotiations.\nAnd during commissioners’ comments, Commissioner Charles Oddo in a statement that appeared to be one intended with some humor as evidenced by a few chuckles from the audience, said, “With all due respect to Commissioner Brown, I wouldn’t follow him anywhere.”\nCommissioner Allen McCarty followed, saying, “We all have our own minds.”"} +{"text": " msb)\n\n layer_cache = index_k_cache[layer_local_idx, :, 0]\n idx_q4 = idx_q.view(B, T, H, D)\n seq_lens2 = seq_lens_bt.view(B, T)\n TH = T * H\n\n head_blocks = triton.cdiv(TH, _SCORE_BLOCK_H)\n target = max(1, min(_SCORE_MAX_CHUNKS, _SCORE_TARGET_CTAS // max(1, B * head_blocks)))\n num_chunks = min(msb, 1 << (target.bit_length() - 1))\n sparse_block_tokens = block_size * ratio\n block_n = max(sparse_block_tokens, _SCORE_BLOCK_N)\n block_n = triton.cdiv(block_n, sparse_block_tokens) * sparse_block_tokens\n block_d = max(32, triton.next_power_of_2(D))\n # Uninitialized is safe: the chunk union writes every block < num_sb (per\n # group max_seq) and _select_kernel masks entries >= each row's own num_sb\n # (and non-finite garbage) itself.\n scores = torch.empty((B, T, H, msb), dtype=torch.float32, device=idx_q.device)\n _score_kernel_grouped[(B, head_blocks, num_chunks)](\n idx_q4,\n layer_cache,\n block_tables_seq,\n seq_lens2,\n scores,\n idx_q4.stride(0),\n idx_q4.stride(1),\n idx_q4.stride(2),\n layer_cache.stride(0),\n layer_cache.stride(1),\n block_tables_seq.stride(0),\n seq_lens2.stride(0),\n scores.stride(0),\n scores.stride(1),\n scores.stride(2),\n T=T,\n H=H,\n D=D,\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n NUM_KV_CHUNKS=num_chunks,\n BLOCK_H=_SCORE_BLOCK_H,\n BLOCK_D=block_d,\n BLOCK_N=block_n,\n num_warps=_SCORE_NUM_WARPS,\n num_stages=_SCORE_NUM_STAGES,\n )\n\n scores_flat = scores.view(BT, H, msb)\n if selected_out is not None:\n assert selected_out.shape == (BT, H, topk) and selected_out.dtype == torch.int32\n assert selected_out.stride(2) == 1, \"select kernel needs a contiguous topk dim\"\n selected = selected_out\n else:\n # _select_kernel overwrites every element; no init fill needed.\n selected = torch.empty((BT, H, topk), dtype=torch.int32, device=idx_q.device)\n _select_kernel[(BT, H)](\n scores_flat,\n seq_lens_bt,\n selected,\n scores_flat.stride(0),\n scores_flat.stride(1),\n selected.stride(0),\n selected.stride(1),\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n TOPK=topk,\n MSB=msb,\n INIT_BLOCKS=sparse.sparse_init_block,\n LOCAL_BLOCKS=sparse.sparse_local_block,\n )\n return selected\n\n\ndef _ceil_power_of_2(value: int) -> int:\n return 1 << (max(1, value) - 1).bit_length()\n\n\n# CuteDSL decode scorer dispatch. Default on; kill-switch for triage.\n_CUTE_SCORE_ENABLED = os.environ.get(\"FIREWORKS_M3_CUTE_SCORE\", \"1\") == \"1\"\n\n\n@functools.lru_cache(maxsize=None)\ndef _cute_score_module():\n \"\"\"Lazy import of the CuteDSL decode scorer; None when deps are missing.\"\"\"\n try:\n from fireworks.models.minimax_m3 import minimax_m3_decode_score_cute\n\n return minimax_m3_decode_score_cute\n except ImportError:\n return None\n\n\ndef _maybe_cute_score_select_grouped(\n idx_q: torch.Tensor, # [B*T, H, D] bf16\n index_k_cache: torch.Tensor,\n layer_local_idx: int,\n block_tables_seq: torch.Tensor, # [B, max_blocks] (per-sequence)\n seq_lens_bt: torch.Tensor, # [B*T]\n sparse: MiniMaxM3SparseAttentionConfig,\n T: int,\n selected_out: Optional[torch.Tensor] = None,\n) -> Optional[torch.Tensor]:\n \"\"\"Run the CuteDSL decode scorer when eligible, else None (Triton fallback).\n\n Eligibility (checked per call; cheap): bf16 Q, T*H <= 24 query rows,\n index_dim 128, page 64, and a cache dtype the kernel supports (bf16 HMMA\n or fp8_cast e4m3 QMMA — Q is quantized to e4m3 inside the kernel).\n \"\"\"\n if not _CUTE_SCORE_ENABLED:\n return None\n mod = _cute_score_module()\n if mod is None:\n return None\n BT, H, D = idx_q.shape\n layer_cache = index_k_cache[layer_local_idx, :, 0]\n if idx_q.dtype != torch.bfloat16:\n return None\n if not mod.can_run_cute_decode_score(\n T=T,\n H=H,\n index_dim=D,\n page_size=layer_cache.shape[1],\n ratio=sparse.sparse_block_downshard_ratio,\n dtype=layer_cache.dtype,\n ):\n return None\n return mod.fused_score_select_grouped_cute(\n idx_q,\n index_k_cache,\n layer_local_idx,\n block_tables_seq,\n seq_lens_bt,\n sparse,\n T,\n selected_out=selected_out,\n )\n\n\ndef _score_select_grouped_any(\n idx_q: torch.Tensor, # [B*T, H, D]\n index_k_cache: torch.Tensor,\n layer_local_idx: int,\n block_tables_seq: torch.Tensor, # [B, max_blocks]\n seq_lens_bt: torch.Tensor, # [B*T]\n sparse: MiniMaxM3SparseAttentionConfig,\n T: int,\n selected_out: Optional[torch.Tensor] = None,\n) -> torch.Tensor:\n \"\"\"Grouped score+select via the CuteDSL scorer when eligible, else Triton.\"\"\"\n selected = _maybe_cute_score_select_grouped(\n idx_q,\n index_k_cache,\n layer_local_idx,\n block_tabl"} +{"text": "Flirting comes in many forms: a casual gaze that lingers a half second longer than necessary, a light touch, an amorous expression, an overenthusiastic laugh during conversation, or even some playful or overtly sexual banter.\nRegardless of the technique employed, flirting aims to fulfill one purpose: stimulate sexual interest. To be clear, though, flirting may not have the explicit goal of having sex or even physical intimacy of any kind. A person may flirt simply to pass the time, to feel close, to see if they’ve still got it or because it’s fun. Flirting motivations differ by gender. Big surprise: men’s flirting is more motivated by sex, while women’s flirting is more motivated by having fun or becoming closer to another person.\nSelf-esteem and flirting\nWhen done well, flirting is not overt or obvious and always leaves open the possibility that flirting wasn’t occurring at all. This ambiguity allows people to put themselves out there with less fear of embarrassment, rejection or damaged self-esteem.\nIt isn’t surprising that a person’s self-esteem may affect how she or he approaches flirting. When the risk of being rejected is high, men with high self-esteem use more direct techniques than those with low self-esteem, perhaps because they’re less concerned with how being shot down may affect them. However, men with low self-esteem are bolder and use more obvious approaches than men with high self-esteem when the target is clearly interested and rejection risk is low. This may be because encountering a sure thing is one of the only contexts in which a guy with low self-esteem feels safe making advances, so he has to make it count.\nWhen rejection risk is low for women, they’re more direct regardless of their self-esteem. Women traditionally initiate relationships less often than men, so when the chance arises perhaps women decide to throw caution to the wind and just go for it. Of course it is also possible that women are using the technique that they know works better when men try to flirt with them.\nSubtle vs. direct\nMuch like a tree falling in a forest, if a flirting attempt occurs and the intended receiver doesn’t realize it, did flirting ever really happen?\nWhen it comes to flirting technique the research is pretty clear: while subtlety is more likely to protect the flirter’s self-esteem, if you really want to get your message across, direct is best. A study asked college students about the most effective ways to show interest in someone. Both men and women agreed that subtle flirting was less likely to get the job done, and that the best approach would be a direct “Do you want to go to dinner with me?”\nA key benefit to direct flirting approaches, especially for the person on the receiving end, is that they are clear and easier to interpret. Protect your ego too carefully by maintaining complete deniability and you run the risk of no one receiving your too-subtle signals.\nNow you see it, or maybe you don’t\nTo see how easy it is to accurately perceive flirting, researchers gave more than 100 heterosexual strangers the opportunity to interact for ten minutes. Afterwards, each participant indicated whether they were flirting or not and whether they thought their partner was flirting.\nOverall, almost a quarter of the participants flirted during their interaction. But participants accurately perceived that flirting only 28% of the time, with males more accurate at detecting female flirting (36%) than females were at detecting male flirting (18%). Those numbers are all fairly low, but people were much better at knowing when their partner was not flirting, accurately characterizing lack of flirting 84% of the time. Of course, this could be because most of the time participants weren’t flirting, making it easier to correctly guess that a participant wasn’t making eyes.\nAre outside observers any better at detecting flirting than participants are? Researchers had more than 250 people view one-minute video clips from the earlier interactions to see if they could accurately identify flirting in strangers. Observers who simply watched the interaction were even less accurate at identifying flirting than those who were actually involved. Once again, males were more accurate at recognizing when women flirted, but men generally tend to overestimate women’s interest, giving them more of a chance to be correct when women actually were flirting.\nAcross both studies, the ability to detect flirting was probably lower than any flirty person would like. But as lead researcher Jeffrey Hall explains:\nBehavior that is flirtatious is hard to see, and there are several reasons for that. People aren’t going to do it in obvious ways because they don’t want to be embarrassed, flirting looks a lot like being friendly and we are not accustomed to having our flirting validated so we can get better at seeing it.\nThe science of flirting suggests that when you want to create sexual interest in another person and really want to get your message across, don’t mess around. Direct methods are best. An ambiguous approach is less threatening, but ultimately not very effective. People just aren’t very good at perceiving flirting."} +{"text": "August 10, 1915. The Gallipoli sun beats down on the back of a Turkish sharpshooter. He is patient and used to the discomfort. He wipes the sweat from his eyes and peers back down the sight of his rifle, sweeping back and forth across the enemy lines. He’s hoping to spot a target worth taking a shot at as each muzzle flash risks giving his position away.\nHis sight settles on the shoulder pip of a second lieutenant. The target bends down out of sight, then reappears, now with a phone at his ear. He stands still as he sends his dispatch. It’s an easy shot for the sniper. He squeezes the trigger and yet another young man dies.\nThe Turkish soldier settles down in his hole, pleased with his marksmanship. He wonders if he’s made a significant difference to the war effort (probably not).\nHowever, he may well have caused the single most costly death of the entire war. His victim, now lying in a trench on a peninsula in Turkey, is 27-year-old Henry Moseley. The loss to science is incalculable.\nDespite his young age, Moseley had already made a stunning contribution to chemistry and physics. It is thanks to him that that the periodic table looks the way it does today.\nHe had graduated from Oxford just five years before his death. Immediately after graduating he was employed as a teaching assistant by the great physicist Ernest Rutherford in Manchester. Moseley hated it, describing his duties as “teaching elements to idiots” and his students as “mostly stupid”. His real passion was research, so in his spare time he used his energies to set up his experiments.\nMoseley was working in an era of physics that was concerned with the power of X-rays. The Braggs, a father-son team working in Leeds, were developing X-ray crystallography. This allowed science to probe the atomic structure of molecules.\nBut instead of jumping on that bandwagon – shining X-rays at crystals to work out chemical structures – Moseley turned his attention to the elements themselves. He studied the X-rays the elements gave off when bombarded with electrons. His results had major implications for the famous periodic table in which elements are presented.\nBack in 1869, Dimitri Mendeleev arranged the elements in a logical fashion. He ordered them by weight and then laid them out in a table. Next he shuffled the dimensions of his table to take similarities of elements into account. For example, lithium, sodium and potassium have similar chemical properties and were arranged in one group on a line of the table (modern tables have been flipped so that these groups are now in columns).\nLikewise for fluorine, chlorine, bromine and iodine. And so the periodic table was born. The elements were now arranged in a clear sequence – and each was given an atomic number denoting its position in that sequence. But there were a few problems, some elements didn’t quite fit the order. Their behaviour suggested one position in the table, but their atomic weight put them somewhere else. So the atomic weight and atomic number of the elements didn’t quite correlate.\nIn Manchester, and later in Oxford, Moseley took samples of all known elements, from aluminium to gold, and measured the X-rays they gave off after bombarding them with electrons. He discovered that each element emitted a distinct frequency of X-rays, and that this frequency correlated with the atomic numbers. When he plotted the square root of the frequency, against the atomic number everything fell into straight lines on his graph.\nFor the first time it became clear that an element’s atomic number, corresponding to its position on the table, had a basis in physics and was not merely a convenient label. And that these numbers (confirmed by Moseley’s measurements) resolved the previous issues with the periodic table. He also noted points missing from his graph and surmised that these gaps must be due to yet-to-be discovered elements. It was wasn’t until 30 years after his death that that the last of Moseley’s missing elements were discovered.\nMoseley’s achieved all this in a research career lasting just 40 months. At the outbreak of war in 1914 he signed up, becoming a signalling officer in the Royal Engineers. Had he survived, it is likely he would have been awarded the 1916 Nobel Prize in Physics (as it was no Nobel Prize in Physics was awarded that year). There is no telling what other breakthroughs might have been achieved in the alternative history in which he survived the war.\nThere is one more legacy that Moseley left. His death raised the question of whether great minds such as his should really be risked on the battle field. Despite the war, the international scientific community was outraged at the loss of such a renowned scientist, who still had so much to offer.\nFrom then on scientists were used in a very different way in wars. For better or worse scientists in the next great war developed penicillin, radar, programmable computers and, of course, the Manhattan project. All these inventions had much greater impacts on World War II than any of the individuals involved could have made at the front line."} +{"text": "es_seq,\n seq_lens_bt,\n sparse,\n T,\n selected_out=selected_out,\n )\n if selected is None:\n selected = _fused_score_select_grouped(\n idx_q,\n index_k_cache,\n layer_local_idx,\n block_tables_seq,\n seq_lens_bt,\n sparse,\n T,\n selected_out=selected_out,\n )\n return selected\n\n\n# Sequence-sharded (\"lazy DP\") DECODE indexer: the index q/k projections are\n# intentionally NOT TP-sharded (see MiniMaxM3CausalTextModel.sharding_spec)\n# and the index-K cache is replicated, so every rank would otherwise scan the\n# same cache for the same query rows. Instead, shard the sequences across\n# ranks (each sequence keeps its T spec tokens together so they share one\n# index-K scan), score ALL index heads for the local slice (the scan is\n# K-bytes bound, so extra query rows are nearly free), and exchange only the\n# tiny top-k outputs: all-to-all scatters head slices back to the rank\n# serving that kv head (head 0 -> rank 0, ...); all_gather when every rank\n# needs the same heads. The select kernel writes straight into the collective\n# input buffer (no staging copy). Prefill intentionally keeps plain head\n# sharding: its BLOCK_Q-tiled scorer is dot-FLOP bound, already divided\n# evenly across ranks with zero comm. Default on; kill-switch for triage.\n_DP_INDEXER_ENABLED = os.environ.get(\"FIREWORKS_M3_DP_INDEXER\", \"1\") == \"1\"\n\n\n@functools.lru_cache(maxsize=None)\ndef _dp_indexer_comms():\n \"\"\"(AllGather, All2All, rank, world_size) over the TP group, or None.\n\n Shares the global uint8 FireComm (top-k indices are exchanged as raw\n bytes). Lazily created on first decode forward — before CUDA-graph\n capture, since capture warmup runs the forward first.\n \"\"\"\n if not _DP_INDEXER_ENABLED:\n return None\n try:\n import fireworks.cuda as firecuda\n import fireworks.distributed as firedist\n import fireworks.nn as firenn\n except ImportError:\n return None\n comm = firecuda.fccl.get_fire_comm(torch.uint8)\n if comm is None:\n return None\n return (\n firenn.AllGather(comm),\n firenn.All2All(comm),\n firedist.get_rank(),\n firedist.get_world_size(),\n )\n\n\ndef _dp_sharded_decode_score_select(\n idx_q_full: torch.Tensor, # [B*T, H_full, D] rank-replicated index Q\n index_k_cache: torch.Tensor,\n layer_local_idx: int,\n block_tables_seq: torch.Tensor, # [B, max_blocks] (per-sequence)\n seq_lens_bt: torch.Tensor, # [B*T]\n sparse: MiniMaxM3SparseAttentionConfig,\n T: int,\n num_kv_heads: int,\n) -> Optional[torch.Tensor]:\n \"\"\"Sequence-sharded decode score+select; returns selected for this rank's\n kv heads ``[B*T, num_kv_heads, topk]`` or None when ineligible.\n\n Each rank scores sequences ``[rank*chunk, (rank+1)*chunk)`` for all\n ``H_full`` index heads, writing the select output directly into the\n collective input buffer (no staging copy). Comm pattern:\n\n * ``H_full == num_kv_heads`` — every rank needs the same heads:\n all_gather of ``[chunk*T, H_full, topk]`` per rank.\n * ``H_full == world_size * num_kv_heads`` — heads fan out 1:1 with kv\n heads: all-to-all where dst rank j receives head slice j for this\n rank's sequences. The select kernel writes through a permuted view of\n the a2a input ([dst, row, topk] for num_kv_heads == 1), so the\n exchange needs no extra memcopy.\n\n All eligibility inputs are rank-uniform, so every rank takes the same\n branch (collective ordering is preserved under CUDA-graph capture; shapes\n are static per graph bucket). Results are bit-identical to the unsharded\n path: each sequence's scores are computed with the same kernels on the\n same inputs, just on exactly one rank.\n \"\"\"\n comms = _dp_indexer_comms()\n if comms is None:\n return None\n ag, a2a, rank, world_size = comms\n if world_size <= 1:\n return None\n num_seq = block_tables_seq.shape[0]\n BT, H_full, _ = idx_q_full.shape\n if num_seq < world_size or BT != num_seq * T:\n return None\n if H_full == num_kv_heads:\n mode_a2a = False\n elif H_full == world_size * num_kv_heads:\n mode_a2a = True\n if num_kv_heads != 1:\n # The strided direct-write trick below needs one head per dst.\n return None\n else:\n return None\n\n ratio = sparse.sparse_block_downshard_ratio\n msb = triton.cdiv(block_tables_seq.shape[1], ratio)\n topk = min(sparse.sparse_topk_blocks, msb)\n chunk = (num_seq + world_size - 1) // world_size\n s0 = min(rank * chunk, num_seq)\n s1 = min(s0 + chunk, num_seq)\n rows_per_rank = chunk * T\n\n if mode_a2a:\n # [dst_rank, rows, topk] int32; the (row, head=dst) select view is a\n # permute, so the select kernel writes straight into the a2a input.\n buf = a2a.input(torch.Size([world_size * rows_per_rank * topk * 4]))\n sel_view ="} +{"text": "Emmy(R) Award-Winning Director and Actor Charles S. Dutton ('The Corner,' 'Roc') to Star in and Direct the Lifetime Original Movie 'Racing for Time'\nInspired by the True Story of Noel Chesnut\nCo-Starring Elizabeth Pena ('Resurrection Blvd')\nBEVERLY HILLS, Calif., July 12 -- Emmy(R) Award-winning\ndirector and actor Charles S. Dutton (\"The Corner,\" \"Roc\") will star in and\ndirect the upcoming Lifetime Original Movie \"Racing for Time.\" The\ninspiring and uplifting story is about a male prison guard who creates an\nunconventional sports program for some of the toughest and most violent\nfemale offenders at a juvenile correctional facility in an attempt to teach\nthem teamwork, discipline and self-esteem. \"Racing for Time\" will premiere\nin 2008 on Lifetime Television.\n\"This is a powerful, uplifting story that demonstrates the difference\nthat one person can make by giving hope to outcasts in society,\" said\nSusanne Daniels, President, Entertainment, Lifetime Networks. Adding,\n\"Charles Dutton's incredible passion for this project is truly inspiring.\"\nIn \"Racing for Time,\" Cleveland \"Stack\" Stackhouse (Dutton) is a guard\nwith the Texas Correctional Youth Authority who witnesses the cycle of\ndestructive choices and racial tensions among female teen offenders and\ndecides to do something about it. He gathers African-American, Latina and\nCaucasian teens, and organizes a multi-racial track team behind the bars of\nthe prison. Participation in Stack's track team not only breaks down the\nracial divides between the girls, but puts them on a path to turn their\nCharles S. Dutton won two Emmy(R) Awards for guest-starring roles in\nthe dramas \"The Practice\" and \"Without a Trace\" and another Emmy(R) for\ndirecting the HBO miniseries, \"The Corner.\" He has received Tony(R)\nnominations for \"The Piano Lesson\" and \"Ma Rainey's Black Bottom.\" He also\nreceived an NAACP Image Award for \"DC Sniper\" and an Image Award for \"Roc,\"\nfor which he also served as executive producer.\nDutton has numerous feature film credits including \"Against the Ropes,\"\nwhich he also directed; \"A Time to Kill,\" \"Mississippi Masala,\" \"The\nDistinguished Gentleman,\" \"Menace II Society,\" \"Rudy,\" \"Cry, the Beloved\nCountry,\" \"Random Hearts\" and \"Secret Window.\"\nOn television, Dutton most recently starred in the CBS series\n\"Threshold.\" He also starred in the Emmy(R) Award-winning movie \"Something\nthe Lord Made\" and Emmy(R) Award-winning miniseries \"The Murder of Mary\nPhagan.\" He appeared in the miniseries \"The '60s,\" \"For Love or Country:\nThe Arturo Sandoval Story,\" \"Deadlocked,\" \"The Piano Lesson\" and the\ntelevision movies \"Zooman,\" \"10,000 Black Men Named George\" and \"DC Sniper:\n23 Days of Fear.\"\nElizabeth Pena is an award-winning actress who starred in the Showtime\ndrama \"Resurrection Blvd\" for three seasons. She also won rave reviews for\nher starring role in the CBS telefilm \"Suburban Madness.\" Pena just\ncompleted the independent film \"Por Vida\" directed by Alan Jacobs and also\nstarring Danny Glover. Her list of film credits include the award winning\n\"Transamerica,\" \"The Lost City,\" \"Down and Out in Beverly Hills,\" \"La\nBamba,\" \"Jacob's Ladder\" and \"Rush Hour.\"\n\"Racing for Time\" is produced by von Zerneck Sertner Films, Tiara Blu\nFilms and Harbor Lights Productions for Lifetime Television. Diane Nabatoff\n(\"Take the Lead,\" \"Knights of the South Bronx\"), Rocky Lang (\"Titanic\" -\nthe television miniseries, \"White Squall\"), Frank von Zerneck and Robert M.\nSertner (Lifetime's \"Fatal Desire\" and \"We Were the Mulvaneys\") are the\nexecutive producers. Charles S. Dutton (\"The Corner,\" \"Against the Ropes\")\ndirects from a script written by Glenn German and Adam Rodgers (\"We'll Take\nManhattan\"). Dutton is also co-executive producer.\nDutton is managed by Sherry Marsh from Marsh Entertainment and repped\nby Bob Gersh. Pena is repped by Rugolo Entertainment and Innovative.\nLifetime is the leader in women's television and one of the top-rated\nbasic cable television networks. A diverse, multi-media company, Lifetime\nis committed to offering the highest quality entertainment and information\nprogramming, and advocating a wide range of issues affecting women and\ntheir families. Lifetime Television, LMN, Lifetime Real Women and Lifetime\nDigital (including LifetimeTV.com) are part of Lifetime Entertainment\nServices, a 50/50 joint venture of The Hearst Corporation and The Walt\nSOURCE Lifetime Television"} +{"text": "What a wonderful Saturday in cool, overcast Seattle. (It’s actually great to have a brief break from the summer heat.) We started early with a 4-mile walk along the east side of Lake Washington and then shot over the 520 bridge to scope out the fresh produce at the University District Farmers Market. By 10:00 A.M., the market was swarming with purposeful shoppers.\nWhat struck me this week were all the “baby” veggies. One vendor had her large variety of summer squash tagged as “infant” zucchini and “youngster” patty pans. Another vendor had turnips the size of a marble. The carrots were so young and tender they were practically screaming, “Eat me now.” There were even baby shallots, as small and tender as green onions.\nNeedless to say, I got carried away. Can you blame me? With nothing in mind to purchase, other than fava beans, I somehow ended up with baby carrots, baby turnips, young garlic, baby chiogga beets, green beans, purple beans, yellow wax beans, fresh dill, cauliflower, broccoli, basil, and an armload of gorgeous fuchsia asters. And the fava beans as well.\nThen MauiJim asked the one question I have repeatedly asked him NOT to ask. You know, the “What are you going to make with all that?” question.\nAn Italian soup came to mind. Something very fresh and immediate in which each vegetable takes center stage in turn. Then something shifted and I heard myself say, “Stop at the store on the way home. I need a gallon of vinegar.” The image that had just jumped into my mind was of a large glass jar filled with my entire veggie stash, covered with a sweet/sour/mustard/garlic/dill brine. Pickles! But not just any pickles, Italian pickles.\nOnce we got back to the OtherWorldly Kitchen, research on the web began. Recipes for Giardiniera are all over the place. Most of those I surveyed specify a simple vinegar, sugar, salt, and water brine but some add oil as well (especially the famous Chicago Giardiniera). Most say to boil the vinegar and spices for a few minutes before pouring it over the raw veggies. So far, so good.\nBut some say to cool it before pouring over the veggies, or pour it boiling hot over the veggies, or cook the veggies in the boiling brine for up to 15 minutes. I also found a recipe that called for cooking each veggie separately in boiling water for 1-4 minutes to tender-crisp, draining, drying with kitchen towels, and THEN adding the lot to still warm brine. That’s quite a bit of variance and each technique will affect the crunchiness (or lack therof) of the veggies.\nFor my first test, I decided to use as simple a process as possible and sequentially blanched each of the firmer veggies in the boiling brine for 1-2 minutes only. However, even a short blanching period proved to be excessive. I can now confidently recommend simply pouring the boiling brine over the raw veggies layered in heatproof jars. There is enough residual heat to lightly blanch almost any veggie you might choose. Pickles should be crunchy, not flabby.\nI discovered a couple of other things as well. Namely that broccoli does not make a great pickle. It turns a dreadful color in the brine, as do purple beans. I’m also removing roasted, peeled beets from my original list of possible veggie choices. While it makes a lovely pickle on its own, it colors the brine pink, when what you really want here is crystal clear.\nGiardiniera: Italian Pickled Vegetable Medley\nYou will want to have this wonderful fresh pickle in your frig at all times. It’s a sparkling addition to almost any sandwich and a great antipasto as well.\nThis makes a rather large amount of pickled veggies, but they will keep (and actually get better and better) for 1-3 months in the frig. (You can of course half the recipe if you wish.)\nThis brine is only mildly sweet. Do feel free to adjust the sugar and salt level to your own preferences. I have seen numerous Giardiniera recipes that specify twice this much sugar.\n3 quarts distilled vinegar\n3 cups sugar\n1 tablespoon fine sea salt\n4 quarts of some combination of the following (trimmed, and sliced, diced, or chunked into nibble-size pieces as desired):\ncauliflower (I used 2 cups trimmed floret’s; 8 ounces)\ngreen beans (I used 2 cups trimmed; 4 ounces)\nyellow wax beans (I used 2 cups trimmed; 4 ounces)\nbaby carrots (I used 2 cups trimmed floret’s; 8 ounces)\nfennel (I used 1 bulb, sliced; 6 ounces)\nbaby turnips (I used 1 cup trimmed; 5 ounces)\nbutton mushrooms (I used 2 cups trimmed; 7 ounces)\nred bell peppers (I used 1 large, stemmed, ribbed, seeded, and chunked)\nyellow bell peppers (I used 1 large, stemmed, ribbed, seeded, and chunked)\norange bell peppers\ngreen bell peppers\nJapanese or English cucumbers (I used 2 Japanese cucumbers, sliced; 6 ounces)\nPlus one or more of the following, if desired:\n1 cup green olives\n1 cup black olives\n16 small sprigs fresh dill\n8 garlic cloves, optional\n2-4 small red jalapeno or Serrano chiles, optional\n1 tablespoon yellow mustard seeds, optional\n1 tablespoon cumin seeds, optional\n1 teaspoon red pepper flakes, optional\nfresh cracked black pepper, optional\n- In a large, nonreactive pot (I used a Le Creuset enameled, cast iron soup pot), combine the vinegar, sugar, and salt, and bring to a simmer. Simmer 5 minutes.\n- Meanwhile, combine the primary veggies into a large heatproof glass bowl or layer into tempered glass jars. If using jars, be sure to evenly distribute any of the additional ingredients you may choose to use.\n- Pour the simmering brine over the vegetables and weight down if possible to keep the veggies submerged in liquid while the brine cools.\n- When cool, cover and refrigerate until needed.\nFills 6 pint jars.\nCookin’ with Gas (inspiration from around the web)\n- lauriebot: a grown up girl blog: Dilly of a Pickle\n- Married with Dinner blog: A Gardener’s Pickle\n- thepauperedchef blog: Giardiniera\n- wegottaeat blog: Giardiniera, Chicago Style\n- epicurious: Hot Italian Giardiniera\n- smitten kitchen: giardiniera"} +{"text": " buf.view(torch.int32).view(world_size, rows_per_rank, topk).permute(1, 0, 2)\n else:\n buf = ag.input(torch.Size([rows_per_rank * H_full * topk * 4]))\n sel_view = buf.view(torch.int32).view(rows_per_rank, H_full, topk)\n\n if s1 > s0:\n local_rows = (s1 - s0) * T\n _score_select_grouped_any(\n idx_q_full[s0 * T : s1 * T],\n index_k_cache,\n layer_local_idx,\n block_tables_seq[s0:s1],\n seq_lens_bt[s0 * T : s1 * T],\n sparse,\n T,\n selected_out=sel_view[:local_rows],\n )\n\n out = a2a(buf) if mode_a2a else ag(buf)\n # Both collectives concatenate rank chunks in rank order = sequence-major\n # order; garbage rows from short/empty tail ranks land at seq >= num_seq\n # and are sliced off.\n heads_out = num_kv_heads if mode_a2a else H_full\n return out.view(torch.int32).reshape(world_size * rows_per_rank, heads_out, topk)[:BT]\n\n\n# fp8 tcgen05 prefill scorer dispatch (on by default; set FIREWORKS_M3_FP8_PREFILL_SCORE=0 to disable).\n# Varlen/batched: gather each seq's 64-token index-K pages into contiguous\n# 128-token pages (sync-free, uniform padding) and run the vendored fp8 indexer,\n# then reuse the Triton _select_kernel. Below a work threshold the cute kernel's\n# fixed launch+gather overhead loses to Triton, so small prefills fall back.\n_FP8_PREFILL_SCORE_ENABLED = os.environ.get(\"FIREWORKS_M3_FP8_PREFILL_SCORE\", \"1\") == \"1\"\n\n# Route to fp8 only when score work (total_q * msb * heads, msb = KV history\n# sparse blocks) clears this threshold; below it Triton is faster (cute's fixed\n# launch+assemble+meta+q-cast overhead loses). Measured B200 crossover (full\n# path: assemble+meta+cute+select vs Triton score+select, do_not_commit/\n# bench_crossover.py): Triton wins at work=524288 (0.91-1.10x), cute wins at\n# work=1048576 (1.32-1.54x), stable across H=2 and H=4 -> threshold is the\n# lowest measured work where cute wins. All host-known, so the guard adds no\n# device sync.\n_FP8_PREFILL_MIN_WORK = int(os.environ.get(\"FIREWORKS_M3_FP8_PREFILL_MIN_WORK\", \"1000000\"))\n\n# Fused opt scorer+select dispatch. Set FW_M3_USE_OPT_FUSED=auto to use the\n# fused kernel only in the measured B200 sweet spot; 1/0 force it on/off.\n_FP8_PREFILL_FUSED_DEFAULT_MSB_MAX = 128\n_FP8_PREFILL_FUSED_DEFAULT_MAX_TOTAL_Q = 12288\n\n# One-time compile warmup state: the server's startup warmup only sends tiny\n# prompts (no sparse prefill), so without this neither the cute kernel nor the\n# Triton sparse scorer compiles until the first long request hits the hot path.\n_PREFILL_SCORERS_WARMED_MODULES: set[str] = set()\n_PREFILL_FUSED_SCORER_WARMED = False\n_PREFILL_TRITON_SELECT_WARMED = False\n\n\ndef _env_flag(name: str, default: str = \"0\") -> str:\n return os.environ.get(name, default).strip().lower()\n\n\ndef _prefill_fp8_use_fused(total_q: int, msb: int) -> bool:\n \"\"\"Host-side opt fused/unfused dispatch.\n\n The fused full-K kernel wins for enough query work at short KV histories but\n loses once split-K parallelism matters. B200 measurements show wins through\n total_q=8192 with msb<=128, a slight loss at total_q=16384/msb=128, and\n larger losses at msb>=512. The default total_q cap is the midpoint between\n the measured 8192 win and 16384 loss, and both caps are env-overridable for\n follow-up tuning.\n \"\"\"\n mode = _env_flag(\"FW_M3_USE_OPT_FUSED\", \"0\")\n if mode in (\"1\", \"true\", \"yes\", \"on\"):\n return True\n if mode in (\"0\", \"false\", \"no\", \"off\", \"\"):\n return False\n if mode != \"auto\":\n return False\n\n max_msb = int(os.environ.get(\"FW_M3_FUSED_MSB_MAX\", str(_FP8_PREFILL_FUSED_DEFAULT_MSB_MAX)))\n max_total_q = int(os.environ.get(\"FW_M3_FUSED_MAX_TOTAL_Q\", str(_FP8_PREFILL_FUSED_DEFAULT_MAX_TOTAL_Q)))\n return 0 < int(total_q) <= max_total_q and 0 < int(msb) <= max_msb\n\n\n@functools.lru_cache(maxsize=None)\ndef _fp8_prefill_module():\n try:\n # Knob: FW_M3_USE_OPT=1 selects the optimized N=256 scorer (fp8_indexer_opt);\n # default (0) keeps the upstream baseline kernel. The optimized kernel writes a\n # query-contiguous scores layout, which _maybe_fp8_prefill_score_select handles via\n # the module's SCORES_QUERY_CONTIGUOUS flag (different select strides).\n #\n # FW_M3_USE_OPT_FUSED=auto/1 also uses the opt scorer for the unfused fallback,\n # so the dispatch is between opt-fused and opt-score+select rather than\n # silently falling back to the N=128 baseline when fused is gated off.\n use_opt_fused = _env_flag(\"FW_M3_USE_OPT_FUSED\", \"0\")\n if _env_flag(\"FW_M3_USE_OPT\", \"0\") == \"1\" or use_opt_fused in (\"auto\", \"1\", \"true\", \"yes\", \"on\"):\n from fireworks.models.minimax_m3.msa_fp8_indexer import fp8_indexer_opt as fp8_indexer\n\n return fp8_indexer\n from fireworks.models.minimax_m3.msa_fp8_indexer import fp8_indexer\n\n return fp8_indexer\n except ImportError:\n return None\n\n\n@functoo"} +{"text": "It’s customary for families to gather together, eat, sing and have a piñata at the party. Sometimes people celebrate posadas by going from home to home, singing the traditional song to ask for lodging the way Mary and Joseph did. But whether you travel around to different homes or stay in one place, there are certain elements of your family’s posadas that you inevitably love more than anything else, and will always try to recreate as you grow older, and especially as you have children so you can teach them your family’s traditions.\nFor me, the most beloved posadas tradition is making ponche Navideño. Every year, even if I don’t have access to fresh ingredients, I do my best to find canned, jarred or frozen ingredients for the things I can’t easily find in the U.S. Even though I know I’ll have it when I get to Mexico, I feel it’s really important to perfect the recipe at home with available ingredients.\nI want our future children to know that it’s a Mexican Christmas staple and always have memories of the smell and taste. I want them to think of love and family and La Navidad when they think of ponche, just the way that I do. I always look forward to spending time with family in Mexico City during the holidays, and I know there will always be an abundance of ponche Navideño. It’s present at almost every family gathering but the most special thing about it for me is that it’s become a family tradition to make it together with my suegros, whom I adore con todo corazón.\nWe stand around the kitchen, my suegro chopping the caña (sugar cane), while my suegra takes care with the liquid measurements. I slice the guayabas and juice the oranges, add the canela and core the tejocotes. And before a few years ago when I finally put it on paper, our family recipe wasn’t officially written down anywhere with any information other than what should go in it. Learning how to make this family recipe with my suegros meant a lot to me in being able to eventually pass down this tradition.\nSo, last week when I was grocery shopping in a store I don’t usually frequent and I found a box of fresh tejocotes, I had tears in my eyes as I stood in disbelief in the middle of the produce aisle. This was the very first time I’d ever seen fresh tejocotes in a market near Chicago (also grown in the U.S., according to the box). Tejocotes have long been prohibited from being imported fresh from Mexico as a precaution due to the possibility of harboring exotic pests. Only in recent years have there been growers in the U.S. (mostly in California) who’ve begun cultivating crops of tejocotes, also known in English as Mexican hawthorn. I was surprised and overjoyed to see them in a local store. Though I was tempted to buy the whole box, I painstakingly picked through it to find the most perfect ones to add up to half a pound, just enough for one large pot of ponche.\nThis year, our family is still headed off on a vacation together as usual, but not within Mexico. As excited as I am to go somewhere new and experience new things, I can’t help but feel a little sad that I won’t be attending Tía Annette’s big posada Navideña in Mexico City.\nI’ll miss sipping ponche and café con rompope and eating galletas with my other tías while catching up on all the gossip I’ve missed since my last visit. I’ll miss our tío dangling the piñata over the garden for the kids from the second story window, laughing and smiling as he tugs it just out of their reach. I’ll miss seeing how much some of the younger cousins have grown up this past year. I’ll miss Tía Nene and her famous pastel de dátil (something I still need to learn how to make). I’ll miss the nochebuenas, which are much more beautiful and exotic-looking in their native Mexico. I’ll miss posing for a huge family holiday photo, comprised of four generations of our beautiful family.\nAs I write this, my kitchen is perfumed by the scent of ripe guayabas, waiting to be made into ponche this weekend. There are oranges, tejocotes, canela and ciruelas pasas. I still need to find some fresh sugar cane; I have a good idea of where to get it locally, but I’ve still got some in a jar as a backup. And though there will be no cousins, tíos, piñatas, pidiendo posadas or certain favorite holiday foods this year, the memories will swirl steadfastly in my heart and my kitchen as I stew a big pot of ponche before I jet off to my holiday destination.\n- What makes you think most of las posadas? This post is part of a blog hop about posadas. I encourage you to check out some of the other related posts about how others celebrate the holidays in Mexico. If you’ve written about posadas, please feel free to add a link to your post!…"} +{"text": "Clipper Gear Micro Light\nA simple and convenient gadget for your\nphone or key ring or anything/anywhere else\nStick one of these tiny flashlights on your phone or\nclip it to your keyring, or keep it in your purse (or\nYou never know when you might need a strong light in an\nemergency. This unit is so small it can be\ntaken anywhere and used anytime.\nI always travel with a tiny\nflashlight. Although I rarely need it, when I need it, I\ntruly need it. And I find its presence reassuring,\nespecially at night in strange cities, or on an underground\ntrain where you never know what would happen if the train lost\npower and got trapped in a dark unlit tunnel.\nHere now is a wonderfully\nconvenient, very small and lightweight, powerful micro light\npowered by two white LEDs. With long lasting batteries and\na low price of only $4.95 each, you should get one - or two, or three!\nGear's Micro Light is a very compact\nand lightweight device. It measures 2.25\" long, and\nis 1.2\" wide at its widest point. It is only 0.2\" thick at\nits thickest point. The unit weighs an imperceptible 0.2\nThese dimensions are\nimportant, because the Micro Light is designed to be placed on\nthe back of a mobile phone. It has a piece of double sided\nadhesive tape, which can be used to mount it on the back of most\ncell phones. However, the very tiniest phones will be too\nsmall to do this.\nThere is also a loop at the\nend opposite the two LEDs. In theory, this is to allow the\nunit to be placed on a key ring. In practice, the loop is\nfairly narrow and while it will fit on a thin sized key ring, it\nmay not fit so conveniently on a larger sized metal ring.\nThere is a single button on\nthe unit for turning the light on. The light is activated\nwhile the button is held down, and turns off when you release\nthe button. There is minimal danger of accidentally\nturning the light on and draining the batteries, because the\nbutton is small, slightly recessed, and requires moderately\npositive pressure to actuate.\nThe unit contains two small\nwatch type batteries to power it. Although you could in\ntheory replace them, in reality, it is a difficult job to do so,\nand the cost of two replacement batteries is amazingly similar\nto the cost of a new unit. Fortunately the batteries are\nlong lasting so the need to replace either the batteries or the\nunit is unlikely to be a regular occurrence.\nThe batteries are estimated\nto have a standby life of 3 - 5 years.\nThe unit is packaged in a\nsimple blister pack and is readily opened.\nThe unit is very easy to\nuse. Choose where to keep it, or, better still - choose\nwhere to keep them. I have them in various places around\nthe house, in my car, briefcase, and mounted on the back of my\nWhen you need it, simply\ntake it and press the button. Instant light.\nClipper Gear's Micro Light\nis amazing value. As mentioned above, the complete unit\ncosts little more than the batteries by themselves. Each\nMicro Light retails for only $4.95.\nWe like them so much we've decided to sell this unit ourselves.\nClick to go to our 'store' page\nwhere you can purchase one of more Micro Lights (they make a great gift!) using Paypal and charging to your credit card or bank\naccount. A single $2.50 shipping charge is added, no\nmatter how many items you buy\nor where in the world you'd like them shipped.\nYou'll get an invaluable accessory to simplify the\nmanagement of your cell phone name and number directory, and\nyou'll be supporting The Travel Insider at the same time.\nOther recommended cell phone accessories\nWe have two other products\nyou might also want to consider.\nClipper Gear Emergency Battery\nRecharger allows you to recharge your cell phone's battery,\neven if you're nowhere near a power source. If you're like\nme, your phone's battery always dies at the most inconvenient\nmoment. Keep one of these handy for the next such\nClipper Gear SIM Saver allows you to back up and transfer\nyour phone's SIM (or R-UIM) card phone book data. Great\nfor backup in case you lose/damage your SIM card or phone.\nThis is a lovely little\nmicro light that can be kept just about anywhere in case of\nemergency. It is low cost and has a long 3 - 5 year\nIf so, please donate to keep the website free and fund the addition of more articles like this. Any help is most appreciated - simply click below to securely send a contribution through a credit card and Paypal.\n21 Aug 2005, last update\n19 Dec 2013\nYou may freely reproduce or distribute this article for noncommercial purposes as long as you give credit to me as original writer."} +{"text": "ls.lru_cache(maxsize=None)\ndef _fp8_prefill_fused_module():\n try:\n from fireworks.models.minimax_m3.msa_fp8_indexer import fp8_indexer_opt_fused\n\n return fp8_indexer_opt_fused\n except ImportError:\n return None\n\n\n@functools.lru_cache(maxsize=None)\ndef _fp8_prefill_opt_module():\n try:\n from fireworks.models.minimax_m3.msa_fp8_indexer import fp8_indexer_opt\n\n return fp8_indexer_opt\n except ImportError:\n return None\n\n\ndef _prefill_score_modules_to_warm(mod) -> list:\n modules = []\n seen = set()\n for candidate in (mod, _fp8_prefill_opt_module()):\n if candidate is None:\n continue\n name = getattr(candidate, \"__name__\", repr(candidate))\n if name in seen:\n continue\n seen.add(name)\n modules.append(candidate)\n return modules\n\n\ndef _warmup_prefill_scorers(device, H, D, ratio, block_size, mod, fused_mod=None):\n \"\"\"Compile every prefill branch once on a tiny synthetic batched problem.\n\n The hot path can dispatch among the N=128/baseline scorer, the opt scorer,\n opt-fused score+select, and Triton select fallback. Warm all available\n branches here so later shape-gating changes do not JIT on live traffic.\n cute.compile is shape-dynamic, so any size warms all sizes.\n \"\"\"\n global _PREFILL_FUSED_SCORER_WARMED, _PREFILL_TRITON_SELECT_WARMED\n score_modules = []\n for candidate in _prefill_score_modules_to_warm(mod):\n name = getattr(candidate, \"__name__\", repr(candidate))\n if name not in _PREFILL_SCORERS_WARMED_MODULES:\n score_modules.append((name, candidate))\n warm_fused = fused_mod is not None and not _PREFILL_FUSED_SCORER_WARMED\n warm_triton_select = not _PREFILL_TRITON_SELECT_WARMED\n if not score_modules and not warm_fused and not warm_triton_select:\n return\n # Set first: never retry a failed/again-racing warmup.\n for name, _candidate in score_modules:\n _PREFILL_SCORERS_WARMED_MODULES.add(name)\n if warm_fused:\n _PREFILL_FUSED_SCORER_WARMED = True\n if warm_triton_select:\n _PREFILL_TRITON_SELECT_WARMED = True\n try:\n B, seq = 2, 256\n n64 = seq // block_size\n max_blocks = ((n64 + ratio - 1) // ratio) * ratio\n msb = max_blocks // ratio\n total_q = B * seq\n idx_q = torch.zeros(total_q, H, D, device=device, dtype=torch.bfloat16)\n layer = torch.zeros(B * max_blocks, block_size, D, device=device, dtype=torch.float8_e4m3fn)\n bt = torch.arange(B * max_blocks, device=device, dtype=torch.int32).view(B, max_blocks)\n k_pages = torch.empty(B * msb, ratio * block_size, D, dtype=torch.float8_e4m3fn, device=device)\n _assemble_pages_kernel[(B, msb, ratio)](\n bt,\n layer,\n k_pages,\n bt.stride(0),\n bt.stride(1),\n layer.stride(0),\n layer.stride(1),\n k_pages.stride(0),\n k_pages.stride(1),\n MSB=msb,\n RATIO=ratio,\n BLOCK_SIZE=block_size,\n D=D,\n )\n positions = torch.arange(seq, device=device, dtype=torch.int32).repeat(B)\n seq_lens = (positions + 1).to(torch.int32)\n cu_q = torch.arange(B + 1, device=device, dtype=torch.int32) * seq\n cu_k = torch.empty(B + 1, dtype=torch.int32, device=device)\n # warm the fused metadata kernel on the same path the hot loop uses\n _build_cu_k_kernel[(1,)](seq_lens, cu_q, cu_k, B, MAX_B=_CU_K_MAX_B)\n cu_page = _static_cu_page(B, msb, device)\n for _name, score_mod in score_modules:\n score_mod.fp8_prefill_block_scores_varlen(\n idx_q, k_pages, cu_q, cu_k, cu_page, seq, msb * ratio * block_size\n )\n if warm_fused:\n fused_mod.fp8_prefill_block_select_varlen(\n idx_q,\n k_pages,\n cu_q,\n cu_k,\n cu_page,\n seq,\n msb * ratio * block_size,\n topk=16,\n init_blocks=0,\n local_blocks=1,\n )\n # Triton score+select also compiles here so the fallback path is warm too.\n if warm_triton_select:\n scores = torch.full((total_q, H, msb), -1e30, dtype=torch.float32, device=device)\n scores[:, :, :msb] = 0.0\n selected = torch.full((total_q, H, min(16, msb)), -1, dtype=torch.int32, device=device)\n _select_kernel[(total_q, H)](\n scores,\n seq_lens,\n selected,\n scores.stride(0),\n scores.stride(1),\n selected.stride(0),\n selected.stride(1),\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n TOPK=min(16, msb),\n MSB=msb,\n INIT_BLOCKS=0,\n LOCAL_BLOCKS=1,\n num_warps=1, # match the fp8 prefill hot-path select speci"} +{"text": "While all eyes are focused on the looming October 17 deadline for Congress to raise the debt ceiling or force the country into default, the residents of the town where all the drama is happening are worrying about a different date: On or around October 13, the District of Columbia will run out of money to keep its own local government open.\nThe city council of Washington, DC, has no control over its own budget. Rather, since the roughly 600,00 residents of DC don’t have a governor or a state to call home, the city government of the District needs Congressional approval to spend money — money that it makes through local tax revenue, not U.S. taxpayer dollars. That approval is wrapped up into every budget that Congress passes and, when it doesn’t get a budget passed in time, the DC government is not allowed to spend, just like the federal government.\nThe only reason that the DC government didn’t shut down on October 1 is because Mayor Vince Gray (D) declared all city employees “essential” and tapped into the city’s “rainy day” fund to keep paying them until Congress got its act together.\nBut there’s not enough money in the fund to last until October 17th, when all hopes are that Congress will finally work out a deal to both fund the government and avoid default. Rather, city officials estimate that the rainy day fund will be tapped out by October 13. After that, the DC government will go into shutdown mode — meaning that fire departments, trash collection, some buses, the city’s university, and a host facilities and programs will be put on pause.\nOn Tuesday, Mayor Gray sent a letter asking for a meeting with President Obama, House Majority Leader John Boehner (R-OH), and Senate Majority Leader Harry Reid (D). He hopes to convince them to pass legislation that allows DC to spend its money freely during the remainder of the shutdown — and, moreover, to “decouple” Washington’s city budget from the federal government’s.\n“In no other part of our country are Americans facing the loss of basic municipal or state services due to the federal government shutdown,” he wrote.\nGray’s letter also pointed out that many of the city’s services are already feeling the consequences of the shutdown: Payments for Medicaid providers in the District are on hold, and DC failed to make its quarterly payment to the Washington Metropolitan Area Transit Authority this month. Gray also ordered city workers last week to start collecting trash from the parks that are owned by the National Park Service. They are already shut down, but since there’s trash inside the garbage cans there, there’s a growing problem of “rodents and other vermin.” That also means DC’s picking up the $58,000 bill for the work.\nThat could only get worse if DC can’t pay for its water and sewage authority, keep its unemployment benefit offices open (especially needed given the number of furloughed federal employees in DC), issue permits and licenses from the Department of Motor Vehicles, pick up trash and sweep the streets, or keep its brand new healthcare marketplaces established by Obamacare running.\nDuring the 1996 shutdown, Congress appropriated funds to keep DC’s city services running while they worked out a deal for the federal government. That’s a lesson they only learned, as Mike DeBonis points out in the Washington Post, after an earlier shutdown cost the city “$7.3 million in wages paid to employees who were not required to report to work, plus about $78.5 million in revenues that went uncollected or were collected late.”\nGray hopes that his meeting can convince Boehner, Reid, and Obama to do the same thing now — approve one-off legislation to allow DC to keep using its own funding to run the city. In fact, the House already passed emergency legislation that would do just that. But because House Republicans have used a so-called “piecemeal” approach to refund only the government programs they like, the Senate has thus far blocked any measure that would independently fund one thing without restoring funding to the whole government."} +{"text": "Imagine that its summer, 1959 in a major U.S. city. Let's call it Anytown, USA. Its a sweltering 96 degrees and the asphalt feels like its sticking to your shoes. Mom won't let you back in the house because \"its summer, and you need to go out and play with the other kids\". You're tired of playing Wiffle Ball. You're sunburned and sweat is running down your neck like a faucet. You just can't bear another second of this awful heat wave...and then echoing off of the buildings you hear the familiar jingle of the Mister Softee ice cream truck.\nLike every other kid, you quickly run home to BEG your Mother for a few cents for the ice cream man and quickly chase after him before his truck turns the corner and heads to the next block. Once you flag him down, you get your vanilla soft serve cone with sprinkles...and all is right with the world. Wiffle Ball can resume in 5 minutes. Batter up!\nThe ice cream truck has offered a sweet summer escape for millions of kids of all ages around the world for over 80 years. It doesn't matter what era you live in or what your age is, frozen desserts are a popular commodity and probably always will be. Here in the U.S. the three big names include Good Humor, Jack N' Jill, and of course Mister Softee. The Mister Softee company traces its roots back to West Philly and 1954. Two brothers named William and James Conway started the company with a Chevrolet panel van, a generator, and a soft serve machine. They sold shakes, cones, and sundaes all over Philadelphia and quickly made a name for themselves. Within two years the Conways branched out, ordered a fleet of trucks and spread across the East Coast. By 1958, franchises grew across the states. A British vehicle fleet manager visited the U.S. in 1957 and liked what he saw in Mister Softee, so he worked out a franchise deal and by 1959 the Mister Softee trucks became a familiar sight in West London and Kent, England. Even today, the company manages to turn a tidy profit by supplying a hungry public with the sweets they crave curbside from Chicago to China!\nDuring their heyday in 1959, Mister Softee ordered 800 ice cream trucks from the Boyertown Body Works in Boyertown, Pennsylvania. This company was located some 56 miles from the birthplace of Mister Softee himself, and was known for their long-standing tradition of quality workmanship dating back to 1872. The demands of the fleet business required a vehicle that was sturdy and dependable, but easy on the pocket book. A Ford truck would certainly meet those demands.\n|Boyertown Body Works Factory, 1956. Photo Credit: Coachbuilt.com|\n|Boyertown Body Brochure Cover, 1959|\n|Boyertown Truck Bodies Brochure, 1959|\n|From the Southern Missourian, August 6th, 1961.|\nYou can spot the Civil Defense logo affixed to the side of the Mister Softee truck in this collection of vintage television advertisements. It appears at :48 into this clip.\nWhy the heck am I yammering on about all of this stuff? Sarah and I came across a very unrestored example of a Boyertown-built 1958 Ford commercial truck in its original Mister Softee color scheme this summer at the McClean County Antique Automobile Club car show. Besides the fact that we dig old cars and trucks, this thing spoke volumes about the time period it came from. The artwork, the remains of a Civil Defense logo, the simple saying on the back warning motorists to \"watch for our children\", not just anyone's kids, but \"ours\". Here's a few shots of this time capsule as it appears today.\n|The Civil Defense logo appears on both sides of the truck.|\n|The Civil Defense Logo as it Originally Appeared.|\nThe current owner plans to restore it to functional condition and serve frozen goodies at car shows in central Illinois near old Route 66. Not a bad second life for an old workhorse, eh?\nThat's the strange tale of the American Mister Softee truck in the Cold War era. Being a Gen-X'er, I admire this relic from a time of neighborly responsibility and civic duty. The past seems like a time when people took things seriously, even selling ice cream. It was deeper than just frozen food...it was a sense of community. Could you imagine a business owner willing to lend his or her equipment, time and fuel to the government today to help the public stay alive during an emergency? Maybe. Maybe not.\nIs all of this worth writing a book about? Not really. Is it worthy of a blog post? Perhaps. All this talk about ice cream and the end of the world makes me want a hot fudge sundae. I think I even hear the ice cream jingle outside. Who's got any change?\nLearn more about Where Cars & Atomic Weapons Intersect\nLearn more about Boyertown Body Works\nLearn more about Mister Softee\nLearn more about Civil Defense Supplies"} +{"text": "alization\n )\n torch.cuda.synchronize()\n except Exception as e: # warmup must never break serving; real path will recompile\n import logging as _lg\n\n _lg.getLogger(\"fireworks\").warning(\"[fp8-prefill] scorer warmup skipped: %r\", e)\n\n\n# Fixed compile-time width for the metadata kernel below. The kernel masks with\n# `i < B`, so a single oversized constant covers every prefill batch size with\n# ONE Triton specialization (B can never exceed max_batch_size, far below this).\n# Keeping it constant — and marking B do_not_specialize — means warmup compiles\n# the exact spec the hot path uses, so no kernel JIT-compiles on the first real\n# request (previously B=1/MAX_B=2 single-sequence traffic missed the B=2 warmup).\n_CU_K_MAX_B = 1024\n\n\n@triton.jit(do_not_specialize=[\"B\"])\ndef _build_cu_k_kernel(\n seq_lens_ptr, # [total_q] int (per-query causal history length)\n cu_q_ptr, # [B+1] int32 (query prefix sum)\n cu_k_out_ptr, # [B+1] int32 (written: causal-history prefix sum)\n B,\n MAX_B: tl.constexpr,\n):\n \"\"\"Fuse the per-seq causal length gather + prefix sum into one launch.\n\n Replaces ``lk = seq_lens[cu_q[1:]-1]; cu_k = pad(lk.cumsum(0))`` (an index op,\n a zeros fill, and a cumsum = 3 kernels) with a single small kernel. Each\n sequence's causal length is the causal length of its last query.\n \"\"\"\n i = tl.arange(0, MAX_B)\n valid = i < B\n q_end = tl.load(cu_q_ptr + i + 1, mask=valid, other=0)\n lk = tl.load(seq_lens_ptr + q_end - 1, mask=valid, other=0).to(tl.int32)\n lk = tl.where(valid, lk, 0)\n csum = tl.cumsum(lk, axis=0)\n tl.store(cu_k_out_ptr + i + 1, csum, mask=valid)\n if tl.program_id(0) == 0:\n tl.store(cu_k_out_ptr, 0)\n\n\n_STATIC_CU_PAGE_CACHE: dict = {}\n\n\ndef _static_cu_page(B: int, msb: int, device) -> torch.Tensor:\n \"\"\"Static 128-page prefix sum [0, msb, 2*msb, ...] for a uniform-padded batch.\"\"\"\n key = (int(B), int(msb), device)\n t = _STATIC_CU_PAGE_CACHE.get(key)\n if t is None:\n t = torch.arange(B + 1, dtype=torch.int32, device=device) * msb\n _STATIC_CU_PAGE_CACHE[key] = t\n return t\n\n\n@triton.jit\ndef _assemble_pages_kernel(\n block_tables_ptr, # [B, max_blocks] int32 (64-token physical block ids)\n layer_cache_ptr, # [num_blocks, block_size, D] fp8\n out_ptr, # [B*msb, ratio*block_size, D] fp8 (contiguous 128-token pages)\n stride_bt_b,\n stride_bt_col,\n stride_lc_blk,\n stride_lc_tok,\n stride_out_page,\n stride_out_tok,\n MSB: tl.constexpr,\n RATIO: tl.constexpr,\n BLOCK_SIZE: tl.constexpr,\n D: tl.constexpr,\n):\n \"\"\"Assemble contiguous 128-token pages from the 64-token paged index-K cache.\n\n One program per (sequence, sparse-block, half): copies one 64-token physical\n block into the right half of the output page. Replaces the ATen\n ``layer_cache[bt]`` int64 advanced-index gather (``vectorized_gather_kernel``),\n which ran at ~134 GB/s; this is contiguous int32 and hits near HBM bandwidth.\n Padding/invalid block ids clamp to block 0 and are causally masked downstream.\n \"\"\"\n pid_b = tl.program_id(0)\n pid_sb = tl.program_id(1)\n pid_half = tl.program_id(2)\n\n phys = tl.load(block_tables_ptr + pid_b * stride_bt_b + (pid_sb * RATIO + pid_half) * stride_bt_col)\n phys = tl.maximum(phys, 0)\n\n tok = tl.arange(0, BLOCK_SIZE)\n d = tl.arange(0, D)\n src = layer_cache_ptr + phys * stride_lc_blk + tok[:, None] * stride_lc_tok + d[None, :]\n vals = tl.load(src)\n\n out_page = pid_b * MSB + pid_sb\n dst = out_ptr + out_page * stride_out_page + (pid_half * BLOCK_SIZE + tok[:, None]) * stride_out_tok + d[None, :]\n tl.store(dst, vals)\n\n\ndef _maybe_fp8_prefill_score_select(\n idx_q,\n index_k_cache,\n layer_local_idx,\n block_tables,\n q_seq_len_cumsum,\n q_largest_seq_len,\n seq_lens_per_q,\n sparse,\n kv_largest_seq_len: Optional[int] = None,\n _bench_scorer_only: bool = False,\n):\n \"\"\"fp8 tcgen05 prefill scorer (varlen/batched, fp8 cache); else None (Triton).\n\n ``_bench_scorer_only`` (benchmark hook): run page assembly + cu_k/cu_page prep, then\n return a zero-arg closure that calls ONLY the fp8 score kernel (no select / no re-prep)\n so the benchmark can time the scorer in isolation via cudagraph + CUDA events.\n\n Sync-free: every sequence is padded to a uniform 128-page count\n ``msb = block_table_width / ratio`` so the page gather is a single\n vectorized fancy-index + reshape and all metadata is static or device-only.\n Padding/invalid blocks clamp to page 0 and are causally masked, so they\n never affect the result.\n \"\"\"\n if not _FP8_PREFILL_SCORE_ENABLED:\n return None\n mod = _fp8_prefill_module()\n if mod is None or idx_q.dtype != torch.bfloat16:\n return None\n total_q, H, D = idx_q.shape\n layer_cache = index_k_cache[layer_local_idx, :, 0] # [num_blocks, page, D]\n ratio = sparse.sparse_block_downshard_ratio\n block_size = sparse.kv_cache_block_size\n "} +{"text": "A Human Rights Watch investigation released at the United Nations on Wednesday reports that Sudanese army troops raped at least 221 women and girls during a 36-hour attack on the Darfur town of Tabit that began on Oct. 30.\nThe report documents 27 first-hand reports of rape, 194 other credible accounts of rape and even confessions of two soldiers who had participated in the attacks that superior officers ordered them to “rape women.” Sudanese authorities then launched a cover-up, Human Rights Watch details, which included detaining and torturing Tabit residents for telling the truth about what happened.\nSudan Foreign Minister Ali Ahmed Karti categorically denied reports of a mass military rape in Tabit during an interview with TIME on Feb. 4, when he was in Washington as a guest of the National Prayer Breakfast.\nTIME asked him about reports that his government’s armed forces are primarily targeting civilians and not combatants. Any claims of rape in Tabit, he claimed, are lies invented to keep people in refugee camps, where NGOs can make money. Tabit has been rebuilt, he said, with modern schools, health care and police centers.\n“Nobody can expect a village like Tabit which had been a home for some hundreds of the soldiers there, they have their homes there, they have their wives there, and they are living in a camp near that place, no one will expect those soldiers will come and rape by hundreds in that village,” Karti said. “Not only the police is there, but the army is there, and it will protect you against anyone who will infringe your security.”\nIf NGO donors see the situation in the villages as unstable, Karti added, they will keep donating. “This is cutting throats of so many,” he said.\nMedia in Sudan, Karti continued, “have every right to go anywhere and talk about anything that may be causing atrocities to their homeland and people, so if nothing is coming out of that, that means that is only portraying the country in a way that will not at all help somebody like me to convince those who are in charge of a decision like removing Sudan from the list of terror.”\nSudan is one of three countries on the United States’ list of states that support terrorism, alongside Syria and Iran. Karti and the Sudanese government have been lobbying Washington to get Sudan removed from the list.\nSexual violence has historically been used as a weapon of war in the region—mass rapes were common in the Darfur massacre starting in 2003 and before that in the 1994 Rwandan genocide.\nUntil Wednesday’s Human Rights Watch report, international observers had not been able to adequately investigate what happened in Tabit. The African Union United Nations Mission in Darfur (UNAMID) failed to find evidence that the rapes happened at all when they were allowed to visit Tabit for a few hours on Nov. 9—government forces prevented peacekeepers from carrying out a credible investigation, Human Rights Watch and other activists explain, and days later Sudan shut the UNAMID’s human rights office in Khartoum before expelling two senior UN officials from the country altogether. The special prosecutor for crimes in Darfur, appointed by the Sudanese government, who visited Tabit on Nov. 20, also concluded that no crimes had been committed.\nThe details of the Human Rights Watch report are damning. Throughout the town, the report says, the pattern of the attacks was similar: armed and uniformed Sudanese military personnel went house to house, beating the men, and then raping women and girls, sometimes mothers with daughters and sisters with sisters. Survivors, including these two below, shared their stories with Human Rights Watch:\n“Khadamallah, in her mid-teens, said that soldiers came to her home at about 10 p.m. on Friday night: ‘I was in the house with my younger siblings. We were sleeping when the soldiers came into our house. … They entered the house. I took firewood and hit one of them. One of them dragged me out of the room. … They raped me. … Two of them held me down while the other one raped me. Many others who were there were standing around. … And then they brought me back [to my room], tied me [to the bed], and left.'”\n“Mahassan, in her twenties, said that she and three friends were raped by soldiers after sunset. They were in her home preparing perfumes for a wedding when about 10 soldiers entered the compound, dragged the women outside, and raped each of them multiple times: ‘[The soldiers] said that they were looking for a missing soldier. … They searched the compound. … [T]hen they came towards us. They grabbed me and they grabbed my friend. The other soldiers took the other girls in a different direction. They took [me and my friend outside of the compound] towards the school. They raped both of us on the street. … Three of them raped me and three of them raped my friend. … They raped us all night. That’s why I’m still sick. I cannot sit down for a long time like I could before.'”"} +{"text": "Me? I'd always have the seven meals (for two) as I regard eating out as a social event rather than a stomach-filling one and following a visit to our nearest Michelin priced restaurant, I'm still happy with the choice I'd make.\nThe restaurant is based in a large villa just five minutes outside of Vence our nearest town and there were two things I was particularly keen to see; the decor which I was sure would be clean, modern and functional, and how Christophe presented his food. In Tourrettes, virtually every course was sprinkled with edible flower petals which gave the dishes a very colourful feel, possibly to give the impression that there was more on the plate than there actually was.\nI had joked that we might have to go for a burger afterwards as my memory was that whilst his food was very good, there wasn't much of it on the plate - true nouvelle cuisine! I needn't have worried.\nHowever, before we get to the meal itself, I had asked J to 'dress up' for dinner and true to form she appeared in her fox fur (the RSCPCA is not one of her chosen charities !). We drove into Vence and I entered our local Best Western, a small, indistinct little hotel on the edge of town.\n'Oh, how nice', she said in a voice which betrayed her utter disappointment.\n|Christophe at work|\nAfter parking the car and really trying to convince her that we were indeed going out for Valentines Day in a Best Western, I relented and drove on to Les Bacchenales.\nA nice log fire was burning and as soon as we were seated, a waiter presented a bottle of sparkling water, persuaded us to have the house cocktail (apple juice, champagne and candied rose petals) and pointed out the menu which was fixed and which I was reluctant to look at it as I was sure, fish would feature prominently. And it did.\nAnother waiter appeared and produced hot bread sticks with a dish of parsley pesto and parmesan which was a nice appetiser. Then another waiter provided us with two small bowls (like sake bowls) and announced that the three minute white specs were a special type of lard. He then proceeded to pour a thick beef soup into the bowls and pointed out that the accompanying spoons had a black truffle butter on them which should be stirred into the soup.\nThen the confusion began. The spoons were almost flat and any attempt to try and 'spoon' the soup out of the bowls ended with dribbles going everywhere. Should we just drink out of the bowls? I did, and J followed my lead but it was clear later on when other diners started their meal that the spoons should indeed have been used!\nNeither of these dishes (according to J) were on the menu which I still hadn't looked at - there was no point. What was going to be served, would be served. If fish arrived, I would do my best to eat it, after all it was costing me a small fortune.\nThen the fish arrived. A melange (mixture) of monkfish, prawn meat and clams, surrounded by sweet red onion petals and a small amount of salad leaves. Now I have eaten monkfish and prawns before but generally I choose not to. I also adore clam chowder but have never eaten a clam out of its shell.\nThe monkfish and prawn seemed hardly cooked but I ate it and I even tried a clam before depositing the rest on J's plate. Thankfully I was able to wash down the clam taste with some nice white wine. As my cousin Sue would say, 'what are you like'.\nI sat back enjoying the log fire and the quiet, reserved ambience thinking that I could now relax - the fish course was gone, but Christophe appeared at the table and proudly announced that the next course was Corsican Sea Bream. Aaaaaagh!\nActually, it wasn't at all bad. A meaty fish sprinkled with small cubed radish. I ate it. I wasn't too keen, I have to say, but I ate it. It's amazing what you'll do when you know it's costing the equivalent of a monthly wage of one of J's teachers in Kenya.\nMore white wine and then the main course was produced - a small piece of fillet steak poached in beetroot stock and resting on beetroot crisps and something else I didn't recognise the look or taste of. The meat looked distinctly uncooked but it was the colour of the beetroot which had made it look raw. Despite the fact that the knives were so blunt they were unable to cut the meat cleanly, it was so tender that the merest pressure caused it to fall apart - it was delicious, especially when washed down with a nice glass of claret.\n|Flower petals !!!|\nAs we drove home, I reflected on the fact that I am quite obviously a total pleb. I love good food but given a choice of a homemade quiche and frites in the Midi or a meal at Les Bacchenales, I know which I would go for, every time. Seven times actually!"} +{"text": " if D != 128 or block_size != 64 or ratio != 2 or layer_cache.dtype != torch.float8_e4m3fn:\n return None\n device = idx_q.device\n B = block_tables.shape[0]\n max_blocks = block_tables.shape[1]\n # Pad block-table width to even so consecutive 64-token blocks pair into 128-token pages.\n if max_blocks % ratio != 0:\n block_tables = torch.nn.functional.pad(block_tables, (0, ratio - max_blocks % ratio))\n max_blocks = block_tables.shape[1]\n\n # Dynamic active-KV slicing: the block table is statically sized to the\n # context limit (e.g. 131k/256k -> msb 1024/2048), so a short 32k prefill\n # would still score/assemble the full grid. Slice to the live KV span\n # (kv_largest_seq_len, a host int -> no sync), cutting score CTAs, page\n # assembly, and the select range to the active blocks (~1.7x at 32k, exact\n # parity). See INDEXER_SCORER_OPT.md.\n if kv_largest_seq_len is not None:\n actual_msb_raw = max(1, min(triton.cdiv(kv_largest_seq_len, ratio * block_size), max_blocks // ratio))\n # _select_kernel uses tl.arange(0, MSB) which requires MSB be a power of 2.\n actual_msb = min(_ceil_power_of_2(actual_msb_raw), max_blocks // ratio)\n block_tables = block_tables[:, : actual_msb * ratio]\n max_blocks = block_tables.shape[1]\n\n msb = max_blocks // ratio # uniform 128-page count per seq (== history sparse blocks)\n # Guard (sync-free, host ints): super-page scorers (e.g. fp8_indexer_opt, N=256) pack\n # PAGES_PER_SEQ_MULTIPLE consecutive 128-pages into one TMA super-page indexed by\n # page_begin // mult (page_begin = b*msb). If msb is not a multiple of mult, a super-page\n # would straddle a sequence boundary (scoring one seq vs another's K). msb is a power of 2,\n # so only the degenerate msb==1 (<=128-token seqs) under batched super-page use trips this\n # -> fall back to Triton (return None) rather than fail the request; it handles tiny shapes\n # anyway. Baseline (mult=1) never trips. B==1 is always safe (one sequence, no straddle).\n if B > 1 and msb % getattr(mod, \"PAGES_PER_SEQ_MULTIPLE\", 1) != 0:\n return None\n use_fused = _prefill_fp8_use_fused(total_q, msb)\n fused_mod = _fp8_prefill_fused_module()\n if fused_mod is None:\n use_fused = False\n # Compile scorers once (covers the startup-warmup gap; shape-dynamic).\n _warmup_prefill_scorers(device, H, D, ratio, block_size, mod, fused_mod)\n # Short-prefill guard (sync-free): the cute kernel only beats Triton above a\n # work threshold. block_tables is [num_seqs, max_num_blocks_per_seq] (per-batch),\n # so msb tracks the actual KV history -> the proxy total_q * msb * heads is\n # correct for both full prefill AND chunked (small chunk, large history).\n # All factors and the threshold are host-known, so the guard adds no sync.\n if total_q * msb * H < _FP8_PREFILL_MIN_WORK:\n return None\n topk = min(sparse.sparse_topk_blocks, msb)\n\n # Sync-free page assembly: pair consecutive 64-token blocks into contiguous\n # 128-token pages with a single custom Triton kernel (one program per\n # (seq, sparse-block, half)). This replaces the ATen ``layer_cache[bt]`` int64\n # advanced-index gather, which is launch/index-bound (~134 GB/s); the custom\n # kernel does contiguous int32 copies near HBM bandwidth (~15x faster).\n # Padding/invalid entries clamp to block 0; those pages are causally masked.\n # Reused scratch (grow-on-demand, per shard) instead of a per-layer\n # torch.empty: _assemble_pages_kernel fully overwrites it each call, so\n # reuse is safe and avoids the allocator churn (num_alloc_retries).\n k_pages = mod.get_prefill_scratch(\"k_pages\", (B * msb, ratio * block_size, D), layer_cache.dtype, device)\n _assemble_pages_kernel[(B, msb, ratio)](\n block_tables,\n layer_cache,\n k_pages,\n block_tables.stride(0),\n block_tables.stride(1),\n layer_cache.stride(0),\n layer_cache.stride(1),\n k_pages.stride(0),\n k_pages.stride(1),\n MSB=msb,\n RATIO=ratio,\n BLOCK_SIZE=block_size,\n D=D,\n )\n\n # Per-seq causal history prefix sum, fused into a single kernel (no host sync).\n cu_q = q_seq_len_cumsum.to(torch.int32)\n cu_k = torch.empty(B + 1, dtype=torch.int32, device=device)\n # B <= max_batch_size << _CU_K_MAX_B; the kernel masks with i < B so the fixed\n # width is correct and gives a single warmup-covered Triton specialization.\n _build_cu_k_kernel[(1,)](seq_lens_per_q, cu_q, cu_k, B, MAX_B=_CU_K_MAX_B)\n # cu_page is the static 128-page prefix sum (B+1 of arange*msb); cache it so the\n # hot path doesn't relaunch an arange + scalar-mul every call.\n cu_page = _static_cu_page(B, msb, device)\n max_seqlen_q = int(q_largest_seq_len) # host int already available (no sync)\n max_seqlen_k = msb * (ratio * block_size) # static upper bound -> max_k_tiles == msb\n\n if _bench_scorer_only:\n # Benchma"} +{"text": "The Phillie Phanatic is the star of children's books and as a result has turned his love of reading into the exciting Be a Phanatic About Reading literacy program presented by Comcast. Founded in 2004, the program encourages students in grades K-8 to read for a minimum of 15 minutes a day to improve their literacy skills. Area teachers can enroll their classrooms now and join the nearly 50,000 already reading with the Phanatic!\nFor information on how your classroom can be a part of Be a Phanatic About Reading during the 2015-2016 school year, email firstname.lastname@example.org.\nThe program is divided into two levels: one for children in grades K through 3 and the other for grades 4 through 8. Children will be asked to spend a minimum of 15 minutes a day reading whatever book they select. Younger children will be given Phanatic coloring sheets to color in once they have attained their goal while older children will be asked to record the book they read and write a few sentences on their favorite part of the book. The Phillie Phanatic will make a special visit to the top performing schools. To qualify for a Phanatic visit, children will report their progress to their teachers who in turn will tell the Phillies how the children have done in their reading endeavors. From that progress report, schools will be selected for a school visit.\nThe Phanatic does not want you to miss out on the fun that the 2015/16 Be a Phanatic About Reading program has to offer. For information on how to register, e-mail email@example.com or call 215-463-1000.\nClassrooms have the opportunity to win a special visit from the Phillie Phanatic. To qualify for a Phanatic visit, children will report their progress to their teachers who in turn will tell the Phillies how the children have done in their reading endeavors. From that progress report, the top performing classrooms/schools will be selected for a Phanatic visit. Visits will be scheduled between January and May.\nOn Saturday, May 21, 2016 during the 3:05 p.m. game against the Atlanta Braves, The Phillies and the Phanatic will host their annual Be a Phanatic About Reading Night presented by Comcast. Fans 14 and under will receive a copy of the The Phillie Phanatic's Galapagos Gang, the newest book in his children's book series. Students, teachers and parents involved in the Be a Phanatic About Reading program will receive an $8 discount off tickets in locations regularly priced $53 and under.\nAs part of the night, the Phanatic will celebrate readers selected from the program during a special onfield pregame ceremony.\nFans can help children across the region enjoy reading a little bit more by donating a new or gently used children's book, benefitting PHILADELPHIA READS, when they enter the gates.\nThis program has been terrific for reluctant readers. It has been especially rewarding for students that were not motivated readers. It has been rewarding to watch these young readers become more fluent readers.\nI used the reading program as an incentive to motivate my students to read. The program was just, simply, fun! Everyone loves the Phanatic and anything to do with him.\nI have used the program since September. My students have actively kept the reading log to show their reading. Thank you very much. I will look forward to doing this awesome program again next year.\nI would like to commend you and the Phillies organization for taking part in such an important area of student development. As a Reading Specialist, I am thrilled to see organizations that kids so passionately care for develop programs to encourage the whole child! I am equally as impressed with the knowledge of reading research that is included in your letter.\nThank you for providing my class with this opportunity. They are really enjoying the challenge. I am proud to see that I am seeing many of my students showing a greater interest in reading.\nIf you don't see your School District, enroll your school and your district will be added to the list!\nThe Phanatic's favorite thing to do is to cheer on the Phillies but reading a good book is a close second. The Phanatic is always looking for a new book that he can curl up with and welcomes your suggestions. Share what you like to read by emailing firstname.lastname@example.org with the book's title, author and a description of why you love the book. If you do, you could find your recommendation on the Phanatic's Book Corner.\nMake sure to check out all the books in the Phanatic book series including the newest book, \"The Phillie Phanatic's One-Man Band.\" The book details how the Phillie Phanatic and his musical friends came to the rescue to keep the Phillies and their fans rockin' and rollin' during another memorable night at the ballpark.\nTo learn how to enroll your school in the 2015/16 Be a Phanatic About Reading program presented by Comcast email email@example.com or call 215-463-1000."} +{"text": "Lately, Republican candidates are taking shots at Mitt Romney because in his private equity life he had some failures. Democrats have made no secret that they are going to go after Romney because in his private equity life, he had to shut down some unprofitable plants to save businesses. Heaven forbid, other businesses he invested in went belly up. I am not here to defend or advocate for any particular candidate, but I do think that Americans need a much better perspective on failure.\nWhy are we so hard on failure?\nOne of the things the start up community does is embrace failure. When a company goes under, you learn from it. I have invested after tax dollars that were hard to earn into many companies, and not all of them have worked out. One went belly up. One is marginal, one is on fumes, and the rest are operating, but like any company they have challenges. I have had some exits too. But, even those had many twists and turns along the way and the company could have gone under.\nBeing in business isn’t easy. It’s risky. If it were easy, we’d all leave our cushy government and corporate jobs and go on our own and start entrepreneurial companies. But, statistics show that fewer than 30% of all start up businesses make it ten years. Starting a business isn’t rocket science, but it’s a heckuva lot tougher. But, encouraging people to take that risk leads to gigantic gains for our entire society.\nTo give you a little perspective, you need to know what Romney engaged in. He was in what is called Private Equity (PE). Most people confuse Private Equity with Venture Capital (VC). Venture invests in newer companies that have a new technology. Private Equity invests in an existing company that has been operating and reinvents that company. Usually, PE firms use a lot of leverage (debt), to generate returns. Extra leverage on the balance sheet magnifies the rate of return if the company can afford the debt load. If the company can’t afford it, it either restructures again or goes bankrupt. The reason it’s called Private Equity is that the money for the fund comes from private sources, not government sources. The companies that the PE firm buy and run are not listed on public markets, but closely held. The big payoff for PE comes when they spin the companies back out into the open market through an IPO or acquisition. Private Equity firms take risk.\nWith the assumption of risk comes the chance that occasionally things won’t turn out for the best. Sometimes, companies the PE firm buys fail. There can be a huge cadre of reasons for that, and if you listen to a PE guy talk about their failures it generally centers around some of the business decisions the firm made to engage with the marketplace. Sometimes, it’s even a bad market.\nToday, Eric Lekofsky($GRPN) wrote an interesting piece on one of his firms, Innerworkings($INWK). Innerworkings has been a very good business, but for awhile the stock cratered. The decline didn’t have a lot to do with the company operations, but demand for the line of business that the company was in. Printing decreased significantly in 2008. Not a lot Innerworkings could do to avoid the tsunami of the banking crisis. Other firms ($CME) were directly affected too, and we know how that turned out.\nHow firms responded to the crisis and how they were managed after says a lot about them. It’s also reflected in their stock price. Look at the following chart and you would have to conclude management did a helluva job, even with the failure in 2008-09. They were down 88%!\nWhat do you think INWK’s management team did in December of 2009? My guess is they embraced their failure and learned from it. Failure was accepted and put behind them. They adapted and then ran with a new business plan. No doubt, Mr. Private Equity Romney was faced with similar circumstances with companies he had poured money into. Sometimes he failed, but the scorecard says he made the right decisions more often than not.\nIn the case of the candidates that are lining up to take shots at him, Gingrich, Santorum, Paul, Huntsman and Obama, only one, Jon Huntsman, has run a real live on the ground business. The rest are political operatives and we know that politicians don’t know very much when it comes to analyzing profit/loss businesses. (think Solyndra, Fannie Mae $FNM, Freddie Mac)\nIn America, we need to learn to learn how to appropriately deal with failure. That doesn’t mean we celebrate it. It does mean we encourage people to go out into the world and take calculated risks to try and create businesses that make society more productive. In the process, some will hit, and their founder will get rich. Most will fail, but we learn from those failures, pick up the pieces and start again. Lashing out at people that have had failures make us more risk averse and less willing to take a chance. That sort of attitude doesn’t lead to a better American society."} +{"text": "rk hook: prep (page assembly, cu_k/cu_page) is done above; return a\n # zero-arg closure that runs ONLY the score kernel (no select) for cudagraph +\n # CUDA-event scorer-isolated timing.\n return lambda: mod.fp8_prefill_block_scores_varlen(\n idx_q, k_pages, cu_q, cu_k, cu_page, max_seqlen_q, max_seqlen_k\n )\n\n if use_fused:\n return fused_mod.fp8_prefill_block_select_varlen(\n idx_q,\n k_pages,\n cu_q,\n cu_k,\n cu_page,\n max_seqlen_q,\n max_seqlen_k,\n topk=topk,\n init_blocks=sparse.sparse_init_block,\n local_blocks=sparse.sparse_local_block,\n )\n\n fp8_scores = mod.fp8_prefill_block_scores_varlen(idx_q, k_pages, cu_q, cu_k, cu_page, max_seqlen_q, max_seqlen_k)\n # Scores layout is kernel-dependent: the baseline writes [H, total_q, msb] (block axis\n # contiguous); the optimized kernel writes [H, msb, total_q] (query axis contiguous,\n # flagged by SCORES_QUERY_CONTIGUOUS). Feed _select_kernel the matching strides. The\n # contiguous-block read (~1.8x select, INDEXER_SELECT_OPT) holds for the baseline; for\n # the opt layout adjacent (q, h) programs still read coalesced across the query axis.\n if getattr(mod, \"SCORES_QUERY_CONTIGUOUS\", False):\n sc_q_stride = fp8_scores.stride(2) # query axis (== 1)\n sc_block_stride = fp8_scores.stride(1) # msb axis (== total_q)\n else:\n sc_q_stride = fp8_scores.stride(1) # query axis (== msb)\n sc_block_stride = fp8_scores.stride(2) # msb axis (contiguous, == 1)\n selected = torch.full((total_q, H, topk), -1, dtype=torch.int32, device=device)\n _select_kernel[(total_q, H)](\n fp8_scores,\n seq_lens_per_q,\n selected,\n sc_q_stride, # q/batch axis\n fp8_scores.stride(0), # head axis\n selected.stride(0),\n selected.stride(1),\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n TOPK=topk,\n MSB=msb,\n INIT_BLOCKS=sparse.sparse_init_block,\n LOCAL_BLOCKS=sparse.sparse_local_block,\n STRIDE_SC_SB=sc_block_stride,\n num_warps=1,\n )\n return selected\n\n\ndef _fused_score_select_prefill(\n idx_q: torch.Tensor,\n index_k_cache: torch.Tensor,\n layer_local_idx: int,\n block_tables: torch.Tensor,\n positions: torch.Tensor,\n q_seq_len_cumsum: torch.Tensor,\n q_largest_seq_len: int,\n seq_lens_per_q: torch.Tensor,\n sparse: MiniMaxM3SparseAttentionConfig,\n kv_largest_seq_len: Optional[int] = None,\n) -> torch.Tensor:\n fp8_sel = _maybe_fp8_prefill_score_select(\n idx_q,\n index_k_cache,\n layer_local_idx,\n block_tables,\n q_seq_len_cumsum,\n q_largest_seq_len,\n seq_lens_per_q,\n sparse,\n kv_largest_seq_len=kv_largest_seq_len,\n )\n if fp8_sel is not None:\n return fp8_sel\n\n T, H, D = idx_q.shape\n max_blocks = block_tables.shape[1]\n ratio = sparse.sparse_block_downshard_ratio\n msb = triton.cdiv(max_blocks, ratio)\n block_size = sparse.kv_cache_block_size\n topk = min(sparse.sparse_topk_blocks, msb)\n\n layer_cache = index_k_cache[layer_local_idx, :, 0]\n\n block_q = _ceil_power_of_2(_PREFILL_SCORE_BLOCK_Q)\n q_chunks = max(1, triton.cdiv(q_largest_seq_len, block_q))\n target = max(\n 1,\n min(_SCORE_MAX_CHUNKS, _PREFILL_SCORE_TARGET_CTAS // max(1, block_tables.shape[0] * H * q_chunks)),\n )\n num_chunks = min(msb, 1 << (target.bit_length() - 1))\n sparse_block_tokens = block_size * ratio\n block_n = max(sparse_block_tokens, _PREFILL_SCORE_BLOCK_N)\n block_n = triton.cdiv(block_n, sparse_block_tokens) * sparse_block_tokens\n block_d = max(32, triton.next_power_of_2(D))\n\n scores = torch.full((T, H, msb), -1e30, dtype=torch.float32, device=idx_q.device)\n _prefill_score_kernel[(block_tables.shape[0], H, q_chunks * num_chunks)](\n idx_q,\n layer_cache,\n block_tables,\n positions,\n q_seq_len_cumsum,\n scores,\n idx_q.stride(0),\n idx_q.stride(1),\n positions.stride(0),\n layer_cache.stride(0),\n layer_cache.stride(1),\n block_tables.stride(0),\n scores.stride(0),\n scores.stride(1),\n D=D,\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n NUM_KV_CHUNKS=num_chunks,\n BLOCK_Q=block_q,\n BLOCK_D=block_d,\n BLOCK_N=block_n,\n )\n\n selected = torch.full((T, H, topk), -1, dtype=torch.int32, device=idx_q.device)\n _select_kernel[(T, H)](\n scores,\n seq_lens_per_q,\n selected,\n scores.stride(0),\n scores.stride(1),\n selected.stride(0),\n selected.stride(1),\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n TOPK=topk,\n MSB=msb,\n INIT_BLOCKS=sparse.sparse_init_block,\n LOCAL_BLOCKS=sparse.sparse_local_block,\n )\n return selected\n\n\ndef _attention_reuse(meta: \"IncrAttentionMeta"} +{"text": "If Alexis de Tocqueville were to have written Democracy in America today, he might have shared an entirely different perception of America. He would have found too many of our citizens suffering from the depression of our age--\"Learned helplessness.\" Rather than believing that they have what it takes to invent their own future and claiming the mantle of self-reliance and earned opportunity that made America great, they look to government for support.\nAmerica was built on \"inalienable,\" God-given rights that for the first time in recorded history affirmed that all men are created equal. An individual's fate was not determined by who his father or country of origin was, but by his own freely chosen pursuit of his own ambitions.\nIn Thomas Jefferson's original draft of the Declaration of Independence, he used the word \"property\" instead of \"pursuit of happiness.\" Americans wanted the freedom to apply their own talents, character and initiative to produce the unequal outcomes they earned in their own \"pursuit of happiness.\" As a result, we've beckoned to those in the world willing to dream to come, work hard, and share in the limitless opportunities our country offered. And they came.\nAmericans railed against confiscatory taxes. They were a strong, confident people who unleashed the most powerful economy in history. They weren't enticed by the egalitarian spread of socialism and communism. They didn't hate the rich; they wanted to join their ranks. Why? Because they knew of millions who had bettered their lot in this great country.\nWhile our mainline news focuses on negative news and what's wrong with America and many churches clamor for social justice and policies of redistribution, the American Dream is sold as an outdated myth! \"Experts\" say that \"trickle-down\" economics doesn't work.\nBut they can't refute the facts that a growing economy does raise all boats and that becoming \"rich\" in America is not a closed private club. Empirical evidence shows that people still move up and down the earnings ladder. Michael Cox and Richard Alm of the Federal Reserve Bank of Dallas published \"By Our Own Bootstraps\" analyzing the income of \"poor\" Americans over time.\n“The University of Michigan Panel Survey of Income Dynamics tracks the income of 3,725 individuals...for the 17 years from 1975 to 1991. And the U.S. Treasury similarly tracked income patterns over a nine-year period--1979 to 1988--using an entirely different database, the income tax returns from 14,351 representative households. Both tracking studies reveal overwhelming upward mobility for almost all Americans. In the Michigan study, only 5 percent of those in the bottom quintile in 1975 were still there in 1991. In contrast, over 80 percent of this original 'poor' segment made it to the middle class or better.... Indeed, 29 percent of them reached the top quintile. To generalize from this study, over several decades only 1 out of 20 'poor' Americans will stay poor, while 13 will become 'middle class' and 6 will become 'rich.'\"\nThey continue: \"Similarly, the Treasury study showed that 86 percent of the bottom quintile moved to a higher one, with two-thirds reaching the `middle class’ or above, and almost 15 percent making it to the top quintile. Since the Michigan study covered a period almost twice as long as the Treasury study, it’s not surprising that its results were more dramatic. Upward mobility is an ongoing process that gathers momentum with time. The message is clear: This is the land of opportunity, and if you're not getting yours, don't complain. Go to school.\"\nTry a more recent study of income mobility during the Clinton/Bush years. The U.S. Treasury Study--\"Income Mobility in the US from 1996 to 2005\"--found that those with very high incomes in 1996--the top 1/100 or 1 percent--had their incomes halved by 2005. They were not getting ahead at the expense of others; many were making less. Those in the top 20% increased 10 percent. Those originally in the bottom 20 percent saw a 91 percent increase in income. In short, there is no permanent over-class, and once \"poor\" Americans do improve their position over time.\nI and others are working with the Napoleon Hill Foundation to update his message for a new generation. Napoleon Hill's \"Think and Grow Rich\" was a tonic for those dreamers who were willing to find their own way out of the Great Depression. What he said then could be said today:\n\"There is a theory which pops up again and again that the opportunities for success are fewer not what they were in the past, that our nation has reached the plateau of its success, that the world is dominated by people who already have money, and that success is a finite realm already filled to capacity. This is nothing more than a theory. There is no scarcity of opportunity. There is only a shortage of imagination. Countless people gain new wealth every year, whether the economy is prospering or ailing. The only limits they recognize are those within their own minds. Anyone who cries, 'no opportunity' is simply issuing an alibi for his or her own unwillingness to assume responsibility and use imagination. Offering a useful good or service is just as valuable now as it ever was, and new areas in which to do so open up every day.\"\nPresident Obama may be making it tougher with policies that entice people to depend more on the government and take more from those who have applied their own initiative and drive to succeed. But the man in the White House does not determine your future. You do. Spend less time watching and waiting on Washington and get busy finding your place in America's still promising future!"} +{"text": "Live in San Francisco? Don’t put your compostables in your green bin? You should. Don’t have a green bin? Ask and it shall be delivered!\nMore information on San Francisco’s composting program.\nAnd look! what happens to all those kitchen bits and garden bits and bones and wood and stuff. COMPOST! That’s right, and once a year you can stop on by and get some for free. (Even if you don’t recycle your compostables. …)\nCompost program comes full circle Saturday\nYou’re allowed up to two 5-gallon buckets’ full.\nSaturday 9 Jun 2007 8 a.m. to noon\n– City Dump (S.F. Recycling and Disposal) at 401 Tunnel Ave. (Take your hazardous waste down while you’re at it.)\n– John McLaren Park, at the parking lot of the Jerry Garcia Amphitheater, at John F. Shelley Drive and Mansell Street.\n– West Sunset Playground, at Quintara Street and 40th Avenue\n– Herbst Road (runs along the east side of the zoo) and Zoo Road.\nThe raw materials, about 300 tons a day from San Francisco and Oakland, arrive at the plant near Vacaville in large trucks. (San Francisco’s 2,100 restaurants contribute a large part of the San Francisco materials, including everything from broccoli to fish bones, and their compostable paper waste as well.)\n300 tons A DAY! How cool is that?\nReed encourages us all to use our green bins for yard trimmings or food scraps we don’t compost ourselves. You can purchase special biodegradable plastic bags to hold food scraps, but Reed says he’d just as soon you put them in paper bags, milk cartons or other food boxes. Fold over the tops.\nExcept that that’s something we can’t do because compostables are soggy and the bottom would fall out of any paper bag before we got it down the steps to the nearest green bin. (That bin actually “belongs,” I think, to the publishing house at the bottom of the steps, but they don’t seem to mind and always have room to spare.)\nHow about the City making it easier for folks like us to do this green bin thing? They want higher participation, but ’tain’t easy for some of us.\nHere’s our current operation.\n- Large glass measuring bowl with handle on kitchen counter. Stuff goes in that.\n- After meals, dump stuff from measuring bowl into menudo pot lined with plastic grocery bag. Pot is stashed on the floor at far end of kitchen (not that we have far to go) next to the other recyclables &c. Put lid back on pot to minimize funky smells.\n- When menudo pot gets a certain amount of compostables in it or gets too funky, put grocery bag into even bigger (and more leak-proof) shopping bag (a bright garish giveaway bag from Pier 39) and schlep it down the steps to the green bin along with the yard clipping bits (this time of year mostly consisting of dropped unripened figs that scatter across the walking path and snaky vines trimmed back from the fire escape) that we’ve stashed in the garish bag.\n- Empty grocery bag in green bin. Empty yard clippings from garish bag. Roll up grocery bag and put in garish bag.\n- Hike back up steps.\nWhere do our other recyclables go? The garbage collectors come down the steps and pick up the garbage here twice a week (bless them…), but they don’t deal with recyclables.\nTwice a week, we haul the recyclables up to the blue recycle bin located where the steps meet Montgomery. We share that bin with neighbors and the closer it is to pickup day, the fuller the bin is — sometimes too full and then we have to take our recyclables back home and haul them up again after the bin is emptied.\nWhy don’t we put a green bin up there, you ask? Why? Because “there might be some pushback” as a neighbor nearby who shares the blue bin said.\nThe folks living on Montgomery are cranky enough about the blue recycle bin. No kumbayah moments here: One set of neighbors moves the bin away from their side of the steps because they don’t like the noise of people putting stuff in the bin and they don’t like the noise of it being picked up. Over to the other side! and let those folks deal with the noise. The neighbors on the other side move the bin back. Sometimes it winds up on the flat area halfway up to Montgomery.\nCan’t we all just get along? (and recycle? and all that good-for-all-of-us stuff?)"} +{"text": "\") -> dict[str, Any]:\n \"\"\"Lazily-create a per-forward ``meta.reuse`` scratch dict.\n\n Mirrors DeepSeek V4 (``fireworks.nn.deepseek4.utils._attention_reuse``):\n derived tensors that are identical across every sparse layer in a forward\n pass are cached here so only the first layer computes them. The dict is\n reset per forward in ``MiniMaxM3CausalTextModel.forward_transformer`` so\n CUDA-graph capture records the compute kernels exactly once.\n \"\"\"\n reuse = getattr(meta, \"reuse\", None)\n if reuse is None:\n reuse = {}\n meta.reuse = reuse\n return reuse\n\n\n@dataclass(frozen=True)\nclass _CompactSeqLens:\n seq_lens: torch.Tensor\n seq_lens_for_timestep: torch.Tensor\n seq_lens_for_causal: torch.Tensor\n\n\ndef _compact_seq_lens(meta: \"IncrAttentionMeta\", max_tokens_selected: int) -> _CompactSeqLens:\n \"\"\"Clamp the three decode seq_len tensors to the compacted block span, once.\n\n The result depends only on ``meta``'s seq_lens and ``max_tokens_selected``\n (``topk * ratio * block_size``), which are identical across every sparse\n decode layer in a forward pass, so it is computed by the first layer and\n cached on ``meta.reuse`` for the rest. All-device arithmetic keeps it\n CUDA-graph-capture safe.\n \"\"\"\n reuse = _attention_reuse(meta)\n key = (\"m3_sparse_compact_seq_lens\", max_tokens_selected)\n cached = reuse.get(key)\n if (\n isinstance(cached, _CompactSeqLens)\n and cached.seq_lens.shape == meta.seq_lens.shape\n and cached.seq_lens.device == meta.seq_lens.device\n ):\n return cached\n\n def _compact(seq: torch.Tensor) -> torch.Tensor:\n seq_mod = seq % 128\n partial = torch.where(seq_mod == 0, seq_mod + 128, seq_mod) # 128 if aligned else remainder\n c = (max_tokens_selected - 128) + partial\n c = torch.minimum(c, seq)\n return torch.clamp(c, max=max_tokens_selected)\n\n compact = _CompactSeqLens(\n seq_lens=_compact(meta.seq_lens),\n seq_lens_for_timestep=_compact(meta.seq_lens_for_timestep),\n seq_lens_for_causal=_compact(meta.seq_lens_for_causal),\n )\n reuse[key] = compact\n return compact\n\n\ndef _slice_kv_cache_head(cache, kh: int):\n \"\"\"Slice a paged KV cache (and optional scale) to a single KV head ``kh``.\n\n Cache layout is ``[num_blocks, num_kv_heads, block_size, head_dim]``; the\n decode kernel infers the GQA ratio from (q heads : cache kv heads), so the\n per-KV-head sparse loop must hand it a single-head view. Only matters when\n num_kv_heads > 1 locally (world_size < n_head_kv); a no-op at full sharding.\n \"\"\"\n if isinstance(cache, tuple):\n quant, scale = cache\n return (quant[:, kh : kh + 1], None if scale is None else scale[:, kh : kh + 1])\n return cache[:, kh : kh + 1]\n\n\ndef sparse_decode_paged(\n q: torch.Tensor,\n k: torch.Tensor,\n v: torch.Tensor,\n idx_q: torch.Tensor,\n meta: \"IncrAttentionMeta\",\n m3_meta: \"MiniMaxM3AttentionMeta\",\n attn_module: torch.nn.Module,\n *,\n layer_local_idx: int,\n sparse: MiniMaxM3SparseAttentionConfig,\n num_kv_heads: int,\n qk_scale: float,\n activation_dtype: torch.dtype,\n idx_q_full: Optional[torch.Tensor] = None,\n) -> torch.Tensor:\n \"\"\"Sparse decode attention. ``idx_q`` carries this rank's index heads;\n ``idx_q_full`` (when given) carries ALL index heads, rank-replicated, and\n enables the sequence-sharded DP scorer (see\n ``_dp_sharded_decode_score_select``).\"\"\"\n num_q_heads = q.shape[1]\n gqa_group_size = num_q_heads // num_kv_heads\n\n # Per-token sparse selection. Under speculation the base paged metadata\n # (block_tables/seq_lens) is already flattened to B*T rows, one per query\n # token with its own causal range. Block choice is query-dependent, so each of\n # the B*T rows selects against its own scores; the KV write via slot_mapping is\n # unchanged. At T=1 this is the non-spec path.\n #\n # Spec dedup: the T spec positions of a sequence share one index-K history, so\n # the grouped scorer loads it once and scores all T positions, vs the per-row\n # scorer re-reading it T x (the dominant decode HBM cost at long context).\n # Per-row top-k selection is preserved (validated bit-identical). Used when the\n # B*T layout factors into per-sequence groups; T=1 takes the per-row path.\n # block_tables_for_timestep is a required IncrAttentionMeta field (one row per\n # sequence), so num_seq is the sequence count and T = rows / num_seq.\n num_seq = meta.block_tables_for_timestep.shape[0]\n spec_T = idx_q.shape[0] // num_seq\n grouped_layout = num_seq * spec_T == idx_q.shape[0]\n # CuteDSL scorer (bf16 HMMA / fp8_cast QMMA) when eligible; per-row top-k\n # selection semantics are identical to the Triton scorers. At T=1 the\n # per-token base table is already one row per sequence.\n selected = None\n if grouped_layout:\n if spec_T > 1:\n bt_seq = meta.block_tables.view(num_seq, spec_T,"} +{"text": "Hurricane Sandy makes landfall in Bahamas\nNASSAU, Bahamas - Hurricane Sandy barreled into the Bahamas on Thursday after slashing across eastern Cuba, where it ripped off roofs and forced postponement of a hearing at the Guantanamo naval base but caused no reported deaths.\nThe Category 2 hurricane killed four people elsewhere in the Caribbean, and forecasters warned it will likely cause a super storm in the U.S. next week, mixing with a winter storm whose effects will be felt along the entire East Coast from Florida to Maine and inland to Ohio.\nThe hurricane was located about 25 miles east of Great Exuma Island early Thursday afternoon and it was moving north at 20 mph, with maximum sustained winds of 105 mph.\nPower was already out on Acklins Island and most roads there were flooded, said government administrator Berkeley Williams.\nHe said his biggest concern is that a boat filled with basic supplies for the island canceled its trip until next week.\n\"Supplies were low before, so you can imagine what we are going through now,\" Williams said.\nOn Ragged Island in the southern Bahamas, the lone school was flooded, \"we have holes in roofs, lost shingles and power lines are down,\" said Charlene Bain, local Red Cross president. \"But nobody lost a life, that's the important thing.\"\nPeople across the Bahamas formed long lines to stock up on water, canned goods, flashlights and other items, leaving grocery store shelves nearly empty.\nSooner Halvorson, a 36-year-old hotel owner from Colorado who recently moved to the Bahamas, said she and her husband, Matt, expect to ride out the storm with their two young children, three cats, two dogs and a goat at their Cat Island resort.\n\"We brought all of our animals inside,\" she said, though she added that a horse stayed outside. \"She's a 40-year-old horse from the island. She's been through tons of hurricanes.\"\nHurricane Sandy was expected to churn through the central and northwest Bahamas late Thursday and early Friday. It also might bring tropical storm conditions along the southeastern Florida coast, the Upper Keys and Florida Bay by Friday morning.\nWith the storm projected to hit New Jersey with tropical storm-force winds on Tuesday, there is a 90 percent chance that most of the East Coast will get steady gale-force winds, flooding, heavy rain and maybe snow starting Sunday and stretching past Wednesday, said U.S. forecaster Jim Cisco.\nIn the Bahamas, the massive Atlantis resort went into lockdown mode after dozens of tourists left Paradise Island before the airport closed, said George Markantonis, president and managing director of Kerzner International, which manages the resort. He said the resort is now less than half full, but all its restaurants, casinos and other facilities are still operating.\nBut other businesses on Paradise Island, where the capital of Nassau is located, remained closed.\nSandy was blamed for the death of an elderly man in Jamaica who was killed when a boulder crashed into his clapboard house, police said. Another man and two women died while trying to cross storm-swollen rivers in southwestern Haiti.\nOfficials reported flooding across Haiti, where many of the 370,000 people still displaced by the devastating 2010 earthquake scrambled for shelter. More than 1,000 people were evacuated from 11 quake settlements, according to the International Organization for Migration.\nIn Cuba, authorities said they were worried about the damage Hurricane Sandy might have inflicted in small mountain villages still unheard from, but no deaths were reported.\n\"It crossed the entire eastern region practically without losing intensity or structure,\" said Jose Rubiera, the island's chief meteorologist.\nSantiago, Cuba's second largest city near the eastern tip of the island, was spared the worst of the storm, which slammed into the provinces of Granma, Holguin and Las Tunas.\nCuban President Raul Castro ordered authorities to evaluate damage throughout eastern Cuba, and state media said they expected to release more information throughout the day.\nThere were no reports of injuries at the U.S. naval base at Guantanamo Bay in Cuba, but there were downed trees and power lines, said Kelly Wirfel, a base spokeswoman. Officials had canceled a military tribunal session scheduled for Thursday for the prisoner charged in the 2000 attack on the Navy destroyer USS Cole.\nFar out in the Atlantic, Tropical Storm Tony was weakening and posed no threat to land. The storm had maximum sustained winds of about 40 mph and was moving east-northeast at 21 mph. Its center was about 715 miles southwest of the Azores."} +{"text": "ESPN Films’ ‘The Book of Manning’ to Premiere September 24 on ESPN\nvia press release:\nESPN Films “SEC Storied” Documentary The Book of Manning to Premiere September 24 on ESPN\nThe film, narrated by John Goodman, explores how tragedy shaped one of the most influential families in professional sports history\nThe third season of ESPN Films’ “SEC Storied” documentary series will kick off with The Book of Manning Presented by Chick-Fil-A on Tuesday, Sept. 24, at 8 p.m. ET on ESPN. The film will explore the personal and professional life of former NFL and Ole Miss quarterback Archie Manning and how the sudden loss of his father impacted his life and the way he and his wife raised their three sons.\nA father-and-son story written into the pages of football folklore, it can be argued that no family has had more influence on a sport than the Mannings. Archie – the patriarch – a star quarterback at the University of Mississippi and then with the New Orleans Saints, followed by oldest son Cooper, whose football dreams were cut short by a spinal condition, then sons Peyton and Eli – both of them quarterbacks, All-SEC, number one draft picks, back-to-back Super Bowl champions and MVPs.\nNarrated by actor John Goodman, The Book of Manning features revealing interviews with Archie, Olivia, Cooper, Peyton and Eli Manning along with other family members, friends, former teammates and coaches as well as never-before-seen photos and home movie footage of Archie and his sons. Through it all, director Rory Karpf explores how a tragedy shaped the course of not only Archie’s life, but his family’s as well.\n*Digital screeners and promotional photos for The Book of Manning available upon request*\nFollowing the film’s debut on ESPN, ESPNU will air Story Behind Storied, a special director’s cut of the making of the ESPNU “SEC Storied” series of films. The special will recap all nine of the films in the series thus far and show never-before-seen footage from certain films. ESPNU will then re-air The Book of Manning at 10 p.m. followed by a classic Ole Miss game featuring NFL MVP quarterback Eli Manning and a Tennessee game with NFL MVP Peyton Manning.\nESPN Films launched the Storied documentary series in September 2011, presenting fans the opportunity to explore the rich athletic history of the Southeastern Conference. From extraordinary athletes and coaches to defining games and moments, the Storied series features films that focus on the SEC’s recent and more distant past.\nAbout ESPN Films\nCreated in March 2008, ESPN Films produces high-quality films showcasing some of the most compelling stories in sports. In October 2009, ESPN Films launched the Peabody Award-winning, Producer’s Guild Award-winning and Emmy-nominated 30 for 30 film series. Inspired by ESPN’s 30th Anniversary, the films that made up the series were a thoughtful and innovative reflection on the past three decades told through the lens of diverse and interesting sports fans and social commentators. The strong reaction from both critics and fans led to the launch of 30 for 30 Volume II, which is currently underway. Additional projects from ESPN Films include the critically acclaimed Nine for IX series, SEC Storied and the webby award winning 30 for 30 Shorts. For more information on 30 for 30, go to espn.com/30for30/.\nSEC on ESPN\nESPN, Inc., and the Southeastern Conference entered into a landmark 15-year agreement for extensive football, men’s and women’s basketball, Olympic sports and conference championship content across multiple ESPN entities beginning with the 2009-10 academic year. As a result, ESPN Regional Television became the over-the-air syndication home for Southeastern Conference programming and the largest college sports syndication television package in the country. In 2012, SEC Network basketball games were distributed in 77 local television markets, representing 50.4 million homes, which is 44% of the U.S.; 2011 SEC Network football games were distributed in 99 local television markets, representing 79.1 million homes, which is 69% of the U.S."} +{"text": " meta.block_tables.shape[1])[:, spec_T - 1, :]\n else:\n bt_seq = meta.block_tables\n # Sequence-sharded DP scorer first (needs the rank-replicated\n # all-heads index Q); identical results to the local path.\n if idx_q_full is not None:\n selected = _dp_sharded_decode_score_select(\n idx_q_full,\n m3_meta.m3_index_k_cache,\n layer_local_idx,\n bt_seq,\n meta.seq_lens,\n sparse,\n spec_T,\n num_kv_heads,\n )\n if selected is None:\n selected = _maybe_cute_score_select_grouped(\n idx_q,\n m3_meta.m3_index_k_cache,\n layer_local_idx,\n bt_seq,\n meta.seq_lens,\n sparse,\n spec_T,\n )\n if selected is None:\n if spec_T > 1 and grouped_layout:\n selected = _fused_score_select_grouped(\n idx_q,\n m3_meta.m3_index_k_cache,\n layer_local_idx,\n bt_seq,\n meta.seq_lens,\n sparse,\n spec_T,\n )\n else:\n selected = _fused_score_select(\n idx_q,\n m3_meta.m3_index_k_cache,\n layer_local_idx,\n meta.block_tables,\n meta.seq_lens,\n sparse,\n )\n\n # Vectorized, CUDA-graph safe block table compaction to fix FlashInfer's -1 sentinel softmax dilution bug\n B, H, topk = selected.shape\n ratio = sparse.sparse_block_downshard_ratio # 2\n block_size = sparse.kv_cache_block_size # 64\n\n stats_dir = _os.environ.get(\"FIREWORKS_M3_SPARSE_STATS_DIR\")\n if stats_dir:\n _record_sparse_decode_stats(\n stats_dir,\n selected=selected,\n seq_lens=meta.seq_lens,\n # The per-row scorer treats every row as its own sequence (no\n # cross-row KV sharing assumption), so dedup at row granularity.\n num_seq=num_seq if grouped_layout else B,\n spec_T=spec_T if grouped_layout else 1,\n # ceil-div to match the score/select kernels (triton.cdiv); floor here\n # would undersize the per-seq stride and collide batch-global block ids.\n msb=max(1, triton.cdiv(meta.block_tables.shape[1], ratio)),\n layer_local_idx=layer_local_idx,\n )\n\n # Gather only the selected physical block IDs for each head. FlashInfer sees\n # a compact logical sequence, so it only needs topk*ratio page columns, not\n # the original max-seq block table width. We compact the (per-token) base\n # table and feed it as the read table for a num_timesteps=1 decode.\n compact_bt = compact_block_tables(\n meta.block_tables,\n selected,\n ratio,\n topk,\n )\n\n # Clamp seq_lens to the valid tokens spanning the selected (compacted) blocks.\n # = (topk-1) full sparse blocks (1920) + the partial local block (seq%128, or\n # 128 if aligned); for short seqs (<= 2048) every block is selected so the real\n # seq_len bounds it. This avoids FlashInfer reading the partial block's\n # unwritten tail (dilution). Proven exact (cos 1.0) on all 256 seq_lens across\n # the +-128 dropping boundary; see do_not_commit/test_compaction_seqlen.py.\n # All device-tensor arithmetic — no torch.tensor(scalar, device=...) (illegal\n # during CUDA-graph capture).\n max_tokens_selected = topk * ratio * block_size # 2048\n\n # Computed once per forward by the first sparse decode layer and shared by\n # the rest via ``meta.reuse`` (see ``_compact_seq_lens``). We only need the\n # base (per-token) compacted seq_lens for the num_timesteps=1 read.\n compact_seq_lens = _compact_seq_lens(meta, max_tokens_selected).seq_lens\n\n out = q.new_empty(q.shape)\n for kh in range(num_kv_heads):\n # num_timesteps=1: treat each of the B*T query rows as its own single-step\n # decode against its own (compacted, per-token) block table. The read path\n # (kv_cache_params -> incr_attn) consumes block_tables_for_timestep /\n # seq_lens_for_timestep + num_timesteps, so point those at the per-token\n # compacted base table.\n meta_kh = replace(\n meta,\n num_timesteps=1,\n block_tables=compact_bt[kh],\n seq_lens=compact_seq_lens,\n block_tables_for_timestep=compact_bt[kh],\n seq_lens_for_timestep=compact_seq_lens,\n block_tables_for_causal=compact_bt[kh],\n seq_lens_for_causal=compact_seq_lens,\n )\n qs = kh * gqa_group_size\n qe = qs + gqa_group_size\n o = attn_module(\n meta_kh,\n qkv=None,\n rope=None,\n qk_scale=qk_scale,\n split_qkv=(q[:, qs:qe, :], k[:, kh : kh + 1, :], v[:, kh : kh + 1, :]),\n activation_dtype=activation_dtype"} +{"text": "|By PR Newswire||\n|January 4, 2013 02:00 AM EST||\nLONDON, January 4, 2013 /PRNewswire/ --\nWeight Watchers® New Approach to Weight Loss\nThese days we live in a world full of tempting, tasty food everywhere we turn. New research from Weight Watchers reveals that it's this overloaded food environment that causes us to overeat- it's not just about lack of willpower! Coupled with this, is the breakthrough science of 'hedonic hunger', which proves that sensory exposure to these hard to resist foods - even just thinking about them - creates a physical 'urge to eat', regardless of whether you've just eaten, encouraging us to give way to temptation.\nFrom browsing for breakfast cereals in our kitchen cupboards to grabbing a coffee on the go or piling on the pasta at dinner, we make an average of 200 food decisions every day. Around 90% of these decisions are unconscious - we don't even notice them. Find out more about the overloaded environment and temptation triggers with this Weight Watchers infographic.\nThese food decisions are especially challenging for the residents of the Twenty Toxic Cities in the UK. Research from Weight Watchers has revealed Manchester to be the most toxic city, in a leaderboard based on the highest level of fast food outlets in 2012 for the population density*.\nNo. of people per fast food outlet* Most Toxic Cities in the UK in 2012 1. Manchester 492 2. Bristol 623 3. Edinburgh 725 4. Brighton 768 5. London 830 6. Glasgow 921 7. Liverpool 1,002 8. Leicester 1,081 9. Newcastle upon Tyne 1,146 10. Leeds 1,148 11. Sheffield 1,293 12. Cardiff 1,366 13. Hull 1,485 14. Nottingham 1,749 15. Belfast 1,854 16. Birmingham 2,255 17. Wakefield 2,508 18. Coventry 2,798 19. Sunderland 3,146 20. Bradford 4,477\nToday, Weight Watchers will be helping its members tackle the issue head on, by launching a brand new approach to its highly successful ProPoints plan.\nZoe Hellman, Head of Public Health, Weight Watchers explains the new approach... \"Our new approach ProPoints plan gives you practical, realistic and simple solutions to create an environment that works for your weight loss, not against it, reducing the need for willpower.\"\nWeight Watchers New Approach offers members the tools and tactics to help them reclaim control of their environments and weight. It combines the very best of the tried and tested ProPoints plan with a new focus on the impact of your surroundings and how to make them work for, not against, your weight loss.\nThese include Places and Routines, two brand-new, exciting tools on the Weight Watchers website that have been developed to help you reclaim control of your overloaded food environment, and easily build healthy habits into your daily life. To find out more about Places and Routines just visit the Weight Watchers website.\nNotes to Editors\nThe Weight Watchers ProPoints plan takes all the best nutritional science from around the world to provide members with a simple to learn, flexible counting system that helps guide people towards healthier more satisfying food choices. Weight Watchers is the first organisation to offer a better, more accurate and flexible weight management formula than the outdated method of calorie counting.\n*Chart has been based on a criteria of the highest level of fast food outlets* for the population density and features the UK's 20 highest populated UK cities.\n*Café and tearooms, Coffee shops, Fast food takeaways, Fish and chips shops, Indian takeaway, Take away food shops. Data from The Local Data Company\nFor more information on Weight Watchers visit http://www.weightwatchers.co.uk\nFind Weight Watchers on Facebook http://www.facebook.com/weightwatchersuk\nFollow Weight Watchers on Twitter https://twitter.com/ww_uk\nPlease contact the Weight Watchers Press Office Team for more information and images:\nLucy Tinley: +44-(0)1628-415-216, firstname.lastname@example.org\nCatrin Hollely: +44-(0)1628-415-267, email@example.com\n- \"All It Took Was One E-Mail to Larry,\" Says Former eBay Research Director As He Moves to Google\n- Google Ramps Up Its Mobile Reach: Launches \"Mobile Web Search\"\n- Ericsson + Napster = World's First \"Wireless Digital Music\" Brand\n- VoIP Update: Yahoo! Buys DialPad\n- Free Guest Passes for the SOA World Conference & Expo in NYC\n- SYS-CON i-Technology Podcast August 30, 2005\n- A Flair for Food - Health-Conscious Cooking Is This Chef's Cup Of Tea\n- Sony PSP May Feature Porn\n- Kapow Helps Seiko UK, Provides SMS Text-Alert Services\n- South Korea is World's Largest Phisher"} +{"text": "Sunday, 5:30 am. McCarran Airport in Las Vegas. It still hasn’t sunk in that for the first time since 2006, there is a new middleweight champion in the UFC. That’s not melodrama, not a moment to sigh for the “good ol’ days,” just a realization that the MMA landscape has changed quite considerably since Chris Weidman’s second round knockout of Anderson Silva on Saturday night.\nYou could go even further and say the sports landscape has changed, because I’ve never woke up to so many texts from friends who are casual fans at best asking about the fight, or had so many people at the airport see the UFC on my bag and ask what happened with that Silva guy.\nSo what happened? He gave Weidman his chin on a platter and the New Yorker took it. It doesn’t get any simpler than that. Silva didn’t show up to the MGM Grand Garden Arena and fight like a 38-year-old is expected to, aging overnight. He wasn’t steamrolled by the New Yorker and pounded into a one-sided defeat. No. He dropped his hands, showboated, and stuck out his chin like he had so many times before. But this time his sin of leaning straight back to avoid a punch caught up to him.\nThis wasn’t the Forrest Griffin fight, where he pulled off the same antics and wound up knocking the newly minted UFC Hall of Famer out. This wasn’t his bout with Demian Maia, where his venomous taunts were only addressed in the closing stages of the fight, when it was too late. Weidman was young, fast, determined, and – for the moment – angry at being clowned by the Brazilian legend. He was going to keep punching until he hit something, and when I spoke to Weidman’s longtime coach Ray Longo Saturday night, he said his advice to his charge was to stop aiming for Silva’s chin and instead “punch a hole in his chest.” When Weidman followed that advice, his hole punching intentions strayed upward, found Silva’s jaw, and seconds later, it was game over for a reign that lasted over seven years and ten successful title defenses.\nThat’s the bad news. The good news is that the 185-pound weight class is suddenly wide open, Silva’s Hall of Fame worthy legacy doesn’t take a hit, and he appears that he is still a threat to not just return to his winning ways, but to regain his title should a rematch take place. And yeah, that rematch will make him a boatload of money.\nThe other positive to take from the upset is an obvious one - the arrival of Chris Weidman.\nAs a New Yorker, I’ve been hearing about Weidman long before he made his UFC debut, and when there were some scoffing at him making his UFC debut after just four fights (and on short notice no less), those here on the east coast smirked. He was ready for the UFC, and his first five fights (and wins) here proved it.\nBut after nine pro bouts, is anyone ready for Anderson Silva?\nWhen asked about the fight in the days and weeks leading up to UFC 162, I said that Weidman has the talent to beat Silva, but I wasn’t sure that he had the experience. When all you’ve seen since June of 2006 is brilliance, with the exception of two rough outings with Chael Sonnen (both of which Silva finished anyway), there wasn’t much to hang your hat on when it came to calling for the upset other than Weidman’s wrestling-based style and the idea that eventually Father Time catches up to all fighters.\nMy theory was that the only one that could beat Anderson Silva was Anderson Silva. And I was right. Just not in the way I expected. The way I saw it, Silva’s greatest tool was his ability to translate his talent into a confidence in the Octagon where he didn’t believe that someone had the nerve to, as Mike Tyson once said, “challenge me with their primitive skills.” The man Silva dethroned for the 185-pound title, Rich Franklin, told me that Silva makes “good fighters look bad,” and I’ve never heard a more accurate breakdown of the 16-0 start to his UFC career.\nWeidman believed though, and as early as his first couple UFC fights, he knew he had what it took to beat Silva. It wasn’t a ploy to get the fight made, pick up a nice payday, and fade away into life as a mid-tier contender. He really thought he could win. Even through all the pre-fight hype, through being picked by several peers to win, and through all the fight week festivities, Weidman kept focused and stuck to what he had envisioned a thousand times in his head: winning the title.\nAnd while the first round went well enough for Weidman on the ground, by the end of the round, Silva was standing, taunting, whipping the crowd into a frenzy, and appearing to get into Weidman’s head.\nThe Brazilian looked to be in complete control at the moment, and it carried over into the second round. And that’s where he lost his way and lost his title, allowing his confidence to sway into arrogance. You could say that his reflexes aren’t as sharp at 38 as they were ten years ago, but I’m not buying that as an excuse. What I saw was a Silva forgetting that as good as he is, everyone he faces in the Octagon with four ounce gloves has the talent to put his lights out. On Saturday night, Chris Weidman did just that. It was shocking, but it wasn’t a fluke. And while it’s not the way you want to see any great champion go out, I’ve got a feeling it won’t be his final exit.\nSee the photo gallery of UFC 162\nLooking back at Saturday's shocking Chris Weidman vs. Anderson Silva bout..."} +{"text": ",\n )\n out[:, qs:qe, :] = o\n return out\n\n\nimport os as _os\nimport json as _json\nimport time as _time\n\n\ndef _selection_head_stats(selected: torch.Tensor, row_to_seq: torch.Tensor, msb: int, num_slots: int) -> list[dict]:\n \"\"\"Per local KV head: distinct selected blocks + per-block query counts.\n\n ``selected`` is [rows, Hkv, topK] int32 block ids (-1 padded), block ids local\n to each row's sequence; ``row_to_seq`` maps each row to its sequence so blocks\n are made batch-global (seq_id * msb + block) -- the same block index in two\n different sequences counts as two distinct blocks.\n \"\"\"\n block_offset = (row_to_seq * msb).view(-1, 1)\n heads = []\n for h in range(selected.shape[1]):\n sel_h = selected[:, h, :].long()\n valid = sel_h >= 0\n global_blocks = (sel_h + block_offset)[valid]\n counts = torch.bincount(global_blocks, minlength=num_slots)\n qlens = counts[counts > 0].tolist()\n n = len(qlens)\n heads.append(\n {\n \"num_selected_kv_blocks\": n,\n \"qlen_per_selected_kv_block\": qlens,\n \"qlen_min\": min(qlens) if n else 0,\n \"qlen_max\": max(qlens) if n else 0,\n \"qlen_avg\": round(sum(qlens) / n, 2) if n else 0.0,\n }\n )\n return heads\n\n\ndef _append_stats_record(out_dir: str, filename_prefix: str, rank: int, record: dict) -> None:\n _os.makedirs(out_dir, exist_ok=True)\n path = _os.path.join(out_dir, f\"{filename_prefix}_rank{rank}.jsonl\")\n with open(path, \"a\") as f:\n f.write(_json.dumps(record) + \"\\n\")\n\n\ndef _record_sparse_prefill_stats(\n out_dir: str,\n *,\n selected: torch.Tensor, # [Tq, Hkv, topK] int32 block ids (-1 padded)\n varlen: Any,\n msb: int,\n layer: int,\n) -> None:\n \"\"\"Append one JSONL record per sparse layer describing the prefill selection pattern.\n\n Debug/analysis instrument, gated by FIREWORKS_M3_SPARSE_STATS_DIR (the output\n directory). Synchronizes device->host once per call, so leave it off in\n production. One file per rank: sparse_prefill_stats_rank.jsonl.\n\n Per record: total_q (query tokens in the chunk), total_kv (sum of real per-seq\n KV lengths), and per local KV head the number of distinct selected KV blocks\n plus the per-block query counts (how many queries selected each block) with\n min/max/avg.\n \"\"\"\n if torch.cuda.is_current_stream_capturing():\n return\n tq, hkv, topk = selected.shape\n device = selected.device\n batch_size = varlen.q_seq_len_cumsum.shape[0] - 1\n q_seq_lens = (varlen.q_seq_len_cumsum[1:] - varlen.q_seq_len_cumsum[:-1]).to(torch.long)\n seq_row_idx = torch.repeat_interleave(torch.arange(batch_size, device=device), q_seq_lens, output_size=tq)\n rank = torch.distributed.get_rank() if torch.distributed.is_initialized() else 0\n record = {\n \"ts\": round(_time.time(), 3),\n \"layer\": layer,\n \"rank\": rank,\n \"batch_size\": batch_size,\n \"total_q\": tq,\n \"total_kv\": int(varlen.kv_seq_lens.sum().item()),\n \"topk\": topk,\n \"heads\": _selection_head_stats(selected, seq_row_idx, msb, batch_size * msb),\n }\n _append_stats_record(out_dir, \"sparse_prefill_stats\", rank, record)\n\n\ndef _record_sparse_decode_stats(\n out_dir: str,\n *,\n selected: torch.Tensor, # [B*T, Hkv, topK] int32 block ids (-1 padded)\n seq_lens: torch.Tensor, # [B*T] per-row causal KV length\n num_seq: int,\n spec_T: int,\n msb: int,\n layer_local_idx: int,\n) -> None:\n \"\"\"Decode-side twin of :func:`_record_sparse_prefill_stats` (same env gate,\n separate sparse_decode_stats_rank.jsonl files).\n\n Decode rows are one per (sequence, spec position): total_q = B*T. The T spec\n rows of a sequence share its KV, so blocks are deduped within a sequence but\n not across sequences; total_kv sums each sequence's current KV length (its\n last spec row). NB: decode is CUDA-graph captured by default -- graph REPLAYS\n never run this Python, so steady-state steps are invisible unless the server\n runs with FIREWORKS_DISABLE_CUDA_GRAPH=1 (recording is skipped during capture\n to keep graph capture legal).\n \"\"\"\n if torch.cuda.is_current_stream_capturing():\n return\n rows, hkv, topk = selected.shape\n device = selected.device\n row_to_seq = torch.arange(rows, device=device) // spec_T\n per_seq_kv = seq_lens.view(num_seq, spec_T)[:, -1]\n rank = torch.distributed.get_rank() if torch.distributed.is_initialized() else 0\n record = {\n \"ts\": round(_time.time(), 3),\n \"layer_local_idx\": layer_local_idx,\n \"rank\": rank,\n \"batch_size\": num_seq,\n \"spec_T\": spec_T,\n \"total_q\": rows,\n \"total_kv\": int(per_seq_kv.sum().item()),\n \"topk\": topk,\n \"heads\": _selection_head_stats(selected, row_to_seq, msb, num_seq * msb),\n }\n _append_stats_record(out_dir, \"sparse_decode_stats\", rank, record)\n\n\ndef _kvouter_pr"} +{"text": "A Satyr's Tragedy\nFrom Uncyclopedia, the content-free encyclopedia\n| Attempt to explain joke|\nBefore I tell the story, it is imperative I explain what a Satyr is, as the public school system doesn't believe in teaching all kids about Greek Gods, any more. Blame McCartneyism. I do. Anyway, according to Greek mythology, satyrs are the male companions of Pan and Dionysus that roamed the woods and mountains. They were often associated with sex drive and apparently had perpetual erections. I know. It's fucking magical or something.\nedit It's story time, kiddies\nThere was once a satyr named... Stan. Yeah. Anyway, Stan was very different from other satyrs. You see, he suffered from ED. This made all of the other satyrs, with their perpetual erections and abilities to balance cups of wine on said erections, to make fun of him constantly (think Rudolph, but not a bastardized mix of Judaism, Paganism, and Christianity). Even the satyr named Phil, the one who trained Hercules and had a penis so small it wasn't visible to the naked eye, was more popular than Stan.\nedit Early childhood\nWhen Stan was very young, his only friend was his brother. This all changed when his brother had his penis beaten by Perseus. After having his penis beaten by a baby God, his brother became extremely popular. He never hung out with Stan again. This made Stan very suicidal. Due to his suicidal tendencies, the satyrs god Dionysus abandoned them on an island off the coast of Greece called Sicily. The satyrs were then made the slaves of Cyclops. This made Stan even more hated.\nOne day an adventurer named Odysseus, along with his crew, landed in Sicily at Mount Aetna near the location of the satyrs. When Stan's father encountered the hungry travellers, he traded some of Cyclops's food for liquor without permission from Cyclops. When Cyclops saw Odysseus eating his food, he became very frustrated and tried to kill him. Stan tried to tell Cyclops what happened, but he was thoroughly beaten by the one-eyed giant, who claimed he was a lying phony. While Cyclops beat the shit out of Stan, Odysseus and his crew retreated to their ship and left. They didn't even bother to thank Stan for saving them.\nAll of the satyrs made fun of Stan for helping a human for the next three months.\nedit Later childhood\nAfter being betrayed by both humans and satyrs, Stan realized that everyone was a douche, even writing an entire journal about it. He stopped trying to be cool. He wrote a few songs about being \"artsy and misunderstood\" and also founded a My Chemical Romance fansite.\nOn the weekends, he would go to comic book stores and pick fights about if the entire Green Lantern Corps could beat Jay Garrick, the original Flash. Usually, the fight would end with Stan getting shoved into a garbage can and rolled down the street. The store owner, a fat balding man by the name of Comic Book Guy, hated him, but Stan was his best customer. One day though, the other satyrs broke into Stan's house and destroyed all of Stan's first-edition Lois Lane comics from World War II and left X-Men comics in their place. The X-Men comics only served as a reminder of when he was a child and his father was raped by Cyclops. Forever scarred, Stan no longer would read another comic book. The loss of comic books caused Stan to become even more depressed.\nStan was stil very lonely.\nWhen all of the other satyrs spent their free time drinking alcohol, dancing, and gang-raping Helen, Stan would be in his room, alone, trying to get an erection. Stan was very smart (So smart in fact everyone in his geometry class cheated off him every fucking day.), but no matter what he learned, he still couldn't find a way to get an erection. All that porn he looked at only made him hornier, but he was incapable of getting it up.\nHe fell in love with a satyress in his film class. This female satyress was very artistic and was also a member of the choir. She wasn't at all attracted to him (Why would she be? Seriously...), but Stan had a plan! He was learning some game by listening to the advice of people on Yahoo! Answers and was learning pick up chicks. Of course, it didn't matter how much he improved his game as he was still ugly and couldn't get it up. Then, a miracle happened! Some guy invented a pill that gives erections!!! Stan ordered a full box of the magical pills. He was going to get lucky, dammit!\nHe started using the game he learned to get the satyress to like him. Eventually, Stan managed to get her to even give him hugs. Whenever she would hug him, Stan would get a tingling in his pants. One day, Stan decided it was now or never. He was going to get laid. He had asked the satyress to the movies. She accepted. Stan prepared his arsenal. Chloroform rag, some money, a pack of Trident, one extra small Trojan, and the full bottle of the magical pills. Stan swallowed the full bottle.\nHe got to the movies just 30 minutes later, and he ran up to where she was standing. She was very much impressed by his lack of limpness. They proceeded to enter the theatre. Two tickets to see Wolverine: The Musical, a bag of gummi bears, two Dr. Peppers, and a small box of nachos for the lady. They sat down in the third to last row. It was clean for once. Plus, there weren't many people around. It was all going Stan's way for once (Priceless!!!).\nThirty minutes into the movie, Stan was still hard, but the satyress was too into the movie, which would last for another four hours, to do anything about it.\nWhen the movie ended, the satyress looked at Stan and told him she was ready. Stan gave no response. He sat there with a blank stare. Stan had died due to how long the bloodflow had been redirected from his brain to his penis. Also, blood started oozing from the head of Stan's penis.\nThat, kids, is why you should see a doctor if you have an erection that lasts longer than four hours. I'm serious."} +{"text": "Hopes for a quick resolution of the writers strike are fading fast.\nBack-channel efforts have resumed to avert what’s now looking like a long and painful work stoppage. But those moves aren’t gaining much traction amid continued hardline public stances by both the WGA and the Alliance of Motion Picture & Television Producers.\nWorries have risen that without reviving the WGA talks, the scribes’ work stoppage could easily bleed into the middle of next year.\nThe DGA’s expected to launch talks within the next few weeks while SAG’s negotiations would probably start in the late winter or early spring. Both the DGA and SAG contracts expire June 30.\nWGA negotiations collapsed Sunday night, dashing a brief burst of optimism over the weekend that both sides had softened their stances and narrowed their proposals. And since the talks crashed and burned, both sides have ditched diplomacy.\nAMPTP topper Nick Counter has insisted that the companies aren’t interested in new talks as long as the WGA’s on strike. And WGA West president Patric Verrone has declared in an email to members that the guild is no longer committed to taking its DVD residuals proposal off the table — even though it did so Sunday to address the AMPTP’s assertion that the DVD proposal was a roadblock to a deal.\n“Our new comprehensive proposal (including the DVD removal) was presented in an off-the-record session; our new proposal was then rejected,” Verrone said. “Based on what I saw and heard on the picket lines today, therefore, all bets are off and what we achieve in this negotiation will be a function of how much we are willing to fight to get our fair share of the residuals of the future, no matter how they are delivered.”\nIn other developments:\n- The WGA’s considering offering waivers, or “interim agreements,” under which producers could employ writers with the proviso that scribes would be compensated under terms of the new contract. During the 1988 WGA strike, more than 70 such were signed.\n“The question of when to sign interim agreements, and with what employers, depends on an assessment by the Guild leadership of how such agreements will affect our leverage at the bargaining table,” said WGA spokesman Gregg Mitchell.\n- The WGA has quietly backed off its strike rules on animated feature writing.\nThe guild announced nearly a month ago that writers could not work or negotiate for animated features — even though that realm is not under WGA jurisdiction with most writing performed under contracts handled by Local 839 of the Intl. Alliance of Theatrical Stage Employees.\nBut the revised strike rules now permit WGA members to write for animated features covered by Local 839 without being fined or disciplined: “The Rules apply to (1) all network primetime animated series covered by a WGA contract and (2) contracts for writing services in connection with fully animated theatrical features negotiated or entered into during the strike, unless covered by a current collective bargaining agreement with another union.”\nThe AMPTP and IATSE threatened the WGA with legal action over the rule, under which violators could face expulsion, suspension, fines and censure.\n- The Writers Guild of Canada has come out in support of its southern brethren.\nThe Canuck guild said anyone who is a dual member of the two guilds and lives in the U.S. will not be allowed to write for Canadian productions during the strike. But the guild added that dual members living in Canada can write for a Canadian production during the strike.\nThe guild’s governing council passed a resolution stating: “The issues the WGA is addressing will affect every professional artist seeking compensation for their work in the digital age. Their fight is our fight.”\nThere are fewer than 300 dual members, most of whom live and work in Los Angeles. The WGC has 1,900 members altogether.\nWGC executive director Maureen Parker said U.S.-based members of both guilds have to apply to the WGA for a waiver in order to be able to work in Canada.\n“I can’t prevent a producer from hiring a writer for a production,” Parker said. “But that writer is violating strike rules and we will inform the WGA.”\nUnlike the WGA, the WGC’s most recent collective agreement with the Canadian producers association gives writers jurisdiction over new media, but the two sides have yet to agree on a set rate for compensating Canadian writers for work used in new-media platforms.\n(Brendan Kelly in Montreal contributed to this report.)"} +{"text": "efill_enabled(k_cache: torch.Tensor, attn_module: torch.nn.Module) -> bool:\n \"\"\"Use the cuteDSL KV-outer sparse prefill kernel (SM100) when available.\n\n bf16/fp16 caches run natively; fp8 e4m3 caches run the pure-fp8 (no-scaling)\n path and are ONLY valid under kv=fp8_cast (scales pinned to 1.0) -- the\n kernel ignores cache scales, so calibrated fp8 must keep the legacy path.\n Env FIREWORKS_M3_KVOUTER_PREFILL=0 disables.\n \"\"\"\n if _os.environ.get(\"FIREWORKS_M3_KVOUTER_PREFILL\", \"1\") == \"0\":\n return False\n if k_cache.dtype == torch.float8_e4m3fn:\n if not attn_module._fp8_kv_cast:\n return False\n elif k_cache.dtype not in (torch.bfloat16, torch.float16):\n return False\n try:\n from fireworks.nn.attention.cute.m3_sparse_attention.interface import can_run_sparse_kvouter\n except ImportError:\n return False\n return can_run_sparse_kvouter()\n\n\ndef _prefill_block_tables_per_q(\n meta: \"PrefillAttentionMeta\", varlen: \"VarlenAttentionParams\", total_q: int\n) -> torch.Tensor:\n \"\"\"Per-query-row block table: each sequence's block-table row replicated\n across its query positions.\n\n Computed only when the legacy per-head batched-decode path is taken; the\n production kvouter path uses ``meta.block_tables`` directly and returns early,\n so its ``repeat_interleave`` prefix-sum (a ``cub`` DeviceScan) + row gather are\n never launched on that hot path. Not cached across layers on purpose: under\n chunked prefill the same ``meta`` can be reused across chunks with shifted\n positions/block_tables, so a per-forward cache could serve stale rows.\n \"\"\"\n device = meta.block_tables.device\n # total_q is a Python int, so output_size keeps repeat_interleave sync-free\n # (no int(q_seq_len_cumsum[b].item()) D2H). varlen.q_seq_lens is the per-seq\n # new-query count already on the meta (== the q_seq_len_cumsum diff).\n seq_row_idx = torch.repeat_interleave(\n torch.arange(varlen.batch_size, device=device),\n varlen.q_seq_lens.to(torch.long),\n output_size=total_q,\n )\n return meta.block_tables[seq_row_idx]\n\n\ndef sparse_prefill_paged(\n q: torch.Tensor,\n k: torch.Tensor,\n v: torch.Tensor,\n idx_q: torch.Tensor,\n idx_k: torch.Tensor,\n meta: \"PrefillAttentionMeta\",\n m3_meta: \"MiniMaxM3AttentionMeta\",\n attn_module: torch.nn.Module,\n *,\n layer: int,\n layer_local_idx: int,\n sparse: MiniMaxM3SparseAttentionConfig,\n num_kv_heads: int,\n qk_scale: float,\n activation_dtype: torch.dtype,\n) -> torch.Tensor:\n \"\"\"Per-query-position sparse prefill via batched paged decode attention.\n\n Each query token selects its own top-k blocks (matching SGLang's\n block_size_q=1 behaviour) over its causal KV range, then attention runs as\n a batched decode where every query position is its own \"sequence\".\n \"\"\"\n from fireworks.triton.flat_kvcache_ops import write_kv_to_cache\n from fireworks.nn.attention.incr_attention import IncrKVCacheAttentionParams\n\n if m3_meta.m3_index_k_cache is None:\n raise ValueError(\"sparse prefill requires m3_index_k_cache\")\n\n if meta.pre_attention_callback is not None:\n meta.pre_attention_callback(layer)\n\n # Index-K H2D for host-offloaded prefill. Index-K is a separate sub-pool\n # wired on the *dependent* callback, so the main pre_attention_callback above\n # doesn't cover it; the scorer reads m3_index_k_cache below, so bring the\n # host-resident index-K blocks over first. None (no-op) off the offload path.\n dependent_pre_cb = getattr(meta, \"dependent_pre_attention_callback\", None)\n if dependent_pre_cb is not None:\n dependent_pre_cb(layer)\n\n k_cache = meta.k_cache(layer)\n v_cache = meta.v_cache(layer)\n # fp8/fp4 KV cache needs the per-tensor global scale; the non-sparse\n # PagedAttention.forward passes these, so mirror it for the sparse path\n # (sparse layers call write_kv_to_cache directly).\n if attn_module._fp8_kv_cast:\n # fp8_cast: scale is always 1.0. Build a constant so it is valid even\n # before prepare_for_inference (activation-memory estimation runs a\n # forward; the scale buffers are still None at that point).\n k_global_scale = v_global_scale = torch.ones(1, dtype=torch.float32, device=k.device)\n elif attn_module._fp8_cache or attn_module._fp4_cache:\n k_global_scale = attn_module.k_scale\n v_global_scale = attn_module.v_scale\n else:\n k_global_scale = v_global_scale = None\n write_kv_to_cache(\n k,\n v,\n k_cache,\n v_cache,\n meta.slot_mapping,\n cache_format=meta.format(),\n k_global_scale=k_global_scale,\n v_global_scale=v_global_scale,\n )\n if meta.slot_mapping is not None:\n write_index_k_to_paged_cache(\n m3_meta.m3_index_k_cache,\n layer_local_idx,\n idx_k,\n meta.slot_mapping,\n )\n\n varlen = meta.varlen_params\n "} +{"text": "Just over a week ago, The Australian National University decided to sell shares worth approximately $16 million in seven companies, representing just one per cent of our investment portfolio, and a fraction of the market worth of the companies involved, which has sparked an extraordinary reaction.\nFrom one side it has been attacked by elements of industry, media and some political figures as reckless, cowardly, superficial, anti-business, poorly conceived and as destroying jobs.\nOn the other side, my email account has melted down with emails of support, congratulating the University on its action, and the University’s Facebook page is awash with positive comments.\nThe reason for this extraordinary response is because the ANU decision is seen as another domino in the divestment-movement effect, involving individuals and institutions deciding to sell their holdings in fossil fuel-producing companies.\nThirteen US universities have now divested, and a number of cities, districts and foundations (including one linked to the Rockefeller family) in both the US and UK have followed suit. The same trend is also developing in Australia.\nThe University’s position on socially responsible investment is considerably more nuanced than has so far been recognised.\nWe invest for the betterment of its community – students, staff and researchers. The returns on these investments fund scholarships, staff salaries, research projects and new infrastructure.\nIn many cases the funds are donated to the University for these purposes. The University has a responsibility to invest wisely but also in a manner consistent with the desires of our stakeholder students, alumni and staff.\nThere has been growing sentiment from our community to not just get a good financial return from our investments but also to invest in companies which would have activities consistent with the goals of the University, and do not manifestly cause social harm. For instance, the University for many years has not, and would not now, invest in tobacco\nThe initial calls were to divest from all fossil fuels. This is difficult in Australia, as many of our companies are diversified. They may produce coal, oil or gas but they also do many other things. And given the world’s necessary dependence on such fuels for a long time to come, the ethical issues involved are complex. To address these issues ANU established a socially responsible investment policy.\nIn developing this we searched the world for best practice, and ultimately we modelled this policy largely on Stanford University’s, one of the world’s great universities and an institution that invests an endowment of $US19 billion.\nOnce developed, the challenge was to operationalise the policy. We undertook due diligence and engaged an independent environmental, social and corporate governance consultant to review our investment portfolio. Our chosen consultant is internationally accredited and has extensive experience.\nUsing an internationally recognised methodology, our investments were assessed against environmental, social and governance criteria. Our consultants stand by their assessments, which we have found persuasive, but should new information come to hand, or flaws become evident in the methodology involved, we would naturally reconsider the assessments.\nThe process assigns a score between 1 and 5 to each investment. The University decided that, pending a further review of our investment procedures, which are likely to involve the future outsourcing of our equities selection, we would sell those investments which fell into the lowest category. The University will certainly still retain many large resources-company stocks. The approach we have adopted is considered, measured, analytical and appropriately balances the desires of our community and the requirement to achieve an appropriate financial return.\nAlthough the ANU has been attacked for its decision, we are simply part of a much bigger debate about carbon and carbon pricing.\nMy own views are that the world must eventually move away from the use of fossil fuels. This, however, will take decades. In the meantime we will require such fuels.\nFar from destroying jobs, as our action has been described, I hope it goes some small way to do the opposite.\nThe real debate for Australia should be about jobs in a carbon-constrained world. What will our industries be in 20 or 30 years’ time? I am confident they will not be in producing fossil fuels. Australia should not be an adopter of alternative energy, we should be a producer.\nThe real debate in climate should be about producing cost-effective alternative energy. Sticking our collective heads in the sand and ignoring a changing world will ensure we do destroy jobs. Universities like the ANU should be the powerhouses to produce the new technologies for such a world.\nThe key here is for the various parties not to go to their collective corners and throw stones, but rather for us to work together and use the window of transition to ensure Australia is a technological leader in the post-carbon world.\nIf ANU has pushed this debate a small way in this direction we will have acted exactly as a leading Australian, and world, university should.\nThis op-ed was originally published in The Sydney Morning Herald and The Canberra Times on 13 October 2014."} +{"text": "Grappling with torture\nThe torture took place away from hot spots like Abu Ghraib and was conducted not by CIA agents or prison guards but by U.S. soldiers who never expected their tour of duty would present them with these unimaginable conditions. The soldiers participated, witnessed or blew the whistle on the abuse – and however they responded they were badly scarred. In “None of Us Were Like This Before: American Soldiers and Torture,” Joshua E.S. Phillips explores the largely hidden side of the American torture horrors: the effects on soldiers who never signed up for such service. Here he describes the harrowing -- and sometimes tragic -- impact.\nBy Joshua E.S. Phillips\nIt seems each day brings heartbreaking news of American soldiers who’ve perished on the battlefield, and veterans who’ve taken their own lives. We tend to associate wartime trauma with combat, such as bloody firefights. But there are other grueling wartime events beyond the battlefield.\nPresident Barack Obama recognized this last month when he extended veterans’ access for treatment for post-traumatic stress disorder.\n“I’ve met enough veterans to know that you don't have to engage in a firefight to endure the trauma of war,” said Obama.\nThat makes two of us.\nAbout two years ago I met former Army interrogator, Don Dzagulones, who explained how his involvement in detainee abuse had a more harrowing long-term impact on him than surviving deadly ambushes in Vietnam.\n“When you’re attacked, you have to respond,” he said. “But other circumstances, like prisoner abuse for example, you have a choice…[and so] you’re probably more affected by wanton acts of violence than responding to violence.”\nThis kind of wartime trauma remains largely unrecognized and misunderstood by the public. But it isn’t unknown to clinicians.\nAfter four years of research, the National Vietnam Veterans Readjustment Study found that abusive violence -- which included “torturing, wounding, or killing hostages or POWs [prisoners of war]” -- had the strongest correlation with PTSD for the 3,000 veterans interviewed for the study.\nOur wars in Iraq and Afghanistan are different than Vietnam, but they share a common feature: they were marked by U.S. detainee abuse and torture. Some soldiers who served in these wars participated in abuse, some were bystanders, and some blew the whistle and protested.\nHow many of today’s soldiers have been traumatized by their exposure to, or involvement in, abusive violence like detainee abuse?\nSo far there’s no current research that matches the Vietnam veterans’ study findings. But some soldiers were remorseful about their involvement with abuse, and were troubled or traumatized by it.\nArmy combat medic Jonathan Millantz contacted me four years ago to tell me about detainee abuse in Iraq, beyond Abu Ghraib.\n“It’s very tough when you have a conscience that is filled with atrocities [and] you know what you did to people,” said Millantz. “I went to confession, I went to counseling. I still can’t forgive myself for what I did to those poor people.”\nMillantz was attached to a tanking unit, Battalion 1-68, at Forward Operation Base Lion in Balad -- in the “Sunni triangle” -- during 2003-2004. Soldiers with Battalion 1-68 had to swap their tanks for humvees, and conduct sweeps that targeted suspected insurgents in house raids.\nSuddenly, troops who were trained to be tankers were tasked to be jailers. Sometimes they were encouraged and ordered to help “soften up” detainees for interrogations. Sometimes soldiers from Battalion 1-68 admitted they saw, and even participated in, detainee abuse at FOB Lion.\nNot every soldier who engaged in detainee abuse was traumatized by it, and there were other wartime experiences that were damaging. But some members of Battalion 1-68 were gravely distressed by abuse.\nLike Dzagulones, Millantz reconsidered his involvement in prisoner abuse and torture when he returned home, and it drove him to speak out at anti-war events. The distress over wartime experiences lingered for him and fellow unit members long after their return: some had violent outbursts, were plagued by depression and sleeplessness, and some engaged in substance abuse and other self-destructive behavior.\nSergeant Adam Gray exhibited these same patterns of behaviors. Gray was another member of Battalion 1-68 who was also troubled by his involvement in detainee abuse. After he attempted suicide in August 2004, the military documented his emotional state: “He spoke at length of many positive experiences in Iraq, such as rebuilding schools and eating with Iraqis. However, he also made reference to events that bothered him and that he could not speak ... about.”\nHis inability to discuss those “events that bothered him” exacted a devastating toll. On August 29, 2004, Gray was found dead in his barracks room. His Army buddies reflected on his death, and considered what he had been through and how it affected fellow soldiers.\n“It's been hard over the years coming to terms with what actually happened over there,” said Millantz. “It haunts me every day, and it’s something I’ll never get away from.”\nIn the end, he and fellow unit members never did get away from it. The pain and distress of the war damaged soldiers in Millantz’s unit, and the self-destructive behavior ultimately destroyed lives -- including those of Gray, and eventually even Millantz.\nSteven E. Levingston\nAugust 9, 2010; 5:30 AM ET\nCategories: Guest Blogger | Tags: U.S. torture; torture by soldiers; abu ghraib; post-traumatic stress disorder\nSave & Share: Previous: BOOK WORLD - August 8, 2010\nNext: Desegregation’s unintended consequence\nPosted by: IndyGO1 | August 9, 2010 1:09 PM | Report abuse"} +{"text": " num_q_heads = q.shape[1]\n gqa_group_size = num_q_heads // num_kv_heads\n total_q = q.shape[0]\n\n # Per-query causal range (each token is its own \"sequence\").\n # NOTE: the per-query-row block table (block_tables_per_q) and its\n # repeat_interleave prefix-sum are deferred to the legacy path below — the\n # production kvouter path returns early and uses meta.block_tables directly,\n # so it must not pay for that (formerly eager) cub-scan + gather here.\n seq_lens_per_q = (meta.positions[:total_q] + 1).to(torch.int32)\n\n # Per-query top-k block selection. The prefill scorer works on original\n # sequence rows so each K tile is reused across a tile of query positions.\n # NOTE: prefill stays head-sharded (each rank scores its own index heads):\n # the BLOCK_Q-tiled scorer amortizes every K tile over a whole tile of\n # query rows, so it is dot-FLOP bound, and head sharding already divides\n # the FLOPs evenly with zero comm. The sequence-sharded DP path only pays\n # off for the memory-bound decode scan.\n selected = _fused_score_select_prefill(\n idx_q,\n m3_meta.m3_index_k_cache,\n layer_local_idx,\n meta.block_tables,\n meta.positions[:total_q],\n varlen.q_seq_len_cumsum,\n varlen.q_largest_seq_len,\n seq_lens_per_q,\n sparse,\n kv_largest_seq_len=varlen.kv_largest_seq_len,\n )\n\n B_pref, H, topk = selected.shape\n\n stats_dir = _os.environ.get(\"FIREWORKS_M3_SPARSE_STATS_DIR\")\n if stats_dir:\n _record_sparse_prefill_stats(\n stats_dir,\n selected=selected,\n varlen=varlen,\n # ceil-div to match the score/select kernels (triton.cdiv).\n msb=max(1, triton.cdiv(meta.block_tables.shape[1], sparse.sparse_block_downshard_ratio)),\n layer=layer,\n )\n\n out_kvouter = None\n kvouter_dbg = \"\"\n if _kvouter_prefill_enabled(k_cache, attn_module):\n # Fancy prefill: cuteDSL KV-outer sparse attention (one fused call,\n # KV-stationary; PR #29027 + fp8 #29904) replaces the per-head\n # batched-decode emulation below.\n from fireworks.nn.attention.cute.m3_sparse_attention.interface import kvouter_attention\n\n kv_ratio = sparse.sparse_block_downshard_ratio # 2\n kv_page = sparse.kv_cache_block_size # 64\n cu_q = varlen.q_seq_len_cumsum\n # Per-seq real KV length Lk_b: prefill metadata already carries this in\n # varlen.kv_seq_lens (seq.seq_len after chunked-prefill capping). It matches\n # the last query's causal length because prefill always writes every\n # unpopulated token in the step (positions[last_q] + 1 == kv_seq_lens[b]).\n used_kv_lens = varlen.kv_seq_lens.to(torch.int32)\n q_kvouter = q\n if k_cache.dtype == torch.float8_e4m3fn and q.dtype != torch.float8_e4m3fn:\n # Pure-fp8 MMA: Q joins K/V in e4m3 (single ab_dtype); direct cast\n # mirrors kv=fp8_cast semantics (no scaling). Under fp8_cast serving\n # q often arrives already e4m3 (upstream quant) -> skip cast.\n q_kvouter = q.to(torch.float8_e4m3fn)\n out, _ = kvouter_attention(\n q_kvouter.contiguous(),\n k_cache,\n v_cache,\n selected.contiguous(),\n meta.block_tables,\n cu_seqlens_q=cu_q,\n softmax_scale=qk_scale,\n causal=True,\n used_kv_lens=used_kv_lens,\n block_size=kv_ratio * kv_page,\n page_size=kv_page,\n # NB: q may itself be e4m3 under fp8_cast; the combine emits the\n # model activation dtype (bf16) -- _finish_attn casts as needed.\n out_dtype=activation_dtype,\n )\n if _os.environ.get(\"FIREWORKS_M3_KVOUTER_COMPARE\", \"0\") != \"1\":\n if meta.post_attention_callback is not None:\n meta.post_attention_callback(layer)\n if meta.dependent_post_attention_callback is not None:\n meta.dependent_post_attention_callback(layer)\n return out\n # Debug compare mode: keep the kvouter result, fall through to the\n # legacy path, log the divergence, and return the legacy output.\n out_kvouter = out\n kvouter_dbg = (\n f\"T={total_q} B={cu_q.shape[0] - 1} used_kv={used_kv_lens.tolist()[:8]}\"\n f\" q_dtype={q_kvouter.dtype} kv_dtype={k_cache.dtype} topk={topk}\"\n )\n\n ratio = sparse.sparse_block_downshard_ratio # 2\n block_size = sparse.kv_cache_block_size # 64\n\n # Gather physical block IDs for each head via Triton compaction kernel.\n # [Hkv, T, selected_kv_blocks], mapping from Q tokens to selected KV blocks.\n # block_tables_per_q is built lazily here (legacy path only); the kvouter hot\n # path above never reaches this, so its prefix-sum/gather stays off that path.\n block_tables_per_q = _prefill_block_tables_per_q(meta, varlen, total_q)\n compact_bt = compact_block_tables(block_table"} +{"text": "URI brings Radiance Quintet for class, concert\nThe Connecticut-based Radiance Woodwind Quintet will visit the University of Rhode Island not once but twice this semester, first for a Master Class March 16 and then for a full concert April 1 with pianist Laura Hubbard as part of the prestigious University Artist Series. Both events will be held in the URI Fine Arts Center Concert Hall, 105 Upper College Road, Kingston.\nComprised of flute, oboe, clarinet, bassoon and horn, Radiance is described as performing “classic and innovative” wind quintet repertoire with “perfection and poise, style and sass.” Technique tips along with some of the keys to their success and “sassy” style will be shared when they offer their Master Class at 3 p.m. on Friday, March 16. The class is free and open to the public, with students especially encouraged to attend.\nTheir University Artist Series concert on Sunday, April 1, at 8 p.m. will feature works of Ravel, Fine, Hoiby and Piazzolla. The quintet members, Elizabeth Detweiler Jackson, Carla Parodi, Stevi Rehncy, Kelli O’Connor and Bryce Nakaoka will be joined by pianist Laura Hubbard, who has performed in concert at URI on other occasions. Admission is $10 general public, $5 students, with tickets available at the box office on a first-come basis starting 45 minutes before the concert.\nSpecifically, their program will offer Le Tombeau de Couperin by Maurice Ravel (arr. Gunther Schuller), Partita by Irving Fine, Sextet for Piano and Winds by Lee Hoiby, and Libertango by Astor Piazzolla (arr. Jeff Scott). The ensemble’s first recording is due to be released in the fall of this year, featuring the same composers.\nFounded in 2006, Radiance has performed for enthusiastic audiences throughout the Northeastern United States, including in recital on the Newburgh Chamber Music series and at the Newburgh Free Academy in Newburgh, New York. They have performed extensively in Connecticut, including with pianist Simon Holt at the Calvary Church Recital Series in Stonington; for the Sundays in the Parlor at Park series at Park Congregational Church in Norwich; and for the United States Coast Guard Band Chamber Players series in New London. Rehncy and O’Connor are Guest Artist teachers at URI, and all of the quintet members are or were members of the United States Coast Guard Band.\nElizabeth Detweiler Jackson, flute, has received national acclaim for her virtuosic playing. She has performed extensively with orchestras and ensembles in California, Arkansas, and Massachusetts and has won, finaled, or placed highly in a number of regional Flute Association and other solo instrument competitions. She holds a Bachelor’s degree from the University of North Texas, and a Master’s degree in flute performance from the University of Southern California. In 2002 she became co-principal flute of the U S Coast Guard Band.\nClarinetist Kelli O’Connor enjoys a varied and vibrant career as a soloist, educator and chamber and orchestral musician. She is a founding member of the Chameleon Arts Ensemble of Boston and the Radiance Woodwind Quintet, Principal Clarinet of the Eastern Connecticut Symphony Orchestra and Salt Marsh Opera, and a member of the Connecticut Orchestra. Previously a member of the U S Coast Guard Band, she appears frequently with the Hartford Symphony and the Connecticut Virtuosi Chamber Orchestra, and was clarinet soloist on the 2004-2005 national tour of Fiddler on the Roof. She teaches at both URI and the Calvary School of Music and has presented masterclasses at Baldwin-Wallace College and Salem State College. She is also the founder and director of the Waterford High School Clarinet Choir, which has won many distinctions. She holds a Bachelor’s Degree from Baldwin-Wallace College and a Master’s Degree from the New England Conservatory.\nCarla Parodi, oboe, attended the University of Michigan and received a Bachelor of Music degree from the University of Illinois in 1999. She earned a Master of Music degree from Rice University in Houston, Texas in 2003. She has studied with Harry Sargous, Nancy Ambrose King, John Ferrillo, and Robert Atherholt, and has performed with the New World Symphony, the Pacific Music Festival Orchestra, the Aspen Music Festival Orchestra, and the National Repertory Orchestra. Carla joined the U S Coast Guard Band in September 2003.\nStevi Rehncy, bassoon, earned a Bachelor of Music degree from the University of Illinois in 2002 and a Master of Music degree from the New England Conservatory of Music in 2004. During her studies, she played with various groups including the Illinois Symphony, the Louisville Orchestra, the Boston Symphony Orchestra, the Boston Philharmonic, and was a fellow at Tanglewood for two consecutive summers. Combining her love of music and children, Rehncy has worked with the Boston Public Schools as well as the New England Conservatory Youth Philharmonic Orchestra. She was acting principal bassoon with the Eastern Connecticut Symphony Orchestra during the 2005-2006 season and currently plays co-principal bassoon with the U.S. Coast Guard.\nBryce Nakaoka, horn, joined the U.S. Coast Guard Band in March of 2010 and is currently the third-seat horn player. He earned his Bachelor’s of Music degree in Education from the University of Nevada, Las Vegas, and can be heard playing principal horn on four CDs of the UNLV Wind Orchestra. During his undergraduate career, he performed in shows on the Las Vegas Strip including, “Phantom” and “Lion King” and also was the first call sub for the Las Vegas Philharmonic, where he held the Associate Principal position from 2007-2008. While in his home state of Hawaii, he performed with the Royal Hawaiian Band as well as the Honolulu Symphonic Winds.\nThe URI Concert Hall is handicap-accessible, and parking is available in the lot behind the Fine Arts Center, off Bills Road.\nFor more information, contact the URI Department of Music, 874-2431, or check the website www.uri.edu/music."} +{"text": "Visit us for expert pond care advice, weed identification, aeration design and more. We are happy to help answer all of your pond questions.\nSee what other customers are saying about The Pond Guy®. Also check out before and after photos from happy pond customers!\nSee how The Pond Guy® used Airmax® Aeration and MuckAway™ TL to eliminate up to 6″ of muck in a single season.\nLet us do the work for you – The Pond Guy® has licensed applicators familiar with common aquatic weeds and are equipped with the right pond care tools\nSee our showroom of fountains/aerators/water gardens running\nMeet Our Team of Experts\nIn observance of Memorial Day, The Pond Guy local store and customer service department will be closed on Monday, May 30th.\nWe will be available as normal the remainder of the week and on Saturday (9am ET - 4pm ET) for any questions or to place orders. We will reopen on Tuesday, May 31st with our normal business hours.\nWe wish you a safe and happy Memorial Day weekend! ... See MoreSee Less\nIt's Water Garden Wednesday! Let's see what your water garden, koi pond or water feature looks like today!\nHere's our Large Koi Pond today! ... See MoreSee Less\nOur annual Fish Day event was held on Saturday May 7th. Customers came in to stock their ponds with bass, blue gill, perch, minnows and catfish.\nWe have food, games and demos going on throughout the day. Here are just a few photos from the day! ... See MoreSee Less\nOur annual Fish Day event was held on Saturday May 7th. Customers came in to stock their ponds with bass, blue gill, perch, minnows and catfish. We have food, games and demos going on throughout the day. Here are just a few photos from the day!\nOur ponds and fish are ready to greet for you Saturday's Fish Day!\nToday is the last day to pre-order your game fish. weknowponds.com/fishday/\nWe'll also have lunch from 12-2, a Bag Toss Game, and product demos! Have a water garden? We have koi, tadpoles and plants available for purchase. We'd love to see you! ... See MoreSee Less\nIt's a rainy day here at The Pond Guy but we love the green that's starting to come through.\nLet's see what your pond looks like today! ... See MoreSee Less\nAre you planning to do your spring clean-out this month? Check out our How-To-Video on Spring Pond Clean-Outs first!\nWhat is your best tip for cleaning out your water garden or feature in the spring?\nyoutu.be/SxFOqxko_ss ... See MoreSee Less\nWith warm March temps across the country, we are getting lots of questions on String Algae. Just took a walk out to our water gardens and yup, we have it too. Here’s a few things you can do:\n1. Are you fish moving around? Or are they still sitting around the bottom of the pond. If your water temps are into the 40s and your fish are moving, you can remove the string algae by hand. If you have the 3-in-1 Tool, there is algae brush attachment that’s perfect for removing the string algae.\n2. If your water temps are consistently in the 50s and your fish are active, you can use AlgaeOff to kill the string algae. Don’t forget, you still need to remove the dead algae from the pond to prevent muck buildup.\n3. As long as there’s no ice left, go ahead and throw a dose of Seasonal Defense or Barley Extract into your pond. These products can help keep nutrient levels down in your pond.\nFor now, we are not removing the string algae at The Pond Guy. Our koi are still pretty slow moving so we do not want to stress them. With warmer temps this week, that could change! ... See MoreSee Less\nAlthough we’re expecting more snow this week in SE Michigan, we are gearing up for the 2016 season and are excited to help you mange your ponds this year!\nOur local store in Armada, MI is officially open for the season! We’ll be here Mon-Fri 10am - 6pm and Sat 9am - 4pm.\nOur Pond Techs will also be available on the phone longer and open Saturday’s for the season from 9am - 4pm ET. ... See MoreSee Less\nAre you attending the Cottage & Lakefront Living Show in Novi? Be sure to stop by our booth (#1609) to discuss your pond, lake, or lakefront property. We also have show specials! ... See MoreSee Less\nWe are updating our website this morning! If you need to place an order, call us at 866-766-3435 or visit us this afternoon. Thank you! ... See MoreSee Less\nThe Pond Guy will be open our normal business hours tomorrow, Thursday, 12/31. We will be closed on Friday for New Year's Day and reopen Monday 1/4 at 8am.\nFrom all the Pond Guys & Gals, we wish you a safe and happy 2016! ... See MoreSee Less\nAnother quick reminder, for all our Ponders in the SE Michigan area (or anyone with the impending winter storm), your pond netting should be taken down. The expected ice (or snow) can weigh the netting down into the pond and could cause your fish to get tangled in the netting. ... See MoreSee Less\nAll departments at The Pond Guy will be closed Thursday 12/24 and Friday 12/25 for Christmas. We will reopen on Monday 12/28 for our normal business.\nFrom all of us at The Pond Guy, we wish you and your families a safe and happy holiday season. Merry Christmas! ... See MoreSee Less\nThe Pond Guy will be closed on Thanksgiving. Our Customer Service Department will be open Friday from 8am - 5pm ET. ... See MoreSee Less\nWith snow expected in Michigan this weekend, we’re thinking back to the start of the 2015 pond season with this spring photo.\nLet’s see your favorite 2015 pond, water garden or lake photo (so far!) for Throwback Thursday! #TBT ... See MoreSee Less\nOur website is down at this time. If you need to place an order, please give us a call at 866-766-3435. Thank you! ... See MoreSee Less"} +{"text": "s_per_q, selected, ratio, topk)\n compact_bt_ts = compact_bt\n compact_bt_ca = compact_bt\n\n # Clamp seq_lens to the valid tokens spanning the selected (compacted) blocks.\n max_tokens_selected = topk * ratio * block_size # 2048\n\n def _compact_seqlen(seq: torch.Tensor) -> torch.Tensor:\n partial = ((seq - 1) % 128) + 1\n c = (max_tokens_selected - 128) + partial\n c = torch.minimum(c, seq)\n return torch.clamp(c, max=max_tokens_selected)\n\n compact_seq_lens = _compact_seqlen(seq_lens_per_q)\n\n k_cache_scale = meta.k_cache_scale(layer)\n v_cache_scale = meta.v_cache_scale(layer)\n k_cache_param = (k_cache, k_cache_scale) if k_cache_scale is not None else k_cache\n v_cache_param = (v_cache, v_cache_scale) if v_cache_scale is not None else v_cache\n\n out = torch.empty_like(q)\n for kh in range(num_kv_heads):\n # Slice the cache to this KV head so the decode kernel infers GQA from\n # (gqa_group_size q heads : 1 kv head). Passing the full KV-head cache\n # makes it infer GQA=num_kv_heads and misroute the group across heads.\n # No-op when num_kv_heads==1 (world_size >= n_head_kv).\n params = IncrKVCacheAttentionParams(\n k_cache=_slice_kv_cache_head(k_cache_param, kh),\n v_cache=_slice_kv_cache_head(v_cache_param, kh),\n block_tables=compact_bt[kh],\n seq_lens=compact_seq_lens,\n num_timesteps=1,\n block_tables_for_timestep=compact_bt_ts[kh],\n seq_lens_for_timestep=compact_seq_lens,\n block_tables_for_causal=compact_bt_ca[kh],\n seq_lens_for_causal=compact_seq_lens,\n cache_format=meta.format(),\n )\n qs = kh * gqa_group_size\n qe = qs + gqa_group_size\n o_slice = attn_module.incr_attn(\n q[:, qs:qe, :],\n params,\n qk_scale,\n meta.positions[:total_q],\n None,\n activation_dtype=activation_dtype,\n )\n out[:, qs:qe, :] = o_slice\n\n if meta.post_attention_callback is not None:\n meta.post_attention_callback(layer)\n # Index-K lives in a separate (dependent) host-offload sub-pool. Its D2H/H2D\n # is registered as device_seq.dependent_d2h/h2d_callback and recorded into the\n # dependent event maps; fire it here (after the index-K write above) so the\n # index copy is stream-ordered after the data exists and remove_sequence's\n # dependent-map drain can complete it.\n dependent_cb = getattr(meta, \"dependent_post_attention_callback\", None)\n if dependent_cb is not None:\n dependent_cb(layer)\n\n if out_kvouter is not None:\n d = (out_kvouter.float() - out.float()).abs()\n per_q = d.amax(dim=(1, 2))\n import logging\n\n gt_msg = \"\"\n n_seq = varlen.q_seq_len_cumsum.shape[0] - 1\n if n_seq == 1 and total_q <= 64:\n # Arbiter: plain fp32 causal attention over the real cache rows\n # (dense over the full (short) KV range; selection covers it all).\n L = int(seq_lens_per_q[total_q - 1].item())\n kv_page_dbg = sparse.kv_cache_block_size\n npages = (L + kv_page_dbg - 1) // kv_page_dbg\n pages = meta.block_tables[0, :npages].to(torch.long)\n hkv_n = k_cache.shape[1]\n kr = k_cache[pages].permute(1, 0, 2, 3).reshape(hkv_n, -1, k_cache.shape[-1])[:, :L].float()\n vr = v_cache[pages].permute(1, 0, 2, 3).reshape(hkv_n, -1, v_cache.shape[-1])[:, :L].float()\n qf = q[:total_q].float() # [T, Hq, D]\n hq_n = qf.shape[1]\n g = hq_n // hkv_n\n qg = qf.view(total_q, hkv_n, g, -1)\n s = torch.einsum(\"thgd,hsd->thgs\", qg, kr) * qk_scale\n pos = torch.arange(L - total_q, L, device=q.device)\n keep = torch.arange(L, device=q.device)[None, :] <= pos[:, None]\n s = s.masked_fill(~keep[:, None, None, :], float(\"-inf\"))\n p = s.softmax(-1)\n gt = torch.einsum(\"thgs,hsd->thgd\", p, vr).reshape(total_q, hq_n, -1)\n d_leg = (out.float() - gt).abs()\n d_kvo = (out_kvouter.float() - gt).abs()\n gt_msg = (\n f\" | GT: legacy max={d_leg.max().item():.4f} mean={d_leg.mean().item():.5f}\"\n f\" kvouter max={d_kvo.max().item():.4f} mean={d_kvo.mean().item():.5f}\"\n )\n logging.getLogger(__name__).info(\n \"KVOUTER_CMP layer=%d %s max=%.4f mean=%.5f worst_q=%s%s\",\n layer,\n kvouter_dbg,\n d.max().item(),\n d.mean().item(),\n per_q.topk(min(4, per_q.shape[0])).indices.tolist(),\n gt_msg,\n )\n\n return out\n"} +{"text": "Students head back to classes Aug. 18\nChanges at Westside schools include new principals, academic approach\nClasses will start for District 11 public schools - including 13 on the Westside - Thursday, Aug. 18.\nNoteworthy changes for the 2005-06 school year include new principals at Washington and Buena Vista elementaries, a 10,000 square-foot modular addition at Midland Elementary and the start of a pre-Advanced Placement (AP) program at Holmes Middle School.\nIn addition, Montessori is going into its second year at Buena Vista - now as a free program that is available to all age levels - while Ivywild has situated its classes onto the main floor and Coronado High will be getting the help of student teachers from UCCS.\nOtherwise, school operations are basically unchanged from past years, with the same locations, principals, attendance areas, academic offerings and hours.\nWashington's new principal is Terry Martinez, an 18-year teaching/ administration veteran who was Washington's summer school principal the past two years and served as assistant principal for Rudy and Henry schools in District 11 last year. He replaces Pete Cicatelli, who has retired.\nThe new Buena Vista principal is Brenda Smith, a seven-year district administrator who was assistant principal at District 11's Sabin Middle School last year. Former Principal Alan Rasmussen retired.\nThe Midland modular, which District 11 bought from the Renaissance Academy, will help the school handle Midland's increasing enrollment, stemming from its International Baccalaur-eate (IB) program and new housing developments in its attendance area, according to district officials. District crews have been working this summer to prepare a concrete pad for the air-conditioned facility, just southwest of the permanent school.\n“They're working furiously to get it done,” said Lynn Jeffords of the Midland school office. “It should be ready when school starts.”\nAt Holmes, all the staff - teachers as well as administrators - completed training this month in pre-AP strategies, according to Mike Kreidel, the school's gifted and talented head who is also serving as pre-AP director. The training was provided by the College Board, a not-for-profit national association which oversees the program.\nPre-AP in-volves elective classes with teaching strategies aimed at challenging students to learn at a higher level, according to the school. The program at Holmes will dovetail with the AP program at Coronado High School; many universities accept AP classes for college-level credit.\nHolmes and Sabin (also starting pre-AP this year) are the first middle schools in District 11 to offer the program.\nAfter its first year of Montessori in 2004-05 - offering classes for ages 3-9 - Buena Vista has increased its Montessori offerings this year to all grade levels, with the formerly fee-imposed preschool and kindergarten now available at no charge, thanks to a Title 1 grant. Kindergarten is only offered with the Montessori teaching approach starting this year, but traditional classes are still available for grades 1-5 (See adjoining story.)\nIvywild Principal Libby Bailey said her school has completed its plan, announced last May, of realigning all its classes on the main floor of the historic building on South Cascade Avenue.\nThis is allowing plans to move forward for an envisioned “community center” on Ivywild's lower floors. “We're developing a fantastic partnership with the Pikes Peak Community Foundation,” Bailey said. “We're looking forward to additional activities after school to truly make Ivywild into more of a community center.”\nCoronado, the flagship public high school for the Westside, is getting the help of 20 UCCS student teachers this year - on a rotation plan in which half of them will be simultaneously providing similar assistance at District 20's Timberview Middle School. The arrangement, part of a three-year partnership in which CHS is deemed a “professional development site,” will have the side effect of taking a load off classroom teachers. “I think it will be very positive for students in the program and at Coronado,” Humphrey said.\nCoronado began registering enrolled students this week; this will continue through Aug. 11. Boys golf began Aug. 9, while other fall sports will begin Tuesday, Aug. 16.\nNinth-grade orientation will be from 7:50 to 11 a.m. Wednesday, Aug. 17, starting in the school auditorium, according to Humphrey. “This will be a chance for them to see their classes, meet their teachers and get their feet wet,” she said.\nOrientations for sixth-graders will be offered at the Westside's middle schools. Both Holmes and West have scheduled these get-acquainted sessions at their respective schools Tuesday, Aug. 16, at 6:30 p.m.\nThe following are District 11's Westside schools, addresses and phone numbers (principal's name in parentheses).\nWestside Pioneer article"} +{"text": "Daniel A Neff is the co-chairman of the executive committee and partner in the law firm Wachtell, Lipton, Rosen & Katz, which he joined in 1977. He is a corporate and securities lawyer, and has focused on mergers and acquisitions and advice to boards of directors and board committees. During his more than 30 years of practice, Mr Neff has been extensively involved in negotiated as well as hostile acquisitions, and has represented bidders and targets, public and private companies, private equity firms, leveraged acquirers and special committees of directors. He has represented companies in divestitures, cross-border transactions and proxy contests, and has counselled managements and boards of directors concerning acquisition matters, conflict transactions, corporate governance and other significant issues.\nMr Neff lectures frequently on topics relating to his professional interests, was featured in American Lawyer's “Dealmaker of the Year” article in 2001 and 2012, and is listed in Chambers Global Guide, Chambers USA Guide, The Best Lawyers in America and Lawdragon's 500 Leading Lawyers of America.\nAmong other matters, Mr Neff represented Verizon Communications in its $130 billion acquisition of the 45 per cent interest in Verizon Wireless owned by Vodafone Plc. He also represented Airgas in successfully defending against a $5.8 billion hostile takeover bid by Air Products and Chemicals; Rohm and Haas in its $18 billion sale to Dow Chemical; Unocal Corporation in its acquisition by Chevron Corporation for $19 billion and its acquisition of Pure Resources; El Paso in its $38 billion sale to Kinder Morgan; Berry Petroleum in its pending $4.9 billion sale to Linn Energy; Chicago Bridge & Iron in its $3 billion acquisition of The Shaw Group; Cooper Industries in its $11.8 billion combination with Eaton Corporation; Alibaba Group in its $7.8 billion repurchase of stock from Yahoo!; Kellogg Company in its $4.6 billion acquisition of Keebler Foods Company and its $2.7 billion cash acquisition of Procter & Gamble’s Pringles business; Temple-Inland in its $3.7 billion sale to International Paper; Mirant Corporation in its $3.1 billion merger with RRI Energy, Inc. to create GenOn Energy; Smith International in its $11 billion merger with Schlumberger; Centex Corporation in its $3.1 billion merger with Pulte Homes; BEA Systems in its $8.5 billion merger with Oracle; the private equity buyers in the acquisitions of Aramark Corporation, Kinder Morgan, Inc and Harrah's Entertainment Inc; Knight-Ridder, Inc in its merger with the McClatchy Company; Goldman Sachs Capital Partners and Apollo Advisors LP in their acquisition of Nalco Chemical Company; Western Wireless Corporation in its merger with ALLTEL Corporation; VoiceStream Wireless Corporation in its merger with Deutsche Telekom AG; Litton Industries Inc in its merger with Northrop Grumman Corporation; Orion Power Holdings Inc in its sale to Reliant Resources, Inc; Mirage Resorts Incorporated in its merger with MGM Grand Inc; Vivendi Universal SA in its acquisitions of United States Filter Corporation and Cendant Software Corporation; Transamerica Corporation in its merger with Aegon NV and its acquisition of Whirlpool Financial Corporation; Newmont Mining Corporation in its acquisitions of Franco-Nevada Mining Corporation Limited, Normandy Mining Limited and Santa Fe Pacific Gold Corporation. He also represented Western Atlas Inc in its merger with Baker Hughes Incorporated, Vons Companies in its merger with Safeway Inc and represented special board committees of Wausau Insurance, Hayes Wheels International and Enron Oil & Gas Company (now EOG Resources Inc).\nMr Neff graduated magna cum laude from Brown University and from the Columbia University School of Law, where he was notes and comments editor of the Columbia Law Review.\nThis biography is an extract from Who's Who Legal: Corporate which can be purchased from our Shop.\nIt is not possible to buy entry into any Who's Who Legal publication\nNominees have been selected based upon comprehensive, independent survey work with both general counsel and private practice lawyers worldwide. Only specialists who have met independent international research criteria are listed."} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/nn/attention/causal_conv1d_helpers.py. Lines: 936.\n\n\"\"\"Causal conv1d helpers for linear-attention layers (GDN, Mamba-2).\n\nDense prefill and decode call the optional Dao ``causal_conv1d`` wheel.\nVariable-length prefill uses ``torch.ops.firecuda.causal_conv1d_fwd``\n(SGLang-style flattened tokens + ``query_start_loc``).\n\"\"\"\n\nfrom __future__ import annotations\n\nimport functools\nimport importlib\nfrom contextlib import nullcontext\nfrom typing import List, Optional, Sequence, Tuple\n\nimport fireworks.lib.firecuda # noqa: F401 - registers torch.ops.firecuda\nimport torch\nimport triton\nimport triton.language as tl\n\nfrom fireworks.cuda.capability import is_amd\nimport fireworks.util as fireutil\n\n\n@functools.lru_cache(maxsize=1)\ndef load_dao_causal_conv1d():\n \"\"\"Return the Dao ``causal_conv1d`` module, or ``None`` if unavailable.\n\n The wheel ships CUDA-only kernels; ``ImportError`` is expected on\n CPU-only / ROCm dev setups and call sites should raise with context\n when the op is required.\n \"\"\"\n try:\n return importlib.import_module(\"causal_conv1d\")\n except ImportError:\n return None\n\n\ndef alloc_conv_boundary_buffers(\n *,\n template: torch.Tensor,\n num_seqs: int,\n max_boundaries: int,\n conv_dim: int,\n state_len: int,\n num_streams: int = 1,\n) -> list[torch.Tensor]:\n \"\"\"Allocate per-path conv boundary row buffers for pipelined snap capture.\n\n ``num_streams`` is the number of parallel conv paths (1 for GDN, 3 for KDA q/k/v), not a CUDA stream id.\n KDA has logic to compute depthwise conv across the q,k,v sequences concurrently.\n \"\"\"\n return [template.new_empty(num_seqs, max_boundaries, conv_dim, state_len) for _ in range(num_streams)]\n\n\n@triton.jit(\n do_not_specialize=[\n \"R\",\n \"D\",\n \"S\",\n \"stride_cs_seq\",\n \"stride_cs_d\",\n \"stride_cs_s\",\n \"stride_x_d\",\n \"stride_x_t\",\n \"stride_buf_seq\",\n \"stride_buf_b\",\n \"stride_buf_d\",\n \"stride_buf_s\",\n ]\n)\ndef _fill_varlen_conv_boundary_buffers_kernel(\n conv_states,\n x,\n buf,\n row_seq,\n row_dist,\n row_tstart,\n row_b,\n has_initial,\n R,\n D,\n S,\n stride_cs_seq,\n stride_cs_d,\n stride_cs_s,\n stride_x_d,\n stride_x_t,\n stride_buf_seq,\n stride_buf_b,\n stride_buf_d,\n stride_buf_s,\n BLOCK: tl.constexpr,\n):\n # int64 offsets: channel*stride can exceed int32 for wide, long-context tapes.\n offsets = tl.program_id(0).to(tl.int64) * BLOCK + tl.arange(0, BLOCK)\n total = R * D * S\n mask = offsets < total\n\n s = offsets % S\n tmp = offsets // S\n d = tmp % D\n r = tmp // D\n\n seq = tl.load(row_seq + r, mask=mask, other=0).to(tl.int64)\n dist = tl.load(row_dist + r, mask=mask, other=0).to(tl.int64)\n tstart = tl.load(row_tstart + r, mask=mask, other=0).to(tl.int64)\n out_b = tl.load(row_b + r, mask=mask, other=0).to(tl.int64)\n hinit = tl.load(has_initial + seq, mask=mask, other=0)\n\n full_idx = dist + s\n from_carried = full_idx < S\n\n carried_mask = mask & from_carried & (hinit != 0)\n carried_values = tl.load(\n conv_states + seq * stride_cs_seq + d * stride_cs_d + full_idx * stride_cs_s,\n mask=carried_mask,\n other=0.0,\n )\n local_values = tl.load(\n x + d * stride_x_d + (tstart + full_idx - S) * stride_x_t,\n mask=mask & ~from_carried,\n other=0.0,\n )\n values = tl.where(from_carried, carried_values, local_values)\n\n tl.store(\n buf + seq * stride_buf_seq + out_b * stride_buf_b + d * stride_buf_d + s * stride_buf_s,\n values,\n mask=mask,\n )\n\n\ndef fill_varlen_conv_boundary_buffers(\n *,\n conv_states: torch.Tensor,\n conv_inputs: torch.Tensor | Sequence[torch.Tensor],\n buffers: torch.Tensor | Sequence[torch.Tensor],\n q_seq_lens_cpu: List[int],\n seq_boundary_distances: List[List[int]],\n has_initial_state: torch.Tensor,\n capture_stream: torch.cuda.Stream | None = None,\n) -> None:\n \"\"\"Fill conv boundary rows from pre-conv inputs.\n\n ``conv_states`` is ``[num_seqs, dim, state_len]`` (GDN) or\n ``[num_seqs, num_streams, dim, state_len]`` (KDA q/k/v).\n\n One fused Triton launch per conv stream (GDN=1, KDA q/k/v=3). All tensors\n must already live on the same CUDA device.\n \"\"\"\n if len(seq_boundary_distances) != len(q_seq_lens_cpu):\n raise ValueError(\"seq_boundary_distances must have one entry per prefill sequence\")\n if isinstance(conv_inputs, torch.Tensor):\n conv_inputs = (conv_inputs,)\n if isinstance(buffers, torch.Tensor):\n buffers = (buffers,)\n if len(conv_inputs) != len(buffers):\n raise ValueError(\"conv_inputs and buffers must have the same length\")\n\n device = conv_states.device\n assert conv_states.is_cuda, \"fill_varlen_conv_boundary_buffers requires CUDA conv_states\"\n assert (\n has_initial_stat"} +{"text": "Monday, August 10, 2009\nAt the risk of opening myself up to a lot of possibly critical commentary, I'm putting something out here out of sheer curiosity. I'll start and end with the same question: how do you handle money in your household?\nWhen Guy and I moved in together back in 2001, it was for two reasons: 1) to spend time together in a convenient manner, and 2) to save money that was being wasted living apart. I was spending way too much living in a loft in downtown Denver, and Guy helped me realize that I could save money now and in the future by investing in a little real estate. So, I bought a condo on the edge of downtown Denver and we moved in together about a week before 9/11. Thing is, my credit was in great shape while Guy's needed some work. He had credit card debt, car loan debt, and student loan debt; I had literally none of those. I used my investments (from my leftover inheritance for my Dad dying in 1997) as the basis for getting a good mortgage, and I got the Happy Kitten Highrise. (I have since refi'd twice, more recently getting a 20-year fixed rate for less than 6% and only raising my monthly payment about $25--score!)\nSo, the house was in my name, hence I made the mortgage payment as well as the power bill, groceries, phone, and cell phone. Guy took on the HOA payment for the condo, as it was at the time about $100 or so less than his previous rent, and the cable/internet bill, and he began paying down his other debts aggresively. He eventually took on the phone bill and later even the cell phone bill once he got a cell phone added to my plan. About a year or two into our living arrangement, he began splitting the cost of groceries with me. In general, our other expenses were split pretty evenly, like vacation travel and hotels, dinners and evenings out, and so on. When Guy left Design Associates, he went onto my healthcare through DA, which is really good and rather inexpensive (about $25 every few weeks). However, we paid our own medical copays and dental bills out of our own pockets. And biggest of all, we had no shared bank account.\nFast forward a few more years into 2009. Guy makes about $20,000 more than me, and between a big bonus he got at work a few years ago and his own diligent work, he has paid off all of his major debts (you know, the ones you can't take off on your taxes). He has taken over nearly all the bills except for the mortgage; that one's still mine, and the condo is still in my name alone. When we bought a new (used) car in 2006, we saved up for it and split the cost 50/50 (which was also awesome cuz we paid flat cash for the Civic-another score!), but he recently paid outright for the new laptop he found on a super sale that will replace one of our old desktop models, and he also paid for the new wireless router for the HKH that allows me to connect to the internet and write this blog from the living room instead of from the guest room computer. I purchased the Microsoft Office software, and I still buy the weekly groceries, though Guy is the one who pays when we make a run to Sam's Club.\nHe told me recently that he thinks he's been jobbing me for a couple of years and not paying his fair share, especially since he makes so much more than me. For him to offer to contribute more to the household financially almost felt rude, but I got over that pretty quickly when I realized that he sure as hell made more, and him tossing a little more into the kitty would allow me to a) better fund my retirement and b) better afford my every-five-or-six-weeks massages and spa visits, and you know a Shorty likes to get her spa on. But it also occurs to me that when it comes to retirement, I'm already ahead because I have my leftovers from the inheritance--Guy's been playing catchup for the past eight years, and he's seven years older than me to boot.\nBut more than all this, we still don't have joint bank accounts, and that's for the same reason that we almost didn't even get married: we don't see a point. Guy and I are committed to each other for the long haul, and getting married didn't make that \"official\". We got married in order to preserve our legal rights and to benefit from the sweet tax breaks it gives us; we don't need a piece of paper from the State of Nevada to prove that we luuuuv each other and share a deep, lasting commitment to each other. And so, we view joint bank accounts the same way. Having a joint bank account is one more thing we have to keep up with, and it doesn't really represent that we're a team financially. What makes us a financial team is that we regularly discuss what we're doing with our money, how things are working, if this week or month is going to be tight because we sent money to our moms or had a big expense of some sort or our architectural license fees came due during the same month we had to renew our NCARB record, etc. Even though many financial advisors and planners call our arrangement symptomatic of a lack of trust, and that if we really were a team we'd share a bank account, we're just not seeing it. It doesn't make sense for us.\nSo, I ask again: how do you handle money in your household? How do you deal with roommates, partners, whatever?"} +{"text": "There’s one thing that Wil Wheaton wants to make very clear: “Memories of the Future” is not, repeat, NOT a “tell-all” book about his time working on “Star Trek: The Next Generation.”\n“It was extraordinarily important to me that this was not some kind of stupid, gossipy book,” Wheaton said. “I despise that kind of thing. I just hate it. It’s the reality television of literature, and I absolutely cannot stand it.”\nIndeed, “Memories of the Future” is instead a funny review of, and a loving tribute to, the first season of “Next Generation,” which began its television run in 1987.\nI also saw that Happiest Days of Our Lives was used as an example of one of those new-fangled paper-style books:\nThat entire post is really funny and clever, and I think you should read the whole thing. Go ahead, I'll wait.\nSee? Wasn't it funny? I like clever writing that is funny.\nSpeaking of The Happiest Days Of Our Lives, I know a non-zero number of people have been waiting very patiently for the special edition to be released by Subterranean Press. I wanted to explain, again, why it's been a year: After the book was announced, I spent almost two months digging through published and unpublished material for the expanded parts of the book, then I spent another month or so rewriting and polishing the stuff that made the cut. After that, I wrote additional introductions and notes to go with each chapter. That was the first delay (and, honestly, I thought it was entirely reasonable, since the book was announced as a pre-order) The biggest delay, and the first serious problem, though, was a software compatibility issue between me and the copy editor. OpenOffice and Word don't track notes the same way, but neither of us knew this until we'd both spent a lot of time working in our respective suites, completely oblivious to the work of the other. Finally, we realized what was wrong, and had to go all the way back to the beginning of the copy editing process the old way, printing the entire manuscript out on paper and making notes in the margins. It had a certain nostalgic value, but it took forever to get all that shit straightened out.\nSo that process, which should have taken a couple weeks, took close to three months. Then, once we got that all squared away, I had to get a bunch of pictures together, caption them, fact-check the captions with my parents and siblings, then get all that stuff to Subterranean Press. I also held up this part of the process for a couple more weeks while I looked for even more unpublished pictures that neither me nor my mom could find.\nFinally, I asked my son Ryan (who is a creative writing student) if he wanted to write an afterword. He said he would, but it would take some time because he's in college and has his own responsibilities. I was willing to wait, because I thought it would be awesome to have his contribution to in the book, and I figured at this point (August) another couple weeks didn't make that big a difference. It ended up taking about 6 or 8 weeks, but I think it will ultimately be worth the delay (please note that I am not an objective source of information in this regard.)\nFinally, the manuscript was turned in, the pictures were approved, the layout was all set ... and then the signature pages arrived. I had to sign something like 2500 pages, and it was important to me that each one looked like it was the only one I'd signed. I could have blown through it, of course, and gotten it done in a couple of days, but that would have guaranteed disappointment to everyone who bought the book and waited almost a year to get it. So I limited myself to between 50 and 75 pages at a \"session,\" and it took several weeks to work my way through them all.\nOh, also, keep in mind that during all of these months, I was working on other projects, including several television shows that took me away from the Happiest Days project for weeks at a time.\nSo all of those delays stacked up on top of each other, until everything was finally finished about six or eight weeks ago. I realize that this is a very long time to wait for something, and I also realize that I've probably killed any chance of doing other special editions with Subterranean Press because this one took so long, but I sincerely believe that it will be worth the wait, because I've seen it, and it's something very special."} +{"text": "e.is_cuda and has_initial_state.device == device\n ), \"has_initial_state must be on the same CUDA device as conv_states\"\n # len(conv_inputs) is 1 for GDN, 3 for KDA q/k/v — not batch size.\n for inp, buf in zip(conv_inputs, buffers):\n assert inp.is_cuda and inp.device == device, \"conv_inputs must be on the same CUDA device as conv_states\"\n assert buf.is_cuda and buf.device == device, \"buffers must be on the same CUDA device as conv_states\"\n\n multi_stream = conv_states.ndim == 4\n\n row_seq: List[int] = []\n row_dist: List[int] = []\n row_tstart: List[int] = []\n row_b: List[int] = []\n token_start = 0\n max_boundaries = 0\n for seq_idx, q_len in enumerate(q_seq_lens_cpu):\n if q_len <= 0:\n continue\n distances = seq_boundary_distances[seq_idx]\n for b_idx, distance in enumerate(distances):\n d = int(distance)\n if d < 0 or d > q_len:\n raise ValueError(f\"boundary distance {d} out of range for chunk length {q_len}\")\n row_seq.append(seq_idx)\n row_dist.append(d)\n row_tstart.append(token_start)\n row_b.append(b_idx)\n if len(distances) > max_boundaries:\n max_boundaries = len(distances)\n token_start += q_len\n\n for buf in buffers:\n if max_boundaries > buf.shape[1]:\n raise ValueError(f\"{max_boundaries} boundary rows exceed buffer capacity {buf.shape[1]}\")\n\n num_rows = len(row_seq)\n if num_rows == 0:\n return\n\n # Build the [4, num_rows] meta tensor from pinned host memory so the H2D copy\n # is genuinely async. A plain ``torch.tensor(...).to(device, non_blocking=True)``\n # copies from pageable memory, where ``non_blocking`` is a silent no-op.\n meta = fireutil.as_device_tensor(\n [row_seq, row_dist, row_tstart, row_b],\n device=device,\n dtype=torch.int32,\n )\n row_seq_t, row_dist_t, row_tstart_t, row_b_t = meta[0], meta[1], meta[2], meta[3]\n has_initial_dev = has_initial_state.to(dtype=torch.int8)\n\n use_capture_stream = capture_stream is not None\n compute_stream = torch.cuda.current_stream() if use_capture_stream else None\n stream_ctx = torch.cuda.stream(capture_stream) if use_capture_stream else nullcontext()\n block = 256\n try:\n with stream_ctx:\n if use_capture_stream:\n assert capture_stream is not None and compute_stream is not None\n capture_stream.wait_stream(compute_stream)\n for stream_idx, (inp, buf) in enumerate(zip(conv_inputs, buffers)):\n x = inp.squeeze(0) if inp.ndim == 3 else inp\n carried = conv_states[:, stream_idx] if multi_stream else conv_states\n dim = x.shape[0]\n state_len = carried.shape[-1]\n\n stride_cs_seq, stride_cs_d, stride_cs_s = carried.stride()\n stride_x_d, stride_x_t = x.stride()\n stride_buf_seq, stride_buf_b, stride_buf_d, stride_buf_s = buf.stride()\n\n total = num_rows * dim * state_len\n _fill_varlen_conv_boundary_buffers_kernel[(triton.cdiv(total, block),)](\n carried,\n x,\n buf,\n row_seq_t,\n row_dist_t,\n row_tstart_t,\n row_b_t,\n has_initial_dev,\n num_rows,\n dim,\n state_len,\n stride_cs_seq,\n stride_cs_d,\n stride_cs_s,\n stride_x_d,\n stride_x_t,\n stride_buf_seq,\n stride_buf_b,\n stride_buf_d,\n stride_buf_s,\n BLOCK=block,\n num_warps=4,\n )\n finally:\n if use_capture_stream:\n assert compute_stream is not None and capture_stream is not None\n compute_stream.wait_stream(capture_stream)\n\n\ndef to_channel_last_storage(x: torch.Tensor) -> torch.Tensor:\n \"\"\"Materialize channel-last layout for Dao **prefill** (``causal_conv1d_fn``).\n\n Not used on the decode/update path: ``causal_conv1d_update`` accepts the\n standard ``[B, D, T]`` pool layout (``stride(2) == 1``) in place.\n\n The Dao ``causal_conv1d`` prefill kernel has two requirements for a 3-D input\n ``[B, D, T]`` in channel-last layout:\n\n 1. ``x.stride(1) == 1`` — channels are the innermost dimension.\n 2. ``x.stride(0) % 8 == 0`` and ``x.stride(2) % 8 == 0`` — the batch\n and time strides must be multiples of 8 for vectorized loads.\n\n Merely checking (1) is not enough: when ``x`` is a ``torch.split``\n view of a wider projection (``in_proj(hidden_states)``), the inner\n stride inherits the parent width and can fail (2) even though it\n looks \"channel-last-shaped\". In that case we rematerialize the\n tensor via a transpose-c"} +{"text": "WireScope 350 / DualRemote 350 Kit. Hand-held cable analyzer covers Cat5 Cat5e Cat6 & SM MM Fiber. Network Analyzer Supports UTP, STP, Fiber and coaxial Cable\nOn SALE at AAATesters.com\nTo Sell your Fluke DTX-1800 Cable analyzer or other Test Equipment use the contact form at the bottom\nOn Sale WireScope 350 / DualRemote 350 Kit\nInsure your network's continued high performance with Agilent's line of handheld network and cable analysis and troubleshooting tools.\nN2600A WireScope 350\nThe WireScope 350 is a Category 6/Class E hand-held network cable analyzer offering color touch screen, outstanding test performance, ease of use and graphic reporting.\n* Certifies compliance of installed LAN Cabling to TIA Category 6 and ISO Class E Standards\n* Support for Cat 6 Channel & Permanent Link Certification\n* Accuracy beyond TIA level III requirements traceable to laboratory reference standards\n* Tests installed multimode or single-mode optical fiber via Fiber SmartProbe attachments\n* Expandable test result storage on removable compact flash memory cards\n* Automated TIA-606-A Cable Identification Solution\n* Included ScopeData Pro software produces professional quality graphic test reports\n* Easy to use color touch screen interface minimizes training requirements\nReady for Category 6 and Beyond\nThe WireScope 350 provides comprehensive support for all current and emerging LAN cable certification standards including Category 6 / Class E channel and permanent link. Offering outstanding test performance, ease of use and graphic reporting, the WireScope 350 is the ultimate tool for LAN and cabling professionals.\nSuperior Measurement Performance\nWireScope 350 is based on frequency domain testing, the same principle used by the world's most accurate Network Analyzers. Its unmatched hardware accuracy is further augmented by state-of-the-art software algorithms including a novel patent pending Enhanced Auto Cancellation Technology to automatically cancel the interface and adapter effects from the test results. This automatic and dynamic compensation assures superior repeatability and accuracy with continuous usage of the instrument. Major cabling manufacturers in the industry have endorsed the superior measurement performance of WireScope 350.\nColor User Interface\nA bright color touch screen simplifies navigation through menus and improves comprehension of test result data, resulting in faster operation and reduced training times. Test setup advisor screens assist the operator when configuring test options, minimizing the chances of inadvertently testing to the wrong limits. All settings can be defined on a PC and downloaded in a single operation, speeding the process of configuring multiple WireScope 350 sets for the same job site testing requirements\nClick here to view image.\nUniversal SmartProbes Enable Accurate Cat 6 Testing\nThe WireScope 350 supports category 6 testing with Universal Link & Channel SmartProbes which have been designed to maximize Category 6 / Class E certification test margins for virtually all brands & categories of cabling.\nAgilent's Universal SmartProbes guarantee TIA Level III accuracy and optimized test margins when used with standards compliant category 6 cabling may be the only test cords you need for category 6 certification.\nClick here for more details on universal link & channel testing with the WireScope 350.\nGiven the significant improvement in the quality and consistency of category 6 connecting hardware, it may no longer be necessary to purchase manufacturer-specific link test cords to match the connecting hardware in the channel under test. Of course Agilent still offers a large selection of manufacturer-specific category 6 Link and Block SmartProbes.\nClick here to view a list of available manufacturer specific link and block smart probes.\nMeasurement accuracy can also suffer if worn out test adapters are used. To minimize accuracy problems, the WireScope 350 uses \"SmartProbe\" test adapters that contain their own configuration data and a counter that logs the number of tests they have been used for. AAATesters carries a full line of the Wirescope product line here is a list of models and model numbers included:\nN2600A Wirescope 350, FrameScope 350, N2597A, Fiber SmartProbe N2620A, FrameScope Pro N2640A, WireScope Pro N2640A-010, ScopeData Pro Software, N2600A-100 Wirescope, Wirescope 155, Wirescope350, Wirescope155, N2597A-030, N2597A-040, N2597A-031, N2597A-032, N2597A-041, N2597A-042, Multimode Fiber SmartProbe Kit, Singlemode Fiber SmartProbe Kit, N2600A-130, N2600A-150, N2604A-200, N2605A-134, N2605A-135, N2596A, N2605A-050, N2595A-091, N2604A-301, N2605A-137, N2595A-095, N2597A-040, 2-Way Singlemode Fiber SmartProbe, N2605A-135, N2605A-132\nFor Sales Email at: firstname.lastname@example.org\nVisit us at: http://www.AAATesters.com\nAgilent WIRESCOPE 350 Cable Certifier"} +{"text": "New ACLU Report Shows Unnecessary and “Alarming” Use of Head Strikes….And the Grand Jury Subpoenas Roll In for LASDSeptember 26th, 2012 by Celeste Fremon\nACLU CORRECTIONS EXPERT SAYS CJ DEPUTIES USE OF HEAD STRIKES “ALARMING” AND UNNECESSARY\nIn anticipation of the final report on Friday by the Citizens’ Commission on Jail Violence—and the Sheriff’s reaction to that report— the So Cal ACLU issued its own report Wednesday morning, contending that jail deputies frequently use head strikes—many causing serious injuries—at a rate that is fundamentally out of line with the national standard among corrections officers.\nCorrections expert Steve J. Martin, a former Texas correctional officer, turned attorney, turned nationally-known corrections consultant, examined the ACLU’s report and weighed in under oath. Martin said, among other things, that “….the number and extent of head injuries sustained in these use of force incidents strongly suggest’ that the deputies working in Men’s Central Jail “employ hard impact head strikes during force incidents”…”at alarming levels.”\nInterestingly, Martin also said that, after reviewing the department’s own use of force stats compiled by the Jails Commission, he concluded “…that there were many more serious injuries, including head injuries, between 2009 and 2012 that the ACLU is aware of.”\nHere’s a link to Martin’s full testimony.\nAnd here’s more from Wednesday’s ACLU report:\n…There is clear evidence that the Los Angeles County Sheriff’s Department (“LASD”) deputies have used head strikes with alarming regularity in the Los Angeles County jails. In many of those incidents the head strikes have caused significant injuries. The manner and frequency of such head strikes strongly suggests an inappropriate use of force by\nIn recent years, Los Angeles Sheriff’s deputies have stomped on inmates’ heads, even after shackling those inmates’ hands. They have bashed inmates’ faces into concrete walls. They have fractured inmates’ facial bones – noses, jaws, cheekbones, or eye sockets. The ACLU is aware of least 11 inmates who have had their facial bones broken by LASD deputies in the past three years. One inmate has lost vision in one eye. Others have undergone surgery. Sixty-four people have made sworn statements describing incidents in which deputies targeted inmates’ heads for attack between 2009 and 2012. These are not mere unsubstantiated complaints. The ACLU has corroborated 12 of these allegations of head injuries with secondary evidence, such as medical records, photographic documentation, or civilian reports. In several other instances, inmate witnesses have corroborated reports of deputy-on-inmate head strikes.\nIf history is any guide, LASD will respond to this evidence by attacking the ACLU and blaming inmates. They will argue that inmates’ accounts of deputies using unjustified force are false, and they will allege that inmates were the aggressors.\nBut even assuming that the LASD is correct that the inmates were aggressive towards deputies, the attempt to blame inmates does not absolve the LASD from its use of excessive and illegal force. For even where inmates are the aggressors, the fundamental widely recognized rule regarding use of force by a custodial officer is that head strikes are almost never permissible. Accordingly, head injuries should be an exceedingly rare consequence of a use of force incident, even when inmates are aggressive.\nThere are some disturbing accounts of the use of head strikes in the report itself, like the story of “Mr. NN” picture above.\nMEANWHILE….GRAND JURY SUBPOENAS AND MORE GRAND JURY SUBPOENAS ARE DELIVERED TO SHERIFF’S DEPARTMENT MEMBERS\nSeveral rounds of grand jury subpoenas have been delivered to members of the Los Angeles Sheriff’s department, some this week, some last week, and some reportedly trickling in still earlier.\nThis week’s flurry caused the Sheriff’s Department to send around a memo on Tuesday telling those receiving the things and not to go around bringing in any LASD documents or paperwork—even if the feds ask for them—without consulting the department’s legal watchdogs on the matter.\nHere’s a clip from the memo:\n…A SUBPOENA MAY REQUEST A PRODUCTION OF DOCUMENTS IN ADDITION TO AN INDIVIDUAL’S PERSONAL APPEARANCE. REQUESTS FOR DOCUMENTS IN AN INDIVIDUAL’S POSSESSION SHOULD BE VETTED THROUGH APPROPRIATE LEGAL COUNSEL AND BROUGHT WITH THE EMPLOYEE TO THEIR APPEARANCE IF SO DIRECTED BY COUNSEL. REQUESTS FOR THE PRODUCTION OF DEPARTMENT MATERIALS, RECORDS, REPORTS, AND/OR DOCUMENTS SHOULD BE REFERRED TO THE RISK MANAGEMENT BUREAU’S DISCOVERY UNIT WHO WILL BE RESPONSIBLE FOR IDENTIFYING, OBTAINING, AND PRODUCING THE RESPONSIVE DEPARTMENT DOCUMENTS AND/OR MATERIALS.\nPERSONNEL WHO HAVE BEEN SERVED A SUBPOENA ARE ENCOURAGED TO CONTACT THE DISCOVERY UNIT AT (323) 890-5000 FOR ASSISTANCE AND/OR REFERRAL TO LEGAL COUNSEL. THIS DOES NOT PROHIBIT YOU FROM SEEKING YOUR OWN LEGAL COUNSEL.\nQUESTIONS REGARDING THIS MATTER SHOULD BE DIRECTED TO THE DISCOVERY UNIT AT (323) 890-5000.\nIt should be an interesting week."} +{"text": "ontiguous-transpose round-trip so the\n resulting strides are ``(D*T, 1, D)`` — both multiples of 8 whenever\n ``D`` is (which it is for any realistic Mamba-2 / GDN conv_dim).\n \"\"\"\n if x.stride(1) == 1 and x.stride(0) % 8 == 0 and x.stride(2) % 8 == 0:\n return x\n return x.transpose(1, 2).contiguous().transpose(1, 2)\n\n\ndef _causal_conv1d_varlen_fwd(\n x: torch.Tensor,\n weight: torch.Tensor,\n bias: torch.Tensor | None,\n conv_state: torch.Tensor,\n query_start_loc: torch.Tensor,\n cache_indices: torch.Tensor,\n has_initial_state: torch.Tensor,\n silu_activation: bool,\n) -> None:\n torch.ops.firecuda.causal_conv1d_fwd(\n x,\n weight,\n bias,\n conv_state,\n query_start_loc,\n cache_indices,\n has_initial_state,\n silu_activation,\n -1,\n )\n\n\n@triton.jit(\n do_not_specialize=[\n \"B\",\n \"D\",\n \"T\",\n \"S\",\n \"stride_init_b\",\n \"stride_init_d\",\n \"stride_init_s\",\n \"stride_hidden_b\",\n \"stride_hidden_d\",\n \"stride_hidden_t\",\n \"stride_buffer_b\",\n \"stride_buffer_t\",\n \"stride_buffer_d\",\n \"stride_buffer_s\",\n ]\n)\ndef _cache_intermediate_conv_states_kernel(\n initial_conv_state,\n hidden_states,\n intermediate_conv_buffer,\n intermediate_state_indices,\n B,\n D,\n T,\n S,\n stride_init_b,\n stride_init_d,\n stride_init_s,\n stride_hidden_b,\n stride_hidden_d,\n stride_hidden_t,\n stride_buffer_b,\n stride_buffer_t,\n stride_buffer_d,\n stride_buffer_s,\n HAS_INDICES: tl.constexpr,\n BLOCK: tl.constexpr,\n):\n offsets = tl.program_id(0) * BLOCK + tl.arange(0, BLOCK)\n total = B * T * D * S\n mask = offsets < total\n\n j = offsets % S\n tmp = offsets // S\n d = tmp % D\n tmp = tmp // D\n t = tmp % T\n b = tmp // T\n\n src_pos = t + 1 + j\n hidden_t = src_pos - S\n from_initial = src_pos < S\n initial_values = tl.load(\n initial_conv_state + b * stride_init_b + d * stride_init_d + src_pos * stride_init_s,\n mask=mask & from_initial,\n other=0.0,\n )\n hidden_values = tl.load(\n hidden_states + b * stride_hidden_b + d * stride_hidden_d + hidden_t * stride_hidden_t,\n mask=mask & ~from_initial,\n other=0.0,\n )\n values = tl.where(from_initial, initial_values, hidden_values)\n\n cache_b = b\n store_mask = mask\n if HAS_INDICES:\n cache_b = tl.load(intermediate_state_indices + b)\n store_mask = mask & (cache_b >= 0)\n tl.store(\n intermediate_conv_buffer\n + cache_b * stride_buffer_b\n + t * stride_buffer_t\n + d * stride_buffer_d\n + j * stride_buffer_s,\n values,\n mask=store_mask,\n )\n\n\n@triton.jit(\n do_not_specialize=[\n \"B\",\n \"D\",\n \"T\",\n \"stride_hidden_b\",\n \"stride_hidden_d\",\n \"stride_hidden_t\",\n \"stride_pool_b\",\n \"stride_pool_d\",\n \"stride_pool_s\",\n \"stride_weight_d\",\n \"stride_weight_w\",\n \"stride_out_b\",\n \"stride_out_d\",\n \"stride_out_t\",\n \"stride_inter_b\",\n \"stride_inter_t\",\n \"stride_inter_d\",\n \"stride_inter_s\",\n ]\n)\ndef _causal_conv1d_pool_update_fused_kernel(\n hidden_states,\n conv_pool,\n slot_ids,\n weight,\n bias,\n out,\n intermediate_conv_buffer,\n B, # batch size\n D, # channels\n T, # time steps\n stride_hidden_b,\n stride_hidden_d,\n stride_hidden_t,\n stride_pool_b,\n stride_pool_d,\n stride_pool_s,\n stride_weight_d,\n stride_weight_w,\n stride_out_b,\n stride_out_d,\n stride_out_t,\n stride_inter_b,\n stride_inter_t,\n stride_inter_d,\n stride_inter_s,\n KERNEL_SIZE: tl.constexpr,\n HAS_BIAS: tl.constexpr,\n SILU: tl.constexpr,\n CACHE_INTERMEDIATE: tl.constexpr,\n BLOCK: tl.constexpr,\n):\n # One program lane owns a single (batch_idx/b, dim_idx/d) channel and processes every timestep\n # plus the ring-buffer state shift in one sequential pass. This fuses the old\n # two-kernel (output + state) design.\n # Read after Write Race free: all reads of the old conv_pool window\n # (output + intermediate) happen in the timestep loop before any state write,\n # and within the shift the source pool[T + s] is always strictly ahead of\n # the write target s (T > 0), so it is never clobbered by an earlier write.\n # Different lanes touch disjoint (slot(b), d) windows, so there is no cross-lane hazard either.\n S: tl.constexpr = KERNEL_SIZE - 1\n offsets = tl.program_id(0) * BLOCK + tl.arange(0, BLOCK)\n total = B * D\n mask = offsets < total\n\n d = offsets % D\n b = offsets // D\n slot = tl.load(slot_ids + b, mask=mask, other=0).to(tl.int64)\n\n if HAS_BIAS:\n bias_val = tl.load(bias + d).to(tl.float32)\n\n for t in range(T):\n acc = tl.zeros([BLOCK], dtype=tl.float32)\n for j in tl.static_range(0, KERNEL_SIZE):\n pos "} +{"text": "Clearly, WNST.net is throwing the biggest parties in New Orleans this weekend for the Super Bowl and the amazing fun we all plan to have here in The Big Easy is made even better when you participate and join us for biggest Baltimore Ravens fan celebrations ever.\nYou can purchase our WNST V.I.P. Super Party wristbands that give you special access at ALL of our parties as well as several bars on Bourbon Street for $115.70 by clicking here: http://wnst.net/brian-billick/buy-our-wnst-super-v-i-p-party-pass-and-soak-up-the-excitement-of-new-orleans/\nWe have FREE EVENTS every day and you can buy tickets at the door with cash only at all of our ticketed events as well. So, if you’re feeling spontaneous and looking to spend quality, memorable time with Baltimore Ravens fans, this is our schedule of events:\nA free event from 6 p.m. til ??? at Empire (located at 300 Decatur) in the French Quarter. This bar is COMPLETELY purple and will be the pickup site for all who purchased WNST V.I.P. Party wristbands for admission to all of our weekend activities. Great food, cold beer and awesome music. This is our “meet and greet” but you’re welcomed and encouraged to party all night with us in the heart of New Orleans. And, yes, the picture here is what Empire looks like on the inside. It’s all purple already!\nSATURDAY (Two events)\nDAY: Our purple pep rally and outdoor cookout begins at noon and is FREE AND OPEN to all Baltimore Ravens fans. WNST partner and Super Bowl-winning head coach Brian Billick will be on hand to meet and greet all of the purple faithful. Come to Toulouse at The River and we’ll be under the green and white pavilion that sits behind Jackson Brewery and the Famous Gumbo Pot. If you can see the giant Houston Oilers-style derrick, you’re almost there. Just walk to the water past Decatur and look for the Steamboat Natchez riverboat! This is also the site of Sunday’s party!\nOur cruise on the Steamboat Natchez is a ticketed event and you’re welcome to join us for a delicious jazz lunch and cruise from 2:30 ’til 4:30 on the Mississippi. Boarding begins at 2 p.m. and tickets are $60. For more information is available here: http://wnst.net/top-story/crabs-n-beer/cruise-mississippi-natchez-on-super-saturday-in-nola-with-billick-wnst/\nNIGHT: Doors open at 7 p.m. at The Howlin’ Wolf for a gigantic Baltimore Ravens fan celebration and concert with New Orleans locals and Grammy Award winning Rebirth Brass Band (show starts at 11 p.m.). Cold beer, great Cajun food and awesome music and dancing all night. This is a ticketed event ($25) and a two-day pass can be purchased for $40 for both big nights at the “purple ground zero” for all Ravens fans in New Orleans here: http://wnst.net/nfl/legendary-howlin-wolf-will-be-purple-ground-zero-for-all-baltimore-ravens-fans-in-nola/\nSUNDAY (Three events)\nOur pre-game tailgate and purple march are ABSOLUTELY FREE AND OPEN TO ALL BALTIMORE RAVENS FANS!!!\nBeginning at 10 a.m. on gameday, we’ll have cold beer, drinks, great food and awesome purple music from legendary DJ Bobby Nyk at the foot of Woldenberg Park. Come to Toulouse at The River and we’ll be under the green and white pavilion that sits behind Jackson Brewery and the Famous Gumbo Pot. If you can see the giant Houston Oilers-style derrick, you’re almost there. Just walk to the water past Decatur and look for the Steamboat Natchez riverboat!\nThe Natchez will serve as a giant bar all day and all Baltimore Ravens fans are welcome to board the boat, dance and drink all afternoon leading up to our big purple stampede up Poydras Street to win the Lombardi Trophy.\nThere will be five hours of partying before we begin our historic Mardi Gras march to the Superdome at 2:52 p.m. to honor Ray Lewis. All details, maps and information regarding the march are here: http://wnst.net/nfl/gigantic-purple-march-to-honor-ray-lewis-set-for-252-p-m-sunday-in-new-orleans/\nIf you are NOT going to the Super Bowl and want to watch the game with all Baltimore Ravens fans, you’ll want to head to The Howlin’ Wolf (S. Peters & St. Joseph) in The Warehouse District where the game will be shown on the big screen.\nOur post-game celebration will commence at 10 p.m. and this is a TICKETED event with the 8 Ball Brass Band playing the victory party. Advance tickets are $25 but you can purchase a two-day pass for Saturday/Sunday nights concerts here: http://wnst.net/nfl/legendary-howlin-wolf-will-be-purple-ground-zero-for-all-baltimore-ravens-fans-in-nola/\nNew Orleans never seems to shut down or sleep.\nAnd when the Baltimore Ravens win this Super Bowl title, we expect it to be a long, long night of partying at The Howlin’ Wolf into the wee hours."} +{"text": "The 2013 Major League Soccer season shoved off from the shores of the Delaware River on Saturday. The host Philadelphia Union were the dominant team in the match, but Sporting Kansas City took better advantage of their fewer chances and ended victorious 3-1 on a chilly March afternoon.\nThe story of this match for the Philadelphia Union was the return of Sebastien Le Toux. It was a cinch that he would start, but the questions were, “Where?” and, “In what formation?” Le Toux was the lone forward in a 4-2-3-1 formation. The Farfan twins flanked Keon Daniel in the attacking midfield, and that left Jack McInerney and Conor Casey to bench work. Newcomer Jeff Parke dropped straight into the lineup, pairing with Amobi Okugo in central defense.\nThe Next Chapter For KC\nSome offseason moves have left KC plugging a few holes in their lineup. Their back 5 was their one area of solidity, a defensive corps that has been relatively static for two years. Jimmy Nielsen kept net with a Chance Myers-Aurelien Collin-Matt Besler-Seth Sinovic backline. The losses of Kei Kamara and Roger Espinoza to the Barclay’s Premier League were met with the purchase of Ecuadorian striker Claudio Bieler, and the acquisition of Benny Feilhaber from New England. Peter Vermes stayed with his usual 4-5-1, using Bobby Convey and Graham Zusi as flanking midfielders to Bieler’s forward position.\nThe entire match had to leave Union fans remembering 2011, at least from an attacking viewpoint. The team had one of its strongest matches from an attacking perspective since the departure of Le Toux. It could be a function of their opponent – last season, the Union put 4 goals past Kansas City, and thus Sporting may be a good matchup for the Union.\nFrom the get-go the Union looked dangerous. Gabe Farfan forced Nielsen to make a solid save in the 4th minute, and the left winger spent plenty of time pestering Myers down KC’s right side. In the 17th minute, it was some interplay between Gabe Farfan and Keon Daniel that set up the Union’s opening goal. Daniel faked a pass to Farfan down the left flank, and quickly floated a ball behind the KC defense. Le Toux controlled the ball near the penalty spot, and powered a shot off Nielsen and into the goal for the 1-0 lead.\nLe Toux then had another great chance one-on-one with Nielsen 6 minutes later, but the French forward scuffed his shot to the left of goal. The 25th minute saw Raymon Gaddis hacked down just outside the area by Collin, drawing a yellow. The resulting free kick by Michael Farfan from the left forced a great save by Nielsen.\nKC Wakes Up\nPhiladelphia appeared to be in control through the half-hour mark, but that was when Sporting began to exploit the Union’s attacking intent. A warning shot was fired on a through ball in the 31st minute, as Parke had to clear the chance away from Convey.\nSome sloppy coverage led to the equalizer within 5 minutes of halftime. Convey was able to swing a cross in from the left, and Bieler got the ball down out of the air to a wide open Feilhaber. His laser shot was stopped by MacMath, but the rebound came out 3 yards in front of the young keeper. Zusi was in the right position to send the bouncing ball into the top half to knot the score at 1.\nSecond Half To Sporting\nThe first 15 minutes of the second half were guarded for both teams. The game changed in the 66th minute though, three minutes after Convey was brought off for Sapong. Sapong drew a free kick about 25 yards from MacMath’s goal as Sheanon Williams dragged him down. Zusi swung in the free kick, and Uri Rosell flashed a few yards in front of MacMath. The Spaniard headed the ball past MacMath to grab the lead at 2-1.\nAs the Union chased the game with attacking substitutions (McInerney for Gabe Farfan and Roger Torres for Michael Lahoud), Kansas City pounced on another opportunity. This time, Bieler earned his first goal in the light blue. Myers cut a ball back from the right flank to Bieler just inside the area. He controlled it, and had enough time to place his shot to the far post. The third KC goal put an end to the Union’s hopes, and gave Sporting a good road victory to open the season.\nSporting Kansas City (1-0-0) will travel to Rogers Centre in Toronto to face TFC on Saturday next week. The Union (0-1-0) will also be on the road Saturday, and will look for their first victory against the Colorado Rapids. Both teams have some room for optimism. KC was not dominant, but were clinical and got their new Designated Player on the score sheet. Philadelphia looked dangerous and played well against a better team. If their finishing improves and limit mistakes, they could work their way into playoff contention."} +{"text": "= t + j\n from_pool = pos < S\n pool_values = tl.load(\n conv_pool + slot * stride_pool_b + d * stride_pool_d + pos * stride_pool_s,\n mask=mask & from_pool,\n other=0.0,\n )\n hidden_t = pos - S\n hidden_values = tl.load(\n hidden_states + b * stride_hidden_b + d * stride_hidden_d + hidden_t * stride_hidden_t,\n mask=mask & ~from_pool,\n other=0.0,\n )\n values = tl.where(from_pool, pool_values, hidden_values)\n acc += values.to(tl.float32) * tl.load(weight + d * stride_weight_d + j * stride_weight_w).to(tl.float32)\n\n if HAS_BIAS:\n acc += bias_val\n if SILU:\n acc = acc / (1.0 + tl.exp(-acc))\n tl.store(out + b * stride_out_b + d * stride_out_d + t * stride_out_t, acc, mask=mask)\n\n if CACHE_INTERMEDIATE:\n for s in tl.static_range(0, S):\n pos = t + 1 + s\n from_pool = pos < S\n pool_values = tl.load(\n conv_pool + slot * stride_pool_b + d * stride_pool_d + pos * stride_pool_s,\n mask=mask & from_pool,\n other=0.0,\n )\n hidden_t = pos - S\n hidden_values = tl.load(\n hidden_states + b * stride_hidden_b + d * stride_hidden_d + hidden_t * stride_hidden_t,\n mask=mask & ~from_pool,\n other=0.0,\n )\n values = tl.where(from_pool, pool_values, hidden_values)\n tl.store(\n intermediate_conv_buffer\n + b * stride_inter_b\n + t * stride_inter_t\n + d * stride_inter_d\n + s * stride_inter_s,\n values,\n mask=mask,\n )\n\n # Ring-buffer state shift: conv_pool[s] <- source[T + s] for s in [0, S).\n for s in tl.static_range(0, S):\n pos = T + s\n from_pool = pos < S\n pool_values = tl.load(\n conv_pool + slot * stride_pool_b + d * stride_pool_d + pos * stride_pool_s,\n mask=mask & from_pool,\n other=0.0,\n )\n hidden_t = pos - S\n hidden_values = tl.load(\n hidden_states + b * stride_hidden_b + d * stride_hidden_d + hidden_t * stride_hidden_t,\n mask=mask & ~from_pool,\n other=0.0,\n )\n values = tl.where(from_pool, pool_values, hidden_values)\n tl.store(\n conv_pool + slot * stride_pool_b + d * stride_pool_d + s * stride_pool_s,\n values,\n mask=mask,\n )\n\n\ndef causal_conv1d_pool_update(\n hidden_states: torch.Tensor,\n conv_pool: torch.Tensor,\n slot_ids: torch.Tensor,\n weight: torch.Tensor,\n bias: torch.Tensor | None = None,\n activation: str | None = None,\n intermediate_conv_buffer: Optional[torch.Tensor] = None,\n) -> torch.Tensor:\n \"\"\"Depthwise causal conv update that reads/writes indexed rows in ``conv_pool`` directly.\"\"\"\n batch, dim, seq_len = hidden_states.shape\n state_len = conv_pool.shape[-1]\n if seq_len == 0:\n return hidden_states\n if state_len + 1 != weight.shape[-1]:\n raise ValueError(f\"conv pool state_len={state_len} incompatible with weight shape={weight.shape}\")\n if weight.dtype != hidden_states.dtype:\n weight = weight.to(hidden_states.dtype)\n if bias is not None and bias.dtype != hidden_states.dtype:\n bias = bias.to(hidden_states.dtype)\n slot_ids_i32 = slot_ids.to(device=hidden_states.device, dtype=torch.int32)\n out = torch.empty_strided(\n hidden_states.shape, hidden_states.stride(), device=hidden_states.device, dtype=hidden_states.dtype\n )\n\n stride_hidden_b, stride_hidden_d, stride_hidden_t = hidden_states.stride()\n stride_pool_b, stride_pool_d, stride_pool_s = conv_pool.stride()\n stride_weight_d, stride_weight_w = weight.stride()\n stride_out_b, stride_out_d, stride_out_t = out.stride()\n if intermediate_conv_buffer is None:\n stride_inter_b = stride_inter_t = stride_inter_d = stride_inter_s = 0\n else:\n if intermediate_conv_buffer.shape[1] < seq_len:\n raise ValueError(\n \"intermediate_conv_buffer does not have enough step capacity \"\n f\"({intermediate_conv_buffer.shape[1]} < {seq_len})\"\n )\n intermediate_conv_buffer = intermediate_conv_buffer.narrow(1, 0, seq_len)\n stride_inter_b, stride_inter_t, stride_inter_d, stride_inter_s = intermediate_conv_buffer.stride()\n\n block = 256\n _causal_conv1d_pool_update_fused_kernel[(triton.cdiv(batch * dim, block),)](\n hidden_states,\n conv_pool,\n slot_ids_i32,\n weight,\n bias,\n out,\n intermediate_conv_buffer,\n batch,\n dim,\n seq_len,\n stride_hidden_b,\n stride_hidden_d,\n "} +{"text": "Folks from all walks of life shared their very passionate views with me. Heterosexuals, homosexuals, and immediate relatives of homosexuals all took the time to share some very poignant, well-thought-out words. I felt very humbled as I read them, as if I somehow didn't deserve to be mixed into this debate. All I did was write: they live this every day.\nSo as I scan through the words below, the comments you have all left, and the messages you have sent me via e-mail, I can't help but feel that my 638 words changed the world just a little bit. I'll keep your words in mind when I pick up my pen to write my next article. Everything I publish should be an opportunity to challenge, teach, and ultimately enlighten. Thank you all for confirming that this is the path I should take. Here goes (and, again, apologies for the length):\nThanks for your thoughtfully composed article on same sex marriage. I'm always moved by your ability to string words together into a heartfelt piece about important issues in the world today. You say so much but the deep feeling I always come away with is \"love one another.\" A simple admonishment that isn't easy to practice.---\nI just wanted to send you a note to thank you so much for today's article on gay marriage!! I am so heartily sick of people arguing over issues they know nothing about and who assume that because they are RIGHT, they can say whatever they like with little regard for \"the other side's\" opinions, convictions or personal feelings.\nI can assure the RIGHTS group that there are very few families who do not have at least one gay family member (in or out of the closet) within their extended clan. Before they get even more offensive about something that is really none of their business, perhaps they should speak to their gay relatives to find out what type of discrimination they face every day!\nThank you, thank you, thank you for your column in today's Free Press. Your words are right on. I wish your column could be reprinted in newspapers all over the U.S. and Canada.---\nWow - loved your column today! I couldn't of said it better. Religion in my opinion is for people who can't think for themselves. I live in an openly gay relationship. Most of our friends are straight married couples. Next year I will have been with my partner for 25 years. If we chose to marry - whose lives would be affected?---\nI saw your article in the London Free Press the other day. What an wonderful piece. You said it all. Amen. God Bless You and Your Family---\nThanks so much for telling the truth, even when it's not the most popular viewpoint! How refreshing. It may seem obvious to most of us, that homosexuals have nothing to do with the downfall of marriage, but apparently, in this twilight zone that is our society, that's not the case.---\nFinally. Someone who has commom sense about this issue. Someone who also realizes that if straights could be put in jail for failing to keep their marriage vows, most of them would be inside rather than outside the bars.---\nStraights use the bible only as a convenience, only when it serves their purpose to pick and choose what they what to believe. Well let them throw their stones because there is a higher power that will pass judgement on their hate and discrimination.\nThanks Carmi. Well done.\nUnfortunately you probably will not receive many positive comments to your column on same sex marriage, but here is one: \"Well said ! Well written ! Good for you !\"---\nI do not feel, nor does my wife, that our healthy, 42 year heterosexual marriage is in any way threatened by this legislation. Nor do we feel that our God supports the hypocrisy and strident whining from the closet homophobes who oppose it.\nWhat you wrote needs to be said. Our thanks for a job well done.\nYour argument involving religion and discrimination was very effectively written. I have never understood how happily married couples in a traditional marriage could ever feel threatened if their legal union was equal to a same-sex union. To drag religion into the equation is just poppy-cock!!---\nI appreciate your comment that building bridges rather than walls would bring us all closer together, and agree that is what God would ultimately want for us as a society. We finally accepted that the concept of unwed moms, legal common-law marriages with children, families not led by a mom or dad (children raised by other relatives) and married couples without children, by choice or infertility, are still considered families.\nI find it impossible to swallow that some people can find a way to generalize an entire group of minorities and label them with falsified arguments. Ignorance is a tragedy that happens in many degrees and seems to be conditioned to human nature.---\nCarmi again: I suspect the debate doesn't end here. I invite you all to continue to use Comments, e-mail and any other tool you've got to share your thoughts, both with me and with each other. I'll be watching the paper in the days to come in case any additional letters to the editor are published. I'll share whatever else I come across in future postings.\nIn the meantime, I offer you all my heartfelt thanks for supporting me through this process. I am once again thanking my lucky stars that I decided to do this for a living. What an experience."} +{"text": "With computer power increasing, are UAD plugins worth the hassle?\nTo clarify that question, let me bring up a little....\nFalling under the Universal Audio company umbrella, UAD plugins rely on an external accelerator. This happens three ways:\nThe PCI-e option is the best option as it provides the most reliable speeds. This is in my system. It’s available for the PC or Mac.\nThe Satellite is an external based option connecting via Firewire.\nThe Apollo, like the Satellite, connects externally via Firewire. It also connects via Thunderbolt and includes an audio interface. As of early 2012, the external options are currently only available on the Mac.\nThere was also an ExpressCard option for laptops available for both PC and Mac.\nSo the idea is to have these external accelerators handle the complex number crunching chores, freeing up your native CPU. This idea makes a lot of sense.\nBut the question remains: what happens when computer power catches up?\nIt certainly pays to keep an eye (and ear) on future trends, but what matters most is the present.\nWith that in mind let me share with you what’s presently in the UAD plugins portion of my toolset:...\nUAD’s audio mastering software tools called the Precision Series. These are:\nThe Precision EQ has wide gentle curves that allow me to subtly give a mix what it needs while being as transparent and ‘complementary’ as possible. Important when respecting and preserving the artists mix intentions.\nIt’s also what I use for my bass enhancement trick without actually boosting any bass!\nI hate multiband compression! I try to avoid it as much as possible.\nI have to use it, I start with the Precision Multiband.\nIt does what it’s supposed to, the way I expect it to, and...it does it extremely well!\nCalling it a bread-and-butter tool is not an insult. It performs and operates simply.\nI generally use this as a dynamic equalizer. I love how it can gently soften stray peaks in offending frequency regions when set correctly. A great mix balancer.\nAdmittedly, the Limiter and Maximizer don’t get as much use as they used to.\nI find myself reaching for PSP Xenon more often to shape the final sound of a master the way it needs to be. If that fails, it’s over to Voxengo’s Elephant.\nThe Maximizer provides brickwall limiting with an analog flavour. But it’s main feature is harmonic enhancement. Again, if I use this, I prefer to use it as a spice to a track, not for volume boosts.\nThis is nothing against the Maximizer. It’s simply that for more character I prefer to use these...\nThe Pultec EQ's, and the classic Fairchild limiter are legendary.\nWith the UAD Pultec, just running a mix through it can produce magic (and a nice volume gain!) And it too can provide some nice bass enhancement without muddying up the low end.\nAnother magic spot on the Pultec is the 8 kHz region. A subtle, gentle and wide boost here can open up many mixes that may lack air or clarity. I’ve also found this setting to be a great restorative EQ on cassette transfers!\nThe UAD Fairchild is another 'magic box' when just running a mix through it.\nI love to use its mid-side compression. This puts a nice glue to vocals, and the rhythm tracks. It also gently opens up the soundstage. When set just right, it gives a mix a wonderfully, almost subliminal dynamic enhancement.\nWhile the Pultec and Fairchild can have a home in either full band mixes or lighter acoustic settings, the LA2A is best mostly on lighter acoustic tracks with small accompaniments.\nReally! The LA2A can work as a mastering tool! Pleasant surprise for me and my clients!\nI've been finding recently that the LA2A can work quite well on light acoustic mixes with just a gentle 1–2 dB gain reduction. My test for if it works: if something goes missing when I take it out, back in it goes!\nAnother compressor that gets occasional use is the Neve 33069.\nIt has nice gain enhancement with its built harmonics. It’s performed rather well for some of the jazz masters I do. However this plugin is a real power hog, and no doubt the catalyst for the increased power of the current UAD-2 accelerator.\nWithout the UAD-2, tools like these would be impossible:\nExclusive to UAD plugins, the Manley Massive Passive Mastering EQ is worth the price of admission. Certainly more ‘quirky’ in its operation than other EQ’s the results are worth it. I’ve used as successfully on Classical work as well as the more ‘standard’ rock and hip-hop tracks.\nAnd while I love my Pultec-Fairchild chain, for ultimate character UAD's emulation of Dave Derr's Fatso unit is it! I prefer the Sr. version for control of its transformer and compressor section. This thing just makes everything bigger and warmer! Bass - Stereo Image - you name it!\nIn mastering, I rarely use reverbs - even less than multiband compression. That's because, even at 1 per cent settings, they can take off that edge and precision a mix has.\nHowever when a mix is just too dry, or needs space, the presets in the RealVerb Pro and DreamVerb are where I go. For small spaces, the Jazz Club and Small Room presets in the RealVerb Pro are perfect. For larger ones, both units have great Warm Ambiance settings.\nReverbs are the one exception I have in my work where I rely on presets. And these UAD plugins solutions are my go to choice.\nAll issues about native and accelerator power aside, I wouldn’t be without UAD plugins.\nThey’re absolutely capable of providing superb masters.\nAnd superb masters are all my clients are concerned about.\nProud to be affiliated with these organizations:"} +{"text": " stride_hidden_t,\n stride_pool_b,\n stride_pool_d,\n stride_pool_s,\n stride_weight_d,\n stride_weight_w,\n stride_out_b,\n stride_out_d,\n stride_out_t,\n stride_inter_b,\n stride_inter_t,\n stride_inter_d,\n stride_inter_s,\n KERNEL_SIZE=state_len + 1,\n HAS_BIAS=bias is not None,\n SILU=activation in (\"silu\", \"swish\"),\n CACHE_INTERMEDIATE=intermediate_conv_buffer is not None,\n BLOCK=block,\n num_warps=4,\n )\n return out\n\n\ndef cache_intermediate_conv_states(\n *,\n initial_conv_state: torch.Tensor,\n hidden_states: torch.Tensor,\n intermediate_conv_buffer: torch.Tensor,\n intermediate_state_indices: torch.Tensor | None,\n) -> None:\n \"\"\"Populate the speculative-decode conv-state cache for all draft timesteps.\n\n ``causal_conv1d_update`` doesn't expose intermediate state views so we\n reconstruct them by unfolding a concatenation of the initial state and\n the current-step hidden states.\n \"\"\"\n seq_len = hidden_states.shape[-1]\n if seq_len == 0:\n return\n\n state_len = initial_conv_state.shape[-1]\n if state_len == 0:\n return\n\n if intermediate_conv_buffer.shape[1] < seq_len:\n raise ValueError(\n \"intermediate_conv_buffer does not have enough step capacity \"\n f\"({intermediate_conv_buffer.shape[1]} < {seq_len})\"\n )\n\n buffer_view = intermediate_conv_buffer.narrow(1, 0, seq_len)\n batch, dim, _ = hidden_states.shape\n stride_init_b, stride_init_d, stride_init_s = initial_conv_state.stride()\n stride_hidden_b, stride_hidden_d, stride_hidden_t = hidden_states.stride()\n stride_buffer_b, stride_buffer_t, stride_buffer_d, stride_buffer_s = buffer_view.stride()\n if intermediate_state_indices is not None:\n intermediate_state_indices = intermediate_state_indices.to(device=hidden_states.device, dtype=torch.int32)\n total = batch * seq_len * dim * state_len\n block = 256\n _cache_intermediate_conv_states_kernel[(triton.cdiv(total, block),)](\n initial_conv_state,\n hidden_states,\n buffer_view,\n intermediate_state_indices,\n batch,\n dim,\n seq_len,\n state_len,\n stride_init_b,\n stride_init_d,\n stride_init_s,\n stride_hidden_b,\n stride_hidden_d,\n stride_hidden_t,\n stride_buffer_b,\n stride_buffer_t,\n stride_buffer_d,\n stride_buffer_s,\n HAS_INDICES=intermediate_state_indices is not None,\n BLOCK=block,\n num_warps=4,\n )\n\n\ndef dao_causal_conv1d_prefill(\n hidden_states: torch.Tensor,\n weight: torch.Tensor,\n bias: torch.Tensor | None = None,\n conv_state: torch.Tensor | None = None,\n activation: str | None = None,\n) -> Tuple[torch.Tensor, torch.Tensor]:\n \"\"\"Fused causal conv for a full prompt. Returns ``(output, new_conv_state)``.\"\"\"\n dao_causal_conv1d = load_dao_causal_conv1d()\n if dao_causal_conv1d is None:\n raise ImportError(\"causal_conv1d is not installed\")\n actual_out, actual_state = dao_causal_conv1d.causal_conv1d_fn(\n x=to_channel_last_storage(hidden_states),\n weight=weight,\n bias=bias,\n initial_states=None if conv_state is None else to_channel_last_storage(conv_state),\n return_final_states=True,\n activation=activation,\n )\n return actual_out.to(hidden_states.dtype), actual_state\n\n\ndef prepare_varlen_conv_state(\n *,\n conv_state: torch.Tensor | None,\n num_seqs: int,\n conv_dim: int,\n state_len: int,\n device: torch.device,\n dtype: torch.dtype,\n query_start_loc: torch.Tensor,\n) -> tuple[torch.Tensor, torch.Tensor]:\n has_initial_state = conv_state is not None\n if conv_state is None:\n conv_state = torch.zeros(\n num_seqs,\n conv_dim,\n state_len,\n device=device,\n dtype=dtype,\n )\n elif conv_state.dtype != dtype:\n conv_state = conv_state.to(dtype)\n\n return conv_state, torch.full(\n (num_seqs,),\n has_initial_state,\n device=query_start_loc.device,\n dtype=torch.bool,\n )\n\n\ndef firecuda_causal_conv1d_varlen_prefill(\n hidden_states: torch.Tensor,\n weight: torch.Tensor,\n bias: torch.Tensor | None = None,\n conv_state: torch.Tensor | None = None,\n activation: str | None = None,\n *,\n query_start_loc: torch.Tensor,\n cache_indices: torch.Tensor,\n has_initial_state: torch.Tensor,\n seq_lens_cpu: List[int] | None = None, # AMD: aiter grid sizing; CUDA: max-seqlen grid-z\n return_token_major: bool = False,\n) -> Tuple[torch.Tensor, torch.Tensor]:\n \"\"\"Causal conv for a flattened variable-length prefill batch.\n\n ``hidden_states`` is shaped ``[1, conv_dim, total_tokens]`` and\n ``query_start_loc`` partitions that flattened token axis by sequence.\n\n Uses ``torch.ops.firecuda.causal_conv1d_fwd`` on CUDA and aiter Triton on AMD.\n"} +{"text": "Submitted by slavemeeting on Wed, 23/03/2016 - 12:49am\nOther special requirements:\nLooking for a fosamax? Not a problem! If you would certainly like to receive additional facts relating to fosamax kindly see ---- http://company-article.info/med/fosamax ---- Guaranteed Worldwide Shipping Discreet Package Low Prices 24/7/365 Customer Support 100% Satisfaction Guaranteed. Tags: best price fosamax free shipping moneygram no prescription fosamax alendronate sodium in internet paypal fast maryland cheapest generic fosamax melbourne buying fosamax general health in internet medicine cod accepted new mexico synthroid and fosamax empty stomach low cost fosamax in internet drugs saturday shipping california buy overnight fosamax low price fosamax online mastercard no rx west virginia https://jsfiddle.net/v0408stw/ online fosamax and fedex garden grove generic fosamax canadian pharmacy low price fosamax american express online fosamax avascular necrosis can i buy fosamax in internet moneygram saturday shipping utah #fosamax generic fosamax manufacturing fosamax dental side effects bone loss buy fosamax rx online get fosamax 10mg online visa no script ohio where to get fosamax 35mg online shop fedex north carolina can i purchase fosamax online tab priority mail virginia want to buy fosamax in internet coupon fedex canada order fosamax online approval buy brand fosamax alendronate sodium in internet tablet free shipping malaysia generic fosamax sold in the us fosamax in internet no doctors tennessee fosamax online legitmate canada netherlands pharmacy fosamax monthly fosamax buy cod fosamax in internet pills priority mail manufacturer of generic fosamax fosamax rebate coupons fosamax 500 mg bestellen indication for fosamax buy cod fosamax in internet jcb fast iowa buy brand fosamax western union without script buy brand fosamax in internet medicine saturday delivery rhode island buying fosamax in internet check fast maine fosamax online fedex fosamax and buy i want alendronic acid fosamax online saturday shipping canada discount alendronate fosamax fosamax and coumadin drug where to buy fosamax alendronate sodium fedex maine wholesale fosamax without a perscription shipped overnight i want fosamax paget's disease in internet no prescription pharmacy fosamax online jcb fast delivery pennsylvania want to buy fosamax in internet rx fedex oklahoma abuse of fosamax 70mg in internet shop without script new york conditions for which doctors prescribe fosamax low prices for generic fosamax next day no prescription needed how to buy fosamax in internet amex no prescription new york purchase online fosamax 70 mg ordering fosamax without prescription fosamax rx side effects order ditropan ointment online fosamax interaction corporation share price best price alendronate sodium fosamax jcb maine can i buy fosamax in internet diners club fedex indiana fosamax treatment for seborrheic dermatitis fosamax study low cost fosamax online moneygram saturday delivery wyoming when will fosamax generic be available? abuse of fosamax in internet western union overnight alabama no prescription saturday delivery fosamax fosamax patient information bone loss find fosamax samples with check actually on line need fosamax in internet visa saturday shipping south carolina want to buy fosamax online american express fast usa buy brand fosamax 35mg in internet tablets mississippi cheap fosamax in internet drugs no rx massachusetts how to get alendronate sodium fosamax drugs no script buying generic fosamax from yp healthcare from india can i buy fosamax general health online pharmaceutical priority mail nevada alendronic acid fosamax online no prescription new mexico get fosamax alendronic acid online pills saturday shipping idaho get alendronate sodium fosamax priority mail get fosamax online buy fosamax at a discount where to order fosamax online purchase fosamax alendronic acid online wire transfer podcast boniva fosamax alternatives Online pharmacy drugs do not fall on this category. No, not the canned meat variety - spam is like the junk mail that you receive inside mail box, just in the electronic form. Choose cloth napkins at home and bring your own personal reusable water and occasional cups to operate. If you're interested in certification to improve your career potential being a Georgia pharmacy tech, then look into the Pharmacy Technician Certification Board certification program. Some like to help people, others just like the science aspect of the job. Chances are there is going to be only one person working the drive-thru at any time whereas there will likely be multiple people working inside. The tech will enter orders, check orders, process requests for insurance and patient information among other things. Many require math and science coursework, and prospective students should know about what those prerequisites are and whether they meet them. In the situation of pharmacy specialist jobs, giving the wrong prescription is the widespread error that is certainly certainly mostly documented. By giving your pharmacy the complete name of the medication you are able to better safe guard your health. Important point being noticed is always that cost can't be the first consideration. Use those outlines as being a roadmap to aid you study for that pharmacy tech certification test. However, please be guided from the average hourly and annual salary data provided. If the trouble is not treated on an extended period of time, it might lead to serious complications including cancer. This institute is situated in Mohali, Punjab and is also completely dedicated towards advanced studies and new researches on pharmaceutical science.\nWhat region are you from?:Scotland"} +{"text": "Tums manifests its antacid magic in \"Angry Bear,\" where the aforementioned animal steals food, overeats and goes back in for one more score: the Tums.\nThere's something about the sight of a bear, far-off and out of decapitation range, that totally numbs us to its potential malevolence. It's like, \"Aww, look at the bear eating all the pizza. Look at the bear breaking the watermelon. Look at the bear getting the Tums for its tummy.\"\nYou kind of want to curl up around it and fall asleep while it's lying against one of those gutted cars, nursing a food hangover.\nTo make kids act more energy-smart, the Department of Energy launched Lose Your Excuse, a painfully cute website* that encourages engagement and boasts a 10-step energy \"action plan\" to download.\nTwo quirky little ads drive traffic in its direction. Each features a kid getting caught in a lie about why s/he hasn't become more energy efficient. (I know that vibes like the Spanish Inquisition, but the execution is feel-good and funny).\nExcept there's no Coke, and lots of Domos.\n\"Jump Rope\" -- chock full of delicious images and noises -- was put together for client Nike by AKQA. Creativity Online pegged its position \"the escapism of exercise.\" Well-said.\n- Somebody just sent us a link to KillaBanker.com, a little CafePress store where you can buy knee-jerk reactions to economic despair.\n- Hanzi Smatter, a site \"dedicated to the misuse of Chinese characters in Western culture,\" is hilarious. See awkward interpretation of tattoo on a model featured in AussieBum's Commando ad.\n- Kellogg's brand rep suffers following Phelps fallout.\n- What ho, a Dairy Queen blog.\n- More jibjab over Arnell/Tropicana.\nWitness with a growing sense of unease as a couple on its first date quotes lines from Romeo & Juliet.\n$5 says they met on eHarmony.\n\"How Romeo Pulls Juliet,\" which vibes like a middling tribute to Baz Luhrmann's '96 oeuvre, was put together by Madeinmilan Wine. The company wanted to \"tell a story about having fun with wine, indulging in intense pleasure\" while incidentally promoting a suite of wines named after iconic characters, like Romeo. (There's also a bottle marked Brutus. Hrm.)\nFor requisite engagement purposes, check out the \"wine pairing\" section, where you (apparently...?) pair wine to other things, like \"travel\" or \"chill out.\" (We have NO idea.)\nClick on \"sex\" for an exciting shot of a mad couple crawling around on all fours. We're not sure why it's there, but it struck us as one of the few things worth mentioning at all.\nRemember those Little Thickburger commercials from last year? Riffing off that, Hardee's launched an ad generator app so fans could create their own Thickburger comparisons.\nThe company expected maybe one or two to shine, but it turns out about 16 spots turned out to be broadcast-quality. (Though when you think about it, it's a pretty tough formula to screw up: [Big thing. Little thing.] Extra points for wordplay.) See them here.\n\"And we didn't even offer them a million dollars. Or anything for that matter,\" Hardee's added, puffing its chest out for extra effect.\nWith help from Cactus, ONE Step focuses on protecting the health of young children by encouraging smoker parents to go outside before lighting up.\nThe narration is soothing and the message doesn't direct smoking wholesale, although the smoke dragons and flesh-eating ravens -- which malevolently circle and eventually engulf the kiddies -- make things just uncomfortable enough.\nWe'll step outside, and we don't even have kids. Though this doesn't provide a gameplan for what to do when little kids walk by, but hey, those ones aren't yours.*\nMore on this at raisesmokefreekids.com.\nCNBC does the financial thing by day but they get all \"original programming\" at night. To let people know, they've launched some Woods Witt Dealy & Sons-created, program-specific ads to hype the shows. With the headline, \"Show Me the Money,\" one ad touts American Original: Westminster Dog Show, a backstage look at the inner workings of the $43 billion pet industry. PETA?\nAnother ad carrying the ever-appropriate headline, \"Demolished,\" examines \"how the American dream became a nightmare\" in a show called How the American Dream Became A Nightmare. Hmm, now that sounds like some seriously depression-inducing programing.\nBut, hey, we gotta face facts. Pet shows are stupid and the American Dream does not mean everyone should own a home.\nSee both ads here and here.\nDIRECTV reminds us all of its relevance (...?) with help from fictional rival Cable Corp Inc. In this latest installment of boardroom bumbling, Cable Corp decides to battle DIRECTV with a new tagline: \"Get Youthenized!\"\nEnter creepy puns. By Deutsch/LA.\nCollegeClickTV.com hopes to encourage more kids to get a college education -- and possibly get into football? -- by broadcasting soothing pro-college messages, spoken by President Obama, on network TV.\nHear everyone's favourite political personality wax poetic about the merits of an education -- and football -- while a static image reads, \"And now a message about... COLLEGE ...the best investment that you can make.\" CollegeClickTV's URL appears at the end of each clip."} +{"text": " ``seq_lens_cpu`` is required on AMD (aiter Triton grid sizing); on CUDA it supplies the\n max per-batch seqlen so the channel-contig kernel can size grid-z without a host readback.\n When ``return_token_major`` is true, returns ``[1, total_tokens, conv_dim]``.\n \"\"\"\n if hidden_states.ndim != 3 or hidden_states.shape[0] != 1:\n raise ValueError(\n \"firecuda_causal_conv1d_varlen_prefill expects hidden_states with shape \"\n f\"[1, conv_dim, total_tokens], got {tuple(hidden_states.shape)}\"\n )\n\n if conv_state is None:\n raise ValueError(\"firecuda_causal_conv1d_varlen_prefill requires conv_state\")\n\n x = hidden_states.squeeze(0)\n channel_contiguous = (not is_amd()) and x.stride(0) == 1 and x.stride(1) == x.shape[0]\n if x.stride(-1) != 1 and not channel_contiguous:\n x = x.contiguous()\n if weight.dtype != x.dtype:\n weight = weight.to(x.dtype)\n if bias is not None and bias.dtype != x.dtype:\n bias = bias.to(x.dtype)\n\n silu_activation = activation in (\"silu\", \"swish\")\n if is_amd():\n from aiter.ops.triton.causal_conv1d import causal_conv1d_fn\n\n if seq_lens_cpu is None:\n raise ValueError(\"firecuda_causal_conv1d_varlen_prefill requires seq_lens_cpu on AMD\")\n x = causal_conv1d_fn(\n x,\n weight,\n bias,\n conv_state,\n query_start_loc,\n seq_lens_cpu,\n cache_indices=cache_indices,\n has_initial_state=has_initial_state,\n activation=activation,\n )\n elif channel_contiguous:\n # max_seqlen: longest single sequence, used to size the channel-contig kernel's\n # grid-z. When the caller supplies CPU seq lens (GDN prefill path) pass it directly\n # so the kernel avoids a query_start_loc host readback (keeps the op CUDA-graph\n # captureable). Fall back to -1 (kernel reads back) when unavailable.\n max_seqlen = max(seq_lens_cpu) if seq_lens_cpu is not None else -1\n x = torch.ops.firecuda.causal_conv1d_fwd_channel_contig_out(\n x,\n weight,\n bias,\n conv_state,\n query_start_loc,\n cache_indices,\n has_initial_state,\n silu_activation,\n -1,\n max_seqlen,\n )\n else:\n _causal_conv1d_varlen_fwd(\n x,\n weight,\n bias,\n conv_state,\n query_start_loc,\n cache_indices,\n has_initial_state,\n silu_activation,\n )\n\n selected_indices = cache_indices.to(device=conv_state.device, dtype=torch.long)\n actual_state = conv_state.index_select(0, selected_indices)\n if return_token_major:\n x = x.transpose(0, 1)\n return x.unsqueeze(0).to(hidden_states.dtype), actual_state\n\n\ndef _apply_causal_conv1d_update(\n hidden_states: torch.Tensor,\n conv_state: torch.Tensor,\n weight: torch.Tensor,\n bias: torch.Tensor | None = None,\n activation: str | None = None,\n) -> torch.Tensor:\n if is_amd():\n from aiter.ops.triton.causal_conv1d import causal_conv1d_update\n\n actual_out = causal_conv1d_update(\n hidden_states,\n conv_state,\n weight,\n bias=bias,\n activation=activation,\n )\n else:\n dao_causal_conv1d = load_dao_causal_conv1d()\n if dao_causal_conv1d is None:\n raise ImportError(\"causal_conv1d is not installed\")\n actual_out = dao_causal_conv1d.causal_conv1d_update(\n x=hidden_states,\n conv_state=conv_state,\n weight=weight,\n bias=bias,\n activation=activation,\n )\n\n if actual_out.dtype != hidden_states.dtype:\n actual_out = actual_out.to(hidden_states.dtype)\n return actual_out\n\n\ndef dao_causal_conv1d_update(\n hidden_states: torch.Tensor,\n conv_state: torch.Tensor,\n weight: torch.Tensor,\n bias: torch.Tensor | None = None,\n activation: str | None = None,\n) -> torch.Tensor:\n \"\"\"Single-step causal conv update that advances ``conv_state`` in place.\"\"\"\n return _apply_causal_conv1d_update(\n hidden_states,\n conv_state,\n weight,\n bias=bias,\n activation=activation,\n )\n\n\ndef dao_causal_conv1d_decode_sequence(\n hidden_states: torch.Tensor,\n conv_state: torch.Tensor,\n weight: torch.Tensor,\n bias: torch.Tensor | None = None,\n activation: str | None = None,\n intermediate_conv_buffer: Optional[torch.Tensor] = None,\n intermediate_state_indices: Optional[torch.Tensor] = None,\n) -> torch.Tensor:\n \"\"\"Speculative / multi-token decode: apply causal conv over every draft timestep.\n\n ``causal_conv1d_update`` advances state for every timestep in\n ``hidden_states`` in causal order (equivalent to repeated single-step\n updates), not only the last token. Parity with stepping one position\n at a time is asserted in\n ``test_dao_ca"} +{"text": "Artist Spotlight: Alexander Guerra\nAlexander Guerra is an artist and photographer from Miami specializing in self-portraiture. Currently he is engulfed in his alter ego The Rabbit. The Rabbit is the central character in his images, set in both surreal scenes and real environments. His work is a provocative mix of bizarre travel stories as well as more offbeat contemplative pieces. Guerra's Rabbits are awkwardly posing, sometimes suggestively sexual and mysterious, while other times playful and mischievous. Guerra builds a tension between the innocence of a bunny and a sexually aggressive, very male hare. The Rabbit is Guerra's demanding inner exhibitionist. And yep, we are there to be his audience.\nOver the past year and a half, Guerra has unleashed his Rabbit army on the world, immortalizing his Rabbit in Paris, Tokyo, Rome, Beijing, and Sydney. His self-portraits become both his souvenir and the postcard sent home.\nThe Advocate: Why are you a photographer?\nAlexander Guerra: The \"why?\" I do not know. I do know that my memory/mind is very photographic — always has been — and I've always seen things in these imaginary frames. That said, my images are an extension of my mind. A backup drive, if you will. A kind of flash drive that I share with others.\nWhat started you on this particular series?\nI started the Rabbits last summer in Paris (Le Lapin, La Nuit). My boyfriend is French, and this was the second time that we visited the city. The first time was a short trip and a rat race for me to see all the sites. This second trip was going to be a week long. Being a fan of fashion magazines, I knew I couldn't waste the scenery. I knew that I wanted to shoot around the city with a sense of a high-fashion editorial. I'd have this opportunity to immortalize my alter-self in arguably the most beautiful city in the world. The city of lights. So I did.\nI get asked this question all the time. Recently, I was at my mom's house and, while cleaning out a closet, we found two pieces of artwork I made as a child. One was a rabbit I made out of paper plates and crayons, and the other was a story I wrote about an Easter Bunny. Since childhood I've been drawn to rabbits, but it was subconsciously as an adult that I would rediscover, accept, and evolve that desire to my alter ego.\nAny interesting things happen while shooting on location?\nThis summer I was in Lisbon. A beautiful city and an amazing backdrop for my \"LisBunnies.\" While shooting one night in front of yellow trolleys, these taggers began tagging the trolleys. What were my boyfriend and I to do? I could chase them in a bunny mask — and do what? We gave in to the moment. I shot some pictures of them, finished my shoot, and we hopped along.\nDo you need to be sure to pack rabbit stuff whenever you travel?\nYrs! (Cue my boyfriend's eye roll.) This year I started making my own masks with lots of thought given to locations. I'm borderline obsessive-compulsive when it comes to my art. Like a celebrity wouldn't wear the same outfit twice on the red carpet, I find it hard to shoot the same mask in different countries and cities. Since I make them, there's nothing stopping me from making a new mask for each location, and I do. This summer I took a Mediterranean cruise. I packed four masks with potential wardrobes for each, including a girl's uniform skirt for my Roman the Rabbit. I also packed four Ziploc bags with enough thread, safety pins, and fabric to make four more masks while on the trip. I also like to incorporate local clothing bought while visiting the city. The red vest in Marry the Night was a purchase I made in Tokyo, which was way better than the tank top I originally brought for the shoot.\nWhat do you still want to do with your rabbit-oriented work?\nI want to create Rabbit sculptures and would also like to create multimedia work incorporating my childhood portraits in Rabbit masks. I'm currently working on the latter, which is a tie in to a childhood memory.\nWhen I was little I loved to put on a show. My dad would take my brother and me to the movies and I would dance with my eyes closed in front of the screen and I wouldn't stop till the music stopped and the people would clap. I lost that around puberty and became self-conscious. The rabbit mask allows me to revisit that kid at the theater, and the multimedia work of meshing my childhood pictures and Rabbit masks is a visual extension of my childhood memory."} +{"text": "During this summer PepsiCo has been in agricultural news for a number of projects that portrays the mega-food and drink company as an expert in sustainable agricultural production of nearly any and every type of crop grown in the world.\nTwo years ago, Coca Cola Company had speakers making presentations to groups about sustainable agriculture with a focus on improving the production of ingredients used in the company’s focus of beverages, mainly juices. Now, PepsiCo has taken the lead in promoting itself as a leader in sustainable agriculture of a wider variety of crops, which is natural because of its ownership of 19 different product lines with the biggest being Quaker, Frito-Lay and beverage brands. Similar to most large multinational corporations, PepsiCo has its charitable foundation, and agricultural projects appear to be the beneficiaries of more foundation funding.\nYesterday, the PepsiCo Foundation announced a public-private partnership aimed at dramatically increasing chickpea production and increasing food security of Ethiopia. The other partners are the United Nations World Food Programme (WFP) and the United States Agency for International Development (USAID).\nThe program, being called Enterprise EthioPEA, will support the Ethiopian government’s agriculture sector development plans. The EthioPEA program aims to help 10,000 Ethiopian farmers to double their chickpea production by “applying more modern agricultural practices and irrigation techniques” so that chickpeas are available for the country’s population and for export.\nThe news release explains that this program fits within PepsiCo’s long-range agricultural plans. “For PepsiCo, chickpea-based products are an important part of the company’s strategy to build a $30 billion global nutrition business by 2020.”\nThe company sways toward crop production being more appropriate for investment than animal, meat production. “With an average of 22 percent protein, chickpeas are a more sustainable alternative to meat and have the potential to reduce the risk of coronary artery disease and diabetes,” it was announced.\nThe full explanation of PepsiCo’s agricultural focus was provided in a one-sentence statement. “PepsiCo’s investment in Enterprise EthioPEA is part of a global strategy to make the company a leader in sustainable agriculture around the world, and the latest example of the company’s proven and transferable market-based model, which advances healthy nutrition and long-term financial performance.”\nEarlier in the week prior to the EthipPEA announcement, PepsiCo announced it will work with the Chinese government to “help Chinese farmers learn the latest techniques in agriculture,” reported the Associated Press. This arrangement was finalized with the signing of a memo with China’s Ministry of Agriculture.\nThe Chinese project will take the form of building “demonstration farms” to test and showcase the newest “techniques in irrigation, fertilization and crop management.” One of the goals is to improve the Chinese farmers’ standard of living.\nPepsiCo noted it had already assisted Chinese potato farmers to reduce the amount of water used while also increasing yields. With past and present investment, PepsiCo reported it will have invested $3.5 billion from the beginning of 2008 through the new demonstration farms project.\nIn mid-summer, PepsiCo announced it was rolling out its new i-crop farming technology Web-based tool developed in conjunction with Cambridge University, for first use in the United Kingdom and Europe. Successful implementation will eventually result in the program being part of the Chinese demonstration farms plus become part of PepsiCo’s involvement in agricultural production in Australia, India and Mexico. There also have been rumors fanned by PepsiCo executives about U.S. projects.\nThe i-crop was described as “a crop management system that will enable PepsiCo’s farmers around the world to monitor, manage and reduce their water use and carbon emissions, while also maximizing potential yield and quality.”\nIt was reported with the announcement of i-crop that the company had developed 15 global goals and commitments to guide its goals of protecting the earth’s natural resources “through innovation and more efficient use of land, energy, water and packaging.”\nPepsiCo executive’s express the reason for PepsiCo’s involvement in showing farmers how to grow crops in statements similar to that attributed to Richard Evans, president of PepsiCo U.K. and Ireland. “Farming is in the DNA of our business. We rely on fresh produce every day. Finding ways to produce more food with less environmental impact is essential to our future.”\nA PepsiCo executive is scheduled to address the Agricultural Retailers Association annual conference November 30."} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/nn/moe/openai_moe.py. Lines: 880.\n\nfrom sklearn.utils.discovery import all_estimators\nimport torch\nfrom torch.profiler import record_function\nfrom torch import nn\nfrom typing import Callable, Tuple\nfrom contextlib import contextmanager\nimport math\n\nimport triton\nimport triton.language as tl\nimport triton_kernels\nfrom triton_kernels.topk import topk as triton_kernels_topk\nfrom triton_kernels.tensor import make_ragged_tensor_metadata, SparseMatrix\nfrom triton_kernels.tensor_details.dtype import BIT\nimport triton_kernels.swiglu\nfrom triton_kernels.numerics_details.mxfp import (\n downcast_to_mxfp,\n MXFP_BLOCK_SIZE,\n upcast_from_mxfp,\n)\nfrom triton_kernels.matmul import PrecisionConfig, FlexCtx, FusedActivation, FnName, Epilogue, matmul\nfrom triton_kernels.specialize import FnSpecs\nfrom triton_kernels.numerics import InFlexData\nfrom triton_kernels.tensor import convert_layout\nfrom triton_kernels.tensor_details.layout import (\n StridedLayout,\n HopperMXValueLayout,\n BlackwellMXScaleLayout,\n BlackwellMXValueLayout,\n HopperMXScaleLayout,\n)\nfrom triton_kernels.tensor_details import layout\nfrom triton_kernels.tensor import wrap_torch_tensor, FP4, torch_dtype_to_dtype\nfrom triton_kernels.tensor import Tensor as TritonTensor, Storage as TritonStorage\nfrom triton_kernels.compaction import compaction\nimport triton_kernels.matmul_details.opt_flags as opt_flags\nfrom fireworks.triton.silumul.silumul_details import _silumul_fn\nimport fireworks.nn as firenn\nfrom fireworks.nn.score_processor import TopkScoreProcessor, call_score_processor\n\nfrom ..linear import Linear as FwLinear\nfrom .fused_moe import FusedMoEBase, ConvertableFusedMoEBase, FusedMoeOutput\nfrom .sharded_moe import ShardedMoE\nfrom ..all_reduce import AllReduce\nimport fireworks.nn.shard as fireshard\nfrom fireworks.nn.moe.transforms import interleave_hidden_dim # for torch.ops.fireworks\nfrom fireworks.cuda.capability import get_compute_capability, is_hopper, is_blackwell_and_higher\nfrom fireworks.nn.pllt import Manifestable, UninitializedTensorLoader, collect_loaders\n\nfrom triton_kernels import target_info\n\n\n@contextmanager\ndef opt_flags_scope(constraints: dict):\n try:\n opt_flags.update_opt_flags_constraints(constraints)\n yield\n finally:\n opt_flags.reset_opt_flags_constraints()\n\n\n@triton.jit\ndef pack_bitmatrix(\n bitmatrix,\n expt_indx,\n n_rows,\n n_cols,\n n_expts_act,\n BLOCK_SIZE_M: tl.constexpr,\n BLOCK_SIZE_K: tl.constexpr,\n sentinel: tl.constexpr,\n):\n \"\"\"\n Packs expert indices into a row-wise bitmatrix. Each row corresponds to a token; bits mark selected experts.\n \"\"\"\n pid_m = tl.program_id(0)\n offsets_m = pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M)\n offsets_k = tl.arange(0, BLOCK_SIZE_K)\n offsets = offsets_m[:, None] * n_expts_act + offsets_k[None, :]\n mask = (offsets_m < n_rows)[:, None] & (offsets_k < n_expts_act)[None, :]\n indices = tl.load(expt_indx + offsets, mask=mask, other=sentinel)\n div = indices // 32\n rem = indices % 32\n iters = tl.cdiv(sentinel, BLOCK_SIZE_K)\n for i in range(iters):\n offs = tl.arange(0, BLOCK_SIZE_K // 32) + i * (BLOCK_SIZE_K // 32)\n x = tl.where(div[:, :, None] == offs[None, None, :], (1 << rem)[:, :, None], 0)\n y = tl.reduce_or(x, axis=1)\n bitmatrix_ptrs = bitmatrix + offsets_m[:, None] * n_cols + offs[None, :]\n tl.store(bitmatrix_ptrs, y, mask=offsets_m[:, None] < n_rows)\n\n\n@triton.jit\ndef _routing_clear_bitmatrix(Bitmatrix, stride_bm, stride_bn, shape_bn, cutoff, BLOCK_N: tl.constexpr):\n pid_m = tl.program_id(0)\n cutoff_word = cutoff // 32\n cutoff_bit = cutoff % 32\n cutoff_mask = (1 << (cutoff_bit)) - 1\n for start_n in range(0, shape_bn, BLOCK_N):\n offs_n = start_n + tl.arange(0, BLOCK_N)\n values = tl.load(Bitmatrix + pid_m * stride_bm + offs_n * stride_bn, mask=offs_n < shape_bn)\n values = tl.where(offs_n == cutoff_word, values & cutoff_mask, values)\n values = tl.where(offs_n > cutoff_word, 0, values)\n tl.store(Bitmatrix + pid_m * stride_bm + offs_n * stride_bn, values, mask=offs_n < shape_bn)\n\n\ndef _routing_from_bitmatrix(\n bitmatrix, expt_scal: torch.Tensor, expt_indx: torch.Tensor, n_expts_tot: int, n_expts_act: int\n):\n sparse_logits = SparseMatrix(indx=expt_indx, vals=expt_scal, mask=bitmatrix)\n metadata = sparse_logits.mask_metadata\n col_sorted = metadata.col_sorted_indx\n ragged = make_ragged_tensor_metadata(metadata.col_sum, col_sorted.shape[0])\n gather_indx = torch.div(col_sorted, n_expts_act, rounding_mode=\"trunc\")\n scatter_indx = col_sorted\n gate_scal = sparse_logits.vals.flatten()[col_sorted]\n return ragged, gather_indx, scatter_indx, gate_scal\n\n\ndef _make_gate_up_proj_list(\n gate_proj_weights_list: nn.ParameterList, up_proj_weights_list: nn.ParameterList\n) -> list[torch.Tensor]:\n ret = "} +{"text": "A proposal in the state Senate would make it illegal for young drivers to use a cell phone while driving, and would also ban anyone from using a cell phone while driving in a school zone.\nSenate Bill 459 was introduced by Sen. Vince Sheheen, D-Kershaw, in February and has gone on to the Senate Judiciary Committee and Subcommittee.\nThe bill would make it illegal for a person with a beginner's permit or restricted driver's license to drive while using a “cellular telephone or text messaging device,” and would also make it illegal for a person to drive through a school zone while using a cell phone or text messaging device when the school zone's warning lights have been activated.\n“The goal is to focus on particularly risky situations involving distracted driving. It's like a laser beam focus,” Sheheen told the Aiken Standard. “My kids are 16 and a half. The last thing as a parent I think should be happening is that my sons should be texting while they're driving down the road. They're still perfecting their driving skills.”\nSheheen said he was motivated to push for a texting and driving ban after a visit from a police officer.\n“He said, 'Mr. Sheheen, I was almost hit by a parent who was texting while they were dropping their kids off at the school,'” Sheheen recalled.\nThe General Assembly has grappled with texting while driving before, including a similar bill last year that Sheheen sponsored. It was approved by the committee but failed when it went to the full Senate.\nSheheen said the legislature has had particular trouble getting such bills through the Senate, but said some new faces will be helpful in getting the bill passed.\n“There's a large number of senators who are a little more to the right of your average person in South Carolina who generally have blocked that bill from passing,” he said. “I think the change in personality and governance makes it possible. There's a younger group of people who represent the state. A lot of younger people understand that, while texting is a convenience, we need to be careful in its use.”\nSen. Shane Massey, R-Edgefield, said limiting the use of hand-held devices for inexperienced drivers is “easy” to support. He also supports a statewide ban on texting for all drivers.\n“There's no way that you can give proper attention to the roadway if you are holding something in one hand and simultaneously looking down at it,” he said.\nMassey agreed with Sheheen that the Senate has been a “roadblock” for texting while driving bans, but said he's encouraged by the Senate's new makeup.\n“The opposition to a texting ban has been pretty interesting,” he said. “… There are those folks who say that it doesn't go far enough, that if you're going to address texting while driving, you ought to address all forms of distracted driving, whether that be eating, reading, putting on makeup – whatever. There are also those who say it goes too far, that we should not be limiting experienced drivers in that way.”\nSen. Tom Young, R-Aiken, voted for a similar ban in 2010 while in the House of Representatives, and, like Massey, supports a ban on texting for all drivers.\n“I support a ban on all texting while driving because it is a safety issue – texting while driving is dangerous,” Young said. “Banning texting while driving is one way that we can make our roads safer.”\nIf the bill becomes a law, violators could face a fine of up to $500. Sheheen said such a law would be easier to enforce in a school zone.\n“Parents and other drivers are close to the officer,” he said. “They're going slower and the officer can observe what they're doing.”\nSgt. Jake Mahoney, a spokesman for the Aiken Department of Public Safety, said seeing people texting while driving is a “routine occurrence.” He said enforcing such a ban would be similar to seat belt enforcement, which depends on what an officer can see inside a vehicle from his position on the roadway or from a stationary standpoint.\n“I've responded to several vehicle collisions over the past year or more where texting or talking on a cell phone was listed as a contributing factor to the collision,” he said. “Any activity in the vehicle, or anything a driver does while driving that takes his eyes off the road and attention off driving, is extremely dangerous.”\nSouth Carolina is one of six states that doesn't have a ban on texting while driving, according to the Insurance Institute for Highway Safety. Several other states have partial bans.\nSeveral cities in South Carolina, including Clemson, Columbia, Beaufort and Sumter, have implemented their own local bans on texting while driving."} +{"text": "COLUMBIA — With the personnel decisions for his South Carolina basketball team complete, Frank Martin will leave on Monday for a trip where he’ll get to make a more unusual choice.\nMartin’s an assistant coach for the United States’ World University Games team, which means tryouts at the U.S. Olympic Training Center in Colorado Springs, Colo., starting Monday, and then a long flight to Kazan, Russia, for the Games, July 7-16.\n“They say the popular dish over there is bear,” Martin said.\nMartin isn’t sure if he’ll try it. If he gets the chance, he said he’ll wait to see where the moment takes him. For as wary as Russian cuisine might make him, Martin begins the trip feeling hopeful about what he leaves behind.\nSince becoming a head coach in 2007, at Kansas State, he has never been away from his program for this long. He enters his second season at South Carolina preparing to debut eight players, including a transfer point guard, compared to six returning players, because four guys left in the offseason with eligibility remaining. Martin also has a new assistant coach, former Miami head coach Perry Clark, who replaced Brad Underwood, now the head coach at Stephen F. Austin.\nWith summer workouts underway, everything’s in place for Year 2. But many questions remain about these Gamecocks, as they try to avoid their fifth straight losing overall record and rebound from Southeastern Conference records of 2-14 and 4-14 the past two seasons.\nCan highly regarded shooting guard recruit Sindarius Thornwell contribute immediately? What will point guard Tyrone Johnson, a Villanova transfer who will be eligible after the first semester, bring to the backcourt? And will the Gamecocks be able to rebound while playing rising sophomore wing Michael Carrera more on the perimeter, as Martin wants to do?\nWhat’s clear to Martin, at the very least, is his team is longer. That was perhaps the most obvious part of USC’s recent individual workouts. Thornwell, who is 6-foot-5, could add perimeter defense. Ditto for Johnson, who’s 6-3. Three freshmen forwards will also offer length: Demetrius Henry (6-9, 210 pounds), Reggie Theus Jr. (6-6, 190) and Desmond Ringer (6-9, 260).\n“We’re bigger,” Martin said. “It’s the first thing you notice when you’re on the court. That’s something that was important. You’ve got to have size, either at the rim or on the perimeter. Last year, we didn’t have size on the perimeter or at the rim. That’s a problem when that’s how you play. If you have size on the perimeter, then it helps protect the paint. If you don’t have size on the perimeter, then you’ve got to have size at the rim to compensate for lack of size on the perimeter. I think we’re longer, both on the perimeter and in the front line.”\nLast season, USC ranked 11th in the 14-team SEC in rebounding margin during league play (minus-1.8). Carrera was by far the Gamecocks’ best rebounder. He ranked sixth in the league with 7.3 rebounds per game against SEC competition. Carrera, who’s 6-5 and 212 pounds, performed admirably while fighting through a hip injury and playing against bigger men in the post, where USC needed him because of its size deficiencies.\nMartin has said Carrera’s future is farther away from the basket, because it will be hard for him to endure the rigors of frequent post play for the rest of his career. To that end, Martin has noticed encouraging improvements in Carrera’s outside shooting recently, but he is still not yet a polished perimeter player.\n“He’s got to learn, when he catches the ball on the perimeter, not to stand there and hold it with one hand, as you saw during the year last year,” Martin said. “You can’t be any good out there like that. Or put the ball over your head. He’s been asked to play out there, but he’s never been taught to play out there, which is a big difference. His ball handling is good enough to play out there. It’s not great. But his passing and his decision making and his perimeter defense have to get a lot better.”\nIf Carrera is USC’s most intriguing returning player and senior point guard Bruce Ellington remains the team’s leader, then Johnson is probably the most interesting newcomer, along with Thornwell. Johnson, a junior, must form a cohesive backcourt with Ellington and/or shooting guard Brenton Williams, who led USC in scoring last season, ahead of Carrera and Ellington – with 11, 9.9 and 9.9 points, respectively.\nJohnson isn’t an elite perimeter shooter, and Martin wants him to work on developing a mid-range game, rather than slashing to the basket so often. But Johnson’s size is a welcome addition to the backcourt – Ellington is 5-9, Williams 5-11 – on defense, which has long formed the foundation of Martin’s programs.\n“Ty understands angles,” Martin said. “He might not be the most gifted athlete from a side-to-side or speed (standpoint), but his mind allows him to get to the right spot most of the time. That’s what you’ve got to have.”"} +{"text": "[]\n for i in range(len(up_proj_weights_list)):\n gate_up_proj_weight = torch.ops.fireworks.interleave_hidden_dim(\n gate_proj_weights_list[i], up_proj_weights_list[i]\n )\n ret.append(gate_up_proj_weight.transpose(0, 1).contiguous())\n return ret\n\n\ndef _make_gate_up_proj_weight(\n gate_proj_weights_list: nn.ParameterList, up_proj_weights_list: nn.ParameterList\n) -> torch.Tensor:\n return torch.stack(_make_gate_up_proj_list(gate_proj_weights_list, up_proj_weights_list))\n\n\ndef _make_gate_up_proj_bias_list(\n gate_proj_bias_list: nn.ParameterList, up_proj_bias_list: nn.ParameterList\n) -> list[torch.Tensor]:\n ret = []\n for i in range(len(gate_proj_bias_list)):\n ret.append(torch.ops.fireworks.interleave_hidden_dim(gate_proj_bias_list[i], up_proj_bias_list[i]))\n return ret\n\n\ndef _make_gate_up_proj_bias(\n gate_proj_bias_list: nn.ParameterList, up_proj_bias_list: nn.ParameterList\n) -> torch.Tensor:\n return torch.stack(_make_gate_up_proj_bias_list(gate_proj_bias_list, up_proj_bias_list))\n\n\ndef _make_down_proj_weight_list(down_proj_weights_list: nn.ParameterList) -> list[torch.Tensor]:\n ret = []\n for i in range(len(down_proj_weights_list)):\n ret.append(down_proj_weights_list[i].transpose(0, 1).contiguous())\n return ret\n\n\ndef _make_down_proj_weight(down_proj_weights_list: nn.ParameterList) -> torch.Tensor:\n return torch.stack(_make_down_proj_weight_list(down_proj_weights_list))\n\n\ndef _make_down_proj_bias_list(down_proj_bias_list: nn.ParameterList) -> list[torch.Tensor]:\n return [p for p in down_proj_bias_list]\n\n\ndef _make_down_proj_bias(down_proj_bias_list: nn.ParameterList) -> torch.Tensor:\n return torch.stack(_make_down_proj_bias_list(down_proj_bias_list))\n\n\n@torch.library.custom_op(\"fireworks::quantize_mxfp4_hopper\", mutates_args=())\ndef _quantize_mxfp4_hopper_op(w: torch.Tensor) -> Tuple[torch.Tensor, torch.Tensor]:\n w, w_scale = downcast_to_mxfp(w.to(torch.bfloat16), torch.uint8, axis=1)\n w = convert_layout(wrap_torch_tensor(w, dtype=FP4), HopperMXValueLayout(mx_axis=-2, mma_version=3))\n w_scale = convert_layout(wrap_torch_tensor(w_scale), HopperMXScaleLayout(mx_axis=-2, num_warps=8))\n return w.storage.data, w_scale.storage.data\n\n\n@_quantize_mxfp4_hopper_op.register_fake\ndef _(x: torch.Tensor) -> Tuple[torch.Tensor, torch.Tensor]:\n lead_dims = x.shape[:-2]\n # NB: we are transposing x tensor (making it column-major).\n m = x.shape[-1]\n k = x.shape[-2]\n assert k % 2 == 0 # 1 uint8 value fits 2 fp4 values.\n\n # See docs on HopperMXValueLayout for details.\n shape = (*lead_dims, ((m + 16 - 1) // 16) * 4, ((k + 64 - 1) // 64) * 128)\n x_fp4 = x.new_empty(shape, dtype=torch.uint8).transpose(-2, -1)\n\n mx_scale_shape = (*lead_dims, ((m + 256 - 1) // 256) * 8, ((k + 64 - 1) // 64) * 64)\n mx_scale = x.new_empty(mx_scale_shape, dtype=torch.uint8).transpose(-2, -1)\n\n return x_fp4, mx_scale\n\n\n@torch.library.custom_op(\"fireworks::quantize_mxfp4_blackwell\", mutates_args=())\ndef _quantize_mxfp4_blackwell_op(w: torch.Tensor) -> Tuple[torch.Tensor, torch.Tensor]:\n value_layout = layout.make_default_matmul_mxfp4_w_layout(mx_axis=1)\n scale_layout = layout.make_default_matmul_mxfp4_w_scale_layout(mx_axis=1, num_warps=4)\n w, w_scale = downcast_to_mxfp(w.to(torch.bfloat16), torch.uint8, axis=1)\n w = convert_layout(wrap_torch_tensor(w, dtype=FP4), value_layout)\n w_scale = convert_layout(wrap_torch_tensor(w_scale), scale_layout)\n return w.storage.data, w_scale.storage.data\n\n\n@_quantize_mxfp4_blackwell_op.register_fake\ndef _(x: torch.Tensor) -> Tuple[torch.Tensor, torch.Tensor]:\n lead_dims = x.shape[:-2]\n # NB: we are transposing x tensor (making it column-major).\n m = x.shape[-1]\n k = x.shape[-2]\n assert k % 2 == 0 # 1 uint8 value fits 2 fp4 values.\n\n shape = (*lead_dims, m, k)\n x_fp4 = x.new_empty(shape, dtype=torch.uint8).transpose(-2, -1)\n\n k_mx = (k + 32 - 1) // 32\n B = math.prod(lead_dims)\n K_pad = (k_mx + 8 - 1) // 8 * 8\n N_pad = (m + 128 - 1) // 128 * 128\n mx_shape = (1, B * N_pad // 128, K_pad // 4, 2, 256)\n x_scale = x.new_empty(mx_shape, dtype=torch.uint8)\n\n return x_fp4, x_scale\n\n\n@torch.library.custom_op(\"fireworks::upcast_from_mxfp\", mutates_args=())\ndef _upcast_from_mxfp_op(\n blocks: torch.Tensor,\n scales: torch.Tensor,\n *,\n dtype: torch.dtype,\n axis: int,\n) -> torch.Tensor:\n return upcast_from_mxfp(blocks, scales, target_dtype=dtype, axis=axis)\n\n\n@_upcast_from_mxfp_op.register_fake\ndef _(\n blocks: torch.Tensor,\n scales: torch.Tensor,\n *,\n dtype: torch.dtype,\n axis: int,\n) -> torch.Tensor:\n out_shape = list(blocks.shape)\n rank = len(out_shape)\n resolved_axis = axis if axis >= 0 else axis + rank\n if not (0 <= resolved_axis < rank):\n raise ValueError(f\"Invalid axis {axis} for blocks of rank {rank}\")\n out_shape[resolved_axis] = out_shape[resolved_axis] * 2\n return blocks.new_empty(out"} +{"text": "A pastor from Fayetteville, N.C., said he feels drawn to Aiken to spread his message – “Save America First: Evangelize the World.”\nPastor George Lucas Jr., originally from New York, dedicated 22 years to the military, and now he is dedicating his life to spreading the word of God.\nLucas’ mission all comes down to verse John 3:16 “the flagship verse of the Bible,” Lucas said.\nThe verse as stated in the “New Living Translation of the Bible” reads, “For God loved the world so much that he gave his one and only Son, so that everyone who believes in him will not perish but have eternal life.”\nLucas has traveled from Vermont to Texas to deliver this message that America can be saved through the hands of Jesus Christ and by John 3:16.\nNow, his current mission is to circulate that message throughout South Carolina through putting up billboards and selling T-shirts and other merchandise.\nThe state has a “jaded history” due to instances like those surrounding the Civil War, he said.\n“The Lord has chosen South Carolina (and Aiken) to help spread this message,” he said.\nAiken came on his radar because of his wife, Augusta native Wilhelmenina Jennings-Lucas.\nHer father is from Aiken and has ties with Mount Canaan Church.\n“He’s one of the most dynamite Christian men I’ve ever met,” Lucas said.\nTwo billboards have already been erected – one by the University Parkway Church of God Church and the other by Johnson Motor in Graniteville.\n“I want to spark something in South Carolina,” Lucas said.\nThe 78-year-old has been a U.S. Army veteran for nearly 22 years and an ordained minister for more than 40 years. He said that when he heard the John 3:16 verse on Feb. 25, 1968, something in him changed.\nThe next day, he asked God to “save his soul.”\n“(This verse) became the most important verse in my whole life,” he said.\nThe day he got saved, he made a promise.\n“If the Lord ever gave me an opportunity to go to Washington, D.C., and lift up his name, I would do so,” he vowed.\nThat opportunity happened in 1987. At the time, he was preaching at the Race Road Baptist Church in Farmville, Virginia. A woman came down to speak for the church’s Woman’s Day service. Little did Lucas know that this woman was connected to the White House.\nA few days after she presented, she called Lucas to ask him to come to the White House.\n“I thought she was joking,” Lucas said.\nOn Sept. 30. 1987, Lucas sat in the Old Executive Office Building auditorium. Then-President Ronald Reagan was speaking on behalf of Judge Robert Bork and his nomination to the Supreme Court, according to the Richmond Times-Dispatch newspaper in 1987.\nThe day might have been for Bork, but it was Lucas who left an impression.\n“I told President Ronald Reagan that we needed revival in our country and that brought on pandemonium at the White House,” Lucas said.\nBork even later confessed to Lucas that “when he raised his hand (to speak), he scared the (heck) out of Reagan.”\nHowever, Lucas won over Reagan and his staff.\n“He was grinning like a Chester cat,” Lucas said.\nThe preacher was even asked to come up in front of the room to give “a brief, emotional speech,” the Richmond Times-Dispatch reported.\nThis moment lit his “Save America First” cause, Lucas said.\nHowever, the spark died down for many years. It reignited in 2009 when a man named Jim Cooke came into his life.\nCooke was the program director at the WFNC-AM radio station in Fayetteville, N.C. Lucas was 75 with his sights set on the “old soldiers’ home” in Washington, D.C. Something in him, though, caused him to call Cooke.\nFrom that phone call, Lucas appeared on the station on a monthly basis.\n“The Lord kept me there, of course,” he said.\nIn 2010, the American Atheists organization posted a billboard in New Jersey that sent out an anti-Christmas message.\n“You KNOW it’s a myth; This Season, Celebrate REASON!” it read according to the April 2011 Boiling Springs magazine.\nDavid Silverman, the organization’s president, said the spot was perfect because commuters were going to see it on their way to do Christmas shopping in New York City.\nSilverman and his group’s message fueled Lucas’ fire.\n“None was more outraged than 77-year-old pastor Lucas … (who) could not and would simply stand by and do nothing,” the article stated.\nOn Jan. 14, 2011, Lucas’ first billboard went up on I-95 in Fayetteville.\nTo fund these billboards, Lucas sells white T-shirts. The shirts sport either a picture of the Earth in the center or just the “Save America First” organization’s logo written across the center.\nHe also sells buttons, hats and plates, according to his website.\n“I like to be called a patriot, because I love my country,” he said. “I believe in America.”\nLucas was born in Manhattan, the oldest of 10 children. He went on to fight in the Korean and Vietnam wars, earning a Bronze Star on June 3, 1970.\nIn addition to his ministry work, he has at least 40 years of experience in broadcasting.\nAbout four years ago, he married Wilhelmenina.\nAt first, Lucas was skeptical of meeting someone so late in life, but, when they met, his mind was changed.\nOn Christmas Day, he asked her 91-year-old father for her hand in marriage. Now the two travel to spread the John 3:16 message.\nFor more information, visit www.saf-etw.com or 910-778-3683.\nStaff Photo by Stephanie Turner Pastor George Lucas Jr., with his wife Wilhelmenina Jennings-Lucas represent Lucas’ “Save America First” campaign.×\nSubmitted Photo Pastor George Lucas Jr. stands by one of his earlier billboards.×\nSubmitted Photo Pastor George Lucas Jr. speaking at the White House on Sept. 30, 1987.×"} +{"text": "In 2010, Samsung was the first to launch a full range of SMART TVs in the region. In 2011, Samsung introduced a new era of home entertainment with the new D series of SMART TVs, the ultimate entertainment technology. Despite stiff competition in this segment, where outstanding and superbly-designed products make a huge impact on consumers’ purchasing decisions, Samsung was able to firmly establish its leadership. According to industry reports, Samsung secured a whopping 45 percent market share by the end of Q3 making Samsung the brand of choice for the Gulf.\nSamsung’s outstanding performance in the region and the fact that Samsung Smart TVs offer a range of over 1000 applications through their dedicated apps store, “Samsung Apps” gives companies throughout all industries an incentive to develop, launch and sustain an application. So now the company knows it wants an application, but where does it start?\nTo begin with, the company needs to ask itself what kind of application it wants to develop and what the purpose is for developing the app. Will the application serve a business purpose? Will it be an addition to the company’s social media platforms? Or will the application interact with its users? Samsung techies advise that to develop a successful app, also dubbed ‘killer app’, companies must look at three main points: innovative idea; works on the latest technology; and serves a purpose. Applications such as Angry Birds is a live example of a killer app where the game notches up 200 million minutes of play time every day, which is close to the number of minutes viewers in the United States spend watching the average prime-time television program.\n“Producing applications that run on TVs or handsets is a great way to interact with your consumers. People nowadays are truly living a fast-paced lifestyle and applications that serve consumers are guaranteed to serve businesses as well. Developing apps will be a must for organizations to sustain their presence in the near future,” said Vinod Nair, General Manager, CTV Business, Samsung Gulf Electronics. “Samsung products are designed to make consumers’ lives ‘smarter’. With applications running on a user’s TV, he or she will be able to enjoy traditional programming as well as check off a few tasks from their lists all from the comfort of their couch. ”\nNow that the company has decided to launch an app, it’ll need to know what content the application will provide for its users. Content material is a crucial part of sustaining an application. The content needs to be relevant to users; provide interactive features; and offer an experience that can’t be found with traditional outlets.\nRecently, Samsung partnered with major government and private companies to launch locally tailored applications targeting existing users and potential new ones. The Dubai Electricity and Water Authority (DEWA), with Samsung, developed the region’s first business-solution application. DEWA’s application allows users to check their bills and access DEWA’s range of services. Samsung also partnered with the Arabian Radio Network (ARN) and Dubai Media Incorporated (DMI) to stream all of their radio and television channels for all Samsung Smart TV users to enjoy. “Video-on-demand has been the most popular reason for companies to develop Smart TV applications. Consumer behavior and attitudes are shifting, with viewers increasingly expecting to access content wherever and whenever they want. We believe that in the future every viewer will have access to 3D content in the comfort of their own living room through a SMART TV.” Nair added.\nOnce the app is up and running, the company gets to relax and savor the final product. You can’t get too lazy though. Applications need to be sustained in order to keep the user interested in the application. At this time, companies need to ensure that they have content lined up and a calendar highlighting launches of new additions and features to the application. Just in case you feel a little overwhelmed, rest assured that the great people at Samsung will be on hand to share their expertise and provide support."} +{"text": "_shape, dtype=dtype, device=\"meta\")\n\n\ndef _manifest_if_uninitialized(w: torch.Tensor) -> torch.Tensor:\n \"\"\"Manifest only fake-weight (uninitialized) PLLTs before quantization.\n\n For fake weights, the PLLT dispatch wraps quantize results in a derived PLLT\n that ``manifest_uninitialized`` later replaces with row-major zeros, losing\n the column-major layout the matmul kernel requires. Manifesting here forces\n the quantize op to run on concrete zeros and produce correct strides.\n\n Real-weight PLLTs are left untouched — they flow through the normal manifest\n DAG which handles parallel I/O efficiently.\n \"\"\"\n if not isinstance(w, Manifestable):\n return w\n loaders = collect_loaders(w)\n if loaders and all(isinstance(l, UninitializedTensorLoader) for l in loaders):\n return w.manifest()\n return w\n\n\ndef quantize_mxfp4(w):\n w = _manifest_if_uninitialized(w)\n if is_blackwell_and_higher():\n x_fp4, x_scale = torch.ops.fireworks.quantize_mxfp4_blackwell(w)\n return x_fp4, x_scale\n elif is_hopper():\n x_fp4, x_scale = torch.ops.fireworks.quantize_mxfp4_hopper(w)\n return x_fp4, x_scale\n else:\n raise ValueError(f\"Unsupported compute capability: {get_compute_capability()}\")\n\n\ndef quantize_mxfp8(w: torch.Tensor, weight_dtype: torch.dtype = torch.float8_e4m3fn):\n \"\"\"\n Quantize weights to MXFP8 with Strided layouts for values and scales.\n\n By default, MXFP8 uses e4m3fn for weights.\n \"\"\"\n w = _manifest_if_uninitialized(w)\n return torch.ops.fireworks.quantize_mxfp8(w, weight_dtype)\n\n\n@torch.library.custom_op(\"fireworks::quantize_mxfp8\", mutates_args=())\ndef _quantize_mxfp8_op(\n w: torch.Tensor, weight_dtype: torch.dtype = torch.float8_e4m3fn\n) -> Tuple[torch.Tensor, torch.Tensor]:\n w_q, w_scale = downcast_to_mxfp(w.to(torch.bfloat16), weight_dtype, axis=1)\n w_q = convert_layout(wrap_torch_tensor(w_q, dtype=weight_dtype), StridedLayout(-2))\n w_scale = convert_layout(wrap_torch_tensor(w_scale), StridedLayout(-2))\n return w_q.storage.data, w_scale.storage.data\n\n\n@_quantize_mxfp8_op.register_fake\ndef _(x: torch.Tensor, weight_dtype: torch.dtype = torch.float8_e4m3fn) -> Tuple[torch.Tensor, torch.Tensor]:\n lead_dims = x.shape[:-2]\n k = x.shape[-2]\n n = x.shape[-1]\n x_fp8 = x.new_empty((*lead_dims, k, n), dtype=weight_dtype)\n x_scale_shape = (*lead_dims, triton.cdiv(k, MXFP_BLOCK_SIZE.value), n)\n x_scale = x.new_empty(x_scale_shape, dtype=torch.uint8)\n return x_fp8, x_scale\n\n\ndef to_triton_tensors(\n x_fp4: torch.Tensor, x_scale: torch.Tensor, shape: torch.Size\n) -> Tuple[TritonTensor, TritonTensor]:\n if is_blackwell_and_higher():\n x_fp4_tensor = TritonTensor(TritonStorage(x_fp4, BlackwellMXValueLayout()), FP4, shape=shape)\n x_scale_shape = (*shape[:-2], triton.cdiv(shape[-2], MXFP_BLOCK_SIZE.value), shape[-1])\n x_scale_tensor = TritonTensor(\n TritonStorage(x_scale, BlackwellMXScaleLayout()), torch_dtype_to_dtype(x_scale.dtype), shape=x_scale_shape\n )\n elif is_hopper():\n x_fp4_tensor = TritonTensor(\n TritonStorage(x_fp4, HopperMXValueLayout(mx_axis=-2, mma_version=3)), FP4, shape=shape\n )\n x_scale_shape = (*shape[:-2], (shape[-2] + 32 - 1) // 32, shape[-1])\n x_scale_tensor = TritonTensor(\n TritonStorage(x_scale, HopperMXScaleLayout(mx_axis=-2, num_warps=8)),\n torch_dtype_to_dtype(x_scale.dtype),\n shape=x_scale_shape,\n )\n else:\n raise ValueError(f\"Unsupported compute capability: {get_compute_capability()}\")\n return x_fp4_tensor, x_scale_tensor\n\n\ndef to_triton_tensors_fp8(\n x_fp8: torch.Tensor, x_scale: torch.Tensor, shape: torch.Size, weight_dtype: torch.dtype = torch.float8_e4m3fn\n) -> Tuple[TritonTensor, TritonTensor]:\n if is_blackwell_and_higher():\n value_layout = BlackwellMXValueLayout()\n value_transform = value_layout.make_transformation(list(shape), False)\n x_fp8_tensor = TritonTensor(\n TritonStorage(value_transform.swizzle_data(x_fp8), value_layout),\n torch_dtype_to_dtype(weight_dtype),\n shape=shape,\n )\n x_scale_shape = (*shape[:-2], triton.cdiv(shape[-2], MXFP_BLOCK_SIZE.value), shape[-1])\n scale_layout = BlackwellMXScaleLayout()\n scale_transform = scale_layout.make_transformation(list(x_scale_shape), False)\n x_scale_tensor = TritonTensor(\n TritonStorage(scale_transform.swizzle_data(x_scale), scale_layout),\n torch_dtype_to_dtype(x_scale.dtype),\n shape=x_scale_shape,\n )\n else:\n x_fp8_tensor = wrap_torch_tensor(x_fp8, dtype=weight_dtype)\n x_fp8_tensor = convert_layout(x_fp8_tensor, StridedLayout(-2))\n x_scale_tensor = wrap_torch_tensor(x_scale)\n x_scale_tensor = convert_layout(x_scale_tensor, StridedLayout(-2))\n return x_fp8_tensor, x_scale_tensor\n\n\ndef swiglu(x: torch.Tensor, alpha: "} +{"text": "The Animal Page\n| Home Page | Animal Rights |\nHollywood Hooves and Darlynn's Darlins\nBy: Ron Caldwell\n(This story was originally published in the first edition of Darlins Ledger)\nI started my day by arriving at the Sunrise house to pick up Hollywood. He is a black pot with long hair and overweight. I guessed his weight around 190.\nWhen I first went into the back yard the husband said to not get to close. I knelt down in front of Hollywood and said “Hi Hollywood, what a handsome looking boy.” He was nervous but gave me a welcome grunt. I rubbed his nose and his ears went back to normal. The wife said I must be some kind of “pig talker”. I said I just know pigs return love when given love.\nHe backed into the Varikennel after a fight over having a bucket placed over his head. Thanks Lana for all your instructions. It worked great. We loaded Hollywood and off I went. The trip was around 2 ˝ hours.\nWhen I arrived all I saw was Pigs. I was in heaven. I was greeted by Darlynn and Butch at the gate. We chatted a bit and I was given the full tour with stories of all the rescues. Several pigs greeted me with that wonderful oofing sound of welcome. I got down to pet them and talk to them. (to enlarge the photo of the sanctuary side yard, click on the photo or link)\nIn the background was the jealous sound of a variety of squeals and oofs. Such music to this piggy papa. When we got to the 2 big girls, Lavern and Shirley, we went into their pen and I got the story on their rescue. As I was engrossed in the story Lavern decided to put her wet muddy snout in my crotch. Then she decided to push me into her mud hole to play. Well I stepped aside and was listening to another story when Shirley decided to put her mouth gently around my bare calf and gum me a welcome to her abode.\nI have to say that Darlynn and Butch have done a wonderful job of caring for these rescues. They are wonderful, kind people. The world should have more of these hard working, loving friends. I have decided to try and visit them as much as possible and help out around the ranch. As I said my goodbyes and was going over the visit in my mind I looked down at my shorts and legs and saw the snouties on my shorts and kisses on my legs and tears came to my eyes as I knew God had blessed me with the love of all those wonderful creatures.\nA Weekend For Life\nLast weekend I went to spend a couple of days at Darlynn and Butch's Sanctuary. It was Friday morning about 8:30 AM when I arrived and I was ready to work. I was greeted by them both and received some welcome muddy snouts on my socks, shoes and legs.\nAfter changing into my work pants we went to see Hollywood. I climbed into his pen and gave him a hug and kiss. We decided to cut his tusks since they were penetrating his lip. Butch held him down and I held his lip while Darlynn used that wire cutter and \"ping\" off they came. Hollywood was such a good pig. I gave him more hugs and belly rubs and we began the weekend cleanup. (to enlarge the photo of Ron building Hollywood's pen, click on the photo or link)\nI had the honors of shoveling all that wonderful pig berries. I can relate to the word pig berry as I have only 1 pig. With over 150 pigs of varying variety \"berry\" is not in that category. After cleaning the 2 acres it was feeding and watering time. I was the waterer. I got to hear the most wonderful sounds of more than 150 pigs sing those tunes of \"BRING ME MY DINNER FIRST\". I got to visit with all of them as I filled the bowls and pools.\nThe day ended around 8PM and I tell you I was tired. After a shower and a wonderful dinner from Darlynn off to bed I went. Day 2 started with increasing squeals from the inside pigs asking for breakfast around 5:30 AM. Usually a person is awakened by the smell of coffee. This morning it was the sound and smell of air popped corn. It was a drizzly rainy day but Butch performed the daily task of feeding the herd. I spent the day reloading and repairing problems on Darlynn's computer so she could get her web site in shape.\nThe farm relies on their paychecks alone and with over 150 mouths to feed extra donations would be a great relief. Sunday morning came fast and the routine played again.\nBefore I left I helped Butch take down and move a bedding area to the front side of the porch under a big Oak tree because the pigs that shared it wanted to be closer to the house and them. I have never met such warm, giving people as I met in Darlynn and Butch. The love they have for all their animals is shown in the love returned by the oinks,ah ah, grunts, flop-overs, baaahs (Goats), Quaacks (Ducks), Puurrrs (Kittens), and loving eyes from all of them. (to enlarge the photo of Hollywood taking a nap, click on the photo or link)\nI drove off after brief goodbyes and well wishes (and of course a donation). As I was driving down the road I vision all the faces I met and talked to and knew that Rescue was very hard work. It takes a special person(s) who gives up what we all consider a normal life to dedicate their love and devotion to bringing love, caring and healing to unwanted, abused and abandoned animals. I falter when I think of how I would love to start a refuge for animals. Their devotion is unquestionable. My time spent in the daily routine caring for these loving animals has taught me that all sanctuaries have my greatest respect.\nGOD BLESS YOU ALL.\nWhat are YOU eating today?\nSave an animals' life. Don't eat them.\nPlease Visit My Site\n| Animal Stories |\nYour comments are welcome:\n| Home Page | Animal Issues | Archive | Art and Photos | Articles | Bible | Books | Church and Religion | Discussions | Health | Humor | Letters | Links | Poetry and Stories | Quotations | Recipes | What's New? |\nThank you for visiting all-creatures.org."} +{"text": "Coincidentally or not, the reality-show commercial led directly into a summary of the day’s sports news, which concerned the adventures of the pitcher Roger Clemens, accused of using performance-enhancing substances, and the football coach Bill Belichick, accused of videotaping an opponent’s practice session in violation of National Football League policy. Both men vehemently deny the accusations. If they are innocent, they should, of course, pursue every avenue to prove it. But you almost have to wonder why they would bother.\nThere is a pretty good case to be made that fair play always has been more of an ideal than a working principle in American society. From Standard Oil to Microsoft, American companies have been accused of dispensing with fairness in their will to win greater riches. Politicians from both parties, running for offices grand and local, have been known to cross the boundaries of fairness to win an election or get a piece of legislation passed. I’m told, and I find this hard to believe, that people in the publishing business have been known to fudge circulation figures in pursuit of greater advertising revenue.\nIt’s not about playing fair. It’s about winning.\nWhen it comes to our games, however, we dispense with Machiavelli and instead embrace our inner Jeremiah, demanding purity and calling out those who fall short of our ideals. We believe in what sports bureaucrats call the “integrity of the game,” that is, the charming notion that the playing field is level and pure for all, and that the games are played within a recognized set of rules that are the same for every competitor.\nWhat a quaint notion! It seems positively Victorian, at odds with our distinctly un-Victorian attitude toward anything that smacks of self-restraint in pursuit of indulgence. As the Outback Steakhouse commercial says, “No Rules. Just Right.” I’ve often wondered precisely what rules Outback has dispensed with in order to lure steak-loving anarchists to its dining rooms. Surely the rule that requires payment after consumption remains in place, and one suspects that the use of knives and forks is encouraged if not actually required.\nIn any case, no serious athletic organization could ever get away with the Outback ethic. Rules are the essence of sports. Break them on the field, and you are penalized. Break them off the field, and you are liable to be denied employment or, in the case of athletes like Pete Rose and Joe Jackson, you are barred from the highest accolade your sport can confer, a place in the Hall of Fame.\nSports fans may be this country’s last innocents. Political junkies tend to be among the most cynical of humans, for they know how the legislative and electoral sausage is made. Few consumers are surprised to learn that large corporations occasionally cut legal and moral corners to make a few extra dollars. But sports fans are eternally wide-eyed. They passionately believe in the meritocratic purity of the baseball diamond, the hockey rink, the gridiron, the boxing ring.\nOn second thought, skip the boxing ring. Nobody is that innocent.\nThat’s why athletes find it so difficult to admit that they’ve rigged the competition, that they have not played fairly in pursuit of victory. A reality show like “Survivor” can boost its ratings by highlighting the ruthlessness of its contestants because, at the end of the day, it’s just an entertainment vehicle. The shows are not about reality, no matter that they are billed as precisely that.\nSports, however, are real, at least in our culture. The men and women who perform at the highest levels are admired for what they achieve on a playing field governed by rules fairly applied to all competitors. The victor supposedly earns his or her laurels not by manipulation, but by performance. When that proves false, when rules are broken in pursuit of victory, glory is rescinded and public affection withheld.\nIt seems, however, that only athletes are held to these high standards. Few people condemned Bill Gates when Microsoft was fined for violating fair trade practices in Europe. Presidential candidates rarely suffer when their campaigns are found to have violated election laws—a fairly frequent occurrence. But if an athlete or coach bends a rule, he or she not only faces the public’s censure, but may actually go to prison. Marion Jones, the disgraced sprinter, denied taking steroids for years, but when she finally admitted that yes, she had taken drugs to improve her performance, she was stripped of her Olympic medals and dispatched to prison for perjury. No rules, just right? Not in the world of sports.\nAnd that, I believe, is the beauty of the games we play or, in the vast majority of cases, watch. That’s why the ongoing Congressional investigations of both baseball and football are important, because millions of sports fans really do believe in the integrity of the games they watch and the teams they follow. They may no longer associate integrity with public life; they may question the ethics of Wall Street; but they expect fairness and equity on the field.\nA quaint notion, for sure. But an admirable one as well."} +{"text": "float = 1.702, limit: float = 7.0, interleaved: bool = True) -> torch.Tensor:\n if interleaved:\n x_glu, x_linear = x[..., ::2], x[..., 1::2]\n else:\n x_glu, x_linear = torch.chunk(x, 2, dim=-1)\n\n x_glu = x_glu.clamp(min=None, max=limit)\n x_linear = x_linear.clamp(min=-limit, max=limit)\n out_glu = x_glu * torch.sigmoid(alpha * x_glu)\n return out_glu * (x_linear + 1)\n\n\ndef silu(x: torch.Tensor, interleaved: bool = True) -> torch.Tensor:\n if interleaved:\n x_glu, x_linear = x[..., ::2], x[..., 1::2]\n else:\n x_glu, x_linear = torch.chunk(x, 2, dim=-1)\n return x_glu * torch.sigmoid(x_linear)\n\n\ndef _local_ep_r(\n expert_scores: torch.Tensor,\n expert_indices: torch.Tensor,\n n_expts_tot: int,\n ep_rank: int = 0,\n ep_world_size: int = 1,\n) -> tuple[object, torch.Tensor, torch.Tensor, torch.Tensor]:\n\n # Adapted from https://github.com/triton-lang/triton/blob/7ec17cd37730d22c5eb24bc5305b8ee0a8ca3b64/python/triton_kernels/bench/distributed.py#L20\n\n # Ensure expected dtypes/layout\n expt_indx = expert_indices.to(torch.int32).contiguous()\n expt_scal = expert_scores.contiguous()\n\n assert n_expts_tot % max(ep_world_size, 1) == 0, \"num_experts must be divisible by ep_world_size\"\n chunk_size = n_expts_tot // max(ep_world_size, 1)\n start = ep_rank * chunk_size\n end = start + chunk_size\n sentinel = chunk_size + 1 # allocate one extra word to avoid overflow in bit packing\n\n if ep_world_size > 1:\n local_mask = (expt_indx >= start) & (expt_indx < end)\n expt_indx = (expt_indx - start).masked_fill(~local_mask, sentinel)\n expt_scal = expt_scal.masked_fill(~local_mask, 0)\n\n # Build bitmatrix of token->local expert selections\n n_rows = expt_indx.size(0)\n n_expts_act = expert_scores.shape[-1]\n BLOCK_SIZE_M = 512\n BLOCK_SIZE_K = 32\n n_cols = triton.cdiv(sentinel, BLOCK_SIZE_K)\n bitmatrix_tensor = torch.zeros((n_rows, n_cols), dtype=torch.uint32, device=expt_indx.device)\n grid = (triton.cdiv(n_rows, BLOCK_SIZE_M),)\n\n pack_bitmatrix[grid](\n bitmatrix_tensor,\n expt_indx,\n n_rows,\n n_cols,\n n_expts_act,\n BLOCK_SIZE_M=BLOCK_SIZE_M,\n BLOCK_SIZE_K=BLOCK_SIZE_K,\n sentinel=sentinel,\n )\n\n # Clear bits beyond local expert cutoff and compact selections\n _routing_clear_bitmatrix[(n_rows,)](\n bitmatrix_tensor,\n bitmatrix_tensor.stride(0),\n bitmatrix_tensor.stride(1),\n bitmatrix_tensor.shape[1],\n chunk_size,\n BLOCK_N=512,\n )\n\n bitmatrix_shape = [n_rows, triton.cdiv(chunk_size, BLOCK_SIZE_K) * 32] if chunk_size > 0 else [n_rows, 0]\n bitmatrix_shape_max = [n_rows, None]\n bitmatrix = wrap_torch_tensor(bitmatrix_tensor, dtype=BIT, shape=bitmatrix_shape, shape_max=bitmatrix_shape_max)\n\n if chunk_size > 0:\n expt_scal, expt_indx = compaction(expt_scal, expt_indx, bitmatrix)\n bitmatrix.shape[-1] = chunk_size\n\n # Build routing structures using compacted selections and mask metadata\n ragged, gather_indx, scatter_indx, gate_scal = _routing_from_bitmatrix(\n bitmatrix, expt_scal, expt_indx, chunk_size, n_expts_act\n )\n return ragged, gather_indx, scatter_indx, gate_scal\n\n\ndef legacy_routing(logits, n_expts_act, apply_softmax=True, sm_first=False, expt_indx=None, n_rows=None):\n if sm_first:\n logits = torch.softmax(logits, dim=-1)\n apply_softmax = False\n sparse = triton_kernels_topk(logits, n_expts_act, apply_softmax=apply_softmax, y_indx=expt_indx, n_rows=n_rows)\n metadata = sparse.mask_metadata\n col_sorted = metadata.col_sorted_indx\n ragged = make_ragged_tensor_metadata(metadata.col_sum, col_sorted.shape[0])\n gather_indx = torch.div(col_sorted, n_expts_act, rounding_mode=\"trunc\")\n scatter_indx = col_sorted\n gate_scal = sparse.vals.flatten()[col_sorted]\n return ragged, gather_indx, scatter_indx, gate_scal\n\n\ndef moe(\n x,\n wg,\n w1,\n w1_mx,\n w2,\n w2_mx,\n bg,\n b1,\n b2,\n experts_per_token=4,\n fused_act=True,\n ep_rank: int = 0,\n ep_world_size: int = 1,\n score_processor: Callable[[torch.Tensor], Tuple[torch.Tensor, torch.Tensor]] = None,\n score_processor_input_ids: torch.Tensor | None = None,\n activation=\"swiglu\",\n):\n if x.numel() == 0:\n return x\n assert len(x.shape) == 2\n\n pcg = PrecisionConfig(flex_ctx=FlexCtx(rhs_data=InFlexData()))\n logits = matmul(x, wg, bg, precision_config=pcg)\n\n if score_processor is None:\n score_processor = TopkScoreProcessor(experts_per_token, normalize_topk=True)\n\n expert_scores, expert_indices = call_score_processor(\n score_processor,\n logits,\n input_ids=score_processor_input_ids,\n )\n n_expts_tot = int(logits.shape[-1])\n ragged, gather_indx, scatter_indx, gate_scal = _local_ep_r(\n expert_scores, expert_indices, n_expts_tot, ep_rank=ep_rank, ep_world_size=ep_world_size\n )\n\n is_act_fp8 = is_bl"} +{"text": "Complaints Alleging Non-Compliance with the Standards\nRules 42-48 of the ABA Rules of Procedure for Approval of Law Schools governs the filing of complaints against law schools. The complaint process is designed to bring to the attention of the Council any facts and allegations that may indicate that an approved law school is operating its program of legal education out of compliance with the ABA Standards for the Approval of Law Schools. This process is not available to serve as a mediating or dispute-resolving process for a person with complaints about the policies or actions of an approved law school. The Council will not intervene with an approved law school on behalf of an individual with a complaint against or concern regarding action taken by a law school that adversely affects that individual. The outcome of this process will not be the ordering of any individual relief for any person or requiring specific action by a law school with respect to any individual.\nA complaint must meet the following requirements:\n(1) Except in extraordinary circumstances, the complaint must be filed within one calendar year of the facts on which the allegation is based. Pursuit of other remedies does not toll this one calendar year limit.\n(2) Complaints must be in writing using the form \"Complaint Against an ABA-Approved Law School\" and must be signed. The form can be downloaded here: Complaint Form.\n(3) As outlined in the Complaint Form, the complaint must include the following information:\n(i) A clear and concise description of the nature of the complaint and any evidence upon which the allegation is based, with relevant supporting documentation. The description and supporting evidence should include relevant facts that support the allegation that the law school is out of compliance with the Standards referenced in the complaint.\n(ii) The section(s) of the Standards alleged to have been violated and the time frame in which the lack of compliance is alleged to have occurred.\n(iii) A description of the steps taken to exhaust the law school's grievance process and the actions taken by the law school in response to the complaint as a result of prescribed procedures.\n(iv) Disclosure of any other channels the complainant is pursuing, including legal action.\n(v) A release authorizing the Consultant's Office to send a copy of the complaint to the dean of the law school.\nProcess upon receipt of a complaint\nThe Consultant or designee shall determine whether the complaint alleges facts that raise issues relating to an approved law school’s compliance with the Standards. This determination shall be made within six weeks of receiving the complaint. The Consultant or designee may request additional information from the complainant if appropriate. If the Consultant or designee concludes that the complaint does not raise issues relating to an approved school’s compliance with the Standards, the matter will be closed.\nIf a law school that is the subject of a complaint is due to receive a regularly scheduled sabbatical site visit within a reasonable amount of time after the complaint is received, usually within one year, the complaint may be handled as part of the sabbatical site visit.\nIf the Consultant or designee determines that the complaint may raise possible compliance issues, the complaint shall be sent to the school and a response requested. The Consultant or designee ordinarily will request the dean of the school to respond within 30 days.\nIf the response from the school establishes that the school is not out of compliance with respect to the matters raised in the complaint, the Consultant or designee will close the matter.\nIf the school’s response does not establish that it is operating in compliance with the Standards on the matters raised by the complaint, the Consultant or designee, with the concurrence of the chairperson of the Accreditation Committee, may appoint a fact-finder to visit the school to investigate the issues raised by the complaint and the school’s response. The complaint, the school's response, and fact-finder’s report, if any, shall be referred to the Accreditation Committee and considered in the same manner as complaints and reviews that fall under Rule 13(a) of the Rules of Procedure.\nThe person making the complaint will be notified promptly regarding the conclusion of the matter. The person filing the complaint will not be provided with a copy of the school’s response, if any, and will not receive any further report on the matter.\nThere is no appeal to the Council or the Accreditation Committee, or elsewhere in the American Bar Association, in connection with a conclusion by the Consultant or designee that a complaint does not raise issues under the Standards.\nComplaints should be sent to:\nOffice of the Consultant on Legal Education, American Bar Association, 321 N. Clark Street, 21st Floor, Chicago, IL 60654.\nLearn more about the Accreditation Process or the Standards and Rules of Procedure for Approval of Law Schools"} +{"text": "Miami Herald - Drama Queen Blog\nA classic season\nPalm Beach Dramaworks has just spilled the details of its 2008-2009 season, and three of the four plays are by theatrical giants.\nOrlando Sentinel - Attention Must Be Paid Blog\nOn conversations between theaters and audiences\nChad Jones' Theater Dogs Blog\nChicago Tribune - Theater Loop Blog\n'First Breeze of Summer': life, and no regrets, in the bones\n'A Steady Rain' to end its fall\nBroadway Boys Perform Show Tunes With Pop Twist\nLeslie Uggams stars in `First Breeze of Summer'\nPHOTO CALL: Chita Rivera and George Hearn Pay D.C. a Visit\nBlum Is Roger in Broadway's Grease\nBroadway Grosses: May 19-25\nGypsy's LuPone, Benanti and Gaines to Perform on \"Good Morning America\"\nCelebutant: Don't You Know Who I Think I Am? to Play Club Café in Boston\nBroadway Belter Sengbloh to Makes a Splash June 9\nONSTAGE & BACKSTAGE: A Tale of Two Seths\nEpstein, Richards, Feldman and More to Join Riedel for Tony Talk 2008\nAcosta, Canavan, Grant, Gottesman and Puzzo to Star in LAB's Penalties & Interest\nCasting Announced for Other Side of Newark at NJPAC\nLeague of Professional Theatre Women to Present Awards June 12 at Sardi's\nDilly Joins Streep, Adams and Tucci in \"Julie & Julia\" Film\nStewart, Downie and Ford-Davies Will Join Tennant in RSC's Hamlet\nFreeman to Reprise I'm Every Woman at the Cutting Room June 13\nAuberjonois Is Imaginary Invalid in DC June 10-July 27; Baxter Directs\nDarragh, Narciso and Weixler Will Play It Safe Off-Broadway\nSydney Pollack, Hollywood Film Director, Is Dead at 73\nLaBute's Fat Pig, with Marshall, Page and Webb, Opens in London May 27\nAttorney for the Damned Will Play Open-Ended Run at the Kraine\nWong, Warren and Zbornik Will Join Adding Machine's Blair at the Zipper\nNew European Directive Outlaws Misquotes of Critics\nReview: EST Marathon 2008 Series B\nStrong entries from Neil LaBute, David Zellnik, Taylor Mac, and Anne Washburn highlight this solid line-up of one-acts.\nReview: A Chorus Line\nThe legendary musical's national tour is likely to delight both old fans and new audiences.\nFull Casting Announced for Intiman's Streetcar and Little Dog Laughed\nMathison and Shepherd to Co-Host Daytime Emmy Awards; Hansis, Kerwin, Kitt, Tartaglia Among Nominees\nJonathan Kent to Stage Santa Fe Opera's Marriage of Figaro\nFull Cast, Creative Team Set for Prince Music Theater's Jamaica\nCanavan, Grant, Puzzo, et al. Cast in LAByrinth's Penalties & Interest\nPassing Strange Recording Gets iTunes Release on May 27\nDownie, Stewart, Tennant, et al. Set for RSC's Hamlet\nFIRST PERSON: David Javerbaum: Dear Tony Voters...\nBroadway Grosses: In the Heights Still Climbing; Macbeth Takes Final Bow\nThose 13 Tony nominations continue to help the grosses of In the Heights, which climbed above 91% of capacity at the Richard Rodgers Theatre, bringing in $80,000+ over the previous week in the process. Of course, awards aren't everything, as the folks at Cat on a Hot Tin Roof, which jumped\nFierce! Project Runway's Christian Siriano Will Design Whoopi's Tony Gown\nProject Runway winner Christian Siriano has his next star-studded assignment: dressing Whoopi Goldberg for her hosting duties at the 2008 Tony Awards. The 22-year-old wunderkind designer showed off sample sketches on a Whoopi paper doll during the May 27 broadcast of ABC's The View.\nReview: 'The Internationalist' at Studio Theatre, DC\nReview: 'The Milk Train Doesn't Stop Here Anymore' at Hartford Stage\nReview: 'Jersey Boys' in Cincinnati\nThe Siegel Column: Musical Revivals and Encores!\nReview: 'Prisoner of the Crown'\nReview: 'The Hiding Place'\nReview: 'Taking Steps\nReview: 'The Hiding Place'\nReview: Two Unrelated Plays by David Mamet\nThe Times UK\nReview: Fat Pig, Trafalgar Studios, London\nBloated prejudice and everyday cruelties exposed in a touching portrait in Neil LaBute's latest offering\nReview: Lifecoach, Trafalgar Studios, London\nAmy Darcy is wonderfully watchable as she turns from tremulous klutz into confident and capable young woman\nPatricia Routledge Dons Crown, Joins WOS Network\nNew European Directive Outlaws Critical Misquotes\nFull Casting Announced for Tennant’s RSC Hamlet\nThree Oliver! Boy Stars Confirmed, Nancy Finalists\nLondon Theatre Guide\nBogosian’s SubUrbia staged in Southwark\nEric Bogosian’s gritty drama of small town dreams, SubUrbia, is to be staged by LOST Theatre at the Southwark Playhouse in June.\nRivers celebrates birthday with London show\nAmerican comedy icon Joan Rivers will celebrate her 75th birthday by making her London acting debut in a self-penned autobiographical play in September.\nNational revives War Horse with Sunday schedule\nWar Horse, the National Theatre’s hit family show of Christmas 2007, is to be revived in autumn 2008, when it will become the first show at the National to feature Sunday performances.\n|« 5/28/08 AM Clips - UK||ATW Review: 'Port Authority' »|"} +{"text": "ackwell_and_higher()\n if is_act_fp8:\n constraints = {\n \"is_persistent\": True,\n }\n else:\n constraints = {\"is_persistent\": target_info.has_native_mxfp()}\n\n with opt_flags_scope(constraints):\n # up_gate\n pc1 = PrecisionConfig(b_mx_scale=w1_mx, flex_ctx=FlexCtx(rhs_data=InFlexData()))\n pc2 = PrecisionConfig(b_mx_scale=w2_mx, flex_ctx=FlexCtx(rhs_data=InFlexData()))\n if is_act_fp8:\n x = x.to(torch.float8_e5m2)\n\n if fused_act:\n if is_act_fp8:\n pc1.out_dtype = torch.float8_e5m2\n else:\n pc1.out_dtype = torch.bfloat16\n pc2.out_dtype = torch.bfloat16\n if activation == \"swiglu\":\n act = FusedActivation(\n FnSpecs(\"swiglu\", triton_kernels.swiglu.swiglu_fn, (\"alpha\", \"limit\"), reduction_n=2), (1.702, 7.0)\n )\n else:\n act = FusedActivation(FnSpecs(\"silu\", _silumul_fn, (\"alpha\", \"limit\"), reduction_n=2), (1, None))\n x = matmul(\n x,\n w1,\n b1,\n a_ragged_metadata=ragged,\n gather_indx=gather_indx,\n precision_config=pc1,\n fused_activation=act,\n )\n else:\n pc1.out_dtype = torch.bfloat16\n pc2.out_dtype = torch.bfloat16\n\n x = matmul(x, w1, b1, a_ragged_metadata=ragged, gather_indx=gather_indx, precision_config=pc1)\n if activation == \"swiglu\":\n x = swiglu(x, interleaved=True)\n elif activation == \"silu\":\n x = silu(x, interleaved=True)\n else:\n raise ValueError(f\"Unsupported activation: {activation}\")\n\n if is_act_fp8:\n x = x.to(torch.float8_e5m2)\n\n # down\n x = matmul(\n x, w2, b2, a_ragged_metadata=ragged, scatter_indx=scatter_indx, precision_config=pc2, gammas=gate_scal\n )\n\n x = x.view(-1, experts_per_token, x.shape[-1]).sum(dim=1)\n return x\n\n\nclass OpenAIMxMoEBase(FusedMoEBase):\n def __init__(\n self,\n base: FusedMoEBase,\n gate_up_proj: torch.Tensor | list[torch.Tensor],\n down_proj: torch.Tensor | list[torch.Tensor],\n gate_up_proj_bias: torch.Tensor | list[torch.Tensor] | None,\n down_proj_bias: torch.Tensor | list[torch.Tensor] | None,\n ):\n super().__init__(\n n_embd=base.n_embd,\n n_hidden=base.n_hidden,\n num_experts=base.num_experts,\n num_experts_per_tok=base.num_experts_per_tok,\n gate_bias=base.gate_bias is not None,\n gate_fp32=base.gate_fp32,\n )\n\n self.activation = base.activation\n self.moe_bias = base.moe_bias\n self.moe_group_id = 0\n self.num_ep_ranks = 1\n\n self.gate_weight = base.gate_weight\n self.gate_bias = base.gate_bias\n\n self._gate_up_proj = gate_up_proj\n self._down_proj = down_proj\n self._gate_up_proj_bias = gate_up_proj_bias\n self._down_proj_bias = down_proj_bias\n\n self._register_buffers()\n\n def _register_buffers(self):\n self.register_buffer(\"gate_up_proj\", None)\n self.register_buffer(\"gate_up_proj_mx\", None)\n self.register_buffer(\"down_proj\", None)\n self.register_buffer(\"down_proj_mx\", None)\n if self.moe_bias:\n self.register_buffer(\"gate_up_proj_bias\", None)\n self.register_buffer(\"down_proj_bias\", None)\n\n def prepare_for_inference(self):\n if self.gate_up_proj is not None:\n return\n\n gate_up_proj = (\n self._gate_up_proj\n if isinstance(self._gate_up_proj, torch.Tensor)\n else torch.stack(tuple(self._gate_up_proj))\n )\n\n # Transpose the gate weight for matmul_ogs and cast to the\n # computation dtype so matmul_ogs never sees a dtype mismatch on weights.\n compute_dtype = gate_up_proj.dtype\n self.gate_weight = self.gate_weight.t().contiguous().to(compute_dtype)\n # Keep gate bias in fp32: matmul_ogs' Triton epilogue uses fp32 bias loads on all\n # paths; bf16 bias triggers \"Mismatched type for bias between then/else block\".\n self.gate_bias = self.gate_bias.float() if self.gate_bias is not None else None\n\n down_proj = (\n self._down_proj if isinstance(self._down_proj, torch.Tensor) else torch.stack(tuple(self._down_proj))\n )\n if self.moe_bias:\n gate_up_proj_bias = (\n self._gate_up_proj_bias\n if isinstance(self._gate_up_proj_bias, torch.Tensor)\n else torch.stack(tuple(self._gate_up_proj_bias))\n )\n down_proj_bias = (\n self._down_proj_bias\n if isinstance(self._down_proj_bias, torch.Tensor)\n else torch.stack(tuple(self._down_proj_bias))\n )\n else:\n gate_"} +{"text": "Walt was 81 years old when he had what was called a “heart event” and admitted to a hospital via ambulance late evening of July 26, 2011. They could not call it a heart attack and so they ordered an EP study. He was diagnosed with a lower heart chamber arrhythmia/rapid beat. It was then they decided to implant and ICD (internal cardiac defibrillator).\nDad had recovered nicely and had no incident until the evening of September 4, 2011. My father was experiencing some chest pressure and advised my brother. He waved the wand over my fathers ICD and it read that his pulse was 160 and again, my father was rushed to the ER. My father’s ICD was set too high and it never shocked my father’s heart back to rhythm. At the emergency room my father was shocked back into his normal beat. The Medtronic team monitoring his ICD came to the ER and reset it to 140. I’d like to know who would set an ICD for an 81 year old that high anyway!\nAfter my father was shocked back to normal rhythm, an ER physician decided to start my father on IV Amiodarone. At that moment, a nurse pulled my brother and sister in law aside and told them that this drug was extremely toxic and that he should not be on it very long. They researched it and advised me of its toxicity.\nMy father was then transferred to another floor where he waited for his discharge. He was healthy and walked the entire floor with my brother laughing and joking. Later that night, less than 48 hours after his initial dose of Amiodarone, my father went into respiratory failure coughing up blood. He was brought down to the ICU unit and immediately put on a bi-pap machine while I watched in horror of his condition that had declined so rapidly. I notified the nurses that he had recently been put on Amiodarone and that the side effects were exactly what my father was experiencing and that we should discontinue its use. They felt it was pulmonary edema. We had to wait until he was stable to send him for a CT scan. He was struggling with every breath. The CT scan showed no blood clot but they felt he had double pneumonia.\nAt that time they started 5 IV antibiotics and took cultures from urine, blood, stool and anything else they could. He began lasix to help rid fluids that seemed to be building up in his lungs/heart area. All my family members were united and spoke with the pulmonary and cardiologists that saw my dad on a daily basis and told them we believed it was Lung Toxicity due to Amiodarone. They said that it was impossible for reactions to be so soon after taking it. My father developed thrush in his throat and mouth and was put on a 6th IV antibiotic and had to have his mouth rinsed three times a day. It was already hard to breath and he could barely swallow or eat.\nOn the 7th day the Amiodarone was discontinued (quietly) and a steroid was introduced. All the cultures had come back negative for pneumonia or infection. The IV antibiotics were slowly being discontinued. It wasn’t until we asked that we were told the Amiodarone was discontinued. My father was developing a bluish tint to his skin. His eyes were yellow and he had a rash on his entire back. He was having horrible nightmares and could not sleep. He rotated between, bi-pap, nasal cannula and mask. We were able to assist him to a chair from bed but his oxygen would drop drastically when he did. My strong father was deteriorating right before our eyes. He was exhausted and confused….so were we.\nSlowly the visible side effects were subsiding but there was absolutely no improvement elsewhere. On September 21st (two weeks later) my dad was told there was nothing else they could do for him and he was transferred to another hospital. The doctor that signed his paperwork had written a note about possible Amiodarone Toxicity, along with all the other things he felt it really was. Respiratory failure, acute heart failure, extreme tachycardia.\nAfter arriving at the new hospital he was introduced to new doctors and all of them had never seen Amiodarone Toxicity and did not believe that is what he had. Still the steroids continued as well as the round the clock oxygen my father could not live without. Doctors came and doctors went…painful to explain my fathers story over and over to them. A pulmonary doctor had been assigned to my father. His diagnosis was that my father had COP (Cryptogenic Organizing Pneumonia) brought on by the Amiodarone. He felt he would be alright but would need steroids for months to come. I asked that he please investigate Amiodarone toxicity. He decided to present my father’s entire case to the Pulmonary Department of University of Cincinnati with our permission.\nAt this point my father had been in the new hospital just 10 days. His oxygen needs were so high they had to transfer him to a respiratory unit on September 30, 2011. On October 3, 2011 his pulmonary doctor returned after presenting my father’s case to find him moved to the respiratory unit and my father failing fast. He finally agreed that my father most likely had Lung Toxicity from Amiodarone. He gave my father less than a week to live.\nOn the afternoon of October 5, 2011 my father asked me if there was a cure for what he had. I had to tell him no, but I didn’t want him to stop fighting. His family and close friends filled his room that day. He was able to hold his first great grandchild that had been born weeks earlier.\nOn the morning of October 6, 2011 my fatherly quietly passed 8 hours after we moved him to the hospice floor. He was no longer attached to a heart and oxygen monitor. The oxygen alarms were no longer going off. There were no more medicines being put into his picc line. No more buttons to push to ask for assistance. No more food trays with cold food being delivered. No more bed pans. He was not being poked or prodded or questioned. There was finally peace and quiet.\nR.I.P. Walter Edward Maher 12-20-1929 to 10-6-2011"} +{"text": "I’m in the midst of my fourth summer of field work, and over the course of this time, I have spent many hours filming male Anolis carolinensis. I’ve done this work under several conditions; one project involved filming known animals in the field, a second required filming staged encounters between males in the lab, and the final (and current) project has me filming animals in semi-natural enclosures. These experiences prompted me to create this post, which I hope will be useful to anole researchers and enthusiasts who are embarking on projects that involve capturing video of lizards doing the things that fascinate us. Today, I’ll begin with a discussion of cameras and in a later post, I will write about other equipment as well as some of the techniques I’ve employed to capture useful images.\nThe most important piece of equipment. With the dizzying array of options available (amazon.com lists 839 results in its ‘Camcorders’ section), choosing a camera can be a daunting task. Nearly all of my work has used two different cameras, so while I can’t comment very broadly, there are some key features that I recommend.\nThe single most important feature is the ability to manually focus the image. Filming a lizard is done from a distance, and consequently, the animal takes up a very small amount of screen real estate. If the animal is on a twig or any other small perch, you may drive yourself crazy trying to get the auto-focus to pick it up. More likely you’ll end up with a clear image of the background and at worst, you’ll be unable to see what the focal animal is up to at all.\nFortunately, many modern camcorders have manual focus capabilities. Be warned that these work to varying degrees. For example, the camera I own allows the operator to focus by touching the viewfinder screen, but this method lacks the precision needed to get a clear picture of such a small target. The second camera I use regularly is on loan from my University’s Natural History Collection. It largely solves the problem by using a wheel for manual focus, which allows me to get a sharp image of the animal regardless of the background, or the lizard’s size relative to the frame.\nBeyond focusing mechanism, there are other important choices regarding the camera. For example, high-def or standard? Hard-disk, digital DVD, or another format for capturing files. Do you need your videos GPS-tagged? What about still photos? Image stabilizing? Zoom capabilities? I can’t address each of these options in detail, but here’s a quick rundown of my experience.\nThe option for shooting in HD is nice, but there are drawbacks. The files are huge, so have a lot of hard drive space to back them up. As a tech-geek with a shiny new camera in hand, I started shooting films in HD in anticipation of creating the next viral youtube video, cashing in on the Hollywood movie rights, and going into early retirement, but I quickly ran into a major complication: it’s hard to do anything to these files. Want to edit some down for a talk? Need to score behaviors using other software? Want to watch them on your computer? If you answered yes to any of these, you may consider going standard definition. Except for the (terrible) software that came with my camera, most playback programs refused to play the files I created in HD (for the record, their extension is .mts). VLC is one exception, sort of. It’s free software and known to play many, many types of files, but playback of the HD video was jerky, bogged my computer down, and was, at worst, unusable. So I was forced to invest in a video conversion program, which gave me a great many choices of file type, but severely reduced the quality of the image to the point that they were worse than films shots in standard definition. Bottom line: until hardware and software advance enough to easily process these files, go with standard definition.\nRegarding the actual physical storage of the images as they are captured, I prefer a hard disk drive (HDD) in the camcorder. The drives can be quite large (mine is 120 GB), and usually can be hooked to any computer via a USB connection, whereupon they appear as an external hard drive, allowing easy file storage and back up. Very convenient. Of course an HDD will fail eventually: caveat emptor. Solid state / flash memory card are available in some camcorders, and while their lack of moving parts makes them generally more durable, they offer less storage capacity and are more expensive.\nGPS – Anolologists’ choice. I have it but keep it off to preserve battery life. If your research involves geographic variation or any other macro-spatial component, this may be a handy feature.\nStill photos are very important to me. Many camcorders have the ability to capture still images of relatively high quality. I also prefer the option of snapping some stills as I’m recording. You never know what you might see.\nImage stabilization in not necessary, but is likely to be integrated into any higher-end camcorder. It will definitely make things a little nicer for the\npoor undergrad whomever is watching/scoring the videos.\nZoom requirements may vary depending on which animals one is filming. Look especially at a camera’s optical zoom, as digital zoom invariably reduces image quality. For filming carolinensis, I’ve found that 12x optical zoom is adequate.\nSo, for those of you anole annal readers that have done filming of animals: what did you use? Any advice or experiences you’d care to share?\nStay tuned for the conclusion of this post, in which I’ll discuss techniques and additional equipment that I’ve found useful for capturing the behavior of our favorite lizards. I’ll try to dig up some video and more images to share as well."} +{"text": "up_proj_bias = None\n down_proj_bias = None\n\n self.gate_up_proj_shape = gate_up_proj.shape\n self.down_proj_shape = down_proj.shape\n\n self.gate_up_proj, self.gate_up_proj_mx = self._quantize_weight(gate_up_proj)\n self.down_proj, self.down_proj_mx = self._quantize_weight(down_proj)\n\n if self.moe_bias:\n self.gate_up_proj_bias = gate_up_proj_bias.float()\n self.down_proj_bias = down_proj_bias.float()\n\n del self._gate_up_proj\n del self._down_proj\n if self.moe_bias:\n del self._gate_up_proj_bias\n del self._down_proj_bias\n\n def _quantize_weight(self, weight: torch.Tensor) -> tuple[torch.Tensor, torch.Tensor]:\n raise NotImplementedError(\"Not implemented\")\n\n\ndef _make_weights(\n base: ConvertableFusedMoEBase,\n as_list: bool = False,\n) -> tuple[\n torch.Tensor | list[torch.Tensor],\n torch.Tensor | list[torch.Tensor],\n torch.Tensor | list[torch.Tensor] | None,\n torch.Tensor | list[torch.Tensor] | None,\n]:\n if as_list:\n gate_up_proj = _make_gate_up_proj_list(base.gate_proj_weights_list, base.up_proj_weights_list)\n down_proj = _make_down_proj_weight_list(base.down_proj_weights_list)\n if base.moe_bias:\n gate_up_proj_bias = [\n t.float() for t in _make_gate_up_proj_bias_list(base.gate_proj_bias_list, base.up_proj_bias_list)\n ]\n down_proj_bias = [t.float() for t in _make_down_proj_bias_list(base.down_proj_bias_list)]\n else:\n gate_up_proj_bias = None\n down_proj_bias = None\n else:\n gate_up_proj = _make_gate_up_proj_weight(base.gate_proj_weights_list, base.up_proj_weights_list)\n down_proj = _make_down_proj_weight(base.down_proj_weights_list)\n if base.moe_bias:\n gate_up_proj_bias = _make_gate_up_proj_bias(base.gate_proj_bias_list, base.up_proj_bias_list).float()\n down_proj_bias = _make_down_proj_bias(base.down_proj_bias_list).float()\n else:\n gate_up_proj_bias = None\n down_proj_bias = None\n return gate_up_proj, down_proj, gate_up_proj_bias, down_proj_bias\n\n\nclass OpenAIMxfp4MoE(OpenAIMxMoEBase):\n def forward(\n self,\n x: torch.Tensor,\n score_processor: Callable[[torch.Tensor], Tuple[torch.Tensor, torch.Tensor]] = None,\n active_tokens_mask: torch.Tensor = None,\n score_processor_input_ids: torch.Tensor | None = None,\n ) -> torch.Tensor:\n gate_up_proj_ttensor, gate_up_proj_mx_ttensor = to_triton_tensors(\n self.gate_up_proj, self.gate_up_proj_mx, self.gate_up_proj_shape\n )\n down_proj_ttensor, down_proj_mx_ttensor = to_triton_tensors(\n self.down_proj, self.down_proj_mx, self.down_proj_shape\n )\n\n with record_function(\"moe\"):\n x = moe(\n x,\n self.gate_weight,\n gate_up_proj_ttensor,\n gate_up_proj_mx_ttensor,\n down_proj_ttensor,\n down_proj_mx_ttensor,\n self.gate_bias,\n self.gate_up_proj_bias if self.moe_bias else None,\n self.down_proj_bias if self.moe_bias else None,\n experts_per_token=self.num_experts_per_tok,\n ep_rank=self.moe_group_id,\n ep_world_size=self.num_ep_ranks,\n score_processor=score_processor,\n score_processor_input_ids=score_processor_input_ids,\n activation=self.activation,\n )\n\n return x\n\n def _quantize_weight(self, weight: torch.Tensor) -> tuple[torch.Tensor, torch.Tensor]:\n return quantize_mxfp4(weight)\n\n @classmethod\n def from_convertable_moe(cls, base: ConvertableFusedMoEBase):\n weights = _make_weights(base, as_list=True)\n return cls(base, *weights)\n\n\nclass OpenAIMxfp8MoE(OpenAIMxMoEBase):\n def __init__(\n self,\n base: FusedMoEBase,\n gate_up_proj: torch.Tensor,\n down_proj: torch.Tensor,\n gate_up_proj_bias: torch.Tensor | None,\n down_proj_bias: torch.Tensor | None,\n weight_dtype: torch.dtype = torch.float8_e4m3fn,\n ):\n super().__init__(base, gate_up_proj, down_proj, gate_up_proj_bias, down_proj_bias)\n\n self.weight_dtype = weight_dtype\n\n def forward(\n self,\n x: torch.Tensor,\n score_processor: Callable[[torch.Tensor], Tuple[torch.Tensor, torch.Tensor]] = None,\n active_tokens_mask: torch.Tensor = None,\n score_processor_input_ids: torch.Tensor | None = None,\n ) -> torch.Tensor:\n gate_up_proj_ttensor, gate_up_proj_mx_ttensor = to_triton_tensors_fp8(\n self.gate_up_proj, self.gate_up_proj_mx, self.gate_up_proj_shape, weight_dtype=self.weight_dtype\n )\n down_proj_ttensor, down_proj_mx_ttensor = to_triton_tensors_fp8(\n self.down_proj, self.down_proj_mx, self.down_proj_shape, weight_dtype=self.weight_dty"} +{"text": "Devotion and an Old Icon\nHave you heard the story about the Tikhvin icon of the Mother of God? This icon measures 34 inches by 43 inches, and is named for a village in northwestern Russia that is its current home. It has been a source of great veneration and comfort to the Russian people, especially during times of great suffering.\nAccording to Orthodox Christian tradition, the icon was painted by the Apostle and Evangelist Luke—as in Matthew, Mark, Luke, and John—and after its completion it stayed in Jerusalem for five hundred years. In the sixth century, the icon was taken to Constantinople, where it became a reassuring sign of the tenderness of the Mother of God for the inhabitants of that city.\nThe icon made its way north to the land of Russia. In 1383, fisherman on the northern Russian Lake Ladoga witnessed the icon hovering above the waters. It appeared in various locations, and eventually came to rest near the Tikhvin River where, in 1560, the Russian Czar Ivan the Terrible ordered that a monastery be built specifically to house the icon—a monastery dedicated to the Dormition of the Mother of God, the feast celebrated on August 15th.\nOver the course of the centuries, the Tikhvin Monastery became the site of pilgrimage to which all kinds of people came to pray, and where countless miracles occurred as the Theotokos interceded for her children.\nThen, in 1917, tragedy struck the Russian people. Churches and monasteries were destroyed, millions of Orthodox Christians were killed, and a cold, dark cloud of hostility toward the things of God spread over the Russian land. The Revolution of 1917 brought brutal changes to the Russian Church, and the Tikhvin Monastery was shut down in 1924.\nConscious of the extraordinary treasure in their midst, some Russian Orthodox people confiscated the icon. After its escape from the monastery, the icon was taken to Latvia and Poland and Czechoslovakia and Germany. This treasure came to be cared for by a bishop whose name was John.\nBishop John eventually traveled to America, and resided in New York City. When he was elected Archbishop of Chicago and Minneapolis of the Russian Orthodox Church in North America in 1949, Bishop John brought the icon with him and placed it in Holy Trinity Cathedral in Chicago.\nBefore he died in 1982, Bishop John entrusted the care of this wonderworking icon to his adopted son, the priest Serge, with this instruction: when the dark cloud of secularism and indifference toward God lifts over Russia, take the icon back to the land where it belongs. Like the prophet Moses of old, Bishop John did not live to see his precious possession reach its Promised Land.\nThe Tikhvin Icon of the Mother of God made one last tour through the United States before its historic departure for the re-opened Tikhvin Monastery in northwestern Russia. On that tour, the icon was even brought to St Tikhon’s Orthodox Theological Seminary in Pennsylvania when I was a seminarian there not too long ago.\nWhen the icon finally arrived in Russia, the event was unlike anything the land had seen for decades. President Putin and leaders of the Russian Orthodox Church arranged the celebrations. The icon was taken with processions to visit churches and monasteries throughout Russia. In Moscow, the icon stood for days in the huge Cathedral of Christ the Savior—the church that Joseph Stalin had destroyed (installing a swimming pool in its place) and Boris Yeltsin had restored. In St Petersburg, 150,000 people showed up to welcome the icon. All over Russia, as in centuries passed, many miracles occurred for those who venerated the icon “in the fear of God, with faith and love.”\nThe day arrived when the icon arrived by train at the end of its journey at the Dormition Monastery in Tikhvin. Hundreds of tents were set up to provide shelter for overnight services. More than 1500 police were on hand to ensure security for dignitaries and important guests.\nNow, listen to this: as its journey came to an end, a line of pilgrims formed to venerate the Tikhvin Icon of the Mother of God – a line that was four miles long and took three days to go through. Did you catch that? Christians coming to venerate this precious icon formed a line that was four miles long and took three days to get through!\nTake a moment to imagine four miles, in any direction, from where you are right now. Now, imagine a line of people winding its way along the route you’ve just drawn in your mind; they are children and men and women – all ages and shapes and conditions – shuffling along for three days. And finally, imagine this: what – or whom – would you wait in line four miles and three days to see? A celebrity? A sporting event? A book release? A rock concert? A miracle-working icon? We must ask ourselves: What is worth four miles on our feet and three days of our time?\nIn too many places of our fallen world we do not know how to venerate the holy. Take America, for example: some of what we venerate, God finds detestable; some of what we ignore, God finds precious. So, we who are both American and Christian will, automatically, be in conflict with our culture when it comes to what is worth our deepest devotion. And that’s okay: we expect it, we accept it, and we strive to live in such a way as to make our Christian faith attractive to others.\nIs your faith worth four miles on your feet and three days of your life? Do you take the really important things for granted? I do, from time to time. But, to take for granted, is to miss the granted. To take for granted means that we miss the really good things God has given to us—His Church, His liturgy, His Body and His Blood, His bible, His grace, His forgiveness, His creation, His children, and, if we are not careful, His heaven.\nMay each of us strive to value the really important things more and more as the days and months and years pass. That is my prayer for me; that is my prayer for you, too."} +{"text": "LONDON - The invasion of Iraq rebounded a little on the government of British\nPrime Minister Tony Blair to dent his majority as he returned to a third term\nas prime minister.\nBut it was not serious damage. Iraq did not prevent Blair from returning with\na comfortable enough majority, and this is the first time in its history that\na Labour government has been reelected for a third successive term.\nNonetheless, Iraq was still an issue, and it came home to Blair in his own\nconstituency Sedgefield. The incumbent prime minister was challenged by an independent\ncandidate Reg Keys, whose son was killed during the Iraq war.\nBlair got 24,421 votes, and Keys 4,252. That means that for every six votes\nBlair got, Keys got at least one. Compared to the last general election in 2001,\nthe votes for Blair dropped by about six percent. A member of the Blair campaign\nteam Derek Cattel had quit midway through the campaign to support Keys.\n\"I know Iraq has been a divisive issue,\" Blair said as he was announced\nwinner. \"I hope we can unite again and look to the future, there and here.\"\nThe remark seemed an indication that despite the opposition over Iraq he ran\ninto, he intended to stay the controversial course.\nKeys came up to the stage in Sedgefield to explain why he had contested. \"I\nwould have grieved and not campaigned if that war had been fought under international\nlaw,\" he said. \"I would have grieved and not campaigned if weapons\nof mass destruction had been found in Iraq.\"\nKeys added: \"I am hoping in my heart that one day the prime minister will\nbe able to say sorry.\"\nIf Keys was a constant reminder of Iraq to Blair through his election campaign\nin his constituency, he faces far more formidable opposition in parliament through\nGeorge Galloway, who beat the Labour candidate in the Bethnal Green constituency\nFor Galloway, who was expelled from the Labour Party for what the party described\nas his support for Saddam Hussein, Iraq was the key issue. He got much support\nthrough his campaign from the very large number of Muslim voters in the constituency.\nGalloway is certain to confront Blair through his third term over Iraq, and\nGalloway is nothing if not strident, as he showed in his victory speech.\n\"Mr. Blair, this is for Iraq, and all your other defeats your Labour Party\nhas suffered this day is [sic] for Iraq. All the people you have killed, and\nall the lies that you've told have come back to haunt you. The best thing you\ncan do is to resign.\"\nThe only political party that had opposed the invasion of Iraq, the Liberal\nDemocrats, saw their votes go up 3.9 percent from 22.6 percent in 2001. The\npercentage of Labour votes dropped 5.8 percent to 36.4 percent. The Conservatives,\nwho firmly backed the invasion of Iraq, got 33.1 percent of the vote, a small\ngain of 0.6 percent over 2001.\nThe Liberal Democrat gain did not, however, translate into a proportionate\nrise in the number of members of parliament. In Britain's first-past-the-post\nsystem in which the winner is the one with the plurality of votes, votes won\nare often not reflected in seats gained.\nWith 619 of 646 seats declared, Labour had 353, losing 47 in relation to the\nlast parliament. The Conservative Party had 195, a gain of 33, and the Liberal\nDemocrats had 59, a gain of 11 seats.\nThe significance of Iraq surfaced through the election results. During the\ncampaign, it was one among several issues that came up and subsided. The Liberal\nDemocrats claimed they had got it right on Iraq, and the Conservatives attacked\nBlair over what they called lies over the invasion. But there was little indication\nhow far people were going to think about the invasion when they voted.\nLabour is believed to have lost many votes and seats in constituencies with\na high Muslim population such as Bethnal Green and in constituencies\nwith a high number of students. Both these groups were at the forefront of the\nBlair said that his new government will take on board the verdict of the people,\nreflected in some loss of support for his party. But that is not expected to\nlead to any sudden or significant change in his Iraq policy.\n(Inter Press Service)"} +{"text": "pe\n )\n with record_function(\"moe\"):\n x = moe(\n x,\n self.gate_weight,\n gate_up_proj_ttensor,\n gate_up_proj_mx_ttensor,\n down_proj_ttensor,\n down_proj_mx_ttensor,\n self.gate_bias,\n self.gate_up_proj_bias if self.moe_bias else None,\n self.down_proj_bias if self.moe_bias else None,\n experts_per_token=self.num_experts_per_tok,\n ep_rank=self.moe_group_id,\n ep_world_size=self.num_ep_ranks,\n score_processor=score_processor,\n score_processor_input_ids=score_processor_input_ids,\n activation=self.activation,\n )\n\n return x\n\n def _quantize_weight(self, weight: torch.Tensor) -> tuple[torch.Tensor, torch.Tensor]:\n return quantize_mxfp8(weight, weight_dtype=self.weight_dtype)\n\n @classmethod\n def from_convertable_moe(cls, base: ConvertableFusedMoEBase, weight_dtype: torch.dtype = torch.float8_e4m3fn):\n weights = _make_weights(base, as_list=True)\n return cls(base, *weights, weight_dtype=weight_dtype)\n\n\ndef _redistribute_weights(\n base: OpenAIMxMoEBase, sharded_moe: ShardedMoE\n) -> tuple[torch.Tensor, torch.Tensor, torch.Tensor | None, torch.Tensor | None]:\n gate_up_proj = sharded_moe.redistribute_weights(base._gate_up_proj, chunk_dim=2)\n down_proj = sharded_moe.redistribute_weights(base._down_proj, chunk_dim=1)\n\n if base.moe_bias:\n # NB: it works for up_gate because it's stored in the interleaved columnar layout.\n gate_up_proj_bias = sharded_moe.redistribute_biases(base._gate_up_proj_bias, chunk=True)\n down_proj_bias = sharded_moe.redistribute_biases(base._down_proj_bias, chunk=False)\n else:\n gate_up_proj_bias = None\n down_proj_bias = None\n\n return gate_up_proj, down_proj, gate_up_proj_bias, down_proj_bias\n\n\nclass ShardedOpenAIMxfp4MoE(OpenAIMxfp4MoE, ShardedMoE):\n def __init__(\n self,\n base: OpenAIMxfp4MoE,\n sharding_config: fireshard.ShardingConfig,\n all_reduce_module: AllReduce | None = None,\n ):\n sharded_moe = ShardedMoE(sharding_config, base.num_experts)\n weights = _redistribute_weights(base, sharded_moe)\n OpenAIMxfp4MoE.__init__(self, base, *weights)\n ShardedMoE.__init__(self, sharding_config, base.num_experts, all_reduce_module)\n\n def forward(\n self,\n x: torch.Tensor,\n score_processor: Callable[[torch.Tensor], Tuple[torch.Tensor, torch.Tensor]] = None,\n active_tokens_mask: torch.Tensor = None,\n score_processor_input_ids: torch.Tensor | None = None,\n ) -> torch.Tensor:\n x = super().forward(\n x,\n score_processor,\n active_tokens_mask,\n score_processor_input_ids=score_processor_input_ids,\n )\n if self.reduce and self.all_reduce_module is not None:\n x = self.all_reduce_module(x)\n return x\n\n\nclass ShardedOpenAIMxfp8MoE(OpenAIMxfp8MoE, ShardedMoE):\n def __init__(\n self,\n base: OpenAIMxfp8MoE,\n sharding_config: fireshard.ShardingConfig,\n all_reduce_module: AllReduce | None = None,\n weight_dtype: torch.dtype = torch.float8_e4m3fn,\n ):\n sharded_moe = ShardedMoE(sharding_config, base.num_experts)\n weights = _redistribute_weights(base, sharded_moe)\n OpenAIMxfp8MoE.__init__(self, base, *weights, weight_dtype=weight_dtype)\n ShardedMoE.__init__(self, sharding_config, base.num_experts, all_reduce_module)\n\n def forward(\n self,\n x: torch.Tensor,\n score_processor: Callable[[torch.Tensor], Tuple[torch.Tensor, torch.Tensor]] = None,\n active_tokens_mask: torch.Tensor = None,\n score_processor_input_ids: torch.Tensor | None = None,\n ) -> torch.Tensor:\n x = super().forward(\n x,\n score_processor,\n active_tokens_mask,\n score_processor_input_ids=score_processor_input_ids,\n )\n if self.reduce and self.all_reduce_module is not None:\n x = self.all_reduce_module(x)\n return x\n"} +{"text": "Ferrari World’s long-awaited new instalment is finally set to be unveiled on February 24, it has been announced.\nFerrari World on Yas Island has built the first bi-plane themed roller coaster called Flying Aces. The triple record-breaking ride, acclaimed for having the world’s tallest loop and fastest and steepest starting hill inclination, mimics the movements of the 1900s bi-planes to offer extreme gravity defying flight acrobatics that include a 52 metre non-inverted loop, down flips and plenty of airtime.\n“There are very few theme parks that have undertaken such a significant expansion as Ferrari World Abu Dhabi,” said general manager of Ferrari World Abu Dhabi Jesse Vargas. “Flying Aces will be another one-of-a-kind ride that you can only find at Ferrari World Abu Dhabi. Its design and storyline are deeply rooted in the rich history of Ferrari.”\nIn keeping with Ferrari World’s theme of telling the history of the famous car manufacturer through rides and simulators, this new instalment brings to life the story of Ferrari’s legendary Prancing Horse emblem, which was inherited by Enzo Ferrari for good luck and first used by the famous Italian aviator Count Francesco Baracca.\nThose brave enough to step foot on the monster coaster will travel at speeds of 120kmph along the 1.5km track.\nFive more at Ferrari World\nThe indoor theme park with the famous red roof is planning to bring in more rides after Flying Aces is launched. In the meantime, here are five rides that you just shouldn’t miss out on at Ferrari World Abu Dhabi…\n1 Formula Rossa\nThe world’s fastest roller coaster provides thrill-seekers the ultimate adrenaline rush with a turbo-charged Ferrari experience. Get strapped in to a Ferrari F1 carriage that rockets along the tracks reaching 0-100 kmph in less than two seconds, accelerating to 240 km/h. Formula Rossa simulates the heart-pounding rush of what it’s like to drive a Ferrari F1 racer and you’ll see Yas Island vistas at high speeds and from more than 50 metres off the ground. You’ll be required to don protective eyewear to shield your peepers from the wind force generated by the coaster’s g-force and mind-blowing speeds, in a coaster powered by the same kind of hydraulic winch system used to launch jet planes. Some might just want to shut their eyes, anyway. For speed-freaks and thrill-seekers who absolutely must ride the fastest roller coaster on earth, this is a must. The world-famous attraction is the ultimate, high-intensity goal, so make sure you persevere with the queue – it’s well worth the wait.\nThis cute little ride is a miniature recreation of famous Italian cityscapes and structures. The slow-moving ride is reminiscent of “It’s a Small World” in California’s original Disneyland Park and is a welcome relief from the faster moving rides in the indoor theme park. Bell’Italia features 17 stops over a 6,300 metre squared area passing the picturesque Portofino and the Amalfi Coast, proceeding to the Monza racetrack, the Colosseum in Roma, the canals of Venezia and Maranello, the home of Ferrari. The course can be covered on foot or in small-scale Ferrari 250 California Spider cars that allow you to control the pace of the Italian touring experience.\n3 Karting Academy\nLaunched during the F1 season in November 2014, Karting Academy is a hands-on, adrenaline-fuelled racing experience. Whether a beginner or a serious sprinter, visitors to Ferrari World can test their racing skills aboard advanced electric powered go-karts and challenge family and friends around a 290m track. You’ll reach speeds of up to 80kmph. Amongst the safest rides of its kind in the world, Karting Academy is guaranteed fun and offers up some serious bragging rights. You’ll want to queue up for this one more than once.\n4 Fiorano GT Challenge\nThis exciting ‘duelling’ coaster sends two trains of three Ferrari F430 Spider carriages careering along parallel tracks in a high octane race to the finish line. The first thrill ride of its kind in the region, Fiorano GT Challenge rips around hairpin turns in a high-speed duel between two trains to reach the finish line. There is never a tie and always a winner (and a loser) on this ride.\n5 Scuderia Challenge\nThis is the closest you will get to becoming an F1 driver without actually stepping into a car. The Scuderia Challenge is a state-of-the-art simulator based on the professional training simulators used by the Scuderia Ferrari drivers. This is a level of realism way beyond an arcade game, giving guests a taste of a real life racing experience. Sitting behind authentic Ferrari F1 steering wheels in real Ferrari seats, you can navigate the nearby Yas Marina Circuit, either racing against your friends in a group of eight or in an individual time trial."} +{"text": "Home › Women's\n› Senna Tank\nClick to Zoom\nTrim fit, quick drying women’s tank top with comfort straps and a built-in shelf bra. Designed for hiking and daily adventure.\nALL PRODUCTS;all;everything;entire;collection;ACTIVITY/ MOBILITY;active;activity;aerobic;anatomical;aroebic;articulated;articulation;athletic;comfort;dynamic;endurance;ergonomic;fast moving activity;gardening;mobility;motion;movement;performance;range of motion;stretch mobilityARC; all products;arc teryx;arcteryx;arc'teryx;B.C.;bc;british columbia;canada;equipment;gear;innovation;innovative;outdoor;outdoor gear;performance;quality;sports equipment;technical;vancouver;HIKING;adventure hiking;alpine;alpinist;alpinists;apparel;backcountry;backpacker;backpacking;equipment;gear;high alpine;hike;hiker;hikers;hiking;hiking climbing;hiking equipment;hiking route;hiking trip;hiking trips;mountain;mountain hiking;mountain top;mountaineering;mountains;outdoor adventures;peak;rambling;road hiking;scenic hiking;scramble;scrambling;trail;trail walking;trailhead;trailhead hiking;trails;walking;walking trails;wilderness;Randonnée;Randonnee;Randonée;Randonee;TREKKING/ BACKPACKING;adventure trekking;alpinist;alpinists;apparel;backcountry backpacking;backcountry trekking;backpacker;backpacking;backpacking trails;backpacking trip;backpacking trips;equipment;gear;high alpine;mountain;ski backpacking;travel;traveling;travelling;treking;trekker;trekking;trekking trails;trekking trips;trekking trips;Wandern;ENDORPHIN FITNESS;active;activity;aerobic fitness;aerobics;apparel;body fitness;cardio fitness;endurance;equipment;excercise;excercises;exercise equipment;exercise fitness;female fitness;fitness;fitness equipment;fitness sports;fitness training;fitness workout;gear;gym;gyms;health & fitness;health and fitness;health clubs;ladies fitness;personal fitness;physical fitness;pilates;sports and fitness;technical;training;treadmill;wellness;workout;workouts;yoga;excercise clothing;running clothing;runnCLIMBING;abseil;abseiling;adventure climbing;aid climbing;alpine climbing;apparel;ascent;belay;bouldering;climber;climbers;climbing;climbing equipment;climbing gear;climbing gym;climbing route;climbing routes;climbing wall;clothing;crag;cragging;equipment;face;free climbing;gear;holds;ice;ice climb;ice climbing;indoor rock climbing;lead climbing;mountain climbing;mountaineering;Rappel;rappelling;rock;rock climbing;rock climbing wall;scaling;scrambling;sport;sport climbing;summit;trad climbing;CASUAL;urban;urban play;city life;lifestyle;stylish;\nXS, M, L, XL\n130 g / 4.6 oz\nTrim fit, Hip Length\nWith a design focused on moving from outdoor to casual adventure, the Senna Tank offers a combination of technical performance and easy style that makes it a go to piece all summer long. Made from soft, stretchy Haven™ fabric, the Senna wicks moisture, dries quickly, provides UPF 50+ sun protection, is highly air permeable and feels excellent next to the skin.\nAnatomical shaping, the Trim fit and the fabric’s stretch combine to deliver clean lines and a high level of ergonomic performance. The built in shelf bra with insert pockets integrates support into the tank’s construction. Made from Aerial™ polyester, the bra is soft, air permeable and has superior moisture wicking properties. Cross back straps offer a secure fit, and the classic scooped neckline enhances airflow and elevates the style.\nFull Feature List\n- Supportive construction\n- Cross back strap configuration\n- Stretchy fabric allows you to move more freely\nNeckline ConfigurationIntegrated Features\n- Anatomical shaping for fit and comfort\n- Built-in breathable shelf bra with inset pockets to accommodate padded inserts\n- Haven™—84% polyester, 16% elastane, 194 g/m². A stretchy polyester/spandex blend textile with a brushed face that is soft and comfortable next to the skin.\n- Aerial™—100% polyester, 150 g/m². Lightweight, slightly stretchy mesh textile with high air permeability, enhanced wicking properties and Polygiene® odour control technology.\n- Machine wash in cold water.\n- Wash dark colours separately.\n- Tumble dry on low heat.\n- Iron on low heat.\n- Do not use fabric softener."} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/serving/audio/__main__.py. Lines: 1857.\n\nfrom fireworks.serving.audio.__main__import_start import IMPORT_START_TIME # must be the leading import\nimport time\nimport base64\nimport copy\nimport io\nimport os\nimport uuid\nimport falcon\nimport torch\nimport prometheus_client\nimport uvicorn\nimport fireworks.util as fireutil\nimport asyncio\nimport json\nimport traceback\nfrom typing import Dict, List, Optional, Tuple, Union, Coroutine\nfrom concurrent import futures\nfrom dataclasses import replace\nfrom functools import cached_property, partial\nfrom pydantic import BaseModel\nfrom http import HTTPStatus\nfrom google.protobuf import duration_pb2\nfrom dateutil import relativedelta\nfrom falcon import (\n Request,\n Response,\n HTTPInternalServerError,\n CORSMiddleware,\n MEDIA_MULTIPART,\n http_status_to_code,\n WebSocketDisconnected,\n)\nfrom whisper.utils import WriteSRT, WriteVTT\nfrom falcon.asgi import App, WebSocket\nfrom falcon.media.multipart import MultipartFormHandler\nfrom fireworks.client.audio_api import (\n Error,\n ErrorResponse,\n TranscriptionResponse,\n TranscriptionVerboseResponse,\n TranscriptionSegment,\n TranscriptionWord,\n)\nfrom fireworks.distributed.fire_cluster import Batch, OverloadedException, FireCluster, FireClusterClient\nfrom fireworks.distributed.fire_sessions import (\n CreateSessionResponse,\n EgressEvent,\n FireSessions,\n FireSessionsClient,\n SessionAlreadyExistsException,\n TerminateSessionResponse,\n)\nfrom fireworks.protos.generated.billing_subscriber import billing_subscriber_pb2\nfrom fireworks.serving.audio.metrics import metrics, RequestMetrics\nfrom fireworks.text import UserError\nfrom fireworks.util.multiprocessing import enable_term_on_exception\nfrom fireworks.util import serialization\nfrom fireworks.models.audio.diarization.clustering import DiarizeConfig\nfrom fireworks.models.audio.asr.types import TranscribeSegment, TranscribeText, TranscribeWord\nfrom fireworks.models.audio.asr.base_pipeline import SAMPLE_RATE\nfrom fireworks.serving.audio.args import parse_args, AudioArgs\nfrom fireworks.serving.audio.cluster import (\n build_stt_cluster,\n build_diarization_cluster,\n build_diarization_clustering_cluster,\n)\nfrom fireworks.serving.audio.tasks.types import (\n AudioBatchRaw,\n EmissionBatch,\n TranscriptBatch,\n AlignedTranscriptBatch,\n AudioBatch,\n EmbeddingBatch,\n ReducedEmbeddingBatch,\n ClusteringBatch,\n)\nfrom fireworks.serving.audio.tasks.vad import NoVoiceDetectedException\nfrom fireworks.serving.audio.utils.alignment import refine_alignment\nfrom fireworks.serving.audio.utils.diarization import merge_transcription_diarization\nfrom fireworks.serving.audio.load import AudioLoadError, load_audio_duration\nfrom fireworks.serving.audio.schema import (\n AlignmentParams,\n TimestampGranularity,\n TranscriptionParams,\n StreamingTranscriptionParams,\n TranslationParams,\n build_audio_task,\n)\nfrom fireworks.serving.audio.registry.registry import update_language_model_map\nfrom fireworks.serving.audio.utils.running_sum import RunningSum\nfrom fireworks.serving.audio.timings import LatencyType, Timings, TimingType\nfrom fireworks.serving.audio.sessions import build_stt_streaming, build_tts_streaming\nfrom fireworks.distributed.platform import AsyncLocalQueue\nfrom fireworks.distributed.fire_sessions import (\n CreateSessionResponse,\n EgressEvent,\n FireSessions,\n FireSessionsClient,\n NotFoundException,\n SessionAlreadyExistsException,\n)\nfrom fireworks.serving.audio.streaming.session import (\n StreamingTextToSpeechSessionParams,\n StreamingTranscriptionSessionParams,\n)\nfrom fireworks.serving.audio.streaming.schema import SttInputTrace, SttOutputTrace, SttIngress, TtsIngress\nfrom fireworks.serving.billing import BillingPublisher, BillingRequestMetadata, create_billing_metadata\nfrom fireworks.serving.logging import UVICORN_LOGGING_CONFIG, logger\nfrom fireworks.serving.metering import start_metering, StandaloneMetering\nfrom fireworks.serving.util.falcon_ws import WebsocketBinaryMediaHandler\nfrom fireworks.serving.util.sansio_ws import WebSocketsSansIOProtocol\nfrom fireworks.serving.ratelimit_verifier.ratelimit_verifier import RatelimitVerifier, RatelimitResponse\nfrom fireworks.serving.utils import (\n BackgroundTaskRunner,\n download_or_bytes,\n parse_falcon_media,\n DownloadFailedException,\n build_request_id,\n)\nfrom fireworks.serving.util.auth import UnkeyAuthServer, is_direct_request\nfrom fireworks.serving.util.imports import ImportsTakeTooLong\nfrom fireworks.serving.util.asyncio_lag_monitor import start_asyncio_lag_monitor\nfrom fireworks.serving.util.system_metrics_monitor import start_system_metrics_monitor\nfrom fireworks.serving.util.traces.trace_logger import TraceLogger\nfrom fireworks.serving.audio.resource_validator import ResourceValidator\nfrom fireworks.models.audio.asr.config import BeamCo"} +{"text": "What is it that makes plants green? Chlorophyll! This is the magic substance that plants use to capture and store the energy from sunlight. Without this mechanism there would be no life on earth as every living thing directly or indirectly derives its energy from plant sources.\nThe chlorophyll molecule is almost identical to the oxygen-carrying haemoglobin molecule in our own blood. Remarkably, chlorophyll is an excellent tonic and cleansing agent for our blood. It is one of the key substances that give wheatgrass, barley grass and chorella their well-known healing properties.\nHowever it is not only the green in greens which makes them such an important food. As we can see in autumn leaves, chlorophyll actually masks many other pigments. These colours indicate the presence of‘ a huge array of ‘phytonutrients’, or beneficial plant compounds. Phytonutrients have an assortment of subtle effects that keep our energy flowing and balanced.\nHow do green vegetables help your body to be healthy?\nEating green vegetables provides many health benefits. They help your immune system, provide antioxidant protection and rejuvenate your cells. Green leafy vegetables also contain significant amounts of protein, minerals and fibre. As we naturally eat heavier, richer, cooked foods in winter it is important to keep eating a proportion of raw greens. They provide balance to our meals and aid digestion and detoxification.\nSo remember to get your greens! There are many green vegetables available through the winter and they go abundantly crazy in the spring. Dark greens such as kale, broccoli and the Chinese greens are particularly fortifying. Let yourself become accustomed to stronger, bitter tastes in greens – these can indicate powerful cleansing properties. Have a look at the organic stall at the local farmers market and try something different. Just ask if you are not sure how to prepare them.\nYummy Recipes with Leafy Greens\nGreens, Bacon and Poached Eggs\nThis makes a deliciously satisfying and nutritious lower carb breakfast. You’ll get lots of essential minerals from the leafy greens, plus good protein from the bacon and eggs.\nThis is my idea of weekend breakfast heaven! However it’s equally ideal for lunch or dinner. Use organic free range bacon and eggs for better flavour. You'll also be supporting more wholesome farming practices.\n2 T olive oil or organic butter\n1 large bunch dark leafy greens [kale, chard (silverbeet) or Chinese greens]\n4 rashers organic (or wild) free range bacon\n1 medium onion\n1 clove crushed garlic\n2 T soy sauce\n½ squeezed lemon\n½ capsicum (bell pepper), red or green, chopped\nPinch of Cayenne pepper\n1. Gently saute the onions, garlic and bacon with the olive oil in a wok.\n2. Remove stems and roughly chop greens. Place in wok and cover with a lid. Steam until tender.\n3. Meanwhile poach the required number of poached eggs.\n4. Dice the tomatoes and add to wok with remaining ingredients.\n5. Serve on warm plates and top with the poached eggs. Add a grind of black pepper to taste.\nBok Choi Stir-fry\nStir-frying requires fast intense heat. Moisture in the leaves creates steam, rapidly wilting the greens. Spicy white pepper compliments the earthy/sweet flavour of the leaves.\nSeveral small bunches of bok choi (or other Chinese Greens)\n2 tsp sesame oil\nShoyu (good quality fermented soy sauce)\nSeparate the leaves by cutting the bottom stalk of each bunch. Slice he stalks and leaves into 3cm lengths.\nWash the chopped bok choi by putting it into a sink or large bowlful of water. Massage gently to loosen any dirt and allow it to drop to the bottom. Use your hands to life out the greens into a colander and allow it to drain.\nHeat a wok or large frypan over a high heat. Add the sesame oil. When the oil is very hot (but not smoking) add the bok choi. Keep the heat high and stir the greens until wilted – this should take less than two minutes.\nSeason with pepper and shoyu, toss for a few more seconds and remove from the wok into a serving dish.\nCopyright Wild Health and Anna Wilde 2007\nAnna Wilde works with people who want to improve their health naturally.\nGet recipes and straight forward advice to stay motivated, eat well and be healthy.\nCheck out her ‘Healthy food made easy’ website\nSign up and get free simple healthy recipes like: Bircher Muesli and articles like: The War on Fat\nWhat people say about Wild Health:\n“Fantastic quantity and quality of information.\nThanks for a lot of new healthy food ideas I wouldn’t have found anywhere else. \" Maria\n“This changed my life. I lost weight and feel better than ever” Brian\n“I am buzzing with ideas!” Sarah"} +{"text": "Bank of Ceylon amongst Top 1,000 Global Banks\nSri Lanka’s leading Bank with 73 years of strength, trust and stability, the Bank of Ceylon is proud to receive the global recognition as one of the top 1,000 banks in the world, by the world’s premier banking and finance Magazine, “The Banker”.\nThe Top 1,000 banks were selected in recognition of global leaders in the industry for their achievements. The rankings are one of the industry’s most widely used index of global banking, and are internationally recognized as the definitive guide to the soundness, strength and profitability of banks. The Banker Magazine first published in January 1926 in U.K, circulated over 180 countries is the key source of data and analysis for the industry in international finance affairs.\nBank of Ceylon serves over ten million customers island wide and our commitment to each of them remains steadfast. Fitch Rating Lanka Ltd has upgraded Bank of Ceylon’s national long-term rating to AA+ (lka) stable outlook which is the highest rating awarded to a local commercial bank. Brand Finance Lanka ranked BOC as the number 1 brand in Sri Lanka for the last four consecutive years.\nIn a press statement Bank of Ceylon revealed that, Our multi-faceted offering is one of our greatest strengths. From the children’s savings account to corporate credit, for state sector and private companies, we serve at every level.\nThe statement further adds: The bank has the strength and the diversity of resources to offer its customers a range of financial solutions; such as Corporate Banking, Personal Banking, Islamic Banking, Investment Banking, Off-shore Banking, Development Banking, International and Treasury operations and Trade Financing services, through its widely spread branch network and extension offices close to 600 covering all parts of the country. At the moment the bank has over 1,000 customer touch points covering branches, extension offices, ATMs and over 800 foreign corresponding agents.\nCommenting on this achievement, Bank of Ceylon Chairman Dr. Gamini Wickramasinghe stated that “bank has reached this milestone with a clear vision to make the impossible possible.”\nDr. Gamini Wickramasinghe also said, “That is “One Ten Twelve”, the corporate agenda for 2012 which translate into one trillion assets, Rs.10 billion profit in year 2012. This task was achieved well before the target date, in mid 2012. Therefore BOC became the first bank in Sri Lanka to reach a prodigious milestone by achieving Rs. 1.0 trillion in assets.”\nDr. Wickramasinghe stressed that, ” if you have a clear vision anything is possible to achieve”.\nBOC possess the strength and the diversity of resources to offer a complete range of financial solutions to its customers. BOC has further expanded its unprecedented banking and financial services to overseas branches in Chennai and Male and banking operations in London.\nFurther, commenting on this global recognition, Bank of Ceylon General Manager Mr. K. Dharmasiri stated that “bank has reached its pinnacle in 2012 by achieving key milestones in terms of growth in the bottom-line of the bank and expansion in all business areas. Bank has touched more than 10 million lives in the country. We are leading in every aspect of banking and financial services”.\nMaintaining solid partnerships with the private sector, BOC supports infrastructure development activities, provision of working capital and significant investments in Government projects. Aligned with the Government’s pursuit of socio-economic development, bank took major strides to assist in the country’s unprecedented demand for monetary support by easing loans as well as service provisions across the economy, especially in the North and East.\nOn the 1st of August 2012, Bank of Ceylon celebrated its 73rd Anniversary –a voluminous period of strength, success and stature. Leading the banking and financial sector since 1939, BOC has constantly succeeded in contributing to the growth of our nation and continues to assist the development of the country and guiding entrepreneurs to reach greater heights which makes Bank of Ceylon the “bankers to the nation”. We thank our loyal customers for the trust and confidence placed on us.\n- Asian Tribune -"} +{"text": "nfig\n\n# ############################################################\n# IMPORTS END. DO NOT ADD IMPORTS BELOW THIS LINE (only above)\n# ############################################################\n\nmax_import_time = int(os.environ.get(\"AUDIO_API_MAX_IMPORT_TIME_S\", \"999\"))\ntotal_import_time = time.time() - IMPORT_START_TIME\nif total_import_time > max_import_time:\n raise ImportsTakeTooLong(total_import_time, max_import_time)\nelse:\n logger.info(f\"Total import time: {total_import_time:.2f}s < {max_import_time}s\")\n\nVERBOSE = int(os.environ.get(\"AUDIO_API_VERBOSE\", \"0\")) > 0\nAUDIO_FFPROBE_THREADS_PER_GPU = int(os.environ.get(\"AUDIO_FFPROBE_THREADS_PER_GPU\", \"16\"))\nAUDIO_PREPROCESSOR_THREADS_PER_GPU = int(os.environ.get(\"AUDIO_PREPROCESSOR_THREADS_PER_GPU\", \"16\"))\nASYNCIO_SLOW_CALLBACK_DURATION = float(os.environ.get(\"ASYNCIO_SLOW_CALLBACK_DURATION\", \"0\"))\nAUDIO_STREAMING_STT_TRACE_ENABLED = os.environ.get(\"AUDIO_STREAMING_STT_TRACE_ENABLED\", \"false\").lower() == \"true\"\nFIREWORKS_REPORT_BILLING = os.environ.get(\"FIREWORKS_REPORT_BILLING\", \"true\").lower() == \"true\"\nFIREWORKS_MOCK_BILLING = os.environ.get(\"FIREWORKS_MOCK_BILLING\", \"false\").lower() == \"true\"\nFIREWORKS_TEST_SKIP_AUTH = os.environ.get(\"FIREWORKS_TEST_SKIP_AUTH\", \"false\").lower() == \"true\"\nAUDIO_ENABLE_TTS = os.environ.get(\"AUDIO_ENABLE_TTS\", \"true\").lower() == \"true\"\nWARNING_LATENCY_OVERALL_MS_THRESHOLD = int(os.environ.get(\"AUDIO_API_WARNING_LATENCY_OVERALL_MS_THRESHOLD\", \"1000\"))\n\nBYTES_PER_SAMPLE = 2 # 16-bit audio\n\n_args: Optional[AudioArgs] = None\n_billing_publisher: Optional[\"AudioBillingPublisher\"] = None\n_ratelimit_verifier: Optional[RatelimitVerifier] = None\n_auth_server = UnkeyAuthServer()\n_inference: Optional[FireCluster] = None\n_inference_client: Optional[FireClusterClient] = None\n_diarization: Optional[FireCluster] = None\n_diarization_client: Optional[FireClusterClient] = None\n_diarization_clustering: Optional[FireCluster] = None\n_diarization_clustering_client: Optional[FireClusterClient] = None\n_stt_streaming: Optional[FireSessions] = None\n_stt_streaming_client: Optional[FireSessionsClient] = None\n_tts_streaming: Optional[FireSessions] = None\n_tts_streaming_client: Optional[FireSessionsClient] = None\n_audio_duration_executor = None\n_audio_input_running_duration = RunningSum(window_seconds=60)\n_audio_streaming_running_duration = RunningSum(window_seconds=60)\n_metering: Optional[StandaloneMetering] = None\n_background_tasks: Optional[BackgroundTaskRunner] = None\n_FAKE_RESPONSE_TEXT = \"This is a test response. If you see this response, please contact the Fireworks team.\"\n\n\nclass LifespanMiddleware:\n async def _init_helpers(self):\n logger.info(\"Initializing helpers\")\n\n # Asyncio monitor\n asyncio.create_task(start_asyncio_lag_monitor())\n # System metrics monitor\n asyncio.create_task(start_system_metrics_monitor(environment=_args.environment))\n if ASYNCIO_SLOW_CALLBACK_DURATION:\n asyncio.get_running_loop().set_debug(True)\n asyncio.get_running_loop().slow_callback_duration = ASYNCIO_SLOW_CALLBACK_DURATION\n\n global _audio_duration_executor, _background_tasks, _metering\n start = time.time()\n num_gpus = torch.cuda.device_count()\n\n _audio_duration_executor = futures.ThreadPoolExecutor(\n max_workers=torch.cuda.device_count() * AUDIO_FFPROBE_THREADS_PER_GPU,\n thread_name_prefix=\"audio_ffprobe\",\n )\n _background_tasks = BackgroundTaskRunner()\n _metering = start_metering(num_gpus, metrics)\n\n took = time.time() - start\n logger.info(f\"Initialized helpers. {took=:.2f}s\")\n\n async def _init_compute(self):\n logger.info(\"Initializing compute\")\n\n global _inference, _inference_client, _diarization, _diarization_client, _diarization_clustering, _diarization_clustering_client, _stt_streaming, _stt_streaming_client, _tts_streaming, _tts_streaming_client\n start = time.time()\n num_gpus = torch.cuda.device_count()\n startup_tasks: List[Coroutine] = []\n\n resource_validator = ResourceValidator(audio_model_dir=_args.model_dir)\n diarization_validation_result = resource_validator.validate_diarization_model_resources()\n stt_validation_result = resource_validator.validate_stt_model_resouces()\n vad_validation_result = resource_validator.validate_vad_model_resources()\n alignment_validation_result = resource_validator.validate_alignment_model_resources()\n tts_validation_result = resource_validator.validate_tts_model_resources()\n upsampling_validation_result = resource_validator.validate_upsampling_model_resources(\n bwe_config_name=_args.bwe_config_name\n )\n\n services_mis_configured = False\n if diarization_validation_result.is_valid():\n logger.info(\"Initializing diarization cluster\")\n # Init diarization cluster\n _diarization, _diarization_client = build_diarization_cluster(n_stac"} +{"text": "Read about Erin’s travels in Girl-on-Greece: The Incredibly True Adventures of a Gay History Nerd in Love with Mount Olympus. Girl-on-World is written by hot young women just like you! If you’ve got a story you’d like to share, email green[at]autostraddle[dot]com.\nThen Stef Defaced Public Property with Amanda Tannen from stellastar* and wasn’t that fun?? Yes! And do you also recall when Music Was Your Hot Hot Fix with Crystal and Intern Emily? But wait! That’s not all!\nDon’t forget the heartwarming piece on The Suckage of BlueHost: The Fempire Strikes Back!\nRiese and Alex have left their cubby holes yet again to venture into the hippie-scented world of Somewhere In Upstate New York! But the funny thing is, they still brought you today’s Sunday Funday Daily Fix because I, Laneia, was Team Sleeping In! I’m probably fired forever so if you’re looking for someone to pass out business cards or something, shoot me an email! Ok!\nHATRED CAN BE LIKE FOOD. IT GIVES YOU THIS ENERGY YOU CAN LIKE, LIVE OFF IT: Do you have Anglea Chase syndrome? “Much like Angela Chase, I can not, like, get through like, a sentence, without like, adding the word like, about like 9 million times, or whatever.” (@jezebel)\nGOING TO THE EPISCOPALIAN CHAPEL AND WE’RE GONNA GET MARRIED: Episcopal Church officials voted yesterday to allow bishops the latitude to bless same-sex unions — the second vote this week in favor of gay rights and one that may further divide the worldwide Anglican community. (@the washington post) And, at The New York Times, the Episcopalian’s First Openly Gay Bishop is interviewed:\n“The most significant thing that happened was [when] … a smaller group of bishops met to discuss [the same sex blessings] further. They said anyone could come, and it turned out it wasn’t a small group at all. There were 25 to 30 of us, and it turned out to be the most significant interaction I’ve had with the bishops since I’ve been elected. It was profound and it was inspiring. People stood up and spoke their own truth, both the pain and the joy. Everyone spoke honestly about what they needed to go home with, what they could live with and what they couldn’t.”\nMARISSSA!!: This counts as Sunday FUNday ’cause even though it’s sad, I’m happy they got her to the psychiatric hospital and that the 72-hour hold exists. They needed that shit for Britney. Save Marissa! – Mischa Barton Hospitalized on the ‘Brink of Disaster’ (@foxnews)\nGAGA: There’s this French German lady talking, but also there’s a Kermit the Frog outfit!\nGIGANTIC SURPRISE: Protect Marriage Washington is paying for signatures. Where are these motherf*ckers getting all this g*ddamn money from? Bluehost?\nGOING TO THE STRAIGHT CHAPEL AND WE’RE NOT GONNA GET MARRIED BUT IT’S GOOD TO GO ANYWAY: Changing Hearts and Minds One Wedding at a Time: “I’ll admit to being a bit wary to travel to Milwaukee to a wedding that would be populated by somewhat conservative Midwesterners and ex-frat boy football players. I tend to stick out like a big gay thumb in situations like this- the gender variant, out of the binary, sissy boy with a fauxhawk and rather fierce eyebrows (if I do say so myself) … Little did I realize that by going and just being ourselves at the wedding, we would change so many people’s views about gay couples.” (@pamshouseblend)\nLUCKILY WE LOVE EGGS: Dear Keira Knightley, no matter what anyone says, we love your boobs. Itty Bitty etc. Committee 4-EVA.\nWIZARDS! Harry Potter just keeps getting gayer. (@queerty)\nA 2005 interview with Rachel Maddow at Velvetpark “Rachel Maddow Before the Big Time” — she talks about leaving a trial of “happy hearts” like Shane, discovering “Oh, that’s what’s going on below my chin!” while at Stanford and sleeping with girls for the first time, and SO MUCH MORE!!\nMICHAEL F*CKING JACKSON: The Jackson 5 (or 4! jk!) have a reunion tour in the works.\nLIL FEMINIST: Emma Watson is probably the cutest thing ever. Here she describes herself as ‘a bit of a feminist.’\nM4W LEZ: Third Eye Blind is releasing a new album in August, so Stephen Jenkins plays some songs for us — including a song about being in love with a lesbian, which is awesome. It’s probs written about Rachel Maddow (who Jenkins has “an overwhelming and tragic crush on.”) but we’re not 100% sure.\nAuto-Straddler of the Day\nWe usually don’t have Team Picks on our Sunday Fundays, but I feel like stumbling across this‘List of Unusual Deaths’equires me to share it with you. (wikipedia)"} +{"text": "Last week's setup for Restaurant Wars prepped me for what I thought was sure to be an excellent rendition of the classic Top Chef challenge. I can always skip the infighting that happens at the start of these challenges, when the pushier chefs steamroll others into submission. Picking team captains from a restaurant pitch seemed like a good step forward—everyone had a fighting chance to put their ideas forward and sell the judges on their concepts and archetypal dishes. Winners Sheldon and Kristen got to choose their teammates and apparently accidentally chose along gender lines—a nice shift of power from the arbitrary please-draw-knives team selections. This all puts ownership of the challenge back on the chefs, which seemed brilliant until the last few minutes of tonight's episode, which resulted in one of the most disappointing eliminations of the season.\nThat's part of the beauty of Restaurant Wars, though. It takes the basic conceit of Top Chef—cooking well under often artificial constraints and with ridiculous time limits—and pushes it to its absolute extreme. By choosing a single executive chef to run the show, the challenge becomes necessarily personal. This typically works well for Top Chef—dip into the chefs hopes and dreams a little and it inspires them to stretch harder than they might otherwise. The problem, though, with this particular setup for Restaurant Wars, is that it creates only one person with a serious stake in the vision. Everyone else, as Josie puts it, becomes a soldier.\nThere are many things wrong with Josie. She's an ass, for one. She wears a headband all the fucking time, and that headband has her name on it, for two. But she's not wrong in this episode, and that's what kills me. I was so psyched for this installment of Restaurant Wars because I thought the setup would give the restaurants a clear direction and that we'd get to see more of the execution. What I didn't see coming was that it would suck any serious investment out of other team members and turn them into employees*. Or that Kristen would play the role of a noble ship captain, hanging on to the helm while her ship sinks, biting her tongue even though one of her asshole crew members ignited some dynamite in the hold and was like, \"Your ship, your problem!\"\nThat's only a slight exaggeration. Kristen is a tragic hero, but here's the thing: Now ain't the time, Kristen! Reality TV is no place for nobility. Josie knows this, and it's not because she's been on Top Chef before. It's because she's playing meaner, but also smarter. The judges were practically begging Kristen for a reason to send Josie home. They were almost shouting, \"Please tell us why we should send her home!\" But Kristen nobly (and stupidly) took all of the responsibility, putting the onus on the judges to do the right thing. The judges, though, didn't and couldn't have all of the information. If I've ever wanted to hit a trap-door button and see Padma disappear down a chute, it was tonight. She laid all of the responsibility on Kristen, when we've seen the opposite happen at judge's table a million times. \"You're responsible for your own dish\" is one of the mantras of judge's table. So here too the challenge's conceit comes back to bite; Kristen takes the fall for the dish, simply because she was in charge of the restaurant as a whole. (And she wasn't willing to let the blame fall elsewhere.) To be fair, I think Tom was mostly right when he said this vision existed only in Kristen's head. It's a hard thing to judge from the way the episode was cut, though—we didn't see a lot of direction from Sheldon on the finer points of Filipino cuisine, but that doesn't mean he didn't provide it. Stefan and Josh admittedly had little experience with it.\nThat's perhaps where Kristen's classic-French-with-a-twist concept fails, too. Everyone on her team had experience with classic French cooking, and therefore had a point of reference from which they could agree or disagree. Since Josie had experience cooking bouillabaisse, she had her own ideas about how long the stock should simmer, or how it should be plated. She doubted Kristen's leadership decisions from the offset, even bitching about Kristen to the other team, and then proceeded to half-assedly execute, sure that things were bound to fail… thereby causing them to fail.\n- * Lucky for Kristen and Sheldon, most everyone seems like they'd be excellent employees. The teams played hard in the kitchen, where it counted, and Stefan's assholery had nothing to do with Sheldon. His assholery and general skeeziness exists everywhere, all the time, independent of anyone else.(I'm still grossed out by his overuse of \"sloppy seconds\" last week and his comments about Carla's butt.) Brooke deserves serious credit for handling the front of the house like a pro and containing the disastrous Josie-Kristen fire to the kitchen. Josh and Stefan threw their full weight into prep and started service in great shape; Lizzie managed to deliver arguably the best dish of the night, a hot-soup version of charcuterie.\n- Last night I dreamed about leeches covering my feet and sucking the life out of me. They were all named Josie.\n- From the judge's comments, I was expecting Urbano to end up on the bottom. It almost sounded like a tossup, with the deciding factor falling to the food instead of the service. As much as I was disappointed at the elimination, I was glad to see Sheldon really step it up this episode. Judging from the menu, I'd eat at Urbano in a heartbeat.\n- The grade here doesn't reflect my feelings about who was eliminated—only how this episode stands up to the rest of the season. And while I felt like the challenge backfired a bit, it largely left the chefs alone to self-destruct. I don't think the judge's were wrong to eliminate Kristen. I think she did herself in."} +{"text": "ks=num_gpus, args=_args)\n startup_tasks.extend([_diarization.start(), _diarization_client.start()])\n\n # Init clustering cluster\n _diarization_clustering, _diarization_clustering_client = build_diarization_clustering_cluster(\n n_stacks=num_gpus, args=_args\n )\n startup_tasks.extend([_diarization_clustering.start(), _diarization_clustering_client.start()])\n elif diarization_validation_result.is_mis_configured():\n logger.warning(\n \"Diarization model resources are misconfigured, skipping diarization cluster initialization\"\n )\n services_mis_configured = True\n\n if (\n not services_mis_configured\n and stt_validation_result.is_valid()\n and vad_validation_result.is_valid()\n and alignment_validation_result.is_valid()\n ):\n logger.info(\"Initializing STT cluster and STT streaming\")\n\n _inference, _inference_client = build_stt_cluster(n_stacks=num_gpus, args=_args)\n startup_tasks.extend([_inference.start(), _inference_client.start()])\n\n # Init STT sessions\n _stt_streaming, _stt_streaming_client = build_stt_streaming(\n n_pools=num_gpus * 4, inference=_inference, diarization=_diarization\n )\n startup_tasks.extend([_stt_streaming.start(), _stt_streaming_client.start()])\n elif stt_validation_result.is_mis_configured():\n logger.warning(\"STT model resources are misconfigured, skipping STT cluster initialization\")\n services_mis_configured = True\n elif vad_validation_result.is_mis_configured():\n logger.warning(\"VAD model resources are misconfigured, skipping STT cluster initialization\")\n services_mis_configured = True\n elif alignment_validation_result.is_mis_configured():\n logger.warning(\"Alignment model resources are misconfigured, skipping STT cluster initialization\")\n services_mis_configured = True\n\n if not AUDIO_ENABLE_TTS:\n logger.info(\"TTS is disabled via AUDIO_ENABLE_TTS=false\")\n elif (\n not services_mis_configured\n and tts_validation_result.is_valid()\n and upsampling_validation_result.is_valid()\n ):\n logger.info(\"Initializing TTS streaming\")\n # Init TTS sessions\n _tts_streaming, _tts_streaming_client = build_tts_streaming(\n n_pools=num_gpus,\n args=_args,\n )\n startup_tasks.extend([_tts_streaming.start(), _tts_streaming_client.start()])\n elif tts_validation_result.is_mis_configured():\n logger.warning(\n \"TTS model resources are misconfigured, skipping TTS cluster and TTS streaming initialization\"\n )\n services_mis_configured = True\n elif upsampling_validation_result.is_mis_configured():\n logger.warning(\"Upsampling model resources are misconfigured, skipping TTS cluster initialization\")\n services_mis_configured = True\n\n if _inference_client is None and _stt_streaming_client is None and _tts_streaming_client is None:\n logger.warning(\"No resources are configured. The service will shutdown\")\n services_mis_configured = True\n\n if services_mis_configured:\n for task in startup_tasks:\n task.cancel()\n raise RuntimeError(\"Service resources are misconfigured\")\n\n await asyncio.gather(*startup_tasks)\n\n await StreamingSttResource.init()\n\n took = time.time() - start\n logger.info(f\"Initialized compute. {took=:.2f}s\")\n\n async def process_startup(self, *args, **kwargs):\n logger.info(\"API lifespan process startup starting\")\n start = time.time()\n\n TraceLogger.global_start()\n\n await self._init_helpers()\n await self._init_compute()\n\n took = time.time() - start\n took_with_imports = time.time() - IMPORT_START_TIME\n logger.info(f\"API lifespan process startup complete. {took=:.2f}s, {took_with_imports=:.2f}s\")\n\n async def process_shutdown(self, *args, **kwargs):\n await StreamingSttResource.terminate()\n\n await _stt_streaming_client.terminate()\n await _stt_streaming.terminate()\n\n await _inference_client.terminate()\n await _inference.terminate()\n await _diarization_client.terminate()\n await _diarization.terminate()\n await _diarization_clustering_client.terminate()\n await _diarization_clustering.terminate()\n\n if _tts_streaming_client is not None:\n await _tts_streaming_client.terminate()\n if _tts_streaming is not None:\n await _tts_streaming.terminate()\n\n _background_tasks.terminate()\n\n TraceLogger.global_shutdown()\n\n\napp = App()\n\n# Increase body part size limit to 1GB\nmedia_handler: MultipartFormHandler ="} +{"text": "The balance between technology and humanity is finally reaching equilibrium, thanks to data analysis. For decades, bankers have persuaded customers to use self-service channels. Now that people are banking online and through mobile channels, and accessing their cash from convenient stores and ATMs, there is a personal information gap that needs to be filled. The lack of personal interaction that gives e-banking its cost advantage and saves customers time can also be a detriment to cross-sale and marketing opportunities.\nAs an industry we have successfully minimized the situations that return sales and marketing insights, such as teller-customer conversations during deposits. Instead, we offer fast, efficient means of banking that have been widely adopted, now budgeting a couple minutes for tasks that once took five times that. While the benefits of self-service advancements are necessary to be competitive, and are for the greater good of the industry, we must not forget the need for those intersections of opportunity to derive a wealth of knowledge from the most fleeting amount of time. Data analysis can meet this need.\nThe pairing of big data and small data can detect when and how consumer behavior changes, alerting banks for both everyday opportunities and the major moments that only come a few times in a customer’s lifetime. There is more information available from online and mobile banking customers than one might think. We are habitual by nature, like it or not. So when normal banking behaviors change in the slightest, then it will typically serve the bank well to look into why there has been that change. Tapping into this data is not hard, but does require a complete shift for bank personnel and the management of e-banking channels. The two entities must work closely together.\nToday most banks have informative sites and a “contact us” form. Until they can get a sense of what customers are really doing online, banks’ Web presence amounts to little more than an advertising pamphlet. Even for banks that may review their analytics – at month’s end – to see that 14 people clicked through to their home equity loan page, what does that really amount to by then? Probably not new loans.\nWe have educated consumers to seek self-service tools, and they are inclined to check rates and research before making any big life decisions. The first place they will likely look is their primary financial institution, and banks have a chance to gain more market share at that very moment. After that moment passes, it is off to Google to search for additional offers. Most consumers are not confident in the best rate, for example, until they talk to someone.\nSince we’ve dwindled physical service channels, the current customer does not want to call his or her bank to request information. That would risk 15 minutes on hold, or a plethora of tedious automated responses. Instead banks should have the data that their customer has looked at mortgage rates, stopped logging into bill pay or clicked on an ad. From there it is up to the bank to respond to that change and provide assistance. Even educated consumers can benefit from some personal financial guidance. Maybe paying off a credit card bill can help lower their APR, or perhaps waiting three more months to accrue additional savings is all they need to forego an additional PMI fee.\nBanks are still service organizations; it takes human intervention to get results. Big data promises to connect these self-service inquiries to a service environment that closes deals. With it we can recognize these changes in a virtual environment and react accordingly. It is no different than traditional bank personnel’s training to react on their in-branch observations.\nBig data identifies the insights that were previously only available in branches. It’s a sales funnel that picks up on trend lines to replace the personal interaction we’ve lost. The next step is to make sure branch personnel know how to -- and are willing -- to leverage the information.\nHuman interaction must be ported over to the digital channel, and the use of big data is the essence of our transition to true omnichannel banking. If you could have a conversation with anyone that showed interest with any of your products, what would you do with that? The successful banks will have managed leads as leads, regardless from where they originate. Consumers need to trust their bank as a single, unified brand rather than as having different channels as part of a brand. At the same time, the institution needs to leverage a single view of the customer by eliminating the siloed functions of those channels.\nThere is a natural demographic maturation of consumers’ needs for different banking services, and big data provides accurate self-segmentation due to their behavioral changes. You can better identify the individuals who are actually in the market to buy, and know when to follow up with them. Collecting data over and over, time after time, to detect patterns and find anomalies creates unrealized gains for the bank; however, to capitalize on it, you must know where to look for it and what to do with it. We do have the power to end the interaction v. self-service contradiction, and move between those cross-sections of opportunity freely and without hesitation. Just step on the gas and go.\nWade Arnold is the CEO of Banno, which provides a data-enrichment and interpretation platform for financial services providers."} +{"text": "Roget's Int'l Thesaurus\nFowler's King's English\nThe King James Bible\nBrewer's Phrase & Fable\nFrazer's Golden Bough\nShelf of Fiction\nProse and Poetry: Sir Thomas North to Michael Drayton\n> His Position and Influence\nINDEX OF ALL CHAPTERS\nThe Cambridge History of English and American Literature in 18 Volumes\nVolume IV. Prose and Poetry: Sir Thomas North to Michael Drayton.\n§ 15. His Position and Influence.\nThe relation of Donne to Elizabethan poetry might, with some justice, be compared with that of Michael Angelo to earlier Florentine sculpture, admitting that, both as man and artist, he falls far short of the great Italian. Just as the grace and harmony of earlier sculpture were dissolved by the intense individuality of an artist intent only on the expression in marble of his own emotions, so the clear beauty, the rich ornament, the diffuse harmonies of Elizabethan courtly poetry, as we can study them in\nThe Faerie Queene, Hero and Leander, Venus and Adonis, Astrophel and Stella\ndisappear in the songs and satires and elegies of a poet who will not accept Elizabethan conventions, or do homage to Elizabethan models, Italian and French; but puts out to discover a north-west passage of his own, determined to make his poetry the vivid reflection of his own intense, subtle, perverse moods, his paradoxical reasonings and curious learning, his sceptical philosophy of love and life. It cannot be said of Donne, as of Milton, that everything, even what is evil, turns to beauty in his hands. Beauty, with him, is never the paramount consideration. If beauty comes to Donne, it comes as to the alchemist who\nglorifies his pregnant pot,\nIf by the way to him befall\nSome odoriferous thing, or medicinal.\nFrom the flow of impassioned, paradoxical argument, there will suddenly flower an image or a line of the rarest and most entrancing beauty. But the tenor of his poetry is witty, passionate, weighty and moving; never, for long, simply beautiful; not infrequently bizarre; at times even repellent.\nAnd so, just as Michael Angelo was a bad model for those who came after him and had not his strength and originality, Donne, more than any other single individual, is responsible for the worst aberrations of seventeenth century poetry, especially in eulogy and elegy. The metaphysical lyrists learned most from himthe conquering, insolent tone of their love songs and their splendid cadences. In happy conceit and movement, they sometimes excelled him, though it is only in an occasional lyric by Marvell or Rochester that one detects the same weight of passion behind the fantastic conceit and paradoxical reasoning. But it is in the complimentary verses and the funeral elegies of the early and middle century (as well as in some of the religious poetry and in the frigid love poems of Cowley) that one sees the worst effects of Donnes endeavour to wed passion and imagination to erudition and reasoning.\nAnd yet it would be a mistaken estimate of the history of English poetry which either ignored the unique quality of Donnes poetry or regarded its influence as purely maleficent. The influence of both Donne and Jonson acted beneficially in counteracting the tendency of Elizabethan poetry towards fluency and facility. If Donne somewhat lowered the ethical and ideal tone of love poetry, and blighted the delicate bloom of Elizabethan song, he gave it a sincerer and more passionate quality. He made love poetry less of a musical echo of Desportes. In his hands, English poetry became less Italianate, more sincere, more condensed and pregnant in thought and feeling. The greatest of seventeenth century poets, despite his contempt for our late fantastics, and his affinities with the moral Spenserians and the classical Jonson, has all Donnes intense individuality, his complete independence, in the handling of his subjects, of the forms he adopts, even of his borrowings. He has all his frequency and fulness of thought. He is not much less averse to the display of erudition, though he managed it more artfully, or to the interweaving of argument with poetry. But Milton had a far less keen and restless intellect than Donne; his central convictions were more firmly held; he was less conscious of the elements of contradiction which they contained; his life moved forward on simpler and more consistent lines. With powers thus better harmonised; with a more controlling sense of beauty; with a fuller comprehension of the science of his art, Milton, rather than Donne, is, in achievement, the Michael Angelo of English poetry. Yet there are subtle qualities of vision, rare intensities of feeling, surprising felicities of expression, in the troubled poetry of Donne that one would not part with altogether even for the majestic strain of his great successor.\nINDEX OF ALL CHAPTERS"} +{"text": " app.req_options.media_handlers[MEDIA_MULTIPART]\nmedia_handler.parse_options.max_body_part_buffer_size = 1024 * 1024 * 1024\n\napp.add_middleware(LifespanMiddleware())\n\n\nasync def _fail(\n request: Request,\n outcome: Union[Response, WebSocket],\n exc: Exception,\n status: HTTPStatus,\n message: str,\n):\n status = int(status)\n if status <= 499:\n logger.info(f\"{traceback.format_exc()}\\n{message}\") # Info because not an error\n else:\n logger.exception(message)\n if hasattr(request.context, \"metrics\"):\n exc_string = traceback.format_exception(exc)\n request.context.metrics.error_stacktrace = \"\\n\".join(exc_string)\n request.context.metrics.error_message = message\n\n if isinstance(outcome, Response):\n outcome.status = status\n outcome.media = ErrorResponse(error=Error(message=message)).dict()\n elif isinstance(outcome, WebSocket):\n if outcome.ready:\n if VERBOSE:\n logger.info(f\"Sending error to websocket: {message}\")\n await outcome.send_media({\"status\": status, \"error\": message})\n else:\n if VERBOSE:\n logger.info(f\"Closing websocket with error: {message}\")\n # Falcon convention is to add 3000 to the code to indicate a websocket error:\n # https://falcon.readthedocs.io/en/stable/api/websocket.html#error-handling\n await outcome.close(code=status + 3000, reason=message)\n else:\n raise ValueError(f\"Unknown outcome type: {type(outcome)}\")\n\n\nclass UnauthorizedException(Exception):\n pass\n\n\nasync def _unauthorized_401(request: Request, response: Response, exc: Exception, _, ws: WebSocket = None):\n message = f\"Unauthorized request\"\n await _fail(request, response or ws, exc, HTTPStatus.UNAUTHORIZED, message)\n\n\nasync def _bad_request_400(request: Request, response: Response, exc: Exception, _, ws: WebSocket = None):\n message = f\"Encountered an error while processing input: {str(exc)}\"\n await _fail(request, response or ws, exc, HTTPStatus.BAD_REQUEST, message)\n\n\nasync def _overloaded_503(request: Request, response: Response, exc: Exception, _, ws: WebSocket = None):\n message = \"Server overloaded, please try again later\"\n await _fail(request, response or ws, exc, HTTPStatus.SERVICE_UNAVAILABLE, message)\n\n\nasync def _ise_500(request: Request, response: Response, exc: Exception, _, ws: WebSocket = None):\n message = \"The server encountered an error while processing your request\"\n await _fail(request, response or ws, exc, HTTPStatus.INTERNAL_SERVER_ERROR, message)\n\n\n# Client-side errors\napp.add_error_handler(UserError, _bad_request_400)\napp.add_error_handler(AudioLoadError, _bad_request_400)\napp.add_error_handler(DownloadFailedException, _bad_request_400)\napp.add_error_handler(json.decoder.JSONDecodeError, _bad_request_400)\napp.add_error_handler(ValueError, _bad_request_400)\napp.add_error_handler(NotImplementedError, _bad_request_400)\napp.add_error_handler(OSError, _bad_request_400) # From PIL if image is corrupted\napp.add_error_handler(UnauthorizedException, _unauthorized_401)\n\n# Server-side errors\napp.add_error_handler(Exception, _ise_500)\napp.add_error_handler(HTTPInternalServerError, _ise_500)\napp.add_error_handler(RuntimeError, _ise_500)\napp.add_error_handler(AssertionError, _ise_500)\napp.add_error_handler(OverloadedException, _overloaded_503)\n\n\nclass RootResource:\n async def on_get(self, request: Request, response: Response):\n \"\"\"Readiness check endpoint\"\"\"\n\n\napp.add_route(\"/\", RootResource())\napp.add_route(\"/healthz\", RootResource())\n\n\nclass MetricsResource:\n async def on_get(self, request: Request, response: Response):\n \"\"\"Prometheus will hit this endpoint to pull metrics\"\"\"\n if _auth_server.enabled():\n # ToDo: enable once middleware migrated to the on-the-node reverse proxy.\n # Currently, metrics aren't supported for auth-on-the-node mode.\n pass\n else:\n response.content_type = prometheus_client.CONTENT_TYPE_LATEST\n response.text = prometheus_client.generate_latest()\n\n\napp.add_route(\"/metrics\", MetricsResource())\n\n\nclass PreStopResource:\n async def on_get(self, request: Request, response: Response):\n \"\"\"Kubernetes will hit this endpoint before stop\"\"\"\n if _auth_server.enabled():\n # ToDo: enable once middleware migrated to the on-the-node reverse proxy.\n # Currently, metrics aren't supported for auth-on-the-node mode.\n pass\n else:\n if _metering is not None:\n logger.info(\"Handling kubernetes termination gracefully from prestop hook.\")\n try:\n fut = _metering.report()\n # Wait for the publish future to resolve before exiting.\n futures.wait([fut], return_when=futures.ALL_COMPLETED)\n except Exception as e:\n # Report it without faili"} +{"text": "Microsoft Corp.: Penny-Pinchers' ChoiceBy Steven Vonder Haar | Posted 2002-07-10 Email Print\nDossier: To gain traction in the streaming media market, Microsoft Corp. is using a time-tested strategy: It's bundling its technology into the operating system.\nTo gain traction in the streaming media market, Microsoft Corp. is using a time-tested strategy: It's bundling its technology into the operating system.\nMicrosoft's Windows Media platform is woven into the Windows operating system, creating an environment where companies looking to deploy online audio and video applications can do so using \"free\" applications incorporated into key Windows products. Likewise, streaming publishing tools are offered as a downloadable add-on to Microsoft's popular Office suite. As a result, Microsoft's streaming software platform is an attractive choice for cost-conscious corporate technology managers.\n\"I'm not a Bill Gates advocate or bigot,\" says Allen Meyers, chief network architect for San Diego Data Processing Corp., the nonprofit entity that manages technology for the city of San Diego, Calif., including its growing usage of streaming media. \"I'm just a keep-it-simple person and having everything in the operating system does simplify things.\"\nBut even simplicity can have its costs. Network managers who have used streaming systems from both Microsoft and its chief rival, Real-Networks Inc., say that Real updates its technology more frequently and provides better customer support.\n\"If you need support information on Windows Media, your best bet is to scrounge the news groups,\" says Jason Flenniken, lead multimedia developer with Vignette Corp. And because the Windows Media server is bundled into Windows NT, the upgrades to Microsoft's streaming server can be limited to upgrades in the overall server operating system.\"Microsoft does a million things, and Real can focus just on streaming,\" Flenniken says.\nOther corporate users are satisfied with improvements in Microsoft's streaming offerings. Findlay, Ohio-based Marathon Ashland Petroleum, for instance, uses the Windows Media platform to Webcast employee meetings and executive speeches to its workforce nationwide. The company has noticed significant improvements in the technology since first using it three years ago, according to Robert Calmus, media producer at Marathon.\n1 Microsoft Way, Redmond, WA 98052\nGroup Vice President, Platforms\nHeads unit responsible for the Windows franchise, which integrates streaming applications developed by Windows Media division. He joined Microsoft in 1990 to work on the company's network product strategy.\nCorporate Vice President, Windows New Media\nPoole was co-founder of eShop Inc., which was acquired by Microsoft in 1996. He oversees Microsoft's streaming efforts in addition to the content security business unit and its recently formed eHome division.\nGeneral Manager, Windows Digital Media Division\nOversees operations of the streaming technologies unit.\nAnchored by revenues from Windows PC operating system and Office productivity software, the company is establishing beachheads with Web applications and digital device platforms. In streaming, it develops a player, server and tools for producing and distributing digital audio and video.\nMarathon Ashland Petroleum\nProject: Petroleum refiner uses Windows Media technology platform to make department meetings, speeches and more available to its workforce.\nWharton School, University of Pennsylvania\nDirector, Advanced Technology Development\nProject: Makes selected classes and guest lectures available online using Windows Media platform.\nSenior Systems Analyst\nProject: Heavy-equipment manufacturer is in midst of expansion of its use of streaming technology.\nMedia Development, E-Learning Specialist\nProject: Carmaker uses Windows Media platform to deliver on-demand training clips to 4,500 technicians in dealerships nationwide.\nSafeco Life and Investment\nRelationship Manager for Financial Services Distribution\nProject: Using Windows Media platform to develop up to 40 Webcasts annually featuring interviews with portfolio managers.\nLead Multimedia Developer\nProject: Uses Windows Media technology platform to distribute up to three corporate Webcasts developed weekly.\nExecutives listed here are all users of Microsoft's Windows Media technology platform. Their willingness to talk has been confirmed by Baseline."} +{"text": "Maine Honors Bates’ 150th\nPresident Hansen accepts proclamation from Gov. Baldacci as State Sen. Peggy Rotundo and Jane Ault Lindholm ’37 (seated) applaud.\nThe state of Maine’s pivotal role in the founding of Bates College 150 years ago made Monday afternoon’s Statehouse celebration, featuring a “Bates College Day” proclamation by Maine Gov. John Baldacci and a legislative joint resolution sponsored by State Sen. Peggy Rotundo, D-Androscoggin, a proud event for both college and state.\nThe 2 p.m. gathering took place at the Augusta Statehouse in the Legislative Council Chambers.\n“We are fortunate to have Bates College in our state,” Baldacci said in his remarks. “Not only for the good work it does in Lewiston-Auburn, but throughout the state, and for the recognition that we get because of the greatness of the institution throughout the country.”\nBaldacci’s proclamation compared the motto of Bates College, Amore ac Studio, translated “with ardor and devotion,” to “the spirit evoked by the state of Maine motto, Dirigo, ‘I lead,’ admirable qualities embodied by Bates graduates who have served the public good of our state and our nation, epitomized by the late Edmund S. Muskie of the Class of 1936, Maine governor, U.S. senator, U.S. Secretary of State, and son of Maine….”\nBaldacci, in his remarks, noted that “sometimes what seems like a modest bill can have wonderful long-term effects for Maine. The 1855 charter that authorized the institute that later became Bates College is a signal example…. Starting as almost entirely a Maine institution, it has become a world-renowned institution, and part of Maine’s reputation for excellence and productivity.”\nBaldacci noted also that Bates was recently named the No. 1 “Best Value” college in America by The Princeton Review “for its combination of superb academic offerings, high graduation rates, and reliable and generous financial aid awards.”\nElaine Tuttle Hansen, president of Bates, noted Bates founder Oren Cheney’s efforts to seek passage of the bill to establish what was then called the Maine State Seminary. While the final act of passage took only a few hours in March 1855, he toiled for months to secure its approval.\n“Then as perhaps now, the bill addressed primarily the State’s commitment of an allocation of funds for the Maine State Seminary,” she said. “The simple truth is that probably Bates would not have existed without some sustained lobbying and some state seed money. Some things never change.”\nHansen also invited the gathered guests to “take part in Sesquicentennial events and celebrations, to learn more of the history of the College, and to join us in an ongoing discussion of how Bates, founded on principles of academic rigor and human egalitarianism, can honor its founders’ dreams as it continues to become one of the finest liberal arts colleges in the world.”\nIn comments prior to today’s event, Baldacci reflected on Bates’ contemporary mission, both in Maine and around the world. “Each successive generation grows up to face a new set of challenges, whether here in Maine or across the nation and globe,” he said. “What should hearten us all is that great liberal arts colleges like Bates College excel at giving men and women adaptable skills to succeed in a rapidly changing world and to contribute to its betterment. At 150 years old, Bates has never been more relevant and important.”\nWith 37 legislators joining Rotundo as co-sponsors of the joint resolution, the Maine Legislature, with its vote on April 28, honored the public-spirited efforts to found the College in 1855.\nThose efforts were led by Cheney, a former member of the Maine Legislature, who, in the words of today’s resolution, “saw a great, unmet need in the State: to broaden the educational opportunities for young men and women through the founding of a new institution of higher learning….”\nIn its conclusion, the joint resolution honors Bates as a college that “prizes the inherent values of a demanding education and the profound usefulness of learning and understanding and is committed to academic rigor and ensuring in all its efforts the dignity of the individual and…for its unswerving commitment to providing an education in the liberal arts and sciences, recognizing their critical role in a just and civil society….”\nRotundo is associate director of the Center for Service-Learning at Bates, and among the joint-resolution cosponsors are five Bates alumni (Sen. Kevin Raye ’81, R-Washington, and representatives Gerald Davis ’59, R-Falmouth; Kenneth Lindell ’86, R-Frankfort; Elaine Makas ’67, D-Lewiston; and Sawin Millett ’59, R-Waterford) and a Bates parent, Sen. Michael Brennan, D-Cumberland, whose son Ryan is a member of the Class of 2007."} +{"text": "ng the service\n logger.exception(f\"Failed to report container usage\", exc_info=VERBOSE)\n else:\n logger.info(\"Skipping kubernetes termination gracefully from prestop hook.\")\n\n response.media = {\"result\": \"succeeded\"}\n response.status = HTTPStatus.OK\n\n\napp.add_route(\"/prestop\", PreStopResource())\n\n\nasync def _load_audio_duration(request: Request, value: bytes) -> float:\n def run() -> float:\n with fireutil.log_time(f\"Loading audio duration of size {len(value)}\"):\n try:\n audio_len_seconds = load_audio_duration(value)\n except RuntimeError as e:\n base64_preview = base64.b64encode(value[:128]).decode(\"utf-8\")\n raise UserError(\n f\"Could not load audio. Please check your audio and try again. \"\n f\"Ensure you are uploading the raw binary audio and not an encoded \"\n f\"version (e.g. base64) or a file path or URL. First 128 bytes in base64: {base64_preview}\"\n ) from e\n\n return audio_len_seconds\n\n loop = asyncio.get_running_loop()\n return await loop.run_in_executor(_audio_duration_executor, run)\n\n\ndef _preprocess_segments_for_captions(segments: List[TranscribeSegment]):\n # HACK: the Whisper result writers (https://github.com/openai/whisper/blob/90db0de1896c23cbfaf0c58bc2d30665f709f170/whisper/utils.py#L200)\n # join together text from words without any separator. There seems to be some\n # sort of misaligned contract of whether the words returned in the `segment`\n # structure have whitespace embedded (as in the output of e.g. TikToken)\n #\n # The OAI API returns `words` without any whitespace. This leads me to\n # believe that their API may internally process words on the original\n # tiktoken tokens, then calls strip() on them before returning to the\n # user\n #\n # Nevertheless, we are going to try to make the SRT/VTT writers\n # work by prepending a space to each word after the first word, in each\n # segment\n new_segs = [copy.copy(seg) for seg in segments]\n\n for segment in new_segs:\n new_words: List[TranscribeWord] = []\n for i, word in enumerate(segment.words):\n if word.start is None:\n word.start = segment.start\n if word.end is None:\n word.end = segment.end\n\n if i > 0:\n word = replace(word, word=f\" {word.word}\")\n\n new_words.append(word)\n segment.words = new_words\n\n return new_segs\n\n\ndef _format_transcription_verbose_json(\n request_id: str,\n transcribe_text: TranscribeText,\n duration_sec: Optional[float],\n params: Union[TranscriptionParams, StreamingTranscriptionParams, TranslationParams, AlignmentParams],\n) -> Dict:\n timestamp_granularities = []\n if isinstance(params, (TranscriptionParams, TranslationParams)):\n timestamp_granularities = params.timestamp_granularities\n elif isinstance(params, (AlignmentParams, StreamingTranscriptionParams)):\n timestamp_granularities = [TimestampGranularity.WORD, TimestampGranularity.SEGMENT]\n else:\n raise UserError(f\"Unknown params type: {type(params)}\")\n\n # Serialize\n words = None\n segments = None\n if timestamp_granularities:\n include_words = TimestampGranularity.WORD in timestamp_granularities\n segments_dicts = [s.to_dict(include_words=include_words) for s in transcribe_text.segments]\n if TimestampGranularity.WORD in timestamp_granularities:\n words = [w for s in segments_dicts for w in s[\"words\"]]\n if TimestampGranularity.SEGMENT in timestamp_granularities:\n segments = segments_dicts\n\n text_dict = {\n \"task\": \"transcribe\",\n \"language\": transcribe_text.language,\n \"text\": transcribe_text.text,\n \"request_id\": request_id,\n }\n if words is not None:\n text_dict[\"words\"] = words\n if segments is not None:\n text_dict[\"segments\"] = segments\n if duration_sec is not None:\n text_dict[\"duration\"] = duration_sec\n if transcribe_text.embeddings is not None:\n text_dict[\"embeddings\"] = transcribe_text.embeddings\n\n return text_dict\n\n\ndef _format_transcription(\n request_id: str,\n transcribe_text: TranscribeText,\n duration_sec: Optional[float],\n params: Union[TranscriptionParams, StreamingTranscriptionParams, TranslationParams, AlignmentParams],\n) -> Tuple[Optional[str], Optional[Dict], HTTPStatus, str]:\n if params.response_format == \"json\":\n text = None\n media = TranscriptionResponse(text=transcribe_text.text).dict()\n status = HTTPStatus.OK\n content_type = \"application/json\"\n elif params.response_format == \"verbose_json\":\n text = None\n media = _format_transcription_verbose_json(request_id, transcribe_text, duration_sec, params)\n status = HTTPStatus.OK\n content_type = \"applicatio"} +{"text": "There could be something shocking going on in our bodies. Well, perplexing at least. A team of mechanical engineers has found that the tough, flexible tissue that makes up blood vessels has surprising electrical properties – at least in pigs.\nWhat this could possibly mean for us, I will come to later. But the reason this result is surprising is that the property in question – what scientists call ferroelectricity – is usually found in artificial crystals and synthetic materials used for TVs, displays, computer memory and sensors.\nFerroelectricity is rather like an electrical equivalent of magnetism. In a ferroelectric substance, one side of the material has a positive electrical charge and the other a negative charge, created through an uneven distribution of electrical charges in its constituent atoms or molecules. Just as a magnetic field can make a compass needle change direction, so an electric field can pull all the little electrical charges into a different alignment, switching the charge in the opposite direction.\nThis “switchability” is what makes these ferroelectric crystals highly sought after for the likes of liquid-crystal displays. The researchers who discovered this strange effect - Yuanming Liu and colleagues at the University of Washington, Seattle and the University of Boston - usually work on synthetic materials like these to build energy harvesting and storage devices. But Liu knew that other unexpected electrical phenomena had been found in bone and other biological substances. And ferroelectricity was reported last year in the hard mineral coating of seashell. Li wondered whether soft biological tissues like blood vessels might show the effect too.\nShot to the heart\nHe and his colleagues took a thin slice of the main artery transporting blood from the heart, called the aorta, and placed it in a special microscope containing a sensitive needle tip. The tip detected the tell-tale signal associated with ferroelectricity, and what is more, they found that they could switch this polarization with an electric field.\nWhy on earth should any animal tissue be ferroelectric? Well, as I mentioned, the living world does make use of some unexpected material properties. Bone, for example, is piezoelectric, which as it happens is another useful kind of behaviour we rely on for everyday technologies. It is exploited, for instance, in pressure and vibration sensors like those in your computer keyboard, because piezoelectric materials produce an electrical charge when pressure is applied to it. It seems that bony creatures use this principle too: the electrical response to squeezing of bone helps tissues gauge the forces they experience. In seashells, meanwhile, piezoelectricity helps prevent cracks and fractures by dissipating the energy of a shock impact as electricity.\nOK – but ferroelectricity? Who needs that? Engineers Bin Chen and Huajian Gao have speculated that the property might provide another way for the tissue to register forces, and perhaps monitor blood pressure. Or perhaps the property could sense blood temperature (because ferroelectricity is temperature-sensitive), or, as in seashells, disperse mechanical energy and prevent damage. Or maybe it could even act as a sort of “tissue memory” in conjunction with nerves. Liu, meanwhile, speculates that ferroelectricity switching might alter the way cholesterol, sugars or fats stick to and harden blood vessels.\nNotice, though, how these researchers have no sooner identified a new characteristic of a living organism than they start to wonder what it is for. The assumption is that there must be some purpose: that evolution has selected the property because it confers some survival benefit. In other words, the property is assumed to be adaptive. This is a good position to start from, because most material properties of tissues are indeed adaptive, from the flexibility of skin to the transparency of the eye’s cornea. But it is possible that ferroelectricity could be just a side-effect of some other adaptive function of the tissue – a result of the way the molecules just happen to be arranged, which, if it does not interfere with other functions, will go unnoticed by evolution. Not every aspect of biology has a “purpose”.\nAll the same, tissue ferroelectricity could be handy. If Liu is right to suspect that ferroelectricity can influence the way blood vessels take up fats, sugars or lipids, then switching it with an applied electric field might help to combat cardiovascular conditions that result from build-up, such as thrombosis and atherosclerosis. If true, then what seems like an esoteric phenomenon could help tackle conditions that kill millions of people worldwide every year.\nIf you would like to comment on this story or anything else you have seen on Future, head over to our Facebook page or message us on Twitter."} +{"text": "I almost got to do big-person, grown-up, adult-type stuff the other day. Almost.\nYou see, several weeks ago, I received a summons from my county courthouse for jury duty. Throughout the years, I have gotten several of these letters in the mail asking me to serve as a juror, but each and every other previous time, for some reason or another, the case on the day I was scheduled to appear had been settled out of court, and I didn't even have to show up.\nI had gotten so used to this scenario, that I was kind of shocked last Sunday evening when I called the courthouse and the automated answering machine told me that, in fact yes, there was a case to be decided, and yes, my presence was required.\nI had mixed emotions. On one hand, I have always been curious about how our country's legal system works, and I always want to do my part as an American citizen. But on the other hand, I don't know of anyone who wants to willingly step foot in a courtroom. Especially when this person may or may not possess 23-year-old illegal bottle rockets that he attained before he was married, that he may or may not have gotten on a trip to Gatlinburg.\nAdd to this the fact I am presently suffering from allergies, and you can see why I dreaded the thought of sitting in a solemn, quiet courtroom. Every 10 to 16 seconds, I feel a compelling need to blow my nose. And not just a pleasant little puff of air into a tissue followed by a polite, \"You'll have to excuse me. I'm a little stuffed up.\" No, this is the kind of proboscis clearing that produces a sound similar to that of the Heimlich maneuver being applied to a large Canada Goose. This procedure is always loud and occasionally messy. A sound that a defendant doesn't want to hear in a court of law.\nBut come Monday morning, I put all this behind me. It was time to act like a big boy and do my civic duty. I stuffed my pockets with cough drops and Kleenex, and drove to the courthouse to dispatch justice. It was kind of exciting.\nSniffling and clearing my throat, I entered the large room where everyone that gets summoned waits to receive further instructions, I told the check-in lady what my last name was and how many miles it was from my home to the courthouse. With that, she checked some stuff on a piece of paper, handed me a pamphlet on what would be required of me, and gave me my juror badge. From this point on in life, I pretty much plan on always introducing myself as \"Juror 86.\"\nAs I turned my mucus-filled head to find a seat to plant myself, I did what I used to do back in high school. I searched out the seat that was the farthest from the front of the room and the closest to the door. I spied an empty chair between two other gentlemen in the back of the room, and I made a beeline for it. I probably would have had my own court case if anyone had tried to beat me to that chair.\nAs I sat there in that room, waiting for something to happen, I started reading the little pamphlet they gave me. I didn't finish reading it because the third sentence had a big word in it. After a few minutes, they played a VHS tape again telling us of our duties. With my eyes watering and a constant tickle in my throat, I sat there relishing in the fact that I was about to take part in assisting the American legal system, helping to preserve the very Constitution that makes this country the greatest place in the world. I contentedly leaned back in my chair.\nI will give this one warning to anyone who is called to serve as a juror in Bureau County, Illinois. Be wary of the chairs. The particular chair that I was in, was made of a particularly sturdy kind of wooden construction with rollers on the bottom. The kind of chair that I can picture Gregory Peck using in \"To Kill a Mockingbird.\" I think it was pretty much exactly like everybody else's chair in the room, but to tell you the truth, I didn't pay that much attention. My chair swiveled, and I think that it squeaked a little when I rotated to the left. Other than that, it was a good chair. Or so I thought.\nWhen I leaned back in that chair, everything at first seemed fine and dandy. However, and I'm sure that anyone who has leaned back too far in a chair can attest, there is that certain tipping point when every thing rapidly changes from \"peachy keen\" to, \"Oh my gosh! I'm going to look like an idiot when I fall out of this chair in the back row of the Bureau County Board of Supervisors board room!\"\nThere is no more terrifying of a feeling in this world than thinking you have leaned back in a chair too far. Fortunately, I was able to pull myself out of this free fall and kept my seated altitude. Looking back, I doubt if I ever was in danger of going all the way to the floor, but that chair sure did give that immediate impression.\nIn fact, in mid-descent, as my head snapped back and my terrified, bloodshot eyes focused on the ceiling tiles of the room, I audibly uttered three-quarters of a four-letter word that I usually reserve for home repair projects and our cat. Luckily for me, my allergies were apparent to most of the potential jurors in the room, and the rows of people who sat in front of me just thought I sneezed. But those two guys I was sitting between ... I'm pretty sure they know I'm an uncoordinated, foul-mouthed idiot that wreaks of Hall's cherry, triple soothing action cough drops.\nTo finish the story, after about 45 minutes of waiting, the judge came out and told all of us that due to some unforeseen circumstances, there would not be a case that morning, thanked us for our service and dismissed us. This was the closest to being an actual adult I've ever got.\nYou will have to excuse me now. I have a goose to squeeze.\nYou can contact Wallace at firstname.lastname@example.org. You can follow him on his blog at http://gregwallaceink.blogspot.com."} +{"text": "n/json\"\n elif params.response_format == \"text\":\n text = transcribe_text.text\n media = None\n status = HTTPStatus.OK\n content_type = \"text/plain; charset=utf-8\"\n elif params.response_format == \"srt\":\n f = io.StringIO()\n writer = WriteSRT(output_dir=None)\n segments = serialization.dumps(\n _preprocess_segments_for_captions(transcribe_text.segments),\n filter_none_=True,\n keep_keys={\"start\", \"end\"},\n )\n writer.write_result({\"segments\": segments}, file=f)\n\n text = f.getvalue()\n media = None\n status = HTTPStatus.OK\n content_type = \"text/plain; charset=utf-8\"\n elif params.response_format == \"vtt\":\n f = io.StringIO()\n writer = WriteVTT(output_dir=None)\n segments = serialization.dumps(\n _preprocess_segments_for_captions(transcribe_text.segments),\n filter_none_=True,\n keep_keys={\"start\", \"end\"},\n )\n writer.write_result({\"segments\": segments}, file=f)\n\n text = f.getvalue()\n media = None\n status = HTTPStatus.OK\n content_type = \"text/plain; charset=utf-8\"\n else:\n raise UserError(f\"Response type {params.response_format} not supported\")\n\n return text, media, status, content_type\n\n\nasync def _return_transcription(\n request: Request,\n outcome: Union[Response, WebSocket],\n params: Union[TranscriptionParams, TranslationParams, AlignmentParams],\n batch: Union[TranscriptBatch, AlignedTranscriptBatch],\n duration_sec: Optional[float],\n):\n transcription_text = batch.texts[0]\n\n # Response\n text, media, status, content_type = _format_transcription(\n request.context.request_id, transcription_text, duration_sec, params\n )\n\n # We put POSTPROCESSING_FINISHED here after all cpu intensive tasks are done\n batch.timings.add_timestamp(TimingType.POSTPROCESSING_FINISHED, time.time())\n batch.timings.add_latency(LatencyType.POSTPROCESSING_MS)\n batch.timings.add_latency(LatencyType.CUMULATIVE_GPU_TIME)\n\n # Request\n request.context.metrics.model = getattr(params, \"model\", None)\n request.context.metrics.vad_model = getattr(params, \"vad_model\", None)\n request.context.metrics.alignment_model = getattr(params, \"alignment_model\", None)\n request.context.metrics.timings = batch.timings\n request.context.metrics.token_latency_seconds = batch.token_latency_seconds\n request.context.metrics.tokens_per_second = batch.tokens_per_second\n request.context.metrics.vram_start_bytes = transcription_text.vram_start_bytes\n request.context.metrics.vram_end_bytes = transcription_text.vram_end_bytes\n request.context.metrics.output_len_bytes = len(transcription_text.text)\n request.context.metrics.output_len_tokens = sum(len(s.tokens) for s in transcription_text.segments)\n request.context.metrics.output_language = transcription_text.language\n request.context.metrics.output_num_segments = len(transcription_text.segments)\n request.context.metrics.output_retry_count = int(\n sum([(s.retry_count or 0) for s in transcription_text.segments]) / len(transcription_text.segments)\n )\n # active count -1 for the randezvous\n request.context.metrics.sessions_asr_concurrent_total = _stt_streaming_client.get_active_count() - 1\n if request.get_header(\"fireworks-test-request\") in {\"true\", \"True\"}:\n request.context.metrics.is_fake_request = True\n\n # Transmission start\n request.context.metrics.timings.add_timestamp(TimingType.TX_STARTED, time.time())\n\n if isinstance(outcome, WebSocket):\n if text is not None:\n await outcome.send_text(text)\n if media is not None:\n await outcome.send_media(media)\n elif isinstance(outcome, Response):\n if text is not None:\n outcome.text = text\n if media is not None:\n outcome.media = media\n outcome.status = status\n outcome.content_type = content_type\n if request.get_header(\"fireworks-test-request\") in {\"true\", \"True\"}:\n outcome.set_header(\"fireworks-test-request\", \"true\")\n else:\n raise ValueError(f\"Unknown outcome type: {type(outcome)}\")\n\n\nasync def _transcribe(\n batch: Batch,\n duration_sec: float,\n offset_sec: float = 0.0,\n batch_diarize: Optional[Batch] = None,\n diarize_config: Optional[DiarizeConfig] = None,\n) -> Union[TranscriptBatch, AlignedTranscriptBatch]:\n try:\n output_type = AlignedTranscriptBatch if batch.task.do_word_timestamps else TranscriptBatch\n if batch_diarize is not None:\n package, package_diarization = await asyncio.gather(\n _inference_client.process(batch.task.id, batch, output_type),\n _diarization_client.process(batch_diarize.task.id, batch_diarize, EmbeddingBatch),\n )\n # Reduce into batch with single item\n reduced_batch = ReducedEmbeddingBatch.from_embedding_batch(batch="} +{"text": "The alleged culprits behind the Boston Marathon bombing have been found. Yet all along, leftist have wanted for nothing other than for it to be revealed that white men are responsible for the attack.\nOnly the self-delusional and the deceptive, the ignoramus and the liar, will deny that over the course of the last five decades, our politically correct zeitgeist has demonized white men while idealizing every other group. The left has been remarkably successful at commandeering the culture with The Script: an anti-white, anti-Christian, and anti-male narrative.\nAccording to The Script, the universe, much like it is depicted in, say, the Star Wars mythos, is a rather simple place. Like the fictional universe of Star Wars, the fictional universe of the leftist’s imaginings is defined by a perpetual contest between the forces of good and the forces of evil. Unlike that of Star Wars, though, the epic battle at the heart of the leftist’s fantasy world is essentially racial in character: White Christian (heterosexual) men constitute the evil Empire from which the rebel alliance of non-whites, non-Christians, women, and homosexuals seek emancipation.\nThe latest script writer is Salon.com writer David Sirota. His article, “Let’s Hope the Boston Marathon Bomber is a White American,” is instructive for several reasons. First, Sirota expresses as loudly and clearly as anyone the left’s wish that the culprits behind the Boston bombing are white. Secondly, trading in such stock leftist ideas as “white privilege,” Sirota supplies us with insight into The Script. Finally, in bringing The Script to bear upon this one episode, Sirota’s piece discloses a truth that far too many on the right still refuse to acknowledge: virtually every episode in American political life is determined by The Script.\nIn other words, every political issue is determined by the left’s obsession to effectively eradicate every last vestige of the culture invented by whites generally, and white men in particular.\nFar from unveiling some idiosyncratic wish on his part, Barack Obama represented his fellow travelers on the left when he pledged to “fundamentally transform” the country, for to transform anything is to destroy it. Take, for instance, a seed. A seed must first die before the new life, the plant or the crop, can spring from it. Or consider a caterpillar. A caterpillar must essentially die, must cease being a caterpillar, before it can come to life as a butterfly. Jesus, too, references the need for “fundamental transformation” when He instructs His disciples that lest they be “born again,” they will not be able to partake of eternal life.\nTransformation necessarily demands the extinction of its subject. Hence, when Obama promised to transform America, he basically promised to perfect the old leftist program of a sort of cultural or symbolic genocide.\nMore accurately, the culture upon which Obama and the left set their sights, the universe that is center stage in The Script, is what we may call John Wayne’s World. Indeed, The Script itself may as well be called, Kill the Duke.\nFrom the leftist’s vantage point, the traditional or historical face of America is basically that of John Wayne’s—and the Duke signifies everything that is wrong in the world. A particularly masculine white Christian man, the persona that Wayne brilliantly succeeded in crafting epitomized the rugged, but law-revering, individualism that leftists detest. “God, Guns, and Guts made America Free,” may be the saying plastered on the memorabilia of many an American patriot, but the Duke is its incarnation.\nWhether battling the Japanese in one of his World War II films, American Indians in one of John Ford’s Western classics, or dragging Maureen O’Hara miles across Ireland before doing battle with her bully of a brother, Wayne was unapologetically, even pathologically, un-politically correct. He resolutely defied The Script. Moreover, he did so without dropping a sweat.\nWhen leftists look back on America, it is John Wayne’s America—Wayne’s World—that they see. And while they have made awesome strides in relegating this America to the dustbin of history, whenever The Script is resisted or thwarted, it is due, as far as they are concerned, to the ghost of the Duke rising again.\nFrom immigration to “gay marriage”; abortion to capital punishment; Obamacare to allowing open homosexuals in the military and women in combat; “gun-control” to “affirmative action,” there is scarcely a conceivable issue over which they fight that the left doesn’t regard as a battle in the war to kill the Duke. It is crucial that we grasp this.\nIt is also crucial that we realize that this is why the left wants to find a new white villain responsible for the Boston Marathon bombing."} +{"text": "I recently had the opportunity to read the book “Bitter is the New Black (Confessions of a condescending, egomaniacal, self-centered Smart-ass, or why you should never carry a Prada Bag to the unemployment office)\", a memoir by Jen Lancaster. After reading the entire book, I really didn’t know what to think or where to start in order to provide a fair assessment. Not really being one to ever be at a loss for words, this was almost a new experience for me. Bitter is the New Black is a book that truly defies explanation. I needed to see what others were saying about it. A glance at the hundreds of reviews on this book ran the full gamut of emotions from absolute hate to delightfully entertaining and terrific. Originally, I was leaning toward the low end.\nThe book starts off entertaining enough. After providing a series of correspondence to set the pace, the book opens with Jen Lancaster (author) aboard a boat on a company trip. Jen works at Corp.com and is making a great deal money. She is a shining star in the organization and is earning almost a quarter of a million dollars a year. Jen is also involved with her current boyfriend/fiancé Fletch, who also earns a very good living. From the very start of the book, we are introduced to a very opinionated, conceited, self serving, egotistical woman who is also a shopaholic with absolutely no self discipline. Bitter is the New Black leads us through Jen’s self-induced, out of control, downward financial spiral after being laid off. Even as her situation gets worse, she gains no insight nor does she try to exercise control over any of her self destructive habits.\nThere were many times that I simply did not want to continue reading the book. I thought the story to be unrealistic and the character to be beyond ridiculous with no self redeeming qualities. Another annoying aspect of the book was that there were footnotes on the bottom of almost every page. Not the normal footnotes one would expect, but the footnotes were additional sarcastic remarks the author (Jen) felt that she needed to make. For example a line in the book read “I still prefer Walsh Park, but it’s a half hour walk”. The footnote reads “Who am I kidding? It’s a five minute drive.” While the comments in the footnotes were applicable to something the author stated, I found the need to continually look at the footnotes for yet another sarcastic comment, to be very distracting for a book of that length.\nWhat I decided to look for instead were the parts of the book that I found people facing unemployment could identify with. The first scene was the manner in which Jen’s layoff was handled. One day, Jen receives a call from a John O’Donnell, Vice President of the Southern sales region, praising her work and giving her a promotion. Two days later, Jen’s supervisor calls her into the office and tells Jen that her position was being eliminated and that she was being laid off. Jen was absolutely astonished, primarily because of her performance in the office and her recent promotion. Jen stated that she was very upset at being fired, in which the supervisor corrected Jen and said she was being laid off, not fired. A reader having been through a similar circumstance would appreciate the tone and emotional depth of the conversation.\nThere were other scenes throughout the book where the story was definitely realistic in dealing with unemployment, but as a reader, I was too annoyed with the writer’s attitude to give much appreciation to that fact. Another such scenario was the end of the book. As to not tell the end of the book, I will leave it at that.\nNow most people will skip certain pages in the book because they have very little to do with the book itself. The author’s note is one such page. I think to truly appreciate this book, one actually had to go back and read the author’s note found in the beginning of the book. I won’t disclose the contents here, but this is what actually turned the book around for me and helped me to write this review. It, in fact, became an “ah-ha” moment where I realized that I had read the book with the wrong attitude. It forced me to remember that there are many people in this world just like the author.\nIn “Bitter is the New Black” the author was telling the tale of who she was when she became unemployed. Sitting here trying to make sense of the book I had to learn to appreciate the tale of a person like the author. Even when things are at their worse, there are people that simply can not make the adjustments that they need to make in order to prevent or stop a continual downhill financial spiral.\nTo appreciate the book, I had to stop judging the author/main character. It’s not an easy jump from having it all to having nothing, especially if you have an attitude or complete lack of control like Jen. It was that one moment for me when I realized that while, yes the author made me mad; and yes the footnotes were very annoying; and yes I wanted to stop reading – the transitional period for someone who is laid off is not an overnight occurrence. That is what the book was all about. We are all a work in progress when dealing with life’s trials and tribulations.\nI can not say if you will love or hate the book. You will need to read it in order to draw your own conclusions of whether or not there was a lesson in it for you as there was for me."} +{"text": "package_diarization.batch)\n # Send clustering task to fire cluster\n package_diarization = await _diarization_clustering_client.process(\n reduced_batch.task.id, reduced_batch, ClusteringBatch\n )\n # Merge timings\n package.batch.timings = Timings.merge([package.batch.timings, package_diarization.batch.timings])\n else:\n package = await _inference_client.process(batch.task.id, batch, output_type)\n\n # Postprocess transcription\n package.batch.timings.add_timestamp(TimingType.TRANSCRIPTION_POSTPROCESSING_STARTED, time.time())\n package.batch.timings.add_latency(LatencyType.TRANSCRIPTION_POSTPROCESSING_QUEUED_MS)\n text = TranscribeText.merge([t for _, t in sorted(package.batch.texts.items())])\n batch = replace(package.batch, texts={0: text})\n refine_alignment(text, duration_sec, offset_sec)\n package.batch.timings.add_timestamp(TimingType.TRANSCRIPTION_POSTPROCESSING_FINISHED, time.time())\n package.batch.timings.add_latency(LatencyType.TRANSCRIPTION_POSTPROCESSING_MS)\n\n # Postprocess diarization\n if batch_diarize is not None:\n batch.timings.add_timestamp(TimingType.DIARIZATION_POSTPROCESSING_STARTED, time.time())\n batch.timings.add_latency(LatencyType.DIARIZATION_POSTPROCESSING_QUEUED_MS)\n merge_transcription_diarization(\n text,\n package_diarization.batch.items[0].labels,\n normalize_sentences=diarize_config.diarize_params.get(\"normalize_sentences\", False),\n )\n if batch.task.return_embeddings:\n text.embeddings = package_diarization.batch.items[0].speaker_embeddings or {}\n batch.timings.add_timestamp(TimingType.DIARIZATION_POSTPROCESSING_FINISHED, time.time())\n batch.timings.add_latency(LatencyType.DIARIZATION_POSTPROCESSING_MS)\n\n except NoVoiceDetectedException as e:\n return AlignedTranscriptBatch.from_text(task=batch.task, text=\"\", avg_logprob=0.0)\n return batch\n\n\nclass PrerecordedTranscriptionsResource:\n async def report_usage(self, account_id: str, bytes_received: int) -> bool:\n accepted = True\n # Skip rate limit check for health check requests\n if account_id == \"health_check\":\n return accepted\n if _ratelimit_verifier is not None:\n try:\n with fireutil.log_time_if(\"Reporting rate limit\", took_more_than=0.1):\n rate_limit_response: RatelimitResponse = await asyncio.wait_for(\n _ratelimit_verifier.check_and_update(\n user_account=account_id,\n metric=_args.prerecorded_rate_limit_metric_name,\n cost=bytes_received,\n default_limit=self._get_rate_limit(\n account_id,\n _args.prerecorded_bandwidth_limit_bytes,\n _args.account_prerecorded_limit_bytes_override,\n ),\n ),\n timeout=_args.rate_limit_timeout_seconds,\n )\n logger.info(f\"Ratelimit response {account_id} {rate_limit_response}\")\n accepted = rate_limit_response.accepted\n except asyncio.TimeoutError:\n logger.warning(\n f\"Ratelimit check timed out after {_args.rate_limit_timeout_seconds}s for {account_id=}, accepting request\"\n )\n accepted = True\n except AttributeError:\n logger.warning(f\"Ratelimit check error for {account_id=}, accepting request\")\n accepted = True\n\n return accepted\n\n def _get_rate_limit(\n self, account_id: str, bytes_limit: int, account_prerecorded_limit_bytes_override: Dict[str, float]\n ) -> int:\n # Override bytes limit by account-specific limit\n if account_id in account_prerecorded_limit_bytes_override:\n bytes_limit = account_prerecorded_limit_bytes_override[account_id]\n return bytes_limit\n\n\nclass TranscriptionsResource(PrerecordedTranscriptionsResource):\n async def on_post(self, request: Request, response: Response):\n params = await parse_falcon_media(request, TranscriptionParams)\n params.file = await download_or_bytes(params.file)\n\n request.context.metrics.timings.add_timestamp(TimingType.RX_FINISHED, time.time())\n request.context.metrics.timings.add_latency(LatencyType.RX_MS)\n\n request.context.metrics.api_type = \"audio.transcriptions\"\n request.context.metrics.is_batch = (\n \"true\" if request.headers.get(\"x-fireworks-request-source\") == \"batch\" else \"false\"\n )\n # Build task\n request_id = build_request_id(request)\n task = build_audio_task(request_id, \"transcribe\", params, cluster_ty"} +{"text": "Eefin and Hambone, Or, What Is Culture?\nHee Haw, CBS-TV, June 15, 1969 – September 19, 1992\nby Justin E. H. Smith\nI mentioned recently that whenever I come back to the US (I’m writing from Chicago), I enjoy immersing myself in this country’s rich cultural history. This, for example:\nMy friends imagined that I was joking, that I was being my usual haughty, hi-culture, Europhile self. How can I get the message across? No matter how often I attempt to explain this, no one believes me: I am essentially a lo-culture kind of guy. Or, rather, I deny the legitimacy of the distinction. I do not believe that there is anything more earnest in Ernstkultur than in Unterhaltung. I believe, quite the contrary, that culture bubbles up from the depths, and that its genius is equally distributed across all places and times. And I have no patience, either, for these incessant reminders that Brahms incorporated Slavonic folk dances into his music, or that Copland was influenced by jazz; to those who bring this up I can only reply: don’t waste my time, then, but give me Slavonic folk dances, and give me jazz.\nWhat gives the appearance of some monopoly on genius to the sort of cultural output that is housed in museums and Lincoln Plaza and so on is just this: that brainless one-percenters are spending huge amounts of money to put their names on these monuments, and the brainless bourgeoisie makes pilgrimages to them, spending medium sums of money to have a brush with cultural objects that supposedly edify by their simple proximity. The illusion that genius is stored up in sites of high culture is sustained by capital and by the laziness and gullibility of culture’s consumers: all the season-ticket holders, all the dupes of the museums’ advertising departments, for their part driven ever further, under the compulsion of capital, to make the Ottoman sultan’s throne, or medieval armor, or Greco-Bactrian statuary, look like so many things to buy– passing them off as a special class of objects, museum objects, that you can buy in a way just by going and standing in front of them.\nNow that that’s out of the way, let’s get back to Eefin and Hambone. I remarked to a friend (who, again, thought I was joking), that what we are witnessing here (and in general are always witnessing on Hee Haw, the show that perhaps more than any other shaped my earliest thoughts about what culture is and how it works) is a performance of musical virtuosity that unites feigned cretinism with real genius (i.e., not the kind that’s only sustained by capital). This is also the marriage of two distinct musical traditions, with affinities to forms we find, among other places, in Arctic Canada, Haiti, and West Africa. ‘Eefing’ is an Appalachian tradition of rhythmic vocal grunts and plosions (of making various noises that sound like ‘eef’), which some people have identified as a sort of Appalachian ancestor of beatboxing. Here, as so often, the chicken-or-egg debate about American cultural forms (where either the chicken or the egg is Euro-American culture, and the other is African-American) is unnecessarily repeated: eefing and beatboxing are two different and perhaps historically interwoven traditions of using the body as a rhythm instrument. In its performance, eefing comes across less like beatboxing than like Inuit vocal games, to my mind. Hambone, in turn, is an originally West African tradition, sometimes called ‘Juba’, which is well-attested throughout the Caribbean and the southern US, and is, like eefing, a percussive use of the body, though it is rather closer to drumming. Here, it is clear that we are looking at a musical form that is in the first instance African-American, or, perhaps better, African-diasporic. That it crosses over so easily and perfectly into the totally white world of Hee Haw shows, yet again, on what a narcissism of minor differences racial boundaries in the US are sustained.\nWhat is particularly engaging about Eefin and Hambone (as opposed to eefing and hambone), is that there’s a certain queerness to them, and I mean this word in both its old-fashioned and its newfangled senses: they are represented as doing something you’re not supposed to be doing, and doing it, as of necessity, together. They are repeatedly caught by the enforcers of hillbilly normativity, and are chased away with a gruff kick in the pants. But it’s clear that they are in the end accepted in the community, and that they’ll be up to it again soon enough. But what is it that they’re up to, exactly? They’re doing something rhythmic, doing it together, with their bodies, something that is ecstatic and grotesque, that is constantly under threat of prohibition, and that they seem, in virtue of their peculiar shared nature, unable not to do. This gets to the heart of the genius of music, as far as I’m concerned.\nPiece crossposted with Justin E. H. Smith’s website"} +{"text": "GREAT BARRINGTON -- On the heels of two successful fundraising efforts for enhanced programming, safety and equipment upgrades, the Mahaiwe Performing Arts Center plans to add more shows to its roster, organize full-year seasons and further diversify its mix of attractions.\nA full house celebrated at the nonprofit's annual gala Sunday night, featuring a powerhouse 90-minute theatrical performance by Broadway stars Patti LuPone and Mandy Patinkin.\nThis week, Executive Director Beryl Jolly announced the hiring of the theater's first in-house artistic consultant, Arnie Malina, who retired recently after 15 years as head of the Flynn Center for the Performing Arts and the Discover Jazz Festival in Burlington, Vt.\nThe goal is to develop programs uniquely tailored to the Mahaiwe audience and dialogues with the community about artistic initiatives.\nThough half of its audience is from outside Berkshire Coun ty, the theater retains the loyalty of longtime area patrons.\n\"I used to go as many of my classmates did on Saturday afternoons,\" recalled Christine Ramsdell Silvernail, now 94 and a resident of Kimball Farms in Lenox. \"We'd settle into the theater and a woman would play the piano accompanying the silent films.\"\nDuring the 1920s, Silvernail, who lived near Monument Mountain, took the trolley line downtown to see the movies. Now, she occasionally attends high-definition Metropolitan Opera telecasts on Saturday afternoons.\nAt Sunday night's gala, state Rep. William \"Smitty\" Pignatelli, presenting honorary citations from Gov. Deval Patrick and the state Legislature to co-founder and major benefactor John Hoyt Stookey, credited the theater for revitalizing downtown Great Barrington. He extolled founding president and chairwoman Lola Jaffe for \"her vision and her dream\" as the driving force behind the restoration of the historic theater.\nPatrick's citation honored Stookey for his \"dedicated service\" to the Mahaiwe and \"commitment to the Berkshire community.\"\n\"The Mahaiwe offers us the opportunity to experiment, to try something new,\" Stookey told the audience. \"I dare you to try something different.\"\nAccording to Jolly, a nearly $100,000 John Hoyt Stookey Fund for Performing Excellence will be aimed at attracting top talent to the theater.\nIn an interview, Jolly explained that an additional $100,000 raised by the theater will match a state cultural-facilities grant to fund technical and structural upgrades.\nExplaining the decision to hire Malina after a fruitful six-year collaboration with executives at the Bardavon 1869 Opera House in Poughkeepsie, N.Y., and the Ulster Performing Arts Center in Kingston, N.Y., Jolly said it reflects \"an awareness that we've come so far, they've helped us build a foundation so strong that it's time to have a Mahaiwe-specific artistic leader.\"\nThe strategy, Jolly added, is to plan full seasons of programming well in advance and to package series of dance, comedy and music performances while adding more events, especially concerts.\n\"We hope to grow local participation,\" Jolly said. She putting an emphasis on affordability, especially through a $15 ticket available to people under 30 for any live performance.\nMalina said he has already started booking events for a 12-month season beginning next July. Programming will continue to include a variety of musical genres, as well as theater, dance and film, a family series and student matinees.\n\"We'll collaborate with community organizations,\" said Malina. \"There's an infinite range of possibilities.\"\nMalina, 67, said he intends to \"make the Mahaiwe an even greater part of the community by using the arts as an exploration of people's creativity and expansion of the social fabric. We'll be bringing clarity and more focus to the mix.\"\nMalina will participate in focus groups on upcoming weekends to take the pulse of the public's feelings about the theater.\nThe musical menu will lean toward more popular events, especially jazz, he said. \"Even in classical music, there are opportunities to present contemporary, edgy work,\" he said.\nThe Mahaiwe at a glance\nHistory: Opened in 1905 as a stage for touring artists, a vaudeville house and movie theater. Renovated and reopened in 2005 after a $9 million rehabilitation.\nAttractions: 145 shows a year, including 25 classical, gospel, jazz, country, folk, Broadway and world music concerts; 38 opera and theater high-def telecasts; 10 dance programs; 28 movies; three comedy shows; 14 lectures; 13 family shows; five education programs; and three master classes\nAnnual attendance: 35,000\nTicket sales: 75 percent of capacity\nAnnual budget: $1.6 million\nStaff (full-time): Seven\nLocation: 14 Castle St., Great Barrington\nInformation: www.mahaiwe.org or (413) 528-0100\nSource: Mahaiwe Performing Arts Center."} +{"text": "pe=\"transcribe\")\n task_diarize = None\n diarize_config = DiarizeConfig.from_params(\n params.diarize, params.min_speakers, params.max_speakers, params.diarize_params\n )\n if diarize_config.enabled:\n task_diarize = build_audio_task(request_id, \"transcribe\", params, cluster_type=\"diarize\")\n request.context.metrics.is_diarization = str(bool(diarize_config.enabled)).lower()\n\n if request.get_header(\"fireworks-test-request\") in {\"true\", \"True\"}:\n out_batch = AlignedTranscriptBatch.from_text(task=task, text=_FAKE_RESPONSE_TEXT, avg_logprob=0.0)\n out_batch.timings = request.context.metrics.timings\n audio_len_seconds = 0.0\n else:\n audio_len_seconds = await _load_audio_duration(request, params.file)\n bytes_received = int(audio_len_seconds * SAMPLE_RATE * 4) # hotfix\n accepted = await self.report_usage(request.context.account_id, bytes_received)\n request.context.metrics.audio_ratelimit_usage_bytes = bytes_received\n if not accepted:\n response.status = HTTPStatus.TOO_MANY_REQUESTS # 429\n response.media = {\n \"error\": \"Too Many Requests\",\n \"message\": \"You have exceeded your usage limits. Please try again later or contact Fireworks to explore dedicated capacity.\",\n }\n return\n\n # Transcription batch\n in_batch = AudioBatchRaw.from_single(task, params.file, timings=request.context.metrics.timings)\n in_batch_diarize = None\n if task_diarize is not None:\n in_batch_diarize = AudioBatchRaw.from_single(task_diarize, params.file) # diarization batch\n out_batch = await _transcribe(\n in_batch, audio_len_seconds, batch_diarize=in_batch_diarize, diarize_config=diarize_config\n )\n\n request.context.metrics.audio_input_size_bytes = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_BYTES, 0\n )\n request.context.metrics.audio_input_size_samples = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SAMPLES, 0\n )\n request.context.metrics.audio_input_size_seconds = audio_len_seconds = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SECONDS, 0\n )\n request.context.metrics.audio_input_size_speech_seconds = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SPEECH_SECONDS, 0\n )\n request.context.metrics.audio_input_seconds_per_second = (\n _audio_input_running_duration.add(audio_len_seconds) / _audio_input_running_duration.window_seconds\n )\n\n out_batch.timings.add_timestamp(TimingType.POSTPROCESSING_STARTED, time.time())\n out_batch.timings.add_latency(LatencyType.POSTPROCESSING_QUEUED_MS)\n\n await _return_transcription(request, response, params, out_batch, audio_len_seconds)\n\n\napp.add_route(\"/v1/audio/transcriptions\", TranscriptionsResource())\n\n\nclass TranslationsResource(PrerecordedTranscriptionsResource):\n async def on_post(self, request: Request, response: Response):\n params = await parse_falcon_media(request, TranslationParams)\n params.file = await download_or_bytes(params.file)\n\n request.context.metrics.timings.add_timestamp(TimingType.RX_FINISHED, time.time())\n request.context.metrics.timings.add_latency(LatencyType.RX_MS)\n\n request.context.metrics.api_type = \"audio.translations\"\n request.context.metrics.is_batch = (\n \"true\" if request.headers.get(\"x-fireworks-request-source\") == \"batch\" else \"false\"\n )\n # Build task\n request_id = build_request_id(request)\n task = build_audio_task(request_id, \"translate\", params)\n\n if request.get_header(\"fireworks-test-request\") in {\"true\", \"True\"}:\n out_batch = AlignedTranscriptBatch.from_text(task=task, text=_FAKE_RESPONSE_TEXT, avg_logprob=0.0)\n out_batch.timings = request.context.metrics.timings\n audio_len_seconds = 0.0\n else:\n audio_len_seconds = await _load_audio_duration(request, params.file)\n bytes_received = int(audio_len_seconds * SAMPLE_RATE * 4) # hotfix\n accepted = await self.report_usage(request.context.account_id, bytes_received)\n request.context.metrics.audio_ratelimit_usage_bytes = bytes_received\n if not accepted:\n response.status = HTTPStatus.TOO_MANY_REQUESTS # 429\n response.media = {\n \"error\": \"Too Many Requests\",\n \"message\": \"You have exceeded your usage limits. Please try again later or contact Fireworks to explore dedicated capacity.\",\n }\n return\n\n # Transcription batch\n in_batch = AudioBatc"} +{"text": "For Immediate Release, September 11, 2012\n||Kassie Siegel, Center for Biological Diversity, (760) 366-2232 x 302\nErik Schlenker-Goodrich, Western Environmental Law Center, (575) 770-1295\nStuart C. Ross, Clean Air Task Force, (914) 649-5037 cell\nAs Climate Warms, Petition Seeks to Stop Methane Leaks at Drilling Operations on America's Public Lands\nSAN FRANCISCO— Companies fracking or drilling for oil and gas on public lands should be required to use pollution controls to cut harmful methane leaks contributing to the global climate crisis, according to a petition filed today to the Bureau of Land Management by the Center for Biological Diversity, Western Environmental Law Center and Clean Air Task Force. About 126 billion cubic feet of gas are unnecessarily vented and flared from federal leases each year.\nMethane is a potent greenhouse gas — 105 times more powerful than carbon dioxide in warming the globe over a 20-year period — that plays a major role in climate change. This past January to August were the warmest eight months on record in the contiguous United States, according to the National Oceanic and Atmospheric Administration.\n“As climate change heats up our planet, many companies still don’t bother to control methane emissions from fracking and drilling on public lands,” said Kassie Siegel, director of the Center’s for Biological Diversity’s Climate Law Institute. “The federal government needs to put a lid on this highly destructive form of pollution. Methane’s far too powerful at driving global warming to let it leak out this way. We can’t sit here fiddling while Rome burns.”\nToday’s petition calls on the BLM to require that oil- and gas-drilling operators install readily available pollution-control measures that would reduce methane gas leaked into the atmosphere during the drilling process. Stopping the leaks would also keep more gas in the pipeline for consumers and add millions of dollars to the federal treasury from royalty payments. The wasted gas is enough to heat 1.7 million homes for a year.\nFracking, a highly controversial drilling technique that involves blasting huge quantities of water and toxic chemicals into the earth, worsens the leakage problem. The oil and gas industry fracks about 90 percent of wells drilled on federal lands, according to the BLM.\nMethane emissions also contribute to higher levels of ground-level ozone pollution, which has serious direct public-health impacts, including increasing the incidence of asthma, lost school and workdays, and premature death.\n“This isn’t about whether oil and gas drilling is good or bad, it’s about whether the Bureau of Land Management is going to clean up sloppy drilling practices that damage our climate,” said Erik Schlenker-Goodrich of the Western Environmental Law Center. “With win-win solutions at our fingertips that will keep more energy in the pipeline for consumers, there’s no reason the agency should not be requiring the industry to use the best proven, available equipment and practices. This is a no-brainer.”\nFederal law requires the BLM to prevent the waste of gas on federal leases, and evidence suggests that operators can economically capture at least 40 percent of leaked gas from federal lands, reducing greenhouse pollution by the same amount as removing 3.1 million cars from the road and increasing royalty payments by $23 million annually. The BLM is also required to protect the environmental, air, atmospheric, water, and other resource values of public lands and prevent their unnecessary or undue degradation. The agency manages more than 245 million acres of public lands and administers about 700 million acres of subsurface mineral estate.\n“Regulating methane from oil and gas production is absolutely essential to protecting both climate and public health in the U.S.,\" said Ann Weeks, senior counsel for Clean Air Task Force and one of the signatories to the petition. “There are many off-the-shelf techniques available today for controlling methane emissions from wells, pipelines and other sources in the production process. We are therefore demanding that BLM take a leadership role in requiring natural gas lessees to minimize their leakage of methane, an enormously potent short-lived climate pollutant.”\nMethane emissions greatly accelerate climate change, the consequences of which Americans experienced this summer: record high temperatures and massive droughts leading to higher food prices.\nBLM has admitted that its regulations have not kept pace with modern oil- and gas-extraction techniques, and has proposed new rules for fracking on federal lands. The proposed regulations do not address air pollution. The agency has stated it intends to address air pollution at a later time.\nThe Center for Biological Diversity is a national, nonprofit conservation organization with more than 375,000 members and online activists dedicated to the protection of endangered species and wild places.\nThe Western Environmental Law Center is a nonprofit public interest law firm that works to protect and restore western wildlands and advocates for healthy environments on behalf of communities throughout the West.\nClean Air Task Force is a non-profit environmental organization with offices throughout the United States and in China that works to protect the earth’s atmosphere by improving air quality and reducing global climate change through scientific research, public advocacy, technological innovation and private sector collaboration. For more information please visit www.catf.us."} +{"text": "TORONTO, ONTARIO--(Marketwired - April 18, 2013) -\nNOT FOR DISTRIBUTION TO U.S. NEWSWIRE SERVICES OR FOR DISSEMINATION IN THE UNITED STATES\nTrimel Pharmaceuticals Corporation (TRL.TO) (the \"Company\" or \"Trimel\") is pleased to announce that in connection with its previously announced public offering, it has entered into an underwriting agreement with a syndicate of underwriters led by RBC Capital Markets and including D&D Securities Inc. and Paradigm Capital Inc. (collectively, the \"Underwriters\") to sell 50,000,000 common shares of the Company (the \"Common Shares\") at a price of $0.80 per Common Share for aggregate gross proceeds of $40.0 million. No warrants of the Company will be offered as part of the transaction.\nThe Company has also granted the Underwriters an option to cover over-allotments and for market stabilization purposes (the \"Over Allotment Option\"), which will allow the Underwriters to purchase up to an additional 7,500,000 Common Shares. The Over Allotment Option may be exercised at any time up to 30 days following the closing of the offering.\nThe Company intends to use the net proceeds from the sale of Common Shares to pay for the costs of completing the CompleoTRT™ New Drug Application, payment of certain milestone payments related to CompleoTRT™, manufacturing scale-up costs and finished goods production related to CompleoTRT™, costs of Tefina™ clinical trials, maintenance of cash amounts to remain in compliance with the Company's existing credit facilities, and for general corporate purposes.\nThe Company will file a final prospectus in each of the provinces of Canada, other than Québec, in connection with the offering. Such prospectus will be available on SEDAR at www.sedar.com.\nThe Offering is expected to close on or about April 24, 2013 and is subject to certain customary conditions and regulatory approvals, including the approval of the Toronto Stock Exchange.\nThis press release does not constitute an offer of securities for sale in the United States or to \"U.S. persons\" (\"U.S. persons\"), as such term is defined in Regulation S promulgated under the United States Securities Act of 1933, as amended (the \"U.S. Securities Act\"). The securities being offered have not been, nor will be, registered under the U.S. Securities Act or any state securities laws, and may not be offered or sold in the United States or to U.S. persons absent registration or an applicable exemption from such registration requirements.\nTrimel Pharmaceuticals Corporation (TRL.TO) - Trimel is a specialty pharmaceutical company actively developing medications for male hypogonadism, female sexual dysfunction and various respiratory disorders. CompleoTRT™, a product utilizing Trimel's licensed bioadhesive intranasal gel technology, has successfully completed its pivotal Phase III study for the treatment of male hypogonadism, a condition commonly referred to as \"Low T\", and Trimel is preparing to file its New Drug Application with the FDA in the second quarter of 2013. For more information, please visit www.trimelpharmaceuticals.com.\nNotice regarding forward-looking statements:\nInformation in this press release that is not current or historical factual information may constitute forward looking information within the meaning of securities laws. Implicit in this information, are assumptions regarding our future operational results. These assumptions, although considered reasonable by the Company at the time of preparation, may prove to be incorrect. Readers are cautioned that actual performance of the Company is subject to a number of risks and uncertainties, and could differ materially from what is currently expected as set out above. For more exhaustive information on these risks and uncertainties you should refer to our amended and restated preliminary short form prospectus dated April 3, 2013 which is available at www.sedar.com. Forward-looking information contained in this press release is based on our current estimates, expectations and projections, which we believe are reasonable as of the current date. You should not place undue importance on forward-looking information and should not rely upon this information as of any other date. While we may elect to, we are under no obligation and do not undertake to update this information at any particular time, whether as a result of new information, future events or otherwise, except as required by applicable securities law.\nTrimel Pharmaceuticals Corporation\nKenneth G. Howling\nChief Financial Officer"} +{"text": "hRaw.from_single(task, params.file, timings=request.context.metrics.timings)\n out_batch = await _transcribe(in_batch, audio_len_seconds)\n\n request.context.metrics.audio_input_size_bytes = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_BYTES, 0\n )\n request.context.metrics.audio_input_size_samples = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SAMPLES, 0\n )\n request.context.metrics.audio_input_size_seconds = audio_len_seconds = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SECONDS, 0\n )\n request.context.metrics.audio_input_size_speech_seconds = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SPEECH_SECONDS, 0\n )\n request.context.metrics.audio_input_seconds_per_second = (\n _audio_input_running_duration.add(audio_len_seconds) / _audio_input_running_duration.window_seconds\n )\n\n out_batch.timings.add_timestamp(TimingType.POSTPROCESSING_STARTED, time.time())\n out_batch.timings.add_latency(LatencyType.POSTPROCESSING_QUEUED_MS)\n\n await _return_transcription(request, response, params, out_batch, audio_len_seconds)\n\n\napp.add_route(\"/v1/audio/translations\", TranslationsResource())\n\n\nasync def _align(\n batch: Batch,\n duration_sec: float,\n params: AlignmentParams,\n) -> Union[TranscriptBatch, AlignedTranscriptBatch]:\n try:\n # Map to emissions\n package = await _inference_client.process(batch.task.id, batch, EmissionBatch)\n\n # Pull transcription from client input\n batch = params.transcribe(package.batch)\n\n # Map to alignment\n output_type = AlignedTranscriptBatch\n package = await _inference_client.process(batch.task.id, batch, output_type)\n\n # Postprocess\n text = TranscribeText.merge([t for _, t in sorted(package.batch.texts.items())])\n batch = replace(package.batch, texts={0: text})\n refine_alignment(text, duration_sec)\n\n except NoVoiceDetectedException as e:\n raise UserError(str(e)) from e\n return batch\n\n\nclass AlignmentsResource:\n async def on_post(self, request: Request, response: Response):\n params = await parse_falcon_media(request, AlignmentParams)\n params.file = await download_or_bytes(params.file)\n\n request.context.metrics.timings.add_timestamp(TimingType.RX_FINISHED, time.time())\n request.context.metrics.timings.add_latency(LatencyType.RX_MS)\n\n request.context.metrics.api_type = \"audio.alignments\"\n\n # Build task\n request_id = build_request_id(request)\n task = build_audio_task(request_id, \"align\", params)\n task.do_word_timestamps = True\n\n if request.get_header(\"fireworks-test-request\") in {\"true\", \"True\"}:\n out_batch = AlignedTranscriptBatch.from_text(task=task, text=_FAKE_RESPONSE_TEXT, avg_logprob=0.0)\n out_batch.timings = request.context.metrics.timings\n audio_len_seconds = 0.0\n else:\n audio_len_seconds = await _load_audio_duration(request, params.file)\n # Transcription batch\n in_batch = AudioBatchRaw.from_single(task, params.file, timings=request.context.metrics.timings)\n out_batch = await _align(in_batch, audio_len_seconds, params)\n\n request.context.metrics.audio_input_size_bytes = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_BYTES, 0\n )\n request.context.metrics.audio_input_size_samples = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SAMPLES, 0\n )\n request.context.metrics.audio_input_size_seconds = audio_len_seconds = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SECONDS, 0\n )\n request.context.metrics.audio_input_size_speech_seconds = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SPEECH_SECONDS, 0\n )\n request.context.metrics.audio_input_seconds_per_second = (\n _audio_input_running_duration.add(audio_len_seconds) / _audio_input_running_duration.window_seconds\n )\n\n out_batch.timings.add_timestamp(TimingType.POSTPROCESSING_STARTED, time.time())\n out_batch.timings.add_latency(LatencyType.POSTPROCESSING_QUEUED_MS)\n\n await _return_transcription(request, response, params, out_batch, audio_len_seconds)\n\n\napp.add_route(\"/v1/audio/alignments\", AlignmentsResource())\n\n\nclass StreamingSttResource:\n _initialized = False\n\n def __init__(self):\n self._count = 0\n\n @classmethod\n async def init(cls):\n if not cls._initialized:\n logger.info(f\"Creating rendezvous session\")\n\n cls._rendezvous_egress_queue = await _stt_streaming_client.create_session(\n \"randezvous\",\n "} +{"text": "World Series game 4 began as another pitchers’ duel as both Yankee starter ace lefthander C.C. Sabathia and Phillies starter Joe Blanton battled on Sunday as the Yanks led 4-2 in the game through six innings. When 2nd baseman Chase Utley cut into the Yanks lead with a 2 out solo homer on Sabathia’s 1-2 pitch in the seventh, manager Girardi pulled immediately C.C. for bullpen relief. The Phils got new life on tying the game in the eighth inning on 3rd baseman Pedro Feliz’s homer off of Joba Chamberlain on a 2 out, full-count pitch. Closer Brad Lidge got the first 2 outs in the ninth before giving up a full-count base hit to leftfielder Johnny Damon. What occurred after was an apparent mental lapse which cost the Phils the game, and quite possibly the series, which the Yanks now lead by 3 games to 1, as Damon went on to steal 2nd and 3rd on the same play as the Yankees beat the Phillies in the ninth by a 7-4 score after A-Rod’s winning double in World Series game 4.\nWriters such as Yahoo’s Jeff Passan have taken to second-guessing manager Charlie Manuel for not starting Lee in game 4, although I am totally in agreement with Manuel with holding Lee back for game 5 on a full 4 days rest. Blanton’s performance retiring 9 Yanks in order from the second through fifth innings, after being touched for 2 first inning runs, vindicates Manuel’s decision. Further, Blanton, like Lee in game 1, kept the ball in the park and struck out 7 in his six innings of work.\nThe far bigger question these writers ought to be asking is how the NL pennant winners either suffered collective mental lapse or weren’t prepared with a coverage scheme in their shift on Teixeira.\nA talk-backer responding to AP sportswriter Ben Walker’s game recap for Yahoo sports had this take:\nThe game–and perhaps the entire 2009 World Serious–boiled down to Damon’s heads-up double-steal on the same play. The shift was on against Teixeira with Feliz covering second base. So who was covering third base? NOBODY! And Damon noticed. Afterwards, Phillie manager Charlie Manuel said either the pitcher or the catcher HAVE to cover third base on that play. In fact, Manuel said the catcher (Ruiz) should’ve gotten to third base … but, personally, I think Lidge should’ve been there. After all, the pitcher is closer to third base than the catcher!\nThe lack of coverage at 3rd base is more responsible than anything else, for how the Phils lost game 4 and why they now sit with a 1-3 deficit to the Yankees. Damon doesn’t reach 3rd and Lidge isn’t flustered and probably doesn’t hit Teixeira. And maybe, the game doesn’t get to A-Rod and a Yankees lead. Of course, maybe Teixeira goes ballpark on Lidge, or maybe any number of other things. But again, to repeat what the talk-back cited here noting: “Lidge should’ve been there. After all, the pitcher is closer to third base than the catcher!”\nI would agree with the talk-back. Lidge cooked his own goose on the play. He started 1st baseman Mark Teixeira with a ball after Damon’s single. After Damon stole the two bases on the same play, perhaps due to Lidge’s own mental lapse, he got sooo flustered that he hit Teixeira on his next pitch — runners on 1st and 3rd base. Now he’s facing dangerous 3rd baseman Alex Rodriguez who Blanton managed to confound through 3 at-bats, striking him out once. A-Rod took a strike and then nailed Lidge’s next pitch for a double driving in the game-winning run as the Yanks took a 5-4 lead.\nThe whole Damon play was reminiscent of leftfielder Jayson Werth’s steal of home on the Dodgers back in May. That play occurred when Werth noticed catcher Russell Martin’s nonchalant slow tosses back to his pitcher.\nCatcher Jorge Posada followed slamming Lidge’s 2-2 delivery for a single to left centerfield plating 2 insurance runs. Future Hall of Fame closer Mariano Rivera took care of the rest shutting down the Phillies on 8 pitches; 2 grounders and a pop up — all to 1st base.\nThe Yankees had Blanton on the ropes in the first inning as shortstop Derek Jeter opened the game with an infield single and Damon followed with a double to rightfield putting Jeter on 3rd base. Teixeira grounded out to 1st base with Jeter scoring on the play and Damon moving to 3rd. A-Rod was hit by Blanton’s next pitch and Posada followed with a sacrifice fly scoring Damon with the 2nd run. Blanton finally retired the side on a fly ball to centerfield and cruised thru the second through fifth innings.\nThe Phils got a run back against Sabathia in their first inning on back-to-back doubles by centerfielder Shane Victorino and 2nd baseman Chase Utley. They tied the game in the fourth inning as 1st baseman Ryan Howard finally connected, after a string of strikeouts, leading off the inning with a single to centerfield. On a 2-1 pitch to Werth, Howard stole 2nd base. Werth grounded out to 3rd on the ensuing pitch. After Leftfielder Raul Ibanez flied out for the 2nd out, Feliz singled to leftfield scoring Howard. Feliz took 2nd base on an error by catcher Posada on the relay. Sabathia intentionally walked catcher Carlos Ruiz but both were stranded as Sabathia struck out Blanton to end the inning.\nThe tie didn’t last long as Yanks regained the lead scoring twice on a walk and 3 singles. With the score 4-2 Yankees, Utley solo homered with 2 outs in the seventh ending Sabathia’s night. Feliz duplicated in the eighth inning with a solo blast after Chamberlain got Werth and Ibanez on strikes. With the game knotted at 4-4, the scene was set for Lidge, the mental lapse resulting in Damon’s 2 stolen bases on the same play and the Yankees’ winning 3 run rally.\nChamberlain, who blew the save on Feliz’s homer in the eighth inning, was credited with the win while Lidge, who came unglued in the ninth, was charged with the loss.\nIn Monday’s game 5, Phillies ace lefthander Cliff Lee will make his 2nd World Series start and will try to keep the Phils alive. Lee is opposed by A.J. Burnett, who like Sabathia, will be going on 3 days rest."} +{"text": "New city firehouse slashing response times\nPublished: Thursday, June 12, 2014 at 4:30 a.m.\nLast Modified: Wednesday, June 11, 2014 at 8:46 p.m.\nLess than two weeks after becoming operational, Hendersonville's new Fire Station 2 is already cutting response times within its new district by roughly half, fire officials say.\nThe $3 million, nearly 11,000-square-foot fire station on Sugarloaf Road opened for business June 2, although Cooper Construction is still doing some interior work, said Fire Chief Dorian Flowers.\n\"They've still got a punch list they're working on, but we felt it was more important for us to get in here and start providing a better level of service and quicker response times,\" Flowers said. \"They're working around us as much as we're working around them.\"\nCurrently manned by a three-person crew, the new firehouse is served by Engine 2 — which used to be housed at the old station on North Main Street — along with a 23-year-old engine kept there as a reserve.\n\"They've been over there about a week and a half and we've seen our response times cut in half for that area,\" said Deputy Fire Chief Joe Vindigni. \"Where it was taking us about four minutes to get there from this side of town, we're now seeing it in 2 minutes.\"\nFlowers said the fire station responded to a medical call last week in Wolfpen, \"and our engine was on the scene in six, seven minutes from the time of dispatch. We were on scene about seven minutes before EMS.\"\nFire engines responding to calls on the east side of the city have traditionally contended with heavy traffic on Four Seasons Boulevard, Flowers said. \"Or, when we were out on that side of town on a call, we had to fight traffic coming back into town,\" he added.\nNow, engines leaving the Sugarloaf firehouse will cover a new district, which encompasses everything from the intersection of Four Seasons and North Blue Ridge Avenue to the far eastern city limits near Morningside Lane. The district also covers I-26 and Upward Road.\nBut increasing response times and service levels were only two reasons city leaders chose to build the new firehouse, Flowers said. The state fire marshal's office also indicated to the city in 2009 that the city risked lowering its insurance rating if it didn't built a new fire station.\n\"They determined that because of the size and the layout of the city, it was determined that the city would have to open a second station or risk dropping its ISO rating,\" Flowers said. The city currently has an Insurance Service Office rating of Class 4, which puts it in the top 10 percent of the state's 1,256 fire departments.\n\"We're in real good company,\" Flowers said. But without a second station to maintain its ISO rating, the city flirted with a drop of one or two points when it was re-rated. Staying at Class 4 or 5 could potentially save a city resident with a $200,000 home between $200 and $300 a year on insurance premiums, he said.\nThe new fire department was designed with a lifespan of 70 years, Flowers said, and incorporated several features lacking at Station 1 on North Main: a meeting room capable of hosting 47 personnel during training; more storage for turnout gear and a workout room for physical fitness.\nFlowers said one of the biggest killers of firefighters nationwide are heart attacks and other cardiac problems, so physical fitness is a necessity, not a luxury.\n\"It's our policy that every day they work, they've got to work out,\" he said. \"It's a very stressful job anyway. We average 8-10 calls a day and some days we've had as many as 26 calls in a 24-hour period, so if you do the math, those firefighters don't get much sleep. Helping them to maintain a level of physical fitness allows us to provide a better level of service.\"\nAnother new feature built into Station 2 is a decontamination room, where chemicals and toxic soot can be washed safely from turnout gear without mixing it with bunkroom linens or other gear. Architects designed the room to serve double-duty, incorporating a manhole cover and narrow vent so firefighters can train for confined space rescues.\nAn official open house allowing the public to tour the finished station will be held from 4 to 7 p.m. Friday, Aug. 8.\nReach Axtell at firstname.lastname@example.org or 828-694-7860."} +{"text": " StreamingTranscriptionSessionParams(\n request_id=\"randezvous\",\n request_params=StreamingTranscriptionParams(),\n ),\n )\n ack: Optional[CreateSessionResponse] = None\n while not ack:\n logger.info(f\"Waiting for rendezvous STT session create ack...\")\n event = await cls._rendezvous_egress_queue.get(True, 10)\n if isinstance(event, CreateSessionResponse):\n ack = event\n\n logger.info(f\"Rendezvous session created\")\n cls._initialized = True\n\n @classmethod\n async def terminate(cls):\n if cls._initialized:\n logger.info(f\"Terminating rendezvous session\")\n await _stt_streaming_client.terminate_session(\"randezvous\")\n\n ack: Optional[TerminateSessionResponse] = None\n while not ack:\n logger.info(f\"Waiting for rendezvous STT session terminate ack...\")\n event = await cls._rendezvous_egress_queue.get(True, 10)\n if isinstance(event, TerminateSessionResponse):\n ack = event\n\n logger.info(f\"Rendezvous session terminated\")\n\n @cached_property\n def _tracer(self):\n return TraceLogger()\n\n def _build_session_id(self, request: Request) -> str:\n request_id = build_request_id(request)\n session_id = f\"{request_id}:{self._count}\"\n self._count += 1\n return session_id\n\n def _deanonymize_params(self, params_dict: Dict) -> Dict:\n clone = copy.deepcopy(params_dict)\n if \"prompt\" in clone:\n clone[\"prompt\"] = \"\"\n return clone\n\n def _validate_params(self, params: StreamingTranscriptionParams):\n diarization_validator = ResourceValidator(audio_model_dir=_args.model_dir)\n if params.diarize is True and not diarization_validator.validate_diarization_model_resources().is_valid():\n raise UserError(\"Diarization model resources are not valid\")\n\n async def on_websocket(self, request: Request, ws: WebSocket):\n global _stt_streaming_client\n session_id = self._build_session_id(request)\n egress_queue = None\n\n # Tracking\n request.context.metrics.api_type = \"audio.transcriptions.streaming\"\n last_rate_limit_report_bytes = None\n cumulative_bytes_received = 0\n stream_params = {}\n account_id = request.headers.get(\"x-fireworks-account-id\", \"unknown\")\n timeout = _args.account_session_timeout.get(account_id, None)\n\n try:\n # Opening trace\n if AUDIO_STREAMING_STT_TRACE_ENABLED:\n self._tracer.log(\n process_id=type(self).__name__,\n thread_id=f\"{account_id}/{session_id}\",\n event_id=\"on_websocket\",\n start=time.time(),\n metadata=self._deanonymize_params(request.params),\n )\n\n # Init stream\n params = await self._parse_params(request)\n # TODO:Temporarily disable RX_FINISHED timing for streaming STT to avoid skewing metrics.\n # Need to find a proper way to handle RX_FINISHED timing for streaming STT later.\n # request.context.metrics.timings.mapping[TimingType.RX_FINISHED] = time.time()\n\n self._validate_params(params)\n\n egress_queue = await self._create_session(ws, session_id, params, timeout)\n await ws.accept()\n logger.info(f\"STT stream WebSocket accepted. {session_id=} {account_id=}\")\n\n # IO proxies\n async def handle_ingress():\n logger.info(f\"STT stream ingress started. {session_id=} {account_id=}\")\n nonlocal last_rate_limit_report_bytes, cumulative_bytes_received, stream_params\n iterations = 0\n\n while not ws.closed:\n iterations += 1\n data = await ws.receive_media()\n if not data:\n continue\n\n if isinstance(data, Dict): # Command ingress\n if \"checkpoint_id\" in data: # deprecated\n event = SttInputTrace(trace_id=data[\"checkpoint_id\"], old_format=True)\n else:\n event = serialization.loads(data, SttIngress)\n\n if isinstance(event, SttInputTrace):\n event.timings = {time.time(): \"ingress\"}\n try:\n # TODO: remove this hack once the metrics hack around audio seconds is refactored.\n # Hack: Exclude non-timestamp data\n create = float(event.trace_id)\n if create > time.time() - 3600:\n event.timings[create] = \"create\"\n except Va"} +{"text": "My mother lives in a very nice retirement community. Typically for an affluent suburb, the residents are rich and white, while the employees are low-income and represent a variety of races (white, Asian, black, and Hispanic). They’re not downtrodden employees. Many have been there for decades and have strong bonds with the elderly in their care. But they’re definitely not middle or upper class. Economically, they’re working or lower class.\nHere’s another broad statement I can make about the community in which my mother lives: Almost none of the affluent residents smoke cigarettes, while a high percentage of the poorer employees smoke. I know that my statement about the employees is true because I’m there often and I always see a rotating crop of employees hunkered down in the garage or standing out on the streets smoking.\nI have to admit here to hating cigarettes. (And yes, I know that “hate” is a very strong word.) I have an unusually sensitive sense of smell, and cigarettes are very high on my list of unpleasant odors. Just to give you an idea how much I hate the smell, back in the early 1980s, when I’d return to my flat in England after a night of dancing (not drinking, just dancing), I was so repulsed by the cigarette smell that clung to me that I’d instantly take a shower. This doesn’t sound like a big deal until you realize that I was doing this between November and March, when the flat had no hot water after 10 p.m., and the shower water was probably just above freezing. I hate cold water, but I hate the smell of cigarettes even more.\nMy loathing for cigarettes means that I’ve always had two thoughts when I’ve seen the employees puffing away. My first thought is, “God, I hate that smell.” My second thought, always, is “They must be spending a huge percentage of their income to support that habit.”\nToday, my thoughts went one step further. Yes, they are spending a huge percent of their income, but they’re not actually spending it on the cigarette. Instead, they’re spending it on the taxes for that cigarette. Here in California, cigarettes are taxed at a very high rate:\nCigarettes are subject to both the cigarette tax and the cigarette and tobacco products surtax. The tax and surtax are paid by distributors through the use of tax stamps, which are purchased from the Board of Equalization (BOE) and affixed to each package of cigarettes before distribution. The cost of the stamp includes both the cigarette tax and the surtax. Currently, each stamp costs 87 cents per pack of 20 cigarettes, comprising 12 cents for the cigarette tax and 75 cents for the combined surtax.\nTobacco products, not including cigarettes, are subject only to the cigarette and tobacco products surtax. Tobacco products include all forms of cigars, smoking tobacco, chewing tobacco, and snuff, as well as other products containing at least 50 percent tobacco. Effective July 1, 2011, through June 30, 2012, the rate is 31.73 percent.\nI don’t know whether the consumer has to pay the usual county sales tax on top of all those state taxes, but I assume he (or she) does. If that assumption is correct, you can add on an additional 8% or so to every cigarette pack sold in California, depending on the sales tax rate.\nThis is a staggeringly high tax rate. Worse than that, it’s a hugely regressive tax rate, meaning that it falls most heavily on those who can least afford it. The regression is hidden, because it looks as if everyone who purchases cigarettes, rich or poor, pays the same “sin” tax for the product. In fact, though, rich people in California have mostly given up on smoking. This particular sin tax is passing them right by. Poor people, whether they smoke because of peer pressure to smoke, or because they’re immune to government pressure to quit smoking, or because it’s a real pleasure in a life too financially constrained to have many pleasures, end up paying that tax. Worse, because the government relies on this sin tax to fund health programs and education, as people quit, they keep raising the tax to stabilize revenue.\nI hate cigarettes. What I hate even more, though, is a government that funds itself by using regressive taxes. It’s a sleazy practice. How much better, of course, if we would fall back on a non-religious version of tithing, as Dr. Carson so gracefully suggested in the speech he gave before a manifestly bored and uncomfortable President Obama."} +{"text": "A recent email exchange.....\nI strongly urge you to approve and vote yes on the house continuing resolution 2013 bill passed by the house and is now before the senate that fully funds the government and protects the full credit of the United States but delays and de-funds the Affordable Care Act.\nYou must understand that Obamacare is undermining American workers and selling out hard fought for union benefits. It is not fair for businesses to reduce workers' hours to survive. It is time to de-fund the affordable Care Act until such a time when it can be repealed and things can be straightened out and workers protected. I urge you please to delay funding for Obamacare now.\nResponse from Senator Markey:\nThank you for contacting me about the Affordable Care Act (ACA) and H.J. Res. 59 recently approved by the Senate. It was good to hear from you.\nIn June of 2012, the Supreme Court of the United States ruled that ACA is constitutional. This ruling is an historic victory for Americans across the country that will finally have much-needed healthcare security. ACA addresses our nation's growing healthcare costs, provides coverage for millions of previously uninsured Americans, and prevents insurance companies from denying coverage to those who need it most.\nUnder the ACA, Members of Congress and their staffs will be covered by exactly the same plans that will extend health insurance to millions of Americans next year. They will have to buy coverage in the same marketplaces that will begin enrolling new customers on October 1st. These marketplaces are expected to help 24 million uninsured Americans obtain coverage.\nIf the government shuts down, hundreds of thousands of Massachusetts residents would have services and benefits shut off.\nOur seniors and the nearly 1.2 million recipients of Social Security in Massachusetts could be denied services because of the shutdown. And applications for new benefits would be delayed.\nA shutdown could delay military pay and hurt military families. In Massachusetts, there are more than 3,000 active duty personnel, more than 15,000 Reserve and National Guard members and almost 7,000 civilians who would be affected by a shutdown. The Department of Defense estimates that during a shutdown nearly half of the civilian workforce would be sent home without pay, while the rest would continue to work for delayed pay. Service members would also stay on duty without pay.\nFor those receiving energy assistance through the Low Income Home Energy Assistance Program (LIHEAP), the timing of federal funding is critical due to the upcoming winter. Any extended shutdown of the government this year could affect funding availability for the approximately 198,000 Massachusetts residents who receive this assistance.\nA government shutdown could force Head Start Centers around the country to close. During 2012, 29 Head Start programs throughout Massachusetts served approximately 16,500 children and families. Massachusetts Head Start programs were already reeling from funding reductions due to sequestration, with more than 2,000 kids estimated to have been removed from the program.\nDuring the past 11 months, Massachusetts banks made more than 2,000 SBA loans worth more than $602 million to small businesses. A shutdown would put a stop to this critical source of small business credit until the government resumes operation.\nThe processing of new educational, pay, and pension benefits for the 394,000 Massachusetts veterans could be delayed. During the 1995-96 shutdowns, more than 400,000 veterans nationwide saw their disability benefits and pension claims delayed, while educational benefits were delayed for 170,000 veterans.\nColleges could be unable to draw down and disburse to students any campus-based program awards such as work-study or the Federal Perkins Loan Program if the government shuts down on Tuesday. Last school year, 42,000 students in Massachusetts utilized work-study while Perkins impacted over 24,000 students in the Commonwealth.\nIn a shutdown, the more than 400 National Park Service sites nationwide could close. This includes 18 sites in Massachusetts, including Faneuil Hall, John F. Kennedy's birthplace, the Adams National Historical Park, Salt Pond Visitor Center on Cape Cod, and Minute Man National Historical Park.\nAfter the Fiscal Year 1996 shutdown, a survey showed that over 20 percent federal contractors were affected and many employees of federal contractors reportedly were furloughed without pay. In Fiscal Year 2011, 5,430 Massachusetts businesses received approximately $16.7 billion in federal contracts. A shutdown similar to the one in 1996 could affect more than 1,000 Massachusetts businesses and their employees, delaying contract awards and furloughing employees.\nConcerned Citizen’s response:\nSenator, you claim,\n\"Under the ACA, Members of Congress and their staffs will be covered by exactly the same plans that will extend health insurance to millions of Americans next year. They will have to buy coverage in the same marketplaces that will begin enrolling new customers on October 1st. These marketplaces are expected to help 24 million uninsured Americans obtain coverage. \"\nSir I Say Your Lying\nBecause President Obama recently issued a special rule for Congress and congressional staff to get a special subsidy to purchase health insurance on the Obama care Exchange which is unavailable to every other American at similar income levels, means you will not be stung by the financial poison of this law as will the remainder of the American People\nWhat this means is\nCongress's health-care premiums will not rise, but the American people's will.\nMembers of Congress will be able to afford to keep their health-insurance plan, but the American people may be kicked off theirs.\nMembers of Congress will be able to afford to keep their doctors, but the American people will have to find a new one.\nYou sir are DESPICABLE\nDEFUND THIS OBAMA MESS NOW OR START TYPING YOUR RESUME"} +{"text": "lueError:\n pass\n\n await _stt_streaming_client.send(session_id, event)\n continue\n\n if isinstance(data, bytes):\n cumulative_bytes_received += len(data)\n last_rate_limit_report_bytes, accepted = await self._report_usage(\n account_id=request.headers.get(\"x-fireworks-account-id\", \"\"),\n last_rate_limit_report_bytes=last_rate_limit_report_bytes,\n cumulative_bytes_received=cumulative_bytes_received,\n request=request,\n stream_params=stream_params,\n session_id=session_id,\n )\n\n if not accepted:\n if VERBOSE:\n logger.info(f\"STT stream WebSocket closed with error. {session_id=} {account_id=}\")\n logger.info(\n f\"STT stream WebSocket closed with rate limit exceeded. {session_id=} {account_id=}\"\n )\n await ws.close(code=4290, reason=f\"Rate limit exceeded\")\n break\n await _stt_streaming_client.send(session_id, data)\n\n logger.info(f\"STT stream ingress finished. {session_id=} {account_id=} {iterations=}\")\n\n async def handle_egress():\n logger.info(f\"STT stream egress started. {session_id=} {account_id=}\")\n iterations = 0\n\n while not ws.closed:\n iterations += 1\n e: Optional[EgressEvent] = await egress_queue.get(True, 5)\n if not e:\n continue\n\n if isinstance(e, TerminateSessionResponse):\n break\n\n # Command egress\n if isinstance(e.payload, BaseModel):\n if isinstance(e.payload, SttOutputTrace):\n if e.payload.internal:\n continue\n\n try:\n trace = e.payload\n if trace.timings:\n trace.timings[time.time()] = \"egress\"\n trace.timings = dict(sorted(trace.timings.items()))\n\n reverse = {k: t for t, k in trace.timings.items()}\n if \"ingress\" in reverse:\n took = max(trace.timings) - min(trace.timings)\n if took > float(os.environ.get(\"TRACE_LATENCY_THRESHOLD_S\", 10)):\n logger.warning(\n f\"High trace latency. {session_id=} {took=:.3f}s. Timings: {json.dumps(trace.timings, indent=2)}\"\n )\n except Exception:\n logger.exception(f\"Failed to process timing of egress trace\")\n\n e.payload.timings = None\n\n if e.payload.old_format: # Backward compatibility\n command_result = {\"checkpoint_id\": e.payload.trace_id}\n else:\n command_result = serialization.dumps(e.payload, filter_none_=True)\n else:\n command_result = serialization.dumps(e.payload, filter_none_=True)\n\n await ws.send_text(json.dumps(command_result))\n continue\n\n # Error egress\n if e.exception:\n if isinstance(e.exception.with_traceback(), (UserError, ValueError)):\n raise UserError(str(e.exception)) from e.exception.with_traceback()\n else:\n raise RuntimeError(str(e.exception)) from e.exception.with_traceback()\n\n # Data egress\n batch: Union[TranscriptBatch, AlignedTranscriptBatch] = e.payload\n if not batch or not batch.texts[0].text:\n continue\n segments = batch.texts[0].segments\n if batch.task.do_word_timestamps:\n duration = segments[-1].audio_end - segments[0].audio_start\n else:\n duration = None\n await _return_transcription(request, ws, params, batch, duration)\n await self._report_metrics(copy.deepcopy(request.context.metrics), session_id)\n\n logger.info(f\"STT stream egress finished. {session_id=} {account_id=} {iterations=}\")\n\n await asyncio.gather(handle_ingress(), handle_egress("} +{"text": "Let’s Go Rock Collecting\nBefore going on your field trip, be sure and turn in your tour permit and get permission slips from the parents. You will need to be aware of the clothing you wear. You will need to bring lunch, water, collecting bag, notebook labels, tools, goggles and face shields and a FIRST AID KIT.\nClothes: Wear old comfortable clothes you would wear hiking. Ankle high hiking shoes will help prevent bruises from contact with sharp stones. Collecting bag: A knapsack type collecting bag is ideal. Use one with pockets to hold maps, notebooks, small tools and labels. Use lunch-size brown bags to hold specimens. Take along newspaper to wrap the rocks in first.\nField notebooks and labels:\nAs you collect each specimen, give it a number. Put the labels on the rock before you wrap it up. In a small pocket notebook list the following information:\nLater at home you can enter the information in your permanent record.\nFirst Aid Kit :\nAny trip away from home requires a first aid kit. Keep one handy.\nStalagmites are mineral formations on the floor of a cave.\n2 cups water, 1/2 cup Epsom salts, heavy cord, tray or board\nMake Your Own Fossils\nTo make your own fossils, you need a small cardboard box, clay, plaster, and a shell.\nMake A Volcano\n12 inch-square wood for base\nRed food color\nNewspaper and wallpaper paste\nWater, Salt, Nail, a small saucepan, spoon, fine sand (about one quart), a plastic or cardboard container, aluminum food container.\nPour one cup of water into a small saucepan and heat it on the stove over medium heat. As the water heats, add the salt and mix well. Continue adding salt and mixing it well until no more will dissolve in the water. Remove the pan from the heat. Place the sand in a deep, plastic container that is large enough for mixing. Pour the salt solution into the sand and mix thoroughly. The sand should be completely moistened.\nPunch tiny holes into the bottom of an aluminum food container with a nail. Press the sand and salt mixture into the container and pour away any excess water. Keep this experiment in a warm, dry spot for several days. After the sand has dried out, lift the chuck of material from the container and examine it. You have just made sandstone.\nThe sandstone just made was created in much the same way that nature makes it. The salt clings to the particles of the sand and holds them together. If you find sandstone in nature, you will find it is made of several layers. This occurs when one sandy sediment is laid on top of another. These layers are pressed together over time to make the rock you see today.\nThe Earth Bowl\nThe Earth Bowl is a three dimensional, edible representation of the earth in cross section. (If time allows, have scouts participate in measuring the ingredients and constructing the Bowl.)\n4 oz. pkg. raspberry gelatin dessert\n4 oz. pkg. instant vanilla pudding\n8 oz. pkg. black cherry gelatin dessert\n4 cups boiling water (can be boiled and kept hot in thermos)\n4 cups cold water\n3 mixing bowls\n12 graham crackers\n1/2 cup melted margarine\n1/4 cup granulated sugar\n10\" diameter clear glass bowl\n(Small paper cups and spoons for after discussion)\nMake the gelatin desserts in separate bowls and according to the directions on the side of the box. Put in refrigerator to set. Have the Scouts crush the graham crackers into fine crumbs. This can be done by putting the crackers in a zip-lock bag and having the Webelos pound the bag until the crackers are in very fine crumbs.\nMix the graham cracker crumbs with the melted margarine and granulated sugar. Press the mixture on the bottom and along the sides of the glass bowl to form a crust. Set aside.\nAfter two hours the gelatin will set. Spoon the black cherry into the graham cracker crust. Form it so that there is about a five inch pocket in the middle.\nNext, spoon in the lemon gelatin, leaving a two inch hole. Into this center, spoon the raspberry gelatin.\nAllow time for each Scout to take a look at the Earth Bowl and discuss its layers. Then dig in!\nGeologist QuizTrue or False"} +{"text": "July 15, 1999\n\"Every inch a star!\" -- The New York Times\n\"A phenomenon\" -- The New Yorker\n\"A star is born with Lea Delaria.\" -- Entertainment Weekly\n...the first openly gay comic to appear on national television (Arsenio, 1993), she has now busted a move into the world of theater and cabaret! The stocky, cocky, loud-mouthed Italian lesbian stand up comic, musician, actor, singer and civil rights activist has performed her one-woman shows across North America, Europe, Australia and New Zealand. She has been on Rolling Stone's \"Hot List,\" been featured in articles in People, Time, Newsweek, Out Magazine, and Entertainment Weekly. She has played regular roles on Matlock and The John Laroquette Show and can be seen in several movies including The First Wives' Club, Homo Heights, and Edge of Seventeen. A native of Belleville, Illinois and a product of Catholic schooling (\"mandatory training for stand-up comedy\", she explains), Lea is not known for her demure demeanor. Her critically-acclaimed performance in the New York Shakespeare Festival's revival of \"On the Town\" last year prompted the New York Times to dub her \"an Ethel Merman with attitude.\" Lea's one-woman show, \"It's Delightful, It's Delicious, It's DeLaria!\" is currently playing to sold-out houses in major venues across the country. When not performing around the world Lea makes her home in Los Angeles where she is active in the lesbian/gay and women's communities -- and occasionally has sex.\nSo ... thinking of coming out ... in a comedy club? Wondering how Lea conquered everything from society's stigmas to stage fright? Wanna know what Arsenio's like?\nYou asked .. she answered!\nShygrrl asks: \"I'm a 15 year old lesbian in a small midwestern town who'll probably be disowned when/if I come out. I've always admired your candor about your own sexuality (and, well, everything else!) so I was wondering if you could tell me a little about your own experiences growing up/coming out. I feel like a big freak.\"\nLEA: \"I was basically disowned by my Italian Catholic parents when I came out. They didn't speak to me for 5 years. Over a course of time, however--mostly mostly through my rubbing their faces in it--they came around to a place of peace with who I am. After many more years, they actually accept it now. My experience has been that your parents love you and will eventually come around.\"\nLEA: \"Jodie Foster's bedroom. Or Sigourney Weaver's bedroom. No...wait...Uma Thurman's bedroom. No, Susan Sarandon's any room. And then Broadway. \"\nLEA: \"John Coltrane. He spent a lifetime trying to sound unique and to have his own style. As a jazz musician I find it very important to find my own style-- which is why it's very interesting that whenever reviewers review me, they compare me to a laundry list of other singers. We're talking everyone from Bjork to Ethel Merman. When I sing a particular song I try to remain true to its style. Unfortunately, when people here a certain style of song they equate it to a specific singer. When you hear a belter, you think Ethel Merman. When you hear a scat singer, you think Ella Fitzgerald. When you here atonal expressionistic jazz, you think Betty Carter. Now I do all of these things, so they compare me to all of those people. The reality is, I sound like me. I'm just able to sing in a variety of styles. And that's how I try to find my own. \"\nLEA: \"No, and it's gotten me in a lot of trouble! Once when I was in East Texas, it was during the Macarena craze and I was over it. I said, \"Yesterday I played the Macarena backwards, and it said 'I killed Selena.'\" I got so booed for that. And, of course, everyone knows about the Hillary comment...With me saying on the White House steps, \"Finally we have a first lady you can f*ck.\" Congress passed a law against saying \"f*ck\" on the White House steps as a result. My idea as far as comedy goes has always been to push the limits of what's acceptable for a woman to do or say or be. My hero in that would be Lenny Bruce, who teaches us that words have no meaning. It's the intent behind them that is what's important.\"\nLEA: \"Oh please...As a standup, I tried to change the world. As an entertainer, I try to entertain. And as a lesbian, I try to pick up the prettiest girl in the room. Not necessarily in that order.\"\nLEA: \"Well, now that depends doesn't it? I mean, do you only do windows? And...are you looking for a mommy or a daddy? Because I definitely fall into the daddy category! Plus I like to cook my own meals. But I'll definitely let you do the bathroom. When do I get the phone number?\"\nBreakup Girl created by Lynn Harris & Chris Kalb"} +{"text": "))\n\n except WebSocketDisconnected:\n logger.info(f\"STT stream WebSocket disconnected. {session_id=} {account_id=}\", exc_info=VERBOSE)\n finally:\n logger.info(f\"STT stream is terminating. {session_id=} {account_id=}\")\n\n # Closing trace\n if AUDIO_STREAMING_STT_TRACE_ENABLED:\n self._tracer.log(\n process_id=type(self).__name__,\n thread_id=f\"{account_id}/{session_id}\",\n event_id=\"on_websocket\",\n end=time.time(),\n )\n\n # Report usage\n last_rate_limit_report_bytes, _ = await self._report_usage(\n account_id=request.headers.get(\"x-fireworks-account-id\", \"\"),\n last_rate_limit_report_bytes=last_rate_limit_report_bytes,\n cumulative_bytes_received=cumulative_bytes_received,\n request=request,\n stream_params=stream_params,\n flush=True,\n session_id=session_id,\n )\n\n # Terminate session\n if egress_queue:\n try:\n await _stt_streaming_client.terminate_session(session_id)\n except NotFoundException:\n pass\n logger.info(f\"STT stream terminated. {session_id=} {account_id=}\")\n\n async def _report_metrics(self, request_metrics: RequestMetrics, session_id: str):\n request_metrics.http_code = 200\n\n request_metrics.timings.add_timestamp(TimingType.REQUEST_FINISHED, time.time())\n request_metrics.timings.add_latency(LatencyType.TX_MS)\n request_metrics.timings.add_latency(LatencyType.OVERALL_MS)\n\n latency_overall_ms = request_metrics.timings.latencies.get(LatencyType.OVERALL_MS, 0)\n if latency_overall_ms > WARNING_LATENCY_OVERALL_MS_THRESHOLD:\n logger.warning(\n f\"Increased overall latency: {latency_overall_ms:0.2f}ms > {WARNING_LATENCY_OVERALL_MS_THRESHOLD}ms. {session_id=}\",\n extra={\"json\": {\"latency_overall_ms\": latency_overall_ms, \"session_id\": session_id}},\n )\n\n _background_tasks.add(\n partial(\n metrics.report_request,\n request_metrics,\n is_log_struct=False, # Too verbose in streaming mode\n )\n )\n\n def _get_rate_limit_bytes(\n self,\n account_id: str,\n bytes_limit: int,\n connections_limit: float,\n account_streaming_limit_connections_override: Dict[str, float],\n ) -> int:\n # Override connections limit by account-specific limit\n if account_id in account_streaming_limit_connections_override:\n connections_limit = account_streaming_limit_connections_override[account_id]\n\n # Override bytes limit by connections limit\n if connections_limit is not None:\n bytes_limit = int(connections_limit * 16_000 * 2) # 16k 16bit mono audio\n\n return bytes_limit\n\n async def _report_usage(\n self,\n account_id: str,\n last_rate_limit_report_bytes: Optional[int], # bytes transcribed\n cumulative_bytes_received: int,\n request: Request,\n stream_params: Dict,\n flush: bool = False,\n session_id: Optional[str] = None,\n ) -> Tuple[float, bool]: # (updated last recorded time, accepted)\n new_bytes = (\n (cumulative_bytes_received - last_rate_limit_report_bytes)\n if last_rate_limit_report_bytes\n else cumulative_bytes_received\n )\n if new_bytes == 0:\n logger.info(\n f\"No new bytes to report. {account_id=} {session_id=} {last_rate_limit_report_bytes=} {cumulative_bytes_received=}\"\n )\n return (last_rate_limit_report_bytes, True)\n\n if flush or (\n last_rate_limit_report_bytes is None or new_bytes >= _args.streaming_connection_report_period_bytes\n ):\n accepted = True\n if _ratelimit_verifier is not None:\n try:\n with fireutil.log_time_if(\"Reporting rate limit\", took_more_than=0.1):\n rate_limit_response: RatelimitResponse = await asyncio.wait_for(\n _ratelimit_verifier.check_and_update(\n user_account=account_id,\n metric=_args.streaming_rate_limit_metric_name,\n cost=new_bytes,\n default_limit=self._get_rate_limit_bytes(\n account_id,\n _args.streaming_bandwidth_limit_bytes,\n _args.streaming_bandwidth_limit_connections,\n _args.account_streaming_limit_connections_override,\n ),\n ),\n timeout=_args.rate_l"} +{"text": "Hi folks so i'm back after taking quite a bit of time off. Had the unfortunate experience of my dad passing away recently. I truly believe that family comes first so i've been spending my time elsewhere. Thanks for your patients.\nVersions of Ubuntu have changed over the last year so i'm going to give you the run down of the latest version, called Ubuntu 12.10 (Quantal) onto your Beagleboard XM. This procedure will be very similar to installing 11.04 but i'm going to give some more broad answers so if links/URLs die and such you can find your way.\n-Beagleboard XM (mine is rev C)\n-Micro SD card (4GB or higher I recommend)\n-Ubuntu system to install things onto your SD card (i'm using VirtualBox with 12.04)\nNOTE: you might need to get a few ubuntu packages for your system (virtualbox), i've already installed a few\napt-get install uboot-mkimage btrfs-tools pv\nThe first thing i'm doing is referencing Roberts home site and i'm going to look for the latest version of Ubuntu for the beagleboard that I can find.\nI'm going to look into the Quantal folder and look for the latest version of the file, then download it. You might have to do the same.\nUnzip the files...\ntar xJf ubuntu-12.10-console-armhf-2013-06-14.tar.xz\nLets go into the folder... pressing the tab button finishes the folder/file name just in case you are new to linux syntax.\nSo there will be a file located in this folder called 'setup_sdcard.sh' this is a script that sets up the SD card for you, which is pretty neat. All you need to do is call the location of your SD card and away it goes. So I called the following command to see where my SD card was mouted.\nI found that my 4GB SD card was located as /dev/sdb1 but i'm going to use the name /dev/sdb so as not to include just the partition name but the whole drive location.\nNow to install the following, you'll need to start the install process, be sure to add your SD card name correctly!! if you have a beagleboard or beaglebone you need to look for the right syntax instread of 'beagle_xm'.\nsudo ./setup_sdcard.sh --mmc /dev/sdb --uboot beagle_xm\nIt will want to confirm that the right drive is being selected, and ask for verification. Just press 'y' and then hit enter. Now this procedure might take a while depending on your connection to your SD card and the speed of your computer/SD card it could take 5-15 mins so be patient. Just to note I did have one pop up warning me, but all i had to do was click ok and it continued.\nOnce this is complete and you get a message saying everything was complete, unmount your SD card if it hasn't been done in the script already.\nNow take the SD card and insert it into your Beagleboard XM and power it up!\nDefault username/password: ubuntu / temppwd\nThe first thing I recommend is updating the packages and upgrading everthing.\nsudo apt-get update\nsudo apt-get upgrade\nOPTIONAL INSTALLS AFTER:\nEthernet - One of many ways to enable Ethernet connection\nsudo ifconfig -a\nsudo dhclient eth0\nsudo ifconfig -a\nSerial Peripheral Interface (SPI) - How to enable SPI hardware...\nYou'll need to remove the # symbol from in front of buddy=spidev, once this is done save by pressing the ctrl+x and confirm the name with an enter.\nContinue over to my SPI for beagleboard post that shows how to test that everything works. But the short part is you should see the spidev located under the /dev folder like this after rebooting.\nGUI Desktop - How to install a simple GUI desktop\nTo get the GUI installed you can do many different approaches I did a couple, first I started by installing the following, but ran into the problem that xserver no longer made OMAP3 video drivers. I think they're going towards xf86-video-omap. But until that is completely true I did the following.\nsudo apt-get install gdm xfce4 network-manager.\nThen I found Robert's script that took care of the rest. Both the previous and the next commands take a couple hours, but you get a few selections for desktops. LXDE and XFCE.\nThanks for your feedback, and feel free to email or message me."} +{"text": "SONGS OF VISCERA Cabaret Event Premieres at Stage Left Studio, 12/20\nCabaret event SONGS OF VISCERA will premiere at Stage Left Studio, 214 W 30th Street, 7:30 pm. The one-night event is the brainchild of Emmy-nominated composer Garth Koren, Drama Desk-nominated character actor Frank Blocker, and the producer Cheryl King, and is (not unconsciously) scheduled for the night before the Mayan calendar ends.\nIn a counter-holiday-programming move, the show promises stalkers, loners, killers, and the end of the world, but absolutely no Christmas music. Visceral selections and interpretations mirror the grittier days of cabaret sans jazz hands, feather boas and lace gloves.\nSong sources include country, alternative, jazz, folk and Kurt Weill, all reinterpreted musically by Koren and performed in character-style by Blocker.\nKoren is a composer, jazz pianist and improvisation specialist whose influences run the gamut of edgy jazzist John Medeski to the classical Michael Steinberg. He composed the music for best-selling children's book The Kissing Hand and received an Emmy-nomination in 2007. Blocker is best known for comedy and character roles. He's most recently performed as a vocalist for AG Contemporary Art in Soho and appears regularly with Forbidden Kiss LIVE! at Stage Left Studio as a vocalist and comedian. Blocker's current solo play Stabilized Not Controlled goes on hiatus from 9-month run as he prepares to reprise both Southern Gothic Novel (2009 Drama Desk nominee) at The Underground Theatre/Hollywood while also play Larry Parrish in Hollywood premiere of David Bertolino's The Deep Throat Sex Scandal at The Zephyr Theatre.\nSONGS OF VISCERA performs Thursday, December 20, 2012, 7:30 pm, at Stage Left Studio, 214 W. 30th Street, 6th Floor. TICKETS are $20 and available through www.StageLeftStudio.net (For tickets, click HERE.) The performance is billed as a fun end-of-the-world party celebrating this mortal coil.\nGarth Koren (piano) is a jazz improvisationist who enjoys a wide range of musical collaborations, having studied with the John Medeski and Michael Steinberg. He toured with LeeAnne Savage, helms the Garth Koren Trio with bassist Marco Accattatis and drummer?Piergiorgio Marchesini, and was a member of the pop/soul band blue number nine, circa 2000. He composed music for bestselling children's book The Kissing Hand audio CD, and received a 2007 Emmy nomination for scoring the \"Beautiful Lengths\" campaign, represented in the Community/Public Service Announcement category. Look for Garth to appear at gigs in New York City in the coming months, including a guest spot for Stage Left Studio's Forbidden Kiss LIVE! New Years' Eve Musical Comedy Love-In.\nFrank Blocker (vocals) is an actor and playwright who, by the way, sings. He regularly appears at Forbidden Kiss LIVE! dueting with the likes of chanteuse DeeAnne Gorman and amazing lyricist Gaby Gold, and has enjoyed invitations to sing at AG Contemporary Art functions in Soho. Musical roles include Peachum in Peculiar Works Project's Beggar's Opera, the devil in Damn Yankees and the wicked witch in The Ruby Slippers. As an actor he has appeared at Fringe Fests, made the requisite L&O appearance, received a Drama Desk Award nomination for Solo Performance, won great acclaim for his penis monologue in The Deep Throat Sex Scandal and screamed bloody murder on the streets as a proud cast member of Obie-winning West Village/East Village Fragments (Peculiar Works). As a playwright his work includes Stabilized Not Controlled, Southern Gothic Novel, Eula Mae's Beauty, Bait & Tackle, Patient Number, The Wisconsinners, and book to the musical Alice (composer Wm. Wade). He is a member of AEA, SAG/AFTRA, and Dramatists Guild of America. He will appear in L.A. productions of Southern Gothic Novel late nights, while reprising his role in Deep Throat January through March 2013.\nCheryl King PRODUCTIONS (producer) was formed in 2000 by Cheryl King. The company has produced several acting retreats, over 300 showcases, and three years of V-Day events. She is the creator of the Left Out Festival, an annual festival of gay performance art, which has been presented since 2008, and is a benefit for Bailey House and GMHC. For her work in promoting gay performance, she was chosen as one of the 100 Women We Love in GO Magazine's June 2008 Annual Pride Issue. In November 2008 she was chosen \"Person of the Year\" by nytheatre.com. She also created the Women At Work Festival, now in its fifth year, which contributes funds to The Girl Effect. Ms. King has curated solo shows for the Estrogenius Festival at ManhattanTheatreSource since 2005. In October 2010, she inaugurated the Mama Drama Festival, a festival of theater about mothers, at Stage Left. Cheryl King is currently starring in Sally Lambert's Grapefruit at Stage Left Studio, directed by Teresa Gambacorta."} +{"text": "imit_timeout_seconds,\n )\n logger.info(f\"Ratelimit response {account_id} {rate_limit_response} {session_id=}\")\n accepted = rate_limit_response.accepted\n request.context.metrics.audio_ratelimit_usage_bytes = new_bytes\n except asyncio.TimeoutError:\n logger.warning(\n f\"Ratelimit check timed out after {_args.rate_limit_timeout_seconds}s for {account_id=} {session_id=}, accepting request\"\n )\n accepted = True\n except AttributeError:\n logger.warning(f\"Ratelimit check error for {account_id=} {session_id=}, accepting request\")\n accepted = True\n\n # Calculate audio duration for billing and metrics\n new_seconds = new_bytes / BYTES_PER_SAMPLE / SAMPLE_RATE\n\n # Update streaming throughput metric for HPA\n request.context.metrics.audio_streaming_seconds_per_second = (\n _audio_streaming_running_duration.add(new_seconds) / _audio_streaming_running_duration.window_seconds\n )\n\n if FIREWORKS_REPORT_BILLING:\n logger.info(f\"Reporting streaming billing delta: {new_seconds} s {account_id=} {session_id=}\")\n task = partial(\n _billing_publisher.publish_streaming_audio_billing_record,\n duration_delta_seconds=new_seconds,\n request_metrics=request.context.metrics,\n billing_request_metadata=create_billing_metadata(request),\n stream_params=stream_params,\n )\n _background_tasks.add(task)\n else:\n logger.info(f\"Skipping reporting billing {FIREWORKS_REPORT_BILLING=}\")\n return (cumulative_bytes_received, accepted)\n else:\n return (last_rate_limit_report_bytes, True)\n\n async def _parse_params(self, request: Request) -> StreamingTranscriptionParams:\n params = await parse_falcon_media(request.params, StreamingTranscriptionParams)\n if params.response_format != \"verbose_json\":\n raise UserError(\"response_format must be verbose_json for streaming\")\n if (\n params.timestamp_granularities != []\n and params.timestamp_granularities\n != [\n TimestampGranularity.WORD,\n TimestampGranularity.SEGMENT,\n ]\n and params.timestamp_granularities\n != [\n TimestampGranularity.SEGMENT,\n TimestampGranularity.WORD,\n ]\n ):\n raise UserError(\"timestamp_granularities must be empty, [word, segment] or [segment, word] for streaming\")\n return params\n\n async def _create_session(\n self, ws: WebSocket, session_id: str, params: StreamingTranscriptionParams, timeout: Optional[float] = None\n ) -> AsyncLocalQueue:\n global _stt_streaming_client\n logger.info(f\"STT stream is opening. {session_id=}\")\n\n try:\n session_params = StreamingTranscriptionSessionParams(\n request_id=session_id,\n request_params=params,\n remove_prefix_dot=_args.streaming_remove_prefix_dot,\n timeout=timeout,\n )\n egress_queue = await _stt_streaming_client.create_session(session_id, session_params)\n except SessionAlreadyExistsException:\n raise RuntimeError(\"STT stream open intermittent server issue. Try again.\")\n except OverloadedException:\n raise RuntimeError(\"STT stream server is overloaded. Try again later.\")\n\n ack: Optional[CreateSessionResponse] = None\n while (not ws.closed) and (not ack):\n ack = await egress_queue.get(True, 10)\n\n if not ack:\n raise WebSocketDisconnected()\n\n if ack.exception:\n if isinstance(ack.exception.with_traceback(), (UserError, ValueError)):\n raise UserError(str(ack.exception)) from ack.exception.with_traceback()\n else:\n raise RuntimeError(str(ack.exception)) from ack.exception.with_traceback()\n\n logger.info(f\"STT stream opened. {session_id=}\")\n return egress_queue\n\n\napp.add_route(\"/v1/audio/transcriptions/streaming\", StreamingSttResource())\n\n\nclass StreamingTtsResource:\n async def on_websocket(self, request: Request, ws: WebSocket):\n global _tts_streaming_client\n session_id = build_request_id(request)\n egress_queue = None\n\n # Tracking\n request.context.metrics.api_type = \"audio.tts.streaming\"\n\n try:\n egress_queue = await self._create_session(ws, session_id)\n await ws.accept()\n logger.info(f\"TTS stream WebSocket accepted. {session_id=}\")\n\n # IO proxies\n async def handle_ingress():\n logger.info(f\"TTS"} +{"text": "The city I live in, Birmingham, launched a new Council website. It made the headlines because it was three years late, and considerably over-budget. I’ve been reading their post-implementation report Web CMS Project Post Implementation Review – Final Report (PDF, 440K) (check out the humane URL of that document: thank goodness for the new Fatwire CMS!)\nOne day, I am going to get rich by doing post-implementation reports on public sector websites (if such a thing as “public sector” remains, of course).\nFrom my experience at the Law Society, and reading reports such as this one, I could easily produce a template document citing the usual reasons for the deadline-breaking, budget-demolishing usability atrocities that get commissioned, and then I’d just slot in the client organisation’s name and charge them a few grand.\nI would use the Birmingham report as a basis, as I’ve already paid for it with my council tax and it lists (or hints at) all the depressingly usual suspects:\n- Scope creep\n- CMSs are bought off-the-shelf, massively customised to the point that they’re unstable and no-one knows how they work any more\n- organisational disdain for their own employees’ accumulated vital knowledge and experience\n- obsessive organisational risk-aversion\n- managers with no understanding of how the web works being put in charge of projects\n- endemic mis-communication\nJoking aside, I’m not qualified to judge how accurate this report is, but it rings true, except for one vital area.\nThe report’s authors offer advice on enhancing the accessibility of the site. The advice is wrong.\nI can’t find the names of the authors to judge their qualifications to pontificate on accessibility but the inaccuracy of terminology of the assertion “W3C rules state that an ‘alt tag’ should be used on all images” makes me uncertain that they really know what they’re talking about (there is no “alt tag” as there is no alt element in HTML).\nSection 13.3.2 says\n…a visually-challenged visitor should be able to increase the font-size and to change text and background colours to make the site legible for him or her. It is possible for an individual to change the font size using their browser settings but it is not possible on the BCC site to do this on the web pages themselves.\nSection 13.3.3 says\n… Browsealoud (http://www.browsealoud.com/ ) is recommended by many bodies including the RNIB. Many visually-impaired people use the system and it is enabled on many government and local government websites – including a subsidiary standalone site of the BCC (www.adultcareinbrum.org.uk – see below).\nSystems like these allow a visitor to listen to the content of a site, thereby making it accessible to those with visual, literacy, and dyslexia challenges.\nWe recommend that Browsealoud or another similar system be implemented on the main BCC site.\nBrowsealoud costs money. It’s basically a plugin that reads text, but has none of the navigational functionality that fully-fledged screenreaders have. The site owner pays to have their web site added to a whitelist contained within the plugin.\nExtensions such as Opera’s Voice (select text, right click, “speak”), Firevox for Firefox, built-in screenreaders on the operating system such as Micrsoft Narrator or Apple Voiceover perform this job without requiring the council to spend money, and (most importantly) at greater utility for the consumer. Browsealoud (or similar plugin) requires that the user learn a new way of interacting with this specific website; using the alternatives I list above enhance the user’s experience on every site she visits.\nIt appears that during development of the site, Birmingham City Council procured four third-party accessibility audits of the website, all of which mention non-resizeable text (but recommend setting it in CSS with relative units rather than coding text resize widgets). None recommends browsealoud or similar plugins.\nI hope that Birmingham does not follow the two accessibility recommendations of the post-implementation report, until it can demonstrate that the authors of that report have significantly greater experience and knowledge of accessibility than the authors of the 4 accessibility audits I obtained under my Freedom of Information request.\nThis is a personal post and not the opinions of my employer, wife, children or hamster.\nBirmimgham also features in another of my Usability Atrocities with its legendary Strategy to develop Short Breaks for Disabled Children."} +{"text": "26 Gorgeous Hotels You Won't Believe Are Under $150\nEvery so often, a hotel comes along that is both stylish and comfortable, close to the action and affordable. From the beaches of Mexico to the quaint courtyards of New Orleans, here are 26 properties that make the cut this year. You're welcome.\nWe scoured the globe to find the best new hotels out there. Making our list is harder than you think! Each of these independent properties has to meet a strict criteria to even be considered: they must have a unique story; their design sense must speak to the local culture instead of being generic and corporate; and they must (no exceptions!) be available for under $150 per night. You'll hear the owners' stories. You'll find urban retreats in some of the planet's most expensive cities. You'll take in unobstructed ocean views from your private balcony. You'll commune with nature. Bottom line—you'll never want to leave.\nJoshua Tree, California\nHicksville Trailer Palace owner Morgan Higby Night isn’t the first creative type to find inspiration in the rugged, lunar landscape of Joshua Tree National Park (see also: Gram Parsons, U2). But the Los Angeles–based writer and producer (Shortbus, Talking About Sex) has certainly taken his artists’ retreat there to an audaciously kitschy level. “I was already going out to Joshua Tree two to three days a week to write my latest screenplay,” Higby Night says. “It made me think that maybe other artists in L.A. also needed a place to get away to work.” Higby Night installed 10 vintage trailers, a solar-heated saltwater pool, and an archery and BB gun range on his two-acre desert plot last April. Each unit has a distinct design scheme and amenities: a jukebox filled with punk tunes, a TV stocked with horror (and only horror) movies, and bunk beds that, for an extra $50 a day, can be tucked away to make room for a film editing suite. And guests don’t have to worry about curious day-trippers traipsing the grounds: Directions are only given out to folks with confirmed reservations.\nhicksville.com, from $75.\nJensen Beach, Florida\nLet the scenesters have South Beach. The eight-room Inn at Tilton Place, two hours to the north in Jensen Beach, swaps crowded pool decks and velvet-rope nightclubs for quiet coves and evening wine tastings on the front porch. The whole place is steeped in Florida history. A local fisherman built the white clapboard house in the early 1900s and gave it to his daughter as a wedding present; today, her great-granddaughter, Katie Wacha, runs the place. There’s a wall of black-and-white photos in the foyer documenting the generations of Tiltons who’ve inhabited the house. Still, the best new tradition at the inn is Wacha’s own: seasonal, three-course breakfasts, featuring beyond-the-basics dishes like red pears with rosemary sugar and basil hollandaise Benedict.\ninnattiltonplace.com, from $109.\nWhen Kelli Kerns, Tim Cron, and Becky Cron (Kerns’s sister) purchased the Sawtooth Hotel in Stanley (population: 100) in 2004, they had modernizing on the brain. Over the course of the family’s three-year restoration project, they added rooftop solar panels, installed a commercial kitchen for their popular ground-floor restaurant, and upgraded the nine guest rooms with new baths and fresh furnishings. The best part? You’re not hit over the head with any of the upgrades. The 70-year-old log-cabin landmark still has all the rustic, small-town charm you’d expect: 100-year-old skiing gear mounted on the walls, a carved wooden moose grinning in the lobby, and the dining room’s views of the jagged, snowcapped Sawtooth Mountains—just as impressive as they were in 1931 when the original Sawtooth opened.\nsawtoothhotel.com, from $70.\nNew Orleans, Louisiana\nLike many French Quarter spots, the Hotel Le Marais, steps away from Bourbon Street, greets guests with plenty of flash: The lobby is all bright colors, mirrored tiles, and party music. But enter one of its 64 renovated guest rooms, and the tone shifts. The mostly neutral decor subtly references the city—eggplant throw pillows, photos of Louisiana landscapes—without playing to clichés. Some rooms even have wrought-iron balconies overlooking the internal brick courtyard (and its heated saltwater plunge pool) lit with both old-fashioned gas lamps and neon purple lights. hotellemarais.com, from $110.\nSt. Paul, Minnesota\nHotel 340, housed in the former headquarters of the St. Paul Athletic Club, is no ordinary YMCA. The 12-story English-renaissance building has served as a downtown clubhouse for St. Paul’s upper crust since 1917; today, the carefully restored structure is home to the hotel (on the top three floors), plus the University Club of St. Paul, a chichi lobby bar, and, of course, an all-new 60,000-square-foot fitness center (free for guests). The building’s entrance is downright grand, with its 20-foot-high coffered ceiling, marble columns, and huge fireplace. The hotel’s 17 rooms all have cherry hardwood floors; mahogany headboards; marble showers; and skyline, courtyard, or river views. The 40 suites (from $129) add fully stocked kitchenettes and steam showers or whirlpools.\nhotel340.com, from $99."} +{"text": " stream ingress started. {session_id=}\")\n iterations = 0\n\n while not ws.closed:\n iterations += 1\n data = await ws.receive_media()\n if not data:\n continue\n\n if isinstance(data, Dict):\n event = serialization.loads(data, TtsIngress)\n await _tts_streaming_client.send(session_id, event)\n\n logger.info(f\"TTS stream ingress finished. {session_id=} {iterations=}\")\n\n async def handle_egress():\n logger.info(f\"TTS stream egress started. {session_id=}\")\n iterations = 0\n while not ws.closed:\n iterations += 1\n e: Optional[EgressEvent] = await egress_queue.get(True, 5)\n if not e:\n continue\n\n # Command egress\n if isinstance(e.payload, BaseModel):\n await ws.send_text(e.payload.model_dump_json())\n continue\n\n # Error egress\n if e.exception:\n if isinstance(e.exception.with_traceback(), (UserError, ValueError)):\n raise UserError(str(e.exception)) from e.exception.with_traceback()\n else:\n raise RuntimeError(str(e.exception)) from e.exception.with_traceback()\n\n # Data egress\n await ws.send_data(e.payload)\n\n logger.info(f\"TTS stream egress finished. {session_id=} {iterations=}\")\n\n await asyncio.gather(handle_ingress(), handle_egress())\n\n except WebSocketDisconnected:\n logger.info(f\"TTS stream WebSocket disconnected. {session_id=}\", exc_info=VERBOSE)\n finally:\n logger.info(f\"TTS stream is terminating. {session_id=}\")\n if egress_queue:\n try:\n await _tts_streaming_client.terminate_session(session_id)\n except NotFoundException:\n pass\n logger.info(f\"TTS stream terminated. {session_id=}\")\n\n async def _create_session(self, ws: WebSocket, session_id: str) -> AsyncLocalQueue:\n global _args\n global _tts_streaming_client\n logger.info(f\"TTS stream is opening. {session_id=}\")\n\n try:\n session_params = StreamingTextToSpeechSessionParams(\n request_id=session_id,\n max_output_chunk_size_bytes=_args.tts_max_chunk_size_bytes,\n )\n egress_queue = await _tts_streaming_client.create_session(session_id, session_params)\n except SessionAlreadyExistsException:\n raise RuntimeError(\"TTS stream open intermittent server issue. Try again.\")\n except OverloadedException:\n raise RuntimeError(\"TTS stream server is overloaded. Try again later.\")\n\n ack: Optional[CreateSessionResponse] = None\n while (not ws.closed) and (not ack):\n ack = await egress_queue.get(True, 10)\n\n if not ack:\n raise WebSocketDisconnected()\n\n if ack.exception:\n if isinstance(ack.exception.with_traceback(), (UserError, ValueError)):\n raise UserError(str(ack.exception)) from ack.exception.with_traceback()\n else:\n raise RuntimeError(str(ack.exception)) from ack.exception.with_traceback()\n\n logger.info(f\"TTS stream opened. {session_id=}\")\n return egress_queue\n\n\napp.add_route(\"/v1/audio/tts/streaming\", StreamingTtsResource())\n\n\nclass AudioBillingPublisher(BillingPublisher):\n \"\"\"\n A publisher class for sending billing records to a specified Pub/Sub topic.\n\n Attributes:\n publisher (pubsub_v1.PublisherClient): The Pub/Sub publisher client.\n topic_path (str): The path to the Pub/Sub topic.\n is_initialized (bool): Indicates if the publisher is properly initialized.\n \"\"\"\n\n def __init__(self, pubsub_topic_id: str = \"\", pubsub_project_id: str = \"\"):\n \"\"\"\n Initializes the BillingPublisher.\n\n Args:\n pubsub_topic_id (str): The Pub/Sub topic ID to publish to.\n pubsub_project_id (str): The GCP project ID for the Pub/Sub topic.\n \"\"\"\n self.is_initialized = False\n if pubsub_topic_id == \"\" or pubsub_project_id == \"\":\n return\n super().__init__(metrics, pubsub_topic_id, pubsub_project_id)\n self.is_initialized = True\n\n @staticmethod\n def _duration_to_interval(duration: duration_pb2.Duration) -> str:\n delta = relativedelta.relativedelta(\n seconds=duration.seconds,\n microseconds=int(duration.nanos / 1000),\n )\n milli = str(int(delta.microseconds / 1000))\n while len(milli) < 3:\n milli = \"0\" + milli\n return f\"{delta.years}-{delta.months} {delta.days} {delta.hours}:{de"} +{"text": "Change doesn’t always sit well with the NASCAR faithful.\nJust talk to a race fan about swapping the dates of races at some of NASCAR’s most storied tracks and you’re likely to get a strong reaction — almost always in favour of keeping the status quo. The Car of Tomorrow was almost universally reviled when it was first introduced and the Chase for the Sprint Cup wasn’t immediately popular, although it seems to have grown on people.\nSo there’s little surprise that the decision to repave stock car racing’s most famous track — Daytona International Speedway — hasn’t gone over well with drivers and fans alike.\n“They should not repave race tracks,” Carl Edwards said back in February when it looked like the repaving project was still three years away. “I think the rougher the better. It makes it more fun when you’re out there sliding around and moving. It makes it harder so that you can end up running different lines and get an advantage. If this track were like Talladega, it wouldn’t be nearly as fun.”\nSure the surface at Daytona was a little rough, not surprising since it hasn’t been repaved since 1978, but it had character and in many people’s minds has made for better racing than at the loop’s other superspeedway at Talladega, which was repaved in 2006.\nEven after the farcical Pothole 500 in February, drivers were still clamouring for a way to keep the old track intact. Kyle Busch — who rarely agrees with Edwards on anything — told the Miami Herald recently that the repaving project is a mistake.\n“I’m not a fan of it,” he said earlier this month. “I think it’s cool the way that the track is. It’s old, it’s slick. You really have to have a good handling race car to get around here.”\nFortunately the drivers aren’t in charge and the NASCAR bigwigs encouraged International Speedway Corporation to make improvements to its track immediately.\nWork has already begun to tear about the surface which has seen 32 Daytona 500s and 32 Coke Zero 400s. If all goes according to plan the track will be ready early in 2011 and barring a catastrophic delay the green flag on the 2011 Daytona 500 will drop Feb. 20.\nThe last race on the old surface was July 3 when Kevin Harvick drove his Shell/Pennzoil No. 29 Chevrolet into victory lane. It was the second win of the season for the current points leader and a very special one.\n“I think this racetrack is obviously the most historic racetrack that we race on, and I think if that asphalt could talk, you can go back and look at all the stories,” Harvick said after the win. “But it’s just such a neat deal to be able to win the last race on that particular asphalt. It’s going to be a lot different race when we come back.”\nAs great as the old track was, it was beginning to show its age. The pothole that delayed the Daytona 500 was just one manifestation of this.\nNostalgia is important in sport and NASCAR is full of great traditions, but times change and fans and drivers can’t let their feelings get in the way of important innovation.\nDaytona will be different next year. The drivers will need to find new racing lines and figure out what works on the new surface. But it is still Daytona and if the asphalt that is being laid down over the next six months could talk, it will soon have some great stories of its own to share.\n• He said it: “When you go to the racetrack . . . as a team we kind of compare ourselves to each other, maybe to the competitors that we can feed on that weekend. We don’t even compare ourselves to the 18 because they’re in their own time zone. But it all starts at the top. Joe Gibbs and their attitude, if they’re going to do something, they’re going to do it right. They’re going to go at it 110 per cent.” — Jason Leffler, the driver of the No. 27 Great Clips Toyota in the Nationwide Series talking about defending Nationwide Series champion Kyle Busch in the No. 18 Z-Line Designs Toyota.\n• Canadians: The NASCAR Canadian Tire Series begins a two-week trip to the site of IZOD Indy Car events. Saturday, Canada’s top stock car series is in Toronto for the inaugural Canadian Tire Jumpstart 100 and breaking from tradition the event will be live on TSN at 2:30 p.m. ET.\n• This week: The Sprint Cup Series takes a week off, so the Nationwide Series grabs the spotlight in Madison, Ill., for the Missouri-Illinois Dodge Dealers 250 at Gateway International Raceway (Saturday, 7:30 p.m. ET, TSN)."} +{"text": "Before I tell you about how I found the camaro's original drive train, I want to tell you story of how the original owner and a 69 RS/SS L 78 camaro came together. It was Dec. of 1968 and Bill Floyd was living on the central Oregon coast and looking to buy new tri power Corvette. His dealer was Southwestern motors and they told Bill they couldn't get\nhim one. After hearing this Bill ask them to get him the \"biggest motor he could get in a Camaro\". 360 miles away in Burns, Oregon sat a new rallye green 69 Camaro RS/SS 396/375 HP in Ganger & Grover Motors. Southwestern pulled the car for Bill. Years later in 1991 I asked Bill if he knew about the 427's the factory was putting in the camaro's back then, he said if he had known he would have ordered one. Bill named the Camaro \" thunder\" because of the L 78 running through those chambered exhast. He said he could take out anyone on a rolling start, you see the car only had a non posi BN rear with 3:55.\nMy involvement with the L 78 camaro started in July of 1990, a co worker owned the camaro and this time the motor and trans had been pulled and sitting on the floor of the garage. I bought the car for $3500. in July 1990. By now the motor and trans were replaced. The camaro had a L78 from a 68 chevelle \"EG\" the 4 speed replaced with a TH 400. Now began the hunt for original motor and 4 speed. At this point I knew noting about the owners or history of this Camaro.So where to start,I knew the co worker bought it in Beaverton, Oregon. I called the Oregon DMV ( Department of Motor Vehicles) paid them $24 and the cars VIN numbers a week later received all the owners information ie. regstration paper, the dealers transferring the car for Bill and the like. A gold mind of information. This was my starting point for finding the original motor an 4 speed. I wanted to try for the motor first, so I called the owners starting with the last owner and working forward. About the 4th or 5th owner spun the crank shaft on the L 78 and the motor ended up in Roseburg, Oregon in a 69 chevelle. I talked to the guy that fixed the engine and put it in the chevelle. He stated he sold the chevelle to his paper boy some years ago. I asked for the vin or plate number, and proceeded to DMV the chevelle. After receiving the paper work, I contacted the last owner first. He still had the car, and the engine was sitting in his barn out of the car.We agreed on a price an away I went. This odyssey, time wise was about 4 or 5 months of work with lots of time on the phone. Now for the 4 speed, since I made lots of connections looking for the motor I used some of the same people on this hunt. Now mind you this was 15 years after the drive train left the camaro, but I was full of confidence after finding the original engine.The previous owners all lived in small towns and for the most part knew each other so that help a lot. After a few months one of the owners directed me to two brothers that were into off road 4 wheel drive racing or some thing like that. Years ago they ended up with the camaro's 4 speed. I talked to one of the brothers several times over a period of 4 months. At times he he gave me some good information and other times he was to busy to talk and could care less. Think I wore him out and he finally said, if I find out were the trans went what are you going to do for me.... I'll give you $100.00 for information on who has it I said. He said to give him 2 weeks then call him back. I called 2 weeks later and he had all the information I needed.... phone numbers, address, and names. I asked him where to send the money, he said don't worry about it just keep it. Wow, I caught him on a good day you just never know about some people, but that's how it works. I then called my best new buddy, the owner of the 68 camaro that I think my trans is in. Brenda was the owner name, and she owned a 68 camaro RS/SS 396 car, that may have my 4 speed.I contacted Brenda about the trans in her camaro after a few months of talking I went down there to look at her 68's 4 speed.I ran it up on my ramps to check the numbers out, what I saw was P9M19 plus the cast numbers, 3925660,3857584,3950306, but no vin stamp. I went home unsure if it was my 4 speed. After 5 months Brenda agreed to having me pay for a replacement 4 speed for her 68 camaro. I would come down (4 hour drive one way ) swap out the 4 speeds and give her $100.00 for the her time. My brother and I went down to Coquille, Oregon pulled the trans out and cleaned off the top and there was my camaros vin stamp on top. After all the trials and tribulations it was all worth it in the end."} +{"text": "lta.minutes}:{delta.seconds}.{milli}\"\n\n def publish_audio_billing_record(\n self,\n request_metrics: RequestMetrics,\n billing_request_metadata: BillingRequestMetadata,\n ):\n \"\"\"\n Publishes a audio billing record message to the Pub/Sub topic.\n \"\"\"\n if not self.is_initialized:\n logger.warning(\"AudioBillingPublisher is not initialized. Message will not be published.\")\n return\n\n record = billing_subscriber_pb2.BillingUsageRecord()\n record.usage_type = billing_subscriber_pb2.BillingUsageRecord.UsageType.AUDIO_INFERENCE_USAGE\n record.event_id = request_metrics.request_id or \"\"\n record.start_time.seconds = request_metrics.request_time or 0\n record.end_time.seconds = round(\n request_metrics.timings.timestamps.get(TimingType.REQUEST_FINISHED, time.time())\n )\n\n # Common properties\n record.properties[\"deployment_name\"] = metrics._get_deployment()\n\n # properties\n record.properties[\"api_type\"] = request_metrics.api_type or \"\"\n record.properties[\"model\"] = request_metrics.model or \"\"\n record.properties[\"vad_model\"] = request_metrics.vad_model or \"\"\n record.properties[\"alignment_model\"] = request_metrics.alignment_model or \"\"\n record.properties[\"is_batch\"] = request_metrics.is_batch or \"false\"\n record.properties[\"is_diarization\"] = request_metrics.is_diarization or \"false\"\n\n record.properties[\"audio_input_size_bytes\"] = request_metrics.audio_input_size_bytes or 0\n record.properties[\"audio_input_size_samples\"] = request_metrics.audio_input_size_samples or 0\n record.properties[\"audio_input_size_seconds\"] = request_metrics.audio_input_size_seconds or 0\n record.properties[\"audio_input_size_speech_seconds\"] = request_metrics.audio_input_size_speech_seconds or 0\n record.properties[\"output_len_bytes\"] = request_metrics.output_len_bytes or 0\n record.properties[\"output_len_tokens\"] = request_metrics.output_len_tokens or 0\n record.properties[\"output_language\"] = request_metrics.output_language or \"\"\n record.properties[\"output_num_segments\"] = request_metrics.output_num_segments or 0\n record.properties[\"api_key_id\"] = billing_request_metadata.api_key_id or \"\"\n\n self.publish_message(\n billing_usage_record=record,\n billing_request_metadata=billing_request_metadata,\n )\n\n def publish_streaming_audio_billing_record(\n self,\n duration_delta_seconds: float,\n request_metrics: RequestMetrics,\n billing_request_metadata: BillingRequestMetadata,\n stream_params: Dict,\n ):\n \"\"\"\n Publishes a audio billing record message to the Pub/Sub topic.\n \"\"\"\n if not self.is_initialized:\n logger.warning(\"AudioBillingPublisher is not initialized. Message will not be published.\")\n return\n\n record = billing_subscriber_pb2.BillingUsageRecord()\n record.properties[\"api_type\"] = request_metrics.api_type or \"\"\n record.usage_type = billing_subscriber_pb2.BillingUsageRecord.UsageType.AUDIO_INFERENCE_USAGE\n # NB: Generating new UUID on the fly, since we are creating new billing records\n # periodically from a stream. We cannot rely on the request ID.\n record.event_id = str(uuid.uuid4())\n curr_time = time.time()\n record.start_time.seconds = int(curr_time - duration_delta_seconds)\n record.end_time.seconds = int(curr_time)\n\n # Common properties\n record.properties[\"deployment_name\"] = metrics._get_deployment()\n\n # properties\n record.properties.update(stream_params)\n record.properties[\"duration_sec\"] = duration_delta_seconds\n record.properties[\"api_key_id\"] = billing_request_metadata.api_key_id or \"\"\n\n self.publish_message(\n billing_usage_record=record,\n billing_request_metadata=billing_request_metadata,\n )\n\n\nclass MockAudioBillingPublisher(AudioBillingPublisher):\n def __init__(self, app):\n # NB: do NOT call super().__init__()\n\n self.is_initialized = True\n self.recorded_data = []\n\n # Close over self for the response resource to work\n mock_publisher = self\n\n class GetBillingResponse:\n async def on_get(self, req, resp):\n resp.content_type = \"application/json\"\n resp.media = mock_publisher.recorded_data\n\n async def on_post(self, req, resp):\n mock_publisher.recorded_data.clear()\n\n br = GetBillingResponse()\n app.add_route(\"/billing_mock_metrics\", br)\n app.add_route(\"/clear_billing_mock_metrics\", br)\n\n def publish_message(\n self,\n billing_usage_record: billing_subscriber_pb2.BillingUsageRecord,\n billing_request_metadata: BillingRequestMetadata,\n ):\n keys = [\n \"usage_type\",\n \"account_id\",\n"} +{"text": "So I picked it up yesterday in the store I'm working in and had the chance to quickly get a first impression of it today.\nKeep in mind, that this is a superzoom which will inevitablely have to make compromises. I don't want to start a discussion on the subject if such a lens is \"good\" or \"bad\" - it has its clear purpose of serving as an allround lens for travelling when you just don't have the time to switch between several lenses all the time. It's also very light for those occasions where you dont want to pack yourself with multiple heavy lenses. If you need the best possible quality for a very special scene, you still will have to take a prime (or maybe a small-zoom-range) lens.\nBasicly, when you pick up the lens, you feel that you've got a solid piece of glass in your hands. The AF, VC and Zoomlock switches are all reasonably placed so they can be reached well. The zoom has got some resistance to it to reduce lens creep (more on that in a moment). Between 70 and 120mm the resistance reaches its summit. However after a day of using it already starts to run a little smoother.\nThe front element is not rotating, which certainly is great news if you want to use a filter. Due to the wide angle, the included lens hood is naturally quite small, yet well shaped (bigger on the top and the bottom) to maximize its potential. The manual focus ring is a bit loose, but reasonably sized.\nAfter so much praising you probably already suspect that there are some downsides as well, so here we go... The inner tube wobbles a little bit but it's not critical. Probably the biggest issue is lens creep - If you point the camera towards the ground and shake it, the lens will zoom in due to the weight of the inner tube(s). While I don't know exactly how big of an issue this is with other superzooms, I think it's still within reason on this one. As mentioned before, the zoom ring is pretty loose when switching to MF, so manual focusing is not that great.\nOverall, Tamron has done a pretty good job with this lens, apart from the usual superzoom issues, such as lens creep.\nI've read in various other comments about this lens (especially from those with Nikon mount) that the autofocus was very slow so I was quite worried when I did my first testshots. I discovered that in daylight, the autofocus is actually nothing to worry about - surely, it aint as fast as a USM Autofocus from Canon and if you want to professionally shoot sports, you should look for another lens - BUT for normal use it certainly is quick enough. In low light though, the story is a slightly diffrent one: The focus gets quite slow, taking about 1-2 secs if the subject is close and ocasionally it starts to hunt. At times it's actually unable to focus at all until you try a second or even third time.\nConclusion: The AF is just fine in good lighting conditions, whereas in low light it can get quite slow.\nNot much to write about here... it works very fine - I was able to shoot at 1/60s at 270mm without problems and down to 1/8s at wider angles. I guess someone with more steady hands will even be able to take 1/4s shots without a tripod. You can tell when the stabilizer starts to work by its relatevely loud noise, it starts working when you half-press the shutter release button, and stops about 2 seconds after you stop pressing it again.\nSo the Vibration Compensation is probably the biggest improvement over the previous 18-250.\nFor optical Quality, check my thread in the lens galery\n. To write a quick conclusion here (personal impression after 1 day of use): This lens is tack sharp in the center, still very sharp towards the edges, but starts to smooth out a little in the corners. CA's are nothing to worry about as far as I can tell at the moment, and vignetting is well controled.\nThe Tamron 18-270mm certainly is a compromise - but a good one! Optical quality is surprisingly good (at least as far as I can tell until now), and I'm especially pleased by the low amount of CA's. Build quality is ok, but not great - certainly good enough for a holiday. Vibration Compensation works great, which makes up a bit for the rather small max aperture. There are 3 bad points, 2 of which can be overlooked for an allround lens in my opinion: Probably the biggest issue is the slow and sometimes hunting AF in low light. typical for such a lens, it tends to creep when pointing up or down and lastly the aperture at 200< is quite small (f/6.3).\nSo overall I think I can highly recommend the Tamron 18-270 to anyone who's looking for a travel lens."} +{"text": "WHEN the Ocean Drover, carrying tens of thousands of Australian sheep, was boarded in August by Bahraini quarantine officials demanding to meet the captain, exporter Wellard knew something was not right.\nThe ensuing scrutiny by authorities and the eventual refusal to unload 21,000 sheep heralded the beginning of the chaotic last month of the sheep's lives that ended with them culled, many of them brutally, in a Karachi feedlot.\nWellard has revealed for the first time that it discussed culling the 21,000 sheep at sea and throwing them overboard in a bid to maintain animal welfare.\nWellard executive chairman Mauro Balzarini said they needed to dispose of the animals and could have killed the sheep at sea. ''Slaughter them humanely according to the international standard. Throw them overboard - animal welfare is protected but what would be the reaction of the media in Australia if you throw 20,000 sheep, although killed humanely, in the sea?'' he said.\nThe Ocean Drover, owned and operated by Wellard, ferried sheep from Fremantle unloading in Oman and Kuwait, without hassle, before arriving in Bahrain on August 21.\nWhen it docked, Bahrain officials accused the ship of having an unacceptable mortality rate during the voyage. After this was debunked, officials kitted out in hazard suits boarded and claimed the sheep were infected with scabby mouth.\nThe Ocean Drover was ordered out of port at midnight, prompting diplomatic negotiation.\nOn August 29, Wellard was told that the sheep had been approved, subject to an independent test. The ship re-entered Bahrain and the next day the agriculture department approved discharge.\n''As we were preparing for discharge, the [harbour] master received instruction by the port authority to leave. Because the Minister of Interior said so. Without any explanation, without anything. Basically that was an order that could not be ignored,'' Mr Balzarini said.\nWellard executive director Stephen Meerwald said it was likely that ''internal conflict within Bahrain and commercial players'' caused the rejection.\nThe whole Australian industry has now barred trade with Bahrain, which Mr Meerwald said was definitely not a commercial decision. ''Bahrain is calling us every day - 'we need sheep','' Mr Balzarini said.\nPakistan's PK Livestock, which Wellard helped found in 1996- and was listed as the exporter's contingency market -- took the sheep two weeks later after it was approved as a compliant ''supply chain'' under new animal welfare export rules.\nDespite clearance from Pakistan authorities, allegations of disease from local authorities were levelled. Tests found no disease in the sheep, but the local government backed by 300 armed security personnel seized control of the PK Livestock facility and began a cull on September 16.\nPK Livestock's head, Tariq Butt, sought an injunction, that was not approved until September 22, but by then nearly 10,000 sheep were slaughtered.\nReports, and unsubstantiated YouTube videos, detail brutal killing methods with some animals buried alive. At night locals were seen pilfering the mass graves, cutting off limbs of dead animals to take home or sell.\nMr Balzarini and Mr Butt both blame the Karachi media for whipping up fear and concern about the rejection in Bahrain.\nThroughout the incident there has been industry and media speculation that accusations were levelled because certain ''demands'' were not met: Mr Butt made these claims in the Karachi media but would not repeat them when Fairfax spoke to him.\n''These men declared the healthy Australian sheep diseased after their ''demands'' were not met and used fake evidence to have thousands of sheep culled in an inhumane way,'' Mr Butt told a Pakistan newspaper.\nWhen Wellard was asked this week about corruption, Mr Meerwald said it had no reason to doubt there was ''something behind that''.\nOn October 18 Mr Butt withdrew the injunction claim, sealing the fate of the sheep which were swiftly killed.\nThe backdown came after armed police turned up to demolish the PK Livestock facility but were driven away by local employees. ''You can imagine a man who's just put everything into three weeks in court doing everything in court to defend the rights of these sheep. You can imagine what sort of pressure he may have been under,'' Mr Balzarini said.\nOn Monday the ABC's Four Corners investigates the Pakistan saga, with the live export industry extremely nervous.\nwith Damien Bright"} +{"text": " \"email\",\n \"event_id\",\n ]\n value = {k: getattr(billing_usage_record, k) for k in keys}\n value.update(billing_usage_record.properties)\n self.recorded_data.append(value)\n\n\nclass RequestIDMiddleware:\n async def process_request(self, request: Request, response: Response):\n await self._process_request(request)\n\n async def process_request_ws(self, request: Request, ws: WebSocket):\n await self._process_request(request)\n\n async def _process_request(self, request: Request):\n request.context.request_id = request.get_header(\"x-request-id\", default=str(uuid.uuid4()))\n\n\nclass MetricsMiddleware:\n def __init__(self, pubsub_topic_id: str = \"\", pubsub_project_id: str = \"\"):\n global _billing_publisher\n if _billing_publisher is None:\n if FIREWORKS_MOCK_BILLING:\n _billing_publisher = MockAudioBillingPublisher(app)\n else:\n _billing_publisher = AudioBillingPublisher(pubsub_topic_id, pubsub_project_id)\n\n @staticmethod\n def _should_report_billing(metrics: RequestMetrics):\n if not metrics.http_code or metrics.http_code >= 300:\n logger.warning(\n f\"Got error/redirect response with status code {metrics.http_code}, skip billing reporting.\"\n )\n return False\n return not metrics.is_health_check\n\n async def process_request(self, request: Request, response: Response):\n await self._process_request(request)\n\n async def process_request_ws(self, request: Request, ws: WebSocket):\n await self._process_request(request)\n\n async def _process_request(self, request: Request):\n if request.method != \"POST\" and not request.is_websocket:\n return\n\n account_id = request.context.account_id\n request.context.metrics = RequestMetrics(\n is_health_check=(account_id == \"health_check\"),\n request_id=request.context.request_id,\n request_time=round(time.time()),\n api_path=request.path,\n requests_concurrent_total=_inference_client.get_active_count(),\n # Headers\n account=account_id,\n header_user_email=request.get_header(\"x-fireworks-developer-email\", default=\"\"),\n header_user_agent=request.get_header(\"user-agent\", default=\"\"),\n header_mime_type=request.get_header(\"accept\", default=\"\"),\n header_traceparent=request.get_header(\"traceparent\", default=\"\"),\n header_tracestate=request.get_header(\"tracestate\", default=\"\"),\n header_organizationid=request.get_header(\"organizationid\", default=\"\"),\n header_requestid=request.get_header(\"requestid\", default=\"\"),\n header_userid=request.get_header(\"userid\", default=\"\"),\n )\n\n async def process_response(self, request: Request, response: Response, *args, **kwargs):\n if not hasattr(request.context, \"metrics\"):\n return\n\n request.context.metrics.http_code = http_status_to_code(response.status)\n\n request.context.metrics.timings.add_timestamp(TimingType.REQUEST_FINISHED, time.time())\n request.context.metrics.timings.add_latency(LatencyType.TX_MS)\n request.context.metrics.timings.add_latency(LatencyType.OVERALL_MS)\n\n request.context.metrics.report_billing = self._should_report_billing(request.context.metrics)\n\n _background_tasks.add(partial(metrics.report_request, request.context.metrics))\n billing_metadata = create_billing_metadata(request)\n billing_metadata.account_id = request.context.account_id\n if FIREWORKS_REPORT_BILLING and request.context.metrics.report_billing:\n task = partial(\n _billing_publisher.publish_audio_billing_record,\n request_metrics=request.context.metrics,\n billing_request_metadata=billing_metadata,\n )\n _background_tasks.add(task)\n\n\nclass AuthMiddleware:\n \"\"\"Temporary workaround to store call history. Remove once middleware migrated to reverse proxy.\"\"\"\n\n async def process_request(self, request: Request, response: Response):\n await self._process_request(request)\n\n async def process_request_ws(self, request: Request, ws: WebSocket):\n await self._process_request(request)\n\n async def _process_request(self, request: Request):\n if request.method != \"POST\" and not request.is_websocket:\n return\n\n # For direct route, we use Unkey to directly authenticate the user.\n # As a result, the typical X-Fireworks-Account-Id field is not set,\n # so create_billing_data will not correctly populate account_id,\n # which is required for billing. Here we unify auth handling between\n # direct route and the Fireworks gateway, populating the X-Fireworks\n # request headers in the direct route case\n if is_direct_request(request):\n authorized, authorized_use"} +{"text": "In May 2010, the annual Great Calusa Blueway Paddling Festival was included as one of the top 20 events and festivals by the Atlanta-based Southeast Tourism Society (STS). With more than 1,000 events and festivals in 12 states competing for this award, winning it is no small achievement.\nThis unique paddling trail, covering more than 190 miles of creeks, estuaries, back bays, and rivers throughout Lee County, originated in 2003 as a joint venture between the Lee County Visitor & Convention Bureau and Lee County Parks and Recreation Department. The first Paddling Festival was held in June 2006. This annual event is now held every fall from the last weekend of October through the first weekend of November.\nThe Great Calusa Blueway is divided into three geographical sections: Estero Bay; Pine Island Sound/Matlacha Pass; and Caloosahatchee River and tributaries. The Estero Bay zone begins at Bunche Beach to the northwest and ends in the southeast corner of Lee County at the headwaters of the Imperial River. This is the most protected of the three legs of the Blueway and includes Hurricane Bay, Hell Peckney Bay, much of the Estero Bay Aquatic Preserve, and both the Estero and Imperial rivers. While there are several channel crossings and open-water stretches in this section, most of the Blueway paddling trail hugs the mangrove-lined shore, and the open-water stretches are seldom more than a mile in length. Intermittent trail markers along the way also help to make this section the best bet for the less experienced paddler. Stops include Mound Key, Lovers Key State Park, Matanzas Pass Preserve, and Koreshan State Historical Site.\nPhoto courtesy of LVCBureau\nKayaking at dawn in Pine Island Sound\nThe second section stretches from Bunche Beach northwest to Cayo Costa State Park, with a branch going to the Charlotte Harbor Preserve State Park to the northeast. Covering this large area would take an average kayaker four to five days, and there are numerous islands and parks where the overnight adventurer can find a safe place to pitch a tent or sleep under the stars. Places to visit along the way include Picnic Island, J.N. \"Ding\" Darling National Wildlife Refuge, Cabbage Key, Pine Island Flatwoods Preserve, and Buck Key. While there are Blueway trail markers throughout much of this section, they are sometimes too far apart to be spotted visually, so a handheld GPS is recommended for longer trips. Most of these trails wind through the protected waters of Matlacha Pass Aquatic Preserve, but open-water paddling is required to get to the Charlotte Harbor Preserve and Cayo Costa State Park. Care should be taken when crossing the Intracoastal Waterway near Punta Rassa and between Useppa Island and Cabbage Key since it is heavily traveled by large cruising vessels.\nThe third Blueway section runs parallel to the Intracoastal Waterway, beginning at the Punta Rassa boat ramp and continuing east down the Caloosahatchee beyond the Franklin Locks in Alva. While there are plenty of safe havens such as Shell Creek, Whiskey Creek, Yellow Fever Creek, and the Orange River, paddling the broad, heavily trafficked Caloosahatchee can be best managed by staying along one shore or the other. There are some great places to explore in this section including Manatee Park, Four Mile Ecological Preserve, Hickey's Creek Mitigation Park, and Caloosahatchee Regional Park.\nThe Great Calusa Blueway has much to offer the novice and experienced paddler alike. Along the way you are going to see scores of birds, manatees, dolphins, and possibly even alligators. The fishing is fabulous and ranges from snook and mangrove snapper to largemouth bass in the freshwater sections near Alva. Because this expansive trail covers so much territory (encompassing many of the same preserves and parks identified in this book), the best way to get a handle on it before taking your first stroke is to visit its comprehensive website. The many places to stay, restaurants to enjoy, launches, rest stops, and more than 100 trail markers and GPS coordinates to upload will help you grasp the enormity of the Great Calusa Blueway. The website has a list of 20 canoe and kayak vendors who participate in the program, as well as identifying a half-dozen paddlecraft-friendly lodges that will help make your journey more comfortable.\nIn the Know:\nGreat Calusa Blueway\nDozens of launches throughout Lee County\nAdministration office: 6490 South Pointe Blvd., Ft. Myers, FL 33919\nWebsite: www. calusablueway.com\nE-mail: paddletrail@ leegov.com\n190 miles of GPS-marked trails\nAdmission fee charged on some launches, others are free.\nThe Great Calusa Blueway is such a refreshing and novel concept that it well deserves the accolades bestowed upon it by the Southern Tourism Society. While motoring across the back bays and estuaries of Lee County might get you there faster, the slow, steady pace of a sea kayak or canoe allows you to slow down and see the watery world of the Calusa Indians much as they did 1,000 years ago in their dugout canoes. Watching the mullet jump, the blue crabs scurry along beneath you, and the frigate birds hover above makes it all worthwhile.\nAuthor's note: The Great Calusa Blueway Paddling Festival is planned for November 1-4, 2012. For more information about participating in this exciting event, please go to www.Calusabluewaypaddlingfestival.com.\nThis is an excerpt from The Living Gulf Coast-A Nature Guide to Southwest Florida by Charles Sobczak. The book is available at all the Island bookstores, Baileys, Jerry's and your favorite online sites."} +{"text": "How is it that summer is already half over? If you haven’t had a moment to catch fireflies yet, chances are you soon will. To wish you the happiest of summers, we’ve compiled our favorite Healthy Child non-toxic warm weather fun tips to help you plan your family activities!\n1. Repel bugs without DEET. The pesticides used in insect repellant can be harmful for both adults and children! Another option is picaridin, a chemical based on pepper.\n2. Grow a pesticide-free lawn. Extensive use of pesticides has led to resistance in many insects and weed species. As a result, many resort to even stronger chemical pesticides, which may have greater consequences for human and environmental health. Opting for a pesticide-free lawn will have your children and pets playing happily (and safely!) in the grass all summer.\n3. Avoid GMOs when out celebrating with friends and family! Going out for a nice summer meal at your favorite restaurant? Consider making your restaurant food choices with GMOs in mind by avoiding high-risk ingredients like corn and soy.\n4. Be careful about chlorine in pools. High levels of chlorine in pools has been linked to asthma in small children. Children under the age of 7 who swam frequently in indoor chlorine pools may be at an increased risk for developing asthma, according to a 2006 study.\n5. Wade in a safe kiddie pool. Many kiddie pools are made out of PVC – the plastic known as the “poison plastic” thanks to its remarkably toxic production and disposal processes. PVC also contaminates both children and the environment with the endocrine-disrupting phthalates.\n6. Learn your Sunscreening Safety facts! Need a new tube of sunscreen? When shopping for sunscreen for you and your children, choose those formulated with zinc and titanium. These two non-toxic minerals provide even safer and more effective sunscreening.\n7. Bare feet = pedicures. Is your nail polish toxic? Many nail polishes contain chemicals known as the toxic trio: dibutyl phthalate, toluene, and formaldehyde. Choose safer nail polish – or dare to go bare!\n8. Grow veggies (safely). When you’re planing your summer garden, be cautious about fertilizers. Some sold as “natural” or “organic” are made from so-called biosolids, otherwise known as sewage sludge. Yuck!\nBonus! These last 8 trusted and tried Non-toxic Summer Fun Tips from real moms on Healthy Child‘s Blogger Network:\n10. Rachel of ClubMomMe.com says to pick up some non-toxic beach toys. ”Plastic can leach chemicals when it gets hot in the sun, and this will ensure your child is not exposed to any chemicals.”\n11. Susan of LilBitOfMamaTime.com offers the following bug bite and bee sting remedy: “Mix a tbsp. of baking soda with a tbsp. of white vinegar till it forms a paste and put on bug bites and bee stings to help remove the itch. My three-year-old daughter has fun ‘painting’ her boo boo with the white paste.”\n12. Happy Tot Mom says, “Make wearing a hat a standard part of outside play!” She used a large brimmed sun hat when her son was a baby and transitioned to another when he outgrew his infant hat; both hats were UPF 50+. “Hats go on before we head outside every day!”\n13. Hillary of Accidentally Green has a post up about her top 3 non-toxic tips for summer fun. Tip #1? Remember to slather on the non-toxic sunscreen before taking the kids outside!\n14. Amber of Easy Green Mama suggests having fun with non-toxic homemade bubbles. “My boys are entertained for hours when playing outside with bubbles. It’s a super simple recipe to mix and in no time you are having bubble fun in the summer sun!”\nEASY NON-TOXIC HOMEMADE BUBBLES\n- 1/4 cup any natural dish wash soap\n- 3/4 cup warm water\n- 5 drops of glycerin\n15. Lori of Groovy Green Livin‘ has five tips for greening a BBQ on her site, including some tips on finding eco-friendly and reusable tableware for large family gatherings!\n16. Suzan of Happy Mom Blogger suggests making your own healthy popsicles. “Use BPA-free popsicle molds or make your own mold. Just use small drinking glasses. Fill it with your kid’s favorite juice or make your own. When half frozen, stick in a wooden popsicle stick or use a spoon.”\nVeggie Popsicles Kids Will Love"} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/serving/hot_load/scripts/scan_hotload_deployment_health.py. Lines: 1056.\n\n#!/usr/bin/env python3\n\"\"\"\nFind Kubernetes deployments using legacy hotload wiring across all contexts.\n\npython py/fireworks/serving/hot_load/scripts/scan_hotload_deployment_health.py\n\npython py/fireworks/serving/hot_load/scripts/scan_hotload_deployment_health.py --only-summary\n\"\"\"\n\nfrom __future__ import annotations\n\nimport argparse\nimport json\nimport re\nimport subprocess\nimport sys\nimport time\nfrom concurrent.futures import ThreadPoolExecutor, as_completed\nfrom dataclasses import dataclass\nfrom pathlib import Path\nfrom typing import Any\n\nfrom tqdm import tqdm\n\nHOTLOAD_BASE_MODEL_WATCH_DIR_FLAG = \"--hot-load-base-model-watch-dir\"\nHOTLOAD_P2P_COLLECTIVE_FLAG = \"--hot-load-p2p-collective\"\nSERVING_CONTAINER_NAME = \"serving\"\nGPU_RESOURCE_NAME = \"nvidia.com/gpu\"\nCONTEXT_SCAN_PARALLELISM = 4\n\nACCOUNT_ID_LABEL = \"fireworks.ai/deploymentAccountId\"\nDEPLOYMENT_ID_LABEL = \"fireworks.ai/deploymentId\"\n\nFIRECTL_LOOKUP_PARALLELISM = 16\n\nFIRECTL_STATUS_MISSING = \"MISSING\" # firectl returned NotFound\nFIRECTL_STATUS_NO_LABELS = \"NO_LABELS\" # k8s deployment lacks fireworks.ai labels\nFIRECTL_STATUS_LOOKUP_ERROR = \"LOOKUP_ERROR\" # firectl call failed in an unrecognised way\n\n\n@dataclass(frozen=True)\nclass DeploymentRow:\n cluster: str\n hotload_type: str\n account_id: str\n deployment_id: str\n current_replicas: int\n desired_replicas: int\n gpus: float\n create_date: str\n image_version: str\n deployment_shape_version: str\n latest_shape: bool\n official_shape: bool\n\n firectl_status: str\n created_by: str\n firectl_profile: str\n\n\n@dataclass(frozen=True)\nclass FirectlLookupResult:\n status: str\n created_by: str\n profile: str\n deployment_shape: str\n enable_hot_load: bool\n\n\n@dataclass(frozen=True)\nclass ShapeLookupResult:\n latest_version: str\n latest_shape_enables_hot_load: bool\n\n\n@dataclass(frozen=True)\nclass OfficialShapeInfo:\n resource_name: str\n enables_hot_load: bool\n\n\n@dataclass(frozen=True)\nclass SkippedContext:\n cluster: str\n reason: str\n\n\n@dataclass(frozen=True)\nclass ContextScanResult:\n cluster: str\n scanned_deployments: int\n rows: list[DeploymentRow]\n skipped: SkippedContext | None\n\n\ndef run_command(args: list[str], timeout_seconds: int) -> subprocess.CompletedProcess[str] | None:\n try:\n return subprocess.run(\n args=args,\n check=False,\n stdout=subprocess.PIPE,\n stderr=subprocess.PIPE,\n text=True,\n timeout=timeout_seconds,\n )\n except subprocess.TimeoutExpired:\n return None\n\n\ndef log(message: str) -> None:\n print(message, file=sys.stderr, flush=True)\n\n\ndef kubectl_contexts(timeout_seconds: int) -> list[str]:\n result = run_command(\n args=[\"kubectl\", \"config\", \"get-contexts\", \"-o\", \"name\"],\n timeout_seconds=timeout_seconds,\n )\n if result is None:\n raise RuntimeError(f\"kubectl context listing timed out after {timeout_seconds}s\")\n if result.returncode != 0:\n raise RuntimeError(result.stderr.strip() or result.stdout.strip())\n return [line.strip() for line in result.stdout.splitlines() if line.strip()]\n\n\ndef cluster_name_from_context(context: str) -> str:\n return context.split(\" \", maxsplit=1)[0]\n\n\ndef repo_root() -> Path:\n return Path(__file__).resolve().parents[5]\n\n\ndef parse_bool(value: Any) -> bool:\n if isinstance(value, bool):\n return value\n if value is None:\n return False\n return str(value).strip().lower() in {\"1\", \"t\", \"true\", \"y\", \"yes\"}\n\n\ndef official_shape_infos() -> dict[str, OfficialShapeInfo]:\n shape_infos: dict[str, OfficialShapeInfo] = {}\n accounts_dir = repo_root() / \"serving\" / \"deploy\" / \"accounts\"\n if not accounts_dir.is_dir():\n return shape_infos\n\n for path in accounts_dir.glob(\"*/*.yaml\"):\n account_id = path.parent.name\n shape_id = path.stem\n resource_name = f\"accounts/{account_id}/deploymentShapes/{shape_id}\"\n try:\n text = path.read_text()\n except OSError:\n text = \"\"\n shape_infos[resource_name] = OfficialShapeInfo(\n resource_name=resource_name,\n enables_hot_load=bool(re.search(r\"(?m)^\\s*enable_hot_load\\s*:\\s*true\\b\", text)),\n )\n return shape_infos\n\n\ndef kubectl_deployments_for_context(\n context: str,\n request_timeout_seconds: int,\n process_timeout_seconds: int,\n max_attempts: int,\n retry_delay_seconds: float,\n quiet: bool,\n) -> tuple[list[dict[str, Any]] | None, str | None]:\n last_error = \"\"\n for attempt in range(1, max_attempts + 1):\n result = run_command(\n args=[\n \"kubectl\",\n \"--context\",\n context,\n \"get\",\n \"deployments\",\n \"-A\",\n \"-"} +{"text": "About Carmichael's — A History Founded in Medicine\nCarmichael’s Cashway Pharmacy, Inc. began operations as a local retail pharmacy in Crowley, Louisiana in September 1969 and was incorporated in the State of Louisiana on December 10, 1993. In the early 1990s, Carmichael’s expanded its services regionally by offering infusion therapy and durable medical equipment.\nIn 1999, Carmichael’s opened a second location in Lafayette, and in 2004, acquired a third location in Lake Charles, all of which served to further establish its service presence in Louisiana. Presently, Carmichael’s can provide pharmacy, durable (home) medical equipment and nutritional products, supplies and services to all sixty-four parishes in Louisiana, as well as to certain locations in neighboring states.\nCarmichael’s is an independently operated pharmacy and medical equipment company, with a dedicated focus on meeting the needs of our customers and the medical community in our service area. Our mission is to be the highest quality provider of a full line of home medical equipment and retail, institutional, compounding and infusion therapy pharmacy products and services in our service area. We constantly strive to enhance our customer service and operations through the employment of training, performance evaluation and management techniques and the utilization of strategic planning initiatives. Accordingly, Carmichael’s employs competent and highly trained licensed pharmacists, technicians, nurses, respiratory therapists and other skilled professionals. We continue to be accredited by The Joint Commission, indicating our commitment to our mission, striving at all times to ensure that the patient’s well-being is our #1 priority. The sizes and geographic locations of our operations enable us to meet the unique pharmacy and medical equipment needs in our service area in a timely and efficient manner.\nCarmichael’s pharmacy and medical equipment operations are conducted in Lafayette, Crowley and Lake Charles, Louisiana, and currently are composed of four material service lines:\n- Retail Pharmacy Products and Services, consisting primarily of walk-in sales of prescription medications and complementary products, including uniforms, non-specialty pharmaceuticals, vitamins, supplements and nutritionals;\n- Institutional Pharmacy Services, consisting of the provision of specialty and non-specialty pharmaceuticals and biological products to institutional clients or to patients in institutional settings, such as nursing homes, behavioral facilities, assisted living facilities, developmental disabilities facilities, rehabilitation facilities, hospices and correctional facilities;\n- Specialty Pharmacy Services, comprised generally of drugs for the treatment of major conditions, including, among others, respiratory system weakness, cancer, human immunodeficiency virus (HIV), acquired immunodeficiency syndrome (AIDS), hemophilia, hepatitis C, multiple sclerosis, infertility, Crohn’s disease, rheumatoid arthritis and growth hormone deficiency; and,\n- Durable Medical Equipment Products and Services, consisting primarily of products for patient-administered home care, such as ambulatory equipment; hospital beds and supplies; diabetic products and supplies; bath aids; respiratory therapy equipment, supplies and services, including oxygen concentrators and portable cylinders, continuous and bilevel positive airway pressure equipment and nebulizers; diabetes management products; orthopedic products; ostomy; prosthetics; and supplements and nutritionals.\nSome of the benefits from choosing Carmichael’s as your provider of choice are our:\n- Extensive service lines provide the convenience of a one-stop-shop for all of your pharmacy and medical equipment needs – saving you both time and money;\n- Expansive hours of operation and easily accessible locations provide convenience to our customers, with 24-hours-a-day availability of professional personnel to answer questions and provide assistance to patients residing in short-term, intermediate, long-term and other institutional care facilities and certain other patients and their caregivers who choose Carmichael’s as their service provider;\n- Staff members work closely with healthcare providers, educating them on proper operating procedures and necessary safety guidelines;\n- Follow-up program, through continual correspondence and monitoring, ensures that the patient is using the medical equipment properly and obtaining optimal benefits from the prescribed treatment; and,\n- Special coalitions and similar working relationships with home health agencies and hospice organizations provide the platform necessary for concentration on the unique needs of their patients.\nIn the near future, Carmichael’s intends to enhance and expand its website capabilities to include online access to certain service lines, including diabetic and ostomy supplies and nutritional and certain medical equipment and pharmacy products and supplies, on a nationwide basis.\nThrough the years, some things may have changed, but one thing always remains the same… our commitment to provide our clients, customers and patients with the quality products and excellent services they have come to expect and depend on from the entire staff at Carmichael’s.\nYou can always depend on"} +{"text": "View Full Version : Kurond (the re-try!) [WIP]\n04-14-2011, 11:51 PM\nWell! I am restarting the work on Kurond! Here is the base Image I have to work with:\nUploaded with ImageShack.us (http://imageshack.us)\n04-14-2011, 11:59 PM\nUh oh, broken pic is broken!\n04-15-2011, 12:00 AM\nI fixed it!\n04-15-2011, 12:07 AM\nUnless your map is a frog in an ice cube, I don't think it's fixed...\n04-15-2011, 12:13 AM\nOh.. I'm sorry.. It appears fine on mine. But here you can use this http://img703.imageshack.us/img703/3263/rathengarcontinents.png\n04-20-2011, 01:37 AM\nAfter a couple days of working experimenting and finding Textures im proud to present a base of the Kurond map. I have currently only done the Human Kingdoms and roads as I have not figured out how to do the other races.\nPs: This map is for a member of my RolePlay clan.\nPs: Ps: Use this to help me find If I did anything wrong.\n\"The lower half, or human kingdoms is mildly foresty on the east side, and on west it's open plains. The terrain of Rathengar used to be a deadly corrupted land, only one spot of that corrupted land remains. On the West side of it is thinned out forests, being very thin near the ocean border slightly getting thicker as you move east, but then starts to thin out again as you reach the start of the words of the first picture i gave you. As for Rathengar, there is a huge circular mountain \"border\" surrounding the city (with enough room for three farm towns, and quite a bit of open plains, though Rathengar itself should still be quite big.) there is one \"secret\" river in to the northern side of the mountains, this land is corrupted and is the only remaining corrupted land, the river is surrounded by forests and cannot be seen, it leads to a lake east of Rathengar, (not very east, a mile or two) The entrance and exit of the river should be hidden from view. The entrance to the mountainous border is south east. There is only one. As for the very north of the continent that Rathengar is on, the terrain is VERY mountain-y, but only on the very ocean border. The very east side is a rejuvenated desert, has the terrain of a desert but no sand, and what I mean by that is that he has lots of those sand mounds (but instead of sand it's now dirt and grass.) As for the Goblin kingdoms, the whole place is deforested, there are several factories (weapons (no guns yet) and small machines mostly.) Also, the ocean to the west of the Human + Elven kingdoms is much larger than the ocean inbetween the goblin kingdoms, the kingdoms of chaos (now human owned) and the Human + Elven kingdoms. So Humans would not travel west to reach Rathengar. Also I have decided on names for each continent. The goblins are Grek't Lothor (It's Gret language for \"Land of the Superiorly Intelligent\" (Superiorly Intelligent is what Gret means in their language)). The Continent Rathengar is on is Called Khrim, I think I had decided that in my first post. Now the biggest one is going to be split into two names, Lati'Gromar (Ancient language for \"Nature Keepers\", that's the northern part) and the southern part is Lati'Grimar (Ancient language for \"Nature Killers\", as humans were often seen has careless with nature by the gods, before they disappeared.)\"\nPlease do not refrain from giving me C&C.\n04-20-2011, 06:17 PM\nI just got back home and should start working on it soon.\n04-20-2011, 08:00 PM\nI can't make out much without a larger size but from what I can see I'd say it looks just fine.\n04-20-2011, 08:11 PM\nI'm sorry, about the low size.\n04-20-2011, 09:17 PM\nIt looks fantastic to me! Awesome, actually. Higher res would be nice, though.\nHowever, it looks like the land is really, really small if those are cities. That big city in the western continent looks a few hours walk from its neighbors, for example. Is that true?\n04-20-2011, 09:26 PM\nI'm actually not sure if all facts be told. I believe the whole range of this map is around 2000 x 2000 miles. But, I have no actual confirmation of how big this is.\n04-20-2011, 10:19 PM\nAnd a higher resoultion link.\n04-21-2011, 12:00 PM\nNice work - you've done a great job in taking it forward from the first image you have. It's clear what everything it and reads nicely.\nYou can upload an image directly to the CG - and that will get around image size questions. Just hit the Advanced button when composing a post and click the paperclip icon. That will let you upload an image here. That's the best way to post images as it doesn't depend on an external site.\nIf you want to take this style further I'd suggest working on your mountains. They look very rounded at the moment, rather than sharp peaks. Now there are as many types of mountains are there are map makers, so have a hunt around in the tutorials section and you'll find a lot of mountain tutorials. Other than that, congratulations on a goodlooking map!\n04-22-2011, 12:17 AM\nI think it might be because of the snow I added.\n05-15-2011, 03:47 PM\nI used Ramah's brushes and his main idea's of Aronbor to make this :]\nIts not nearly done.. I've been doing this as a side project doodle type thing.\nA closer look at it xP\n05-17-2011, 05:33 PM\nYeah, its really pretty, but I would support the motion to upload a higher res picture.\nEDIT: Oops! Didn't realize there was a second page! Ignore that.\nPowered by vBulletin® Version 4.2.3 Copyright © 2016 vBulletin Solutions, Inc. All rights reserved."} +{"text": "o\",\n \"json\",\n f\"--request-timeout={request_timeout_seconds}s\",\n ],\n timeout_seconds=process_timeout_seconds,\n )\n if result is None:\n last_error = f\"kubectl process timed out after {process_timeout_seconds}s\"\n elif result.returncode != 0:\n last_error = compact_error(result.stderr or result.stdout)\n else:\n try:\n payload = json.loads(result.stdout)\n except json.JSONDecodeError as exc:\n last_error = f\"invalid kubectl JSON: {exc}\"\n else:\n items = payload.get(\"items\")\n if not isinstance(items, list):\n return None, \"kubectl JSON did not contain an items list\"\n return items, None\n\n if attempt < max_attempts:\n if not quiet:\n log(\n f\" attempt {attempt}/{max_attempts} failed for {context}: \"\n f\"{last_error}; retrying in {retry_delay_seconds:g}s\"\n )\n time.sleep(retry_delay_seconds)\n\n return None, last_error\n\n\ndef compact_error(text: str, max_len: int = 220) -> str:\n one_line = \" \".join(line.strip() for line in text.splitlines() if line.strip())\n if len(one_line) <= max_len:\n return one_line\n return one_line[: max_len - 3] + \"...\"\n\n\ndef pod_template_containers(deployment: dict[str, Any]) -> list[dict[str, Any]]:\n return deployment.get(\"spec\", {}).get(\"template\", {}).get(\"spec\", {}).get(\"containers\", [])\n\n\ndef serving_container(deployment: dict[str, Any]) -> dict[str, Any] | None:\n for container in pod_template_containers(deployment):\n if container.get(\"name\") == SERVING_CONTAINER_NAME:\n return container\n return None\n\n\ndef container_tokens(container: dict[str, Any]) -> list[str]:\n tokens: list[str] = []\n for field_name in (\"command\", \"args\"):\n values = container.get(field_name, [])\n if isinstance(values, list):\n tokens.extend(str(value) for value in values)\n elif values:\n tokens.append(str(values))\n return tokens\n\n\ndef has_flag(tokens: list[str], flag: str) -> bool:\n return any(token == flag or token.startswith(f\"{flag}=\") for token in tokens)\n\n\ndef parse_int(value: Any, default: int = 0) -> int:\n if value is None:\n return default\n try:\n return int(value)\n except (TypeError, ValueError):\n return default\n\n\ndef parse_gpu_quantity(value: Any) -> float:\n if value is None:\n return 0.0\n if isinstance(value, (int, float)):\n return float(value)\n\n text = str(value).strip()\n if not text:\n return 0.0\n\n # Kubernetes extended resources are normally integers, but this accepts\n # standard milli quantities in case a context reports normalized resources.\n if text.endswith(\"m\"):\n try:\n return float(text[:-1]) / 1000\n except ValueError:\n return 0.0\n\n try:\n return float(text)\n except ValueError:\n return 0.0\n\n\ndef serving_container_gpu_request(container: dict[str, Any]) -> float:\n requests = container.get(\"resources\", {}).get(\"requests\", {})\n return parse_gpu_quantity(requests.get(GPU_RESOURCE_NAME))\n\n\ndef image_version(image: str) -> str:\n if not image:\n return \"\"\n\n image_without_digest, separator, digest = image.partition(\"@\")\n last_segment = image_without_digest.rsplit(\"/\", maxsplit=1)[-1]\n if \":\" in last_segment:\n return last_segment.rsplit(\":\", maxsplit=1)[-1]\n if separator:\n return digest[:19] if digest else \"\"\n return image\n\n\ndef deployment_row(context: str, deployment: dict[str, Any]) -> DeploymentRow | None:\n container = serving_container(deployment)\n if container is None:\n return None\n\n tokens = container_tokens(container)\n if not has_flag(tokens=tokens, flag=HOTLOAD_BASE_MODEL_WATCH_DIR_FLAG):\n return None\n\n # K8s args are authoritative. firectl Extra Values like\n # enableHotloadP2PCollective=true is operator intent only - the chart that\n # rendered this deployment may have ignored it, so the actual serving args\n # are the ground truth.\n hotload_type = \"collective\" if has_flag(tokens=tokens, flag=HOTLOAD_P2P_COLLECTIVE_FLAG) else \"legacy\"\n\n metadata = deployment.get(\"metadata\", {})\n labels = metadata.get(\"labels\", {}) or {}\n current_replicas = parse_int(deployment.get(\"status\", {}).get(\"replicas\"))\n desired_replicas = parse_int(deployment.get(\"spec\", {}).get(\"replicas\"), default=1)\n gpus_per_replica = serving_container_gpu_request(container)\n\n return DeploymentRow(\n cluster=context,\n hotload_type=hotload_type,\n account_id=str(labels.get(ACCOUNT_ID_LABEL, \"\")).strip(),\n deployment_id=str(labels.get(DEPLOYMENT_ID_LABEL, \"\")).strip(),\n current_replicas=current_replicas,\n desired_replicas=desired_replicas,\n gpus=gpus_per_replica * current_"} +{"text": "Seviced and Self Catering Central\nLondon apartments deals and offers\nCentral London serviced and self catering apartments as\nwell as studio apartments in London city are very convenient for long\nterm stay and short term stay during your holidays. Now that you on your\nway to London, have you decided where to stay? Consider renting one of\nthe many London apartments. London self catering apartments are more economical\nand spacious than the average central London hotel. These large and roomy\ncentral London apartments offer better privacy then hotels, great locations\nand reasonable rates for long term stay in particular and to some extend\nshort term stay.\nThe central London apartments can be tailored to you and\nyour household's needs. If the whole is family coming then why not choose\nto book a one bedroom or two bed rooms London city apartment to accommodate\nthe whole family. You may decide to stay in Kensington apartments and\nin the area we have the Harrington Court apartments located only a minute’s\nwalk away from the South Kensington tube station or the Dylan Kensington\nStudio apartments located on Warwick Road and very close to Earls Court\nstation. In the same area, there is also the Dylan Apartments Earl’s\nCourt at the Philbeach Gardens. The Apart hotel 73 on the Inverness Terrace\nBayswater W2 offer studio apartments offer very competitive rates in London.\nThe Dolphin House Apartments located between Pimlico and Victoria are\nperfect to you stay in central London.\nIn case you are coming to London to rest or for business?\nWonderful! Elegant London serviced apartments are waiting for you. Been\nto London several times? Do you fancy mingling with the locals? Perhaps\nLondon self catering apartments are better suited to your needs this holiday.\nLondon serviced apartments and self catering apartments as well as studio\napartments are available for your trips. Why not take a look at the Vancouver\napartments hotel in Bayswater area which has apartments ranging from studio\nto 3 bedroom apartments and can accommodate from 1 to 6 persons. For those\nof you on a fixed budget, not to worry we have sizable studio apartments\ncovering central London. Here are a few more particulars regarding our\ncentral London apartments.\nLondon serviced and self catering apartments offer luxury\nand convenience, without the cramped and impersonal feel of yet another\nhigh priced hotel. London serviced apartments offers hotel amenities and\nare available if you choose to partake. A serviced apartment can ease\nthe stress of a business trip, by being a real home you can unwind in.\nThe beautifully furnished living room provides ample work space and a\nstylish alternative to business meetings. Located in the heart of London,\nyour serviced apartment is a heartbeat away from tourist and local hot\nspots. Have adventure or cook a gourmet meal, everything is up to you.\nTake a look at London City apartments like Chancery Lane Residence and\nthe Langham Apartments 28-30 Rivington Street London EC2A 3DZ close to\nShoreditch and if you are after luxury serviced and self catering apartments\nclose to the West End, the Grand Plaza apartments will offer you the luxury\nLondon Studio apartments and London self\ncatering and serviced apartments\nLondon self catering apartments are ideal\nfor the more independent and budget minded travellers. Accommodations\nlike these give you the taste of being a local Londoner; you can blend\ninto the neighbourhood, shop at the corner market, and have room to entertain\nas you might do at home. London self catering apartments are found in\nsome of the most charming areas of central London; near theatres, the\nunderground and impressive cultural sites.\nStudio apartments can be either self catering or serviced.\nDesigned for a solo sightseer or couples on holiday, London studio apartments\nmake the perfect base to go exploring the best of London in the course\nof the day, then retiring to your private spacious residence. Enjoy London\nto the fullest this trip, whether it’s a couple nights or months.\nFabulous London apartments can be booked today. The central London serviced\nand self catering apartments are for both short term stay and long term\nstay. check out London discount apartmentsoptions"} +{"text": "- About Us\n- Local Savings\n- Green Editions\n- Legal Notices\n- Weekly Ads\nConnect with Us\nKitsap writers select top girls basketball stars\nThe 2011 All-Kitsap County Girls Basketball Team was compiled by the sports writers for the Bremerton Patriot, the Central Kitsap Reporter, the North Kitsap Herald, Bainbridge Island Review and the Port Orchard Independent.\nCandidates for the team are nominated by the writers for their respective areas. The nominees are then voted on by the writers; the top players make the teams. Two honorable mentions are also selected from each school for each sport.\nThe teams include the best players from area schools that not only performed well individually, but played a role in the success of their team.\nGirls Coach of the Year — Olympic High School’s Laurie Shaw led the Lady Trojans to a 16-11 record this season en route to their first state tournament appearance in 16 years. After going 4-6 in December, Shaw helped reverse her team’s fortunes when the Lady Trojans won nine of 11 games to wrap up the regular season with a No. 3 seed in the league standings. The streak secured an automatic berth to the district tournament, Olympic’s first in more than a decade.\nGuard — Jackie Steiger, junior, South Kitsap: After missing a significant portion of the 2009-10 season because of a foot injury, Steiger settled in as the Wolves’ starting shooting guard this season. One of the top shooter on the Kitsap Peninsula, Steiger converted 59.7 percent of her 3-pointers in South’s first 20 games. She also averaged 12.7 points and 1.18 steals per contest.\nGuard — Amanda Carper, sophomore, Kingston: In a season that began without top scorer Sophia Baetz on the court, Carper filled the shoes of lead scorer almost immediately. With 10.8 points per game, 8 blocks per game and 2.6 steals per game, Carper helped bring Kingston to a winner-to-state game against Olympic High School, where the team fell just short of another state tournament.\nGuard — Kelsey Callaghan, senior, South Kitsap: A three-year starter, Callaghan helped direct the Wolves to state-playoff appearances in two of the last three seasons. Prior to her arrival, South had not advanced to the Class 4A state tournament since 2000. Coach Mark Lutzenhiser trusted Callaghan, who averaged 5.3 assists per game in the team’s first 20 contests, to run the offense and make adjustments based on what she saw from opposing defenses.\nForward/Center — Shannon Jackson, senior, Olympic: Shannon Jackson spent the last four years in Japan before returning home to play for the Lady Trojans this season, averaging 12.4 points and 12.5 rebounds per game. Jackson’s double-double average helped lead Olympic to its first state tournament appearance in 16 years. Jackson earned Olympic League honors with a selection on the first team. Her post presence was crucial for head coach Laurie Shaw, who needed a power forward in the paint to propel the team’s chances. “It was a great season that started slow, but we gradually came together and make it to where we should have been,” Jackson said last week. Jackson is currently considering Pierce College (Tacoma), Highline (Des Moines) and Skagit Valley (Clinton) community colleges. Shaw said they will also send game films to Seattle University.\nForward/Center — Taylor Sunkel, junior, South Kitsap: After missing nearly the entire 2009-10 season following shoulder surgery, Sunkel emerged as one of the Wolves’ top low-post threats. Through 20 games, she averaged 12.1 points and 6.2 rebounds per game to help South to the second round of the Class 4A state tournament.\nG/F — Alex Rose-Albert, senior, Kingston: With solid statistics this season, Rose-Albert was another Kingston player that helped bring the team to the verge of another state tournament. Rose-Albert ended her final season with Kingston with 8.8 points per game, 11 blocks and 1.4 steals per game.\nF — Jordan Dixon, senior, Klahowya: Despite a sluggish season with a 2-14 Olympic League record, Dixon still managed to run the Eagles’ offense with 13.5 points and 5.5 assists per game. Dixon was also a menace on defense though the 20-game stretch, snagging 6.5 steals per game. Klahowya head coach Don Farrell turned the program from winless to playoff contenders in the last four years with the help of Dixon.\nF — Lexi Simmons, junior, North Kitsap: As a co-captain on a team with no seniors, Simmons led the team in almost every aspect of the game. She averaged 10.4 points per game, 6.6 rebounds per game, 2.2 steals per game with 1.8 assists per game.\nF — Grace Kenyon, sophomore, Bainbridge: Kenyon stepped up when standout guard Davi Gonzales was lost for the season to a broken leg. She averaged a double-double for the season with 11 points and 11 rebounds per game. Kenyon also averaged two steals and 1.5 assists per game.\nG — Lindsey Wicklein, junior, Kingston: Wicklein was a dual force for Kingston this season, averaging 7.7 points, eight blocks and 2.7 steals per game this season.\nG — Krista Stabler, junior, Central Kitsap: Krista Stabler helped the Cougars stay afloat in the Narrows League standings as a dual threat on the court. The junior guard averaged 14.3 points, 6.1 rebounds, 5.4 assists and 3.1 steals in a 20-game stretch.\nG — Hannah Depew, junior, Bainbridge: Depew was solid at the guard position for Bainbridge as she helped the team earn a second straight Mountain Division title. She scored eight points per game and also dished out four assists and three steals per game as well.\nOlympic High School honorable mention: Jayln Halstead, junior; Klahowya: Jonica Durbin, senior; Central Kitsap: Brittany Zawadzki, senior. Bainbridge Island honorable mentions: Davi Gonzales, senior; Morgan Moniz, senior. Kingston High School: Maggie Snaza, sophomore; Samantha Salas, freshman; Sophia Baetz, senior. North Kitsap: Alicia Whitbeck, freshman. South Kitsap: Ali Davis, junior; Dana Goularte, senior; Angela Romonsky, senior."} +{"text": "replicas,\n create_date=metadata.get(\"creationTimestamp\", \"\"),\n image_version=image_version(str(container.get(\"image\", \"\"))),\n deployment_shape_version=\"\",\n latest_shape=False,\n official_shape=False,\n firectl_status=\"\",\n created_by=\"\",\n firectl_profile=\"\",\n )\n\n\ndef parse_firectl_text_output(text: str) -> dict[str, str]:\n \"\"\"Top-level ``Key: Value`` fields only; skip lines indented under nested blocks.\"\"\"\n fields: dict[str, str] = {}\n for line in text.splitlines():\n if not line or line.startswith(\" \") or line.startswith(\"\\t\"):\n continue\n key, separator, value = line.partition(\":\")\n if not separator:\n continue\n fields[key.strip()] = value.strip()\n return fields\n\n\ndef parse_json_object_output(text: str) -> dict[str, Any] | None:\n start = text.find(\"{\")\n end = text.rfind(\"}\")\n if start == -1 or end == -1 or end < start:\n return None\n\n try:\n payload = json.loads(text[start : end + 1])\n except json.JSONDecodeError:\n return None\n if not isinstance(payload, dict):\n return None\n return payload\n\n\ndef deployment_shape_base(deployment_shape: str) -> str:\n marker = \"/versions/\"\n if marker not in deployment_shape:\n return \"\"\n return deployment_shape.split(marker, maxsplit=1)[0]\n\n\ndef deployment_shape_account(deployment_shape_base_name: str) -> str:\n parts = deployment_shape_base_name.split(\"/\")\n if len(parts) >= 4 and parts[0] == \"accounts\" and parts[2] == \"deploymentShapes\":\n return parts[1]\n return \"\"\n\n\ndef firectl_deployment_lookup_for_profile(\n account_id: str,\n deployment_id: str,\n firectl_binary: str,\n timeout_seconds: int,\n profile: str,\n) -> FirectlLookupResult:\n args = [firectl_binary]\n if profile:\n args.extend([\"-p\", profile])\n args.extend([\"-o\", \"json\", \"-a\", account_id, \"deployment\", \"get\", deployment_id])\n\n result = run_command(args=args, timeout_seconds=timeout_seconds)\n if result is None:\n return FirectlLookupResult(\n status=FIRECTL_STATUS_LOOKUP_ERROR,\n created_by=\"\",\n profile=profile,\n deployment_shape=\"\",\n enable_hot_load=False,\n )\n\n stdout = result.stdout or \"\"\n stderr = result.stderr or \"\"\n\n # firectl-admin can exit non-zero on multi-region / DELETING deployments\n # while still streaming valid fields first; trust stdout when it has a deployment.\n json_fields = parse_json_object_output(stdout)\n if json_fields is not None and json_fields.get(\"name\"):\n return FirectlLookupResult(\n status=str(json_fields.get(\"state\", \"\")).strip() or FIRECTL_STATUS_LOOKUP_ERROR,\n created_by=str(json_fields.get(\"created_by\", \"\")).strip(),\n profile=profile,\n deployment_shape=str(json_fields.get(\"deployment_shape\", \"\")).strip(),\n enable_hot_load=parse_bool(json_fields.get(\"enable_hot_load\")),\n )\n\n fields = parse_firectl_text_output(stdout)\n if fields.get(\"Name\"):\n return FirectlLookupResult(\n status=fields.get(\"State\", \"\").strip() or FIRECTL_STATUS_LOOKUP_ERROR,\n created_by=fields.get(\"Created By\", \"\").strip(),\n profile=profile,\n deployment_shape=fields.get(\"Deployment Shape\", \"\").strip(),\n enable_hot_load=parse_bool(fields.get(\"Enable Hot Load\")),\n )\n\n combined = stderr + stdout\n if \"NotFound\" in combined or \"not found\" in combined.lower():\n return FirectlLookupResult(\n status=FIRECTL_STATUS_MISSING,\n created_by=\"\",\n profile=profile,\n deployment_shape=\"\",\n enable_hot_load=False,\n )\n\n return FirectlLookupResult(\n status=FIRECTL_STATUS_LOOKUP_ERROR,\n created_by=\"\",\n profile=profile,\n deployment_shape=\"\",\n enable_hot_load=False,\n )\n\n\ndef firectl_deployment_lookup(\n account_id: str,\n deployment_id: str,\n firectl_binary: str,\n timeout_seconds: int,\n profiles: list[str],\n) -> FirectlLookupResult:\n if not account_id or not deployment_id:\n return FirectlLookupResult(\n status=FIRECTL_STATUS_NO_LABELS,\n created_by=\"\",\n profile=\"\",\n deployment_shape=\"\",\n enable_hot_load=False,\n )\n\n candidate_profiles = profiles or [\"\"]\n last_result: FirectlLookupResult | None = None\n for profile in candidate_profiles:\n result = firectl_deployment_lookup_for_profile(\n account_id=account_id,\n deployment_id=deployment_id,\n firectl_binary=firectl_binary,\n timeout_seconds=timeout_seconds,\n profile=profile,\n )\n last_result = result\n if result.status != FIRECTL_STATUS_MISSING:\n return result\n assert last_result is not None\n return last_result\n\n\ndef firectl_shape_lookup(\n deployment_shape_ba"} +{"text": "I support the proposed rulemaking to establish position limits for physical commodity derivatives. The CFTC does not set or regulate prices. Rather, the Commission is directed to ensure that commodity markets are fair and orderly to protect the American public.\nWhen the CFTC set position limits in the past, the agency sought to ensure that the markets were made up of a broad group of market participants with a diversity of views. At the core of our obligations is promoting market integrity, which the agency has historically interpreted to include ensuring markets do not become too concentrated.\nPosition limits help to protect the markets both in times of clear skies and when there is a storm on the horizon. In 1981, the Commission said that “the capacity of any contract market to absorb the establishment and liquidation of large speculative positions in an orderly manner is related to the relative size of such positions, i.e., the capacity of the market is not unlimited.”\nToday’s proposal would implement important new authorities in the Dodd-Frank Act to prevent excessive speculation and manipulation in the derivatives markets. The Dodd-Frank Act expanded the scope of the Commission’s mandate to set position limits to include certain swaps. The proposal re-establishes position limits in agriculture, energy and metals markets. It includes one position limits regime for the spot month and another regime for single-month and all-months combined limits. It would implement spot-month limits, which are currently set in agriculture, energy and metals markets, sooner than the single-month or all-months-combined limits. Single-month and all-months-combined limits, which currently are only set for certain agricultural contracts, would be re-established in the energy and metals markets and be extended to certain swaps. These limits will be set using the formula proposed today based upon data on the total size of the swaps and futures market collected through the position reporting rule the Commission hopes to finalize early next year. It is only with the passage and implementation of the Dodd-Frank Act that the Commission will have broad authority to collect data in the swaps market.\nIt will be some time before position limits for single-month and all-months-combined can be fully implemented. In the interim, if a trader has a position that is above a level of 10 and 2 ½ percent of futures and options on futures open interest in the 28 contracts for which the Commission is proposing position limits, I have directed staff to collect information, including using special call authority when appropriate, to monitor these large positions. Staff will brief the Commission and make any appropriate recommendations based upon existing authorities for the Commission’s consideration during its closed surveillance meetings at least monthly on what staff finds.\nCollecting this data relating to large traders with positions in the futures markets above such levels or points of 10 and 2 ½ percent would give the Commission a better look into the market and help us identify potential concerns. For example, if a trader does not have a bona fide hedge exemption, we can look into the details of its position and its intentions. It may also give us additional information as to how the position limits in the proposed rulemaking would affect traders in these markets.\nThese levels, or points, are the positions at which CFTC staff will brief the Commission under its existing authorities. They would not be a substitute for current position limits or accountability levels, and they should not be interpreted to be a level that will automatically trigger any additional regulatory action.\nSwap Trading Relationship Documentation Requirements for Swap Dealers and Major Swap Participants\nI support the proposed rulemaking that establishes swap trading relationship documentation requirements for swap dealers and major swap participants. The proposed regulations are consistent with the express mandate of the Dodd-Frank Act to prescribe standards for the timely and accurate confirmation, processing, netting, documentation and valuation of swap transactions. One of the primary goals of the Dodd-Frank Act was to establish a comprehensive regulatory framework that would reduce risk, increase transparency and promote market integrity within the financial system. The proposed regulations accomplish this objective by establishing procedures that will promote legal certainty regarding terms of swap transactions, early resolutions of valuation disputes, enhanced understanding of one counterparty’s risk exposure to another, reduced operational risk and increased operational efficiency. One of the key chapters from the 2008 financial crisis was when large financial players, including AIG, had valuation disputes and other problems regarding documentation standards. These rules will directly address many of these issues, highlighting issues for senior management and regulators earlier and lowering risk to the public.\nLast Updated: February 17, 2011"} +{"text": "The 1990 amendments to the U.S. Clean Air Act forced process plants and other industrial facilities throughout the country to examine every aspect of their process heating operations to reduce cumulative emissions of nitrous oxides (NOx). In San Francisco, the 1994 Regulation 9, Rule 10 of the Bay Area Air Quality Management District imposed the most stringent NOx emissions at the time anywhere in the world.\nIn 1998, the U.S. Environmental Protection Agency (EPA) refined the Act's amendments into the National Emission Standards for Hazardous Air Pollutants from Petroleum Refinery Vents (referred to as Refinery MACT II), which cover emissions from catalytic cracker, catalytic reformer and sulfur plants. These rules were promulgated in late 2000 and have now impacted the majority of refineries. Some areas of the country have until 2008 to fully meet emissions targets, but EPA has already teamed up with the Department of Justice to force multimillion-dollar emission-reduction deals with major oil producers.\nIn California, the Los Angeles and San Francisco air districts have imposed limits of about 0.030 lb/Mm Btu average NOx emissions (as a group average) for all current heaters in an existing refinery. New heaters typically are required to include secondary catalytic reduction (SCR), using ammonia and a catalyst to react with the nitrous oxides, to reduce NOx emissions to the 5- to 10-ppm range. The San Joaquin Valley Air Pollution Control District, which oversees a \"severe non-attainment area\" for smog emissions, recently approved regulations forcing boilers and combustion gas turbines to limit NOx emissions to below 9 to 15 ppm, depending upon size and service, over the next several years. The impact of these deadlines is severe. Basically, a plant must comply or shut down the high NOx-producing furnaces and boilers.\nThe regulations can be most difficult to meet during startup, shutdown or upset conditions. Yet, short NOx emission excursions can lead to expensive fines and create community ill will.\nTypical Vertical Cylindrical Process Heater\n- Conventional units produce 75 to 120 ppm NOx, while ultra-low-NOx designs now can cut emissions to as low as 13 ppm.\n- These regulations have spurred the replacement of aging furnace burners with newer low-NOx designs. However, experience has shown that sensitive online oxygen monitoring and draft controls are equally critical for reducing NOx emissions in process heaters.\nThermal NOx results from the fixation of molecular nitrogen and oxygen present in the combustion air. NOx emissions increase rapidly at peak flame temperatures exceeding 1,540 Degrees C (2,800 Degrees F) and with the time reactants remain within the area of peak flame. The more oxygen present in the eye of the flame, the more NOx made. The industry norm is to burn with residual 3% oxygen going out the stack. Above that oxygen level, NOx emissions rise. In addition, the burn becomes less efficient because excessive amounts of air are being heated. Reducing oxygen levels below 3% is desirable but difficult to achieve, especially in older furnaces prone to air leaks through the furnace walls and before the oxygen sensing equipment.\nAn often-overlooked variable is the heating value of the fuel. High Btu-value fuel gas rich in propane and butanes can increase NOx production by 25% to 40%, depending upon composition.\nVertical Process Heater with SCR Retrofit\n- Thanks to ammonia injection followed by secondary catalytic reduction, flue-gas exits with only 5 to 10 ppm NOx.\nThe most common methods to lower NOx emissions are use of low-NOx burners (LNB) alone or in combination with flue gas recirculation (FGR) through the burner. According to EPA technical document No. 453/R-93-034, which identifies alternative controls for NOx emitters, FGR combined with LNBs can lead to total NOx reduction of 55% compared to uncontrolled emissions. State-of-the-art burners can now cut this much further, to as much as 80% to 85%, and, in some cases, possibly more.\nFGR recycles 15% to 30% of the inert products of combustion back to the primary combustion zone. This dilutes the reactants and boosts the mass flow through the burners and flames. At a fixed heat release from the fuel gas, the higher mass flow of gases leads to a lower peak flame temperature, which, in turn, reduces local oxygen concentrations to levels below 3% and inhibits thermal NOx formation.\nManipulation of several variables can cut NOx emissions:\n- reducing the oxygen concentration in the flame zones;\n- stretching the flame out, to reduce the peak flame temperature and force the flame to burn in zones with reduced oxygen concentration; and\n- increasing the flue-gas mass flow so that a given flame must heat up more flue gas, thus decreasing peak flame temperature.\nA great amount of proprietary effort has gone into burner designs to \"stage\" the fuel release ports that spread the flames out, to induce FGR by the action of the fuel-gas jets, and to spray the fuel into areas lean in oxygen. Self-induced FGR is preferable and much less costly than external systems.\nExternal systems typically involve the use of a motor- or turbine-driven fan, ductwork, dampers, etc. Optimal operation requires accurate oxygen analyzers, well-placed sample points and precise damper controls for both negative draft fireboxes of simple process heaters and positive fireboxes such as boilers. So, for every retrofit, always consider installing an analyzer and precision damper drives, linkages, damper blades, bearings, etc., to effect smooth control of the draft without any sloppy play (hysteresis). Even with SCR techniques, controlling the firebox environment is essential."} +{"text": "se_name: str,\n firectl_binary: str,\n timeout_seconds: int,\n profile: str,\n) -> ShapeLookupResult:\n account_id = deployment_shape_account(deployment_shape_base_name)\n if not account_id:\n return ShapeLookupResult(latest_version=\"\", latest_shape_enables_hot_load=False)\n\n args = [firectl_binary]\n if profile:\n args.extend([\"-p\", profile])\n args.extend(\n [\n \"-o\",\n \"json\",\n \"deployment-shape-version\",\n \"get\",\n \"-a\",\n account_id,\n f\"{deployment_shape_base_name}/versions/latest\",\n ]\n )\n\n result = run_command(args=args, timeout_seconds=timeout_seconds)\n if result is None:\n return ShapeLookupResult(latest_version=\"\", latest_shape_enables_hot_load=False)\n\n payload = parse_json_object_output(result.stdout or \"\")\n if payload is None:\n return ShapeLookupResult(latest_version=\"\", latest_shape_enables_hot_load=False)\n\n snapshot = payload.get(\"snapshot\") or {}\n enables_hot_load = False\n if isinstance(snapshot, dict):\n enables_hot_load = parse_bool(snapshot.get(\"enable_hot_load\"))\n return ShapeLookupResult(\n latest_version=str(payload.get(\"name\", \"\")).strip(),\n latest_shape_enables_hot_load=enables_hot_load,\n )\n\n\ndef enrich_with_shape_latest(\n rows: list[DeploymentRow],\n firectl_binary: str,\n timeout_seconds: int,\n parallelism: int,\n verbose: bool,\n official_shapes: dict[str, OfficialShapeInfo],\n quiet: bool,\n) -> list[DeploymentRow]:\n unique_shape_keys = sorted(\n {\n (row.firectl_profile, deployment_shape_base(row.deployment_shape_version))\n for row in rows\n if deployment_shape_base(row.deployment_shape_version)\n }\n )\n if not unique_shape_keys:\n return rows\n\n if not quiet:\n log(f\"Looking up {len(unique_shape_keys)} unique deployment shapes in firectl ({parallelism} parallel)...\")\n shape_results: dict[tuple[str, str], ShapeLookupResult] = {}\n with ThreadPoolExecutor(max_workers=parallelism) as executor:\n future_to_key = {\n executor.submit(\n firectl_shape_lookup,\n deployment_shape_base_name=deployment_shape_base_name,\n firectl_binary=firectl_binary,\n timeout_seconds=timeout_seconds,\n profile=profile,\n ): (profile, deployment_shape_base_name)\n for (profile, deployment_shape_base_name) in unique_shape_keys\n }\n progress_bar = tqdm(\n as_completed(future_to_key),\n total=len(future_to_key),\n desc=\"shape lookups\",\n unit=\"shape\",\n dynamic_ncols=True,\n disable=quiet,\n )\n for future in progress_bar:\n key = future_to_key[future]\n shape_results[key] = future.result()\n if verbose and not quiet:\n latest = shape_results[key].latest_version or \"LOOKUP_ERROR\"\n log(f\" shape: {key[1]} -> latest={latest}\")\n progress_bar.close()\n\n enriched: list[DeploymentRow] = []\n for row in rows:\n shape_base_name = deployment_shape_base(row.deployment_shape_version)\n latest_version = shape_results.get(\n (row.firectl_profile, shape_base_name),\n ShapeLookupResult(latest_version=\"\", latest_shape_enables_hot_load=False),\n ).latest_version\n shape_info = official_shapes.get(shape_base_name)\n latest_shape_enables_hot_load = shape_results.get(\n (row.firectl_profile, shape_base_name),\n ShapeLookupResult(latest_version=\"\", latest_shape_enables_hot_load=False),\n ).latest_shape_enables_hot_load\n hotload_type = row.hotload_type\n if (shape_info is not None and shape_info.enables_hot_load) or latest_shape_enables_hot_load:\n hotload_type = \"collective\"\n enriched.append(\n DeploymentRow(\n cluster=row.cluster,\n hotload_type=hotload_type,\n account_id=row.account_id,\n deployment_id=row.deployment_id,\n current_replicas=row.current_replicas,\n desired_replicas=row.desired_replicas,\n gpus=row.gpus,\n create_date=row.create_date,\n image_version=row.image_version,\n deployment_shape_version=row.deployment_shape_version,\n latest_shape=bool(latest_version and row.deployment_shape_version == latest_version),\n official_shape=shape_info is not None,\n firectl_status=row.firectl_status,\n created_by=row.created_by,\n firectl_profile=row.firectl_profile,\n )\n )\n return enriched\n\n\ndef enrich_with_firectl(\n rows: list[DeploymentRow],\n firectl_binary: str,\n timeout_seconds: int,\n parallelism: int,\n verbose: bool,\n profiles: list[str],\n official_sh"} +{"text": "by Jean-Bernard Hyppolite\nRabbi Marcia Prager has been the spiritual leader at West Mt. Airy’s P’nai Or congregation for 18 years. In Hebrew, the word “chai,” which means “life,” has the numerical value of the number 18. It’s an important meaning for a thriving community led by a dedicated rabbi. On October 28 and 29 P’nai Or held a two-day celebration of Rabbi Prager’s contributions to the congregation and to the Jewish world in general.\n“I’ve been privileged to serve a wonderful community of warm, caring, sharing, sweet, wonderful people,” said Rabbi Marcia.\nThe celebration began with a Kavannah Shabbat, which is a joyous, song-filled “love fest,” as Rabbi Marcia described it. It was filled with live music and dinner at the end of the night. P’nai Or continued the next morning with their regular “Shabbat” morning service, led by Rabbi Marcia and her husband, “Hazzan” Jack Kessler, a musician and master of Jewish song and liturgy.\nAs it turned out, people from all over the Eastern seaboard and even as far as Oregon drove and flew in for the service and celebration. The rest of the day’s festivities included an exceptional potluck lunch, small gatherings and another music-filled gala and dinner to close the weekend. Jack Kessler’s band, Klingon Klezmer, performed at the celebration.\n“Everyone danced and feasted; it was really quite a weekend … A lot packed into two wonderful days,” said Rabbi Marcia, still glowing a few days after the events.\nRabbi Prager first came to P’nai Or as a student, then became a member and is now, according to her, just is one of its many leaders. “P’nai Or is not a very traditional synagogue in which there’s the ‘leadership’ and the ‘followership.’ In P’nai Or there are many wonderfully skilled co-leaders. Everyone contributes and leads with their gifts.”\nRabbi Marcia speaks of the synagogue as a place where people can hone their gifts, share with each other, learn leadership skills and give. She believes the environment that everyone has helped to create at P’nai Or makes it a loving and non-judgmental place. It’s due to these traits that Marcia describes P’nai Or as “unusual and unique” in the most positive of ways.\n“P’nai Or’s unusual in a variety of different ways. Not only the way in which leadership is shared, and service leadership is shared, but the style of the prayer,” added Marcia, describing the sight of people dancing in the aisles, singing and clapping as a real “celebratory atmosphere.”\nPeople don’t sit in the pews and pray with their knees down and hands closed, and Rabbi Marcia prefers it that way. The prayers are sung in a blend of Hebrew and English. While Hebrew prayers are often sung, their translations are simply read instead. “In a way, we’re praying in ‘Heblish,’” she said.\nAt P’nai Or it’s not unheard of to have opportunities for meditation, reflection sharing, and genuine conversation with each other about important and meaningful topics in the middle of service. When Rabbi Marcia reads the torah, she welcomes people who may be touched by a specific story to come up by her side at the desk. “People are invited to have a very personal relationship with scripture.”\nMarcia is a Jewish Renewal Rabbi, and P’nai Or is a Jewish Renewal Congregation. Jewish Renewal aspires to create models of Jewish expression that are contemporary and also speak to the heart as well as the mind. The full inclusion of women is embraced.\nMt. Airy has a significant Jewish presence, and P’nai Or is just one of four Jewish congregations in West Mt. Airy. P’nai Or does not have its own building but is located inside the community wing of Summit Presbyterian Church, 6757 Greene St. (at Westview). It was founded by Rabbi Schacter-Shalomi in 1973.\nRabbi Marcia, 59, was named one of the top 50 most influential female rabbis (aka The Sisterhood 50) by The Jewish Daily Forward newspaper. This entire list is particularly impressive considering that the first female rabbi in America, Rabbi Sally J. Priesand, was ordained as recently as 1972. There were no female rabbis around when Marcia was growing up; she garnered inspiration from the women’s ordination movement in what she views as the liberal Jewish world.\n“We are proud to have Rabbi Prager, one of America’s 50 most influential women rabbis, as our spiritual leader,” said Elyse Seidner-Joseph, chairperson of the Chai celebration.\n“I don’t do what I do in order to be recognized or be on a list,” said Rabbi Prager, “but it is delightful to have my achievements noticed. It’s particularly moving to live a life in which I am able to do the work of my heart and contribute in important ways to the world … Being a Rabbi offers me an opportunity to bring Jewish values into the heart of how I and an extraordinary community live our lives.”\nRabbi Marcia Prager, originally from Queens, New York, moved to Philadelphia in 1984. She and Kessler, who have been married since the late ‘80s, lead workshops together at P’nai Or. They have a son, Aaron, 21, a senior at Temple University. Rabbi Marcia is also a teacher, author, artist and therapist. She became a therapist after graduating from a four-year training program in marriage and family therapy at Penn Council For Relationships. She also earned a B.A. in cultural anthropology along with an M.F.A. in photography and drawing from Pratt Institute, New York. She is the author of “The Path of Blessing,” and she works for ALEPH: Alliance for Jewish Renewal. For more information, visit www.pnaior-phila.org or email PnaiOrRabbi@aol.com."} +{"text": "The DUI Ignition Kit, includes the DUI Distributor, Custom LiveWire set, and the Billet Wire Looms. Please designate cap color, wire color, and loom color when ordering.\nFits: The 5/16\" drive fits all 200/250ci motors, as well as the late 170ci. It will not fit the 144ci or early 170ci, which used a 1/4\" drive.\nAdd Horse Power by installing the most powerful ignition system available for the small six and save an additional $20 by ordering the complete DUI Ignition Kit. The Complete Kit includes the DUI Distributor, a custom LiveWire set, and the Billet Aluminum Wire Looms.\nDyno testing on a 200ci engine showed an increase up to 15 HP over the Duraspark II and MSD Ignition system, and up to 20 HP over the stock ignition system. Manufactured by Performance Distributors for Classic Inlines, the DUI distributor is the only one-piece, high performance ignition system available for your inline six. Since the coil and ignition module are self-contained in the distributor, it is truely a clean and simple drop in installation, which eliminates all of the messy and confussing wiring associated with other ignition systems. Just run one 12-volt hot wire to the distributor and you're ready to run! A tach hook-up is also included for those who like to keep track of their RPMs.\nThis Street/Strip DUI Distributor is built with a 50,000 volt coil that allows a whopping .055\" plug gap, which provides a more powerful explosion of the fuel mixture. The Dyna Module is designed with more electronic dwell time as well, producing an even hotter spark. Unlike stock Ford systems, and many aftermarket systems, no ballast resistor is required, which reduces the voltage in the ignition system. The D.U.I. allows FULL voltage providing a better spark and more power. Every DUI Distributor is custom curved on a machine prior to packaging. This results in a super smooth curve, eliminate engine damaging detonation, and provides instant throttle response.\nCaps are available in Black, Red, or Blue.\nOur DUI LiveWire Sets are custom fit for use with our DUI Performance Distributors - no assembly is required. Each wire is numbered on both ends making installation, removal and re-installation quick and easy.\nLiveWires® from Performance Distributors, have a space age heat resistant sleeving which is non-flammable and non-corrosive to chemicals. This unique sleeving provides protection from -76° to +1400° F and offers excellent resistance to moisture and chemicals. The LiveWire spiral wound core prevents electronic interference, radio noise, and computer interference. They offer an extremely low resistance of 300 - 350 Ohms per foot, for optimum spark travel. Each LiveWires has a durable and long lasting silicone jacket, with heat shrink applied between the boot and the sleeving to keep dirt and moisture away from wire terminals. Due to the unique protective sleeving on LiveWire set, stock or aftermarket looms will not fit over the wires. Custom Livewire sets are available in Black, Red, Blue, and Yellow.\nDUI Billet Aluminum Wire Looms are custom manufactured for use on the LiveWire sets. Due to the protective sleeving on LiveWires, stock or aftermarket looms will not fit over LiveWire sets without pinching or crimpimg the wires. These billet separators are held together with allen head screws which are mounted flush within the loom, will not pinch or damage the protective heat sleeving. Available in a natural finish or Black anodized (red, blue, and gold anodized are no longer offered). Set includes 1-4 Hole. 1-3 Hole. and 3-2 Hole Looms.\nAll parts required for installation are included with the complete kit, saving you time and frustration, and un-necessary trips to your auto parts store. The DUI Dstributor is a real work of craftsmanship, and although it is uniquely designed, replacement parts are easy to find. High Energy Ignition (HEI) replacement parts, available at all auto parts stores, fit right on the DUI distributor. While a stock HEI moduals work in a pinch, the custom DUI moduals are available from Classic Inlines, as are the caps, rotors, and coils. Please designate cap color, and wire color when ordering.\nNOTE: We highly recommend reading our Tech Article on \"Preventing Premature Distributor Gear Failures\" before you install your new distributor.\nNOTE: While the DUI distributor will fit Econline trucks and vans, you must cut a small hole in the side of the doghouse and fashion some sort of bowl like cover to make room for the larger DUI distributor.\nDUI verse DSII - note that the DUI is considerably\nlarger than a stock distributor or the Duraspark II\nNOTE: The DUI distributor will not fit with a standard power steering pump due to the additional height and width of the DUI distributor. Classic Inlines is working on a custom bracket to allow the use of the newer Saginaw Power Steering pump, which will clear."} +{"text": "apes: dict[str, OfficialShapeInfo],\n quiet: bool,\n) -> list[DeploymentRow]:\n if not rows:\n return rows\n\n unique_keys: list[tuple[str, str]] = sorted({(row.account_id, row.deployment_id) for row in rows})\n profiles_label = \", \".join(p or \"(default)\" for p in profiles) if profiles else \"(default)\"\n if not quiet:\n log(\n f\"Looking up {len(unique_keys)} unique deployments in firectl \"\n f\"(profiles tried in order: {profiles_label}; {parallelism} parallel)...\"\n )\n\n lookup_results: dict[tuple[str, str], FirectlLookupResult] = {}\n with ThreadPoolExecutor(max_workers=parallelism) as executor:\n future_to_key = {\n executor.submit(\n firectl_deployment_lookup,\n account_id=account_id,\n deployment_id=deployment_id,\n firectl_binary=firectl_binary,\n timeout_seconds=timeout_seconds,\n profiles=profiles,\n ): (account_id, deployment_id)\n for (account_id, deployment_id) in unique_keys\n }\n progress_bar = tqdm(\n as_completed(future_to_key),\n total=len(future_to_key),\n desc=\"firectl lookups\",\n unit=\"dep\",\n dynamic_ncols=True,\n disable=quiet,\n )\n for future in progress_bar:\n key = future_to_key[future]\n lookup_results[key] = future.result()\n if verbose and not quiet:\n profile_tag = (\n f\" via profile={lookup_results[key].profile or '(default)'}\"\n if lookup_results[key].status != FIRECTL_STATUS_NO_LABELS\n else \"\"\n )\n log(f\" firectl: {key[0]}/{key[1]} -> {lookup_results[key].status}{profile_tag}\")\n progress_bar.close()\n\n enriched: list[DeploymentRow] = []\n for row in rows:\n lookup = lookup_results.get(\n (row.account_id, row.deployment_id),\n FirectlLookupResult(\n status=FIRECTL_STATUS_NO_LABELS,\n created_by=\"\",\n profile=\"\",\n deployment_shape=\"\",\n enable_hot_load=False,\n ),\n )\n hotload_type = \"collective\" if lookup.enable_hot_load else row.hotload_type\n enriched.append(\n DeploymentRow(\n cluster=row.cluster,\n hotload_type=hotload_type,\n account_id=row.account_id,\n deployment_id=row.deployment_id,\n current_replicas=row.current_replicas,\n desired_replicas=row.desired_replicas,\n gpus=row.gpus,\n create_date=row.create_date,\n image_version=row.image_version,\n deployment_shape_version=lookup.deployment_shape,\n latest_shape=False,\n official_shape=False,\n firectl_status=lookup.status,\n created_by=lookup.created_by,\n firectl_profile=lookup.profile if lookup.status != FIRECTL_STATUS_MISSING else \"\",\n )\n )\n return enrich_with_shape_latest(\n rows=enriched,\n firectl_binary=firectl_binary,\n timeout_seconds=timeout_seconds,\n parallelism=parallelism,\n verbose=verbose,\n official_shapes=official_shapes,\n quiet=quiet,\n )\n\n\ndef format_number(value: float) -> str:\n if value.is_integer():\n return str(int(value))\n return f\"{value:.3f}\".rstrip(\"0\").rstrip(\".\")\n\n\ndef capacity_status(row: DeploymentRow) -> str:\n if row.desired_replicas == row.current_replicas:\n return \"ok\"\n if row.current_replicas == 0:\n return \"missing\"\n return \"reduced\"\n\n\ndef print_key_value_rows(rows: list[tuple[str, str]], indent: int) -> None:\n if not rows:\n return\n\n key_header = \"metric\"\n value_header = \"value\"\n key_width = max(len(key_header), *(len(key) for key, _ in rows))\n value_width = max(len(value_header), *(len(value) for _, value in rows))\n prefix = \" \" * indent\n print(f\"{prefix}{key_header:<{key_width}} {value_header:>{value_width}}\")\n print(f\"{prefix}{'-' * key_width} {'-' * value_width}\")\n for key, value in rows:\n print(f\"{prefix}{key:<{key_width}} {value:>{value_width}}\")\n\n\ndef print_table(rows: list[DeploymentRow]) -> None:\n headers = [\n \"cluster\",\n \"account_id\",\n \"deployment_id\",\n \"current_replicas\",\n \"desired_replicas\",\n \"gpus\",\n \"image_version\",\n \"deployment_shape_version\",\n \"latest\",\n \"official\",\n \"capacity\",\n \"firectl_status\",\n \"create_date\",\n \"created_by\",\n ]\n table_rows = [\n [\n cluster_name_from_context(row.cluster),\n row.account_id,\n row.deployment_id,\n str(row.current_replicas),\n str(row.desired_replicas),\n format_number(row.gpus),\n row.im"} +{"text": "The Gators' 2-year-old national championship destruction of Ohio State -- specifically the offense, and more specifically the offensive line -- occurred on the same field on which the Buckeyes meet Texas in tonight's Fiesta Bowl. In the repetitive highs and rare but public lows, in the expectations and constant observations, in the questions about how to evaluate this Ohio State era, left tackle Alex Boone exemplifies the conflicted views fans have of the Buckeyes. They can be clarified against the No. 3 team in the country, for good or for bad.\nAs the left tackle goes tonight, so go the Buckeyes.\nHe's big. He's loud. He's funny. He's honest. He's nasty. He plays the money position on the offensive line. And whenever he makes a mistake, everyone notices.\n\"I'm aware of that,\" the senior from Lakewood said, smiling when asked of his status as a lightning rod for the Buckeyes' fortunes. \"My grandma reads all those message things and will call me crying or swearing. But if people are mad at me, I can't change that.\"\nActually, he can.\nIn his final college game, Boone faces the toughest opponent he could ask for, gladly.\n\"I'm getting lots of phone calls from people, like, if you have a great game this week, it'll kind of silence a lot of people,\" Boone said.\n\"A lot of people think the world of Orakpo, and they think he's everything. If you shut him down or force him to the other side, it'll say a lot about you.\n\"It's the perfect matchup. I told a lot of people I'd be excited to play Texas. I didn't think it would actually happen.\"\nIt has, and it's more than just an individual showdown between Boone and the winner of the Lombardi, Nagurski and Hendricks awards. It's the place where the Fiesta Bowl can change, because the Buckeyes must run the ball for their offense to work and to keep the high-powered Texas offense off the field.\n\"If they can control the ball and keep the clock running and we never see the ball, it's not going to matter,\" Texas coach Mack Brown said.\n\"That's a great defense against our offense.\"\nAnd the Buckeyes can't run if they don't control an end known for his size, his speed and his discipline to the game plan.\n\"Everything he does is perfect,\" Boone said.\nThe line also has to keep quarterback Terrelle Pryor from getting rattled by a defensive line that leads the nation in sacks. Once Florida starting chasing Troy Smith two years ago, his Heisman was the last thing on people's minds.\n\"I was watching a lot of the Florida game to try to see some stuff they were doing to get to the quarterback,\" Orakpo said. \"I was trying to see some tendencies that really helped me.\"\nOrakpo zeroed in on the Penn State game from this season as well, when defensive end Aaron Maybin caused repeated problems. But Ohio State offensive coordinator Jim Bollman made it clear the Texas front four is more than just Orakpo, which is why some consider this best defensive line the Buckeyes have faced this season.\n\"The Penn State defensive line is good, the USC defensive line is good, so I don't know that these guys are clear cut way beyond them,\" Ohio State tight end Rory Nicol said.\nNicol said the Buckeyes might be helped by two changes in the plan from those earlier games. One is helping the tackles more, so a player like Maybin can't dominate the way he did in his matchup against right tackle Bryant Browning. The other is a commitment to the inside power running game and less of the zone-read runs that were used to stretch a defense when Pryor first took over the starting job.\n\"I think we got back toward the power-type running in the Illinois game and the Michigan game,\" Nicol said. \"I think it's better to keep it up the middle.\"\nSo the plan might be better. And then it will come down to matchups. And maybe everyone, including Boone himself, will figure out what kind of player he is and what kind of season he really had. On one hand, he made first-team All-Big Ten and was a second-teamer on one All-American team. However, nearly every draft analyst believes Boone's stock fell in his return for his senior season.\nBut like Ohio State defensive end Vernon Gholston did by winning his showdown with Michigan left tackle Jake Long last season, helping Gholston leap into the No. 6 pick in the draft, one game against one great player can go a long way. And clear up a lot of chaos.\n\"Overall, I felt it was a good year for me, and everyone was like, your draft is slipping. Obviously, that doesn't matter to me right now, but I'm kind of confused as well,\" Boone said. \"What could I have done better? Do I have to go out there and kill somebody? What do you want from me?\"\nWhat do Ohio State fans want? They want a win tonight. And they'll probably need Boone at his best against Orakpo to get it.\n\"This is the final exam of final exams,\" Boone said. \"This game means everything right now, because he is a great player. And this will show people what I am or what he is.\""} +{"text": "CLEVELAND, Ohio -- Drivers on I-271 may be scratching their heads over a billboard that features a prominent picture of Jimmy Dimora.\nIt's not a \"Wanted\" poster.\nBedford Heights, celebrating its 50th birthday this year, put up the sign congratulating the community. It contains photos of the six people who have served as mayor, including Dimora (1982-1998), for whom the city's community center is named.\nCurrent Mayor Fletcher Berger said he's heard from some folks who wonder why Dimora has such a prominent place of honor, given that the former county Democratic Party boss is under indictment on federal corruption charges for his actions as a Cuyahoga County commissioner.\n\"My response is simple: We still live in a country where people are innocent until proven guilty, and it's not on me to prematurely make a decision on something that is now going through a process,\" said Berger. \"This was not about Jimmy Dimora. This was about the fact that Bedford Heights is celebrating its 50th Anniversary. What we are recognizing is the time period he was there.\"\nThe sign, the mayor said, was free. The city can put up signs when the space is not sold as part of the deal that provided the billboard space. It is visible to southbound drivers and is just before the Rockside Road exit.\nIf Dimora is convicted, it might be a different story, he said. Some folks wonder whether the community center would drop Dimora's name.\n\"At that time, I definitely think we have to take a second look,\" the mayor said. \"If you have someone who is a convicted felon, it is a whole different situation than someone who is indicted. I think we'd have to look at it differently.\"\nBirthday bash: Henry and Judy Hilow celebrated the 100th birthday of their Lake Avenue home in Lakewood Friday night with a party of the century, complete with guests wearing period attire form 1911.\nJudy Hilow spend a year planning the bash, which doubled as a fundraiser for the Lakewood Historical Society. Guests donated $5,000 for the cause and feasted on Middle East fare prepared by the Hilow's daughters and nieces.\nHenry Hilow, a prominent Cleveland defense lawyer, was late for the party because he attended a St. Edward High School football scrimmage. His son, Henry Jr., plays for the Eagles.\nThere were lots of hats, like the one worn by Mayor Mike Summers, at the party, as well as snazzy bow ties. One couple, Assistant U.S. Attorney Gary Arbeznik and his wife, Maureen Arbeznik, principal of Lakewood Catholic Academy, wore old-fashioned swim suits (though there was no pool.)\nThe house was built in 1911 for Fred Becker, president of Pfaffman Egg Noodle Co.\nRandom acts: Progressive insurance is sending its pitchman to Cleveland this week. No, it's not the hyper-kinetic Flo from the Progressive store. It's \"The Messenger,\" the somewhat seedy looking wanderer who shows up in odd places to talk of the insurance giant's money-saving deals.\nThe Messenger will commit \"random acts of savings\" in Cleveland Thursday by paying the tab at a gas pump or taking care of parking fees.\nBe on the lookout.\nHonoring the fallen: Cuyahoga County Executive Ed FitzGerald and Brecksville Mayor Jerry Hruby dedicated the rebuilt Old Royalton Bridge Wednesday to fallen Marine Corps Sgt. Dennis E. Kancler, a Brecksville native. On July 31, the 26-year-old Kancler was killed with two other Marine sergeants in a noncombat incident in Afghanistan.\nInternational mystery: Cleveland boutique publisher Gray & Company, which specializes in printing local books by local authors, is slowly wading into the electronic publishing world.\nQuietly, the company published \"Amy: My Search for Her Killer\" by James Renner as an e-book available on Amazon, Bn.com and Apple's iBooks store.\nIn the first week, the book sold a handful of copies, including two from Australia and two from Great Britain.\n\"Those just might be our first ever international sales,\" said David Gray, who owns the company.\nWhile the numbers weren't big, Gray said he's encouraged that with no promotion, people found the book.\n\"It was an interesting start. We certainly hope that once we start telling people that our e-book editions exists, we'll start getting a lot more business from customers all over the place,\" he said.\nNext in the pipeline for electronic publication: All 15 of Les Roberts' Milan Jacovich mysteries.\nThose ought to do huge number in Slovenia.\nSound of Ideas: Last week on the Sound of Ideas, ecologists and park rangers talked about their battle in public green spaces against invasive plant species. Unchecked, fast-growing invaders can overtake fields, marshes and other natural habitats, choking out diversity. The response? Get out your gardening gloves and go to war, but first make sure you google invasive plants in Ohio so you know what you're going after.\nAlso last week, Cleveland's Port Authority CEO Will Friedman said he's committed to\nkeeping port operations right where they are on the lakefront, and is hopeful he can beef up business with a new container service between Cleveland and Montreal and a cross-lake passenger and car ferry. He also expressed the Port's commitment to keeping the Cuyahoga River in good shape. The Port's board has not voted on the master plan Friedman wants to implement.\nThis morning, it is the rising cost of public school as many districts must charge fees for what once was part of the package, from band to basketball. Join us with your thoughts. The Sound of Ideas, hosted by Tipoff's Mike McIntyre, airs weekdays at 9 a.m. on WCPN 90.3 FM."} +{"text": "age_version,\n row.deployment_shape_version or \"n/a\",\n \"true\" if row.latest_shape else \"false\",\n \"true\" if row.official_shape else \"false\",\n capacity_status(row),\n row.firectl_status,\n row.create_date,\n row.created_by,\n ]\n for row in rows\n ]\n widths = [max(len(header), *(len(row[index]) for row in table_rows)) for index, header in enumerate(headers)]\n\n print(\" \".join(header.ljust(widths[index]) for index, header in enumerate(headers)))\n print(\" \".join(\"-\" * width for width in widths))\n for row in table_rows:\n print(\" \".join(value.ljust(widths[index]) for index, value in enumerate(row)))\n\n\ndef print_summary(scanned_deployments: int, rows: list[DeploymentRow], skipped: list[SkippedContext]) -> None:\n official_shape_pct = (sum(1 for row in rows if row.official_shape) / len(rows) * 100) if rows else 0.0\n official_latest_shape_pct = (\n (sum(1 for row in rows if row.official_shape and row.latest_shape) / len(rows) * 100) if rows else 0.0\n )\n latest_shape_pct = (sum(1 for row in rows if row.latest_shape) / len(rows) * 100) if rows else 0.0\n capacity_pcts = {\n status: (sum(1 for row in rows if capacity_status(row) == status) / len(rows) * 100) if rows else 0.0\n for status in (\"ok\", \"reduced\", \"missing\")\n }\n firectl_status_counts: dict[str, int] = {}\n for row in rows:\n if not row.firectl_status:\n continue\n firectl_status_counts[row.firectl_status] = firectl_status_counts.get(row.firectl_status, 0) + 1\n\n summary_rows = [\n (\"scanned deployments\", str(scanned_deployments)),\n (\"hotload deployments\", str(len(rows))),\n (\"official shape\", f\"{official_shape_pct:.1f}%\"),\n (\"official latest shape\", f\"{official_latest_shape_pct:.1f}%\"),\n (\"latest shape\", f\"{latest_shape_pct:.1f}%\"),\n (\"capacity 'ok'\", f\"{capacity_pcts['ok']:.1f}%\"),\n (\"capacity 'reduced'\", f\"{capacity_pcts['reduced']:.1f}%\"),\n (\"capacity 'missing'\", f\"{capacity_pcts['missing']:.1f}%\"),\n (\"skipped contexts\", str(len(skipped))),\n ]\n summary_rows.extend(\n (f\"firectl {status}\", str(firectl_status_counts[status])) for status in sorted(firectl_status_counts)\n )\n\n print(\"Summary\")\n print_key_value_rows(summary_rows, indent=0)\n print()\n\n\ndef parse_args() -> argparse.Namespace:\n parser = argparse.ArgumentParser(\n description=(\n \"Search every local kubectl context for hotload deployments and \" \"classify them as collective or legacy.\"\n )\n )\n parser.add_argument(\n \"--context-regex\",\n help=\"Only scan contexts whose names match this regex.\",\n )\n parser.add_argument(\n \"--cluster\",\n help=(\n \"Only scan one cluster. Matches either the full kubectl context name \"\n \"or the cluster enum prefix before the first space, e.g. NA_BRITISHCOLUMBIA_1.\"\n ),\n )\n parser.add_argument(\n \"--request-timeout-seconds\",\n type=int,\n default=20,\n help=\"kubectl API request timeout per context.\",\n )\n parser.add_argument(\n \"--process-timeout-seconds\",\n type=int,\n default=30,\n help=\"local process timeout per kubectl call.\",\n )\n parser.add_argument(\n \"--max-attempts\",\n type=int,\n default=3,\n help=\"maximum kubectl attempts per context before skipping it.\",\n )\n parser.add_argument(\n \"--retry-delay-seconds\",\n type=float,\n default=2.0,\n help=\"sleep between failed kubectl attempts for a context.\",\n )\n parser.add_argument(\n \"--verbose\",\n action=\"store_true\",\n help=\"print per-context scan details in addition to tqdm progress.\",\n )\n parser.add_argument(\n \"--only-summary\",\n action=\"store_true\",\n help=\"suppress scan progress and pre-summary logs; print only the Summary section and rows below it.\",\n )\n\n parser.add_argument(\n \"--skip-firectl\",\n action=\"store_true\",\n help=\"skip the firectl-admin enrichment step.\",\n )\n parser.add_argument(\n \"--firectl-binary\",\n default=\"firectl-admin\",\n help=\"firectl-admin binary to invoke for deployment lookups.\",\n )\n parser.add_argument(\n \"--firectl-timeout-seconds\",\n type=int,\n default=20,\n help=\"per-call timeout for firectl-admin deployment/shape get.\",\n )\n parser.add_argument(\n \"--firectl-parallelism\",\n type=int,\n default=FIRECTL_LOOKUP_PARALLELISM,\n help=\"number of concurrent firectl-admin lookups.\",\n )\n parser.add_argument(\n \"--firectl-profile\",\n action=\"append\",\n default=None,\n metavar=\"PROFILE\",\n help=(\n \"firectl-admin profile to try as a fallback when the default profile reports \"\n \"MISSING (e.g. --firectl-profile fw-dev). Repeatable. The def"} +{"text": "Cleveland Helicopter Aerial Filming, Photography and Surveys...\nNo job in Ohio is too big or too small!\nNo matter what form of aerial survey you need, including both magnetometer and electromagnetic surveys, Cleveland Helicopter Charters can provide a wide range of options by combining the low flying and hover capabilities of helicopters. Add a camera and mount and you can film or photo Cleveland from the Ohio sky!\nSearch terms related to\nCleveland Surveys, Filming and Photography:\nCleveland Aerial Surveys • Aerial Photography in Cleveland • Cleveland Geological Survey • Aerial Filming in Cleveland • Cleveland Helicopter Videography • Aerial Surveys in Cleveland • Cleveland Disaster Survey • Ohio Aerial Surveys • Cleveland Aerial Videographers • Geographical Survey of Cleveland • Cleveland Aerial Photography • Helicopter Photography in Cleveland • Ohio Disaster Survey • Cleveland Corporate Helicopter Survey • Cleveland Aerial Filming • Cleveland Aerial Videography • Helicopter Filming in Cleveland • Cleveland Survey Helicopters • Cleveland Helicopter Videographer\nAerial Filming, Photography and Surveys in Cleveland\nNo vehicle makes it as easy as a Cleveland Helicopter!\nThank you for trusting Cleveland Helicopter Charters for your filming and photography projects! We have a highly trained team of helicopter specialists waiting to assist you. Our Cleveland Helicopter Team will professionally assist you with the right helicopter and state-of-the-art technology. We will quickly and efficiently get your project into production. Read the information below to decide on what Aerial Filming, Aerial Photography or Aerial Survey options fits your needs the best, and then call our knowledgeable experts to consult and finalize your plans.\nCall us at 1-866-826-4826 to book a Cleveland Helicopter for your next project!\nCleveland Aerial Filming\nThe Top Pilots in Ohio, Today's Technology... Maximum Results.\nCleveland Helicopter Charters has the reach to bring you what you need for aerial filming in Ohio. Our Network can provide the latest technology to work out custom shoots, using gyro-stabilized camera mounts (Tyler Mounts, Wesscam, Cineflex, and spacecam) with Specialty Cameras (Cineflex HD, FLIR.) From air to air or ground to air shots, we can support all aspects for your production goals. Specializing in Cleveland helicopters for both still and motion photography, our nationwide network can provide for almost every media related operation in Ohio; film, television, documentaries, promotional videos, commercials, aerial props, relief work for television networks and coverage of historical and major sporting events from a variety of helicopters.\nCall Us Today at 1-866-826-4826 for Free Information on Aerial Filming in Cleveland!\nNeed Aerial Photography in Cleveland?\nWe will help you find the right equipment for your Ohio job!\nThe spectacular settings and breath taking views that Cleveland Helicopter Charters provide can only be accomplished from the sky. Discover for yourself on one of our charters designed to meet your aerial photography need in the Cleveland clouds.\nCleveland Helicopter Charters is prepared and excited to offer our clients the most affordable photographic opportunities of this kind in Ohio. We work with the best camera operators, aerial coordinators, helicopter pilots, and the latest equipment in the Cleveland area. Call for info on gyro mounts to get that extra bit of stability.\nCall Us Today at 1-866-826-4826 for Free Information on Aerial Photography in Cleveland!\nCleveland Aerial Surveying Done Right!\nThe fastest and easiest way to survey the Ohio landscape!\nCleveland Helicopter Charters provides the tools needed to complete your land surveys, utilizing the right equipment to provide the aerial photos that are often needed.\nCleveland Aerial Surveys make looking over your future home or showing demographics and photos of an area for a commercial business project simple. Helicopter surveys are the only way to look over the Ohio terrain. Cleveland Helicopter Charters can develop the right photographic and remote sensing operations custom fit to maximize technical and financial efficiency as well as results.\nThere is no better way than from the Cleveland, Ohio sky to do your survey; animal population counts, soil drainage issues and geographical surveys call us today!\nCall Us Today at 1-866-826-4826 for Free Information on Aerial Surveys in Cleveland!\nParma Helicopter Charters | Elyria Helicopter Charters | Lorain Helicopter Charters | Cleveland Heights Helicopter Charters\nMentor Helicopter Charters | Akron Helicopter Charters | Helicopter Sitemap | Drone Sitemap\nRegulations may prohibit Helicopter Charters in the city proper. Local helicopter charter affiliates are conveniently located near Cleveland, Ohio."} +{"text": "A Solid Rock\nA Solid Rock\nThe Good Prayer\nWe have to read the entire Gospel of John and to apply the smallest [piece] of it. It reads, ‘In the hour he had said his son was cured’\nStudents have to study. If one does not study, one is not a student. The way you behave now, you will soon get old, and then what are you in for? What will happen to you? You are students; however, you do not study. You are like the young people who get old, while I want you to be like the old people who rejuvenate and like the young people who study.\nGod has to come and live within you and only if God lives within you, you will rejuvenate. There is one thing that you lack – the same what Christ was talking about to the young person. And I will tell you: it is Love you lack. When Love comes into you, you will then rejuvenate and all the good will come. Love will rejuvenate you. But when will Love come unto you? When God starts living in you. I do not mean that physical love, but that Love, which endures everything, that Love, which is a solid rock and all the misfortunes are suffered with Joy. It is Love when everyday you are grateful and you say, ‘This is my best day! I have never had a day like this!’ Tomorrow you will say the same. If we are not content and [if] every day we are sorry for this and for that, we shall grow old. Being grateful – this is Love. When we go to work in the world and when we are asked what we have to do, we shall tell every one, ‘We have to live like Christ!’ ‘You should first look for the Kingdom of God and for His Justice and everything else will be given to you. You wait for Christ to come. Who knows how you wait for him! It is said, ‘The Kingdom of God is within you.’ Christ will come within you. For those who implement God’s Will because of Love, the Kingdom of God has already arrived.\nThe angels and the saints would prefer to have our suffering. This is considered a privilege by them. Now you live like the children – you eat, drink and sleep, while you have to study. You think you are doing spiritual work, while the important thing is to live like Christ.\nNow, as I am looking at you, you have one window. You have to make one more window in order to let more light in. Light does not break the door and the windows, but it waits to be freely let it in, in order to enter.\nNow, as I am looking at you, you will soon grow old. What are you waiting for now? You will be growing old day by day and you will be called up above. Because you do not study, God will say, ‘Call these recalcitrant students to Me!’ You should not be thinking that you will grow old, but that you have to study – This is God’s law. The young one who studies does not grow old, and the old one who studies rejuvenates. It’s not Divine for a newly wed woman to make her husband not love her mother-in-law. Because a day will come when she will get her son married and she will be treated like this.\nThe mother, in order not to torment the child, does not make the child study. What will happen with this child then? If Heaven spoils us a lot, nothing will come out of us. This world is a reflection of the Invisible world. This world is like the bears, lakes and nature painted in pictures. You are not afraid to touch a painted bear, but if you go to a real bear, you will be afraid to touch it. The true reality is up above, and the physical world is a reflection of the Spiritual world. The spiritual world is a real world, and here everything is [painted as] in a picture.\nWhen you want to give something to a person you will ask him to empty his bag and you will then fill his bag with what’s in yours. You will tell him, ‘Mine is better, get rid of that, in order to take some of this.’ If someone has bread in one’s bag and says that he is full, you tell him, ‘No, mine is better!’ As soon as he takes from yours, he will be convinced, which means he will free himself of his old convictions. Make an experiment in some villages if they can give you a whole pita-bread; if you are with God, you will be given a whole pita-bread; if you are not with God, you will not be given a whole pita-bread. If you are going somewhere and the door is open, enter, but if the door is closed, do not enter. In other words, if one’s soul is open, talk to this person; if however, it [he] is not open and he does not receive, do not talk to him. When you get into a house, you will clean it, you will sweep it, you will knead pita-bread, so that the hosts on coming back be surprised [for the hosts to be surprised on coming back]. Put in other words, if you find a prepared soul, work within in a way that one can surprise oneself and say, ‘What’s happening with me?’ Sometime you eat to your heart’s content and go to a place where a pastry is made. Do not take a bite, you have eaten to your heart’s content! You start for a place and something tells you, ‘Do not go there!’ In such a case do not go!\nThe Lord’s Prayer\nLecture delivered by Petar Deunov (Beinsa Douno) on 2 June 1932 16.00h, Sofia, Izgreva\n Incorrect quotation from John’s: 4; 53: ‘So the father knew that it was at the same hour in which Jesus had said unto him, \"Thy son liveth.\" And he himself believed, and his whole house"} +{"text": "ault profile is \"\n \"always tried first. If no fallback is configured, a startup warning is printed.\"\n ),\n )\n return parser.parse_args()\n\n\ndef scan_context(context: str, args: argparse.Namespace) -> ContextScanResult:\n deployments, error = kubectl_deployments_for_context(\n context=context,\n request_timeout_seconds=args.request_timeout_seconds,\n process_timeout_seconds=args.process_timeout_seconds,\n max_attempts=args.max_attempts,\n retry_delay_seconds=args.retry_delay_seconds,\n quiet=args.only_summary,\n )\n if error is not None:\n return ContextScanResult(\n cluster=context,\n scanned_deployments=0,\n rows=[],\n skipped=SkippedContext(cluster=context, reason=error),\n )\n\n assert deployments is not None\n rows = [\n row\n for deployment in deployments\n if (row := deployment_row(context=context, deployment=deployment)) is not None\n ]\n return ContextScanResult(\n cluster=context,\n scanned_deployments=len(deployments),\n rows=rows,\n skipped=None,\n )\n\n\ndef main() -> int:\n args = parse_args()\n if not args.only_summary:\n log(\"Listing kubectl contexts...\")\n try:\n contexts = kubectl_contexts(timeout_seconds=args.process_timeout_seconds)\n except RuntimeError as exc:\n print(f\"Failed to list kubectl contexts: {exc}\", file=sys.stderr)\n return 1\n\n if args.context_regex:\n context_pattern = re.compile(args.context_regex)\n contexts = [context for context in contexts if context_pattern.search(context)]\n if args.cluster:\n contexts = [\n context\n for context in contexts\n if context == args.cluster or cluster_name_from_context(context) == args.cluster\n ]\n\n if not args.only_summary:\n log(f\"Found {len(contexts)} kubectl contexts to scan.\")\n log(\n \"Fetching deployments with \"\n f\"--request-timeout={args.request_timeout_seconds}s \"\n f\"and process timeout={args.process_timeout_seconds}s per context \"\n f\"for up to {args.max_attempts} attempts \"\n f\"with parallelism={CONTEXT_SCAN_PARALLELISM}...\"\n )\n\n rows: list[DeploymentRow] = []\n skipped: list[SkippedContext] = []\n scanned_deployments = 0\n\n with ThreadPoolExecutor(max_workers=CONTEXT_SCAN_PARALLELISM) as executor:\n future_to_context = {executor.submit(scan_context, context, args): context for context in contexts}\n completed_futures = as_completed(future_to_context)\n\n progress_bar = tqdm(\n completed_futures,\n total=len(future_to_context),\n desc=\"Scanning kubectx\",\n unit=\"ctx\",\n dynamic_ncols=True,\n disable=args.only_summary,\n )\n\n for future in progress_bar:\n context = future_to_context[future]\n progress_bar.set_postfix_str(context, refresh=True)\n result = future.result()\n if result.skipped is not None:\n if args.verbose and not args.only_summary:\n log(f\"Skipping context {context}: {result.skipped.reason}\")\n skipped.append(result.skipped)\n progress_bar.set_postfix(\n {\n \"deployments\": 0,\n \"hotload\": 0,\n \"skipped\": len(skipped),\n },\n refresh=True,\n )\n continue\n\n scanned_deployments += result.scanned_deployments\n rows.extend(result.rows)\n if args.verbose and not args.only_summary:\n log(\n f\" pulled {result.scanned_deployments} deployments from {context}; \"\n f\"found {len(result.rows)} hotload deployments\"\n )\n progress_bar.set_postfix(\n {\n \"deployments\": result.scanned_deployments,\n \"hotload\": len(result.rows),\n \"skipped\": len(skipped),\n },\n refresh=True,\n )\n\n progress_bar.close()\n\n if rows and not args.skip_firectl:\n official_shapes = official_shape_infos()\n user_fallback_profiles = list(args.firectl_profile or [])\n if not user_fallback_profiles and not args.only_summary:\n log(\n \"WARNING: No --firectl-profile fallback configured. Deployments managed \"\n \"by a non-default firectl-admin profile (e.g. fw-dev) will appear as \"\n \"MISSING. Pass --firectl-profile to also check there.\"\n )\n profiles = [\"\"] + user_fallback_profiles\n rows = enrich_with_firectl(\n rows=rows,\n firectl_binary=args.firectl_binary,\n timeout_seconds=args.firectl_timeout_seconds,\n parallelism=args.firectl_parallelis"} +{"text": "The Government's newly released National Innovation and Science Agenda shows that for economic growth to continue within Australia, an 'innovation ecosystem' must be fostered, where new businesses with new ideas are encouraged to grow and flourish. With every company wanting to increase, retain or improve their customers’ experiences, this makes marketing vital to fuelling Australia's ideas boom.\nThe retail space has gone through significant digital disruption over the past few years, making competition to stand out from the crowd fiercer than ever before.\nIBM’s director, distribution sector, of global industry marketing, Patricia Waldron, said for retailers it is both an exciting and challenging time.\n“One of the great things about the retail space is the ability to make a difference for your customers every day,” she told CMO. “Now some people love that challenge and are the ones that are successful because they are embracing change.”\nSo how can retail organisations better utilise digital for a new competitive edge? Here are Waldron’s five tips.\n1. Embrace the cognitive era\nFor Waldron, the age of new cognitive technologies such as those offered by IBM are enabling retailers to solve some of their customers’ key challenges.\n“The cognitive era is about taking retailers on a continuum,” she said. “It involves systems that can understand, reason and give you recommendations. But the most exciting thing is that they learn as they go. So as they make decisions for you and you put them into action, they get smarter in real time.”\nIn order to implement cognitive systems to differentiate your brand in the highly competitive retail space, Waldron highlighted systems that make the most of ‘dark data,’ and that take advantage of new insights from different sources of data.\n“This includes anything from videos and images to weather sensors,” she explained. “Putting all this information into cognitive systems, you have access to things like social information, news, local events and weather. In the retail space, what these all do is help you understand and anticipate longer term trends, while also helping retailers make everyday decisions more accurately and in real time.”\n2. New technology breeds new habits\nData, devices, people and processes are becoming more and more intertwined.\n“From the millennial perspective, we’re starting to see their habits become everyone’s habits,” Waldron said. “We’re starting to see people have pocket butlers or a pocket concierge with their phones. And we’re now moving from phones to wearables.”\nWhether you’re searching for shoes on your phone, or looking at an app on your wearable, this combination of devices is seeing consumers effectively generating more data that can be put into a cognitive system, which in turn can help retailers personalise customer experiences more effectively, Waldron said.\n“The idea is you have more devices that are generating more data to better help the retail conversation with the customer,” she said.\n3. Take customer engagement to a highly personalised level\nIn order to stand out from the crowd, Waldron stressed it is all about customer engagement at a highly personalised level.\n“While there is this concept of omni-channel, I believe that ultimately the consumer is the channel,” she claimed. “The retailer should be treating the customer consistently like an individual, regardless of whether the customer is interacting via the brick-and-mortar store or online. It’s all about that engagement. Customers want retailers to understand them on a personal level - their needs, their wants and aspirations at any point in time.”\n4. Why it’s all about differentiating the customer experience\nAnother critical way you can disrupt the retail space is differentiating the experience for your customer, Waldron said.\n“You can sell or market one product so many different ways on different sites,” she said. “But by differentiating in terms of your service, convenience, product assortment and experience in the store, a retailer can define its brand, what it stands for and better execute that strategy flawlessly, based on what the consumer wants.”\n5. Abandon legacy systems\nAccording to Waldron, one key thing retailers need to do moving forward is to abandon some of their legacy approaches when it comes to people, processes and technology.\n“Retailers can optimise their non-selling function so they can leave some space to invest in innovation and be more agile,” she said. “Successful retailers that are serious about disruption are experimenting and iterating quickly over time.\n“This means you can no longer wait 6-10 months to do something. The pressure is now on retailers to use technology quickly in order to promote and market to your customers.”"} +{"text": "Alex Repetski is your average dad, but to his three year old daughter, Gwenevere, he could be a hero. He’s spent the last 18 months and more than 800 hours reading through studies and medical journals, researching CBD and its healing properties, to help her with the tonic, myoclonic, and clinical seizures she was having — sometimes up to 50 a day. She was diagnosed with epilepsy and, as her EEGs revealed, was experiencing constant subclinical seizure activity throughout the day. It may not have looked like she was having a seizure from the outside, but at the brain level there were neurons firing constantly, and such activity can produce significant brain damage.\nGwenevere had a team of doctors that were trying an array of medicines to reduce the number of seizures she was having each day. At one point she was on 9 different medications. They kept hoping each subsequent medication would work, but nothing did. That’s when Alex decided to look into cannabis oil. “At that point, we really didn’t have anything to lose,” he said, as he recalled the struggle of trying to help his daughter achieve a better quality of life.\nAt first it was difficult to get her doctors on board with cannabis oil as a treatment since, admittedly, they simply didn’t know enough about it to prescribe it. Alex mentioned they considered trying the ketogenic diet after the ninth medication failed, but opted to try cannabis oil instead. Determined to understand what was happening with Gwenevere and help her as best he could, Alex read every journal publication, paper, article, study, and trial he could get his hands on regarding cannabis oil. Armed with research and studies in hand, only one of Gwenevere’s doctors agreed to prescribe cannabis to him, based on the trust and faith he had in Alex’s time spent researching.\nAt the time that Gwenevere was going through this process, Canadian law still stated that it was illegal to change cannabis from its dried form, meaning that if it is to be used for medical purposes it must be smoked or vaporized. It’s been reported that taking cannabis in its oil state has the most therapeutic value, however, and asking a child to smoke is ridiculous, for obvious reasons. The law changed last year after the notorious case involving Owen Smith, who challenged the Supreme Court that cannabis should not have to be smoked. He won the case, and the word ‘dried’ has been removed from the legal definition of acceptable cannabis usage, allowing for both oils and edibles to be prescribed as well.\nAfter acquiring the cannabis and reducing it down to its oil form, Alex proceeded with many rounds of trial and error, trying to find just the right dosage for Gwenevere. After five days, they noticed no seizure. Then another week went by, and then a month, and then two months of no seizures. Last January she went in for her 17th EEG after being on cannabis oil for 5 weeks.\nThis EEG was strikingly different from her previous ones. It seemed the cannabis oil had helped straighten out her brainwaves, working at the subclinical level. This was a huge moment for the Repetski family. Alex recalled taking the EEG to Gwenevere’s doctor to get an analysis and seeing how shocked they were when they saw it. At that point, he tells us, he couldn’t help but give the doctor a hug out of sheer joy!\nThey know this is not a cure for Gwenevere, but her quality of life has increased dramatically, which also increases the quality of life for the whole family. Prior to the cannabis oil use Gwenever was in an almost vegetative state and was functioning at the level of a four month old baby, even at the age of two. Now, she is a thriving three year old that is ticklish and likes smashing things and playing with her family. Alex is the first one to admit that he doesn’t see cannabis oil as a magic elixir, because much research still has to be done. However, he does wish to see a greater dialogue open up between all channels of healthcare, government, and citizenry about the use of cannabis oil as one more treatment option doctors can look towards when prescribing medications for patients.\nThere is still quite a bit of confusion surrounding the idea of taking cannabis oil and ‘getting high.’ Cannabis oil used medicinally is comprised almost entirely of CBD and very little THC (the component in cannabis that makes you feel high). CBD is one of over 60 compounds found in cannabis that belong to a class of molecules called cannabinoids. CBD and THC are usually present in the highest concentrations, making them the most recognized and studied. But it’s important to keep in mind that CBD and THC levels vary in different plants, so cannabis grown for recreational purposes will contain higher levels of THC than CBD. Using the oil as a treatment option is not the same thing as giving your child drugs.\nWatch Gwenevere’s story below:\nWe're incredibly passionate about what we do because we know the world NEEDS conscious media. The world is confusing and mainstream media is often making it worse - making what we do even more important.\nProducing news is costly! So we opened up a store. to help support our work and expand it while giving people something in return as.\nEverything in our store so far is in line with what we believe in and all proceeds support what we do."} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/serving/text_completion/formatters/harmony.py. Lines: 540.\n\nfrom __future__ import annotations\n\n\"\"\"Harmony tool-call aware response formatter (stream + full).\n\n**Harmony Format Support**\n--------------------------\n* Supports harmony's multi-channel format with tool calls in \"analysis code\" channel\n* Parses harmony format: `<|start|>assistant to=tool_name<|channel|>analysis code<|message|>{\"args\": \"value\"}<|return|>`\n* Uses HarmonyConversationStyle parser for robust format handling\n* Converts to OpenAI-compatible tool calls in both streaming and non-streaming modes\n* Handles incremental buffering for token-level streaming where harmony blocks are split across chunks\n\"\"\"\n\nimport time\nfrom typing import List, Optional, Any, Dict\n\nimport logging\nimport fireworks.text as firetext\nfrom fireworks.text.api import (\n ChatCompletionMessageToolCall,\n ChatCompletionMessageToolCallFunction,\n ChatCompletionResponseChoice,\n ChatCompletionResponseStreamChoice,\n ChatCompletionStreamResponse,\n DeltaMessage,\n ChatMessage,\n ChatCompletionTool,\n)\nfrom fireworks.text.error import UserError\n\nfrom ..formatter import (\n ChatCompletionResponseFormatter,\n _common_response_fields,\n _generate_call_id,\n)\nfrom ..billing import get_usage_info\nfrom openai_harmony import load_harmony_encoding, HarmonyEncodingName, StreamableParser, Role, Conversation\nimport filelock\nimport tempfile\nimport os\n\n# Lazy-loaded encoding to avoid race conditions in multi-process environments (e.g., torchrun).\n# The harmony library downloads the tiktoken vocab file on first use, which can cause\n# corruption if multiple processes try to download simultaneously.\n_ENCODING_CACHE = None\n_ENCODING_LOCK = None\n\n\ndef _get_harmony_encoding():\n \"\"\"Get the harmony encoding, downloading with a file lock to prevent race conditions.\"\"\"\n global _ENCODING_CACHE, _ENCODING_LOCK\n if _ENCODING_CACHE is not None:\n return _ENCODING_CACHE\n\n # Use a file lock to ensure only one process downloads at a time\n if _ENCODING_LOCK is None:\n lock_path = os.path.join(tempfile.gettempdir(), \"harmony_encoding.lock\")\n _ENCODING_LOCK = filelock.FileLock(lock_path, timeout=300)\n\n with _ENCODING_LOCK:\n # Double-check after acquiring lock\n if _ENCODING_CACHE is None:\n _ENCODING_CACHE = load_harmony_encoding(HarmonyEncodingName.HARMONY_GPT_OSS)\n return _ENCODING_CACHE\n\n\ndef _extract_tool_name(current_recipient: str) -> str:\n if current_recipient.startswith(\"functions.\"):\n return current_recipient.removeprefix(\"functions.\")\n elif current_recipient.startswith(\"browser.\") or current_recipient == \"python\":\n return current_recipient # Keep full name for browser tools\n\n logging.warning(f\"Invalid tool name: {current_recipient}\")\n return current_recipient\n\n\nclass HarmonyChatCompletionResponseFormatter(ChatCompletionResponseFormatter):\n \"\"\"Understands Harmony multi-channel format with tool calls.\n\n The formatter accumulates harmony-formatted text and uses the HarmonyConversationStyle\n parser to extract tool calls, channels, and content. It works with both streaming\n and non-streaming modes, converting harmony format to OpenAI-compatible responses.\n \"\"\"\n\n @property\n def ENCODING(self):\n \"\"\"Lazy-load encoding to avoid race conditions in multi-process startup.\"\"\"\n return _get_harmony_encoding()\n\n def __init__(\n self,\n index: int,\n request_id: str,\n model_name: str,\n request_time: int,\n stream_buffer_ms: float,\n conv,\n raw_output: Optional[Any] = None,\n use_new_logprobs: bool = False,\n return_reasoning_with_separate_field: bool = True,\n tools: Optional[List[ChatCompletionTool]] = None,\n return_token_ids: bool = False,\n ) -> None:\n super().__init__(\n index,\n request_id,\n model_name,\n request_time,\n stream_buffer_ms,\n conv,\n raw_output=raw_output,\n use_new_logprobs=use_new_logprobs,\n return_reasoning_with_separate_field=True,\n return_token_ids=return_token_ids,\n )\n self._processed_tool_calls: List[ChatCompletionMessageToolCall] = []\n self._has_json_error: bool = False # Track if we encountered invalid/incomplete JSON\n self.tools = tools or []\n\n # Tool call streaming state\n self._current_tool_call_state: Optional[Dict[str, Any]] = None\n self._tool_call_index = 0\n\n self._eos_token_ids = []\n # TODO: we should read it from model config instead of hardcoding it\n for eos_token in [\"<|return|>\", \"<|call|>\"]:\n tokens = self.ENCODING.encode(eos_token, allowed_special=\"all\")\n assert len(tokens) == 1, f\"Expected single token for EOS token {eos_token}, got {tokens}\"\n "} +{"text": "The University of Colorado Boulder has been chosen by the Association of American Universities to be one of eight campuses participating in a new initiative to improve undergraduate education in science, technology, engineering and math.\nOver the next three years, each of the eight project sites will receive $500,000 to undertake an innovative STEM education project.\n“We are thrilled to be chosen by the AAU to be part of this important new initiative,” said CU-Boulder Chancellor Philip P. DiStefano. “Our selection underscores CU-Boulder’s long history as a national leader and innovator in the STEM education field, and positions us well to create new generations of STEM educators and researchers.”\nCU-Boulder’s initiative, which will be run out of the university’s recently formed Center for STEM Learning, will focus on working with faculty who teach undergraduate STEM classes to help them objectively assess the success of their teaching methods. The evaluations will complement the more subjective student course evaluations filled out at the end of a semester.\nThe grant money will be used, in part, to hire project staffers who will help participating faculty members interpret the newly collected evaluation data at the end of each semester and then make a plan to improve their teaching methods in the future.\n“We want to recognize that research and teaching are not in competition but, in fact, are complementary activities,” said CU-Boulder physics Professor Noah Finkelstein, a director of the Center for STEM Learning. “The excellence to which we strive as faculty is a habit of mind applied to all our endeavors at the university.”\nTypically, research and teaching are both formal requirements of a professor’s position, but research has been valued more in the university culture, Finkelstein said. Research has also traditionally been easier to evaluate.\nMeasures such as number of publications, frequency of study citations and grant amounts are often used to determine the quality of a faculty member’s research. By comparison, the leading tool for evaluation of a faculty member’s teaching has been end-of-course student evaluations, a measure that is not especially helpful for teasing out how effective a particular course was in meeting all the learning objectives, Finkelstein said.\nOver the last decade, CU-Boulder and other leading universities have developed a suite of tools that can more reliably measure the impacts of particular educational practices. The new project will work with faculty on a voluntary basis to find the most appropriate evaluation tools and implement them in their classrooms.\nThe eight campuses participating in the AAU’s new STEM initiative were chosen from 31 applications. The seven other campuses are Brown University, Michigan State University, University of Arizona, University of California, Davis, University of North Carolina at Chapel Hill, University of Pennsylvania and Washington University in St. Louis.\nThe AAU initiative received a three-year, $4.7 million grant from The Leona M. and Harry B. Helmsley Charitable Trust last October. The initiative also received a two-year, $284,000 grant from the National Science Foundation in May.\n“We have reached an exciting milestone in our initiative,” said AAU President Hunter Rawlings. “With the strong support provided by the Helmsley Trust, these eight project sites will each begin—or in some cases continue—to institutionalize evidence-based teaching in STEM fields. These changes will make teaching and learning far more interactive and participatory, and we hope will enhance overall student learning in STEM fields and reduce the number of students who choose to drop out of these majors.”\nThe Association of American Universities is an association of 60 U.S. and two Canadian research universities organized to develop and implement effective national and institutional policies supporting research and scholarship, graduate and professional education, undergraduate education, and public service in research universities.\nThe Leona M. and Harry B. Helmsley Charitable Trust aspires to improve lives by supporting effective nonprofits in a variety of selected areas. Since 2008, when the Trust began its active grant making, it has committed more than $900 million to a wide range of charitable organizations. Through its National Education Program, the Trust views education as a lever to advance both American economic competitiveness and individual social mobility. In K-12, the Trust focuses on ensuring all students graduate high school prepared for college or careers by supporting teacher effectiveness and the implementation of high academic standards. In postsecondary education, the Trust is primarily interested in increasing the number of Science, Technology, Engineering and Mathematics (STEM) graduates who can participate in high growth sectors of the economy. The Trust also focuses on policy levers that improve postsecondary completion, particularly for underrepresented populations. For more information, please visit http://www.helmsleytrust.org."} +{"text": "What: Boulder police Chief Mark Beckner briefs City Council on elk shooting\nWhen: 6 p.m. Tuesday\nWhere: Boulder Municipal Building, 1777 Broadway\nThe towering elk shot at Mapleton Avenue and Ninth Street by a Boulder police officer has been dead for almost a week, but the furor surrounding the animal's demise is still very much alive.\nBoulder police Chief Mark Beckner addressed the elk's death and answered questions Monday at a community meeting requested by residents of the neighborhood where the elk was killed, with some of those residents calling the shooting a \"murder.\"\n\"I know there is a lot of emotion around this issue,\" Beckner told about 70 people who gathered at the city's Public Safety Building on 33rd Street.\nOn New Year's Day, an officer on patrol at Ninth and Mapleton told police he encountered an injured elk that he determined needed to be put down. The officer killed the elk with a shotgun, then called an off-duty police officer who took the meat home to be processed. An on-duty Boulder County sheriff's deputy also helped load the animal into a truck.\nBut the Boulder police officer never reported the shooting and never told dispatchers about the incident. The two Boulder officers -- Sam Carter and Brent Curnow -- have been placed on paid leave as the Boulder Police Department conducts an internal investigation.\nWhen asked if he believed the officer's story, Beckner said he didn't have enough facts to determine that, but added that there were enough facts to open the internal investigation.\n\"If we didn't think there were issues, we would not be investigating,\" he said. \"It appears policies and procedure weren't followed. Now we need to either prove or disprove that.\"\nBut some members of the crowd did not take the same approach, with one comparing the paid leave to putting \"murderers on vacation.\" Beckner also said he has received e-mails from people going as far as asking that the officers involved be executed.\nThe chief urged residents to let the investigation play out.\n\"We take the stance that everyone is innocent until proven guilty,\" he said. \"But if that officer needs to be fired, I assure you he will be fired.\"\n'Going to have more training'\nBeckner said putting down an injured animal is not unusual for the police department and officers are trained to know how and when to euthanize injured wildlife. But he quickly added, \"Believe me, we're going to have more training.\"\nMany people in the crowd testified that the elk was never aggressive. Beckner said police did get a call on Dec. 26 from a mailman who reported being trapped on a porch in the area by the animal. But one woman read an e-mail she claimed was from the mailman saying the incident was overblown.\nBeckner reminded the crowd that the criminal investigation was being handled by Colorado Parks and Wildlife, not his own department.\nHe added that he would be concerned if the shooting was not warranted.\n\"We don't want our officers out there shooting animals if they don't have to,\" he said.\nRita Anderson with In Defense of Animals said the shooting should prompt policy changes in the department. She said violence toward animals was an indicator of violence toward people.\n\"They should have to go through an evaluation,\" she said.\nWhile Beckner said there is always room to improve, he said he didn't think the incident called for any massive changes to the department's policy.\n\"If they want to shoot something, protocol is not going to stop them,\" Beckner said of his officers.\nMeeting with City Council\nBeckner also plans to address the Boulder City Council at the beginning of Tuesday night's regular meeting. The council convenes at 6 p.m. in the Boulder Municipal Building, 1777 Broadway.\nBoulder Mayor Matt Appelbaum said last week that the council doesn't have the authority to order discipline for individual officers, but, as the voice of the community, council members do want answers about how the police department handles such cases.\nIn an e-mail to other City Council members Monday, Councilman Macon Cowles said he wants detailed information about police officers' contracts and how decisions are made about paid versus unpaid administrative leave, as well as information about how police would have handled a similar allegation involving civilians.\n\"This question is fundamental, and it is at the root of much of the public comment about the incident,\" Cowles wrote.\nCamera Staff Writer Erica Meltzer contributed to this report.\nContact Camera Staff Writer Mitchell Byars at 303-473-1329 or firstname.lastname@example.org."} +{"text": " self._eos_token_ids.append(tokens[0])\n self._accumulated_content = \"\" # Track content we've already sent to client\n self._streaming_parser = StreamableParser(self.ENCODING, Role.ASSISTANT)\n self._last_processed_token_count = 0\n\n def next_buffered_stream(self, flush: bool = False, usage: dict | None = None, feature_layers=None):\n if self.init_message:\n self.init_message = False\n first = self._format_init_message()\n if first is None:\n return None\n # else: we have a valid init message, continue processing\n # Add prompt_token_ids to the first choice\n prompt_token_ids = self._get_prompt_token_ids_for_first_chunk()\n if prompt_token_ids:\n first.prompt_token_ids = prompt_token_ids\n init_kwargs = self._build_streaming_overwrite_kwargs(choice=None, usage=None)\n return [\n self.serialize(r)\n for r in self.create_streaming_response(\n self.request_id, self.model_name, self.request_time, [first], **init_kwargs\n )\n ]\n # else: not init message, continue with normal streaming\n\n if not self.buffer:\n return None\n # else: we have buffer content to process\n\n now = time.perf_counter_ns()\n if not flush and (now - self.last_flush_ns) // 1_000_000 < self.stream_buffer_ms:\n return None\n # else: we should flush now (either forced flush or time threshold reached)\n\n choice = firetext.Choice.reduce(self.buffer)\n self.buffer.clear()\n self.last_flush_ns = now\n deltas = self._format_streaming_choice(choice)\n if not deltas:\n return None\n # else: we have deltas to send\n # Add prompt_token_ids to the first choice\n prompt_token_ids = self._get_prompt_token_ids_for_first_chunk()\n if prompt_token_ids and deltas:\n deltas[0].prompt_token_ids = prompt_token_ids\n kwargs = self._build_streaming_overwrite_kwargs(choice, usage, feature_layers)\n packets = self.create_streaming_response(self.request_id, self.model_name, self.request_time, deltas, **kwargs)\n return [self.serialize(p) for p in packets]\n\n def _format_streaming_choice(self, choice: firetext.Choice):\n out: List[ChatCompletionResponseStreamChoice] = []\n deltas = self._process_harmony_tokens(choice.token_ids, choice.index)\n out.extend(deltas)\n\n if choice.finish_reason:\n if self._processed_tool_calls:\n final_finish_reason = \"tool_calls\" # Use \"tool_calls\" even if JSON is invalid\n else:\n final_finish_reason = choice.finish_reason\n out.append(\n ChatCompletionResponseStreamChoice(\n index=choice.index,\n delta=DeltaMessage(),\n finish_reason=final_finish_reason,\n raw_output=self._format_raw_output(),\n )\n )\n # else: no finish_reason yet, continue streaming without final message\n\n return out\n\n def _process_harmony_tokens(\n self, tokens: List[int], choice_index: int\n ) -> List[ChatCompletionResponseStreamChoice]:\n \"\"\"Process harmony tokens directly using StreamableParser and extract deltas.\"\"\"\n deltas = []\n\n try:\n new_tokens = tokens\n\n for token in new_tokens:\n self._streaming_parser.process(token)\n current_channel = self._streaming_parser.current_channel\n current_recipient = self._streaming_parser.current_recipient\n current_content = self._streaming_parser.current_content\n content_delta = self._streaming_parser.last_content_delta\n\n # Handle tool call streaming\n if current_recipient and current_channel != \"final\":\n # Check if this is a new tool call\n # TODO bchen: this will fail if there are multiple tool calls in the same message;\n # validate when the model is here to see how to handle parallel tool calls correctly\n if (\n not self._current_tool_call_state\n or self._current_tool_call_state[\"recipient\"] != current_recipient\n ):\n # New tool call started\n tool_name = _extract_tool_name(current_recipient)\n\n call_id = _generate_call_id()\n self._tool_call_index += 1\n\n self._current_tool_call_state = {\n \"recipient\": current_recipient,\n \"tool_name\": tool_name,\n \"call_id\": call_id,\n \"index\": self._tool_call_index - 1,\n \"content_length\": 0,\n "} +{"text": "Joseph Smith, Jr. (1805 - 1844) was the founder and 1st President of the Church of Jesus Christ of Latter-day Saints. Joseph Smith was the first prophet, seer and revelator of the church. Joseph was born on December 23, 1805 in Sharon, Vermont.\nAfter hearing the conflicting claims of different Protestant preachers, Smith studied the Bible for himself. He decided to ask God which church he should join. In the Spring of 1820, Joseph said that he saw two beings, God (meaning the Father) and Jesus, in a vision. Smith claimed to have been repeatedly visited by an angel named Moroni, from 1823 to 1827. According to Smith's account, Moroni showed him where to find buried gold plates. The plates were said to contain the full gospel of Jesus Christ in \"reformed Egyptian\" (a language which few, if any non-Mormon, believes ever existed). Smith claimed to have translated these gold plates by the inspiration of God, using a set of unusual spectacles that were also furnished to him for the purpose. He published the translation in 1830 as the Book of Mormon. The plates are not available for examination because, according to Smith, the angel took them after the translation was completed. One of Smith's earliest followers and co-workers had previously worked in a publishing office where he may have had access to the manuscript of a novel that told the story of lost tribes in America.\nIt was claimed that, on May 15, 1829, the resurrected John the Baptist appeared to Joseph and Oliver Cowdery and gave them the authority to baptize. In 1829 the apostles Peter, James, and John gave them the authority to restore Christ's Church.\nSmith married Emma Hale (daughter of Isaac Hale) in 1827 against her father's wishes. A judge in South Bainbridge, New York married them. This angered her father, who said to Smith “You have stolen my daughter and married her. I had much rather have followed her to the grave.”\nLater, in Nauvoo, Joseph Smith founded an impressive militia, announced his intention to run for President of the United States, and tried to establish polygamy. Between 1841 and 1843, Joseph married more than thirty wives although he kept the practice hidden from the public and from Emma. In order to cause Emma to accept his additional wives, Joseph claimed to receive a revelation regarding this “new and everlasting covenant” of plural marriage, partly directed at Emma - Doctrine and Covenants 132:\nD&C 132:1 Verily, thus saith the Lord...\nD&C 132:4 ...no one can reject this covenant and be permitted to enter into my glory.\nD&C 132:52 And let mine handmaid, Emma Smith, receive all those [wives] that have been given unto my servant Joseph...\nD&C 132:55 But if she will not abide this commandment, then...I will...give unto him an hundred fold in this world, of...wives...”\nD&C 132:62 And if he have ten virgins given unto him...he cannot commit adultery...\nD&C 132:64 ...if any man have a wife...and he teaches unto her [this] law...then shall she believe and administer unto him, or she shall be destroyed...\nDespite the document's stipulation that the multiple wives be \"virgins\", Smith unabashedly married eleven women who had current marriages to other men (who were still alive at the time of each woman's marriage to Smith).\nSmith's wives (and their husbands) were: Emma Hale, Fanny Alger (16 years old), Lucinda Morgan Harris (married to George W Harris), Louisa Beaman, Zina Huntington Jacobs (married to Henry Jacobs), Presendia Huntington Buell (married to Norman Buell), Agnes Coolbrith, Sylvia Sessions Lyon (married to Windsor Lyon), Mary Rollins Lightner (married to Adam Lightner), Patty Bartlett Sessions (married to David Sessions), Marinda Johnson Hyde (married to Orson Hyde), Elizabeth Davis Durfee (married to Jabez Durfee), Sarah Kingsley Cleveland (married to John Cleveland), Delcena Johnson, Eliza R. Snow, Sarah Ann Whitney (17 years old), Martha McBride Knight, Ruth Vose Sayers (married to Edward Sayers), Flora Ann Woodworth, Emily Dow Partridge, Eliza Maria Partridge, Almera Johnson, Lucy Walker (17 years old), Sarah Lawrence (17 years old), Maria Lawrence, Helen Mar Kimball (14 years old), Hanna Ells, Elvira Cowles Holmes (married to Jonathan Holmes), Rhoda Richards, Desdemona Fullmer, Olive Frost, Melissa Lott, Nancy Winchester (14 years old) and Fanny Young.\nAlthough there is some historic indication that Smith married more women than those listed here (such as Clarissa Reed Hancock, the mother of John Reed Hancock), the evidence is not conclusive.\nImprisonment and Death\nSmith had been imprisoned in Carthage, Illinois for destroying the printing press of the Nauvoo Expositor. The Expositor had denounced (in its only printed edition) \"false doctrines\" (for instance the \"doctrines of many gods\") and Smith had then had the printing press burned in the street. In retaliation, an angry mob broke into the prison on June 27, 1844. In an attempt to defend himself (with a pistol which had been smuggled in to him), Smith shot and wounded three men. He was apparently preparing to jump from the unbarred second floor window where he had been incarcerated, but was shot, causing him to fall injured to the ground below. Four men shot him to death on the ground. None was convicted. His brother Hyrum (who was also armed with a pistol) was shot in the face and killed during the same gun-battle.\n- The First Vision Mormon.org\n- Translation of the Book of Mormon Mormon.org\n- Authority to baptize Mormon.org\n- Authority of Apostles Mormon.org\n- MORMON ENIGMA: EMMA HALE SMITH (Newell & Avery, University of Illinois Press, Urbana and Chicago, 1994)\n- Family Search Familysearch.org\n- Wives of Joseph Smith WivesofJosephSmith.org\n- Martyr for God JosephSmith.net"} +{"text": "WASHINGTON, Oct. 13 /PRNewswire/ -- A Florida state attorney is\ninvestigating thousands of potentially fraudulent voter registrations\nassociated with the leading organizer of Florida's Amendment 5 ballot\ninitiative. But this is just the tip of an iceberg of illegalities, fraud and\ncontradictions connected to the Association of Community Organizations for\nReform Now (ACORN). In recent days, ACORN has been at the epicenter of\nreports on thousands of potentially fraudulent voter registrations across the\nnation -- including many by ex-felons -- submitted by ACORN employees in the\npresidential swing states of Ohio, Colorado, Missouri Pennsylvania, New Mexico\nThe Employment Policies Institute has updated and re-released its report,\n\"The Real ACORN: Anti-Employee, Anti-Union, Big Business\" with the latest\ndetails on ACORN's involvement in what appears to be widespread voter\nregistration fraud. The report includes statements from former ACORN\nemployees on the illegal nature of the organization's promotion of the ballot\ninitiative to raise Florida's minimum wage to $6.15 per hour.\n\"This report reveals ACORN's pattern and practice of deception and fraud,\"\nsaid EPI research director Craig Garthwaite. \"The latest allegations of\nwidespread voter registration fraud should prove to be the last of ACORN's\nnine political lives.\"\nFormer ACORN Miami-Dade field director Mac Stuart has declared an intent\nto sue ACORN and has made charges of rampant voter fraud operations. Stuart\nwas employed and specifically tasked by ACORN to generate 103,000 new voter\nregistrations from Dade County. He reports that ACORN threw out Republican\nregistrations while paying for Democratic ones. Stuart also charges that\nACORN targeted ex-cons and that he personally set up registration tables\noutside the Miami police department and Dade County jail. He went on to\nstate, \"The voter registration project has been operating illegally since it\nACORN has paid workers for every voter registration card collected -- a\nfelony in Florida and also illegal in Missouri and Pennsylvania. ACORN also\nroutinely accepted signatures for Amendment 5 from individuals who were not\ncurrently registered to vote -- a requirement under Florida law.\nVoter registration and petition fraud is just the latest chapter in\nACORN's long sordid history. The EPI report also reveals:\nACORN Involved in Union Embezzlement -- In the late 1990s, ACORN's Project\nVote was involved in an $850,000 embezzling scheme, where union funds and\nkickbacks were used to illegally aid the 1996 re-election bid of then-\nTeamsters President Ron Carey. A New York federal jury found the Teamsters\npolitical director guilty of the conspiracy.\nACORN bilks AmeriCorps -- In 1996, the Inspector General of the AmeriCorps\nprogram stripped a $1 million grant from the ACORN Housing Corporation (AHC).\nWhen applying, AHC had denied any connections to ACORN, since the grant was\nnot intended for political advocacy organizations. Evidence later uncovered\nby the Inspector General found that not only was AHC created by ACORN, engaged\nin numerous transactions with one another, and sharing staff and office space\n-- but it utilized the AmeriCorps grant to increase ACORN membership, a\nviolation of federal guidelines.\nACORN Union-Busts Own Workers -- On March 27, 2003 the National Labor\nRelations Board (NLRB) found that ACORN had violated the National Labor\nRelations Act and was required to rehire and pay restitution to employees\nterminated for attempting to form a union. The NLRB ruling is just the latest\nin a trend of ACORN's union-busting tactics. ACORN employees have\nhistorically demanded higher wages, safer working conditions and more timely\ncontracted wages. These efforts have been repressed behind closed doors by\nthe hypocritical ACORN leadership, which publicly advocates higher pay and\nbetter working conditions for private sector workers.\nACORN and Minimum Wage Hypocrisy -- Most egregiously, ACORN promotes\nballot initiatives and local ordinances to force businesses to pay higher\nminimum wages, as they are currently doing with the minimum wage proposal in\nAmendment 5. In 1995, however, ACORN sued the state of California to have its\nemployees exempted from the state minimum wage. ACORN argued that being\nforced to pay higher wages would mean that they would hire fewer employees --\nthe very dilemma faced by businesses. Incredibly, ACORN stated that paying\nits employees a lower wage would allow them to be more sympathetic to the low-\nand moderate-income families they were attempting to help. ACORN argued that\nabiding by the state minimum wage would limit their ability to promote their\nagenda and would therefore be a violation of their First Amendment rights.\nThe trial court judge dismissed ACORN's suits, stating, \"leaving aside the\nlatter argument's absurdity ... we find ACORN to be laboring under a\nfundamental misconception of constitutional law.\"\n\"ACORN's history of voter registration fraud, hypocrisy, abuse of federal\ngrant programs, and disregard for sound economics should raise a red flag for\nvoters considering support for Amendment 5,\" Garthwaite said.\nThe full report is available online at http://www.EPIonline.org\nThe Employment Policies Institute is a nonprofit research organization\ndedicated to studying public policy issues surrounding entry-level employment."} +{"text": " }\n\n # Emit tool call name first\n deltas.append(\n ChatCompletionResponseStreamChoice(\n index=choice_index,\n delta=DeltaMessage(\n tool_calls=[\n ChatCompletionMessageToolCall(\n index=self._current_tool_call_state[\"index\"],\n id=call_id,\n type=\"function\",\n function=ChatCompletionMessageToolCallFunction(name=tool_name),\n )\n ],\n ),\n )\n )\n # else: continuing with existing tool call state, no new tool call setup needed\n\n # Stream incremental arguments if there's content growth\n if current_content and len(current_content) > self._current_tool_call_state[\"content_length\"]:\n # Get the incremental content\n start_pos = self._current_tool_call_state[\"content_length\"]\n incremental_args = current_content[start_pos:]\n self._current_tool_call_state[\"content_length\"] = len(current_content)\n\n # Note: We don't validate JSON during streaming since it's incomplete\n # JSON validation happens only when tool call is complete to avoid false errors\n\n # Emit incremental arguments\n if incremental_args:\n deltas.append(\n ChatCompletionResponseStreamChoice(\n index=choice_index,\n delta=DeltaMessage(\n tool_calls=[\n ChatCompletionMessageToolCall(\n index=self._current_tool_call_state[\"index\"],\n type=\"function\",\n function=ChatCompletionMessageToolCallFunction(\n arguments=incremental_args\n ),\n )\n ],\n ),\n )\n )\n # else: no incremental args to emit (empty increments are expected during streaming)\n # else: no content growth, continue processing without emitting incremental args\n\n # Track processed tool calls for finish_reason logic\n clean_content = current_content\n if self._current_tool_call_state[\"index\"] >= len(self._processed_tool_calls):\n self._processed_tool_calls.append(\n ChatCompletionMessageToolCall(\n index=self._current_tool_call_state[\"index\"],\n id=self._current_tool_call_state[\"call_id\"],\n type=\"function\",\n function=ChatCompletionMessageToolCallFunction(\n name=self._current_tool_call_state[\"tool_name\"], arguments=clean_content\n ),\n )\n )\n else:\n # Update existing processed tool call\n self._processed_tool_calls[self._current_tool_call_state[\"index\"]].function.arguments = (\n clean_content\n )\n\n # Handle regular content streaming (non-tool-call content)\n elif content_delta:\n is_final_channel = current_channel == \"final\"\n is_analysis_channel = current_channel == \"analysis\"\n is_commentary_channel = current_channel == \"commentary\"\n\n if is_final_channel or is_commentary_channel:\n # Send as regular content\n deltas.append(\n ChatCompletionResponseStreamChoice(\n index=choice_index, delta=DeltaMessage(content=content_delta)\n )\n )\n elif is_analysis_channel:\n # Send as reasoning_content\n deltas.append(\n ChatCompletionResponseStreamChoice(\n index=choice_index, delta=DeltaMessage(reasoning_content=co"} +{"text": "Home Office Redux\nWith more and more people turning spaces in their homes to office space, we’re starting to have inquiries on what steps one should take to make a work space that they can be productive in. Working from home often times proves to be difficult for many people, its easy to lose concentration when you are inhabiting the same structure that has previously only been used for comfort and relaxation. The easiest way to accomplish separation from work and living, is obviously to allow for actual physical separation.\nRegardless of the ability to separate the office functions from the living, there’s also the necessity for mental separation, a sense that defines the area as a work space that makes one want to be productive. This can be accomplished in numerous ways and often times depends on budget. One of the most cost effective solutions is simply color. Studies have shown that light colors, such as off whites and lighter tones work well in production areas, but remember that your personal comfort level also enhances the level of your productivity. The ability to have natural light in the work area is certainly a good thing, but with computer screens and other equipment, the ability to control the amount of natural light that enters the space is key.\nAnother key to a productive workspace is to reduce the amount of clutter. Having a space for files, papers, and supplies allows for more efficiency and also opens up the space visually. Typically if you’re turning an existing space into an office, then the room was not originally designed for a work space in mind. Often times people are turning small areas of the house into work spaces, so the larger you can make the room feel, the better you’ll feel working in it. Use furniture to your advantage, there are many well designed, great looking storage solutions out there.\nAgain, don’t be hesitant to bring your own personality into your home office, it’s your work space and you don’t have to worry about upsetting any of the coworkers. The happier you are, the more productive you should be.\nBelow is an existing home office that our client felt was long overdue for a make over. As you can see, the room gets quite a bit of natural light, but is very cluttered because of the lack of storage. It has also become a little outdated because of the stained tongue and groove wood, curtains, and beige carpeting. Not to mention the CRT monitor. Also problematic is the layout of the room, it is very thin and surrounded by doors and windows, so the majority of the “stuff” has been pushed to one end and the desk has been slid against the wall, with the client’s back against the windows. He has essentially, because of the type of desk, turned his back on the view and created a problem with the glare from the windows on his computer screen. Another reason for the renovation is the need to have the occasional client to the office, which with this layout would be difficult.\nWorking with budget restraints that only allowed us to work in the footprint of the existing space, the majority of the funds went into finding ways to make the space feel as open as possible, but providing the maximum amount of storage as possible while bringing the look and feel of the office current.\nWe turned to IKEA for the storage solutions, their EFFEKTIV combinations allowed for low storage along the bottom of the large windows, without distorting the view or the natural light and a taller unit combination was used at the entry. The GALANT system desk, turned against the flow of the space allows the user to have a view to the windows, reduces the glare on the computer screen, and provides a seating area for a visiting client.\nThe stained tongue and groove wall and trim has been painted out white and a little bit of personality has been added in the form of FLOR modular carpet tiles.\nSee this dreary cramped work area become an open, clean, efficient space for the modern person working from home in the slide show below:"} +{"text": "This is a follow up to a post that I made last month regarding how you can use MySpace to market your T-shirt designs. I continue with the social network theme and describe 5 handy tips of how you can utilize the micro-blogging tool, Twitter, to maximize exposure of your personal brand.Â\n1. Engage in conversation. This tip is probably the most important when trying to use Twitter to gain exposure for your brand. The more you interact with the people you follow and your followers the more engrained you will become in the collective conscious. The more you @ reply and dm (direct message) people the greater the chance that they will remember who you are. The ultimate goal is not only to build on the relationships of those you follow but for you to develop strong relations with your followers.\n2. Automate Twitters Across Platforms. It doesn’t make sense for you to tweet a message and then type out the same message to update your status on other platforms like Facebook, FriendFeed and Pownce. Make these platforms work with each other. For instance, every time you make a tweet you can instantly have your Facebook status updated with the same message. Similarly, when you Pownce, you can have that Pownce message automatically made into a tweet. FriendFeed is a cool aggregator of social networks so you can have your tweets automatically appear in your FriendFeed profile as well. Now instead of typing the same thing 4 times across 4 different platforms, you just need to do it once.Â\nTo auto update your Facebook status with your most recent Twitter tweets:\n1. Install the Twitter for Facebook application\n2. In the Twitter for Facebook applicationÂ\n3. Click the “Allow Twitter to Update Your Facebook Status” button just above the text box.\nCheck this post out to see how you can sync Twitter with Pownce.Â\n3. Friend Up. Do you have a particular niche that you’re interested in? Let’s take for example T-shirts. If you blog about T-shirts then it would make sense for you to be friends with people on Twitter who are also interested in the T-shirt culture. Here’s what you can do, you can actually search Twitter by going to search.twitter.com. Look up key words related to your niche. For instance, I am interested in tees so I did a Twitter search of people talking about Emptees and Threadless. Once you find these people, follow them. Chances are that they will follow you and then get your Twitter updates as a result. Now that you’ve found these people, chances are they are friends with other people interested in T-shirts, so be sure to check out who they follow as well. Also remember to search for friends feature in Twitter to check your email (i.e. Gmail) for contacts who are already on registered on Twitter. Find your audience and be friends with them. Feel free to add me @cotygonzales!\n4. Sync Blog Posts. This is a no brainer. Every time you make a new blog post, tweet about it. Again, you can automate this process, however, for this instance I do not. I always provide a personal message quickly describing the post and make it sound interesting (hopefully increasing the chances that my followers will click on the link) instead of having just a generic automated link to the blog post. However, if you decide to take the automated approach, check out Twitter Tools for WordPress, it allows you to sync your blog with Twitter and provides different ways of displaying your tweets on your blog.Â\n5. Be Interesting, Fun and Tweet Outside Your Niche. It’s important for you to Twitter about things related to your blog (see Tip #4) but it also important to tweet about things unrelated to your blog. People like out-of-nowhere tweets that raise an eyebrow or two. Tweet about random and fun things that happen to you throughout your day. Random posts remind people that you are human and not just a robot spamming Twitter with links to your blog!\nTwitter is powerful. Learning to harness that power will unleash an invaluable tool for anyone trying to develop a name or brand for themselves in this increasingly social-centered Internet.\nBy the way, here are some Twitter T-shirts that might peak your interest!\nYou can also find more Twitter themed tees at Eat Sleep Tweet!"} +{"text": "ntent_delta)\n )\n )\n else:\n # TODO: add a test to cover this case invalid_channel\n raise UserError(f\"Invalid channel: {current_channel}\")\n\n else:\n # This should never happen, so adding an exception here\n if content_delta:\n raise UserError(f\"Content delta '{content_delta}' without recipient context\")\n # else do nothing, expected\n\n except Exception as e:\n logging.exception(f\"Failed to process harmony tokens: {tokens}\")\n raise\n\n return deltas\n\n def _is_tool_call_message(self, msg) -> bool:\n return (\n hasattr(msg, \"recipient\")\n and msg.recipient\n # Some models may hallucinate a 'final' channel while also emitting a recipient.\n # Such cases should be treated as normal content (not a tool call), so we exclude 'final'.\n and getattr(msg, \"channel\", None) != \"final\"\n and msg.recipient != \"all\" # != all is needed, any specific recipient could be a tool\n )\n\n def _extract_message_text(self, msg) -> str:\n \"\"\"Shared helper to extract text content from a harmony message.\n\n This reduces duplication between streaming and non-streaming parsing logic.\n \"\"\"\n message_text = \"\"\n if hasattr(msg, \"content\") and msg.content:\n for content_item in msg.content:\n if hasattr(content_item, \"text\"):\n message_text += content_item.text\n # else: content_item doesn't have text attribute, skip it\n return message_text\n\n def _extract_content_from_messages(self, messages) -> tuple:\n \"\"\"Extract content and reasoning_content from harmony messages.\n\n Uses shared helper methods to reduce duplication between streaming and non-streaming parsing.\n Returns (content, reasoning_content) tuple.\n \"\"\"\n final_content = \"\"\n analysis_content = \"\"\n\n for msg in messages:\n if (\n hasattr(msg, \"author\")\n and hasattr(msg.author, \"role\")\n and str(msg.author.role) == \"Role.ASSISTANT\"\n and hasattr(msg, \"channel\")\n and msg.content\n ):\n message_text = self._extract_message_text(msg)\n\n if msg.channel == \"final\":\n final_content += message_text\n elif msg.channel == \"analysis\":\n if not self._is_tool_call_message(msg) and message_text.strip():\n analysis_content += message_text\n elif msg.channel == \"commentary\":\n # Commentary channel can contain both tool calls and preambles.\n # Only extract text content if this is NOT a tool call (preamble case).\n if not self._is_tool_call_message(msg) and message_text.strip():\n # This is a preamble - user-facing content that should be shown\n final_content += message_text\n # else: this is a tool call in commentary channel, ignore for content extraction\n else:\n # Unknown channel - this should be rare but handle gracefully\n import warnings\n\n warnings.warn(f\"Unknown channel '{msg.channel}' encountered, ignoring content\")\n else:\n # Message doesn't match expected structure - log but don't fail\n if hasattr(msg, \"author\") and hasattr(msg, \"channel\"):\n import warnings\n\n warnings.warn(\n f\"Message with role '{getattr(msg.author, 'role', 'unknown') if hasattr(msg, 'author') else 'no_author'}' and channel '{msg.channel}' doesn't match expected structure\"\n )\n\n content = final_content if final_content else None\n reasoning_content = analysis_content if analysis_content else None\n return content, reasoning_content\n\n def _format_non_streaming_choice(self, choice: firetext.Choice):\n \"\"\"Format complete harmony response for non-streaming mode.\"\"\"\n tool_calls: List[ChatCompletionMessageToolCall] = []\n content: Optional[str] = None\n reasoning_content: Optional[str] = None\n\n try:\n # Use batch parser instead of StreamableParser to avoid parsing bugs\n # Parser chokes on EOS token being present at the very end\n tokens = choice.token_ids[:]\n while tokens and tokens[-1] in self._eos_token_ids:\n tokens.pop()\n messages = self.ENCODING.parse_messages_from_completion_tokens(tokens, role=Role.ASSISTANT)\n content, reasoning_content = self._extract_content_from_messages(messages)\n harmony_tool_calls = []\n for msg in mess"} +{"text": "Tip #1: Index CardsFor every subject you're studying, write down key facts and figures on a set of index cards. By carrying these cards around with you, you'll be able to refer to them during spare minutes and other down time, enabling you to study on the bus, on the toilet, or while going to the toilet on the bus.\nTip #2: Highlighter Use a highlighter to color words in your books. This will make it feel like you're actually studying. Actually studying involves reading the words, which is also good, but much more time consuming, and frankly discriminatory against people who don't want to read.\nTip #3: Study Group Try joining a study group to help you prepare for exams. Assign sections of the material to each person in the group, then make that person provide a summary of the key information in that section to the rest of the group. Because the effectiveness of this technique depends on the people involved, finding the right study group is important. An easy trick for this: if you can't tell which one of your study friends is the dumb one, then it's probably you. This is thus an excellent study group for you.\nIn exam-mad Japan, study groups have complicated rituals.\nTip #4: Not Kidding Anyone It's time to just admit that you're hosed. There is no chance at all that you'll be able to pull this off, and if we're being honest, you'd probably be better off smacking yourself in the crotch with a hammer labeled \"Self-Deception\" then you would be by studying. With that taken as fact, the smartest thing you could do right now is just give up and stop wasting your time. Congratulations on making a very grown up decision.\nTip #5: The Shame But having come to that very mature decision, you can just picture your dad. And he's not one of the \"I'm just disappointed in you\" types. FATHER: -angry- You spent twenty eight thousand dollars to jerk off and play video games? Don't answer me. I don't want to know the truth. I doubt it's better. In fact I think I'm actually being pretty charitable describing your life. Yeah, you honestly can't live through several decades of that. So maybe it's time to buck up and find an alternative solution. Study-Ho!\nTip #6: Hot For Teacher (for the right price) You honestly have very little to lose from at least asking to nail your professor in exchange for a better grade. If the professor isn't agreeable to it, offer to pleasure their spouse, thus freeing up your professor's valuable time for more research. Be sure to bring along a \"Sexin' Resume\" to further establish your credentials.\nTip #7: Bomb Threats For the reasons described above (dads, yelling) bomb threats have become nearly ubiquitous on college campuses during exam season. Many authorities won't even delay exams upon receiving a threat now, unless they perceive the threat is in some way credible. So, make your threat credible by blowing up a smaller, less important building earlier in the week. The drama building for example.\nTip #8: The Ringer Browse your local dating website looking for people with pictures that look somewhat like you. Pretending to be someone else, Wink/Whisper/Poke/Diddle them to start a dialog, and over the course of a few private messages, see how smart they are. Eventually work the conversation around to them writing an exam under a false name in exchange for some sort of sexual favor. The success rate of this will depend sharply on how desperate people who look like you are for companionship.\nTip #9: Technology Use computers in some way to cheat. Cell phones and such are usually strictly forbidden during exams, but there are ways to use technology to get an edge. Try wrapping some C4 to a computer monitor, and pushing it into the elevator shaft of your chemistry building. Poof, instant delayed exam.\nTip #10: An Offer They Can't Refuse After writing your exam, loiter around the exam room, attempting to be the last one to hand it in. When you do, shake the professors hand, thanking her for teaching a good class. Use this opportunity to slip her some cash, or a note threatening her cat's life. \"Why did you write this using cut out magazine letters?\" she asks. \"I clearly know it was you who wrote it.\" Sprint out of there before she can find any more holes in your plan, and hide under a picnic table until everything blows over.\nTip #11: Illness If you think you actually have a chance to pass this exam, but only if you had more time to study, please refer to the \"Not Kidding Anyone\" tip above. If you still think that way, consider becoming legally ill prior to the exam in order to obtain a doctor's note. Eating uncooked chicken is a pretty good way to do this, but also consider entering an emergency room by dragging your rear end across the floor - the universal sign of irreversible intestinal distress."} +{"text": "If you go\nWhat: Community Recreation Center Steering Committee\nWhen: 7 p.m. March 17\nWhere: Craig City Hall, 300 W. Fourth St.\n• All community members are encouraged to attend.\nAt its Wednesday meeting, the Moffat County Tourism Association:\n• Approved spending $268 to sponsor the KRAI live broadcast of the State Wrestling Tournament on Feb. 19 to 21 in Denver.\n• Approved spending up to $1,800 for four pages of advertising in the Welcome to Craig magazine, published by the Daily Press.\n• Approved spending $529 for various Daily Press advertisements in 2009.\n• Did not approve renewing advertising in RV Journal because board members said they preferred saving money and putting it toward a professional consultant who could advise what advertising is more effective than others.\n• Approved up to $500 for a new printer for MCTA Director Michelle Perry.\nWhen Tony St. John moved with his wife and their three children to Craig around 1980, it was the middle of winter, and there was not much for his children to do.\nSix months later, he became involved with a campaign to bring a YMCA gymnasium to the area. After that failed to materialize, he joined the effort to build an ice arena at Loudy-Simpson Park.\nHe helped start tee ball and soccer programs, and then Trailbusters, a program that provides transportation and all-day ski instruction to local youths.\nAll these initiatives had something in common, St. John told the Moffat County Tourism Association at its Wednesday meeting, something an ongoing effort to build a community recreation center in Craig has not yet had.\nThe YMCA, Ice Arena and other past recreation projects resulted from community partnerships, he said. The Community Recreation Center Steering Committee should get back to that philosophy.\n\"I think we've not been doing it right,\" St. John said. \"This community recreation center needs to be a team effort.\"\nOtherwise, the project may never get out of committee, he added.\nSimilar opposition stood against nearly every other recreation project in recent memory, though time has proven those to be worthwhile community investments, St. John said.\nHe pointed to the City Park wave pool, built around 1985. Many in town rallied against the pool, but thousands of people use it every year.\nWoodbury Park, built in the 1990s, was an unpopular move by the city, but now it joins Loudy-Simpson as a host for Triple Crown Sports, a national youth sports organization.\nLoudy-Simpson itself began as a controversial issue, St. John added, but has become a cornerstone for the local community.\n\"That park has really been a moneymaker for all of us and given our kids something to do,\" he said. \"A recreation center could be the same thing. I really believe that. It will do wonders for our community.\"\nThe MCTA board did not disagree, but members pointed out the group could not provide any funding for a construction project. By county resolution, lodging tax money can be spent only on marketing and advertising, with the exception of funding a visitor center.\n\"We might be able to help you do brochures to promote it, but we can't help you build it,\" MCTA board member Cindy Looper said.\nThe Recreation Center Steering Committee is not asking for money, St. John said, though it would be happy if local organizations or businesses want to contribute.\nIts purpose now is to approach people to support the cause, he said.\nThe MCTA board is willing to look into it.\n\"We do like the concept of the project,\" MCTA Board President Tammie Thompson-Booker said, but she agreed with Looper that funding is a sticking point.\nMCTA board members will not support a move to repeal the county's lodging tax - which supplies the organization's entire budget - in favor of a city lodging tax that will fund a recreation center. State law prohibits cities and counties from having separate lodging taxes in the same area.\nHowever, board members said they would be willing to consider support of a special taxing district, which would not require the county tax be repealed.\nMCTA board member Frank Moe, who co-owns the Best Western Deer Park Inn and Suites, said he would support additional lodging taxes if it also would benefit his business and the local economy.\nNamely, he said he would want any new lodging taxes to go toward a facility with convention space. That could bring in more corporate events and help fill hotels with new guests who would spend money around Moffat County.\nDespite the lack of consensus about funding, St. John left the meeting happy.\nMoe volunteered to attend future Recreation Center Steering Committee meetings, which is what St. John said he wanted.\n\"I feel like we're just starting,\" he said. \"But, maybe we can start pulling the community together on this.\"\nCollin Smith can be reached at 875-1794 or email@example.com"} +{"text": "ages:\n if self._is_tool_call_message(msg):\n # This is a tool call - use shared helper for text extraction\n tool_content = self._extract_message_text(msg)\n\n try:\n import json\n\n json.loads(tool_content.strip()) # Validate JSON\n except (json.JSONDecodeError, ValueError):\n self._has_json_error = True # Signal that we found invalid JSON\n\n harmony_tool_calls.append(\n {\n \"id\": _generate_call_id(),\n \"type\": \"function\",\n \"function\": {\"name\": _extract_tool_name(msg.recipient), \"arguments\": tool_content},\n }\n )\n # else: message doesn't match tool call pattern, skip it\n\n for i, tool_call in enumerate(harmony_tool_calls):\n tool_calls.append(\n ChatCompletionMessageToolCall(\n index=i,\n id=tool_call[\"id\"],\n type=tool_call[\"type\"],\n function=ChatCompletionMessageToolCallFunction(\n name=tool_call[\"function\"][\"name\"], arguments=tool_call[\"function\"][\"arguments\"]\n ),\n )\n )\n\n except Exception as e:\n # Fallback: if Harmony parsing fails (e.g., malformed output from fine-tuned model),\n # return raw tokens as content instead of raising an error\n logging.warning(\n f\"Failed to parse Harmony format, falling back to raw content. Error: {e}. \"\n f\"Raw choice: {repr(choice)}\"\n )\n # Decode raw tokens as fallback content\n try:\n raw_content = self.ENCODING.decode_utf8(choice.token_ids)\n except Exception as decode_error:\n raise Exception(f\"Failed to decode {len(choice.token_ids)} tokens: {decode_error}\")\n content = raw_content\n reasoning_content = None\n tool_calls = []\n\n # Build message\n msg_kwargs = {\"role\": \"assistant\"}\n if content is not None:\n msg_kwargs[\"content\"] = content\n # else: no content to add to message\n if reasoning_content is not None:\n msg_kwargs[\"reasoning_content\"] = reasoning_content\n # else: no reasoning content to add or feature disabled\n if tool_calls:\n msg_kwargs[\"tool_calls\"] = tool_calls\n # else: no tool calls to add to message\n\n msg = ChatMessage(**msg_kwargs)\n\n # Determine finish reason based on tool calls\n if tool_calls:\n finish_reason = \"tool_calls\" # Use \"tool_calls\" even if JSON is invalid\n else:\n finish_reason = choice.finish_reason\n\n return ChatCompletionResponseChoice(\n index=choice.index,\n message=msg,\n finish_reason=finish_reason,\n logprobs=self._format_logprobs(choice.logprobs),\n raw_output=self._format_raw_output(),\n token_ids=choice.token_ids if self.return_token_ids else None,\n )\n\n @classmethod\n def create_streaming_response(\n cls,\n request_id: str,\n model_name: str,\n request_time: int,\n response_choices: List[ChatCompletionResponseStreamChoice],\n **overwrite_kwargs,\n ) -> List[ChatCompletionStreamResponse]:\n # Extract usage from overwrite_kwargs if provided (for final chunk)\n usage_info = get_usage_info(overwrite_kwargs.pop(\"usage\", None))\n\n # Lift prompt_token_ids from first choice to response level\n prompt_token_ids = None\n if response_choices and hasattr(response_choices[0], \"prompt_token_ids\"):\n prompt_token_ids = response_choices[0].prompt_token_ids\n # Remove it from the choice object (it should only be at response level)\n response_choices[0].prompt_token_ids = None\n\n return [\n firetext.api.ChatCompletionStreamResponse(\n **{\n **_common_response_fields(request_id, model_name, request_time),\n **overwrite_kwargs,\n },\n choices=[c],\n usage=(usage_info if c.finish_reason else None),\n perf_metrics=None,\n prompt_token_ids=prompt_token_ids if idx == 0 else None,\n )\n for idx, c in enumerate(response_choices)\n ]\n"} +{"text": "Originally Published: April 18, 2013 10:09 AM\nModified: April 19, 2013 9:13 AM\nSMALL BUSINESS BLOG -- SCOTT SUTTELL\nPainesville's Dyson Corp. silent amid Bay Bridge bolt problems\nOfficials in charge of building a new eastern span of the San Francisco-Oakland Bay Bridge “repeatedly questioned the work and quality control of companies involved in making long seismic safety bolts” — including Dyson Corp.\nin Painesville — that broke while being tightened, according to this\nAssociated Press story.\nLast month, the AP notes, about one-third of the 96 bolts failed, and transportation officials “said it could take months to find the cause and fix the problem, meaning the scheduled Labor Day opening of the new $6.3 billion span could be in jeopardy.”\nHundreds of pages of documents released to news media by the California Department of Transportation, or Caltrans, “show its inspectors found structural integrity issues with some of the bolts several years ago, before they were installed.”\nInspectors said bolts made by Dyson “failed to meet certain standards during testing on three occasions,” according to the AP. Dyson has said it will not comment during the probe into the bolt failures.\nAs far back as October 2008, Caltrans “admonished Dyson after finding that a test sample of bolts did not meet elongation requirements, a measure of the bolts' structural integrity,” the AP reports.\nRecords also show Caltrans inspectors identified other issues with Dyson and its subcontractors.\nFor instance, Cleveland-based Art Galvanizing Works Inc.\n, which put the protective zinc coating on some of the shorter bolts, “was criticized by inspectors for using approximate time guidelines for bathing the bolts,” which David Xu, a mechanical engineer and metallurgist at Berkeley Engineering and Research Inc., tells the AP can affect the integrity of the galvanizing.\nThis and that\nBusinesses small and large should cheer the findings of the latest Federal Reserve Beige Book\nreport, according to this analysis\nAlthough a lot of recent data — the jobs report and consumer confidence numbers most prominently — were discouraging, the new Beige Book survey “shows no signs of a slowdown,” the website notes.\nFrom late February through April 5, the economy expanded at a “moderate” pace, mostly on the back of strong auto sales and a suddenly vibrant housing sector.\n“Growth was strongest in the Cleveland, Richmond, St. Louis, Minneapolis, and Kansas City districts, indicating that the Midwest and Southeast are outpacing the rest of the country,” according to the Fed.Keeping up the fight:\nThe state of Ohio will not go quietly\nin the matter of a court decision that would require the state's workers' compensation fund to reimburse employers $860 million in alleged premium overcharges from 2001 to 2007.\nThe state this week filed an appeal, saying the March 20 ruling by Judge Richard J. McMonagle of Cuyahoga County Common Pleas Court was wrong as a matter of law.\nAccording to court documents, the state “outlines nine reasons the decision should be reversed,” according to PropertyCasualty360.com. Of them, the state says the court erred in calculating damages due the plaintiffs under an “equitable restitution” formula the state alleges is inappropriate.\nThe website notes the case is a class-action lawsuit that has been in the courts since 2007. The core of the dispute is discounted premiums the Ohio Bureau of Workers' Compensation gave companies that joined group insurance plans.\nLawyers for plaintiffs argue the state should just settle the case.\n“Now is the time for the BWC to do the right thing and immediately reimburse these businesses,\" says James DeRoche, a partner at Seaman Garson L.L.C., Cleveland, and a principal lawyer for the employers in the class-action lawsuit. \"If the BWC is truly business-friendly, it will not further delay payment so tens of thousands of small businesses can reinvest those dollars into creating and protecting Ohio jobs.”On the road again: James Gilmore\n, an author/speaker/business consultant from Chesterland, gets to weigh in on his favorite U.S. hotels in this story\nfrom USA Today\nHe's part of the newspaper's panel of “Road Warriors” — some of the world's most frequent travelers who voluntarily provide travel information.\nMr. Gilmore's two picks are both in California: L'Ermitage Beverly Hills and Hotel Vitale in San Francisco.\n\"I love the minimalist design of the guest rooms in both hotels,\" Mr. Gilmore tells USA Today\nThe Bose sound system in the guest room of the L'Ermitage is unmatched for enjoying music in a hotel, he says. \"And I love the heat and motion sensors that allow housekeeping to postpone as long as possible the moment they must finally knock and interrupt one's stay.\"\nAt Hotel Vitale, the views of the Bay Bridge \"are simply wonderful,\" the frequent traveler says.\nYou also can follow me on Twitter for more news about business and Northeast Ohio"} +{"text": "Turn Your Eyes Upon Jesus\n- Lucy Neeley Adams\n- 2015 16 Jun\nWhen I was a little girl I was my dad's favorite date to baseball games. Since no one else in our family wanted to go I felt very special. I loved the smell of popcorn and the sounds of the balls hitting the bat. But I had a secret that I tried to keep to myself.\nMy poor eyesight was that secret. But one night I asked my dad one time too many, \"What's the score?\" He told me all I had to do was look out at the scoreboard in center field. Then my secret had to be shared. \"I can't see that far.\" My mind was full of terrible thoughts. I might need to wear glasses and I was only twelve years old. But that's what happened.\nI wore my new glasses when Dad and I had our next date to the ballpark. I was actually glad I had them. I could see the scoreboard and even beyond. My world was bigger and I saw things I had been missing for months. Through the years my glasses have been a constant companion, and I am thankful for them.\nThere are, of course, more serious eye problems. A friend in our church developed a disease of the nervous system that effected his eyes. Jim could not hold his eye lids open so he appeared to be blind. His whole body was eventually effected with the disease so that he had to use a wheelchair.\nHis mother was his devoted care giver and her grief about him was understandable. It was even more tragic when she kept telling Jim to open his eyes if people spoke to him. He could respond but only with a smile.\nAs the months passed, Jim's mother died of a sudden heart attack. Not too long after her funeral Jim also died..\nWe gathered for the memorial service at our church and several people told about their friendship with Jim. Someone said, \"Jim is having no more trouble with his droopy eyelids is he? He's even looking at the face of Jesus\" (Rev. 22:4a) We smiled as we remembered the desire of his mother that he open his eyes and greet people.\nFor the Christian there is blessed assurance of that heavenly home where there are no more tears and no more sickness. \"And God will wipe away every tear from their eyes, there shall be no more death nor sorrow, nor crying and there shall be no more pain, for the former things have passed away\" (Rev. 21:4).\nWe who live the Christian life can see Jesus through eyes of faith even before we get to heaven. After my born-again experience, I remember the first time I sang a familiar chorus, \"Turn Your Eyes Upon Jesus\" in my church.\nEven though I had attended church every Sunday for years this was different. It felt like everything was new since I had asked Jesus to be my Lord and Savior and I totally surrendered my heart to Him. I was now building a relationship with a real Person.\nTears of joy ran down my cheeks as I sang. Now I knew that this was possible.\n\"Turn your eyes upon Jesus, look full in His wonderful face.\nAnd the things of earth will grow strangely dim,\nIn the light of His glory and grace.\"\nThe truth is that we can see Jesus in our mind's eye. Our resurrected Lord is alive and always waiting for us to look at him and search for His ways.\nThose words of encouragement remind us God does not intend for His children to be encumbered with weariness and troubled thoughts. The things of earth can entangle the mind with fears and anxieties about the future. That is why the first verse begins with a question\"\n\"Oh soul are you weary and troubled? No light in the darkness you see?\"\nComposer, Helen H. Lemmel wrote the words and music for this hymn. Born in Wardle, England in 1863 she moved with her family to America when she was twelve years old. She loved music and her parents provided her with the best teacher they could find.\n\"She returned to Europe to study vocal music in Germany\", writes hymnist, Robert J. Morgan in his book Then Sings My Soul. \"In time she married a wealthy European, but he left her when she became blind and Helen struggled with multiple heartaches during midlife.\"\nThe writing of this hymn was the result of Helen Lemmel's reading a small pamphlet, written by a missionary friend. She believed every word that was written and was touched by the unique way it was expressed. Her desire was to focus on Jesus so that the earthly things in life would be dimmed by his radiance. She wrote of that experience:\n\"Suddenly as if commanded to stop and listen, I stood still. Singing in my soul and spirit was the chorus of the hymn, with not one conscious moment of putting word to word to make rhyme or note to note to make melody.\"\nWithin the week, she completed the three verses that surround the chorus. The exciting story of Lemmels' composition was widely circulated. In 1924 it became a part of the hymnal, Gospel Truth in Song. Helen Lemmel died in 1961 in Seattle, Washington .\nThrough this hymn we hear the echo of Hebrews 12:2:, \"Let us fix our eyes on Jesus, the author and perfecter of our faith...\" He can turn our weariness and trouble into peace and joy.\nLord Jesus, we can see you through eyes of faith. Thank you. We see your arms open wide as we come again and again for refreshment and nourishment. We are filled to overflowing with your loving grace that forgives. ‘Thank you' are only two small words that mean, ‘we love you'. In your powerful name, Amen\nSEE ALSO: Thousands of Tongues Still Sing\nLucy Neeley Adams has always loved music. She began telling the story of hymns on Christian radio WWGM in Nashville, TN, in the '80s. She then wrote a newspaper column titled \"Song Stories\" for five years. During that time Lucy's book, 52 Hymn Story Devotions, was published by Abingdon Press in Nashville. Each of the 52 stories contained in the book is written in a devotional format, with the words of the hymn concluding each devotion."} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/serving/text_completion/serverless.py. Lines: 1086.\n\nimport atexit\nimport logging\nimport os\nimport queue\nimport threading\nimport time\nfrom typing import Awaitable, Callable, Dict, Optional\n\nfrom fireworks.util.configerator import ConfigHandle\nfrom fireworks.serving.ratelimit_verifier.ratelimit_verifier import (\n RatelimitVerifier,\n RatelimitResponse,\n)\nfrom fireworks.serving.ratelimit_verifier.ratelimit_cache import (\n RatelimitCacheStore,\n RatelimitCapacityCache,\n RatelimitUsageCache,\n)\nfrom fireworks.serving.ratelimit_verifier.unkey_client import UnkeyClient\nfrom fireworks.serving.ratelimit_verifier.sync_worker import (\n RatelimitSyncWorker,\n METRIC_TOKENS_PROMPT,\n METRIC_TOKENS_GENERATED,\n METRIC_TOKENS_CACHE_ADJUSTED_PROMPT,\n)\nfrom .coordinator import RequestLifetimeTracker\nfrom .load_shedding import LoadShedTracker\nfrom .metrics import metrics as server_metrics\nfrom .request_metrics import RequestMetrics\n\nfrom .error import OverloadedError\nimport fireworks.text as firetext\nfrom .serverless_settings import ServerlessSettings, get_deployment_name, get_serverless_config_handle\n\nlogger = logging.getLogger(__name__)\n\n_LOG_PREFIX = \"[global-rl:enforce]\"\n\n\nclass ConcurrencyLimiter:\n def __init__(\n self,\n config_handle: ConfigHandle,\n max_batch_size: int,\n num_queued_func: Callable[[], int],\n ):\n self._config_handle = config_handle\n self._max_batch_size = max_batch_size\n self._num_queued_func = num_queued_func\n self._counts = {}\n self._total_count = 0\n self._lock = threading.Lock()\n\n def get_config(self) -> ServerlessSettings:\n return self._config_handle.get_current()\n\n def check_limit(self, metrics: RequestMetrics) -> bool:\n config: ServerlessSettings = self.get_config()\n # Treat the legacy per-account concurrency gate as part of Redis-era\n # ratelimiting, so the existing ratelimit kill switch disables it too.\n if config.is_ratelimit_verifier_disabled():\n return True\n\n user_account = metrics.user_account\n q = self._num_queued_func()\n if q <= config.demoting_num_queued_threshold:\n return True\n\n if config.get_account_priority(user_account) == 0:\n metrics.concurrency_response = RatelimitResponse(accepted=False, used=0, limit=0, is_hard_limit=False)\n return False\n\n with self._lock:\n count = self._counts.get(user_account, 0)\n total_count = self._total_count\n limit = self._max_batch_size * config.max_batch_fraction_per_user_soft_limit\n if total_count >= config.active_fraction_min_size:\n limit = min(limit, total_count * config.active_fraction_per_user_soft_limit)\n limit = int(limit)\n\n is_accepted = count <= limit\n metrics.concurrency_response = RatelimitResponse(\n accepted=is_accepted, used=count, limit=limit, is_hard_limit=False\n )\n return is_accepted\n\n def validate_on_request_received(self, num_queued_and_active: int, unified_priority_level: int) -> Optional[str]:\n if unified_priority_level == 2:\n return None\n batch_size_multiplier = 10 # Serverless uses higher multiplier\n q = num_queued_and_active\n if q > self._max_batch_size * batch_size_multiplier:\n return f\"queue overloaded num_queued_and_active={num_queued_and_active}, max_batch_size={self._max_batch_size}, multiplier={batch_size_multiplier}\"\n return None\n\n def validate_drop_low_priority(self) -> Optional[str]:\n config: ServerlessSettings = self.get_config()\n q = self._num_queued_func()\n if q > self._max_batch_size * config.shedding_num_queued_multiplier:\n return f\"concurrency limit q={q}, max_batch_size={self._max_batch_size}, shedding_num_queued_multiplier={config.shedding_num_queued_multiplier}\"\n return None\n\n def track_request(self, account: str, n: int) -> Callable[[], None]:\n with self._lock:\n self._counts[account] = self._counts.get(account, 0) + n\n self._total_count += n\n return lambda: self._release_request(account, n)\n\n def _release_request(self, account: str, n: int):\n with self._lock:\n self._counts[account] -= n\n if self._counts[account] == 0:\n del self._counts[account]\n self._total_count -= n\n\n\n# TODO(nelson): Move this verifier into fireworks.serving.ratelimit_verifier\n# so serverless.py only wires ratelimit enforcement into request lifetime tracking.\nclass TcUnkeyRatelimitVerifier:\n \"\"\"Unkey-backed ratelimit verifier (primary enforcement).\n\n All checks are synchronous reads from shared in-memory dicts.\n Network I/O is handled by the RatelimitSyncWorker thread.\n \"\"\"\n\n def __init__(\n self,\n *,\n cache_stor"} +{"text": "A 'Cairo moment' for Obama in Moscow?\nWhen he visits there next week, he should counter Kremlin propaganda by speaking directly to Russians about America's real desires.\nWashington — Next week, President Obama will travel to Moscow to attend a summit with Russian President Dmitry Medvedev. He should use that opportunity to engage not only with the government of Russia, but to communicate directly to the Russian-speaking world.\nCorrectly, the Obama administration has focused on the need to reach out directly to adherents of the Muslim faith. Last month in Cairo, surrounded by hundreds of young people, students, and activists, Mr. Obama eloquently conveyed both America's values and hopes for a better relationship with the Muslim world, a relationship rooted in genuine respect.\nAs of now, no major speech to reach the hearts and minds of the Russian-speaking world is planned, but it should be part of the president's agenda during his visit to Moscow. Russians, and the vast majority of their neighbors, suffer from a freedom deficit comparable to that experienced by all too many inhabitants of the Middle East. In assessing the state of freedom in the countries of the former Soviet Union – excluding the three tiny Baltic States – the nongovernmental organization Freedom House actually finds lower levels of freedom than in the Middle East.\nIn most of these countries, including Russia itself, a corrupt ruling elite controls and exploits the country's major resources for its own enrichment. Elections are largely meaningless exercises in which there is no viable competition. And any civil society groups that attempt to engage in politically sensitive topics – like human rights or anticorruption – are stifled, sometimes brutally.\nWithin Russia, all meaningful mass media serve as a mouthpiece for the Kremlin. The Russian people are bombarded by a sophisticated propaganda campaign that taps into nationalist sentiments and invents outside enemies to justify the consolidation of power. School curricula have been adjusted to glorify Soviet achievements, while playing down its depredations. In May, President Medvedev announced the creation of a new Commission to Protect Russian History, which will serve to counter historical narratives that portray Russia in a negative light. Even the Orthodox Church feeds the idea of the strong state and Russian exceptionalism.\nThis campaign has been extremely effective in exploiting Russians' humiliation at the collapse of the Soviet empire. It incorporates both nostalgia for its superpower past with viciously anti-Western, and particularly anti-American, rhetoric.\nPropaganda has also capitalized on anti-Bush sentiment to tarnish the ideas of freedom and democracy and to present these values as incompatible with Russian traditions and culture. No matter that these same arguments were once made regarding the culture and history of Asians and Latin Americans and adherents to the Roman Catholic or Muslim faiths – arguments that have since been repudiated by the reality that all people want to enjoy fundamental freedoms.\nCan a speech from Obama hope to counter such a well-resourced and sophisticated anti-American and antidemocracy campaign? Certainly not by itself. But, just as in Cairo, it would be an important step if done in the right way. Russians don't like being preached to by foreigners any more than Egyptians, Turks, Iranians, or for that matter, Americans, do.\nYet they may respond to a frank and respectful speech that emphasizes America's real desire – not for a weak and subservient Russia – but rather a strong Russia that shares its democratic values and that can be a real partner in tackling some of the world's growing list of crises.\nEven if successful, outreach to the Russian people will not resolve the problem of a Kremlin that subverts freedom and democracy. But the past eight years have taught us nothing if not the importance of the hearts and minds of people. We are already starting to reset our relationship with the Russian government. We should make a strong effort to do so with the Russian people as well.\nPaula Schriefer is the director of advocacy at Freedom House, an independent nongovernmental organization that supports the expansion of freedom in the world."} +{"text": "Obama goes from scolder in Washington to comforter in Boston\nIn Washington, President Obama is locked in a battle with many voices in Congress over gun control, but at a moment of national tragedy, such as the Boston Marathon bombings, the president stands alone.\nA day after he stood in the White House Rose Garden as a frustrated scolder-in-chief, President Obama was in Boston Thursday assuming the role of comforter-in-chief at a prayer service for the victims of the Boston Marathon bombings.\nIn both cases, Mr. Obama was acting to address, though in very different ways, horrendous acts of violence that stunned the country.\nOn Wednesday afternoon, with Gabrielle Giffords and Sandy Hook families at his side, the president cast “shame” on the US Senate for rejecting a bipartisan plan for tighter background checks on gun purchases. Not 24 hours later, he was providing balm to the victims of an “act of terror” and to a city struck in its heart.\nIn just a day, the president changed out of the political cloak of irate reaction to Congress to the higher m antle of national leadership in times of grief. As Obama hugged families and visited the bedsides of the recovering, it only underscored how a presidential presence that meant so little one day in Washington could mean everything in Boston the next.\nIt was a change in roles reminiscent of one made by President Clinton in 1996, when the Oklahoma City bombing – at that time, the largest act of terror to strike the US – allowed a president caught up in daily political harangues with Congress to step out from Washington and comfort a nation with what would become his trademark empathy.\nIn the Rose Garden, Obama was introduced by Mark Barden, who lost his son, Daniel, in the Sandy Hook Elementary School shooting on Dec. 14. With the president’s hand on his shoulder, Mr. Barden said the Sandy Hook families were “disappointed” by the Senate votes but “not defeated,” promising continued effort for gun safety legislation.\n“All in all, this was a pretty shameful day for Washington,” Obama said.\nIn Boston, the president was accompanied by Michelle Obama, and the tone was much more one of comfort and of faith in the resilience of Boston and all Americans in the face of tragedy.\nComparing the nation to the Boston Marathon runner seen on videotape by millions as he was knocked off his feet by the first of two blasts, Obama said, “We may be momentarily knocked off our feet. But we’ll pick ourselves up. We will keep going. We will finish the race.”\nA devoted sports fan, Obama is said to have penned much of Thursday’s remarks himself.\nHe went on to pledge, as he had just hours after the bombings, that those responsible will be found and brought to justice. “But more than that,\" he added. \"our fidelity to our way of life, to our free and open society, will only grow stronger.”\nBut with the investigation into the marathon bombings turning up clues – including photos of individuals of interest and painstaking assembly of bomb parts pointing to unsophisticated devices built to kill and maim – that keep alive the theory that the attack could have been the work of domestic extremists, more attention is being paid to past domestic “acts of terror.”\nThe Oklahoma City bombing, in particular, became embroiled in the prevailing political storms, as an embattled Mr. Clinton addressed the deadly act of an antigovernment terrorist in a way that some Republicans charged used the tragedy for political gain.\nFour days after the bombing, Clinton traveled to Oklahoma City and delivered words that both comforted and reassured his audience and the country. “You have lost too much, but you have not lost everything,” he told his audience, noting that America was with them. He then told the nation, “I will not allow the people of this country to be intimidated by evil cowards.”\nBut Clinton was also castigated by some critics for using the Oklahoma City bombing to single out some of his harshest detractors for the way that, in his view, their fiery rhetoric appeared to condone violence.\n“We hear so many loud and angry voices in America today whose sole goal seems to be to try to keep some people as paranoid as possible and the rest of us all torn up and upset with each other,” Clinton said. “They spread hate. They leave the impression that, by their very words, that violence is acceptable.”\nBy contrast, Obama did not accuse anyone of encouraging gun violence in his Rose Garden comments, but he did suggest that political expediency was the only motivation that could explain the Senate’s rejection of what he called a “common sense” measure expanding background checks. And he accused opponents of the bill of \"lying\" about what it would and wouldn't do.\nIn rebuffing the president, some opponents of additional gun safety measures have accused Obama of using the Sandy Hook tragedy for political gain. Libertarian Sen. Rand Paul (R) of Kentucky charged the president with employing the Sandy Hook families that have lobbied members of Congress as “props” in his quest for more government regulation.\nIt has not been a satisfying or particularly inspiring debate on either side.\nAway from Washington, Obama spent time Thursday with families of the victims of Monday’s bombings. He and Michelle visited recovering patients in several Boston hospitals, and the president stopped in to thank marathon volunteers and first-responders who have been credited with quick action that saved many lives.\nIt was a day for presidential comforting, the frustrations of Washington could be put off to another day."} +{"text": "e: RatelimitCacheStore,\n cost_queue: \"queue.Queue\",\n force_charge_queue: \"queue.Queue\",\n router_name: str,\n sync_worker: Optional[RatelimitSyncWorker] = None,\n ):\n self._cache = cache_store\n self._cost_queue = cost_queue\n self._force_charge_queue = force_charge_queue\n self._router_name = router_name\n self._sync_worker = sync_worker\n logger.info(\"%s TcUnkeyRatelimitVerifier created router=%s\", _LOG_PREFIX, router_name)\n\n def stop(self) -> None:\n \"\"\"Stop the background sync worker and release its resources.\"\"\"\n if self._sync_worker is not None:\n self._sync_worker.stop()\n self._sync_worker = None\n\n def _notify_sync_worker(self) -> None:\n if self._sync_worker is not None:\n self._sync_worker.notify_work_available()\n\n @staticmethod\n def _admit_by_remaining(\n usage: Optional[RatelimitUsageCache],\n capacity: RatelimitCapacityCache,\n pending: float,\n ) -> tuple[RatelimitResponse, str, Optional[float]]:\n if usage is not None and usage.is_valid():\n effective_remaining = usage.remaining - pending\n return (\n RatelimitResponse(\n accepted=usage.success and effective_remaining >= 0,\n used=int(usage.limit - effective_remaining),\n limit=int(usage.limit),\n is_hard_limit=False,\n ),\n \"global\",\n usage.remaining,\n )\n\n limit = capacity.total_tpm\n return (\n RatelimitResponse(\n accepted=(limit - pending) >= 0,\n used=int(pending),\n limit=int(limit),\n is_hard_limit=False,\n ),\n \"local-only\",\n None,\n )\n\n @staticmethod\n def _admit_by_usage(\n usage: RatelimitUsageCache,\n capacity: RatelimitCapacityCache,\n ) -> tuple[RatelimitResponse, str, float]:\n limit = capacity.total_tpm\n used = usage.usage\n return (\n RatelimitResponse(\n accepted=(limit - used) > 0,\n used=int(used),\n limit=int(limit),\n is_hard_limit=False,\n ),\n \"global\",\n max(0.0, limit - used),\n )\n\n def check_prompt_ratelimit(self, account: str, *, tokens_prompt: int = 0) -> Optional[RatelimitResponse]:\n \"\"\"Prompt ratelimit check (read-only).\n\n Defaults to cost 0 (pre-tokenization precheck). Post-tokenization callers pass\n the real prompt token count. Admission uses cached capacity and usage plus\n local pending deductions for this pod.\n\n Accept only when remaining capacity covers local pending plus this request's cost.\n The cache provides the current remaining available capacity; if that is missing/stale,\n fall back to the total capacity limit. If capacity is missing, fail open.\n \"\"\"\n cost = tokens_prompt\n metric = METRIC_TOKENS_PROMPT\n key = (account, self._router_name, metric)\n\n capacity = self._cache.get_capacity_or_default(key)\n usage = self._cache.get_usage(key)\n\n if capacity is None or not capacity.is_valid():\n logger.debug(\n \"%s Fail-open: no valid capacity account=%s metric=%s\",\n _LOG_PREFIX,\n account,\n metric,\n )\n server_metrics.unkey_check_total.labels(\n **server_metrics.static_keys, metric=metric, mode=\"fail-open\", accepted=\"true\"\n ).inc()\n return None\n\n pending = self._cache.get_pending_deductions(key) + cost\n response, mode, cache_remaining = self._admit_by_remaining(usage, capacity, pending)\n\n server_metrics.unkey_check_total.labels(\n **server_metrics.static_keys,\n metric=metric,\n mode=mode,\n accepted=str(response.accepted).lower(),\n ).inc()\n if cache_remaining is not None:\n server_metrics.unkey_cache_remaining.set(cache_remaining)\n\n return response\n\n def admit_prompt_ratelimit(self, account: str, tokens_prompt: int) -> Optional[RatelimitResponse]:\n \"\"\"Post-tokenization prompt admission.\n\n Returns the read-only admission response and commits the prompt cost only\n when the request is admitted. Fail-open (`None`) is treated as admitted so\n the sync worker can learn usage once capacity data becomes available.\n \"\"\"\n response = self.check_prompt_ratelimit(account, tokens_prompt=tokens_prompt)\n accepted = response is None or response.accepted\n if accepted and tokens_prompt > 0:\n key = (account, self._router_name, METRIC_TOKENS_PROMPT)\n capacity = self._cache.get_capacity_or_default(key)\n if capacity is None or not capacity.is_valid():\n self._"} +{"text": "One Marine's memorial: day of racing to honor veterans' service\nRyan Jerabek's parents helped organize an annual footrace that traces the route run by their son, a Marine killed in Iraq. The event honors those who serve in the US armed forces.\nWhen Rita and Ken Jerabek saw the men in uniform at their door one April morning in 2004, they knew their lives had changed forever. They were told that their son Ryan, not long out of high school and a Marine Corps private first class serving in Ramadi, Iraq, had been killed in an ambush.\nSomething would always be missing for the couple and for Ryan’s brothers. But a year or so later, Mrs. Jerabek came upon an idea she felt would honor her son’s memory while also helping others. She found it in his own words, back when he was a student at Pulaski High School near Green Bay, Wis.\nIn a speech class in 2002, he said: “I’d like to ask of you to thank those who fought and are fighting in the battles to keep this country at the pinnacle of freedom.” It became clear to Jerabek: “Ryan is wanting us to carry on what he had asked his fellow students to do.”\nThree things came together as the idea developed: Ryan ran track in high school, staying in shape by running a four-mile route near the family’s home in rural Hobart, Wis.; he wanted to join the Marine Corps as soon as he graduated; and after military service, his plan was to go to college to become a high school history and social studies teacher.\nIn terms of carrying out something, “I didn’t know where to begin,” Jerabek says. But with the help of event planners and race organizers, Rita and Ken organized the first “Pfc Ryan Jerabek, USMC Memorial Challenge” – a four-mile footrace retracing Ryan’s training route. That was in 2006, when about 600 people participated. Since then, it’s become an annual event.\nLast August, about 1,200 runners and walkers – children as well as adults – took part, including 18 marines from across the United States who had been in Ryan’s platoon. It was a five-year reunion for them.\nGold Star families – those who’ve lost somebody in war – have begun coming, too. “They’re able to introduce their loved ones to the group,” Jerabek says.\nProceeds from the event go to two causes Ryan and his family valued: the Injured Marine Semper Fi Fund, which provides financial assistance to those of all uniformed services injured in post-9/11 combat and training, and the Pulaski Community School Education Foundation Inc., which makes small grants (typically $500) to local teachers for books and other equipment or special projects. For 2009, the proceeds totaled $7,400.\nParallel runs have been held by about 100 service personnel and civilians – including the US ambassador to Iraq – in Baghdad’s Green Zone. Airmen at Dyess Air Force Base near Abilene, Texas, ran their own Jerabek Challenge. And about 80 sailors from the San Diego-based USS Green Bay went to the Marine Corps base at Camp Pendleton to run the race.\n“It’s such an exciting day to see everybody gather in support of our troops, to remember the fallen, and to say ‘thank you’ to our military,” says Jerabek, who’s a nurse practitioner at a rural family practice clinic.\nRita Jerabek is also active with Operation Gratitude, which sends care packages to troops serving overseas, and with the Iraq and Afghanistan Veterans of America (IAVA).\nThese days Rita and Ken Jerabek have new concerns as well. Their youngest son Nick followed in his older brother’s boot steps. He’s a Marine Corps corporal now serving in Afghanistan.\nHas the Jerabek Challenge helped ease the loss of Ryan?\nPausing, Jerabek says, “Yes, it has.”\n“Sometimes it’s overwhelming,” she goes on. “But then I remember that it’s helping other people, so it is healing for me. And for me, it was important to do something that I think Ryan would be really proud of.”\n“It’s helped his brothers too,” she adds, noting that with the run Ryan’s friends, Marine Corps buddies, and a growing number of strangers “in a spiritual way are retracing his steps.”"} +{"text": "Year-Round Maintenance Tips from Cub Cadet\nSeasonal Lawn Maintenance Tips\nDiscover how year-round lawn care can benefit your yard\nIf you live in a region that experiences all four seasons, you may think lawn care is something you only have to worry about in the summer. But, lawn care is a year-round job even in the face of snow, falling leaves and spring thaw. With these helpful lawn care tips, your lawn will look its best where it's winter, spring, summer or fall.\nSeasonal Lawn Care Tips for the Winter\nThe key to seasonal lawn care in the winter is to prevent breakage and damage to delicate or dormant plants, trees, shrubs and grass. First, shovel walkways in a manner that keeps visitors off your lawn, keeping grass blades from flattening or breaking. Brushing snow off trees and shrub branches will also prevent breakage. If needed, winter is also a good time to trim branches. When the tree limbs are dormant, the plant will sustain less damage than when in full bloom. Another seasonal lawn care tip: think ahead. Get a head start on spring lawn care by ordering seeds as winter comes to a close.\nSeasonal Lawn Care Tips for the Spring\nIn the spring, start treating your lawn as soon as the snow melts. Remove debris that accumulated during the winter, like leaves, sticks and twigs. And if your lawn was damaged from snow blowing, plowing or shoveling, replace the divots or lay down new seed. If year round lawn care is your goal, this is a great time to apply fertilizer or herbicides to grass. However, you cannot do both at the same time as herbicides will restrict grass growth. Be sure to water regularly to bring your grass back to life.\nGet your equipment ready! Before you know it, your lawn will be ready to mow. Prepare your walk-behind or riding lawn mower and other equipment with basic maintenance. If you find your walk-behind mower or riding lawn mower isn't working properly, you will have time to buy new lawn mower parts and perform repairs.\nSeasonal Lawn Care Tips for the Summer\nDuring the summer months, seasonal lawn care should focus on cutting the grass and regularly watering it. The key to a lush and healthy lawn when the temperature is high is to keep the grass a little long. Do not cut your lawn to less than two inches in height. When grass is cut too short in the summer months, it is more likely to dry out and become damaged because the blades can't shade the soil and roots from the sun. Water your lawn with either a sprinkler or seep hose, but be sure to move the sprinkler or hose every half hour to ensure even watering. Also, for seasonal lawn care in the summer, it's best to water early in the morning or in the evening when it's cooler; this prevents scorching your grass when the sun it at its hottest.\nSeasonal Lawn Care Tips for the Fall\nIn anticipation of the dormant season, fertilize the lawn one more time. Boosting nutrients before the winter months is a great way to promote year-round lawn care and will help your lawn stay healthy and come back quicker in the spring. Another good lawn seasonal lawn care tip for the fall is to mow your grass a little shorter than normal. The shorter grass will not get as damaged by snow in the upcoming winter months. Also, don't forget to clean your yard by raking leaves, removing debris, storing garden lights and emptying flower pots.\nThe fall is also a good time for new grass seeds, so spend some time re-seeding any dead areas. Don't worry; in the fall birds have migrated away and won't be able to pick at the new seed which will be ready to sprout in the spring.\nProper Lawn Care 365 Days A Year\nYour yard has the best chance of looking its greenest and fullest when you implement seasonal lawn care year-round. With your tools, outdoor power equipment and riding lawn mower properly maintained, year-round lawn care becomes a lot easier. Inspect your machines on a regular basis as part of your seasonal lawn care, so you can replace worn or aging parts and get back to your landscaping."} +{"text": "cache.add_pending_deduction(key, tokens_prompt)\n server_metrics.unkey_pending_deductions.set(self._cache.get_pending_deductions(key))\n else:\n pending = self._cache.add_and_get_pending(key, tokens_prompt)\n server_metrics.unkey_pending_deductions.set(pending)\n self._cost_queue.put_nowait(\n (account, self._router_name, METRIC_TOKENS_PROMPT, tokens_prompt, time.monotonic())\n )\n self._notify_sync_worker()\n return response\n\n def check_gen_ratelimit(self, account: str) -> Optional[RatelimitResponse]:\n return self._check_usage_cached_metric(\n account=account,\n metric=METRIC_TOKENS_GENERATED,\n no_usage_mode=\"gen-no-usage\",\n )\n\n def check_cache_adjusted_prompt_ratelimit(self, account: str) -> Optional[RatelimitResponse]:\n return self._check_usage_cached_metric(\n account=account,\n metric=METRIC_TOKENS_CACHE_ADJUSTED_PROMPT,\n no_usage_mode=\"cache-adjusted-prompt-no-usage\",\n )\n\n def validate_on_request_received(self, account: str) -> Dict[str, RatelimitResponse]:\n \"\"\"Pre-tokenization TPM precheck at cost 0.\n\n Returns the per-metric ``RatelimitResponse`` decisions. Fail-open metrics are\n omitted from the map (and treated as admitted). Recording these into\n ``metrics.ratelimit_responses`` for observability is the caller's responsibility.\n \"\"\"\n unkey_check_start = time.monotonic()\n\n metric_check_start = time.monotonic()\n unkey_prompt_response = self.check_prompt_ratelimit(account)\n _log_unkey_ratelimit_response(\n account,\n METRIC_TOKENS_PROMPT,\n unkey_prompt_response,\n (time.monotonic() - metric_check_start) * 1_000_000,\n )\n\n metric_check_start = time.monotonic()\n unkey_gen_response = self.check_gen_ratelimit(account)\n _log_unkey_ratelimit_response(\n account,\n METRIC_TOKENS_GENERATED,\n unkey_gen_response,\n (time.monotonic() - metric_check_start) * 1_000_000,\n )\n\n metric_check_start = time.monotonic()\n unkey_cache_adjusted_prompt_response = self.check_cache_adjusted_prompt_ratelimit(account)\n _log_unkey_ratelimit_response(\n account,\n METRIC_TOKENS_CACHE_ADJUSTED_PROMPT,\n unkey_cache_adjusted_prompt_response,\n (time.monotonic() - metric_check_start) * 1_000_000,\n )\n\n responses = {\n metric: response\n for metric, response in (\n (METRIC_TOKENS_PROMPT, unkey_prompt_response),\n (METRIC_TOKENS_CACHE_ADJUSTED_PROMPT, unkey_cache_adjusted_prompt_response),\n (METRIC_TOKENS_GENERATED, unkey_gen_response),\n )\n if response is not None\n }\n rejected = [metric for metric, response in responses.items() if not response.accepted]\n logger.debug(\n \"%s Unkey precheck account=%s unkey_accepted=%s rejected=%s check_elapsed_us=%.0f\",\n _LOG_PREFIX,\n account,\n not rejected,\n rejected,\n (time.monotonic() - unkey_check_start) * 1_000_000,\n )\n\n return responses\n\n def _check_usage_cached_metric(\n self,\n *,\n account: str,\n metric: str,\n no_usage_mode: str,\n ) -> Optional[RatelimitResponse]:\n \"\"\"Check a force-charged metric that is enforced from cached usage only.\"\"\"\n key = (account, self._router_name, metric)\n check_start = time.monotonic()\n\n capacity = self._cache.get_capacity_or_default(key)\n if capacity is None or not capacity.is_valid():\n logger.debug(\n \"%s Cached-usage fail-open: no valid capacity account=%s metric=%s\",\n _LOG_PREFIX,\n account,\n metric,\n )\n server_metrics.unkey_check_total.labels(\n **server_metrics.static_keys, metric=metric, mode=\"fail-open\", accepted=\"true\"\n ).inc()\n return None\n\n usage = self._cache.get_usage(key)\n if usage is None or not usage.is_valid():\n logger.debug(\n \"%s Cached-usage fail-open: no usage cache yet account=%s metric=%s\",\n _LOG_PREFIX,\n account,\n metric,\n )\n server_metrics.unkey_check_total.labels(\n **server_metrics.static_keys, metric=metric, mode=no_usage_mode, accepted=\"true\"\n ).inc()\n return None\n\n response, mode, cache_remaining = self._admit_by_usage(usage, capacity)\n remaining = response.limit - response.used\n\n check_elapsed_us = (time.monotonic() - check_start) * 1_000_000\n logger.debug(\n \"%s Cached-usage check [global] account=%s metric=%s accepted=%s \"\n \""} +{"text": "Left in the comments by one of my most favorite people of all time was a request for more snickerdoodle stuff. So since I do big puffy heart her I am going to oblige her. That and it’s not too hard to convince me to make something snickerdoodle flavored (twist my arm).\nIt’s funny that the vast majority of people who I adore and have been positive influences in my life (with the exception of my hockey peeps…MDP included) have all come as a result of this blog. If nothing else ever comes from me having this blog, the friendships that I have made from it have made any amount of time spent keeping this blog a float all worthwhile. It’s even is worth all the caramel burns.\nThey (whoever THEY are) say that the Internet often isolates and keeps people from having real life relationships. I can see that in some ways. I think what is nice about the Internet is the fact that it allows me to search out and find people who I have things in common with or are just good peeps that I could throwback some beers with instead of having to pick from what is just around me (no offense to my local friends ). Some of those are people who are merely acquaintances that I would meet up with for dinner if they were in town and some are people I would give money to and go at someone with a hockey stick if they asked. And they have done the same for me (well not the hockey stick…but it could happen).\nOne of the blessings (friend) that came into my life from my blog said to me when I commented about all of my good friends have either come from hockey or this blog was “passions bring good things to people”. I liked that. I have two passions in my life: hockey and food…so really that makes total sense. It also helps that hockey peeps and food lovers are for the most part pretty awesome human beings. Or sure there is always a rotten apple now and then…but that’s okay because then I can write about them on this blog and exploit them for ad revenue. Suck that mean people.\nThese truffles are a take on the chocolate chip cookie dough truffle that was made for the ever hip expanding Chocolate Chip Cookie Dough Cheesecake which is excellent for all your post break up needs. :)But I prefer sugar cookies and snickerdoodles to chocolate chip cookies (I know shoot me). Plus I like any excuse to throw nutmeg into something. Which brings us to today’s giveaway the ever handy Microplane 40020 Classic Zester/Grater . You probably own one. I do. But really you need two, just in case the one is in the dishwasher. That’s why I own two…well three now thanks to AllRecipes.com who gave it in their goodie bag. No I am not re-gifting…you get your very own. Not that I am against re-gifting…I just really like it…it’s yellow.\nSo just leave a comment and tell me if you think you can form real relationships just from the Internet. You have to comment by Tuesday June 19th 2012. You have to be living in the USA. And you need to name your first born after me…oh wait. I will let people know on Wednesday June 20th 2012 if you won anything.\nSnickerdoodle Cookie Dough Truffles\n½ cup unsalted butter, at room temperature\n¾ cup packed brown sugar\n1 tsp. vanilla extract\n½ tsp. salt\n2 cups all-purpose flour\n14 ounces sweetened condensed milk\n½ tsp. freshly ground nutmeg\n½ tsp. cinnamon\n1 tsp. cream of tartar\nCinnamon sugar for rolling truffles in\nIn a medium size bowl add the flour, spices, salt, and cream of tartar. Set aside.\nUsing a stand mixer (or a bowl and beaters), cream together the butter and sugar until light and fluffy, about 3 minutes.\nBeat in vanilla.\nWith speed on low, slowly add flour mixture, alternating with condensed milk, beat well after each addition.\nShape balls into 1-inch balls and place into an air tight container. Roll them into the cinnamon sugar just like you would a snickerdoodle cookie. Store in freezer for at least 3 hours.\nHow many you get really depends on what you think a 1 inch ball looks like. I will be using these in the next several recipes so be on the lookout."} +{"text": "How search can help you understand your audience - part 1\nHow search can help you understand your audience\nSubsequently I have been giving a series of presentations on how we can use this information within the BBC to feed into our design processes, our content creation, and our understanding of our audience. I believe that these are principles that can be well applied to any UK based non-commercial website.\nIt seems to me that many of the metrics with which we measure user interaction with the web are deeply flawed, and provide ample evidence that the internet was invented by physicists and technologists, not marketing and advertising executives. Page impression figures do not convey any information about whether the page view was satisfying or frustrating. Not all users accept cookies, and not all cookies can be associated with a single user when they are issued to computers across corporate networks or public internet access points. Tracking individual session data still doesn't tell us whether the user went to make a cup of tea or answer the door whilst they spent the measured 3 minutes on the page. Beyond that, the effect of caching by ISPs can lead to users not even seeing the latest version of a page, let alone the problem it creates for capturing behavioural data.\nHowever, the action of typing a word or phrase into a search box is a very direct interaction between the user and the site. We can safely assume that when the user typed in that word or phrase they expected \"something\" back from the site. Few people except the very bored, Google-whackers, or those with a professional interest in search mechanisms enter search strings looking for a null result.\nUsing search to learn the user's vocabulary\nOne thing that becomes abundantly clear from even a cursory examination of the search logs at BBCi is that the BBC has an extremely diverse audience, who may be looking for the same information, and for information that we have, in a myriad of different phrases, dialects, and even languages. Without realising it we set up barriers in our site to users finding the information they require, merely by the language we use. This is something that any medium to large scale website will suffer from, for the following reasons.\nA well written website will have some sort of style-guide, whether it is standards compliance (w3c), plain use of language (Plain English Campaign), brand consciousness (easyJet), to the downright pedantic (currybetdotnet didn't use to use upper-case on the homepage at all as a design 'quirk').\nHowever users don't come with a built in version of the style-guide. A decision taken in a committee room about whether a site offers 'ecards', 'e-cards' or 'e cards', can have a profound influence on the user's search experience if they are looking for one of the variant spellings.\nAt the BBC the website can variously adopt phrases like 'Feedback', 'Contact Us' and 'Email the Show' to allow the audience to interact with it. However we know from search logs that the BBC's audience often asks natural language questions like \"how do i write to BBC3\", and can be viewing a page with a link to 'Feedback' on it and then type 'email address' into the search box.\nCorrectness vs Common Usage\nOne area where there can be a particular disconnect with the audience is if you are obliged to use 'correct' terminology, when in the real world 'common usage' is much more prevalent. A classic example of this is with BBC News and the country 'The Netherlands'. A search for 'netherlands' on BBC News yields around 100 results at the time of writing.\nIn the UK, however, it is much more common to call the country 'Holland'. A search for 'holland' brings back fewer results, and in the first page of results produced by the search technology, the top story is about Jools Holland, and one of the stories is about Tony Holland. Using 'Best Links' we are at least able to insert links to The Netherlands country profile, and the top headlines from europe.\nThis is where using synonyms and placing 'Best Bets' within search results can play a crucial role in bringing users to the content they are looking for. Where the style-guide allows, we also consider placing synonyms within our navigational structure to allow users to browse towards their goals, even where their vocabulary differs from ours.\nAn example of this is that the BBC offers a Films site at www.bbc.co.uk/films. If we stuck strictly to our branding and our style guide then we would only list it in the A-Z Index under 'F'. Using synonyms, and the information fed into the design process by search, our A-Z Index team list the BBCi Films site under 'C' for cinema, 'F' for films, and 'M' for movies, providing alternative navigational routes that suit our users needs rather than any internal branding priorities."} +{"text": "used=%.0f remaining=%.0f limit=%.0f check_us=%.0f\",\n _LOG_PREFIX,\n account,\n metric,\n response.accepted,\n response.used,\n remaining,\n response.limit,\n check_elapsed_us,\n )\n\n server_metrics.unkey_check_total.labels(\n **server_metrics.static_keys,\n metric=metric,\n mode=mode,\n accepted=str(response.accepted).lower(),\n ).inc()\n if cache_remaining is not None:\n server_metrics.unkey_cache_remaining.set(cache_remaining)\n\n return response\n\n def get_reservation_tpm(self, account: str) -> Optional[float]:\n key = (account, self._router_name, METRIC_TOKENS_PROMPT)\n capacity = self._cache.get_capacity_or_default(key)\n if capacity is None or not capacity.is_valid():\n return None\n return capacity.reservation_tpm\n\n def enqueue_force_charge(self, account: str, token_count: int) -> None:\n self._force_charge_queue.put_nowait(\n (account, self._router_name, METRIC_TOKENS_GENERATED, token_count, time.monotonic())\n )\n self._notify_sync_worker()\n\n def enqueue_cache_adjusted_prompt_charge(self, account: str, token_count: int) -> None:\n if token_count > 0:\n self._force_charge_queue.put_nowait(\n (account, self._router_name, METRIC_TOKENS_CACHE_ADJUSTED_PROMPT, token_count, time.monotonic())\n )\n self._notify_sync_worker()\n\n def enqueue_completed_request(self, account: str, final_tokens: int) -> None:\n if final_tokens > 0:\n self._force_charge_queue.put_nowait(\n (account, self._router_name, METRIC_TOKENS_GENERATED, final_tokens, time.monotonic())\n )\n self._notify_sync_worker()\n\n\nclass TcRatelimitVerifier:\n \"\"\"Text Completion Ratelimit Verifier (Redis-backed, write-through)\n\n Still tracks usage in Redis for backward compatibility and comparison,\n but per-metric enforcement decisions come from the Unkey verifier when\n available.\n \"\"\"\n\n DEFAULT_RATELIMITS = {\n \"requests\": 1,\n \"tokens_generated\": 200.0,\n \"tokens_prompt\": 1000.0,\n \"tokens_cache_adjusted_prompt\": 1000.0,\n }\n\n def __init__(self, config_handle: ConfigHandle):\n self._config_handle = config_handle\n self.ratelimit_verifier = None\n self.redis_host = os.environ.get(\"REDIS_HOST\")\n if self.redis_host is None:\n logging.info(\"RatelimitVerifier not created because REDIS_HOST is not set\")\n return\n self.redis_port = int(os.environ.get(\"REDIS_PORT\", \"6379\"))\n\n self.ratelimit_verifier = RatelimitVerifier(self.redis_host, self.redis_port, get_deployment_name())\n try:\n self.ratelimit_verifier.connect()\n except ConnectionError as e:\n logging.error(f\"TcRatelimitVerifier: {e}\")\n\n def get_config(self) -> ServerlessSettings:\n return self._config_handle.get_current()\n\n def is_enabled(self) -> bool:\n if self.get_config().is_ratelimit_verifier_disabled():\n return False\n\n if self.ratelimit_verifier is None or self.redis_host is None:\n return False\n\n connected = self.ratelimit_verifier.is_connected()\n if not connected:\n server_metrics.ratelimit_verifier_error_total.inc(1)\n\n return connected\n\n def get_default_ratelimits(self, account: str) -> Dict[str, float]:\n \"\"\"Get the default rate limits for an account, taking into account any hard limits.\"\"\"\n config = self.get_config()\n default_ratelimits = self.DEFAULT_RATELIMITS.copy()\n\n for metric, default_limit in default_ratelimits.items():\n hard_limit = config.get_hard_limit_per_second(account, metric)\n if hard_limit is not None:\n default_ratelimits[metric] = min(default_limit, hard_limit)\n\n return default_ratelimits\n\n def _validate_hard_limit(\n self, account: str, ratelimit_responses: Dict[str, RatelimitResponse]\n ) -> Optional[tuple[str, str]]:\n config = self.get_config()\n for metric, response in ratelimit_responses.items():\n if response.accepted:\n continue\n if response.is_hard_limit:\n return metric, f\"hard limit metric={metric}, used={response.used}, limit={response.limit}\"\n\n hard_limit_per_second = config.get_hard_limit_per_second(account, metric)\n if hard_limit_per_second is None:\n continue\n eps = 0.1\n if response.used >= hard_limit_per_second * 60 - eps:\n return (\n metric,\n f\"hard limit metric={metric}, used={response.used}, limit={hard_limit_per_second * 60}\",\n )\n return None\n\n async def update_on_tokenization(\n self, metrics: RequestMetrics, tokens_prompt: int, n: int"} +{"text": "Archives for: August 2012, 04\nYesterday I visited the hospital where I had undergone my ordeal last winter. The following is the text of an email I just sent someone who'd flown 3000 miles to my bedside, telling him about my reunion with the angels who rescued me.\n- - - - - - - - - - - - - - -\nDon't know if this would interest you at all, but:\nYesterday, I was at [name of hospital]. And I decided to do something while there that I'd thought many times of doing: I went back to all the wards/units where I had been a patient last winter, to see them from the eyes of health, the rooms I'd lain in, and to perhaps thank some of the really outstanding people who had taken care of me. I had the distinct sense that they very, very rarely see the positive results of their dedication - their former patients IRL, walking around in street clothes, with wind in their sails.\nFirst stop: The ICU. I thought of you as I entered its door, imagined you coming in and passing these places, as I had never seen the door myself; I had never seen that front desk. And there was my little alcove/room, just to the left. The whole ICU looked much, much smaller and more crowded than it had felt/appeared to me from my horizontal position on that bed. I instantly remembered nurses I saw there yesterday ---- remembered their names, which blew their minds. There were even hugs and tears - they couldn't believe I looked so good, and they were genuinely grateful I'd come back: It did a LOT for their morale. I specifically asked for Katy, who had been in touch with you by phone. I wanted to thank her for her hand-holding care of me when I was first admitted there, put on the oscillating ventilation. (I don't think you saw that set-up; for hours I was strapped into a jerking/bouncing/vibrating chest-wrapped thing to jostle my ribcage while the oxygen was blasting in through the mask - Katy explained it was to loosen the \"cement\"-like \"fluid\" that had filled my lungs.) It was really hellish, but Katy sat there with me, while I begged her to stop it, and she'd say, \"Okay, fine. You want us to intubate you? Because if I turn this off, we have no choice.\"\nYou know what came back to me?\nAnd this is really why I'm writing this to you.\nShe was the one who came in and said, \"______ is coming from New York. I've spoken to him. His plane arrives at 2 in the afternoon.\"\nSo help me, I looked at that clock every several minutes and calculated where in the American skies you were. It was critical to me, somehow, to hang on to that while the waves of wind smacked me in the throat and the vest jostled me hard. I remembered that yesterday. I remembered a lot of things, and, you know? It was psychologically a very healthy thing to have gone back there. I had read on the Internet that that's the case for many, many who spend extended time in Intensive Care through an Emergency admission.\nAnyway, I left a note for Katy yesterday (because she's a Night Nurse and wasn't there), on a special \"Recognition\" card, which they post in their little staff rest area, and everybody looks. Apparently this is a Major Highlight of their work. These ICU angels of mercy are in the business of saving lives, and while they get monetary rewards, their souls really do crave just this sort of recognition. Many of their patients don't recover. The few who come back and show their/our faces, healthy, REALLY encourage them.\nAfter I left there, I did the same at the TICU and the regular ward. I was remembered, and I remembered the names, too! I recognized-in-writing two more absent nurses in the TICU, and followed up with a couple of nurses on the regular ward. One was a male French nurse with whom I had communicated in French when I was first admitted to the regular Medical ward for observation. \"You were just coughing and coughing and coughing,\" he said yesterday. He didn't know - so I told him - that I later went Critical and was transferred to the ICU and was in the hospital another 12 days after he last saw me.\nIt was a very rich experience for me and gave me a certain amount of closure. I have very, very warm feelings for those people and was told that the nurses I recognized in writing would be thereby recognized by their departments and supervisors. The least I could do.\nAnd, of course, I have warm feelings and deep gratitude for you. You really gave me something priceless by flying out here when you did. The plane was cramped, the ICU was cramped, it wasn't fun, and you must have been scared until I stabilized.\nWhat more can I say?\nLove and hugs."} +{"text": "Johnson County voters headed to new vote centers for the first time in a general election Tuesday and often faced long lines.\nVote centers allow voters to cast ballots at any of 22 sites across the county, instead of going to the same polling place near their home every year. Johnson County Clerk Sue Anne “Susie” Misiniec said the vote centers mostly worked smoothly Tuesday but had a few minor glitches, such as frozen machines or lost internet connections.\nResidents, however, often waited for half an hour and sometimes stood in line for an hour or more at the vote centers. The voting sites in the northern part of the county had to stay open for at least an extra hour after the polls were supposed to close at 6 p.m. because of the people waiting in line, deputy clerk Reagan Higdon said.\nVoters expect lines during presidential elections, and the waits in Johnson County were nothing out of the ordinary, Misiniec said.\n“You’re going to have a huge turnout in a presidential election,” she said.\nBut the clerk’s office will try to cut down on the waiting time in future elections by continuing to encourage residents to vote before Election Day, potentially opening more sites for early voting and introducing new technology that would allow poll workers to instantly identify voters by swiping the bar code on the back of their driver’s licenses, Misiniec said.\nThe clerk’s office also will do more training with poll workers so they move voters through the lines more quickly, Misiniec said. Poll workers were used to the lower primary turnout and in some cases got flustered when much longer lines formed Tuesday, she said.\nVoting machines were often empty while the poll workers checked voters in, Misiniec said. The machines often looked as though they were out of commission, but the lines were just bottlenecked at the check-in point, she said.\n“It can be overwhelming when you’ve got a crowd of people to work through,” she said. “You’d naturally rush and panic, but the clerks will have to speed that up a little. We’re going to address that with additional training.”\nThe clerk’s office also will review whether more poll workers or electronic poll books would be needed at any of the vote centers, but Misiniec said she didn’t know if that would make a difference in wait times.\nHundreds of voters lined up in many popular vote centers such as at Jonathan Byrd’s Cafeteria, the Greenwood Community Center and Mount Pleasant Christian Church. The lines were an issue for people who were trying to get to work and for elderly or disabled residents who can’t stand in line for long periods of time.\nVoters had the opportunity to vote early or by mail, Misiniec said. The clerk’s office will try to cut down on Election Day lines by encouraging more people to vote early, such as by opening a vote center in eastern Greenwood on Saturdays before Election Day, so everyone from the northern part of the county isn’t crowding the vote center at Mount Pleasant Christian Church.\n“We’re sorry for any waits, but people have the opportunity to avoid the lines by voting early anytime between 10 a.m. and 7 p.m.,” she said. “The more who vote early, the shorter the lines on Election Day.”\nThe clerk’s office also will investigate whether to open vote centers during early voting at retirement communities where a lot of residents vote. For instance, opening a vote center for two days at the Indiana Masonic Home in Franklin could shift more of the turnout away from Election Day.\nJohnson County first used the vote centers in May for the primary and got complaints about long lines. Some residents had to wait more than an hour before voting at the White River Township library, and some voters left before casting their ballot.\nThe clerk’s office added three more vote centers in anticipation of greater turnout and longer lines this fall. They added more poll workers and machines, with the busiest vote centers getting 25 machines.\nMisiniec said the vote centers were a success during early voting, and she hopes that more people will vote early as they get more used to vote centers. She said growing acceptance of the switch to vote centers helped increase turnout during the period of early voting, and a record-setting 21,000 Johnson County residents cast ballots before Election Day.\nResidents could vote early at the courthouse and seven additional sites, and vote centers in Trafalgar and the Center Grove area also were open for the two Saturday before Election Day."} +{"text": ", *, allow_redis_ratelimiting: bool = True\n ) -> bool:\n \"\"\"Write-through: track usage in Redis and return accept/reject (for logging only).\"\"\"\n start_time = time.time()\n\n ratelimit_responses = await self.ratelimit_verifier.check_and_update_multiple(\n metrics.user_account,\n {\n \"requests\": n,\n \"tokens_prompt\": tokens_prompt,\n \"tokens_generated\": 0,\n \"tokens_cache_adjusted_prompt\": 0,\n },\n self.get_default_ratelimits(metrics.user_account),\n )\n\n total_duration = (time.time() - start_time) * 1000\n\n if any(v is None for v in ratelimit_responses.values()):\n server_metrics.ratelimit_verifier_error_total.inc(1)\n ratelimit_responses = {k: v for k, v in ratelimit_responses.items() if v is not None}\n\n log_ratelimit_responses = \" \".join(f\"{k}={v}\" for k, v in ratelimit_responses.items())\n logging.info(\n f\"[Redis] RatelimitVerifier rate check completed: \"\n f\"account={metrics.user_account} \" + log_ratelimit_responses + f\" elapsed={total_duration:.2f}ms\"\n )\n\n if allow_redis_ratelimiting:\n metrics.ratelimit_responses = ratelimit_responses\n\n hard_limit_result = self._validate_hard_limit(metrics.user_account, ratelimit_responses)\n if hard_limit_result is not None:\n hard_limit_metric, hard_limit_error = hard_limit_result\n metrics.rejection_reason = hard_limit_metric\n logger.info(\n \"%s Redis hard limit triggered account=%s error=%s\",\n _LOG_PREFIX,\n metrics.user_account,\n hard_limit_error,\n )\n raise OverloadedError(is_rate_limit=True, internal_message=hard_limit_error)\n\n if \"tokens_generated\" in ratelimit_responses:\n generation_overloaded_limit = (\n self.get_config().generation_overloaded_factor * ratelimit_responses[\"tokens_generated\"].limit\n )\n if ratelimit_responses[\"tokens_generated\"].used > generation_overloaded_limit:\n metrics.rejection_reason = METRIC_TOKENS_GENERATED\n internal_message = f\"generation overloaded used={ratelimit_responses['tokens_generated'].used}, limit={generation_overloaded_limit}\"\n raise OverloadedError(is_rate_limit=True, internal_message=internal_message)\n\n rate_limit_accepted = all(r.accepted for r in ratelimit_responses.values())\n\n return rate_limit_accepted\n\n async def update_tokens_generated_progress(self, metrics: RequestMetrics, token_count: int):\n \"\"\"Update tokens generated counts while generation is ongoing.\"\"\"\n ratelimit_response = await self.ratelimit_verifier.check_and_update(\n metrics.user_account,\n \"tokens_generated\",\n token_count,\n default_limit=self.get_default_ratelimits(metrics.user_account)[\"tokens_generated\"],\n force_charge=True,\n )\n\n if ratelimit_response is None:\n server_metrics.ratelimit_verifier_error_total.inc(1)\n\n async def update_cache_adjusted_prompt_progress(self, metrics: RequestMetrics, token_count: int) -> None:\n \"\"\"Charge cache-adjusted prompt tokens after prefill reveals the authoritative cached prefix.\"\"\"\n ratelimit_response = await self.ratelimit_verifier.check_and_update(\n metrics.user_account,\n \"tokens_cache_adjusted_prompt\",\n token_count,\n default_limit=self.get_default_ratelimits(metrics.user_account)[\"tokens_cache_adjusted_prompt\"],\n force_charge=True,\n )\n\n if ratelimit_response is None:\n server_metrics.ratelimit_verifier_error_total.inc(1)\n\n async def update_completed_request(self, metrics: RequestMetrics):\n \"\"\"Update rate limits after request completion.\"\"\"\n default_ratelimits = self.get_default_ratelimits(metrics.user_account)\n final_chunk = metrics.num_generated_tokens - metrics.num_generated_tokens_tracked\n\n for sequence in metrics.sequences:\n sequence.num_generated_tokens_tracked = sequence.num_generated_tokens\n\n ratelimit_response = await self.ratelimit_verifier.check_and_update(\n metrics.user_account,\n \"tokens_generated\",\n final_chunk,\n default_limit=default_ratelimits[\"tokens_generated\"],\n force_charge=True,\n )\n\n if ratelimit_response is not None:\n logging.info(\n f\"RatelimitVerifier rate check completed: \"\n f\"account={metrics.user_account} \"\n f\"metric=tokens_generated \"\n f\"total={metrics.num_generated_tokens} \"\n f\"num_tokens_in_final_chunk={final_chunk} \"\n f\"{str(ratelimit_response)}\"\n )\n else:"} +{"text": "Love cheat MPs on 'suicide watch' as expense claims threaten to expose affairs\nJacqui Smith's expenses claims have already caused controversy and Labour whips are braced for more lurid revelations\nThree Labour MPs are said to be terrified that the release of their expenses claims will expose them as adulterers and financial cheats.\nFour ministers are also understood to have warned party whips they might have to resign for abusing the system, when MPs' receipts are published before the summer recess in July.\nThe three unnamed backbenchers are said to have been placed on 'suicide watch' by Labour whips, who fear they might break down when the details of their excesses come out.\nTwo are understood to have had extra-marital affairs with other members of Parliament.\nNot only are they believed to have shared hotel rooms during annual conference get-togethers and party away days but also to have double-claimed for the rooms on their expenses.\nIf both MPs have claimed for the bill they will be branded frauds as well as love cheats when journalists and freedom of information campaigners sift through their receipts.\nThe third backbencher is said to have made 'grotesque' financial claims.\nA Commons source told the Mail: 'The whips have three Labour MPs on suicide watch. That's how serious this scandal is. The whips believe they might kill themselves.'\nIn a reference to Home Secretary Jacqui Smith, who tried to claim everything from minor household items and the kitchen sink to her husband's pornography on expenses, the source said: 'If claiming for bath plugs and patio heaters and porn is not a resigning matter, you know that it's something grotesquely awful to consider killing themselves.\n'The mind boggles.'\nThe Mail understands that Labour whips are prepared to step in to arrange secret counselling for the MPs.\nOther Labour MPs who are believed to be fearful of exposure include the member who got taxpayers to pay for four plasma screen televisions in as many years and several members who have charged expensive helicopter rides to the public purse.\nThe revelations came as Gordon Brown tried to salvage his planned overhaul of the expenses system.\nMPs will vote today on measures to prevent ministers with grace and favour properties from claiming for their second homes and to force MPs to submit receipts and make a full disclosure of their outside incomes.\nOther measures include moves to ensure Parliamentary staff are employed by Commons authorities, not MPs themselves.\nMr Brown has already dropped plans to pay MPs a daily allowance merely for turning up to work.\nNow, with his authority dwindling, the Prime Minister is facing the prospect of needing Tory support to push through his measures.\nHe has been warned by his chief whip Nick Brown that he is struggling to get the support of many Labour backbenchers, who want no change to the gravy train expenses system.\nThe Prime Minister used Question Time in the Commons to appeal for support.\n'In the last week we have made more progress than we have made for many years,' he claimed before demanding that greedy MPs 'show some humility'.\nHe added: 'I think the whole country wants us to take action that is necessary to clean up any problems and any abuses that exist in our system.'\nA senior Downing Street source said: 'There are basically two camps - those who want reform now and those that don't.\n'MPs have to understand that there is great public anger out there and we need to act now.'\nBut dozens of Labour MPs are opposed to the measures to move staff on to new contracts and many want all reforms delayed until the Committee on Standards in Public Life, chaired by Sir Christopher Kelly, has drawn up a comprehensive plan for new allowances later in the year.\nThose who want no change now have been given a shroud of legitimacy by the decision of the cross party Standards and Privileges Committee to call for delay.\nLabour committee member Kevin Barron said: 'While there is some merit in what the Government is saying, there is no consensus on it at all.\n'If we can't get consensus on it we are not going to look very good.'\nThe Tory front bench is prepared to support the measures if they explicitly rule out a revival of the per diem allowance idea.\nBut with factions of MPs manoeuvring for concessions, the situation was described as a 'dog's breakfast' by one party tactician.\nAsked how the vote would turn out, the Prime Minister's official spokesman said: 'Your guess is as good as mine.'"} +{"text": "'You're going to HATE the way you look. I guarantee it!' Heavy metal rocker's rant about Men's Wearhouse hits chord with Facebook fans\n- Megadeth's Dave Mustaine blitzes discount clothing chain with unlikely Internet post\n- Tells fans, 'I wouldn't step foot in one even for shelter from a blizzard.'\n- Shopped in Salt Lake City, Utah M.W., claims purchases were never delivered\n- Implores fans to, 'Go to JoS A. Bank, instead'\n- Ironically invokes chain's slogan, 'I guarantee it,' in post\n- Facebook message liked 8,900 times and shared 600 times\n- Store rep apologizes to rock star, promises delivery\nThey are renown for their doom-laden lyrics about Satan and slaughter.\nNow the rock band Megadeth's front man is speaking out about something else close to his heart - the delivery policy at Men’s Wearhouse.\nAngry (Front)man: Megadeth singer Dave Mustaine (pictured) penned a Facebook-borne tirade that is making the rounds on the Internet\nMustaine's rant concerns Men's Wearhouse's failure make good on its advertised two-day delivery policy\nTardy X-Mas Gift: M.W. apparently was still yet to deliver a gift card Mustaine bought at a Salt Lake City, Utah shop nine days after he purchased it\nI Guarantee It: Mustaine ironically quotes Men's Warehouse's slogan in his Internet diatribe concerning the chain's failure to live up to a two-day delivery policy\nSinger Dave Mustaine took to Facebook to lambast the suit chain for failing to make good on its promise of a two-day delivery.\nHe ordered a gift card for his tour manager, but when it failed to arrive he went online to rant.\nMustaine wrote: ‘I really think that it sucks when people make false claims, that they don't care to make good on a problem that is clearly their fault, and with all of the 'ABSOLUTELY GUARANTEE IT' crap I just had to say something.'\nMustaine bought the gift card at a Men’s Wearhouse in Salt Lake City, Utah, before Christmas as a gift for his tour manager Jim Carroccio, but nine days later it still had not turned up in the post.\nMustaine wrote: ‘I know that not all of you have the kind of job that requires a suit, or wear a suit when you (if you) go to any kind of faith-based service, court date, wedding or funeral, but if you do…you are going to want to read this.\n‘You know me, I don’t complain much in writing, but I gotta get this off my chest.’\nIn the Facebook post Mustaine added that when he called up Men’s Wearhouse they made no effort whatsoever for this mix-up’.\nHe wrote: ‘We are all living in very tight financial times right now, and like I said, you may not wear a suit for your job or for an event or occasion, but if you do, I would strongly recommend you wear someone else’s suits.\n‘Go to Jos. A Bank instead. I for one, will never set foot in a Men’s Wearhouse, even for shelter from a blizzard.’\nIn a sign that thrash metal fans clearly value their customer service, Mustaine’s post was liked 8,900 times and shared 600 times.\nMost fans were behind Mustaine but some thought that his interest in suits was somewhat at odds with his public image.\nWhere's My Gift?: Mustaine purchased the gift card from Men's Wearhouse as a Christmas gift for his tour manager, JimCarroccio (pictured)\nA Suggested Alternative: Mustaine told his legions of fans to not only eschew Men's Wearhouse, but shop instead at its competitor, JoS. A. Bank\nFan Ralph Hannaberry wrote: ‘I think Dave should do a nationwide tour and play in front of every Mens Warehouse outlet in America complete with headbanging groupies and Justin Bieber as an opening act just to annoy the crap out of the establishment!’\nRocker Adam Cirucci wrote: ‘Dude, i have to say you are 100 percent RIGHT ON....MENS WEARHOUSE sucks terribly.\n‘Got my tuxes for my wedding there. They never cleaned mine and I ended up smelling like p*** on my wedding day’\nMegdeth's Mustaine was once a member of Metallica, but was ejected from the popular band because he threw a punch at its front man, James Hattfield\nMegadeth fan Aprillynn Danzig Devila added: ‘HAPPY 2013 YEAR TO YOU DAVE!!!! LOL F*** THE SUITS JUST BROOM STICKS AND WITCHES BREW!!’\nMustaine is known for his strong views and was kicked out of Metallica in 1983 for punching bandmate James Hetfield.\nA Men’s Wearhouse staff member eventually wrote to him on Facebook and promised to make amends.\nThe staff member, called Joe wrote: ‘Dave, thanks for reaching reaching out to us on Facebook.\n‘We apologize for the delay in receiving your gift card and agree that the delay is unacceptable.’"} +{"text": "\n server_metrics.ratelimit_verifier_error_total.inc(1)\n\n\ndef _log_unkey_ratelimit_response(\n account: str, metric: str, response: Optional[RatelimitResponse], check_elapsed_us: float\n) -> None:\n if response is None:\n logger.info(\n \"%s Unkey enforcement metric check account=%s metric=%s response=None check_us=%.0f\",\n _LOG_PREFIX,\n account,\n metric,\n check_elapsed_us,\n )\n return\n\n logger.info(\n \"%s Unkey enforcement metric check account=%s metric=%s accepted=%s used=%d limit=%d check_us=%.0f\",\n _LOG_PREFIX,\n account,\n metric,\n response.accepted,\n response.used,\n response.limit,\n check_elapsed_us,\n )\n\n\ndef _set_unkey_ratelimit_response(metrics: RequestMetrics, metric: str, response: Optional[RatelimitResponse]) -> None:\n if response is not None:\n metrics.ratelimit_responses[metric] = response\n\n\nclass ServerlessRequestLifetimeTracker(RequestLifetimeTracker):\n def __init__(\n self,\n metrics: RequestMetrics,\n add_disconnect_hook: Callable[[Callable[[], Awaitable[None]]], None] | None,\n ratelimit_verifier: TcRatelimitVerifier,\n unkey_verifier: Optional[TcUnkeyRatelimitVerifier],\n concurrency_limiter: ConcurrencyLimiter,\n enable_service_tier: bool,\n loadshed_tracker: Optional[LoadShedTracker] = None,\n ):\n super().__init__(\n firetext.SchedulingParams(priority=1, prefill_expiration_timestamp=None),\n add_disconnect_hook,\n )\n self._metrics = metrics\n self._metrics.scheduling_params = self._scheduling_params\n self._concurrency_limiter = concurrency_limiter\n self._loadshed_tracker = loadshed_tracker\n self._config = concurrency_limiter.get_config()\n\n # Redis verifier (write-through: tracks usage but does NOT enforce\n # when Unkey is available)\n if ratelimit_verifier.is_enabled():\n self._ratelimit_verifier = ratelimit_verifier\n server_metrics.ratelimit_verifier_status.set(1)\n else:\n self._ratelimit_verifier = None\n server_metrics.ratelimit_verifier_status.set(0)\n\n # Unkey verifier (primary enforcement when configured)\n self._unkey_verifier = unkey_verifier\n\n self._enable_service_tier = enable_service_tier\n\n def update_on_options(self, n: int, service_tier: str = \"default\"):\n if not self._enable_service_tier:\n service_tier = \"default\"\n super().update_on_options(n, service_tier)\n\n unified_priority_level = self._get_unified_priority_level(\n self._config.get_account_priority(self._metrics.user_account), service_tier\n )\n self._metrics.unified_priority_level = unified_priority_level\n if unified_priority_level == 2:\n self._scheduling_params.priority = 2\n\n untrack_handle = self._concurrency_limiter.track_request(self._metrics.user_account, n)\n self.add_disconnect_hook(untrack_handle)\n\n async def update_on_request_received(\n self, num_queued_and_active: int, queue_sizes: Optional[Dict[str, int]] = None\n ) -> None:\n \"\"\"\n Called when a request is first received, before tokenization.\n Checks if the server is overloaded and raises OverloadedError if so.\n \"\"\"\n unified_priority_level = self._get_unified_priority_level(\n self._config.get_account_priority(self._metrics.user_account), self._service_tier\n )\n error_message = self._concurrency_limiter.validate_on_request_received(\n num_queued_and_active, unified_priority_level\n )\n if error_message:\n if queue_sizes:\n logging.info(\n \"Overloaded! Coordinator queue state: \" + \" \".join(f\"{k}={v}\" for k, v in queue_sizes.items())\n )\n self._metrics.rejection_reason = \"concurrency_queue\"\n raise OverloadedError(internal_message=error_message)\n\n # Latency-based load shedding check\n if self._loadshed_tracker is not None:\n shed_reason = self._loadshed_tracker.get_shedding_decision(unified_priority_level)\n if shed_reason is not None:\n self._loadshed_tracker.record_request_shed(\n reason=shed_reason,\n service_tier=self._service_tier,\n unified_priority_level=unified_priority_level,\n )\n # TODO(nelson): Include the dominant load-shed signal (for example TTFT p95)\n # in this reason in a follow-up observability PR.\n self._metrics.rejection_reason = f\"pid_shed_{shed_reason}\"\n raise OverloadedError(\n internal_message=f\"load shed reason={shed_reason} service_tier={self._service_tier} account={self._metrics.user_account}\",\n )\n self._loadshed_tr"} +{"text": "Wigan 4 Newcastle 0: Martinez men show touch of Cruyff to crush Toon's orange army\nAs far as Wigan are concerned, the bigger they come, the harder they fall. Having seen off Manchester United, Arsenal and Liverpool as they fight off relegation, Roberto Martinez's battlers ripped apart in-form Newcastle.\nNewcastle, clad in orange, arrived having won six games on the trot to dream of the Champions League.\nSurvivors: Wigan celebrate Franco di Santo's goal\nWIGAN: Al Hansi, Alcaraz, Caldwell, Figueroa, Boyce, McArthur, McCarthy, Beausejour, Maloney, Di Sando (Sammon 68), Moses (Gomez 83). Unused subs: Pollitt, Crusat, Jones, Rodallega, Diame.\nGoals: Moses 13, 15, Maloney 36, Di Santo 45.\nBooked: Alcaraz, McCarthy\nNEWCASTLE: Krul, Simpson (Perch 81), Williamson, Coloccini, Santon, Cabaye (Fergison 83), Tiote, Guitierrez, Ben Arfa (Taylor 73), Cisse, Ba. Unused subs: Elliot, Gosling, Best, Ameobi.\nReferee: Mike Dean\nThey left with the same sinking feeling experienced by Sir Alex Ferguson and United after a shock 1-0 defeat at the DW Stadium this month. Wigan played their highflying visitors off the park.\nNewcastle's shirts looked like Holland but it was Wigan who played like the Dutch - a source of pride for Martinez, whose managerial hero is Johan Cruyff.\nIt is to Martinez's credit that he believes the group of players he has at Wigan can replicate the style of Cruyff's Barcelona, the team he most admired as a boy in Spain.\nTo do so in a relegation battle makes his achievement more remarkable. Wigan scored four times in the opening 45 minutes and Newcastle were unable to cope with their slick passing and wing-backs.\nNet profit: Newcastle's keeper Tim Krul looks on as Victor Moses's header sails past him\n'We didn't match their intensity. That's going to make you look bad in the Premier League,' said Newcastle boss Alan Pardew, who watched aghast as Victor Moses (two), Shaun Maloney and Franco di Santo scored.\n'We said in the dressing room we'd not be complacent but we got caught out. We failed as a team. Sometimes when you've won six on the trot you can come away from home and think \"We will win here today\". But this result will put a shock into the players.\nPromised land: Moses fires home his second\nMartinez's team, odds-on for relegation not so long ago, are three points clear of danger with games against struggling Blackburn and Wolves to come.\n'We showed a clinical touch in front of goal, which hasn't always been the case,' said their manager.\n'The movement off the ball was a joy to watch. Victor Moses was a joy to watch. He's the type of player you pay to watch. We lost eight games in a row this season. It would have finished a lot of teams off but this group didn't feel sorry for themselves. We've experience of relegation battles and that has helped.\n'Sometimes you have more time on the ball against top teams. We have shown we can be competitive against anyone.'\nWigan have been in the top flight since 2005 and will surely extend their stay now.\nIt's in our hands: Wigan keeper Ali Al Habsi knows the score\nFor Newcastle, it will be tough to qualify for the Champions League.\nThey will lose fourth spot if Spurs beat Blackburn today, and Chelsea and Manchester City are next up. But Pardew said: 'Champions League football isn't away from us by any stretch of the imagination.'\nPardew is a methodical thinker and tactically astute, but he failed to stop Wigan. Martinez played 3-5-2 and wing-backs Emerson Boyce and Joey Beausejour marauded down the flanks untroubled. It was no coincidence they set up the first two goals, both converted by Moses.\nShoot to thrill: Di Santo dances with delight after scoring for Wigan\nBy the time Pardew changed formation to match Wigan in midfield, the visitors were 2-0 down. Wigan duly added two more before the interval, at which stage Pardew reverted to Plan A.\nBut there was no chance of a comeback despite an improved second half which saw Papiss Cisse, who had scored in his previous six games, twice hit the woodwork.\nThat ruffled feeling: Newcastle United manager Alan Pardew given plenty to think about\nWith Blackburn boss Steve Kean looking on glumly, Wigan took the lead. Boyce crossed for Moses to head in despite conceding height to marker Mike Williamson.\nShortly after, Beausejour's cross was feebly cleared by Fabricio Coloccini to Moses, who steered the ball in.\nNewcastle shifted to three centrebacks but it made no difference. A first-time ball from Di Santo allowed Maloney to run inside Danny Simpson to make it 3-0.\nNobody closed Di Santo down on the stroke of half-time and the striker pinged a superb finish from 20 yards into the top corner for Wigan's fourth.\nKrul fooled: Conor Sammon fires past the Newcastle keeper"} +{"text": "Children returning to classes across Connecticut Monday will see uniformed police officers in and around their schools as officials grapple with how to handle concerned parents and anxious students following the massacre Friday at Sandy Hook Elementary School in Newtown.\nSchool administrators over the weekend posted on school district websites instructional videos and psychologists' tips on how to talk to their children about violence in anticipation of what's expected to be a tough day for many schools and their students.\nOfficials said they hope the increased police patrols and heightened safety awareness will not raise the anxiety of children already struggling with details they may know about the killings.\n\"I know Friday was one of the toughest for school superintendents, the worst nightmare any of us could fathom,\" Cheshire Schools Superintendent Greg J. Florio said Sunday. He said he expects Monday to be just as rough, similar to the day children first returned to school after the Sept. 11 terrorist attacks.\n\"It's kind of a fine balance we have to keep,\" Florio said. \"You know that people are aware of the situation but you want to have as much of a sense of normalcy as you can.\"\nBy the time the school bell rings Monday morning, some school staff members will already have met to discuss security and other issues related to Friday's shooting. Other meetings took place over the weekend and included input from parents and residents without students.\nStudents at several schools will see police officers during the morning drop-off and at other times during the school day.\n\"Police are a visible presence throughout the year but will be especially so next week,\" Canton Superintendent of Schools Kevin Case said Sunday. Patrol cars will be parked in front of the three school buildings and officers will be inside.\nFlorio said the police presence is for \"self-assurance\" for students who may be anxious about the safety of their school.\n\"We'll obviously be paying extra attention to security [this week], making sure everything is as safe as possible,\" said Tom Moore, West Hartford's assistant superintendent for administration.\nMoore said there will not be police officers in schools that don't normally have them, but \"people will probably notice extra patrols\" in school areas.\nGrief counselors are ready in most schools to talk with students who need to talk about the tragedy, administrators said.\n\"We think there are going to be a lot of people needing support,\" Windsor Superintendent of Schools Jeffrey Villar said Sunday. The district's crisis intervention team is ready, Villar said, to assist families and students as needed.\nFlorio said teachers are not going to try to explain what happened \"in any greater depth\" than what they have learned at home but will be ready to get students with concerns any help they may need. Florio said he has even instructed the district's school bus drivers \"not to say anything inappropriate\" related to the shooting.\nWallingford Superintendent Salvatore Menzo said schools are not planning to discuss the shooting in classes. However, he said, Wallingford teachers will be ready if the conversation comes up and will approach any discussion based on a student's developmental level.\nWhile there is not going to be an acknowledgment of the shooting for the district's younger students, Menzo said he does plan to memorialize the slain Newtown children with students in grades 6 through 12. On Monday, the older children will observe a moment of silence in their memory.\nIn the coming weeks, schools will be reviewing their safety policies as well as going over emergency drills.\nVillar said he was also planning to meet with police and building principals on Wednesday to review the district's crisis plan.\n\"It's a good plan but there's always something you can learn from these things,\" Villar said.\nNowhere will the attention to safety be greater than in Monroe. The town's Chalk Hill School will be used for Sandy Hook Elementary School students, Monroe Superintendent James Agostine said Sunday.\nAgostine said he is not sure when Sandy Hook students will arrive, but said his district is already getting the school ready for them.\n\"We are happy to assist in some way,\" Agostine said.\nMonroe school officials must reassure parents, staff and students that Monroe's schools are safe, he said. They must also prepare to reopen Chalk Hill School, a middle school that closed almost two years ago.\nWhen Monroe school officials learned Friday of the shooting in Newtown, the district followed lockdown procedures. Some elements of a lockdown will remain in place on Monday, Agostine said. There will be limited access to school buildings and a police officer will be stationed at every school, he said.\n\"We want to reassure staff and students that they are secure,\" Agostine said.\nAgostine added that counselors will be available for anyone who needs help. Building principals will meet with their staff members early Monday to talk about the shooting, and Agostine said classroom teachers know how to talk to their students about the situation.\nAgostine said letters about the shooting and the precautions the district is taking were sent to parents this past weekend."} +{"text": "acker.record_request_admitted(unified_priority_level)\n\n if self._unkey_verifier is not None:\n unkey_responses = self._unkey_verifier.validate_on_request_received(self._metrics.user_account)\n self._metrics.ratelimit_responses.update(unkey_responses)\n for metric in (METRIC_TOKENS_PROMPT, METRIC_TOKENS_CACHE_ADJUSTED_PROMPT, METRIC_TOKENS_GENERATED):\n response = unkey_responses.get(metric)\n if response is None or response.accepted:\n continue\n self._metrics.rejection_reason = metric\n rejected_metrics = f\"{metric}={response.used}/{response.limit}\"\n logger.info(\n \"%s Rejected at Unkey precheck account=%s rejected_metrics=%s\",\n _LOG_PREFIX,\n self._metrics.user_account,\n rejected_metrics,\n )\n raise OverloadedError(\n is_rate_limit=True,\n internal_message=(\n f\"rate_limit_accepted=False rejected_metrics={rejected_metrics} \"\n f\"account={self._metrics.user_account}\"\n ),\n )\n\n async def update_on_tokenization(self, tokens_prompt: int):\n has_any_verifier = self._ratelimit_verifier is not None or self._unkey_verifier is not None\n if not has_any_verifier:\n self.add_disconnect_hook(self._update_completed_request_loadshed_tracker)\n return\n\n unified_priority_level = self._get_unified_priority_level(\n self._config.get_account_priority(self._metrics.user_account), self._service_tier\n )\n if unified_priority_level == 2:\n self._scheduling_params.priority = 2\n\n concurrency_limit_accepted = self._concurrency_limiter.check_limit(self._metrics)\n if not concurrency_limit_accepted:\n # Reject before prompt-token write-through/admission so requests that\n # never reach prefill do not consume prompt TPM.\n concurrency_response = self._metrics.concurrency_response\n rejected_metrics = \"\"\n if concurrency_response is not None:\n rejected_metrics = f\"concurrency_limit={concurrency_response.used}/{concurrency_response.limit}\"\n self._metrics.rejection_reason = \"concurrency_limit\"\n internal_message = (\n f\"rate_limit_accepted=True \"\n f\"concurrency_limit_accepted={concurrency_limit_accepted} \"\n f\"rejected_metrics={rejected_metrics} \"\n f\"account={self._metrics.user_account}\"\n )\n logger.info(\n \"%s Load shedding account=%s source=concurrency rejected_metrics=%s \"\n \"rate_limit_accepted=%s concurrency_accepted=%s\",\n _LOG_PREFIX,\n self._metrics.user_account,\n rejected_metrics,\n True,\n concurrency_limit_accepted,\n )\n raise OverloadedError(internal_message=internal_message)\n\n allow_redis_ratelimiting = self._unkey_verifier is None\n\n # --- Redis write-through ---\n # Redis enforces only when Unkey is not active; otherwise it is purely\n # write-through so the two enforcement paths stay orthogonal.\n redis_accepted = True\n if self._ratelimit_verifier is not None:\n redis_accepted = await self._ratelimit_verifier.update_on_tokenization(\n self._metrics,\n tokens_prompt,\n self._n,\n allow_redis_ratelimiting=allow_redis_ratelimiting,\n )\n logger.debug(\n \"%s Redis write-through account=%s tokens=%d redis_accepted=%s\",\n _LOG_PREFIX,\n self._metrics.user_account,\n tokens_prompt,\n redis_accepted,\n )\n\n if allow_redis_ratelimiting and not redis_accepted:\n internal_message = (\n f\"rate_limit_accepted={redis_accepted} \"\n f\"concurrency_limit_accepted={concurrency_limit_accepted} \"\n f\"rejected_metrics= \"\n f\"account={self._metrics.user_account}\"\n )\n logger.info(\n \"%s Rejected account=%s source=redis rejected_metrics=%s \"\n \"rate_limit_accepted=%s concurrency_accepted=%s\",\n _LOG_PREFIX,\n self._metrics.user_account,\n \"\",\n redis_accepted,\n concurrency_limit_accepted,\n )\n raise OverloadedError(is_rate_limit=True, internal_message=internal_message)\n\n # --- Unkey enforcement (primary when configured) ---\n # This is intentionally the final admission step because accepted prompt\n # admission enqueues the prompt-token charge to Unkey.\n unkey_response = None\n if self._unkey_verifier i"} +{"text": "A former top official of the East Orange Water Commission has admitted to a variety of offenses related to manipulating water-supply tests and test results in 2011, including the flushing of a well containing a potentially carcinogenic industrial solvent into the Passaic River in Florham Park.\nAccording to a press release issued Friday by Acting Attorney General John J. Hoffman, William Mowell, 52, of Wyckoff, the former assistant executive director and engineer for the EOWC, pleaded guilty to a charge of second-degree conspiracy before Superior Court Judge Carolyn Wright in Essex County.\nMowell was indicted on Feb. 12 along with Harry L. Mansmann, the former executive director of the EOWC. Mansmann is now deceased.\nMowell pleaded guilty to a charge that he conspired to engage in a pattern of official misconduct, tamper with public records and violate both the New Jersey Safe Drinking Water Act and the New Jersey Water Pollution Control Act.\nUnder the plea agreement, the state will recommend that Mowell be sentenced to three years in state prison. Wright scheduled his sentencing for Nov. 7.\nIn pleading guilty, Howell admitted that he conspired with Mansmann to falsify mandatory testing of the EOWC's water supply to hide elevated levels of the contaminant tetrachloroethylene, also known as PERC, an industrial solvent used for dry cleaning and other purposes. PERC is classified as a probable carcinogen.\nThe EOWC supplies drinking water to East Orange and also has a contract to supply drinking water to South Orange. The water is pumped from well fields in eastern Morris and western Essex counties through a pumping station in Millburn to two reservoirs, from which water is distributed to customers. The utility blends water from its various wells at its treatment plant before water is distributed to customers.\nThe EOWC previously had encountered problems with elevated levels of PERC in several wells.\nMowell admitted that he took water samples for testing after the contaminated wells had been turned off for several days. He admitted that he knew that meant that the test results would not accurately reflect the water supply.\nThe state's investigation also revealed that the defendants, in an effort to flush out PERC, directed that the well with the most contamination — which had been found to have PERC levels as high as 25 times the permitted level under the New Jersey Safe Drinking Water Act, and nearly twice the level permitted for discharges in connection with remediation projects under the New Jersey Water Pollution Control Act — be pumped to a pipe that discharged directly onto the bank of the Passaic River in Florham Park from March 24 through April 20, 2011.\nMowell admitted that he and Mansmann had water from that well pumped to the bank of the river during that period.\nMowell further admitted that when the New Jersey Department of Environmental Protection required the EOWC to issue a public notice about non-compliant PERC levels in the system, he and Mansmann issued a notice in July 2011 falsely stating that the EOWC had reduced pumping from certain wells on an ongoing basis and, as a result, tests during the first half of 2011 revealed levels under the DEP limit.\nIn fact, they only reduced pumping from contaminated wells temporarily for sampling, and PERC levels had exceeded the limit, Hoffman said.\nBy making it appear that the water system was in compliance with regulations, Mowell and Mansmann sought to enable the EOWC to avoid the need to build an expensive \"air stripper\" water-purification plant to remove volatile organic compounds including PERC. The EOWC currently is proceeding with plans to build such a treatment plant, Hoffman stated.\nThe DEP has done independent testing of the East Orange water system, showing the water quality for residents of East Orange and South Orange to be safe.\n\"Mowell had a duty to ensure the quality and safety of the drinking water supplied to tens of thousands of residents, and instead he deliberately falsified test results to cover up elevated levels of a potential carcinogen,\" Hoffman said. \"He showed a complete disregard for the people he served and the harm that might have resulted from his conduct.\"\nThe charges stemmed from an investigation by the Division of Criminal Justice, which began with a referral from the State Department of Environmental Protection (DEP) Compliance & Enforcement Program. Deputy Attorney General Phillip Leahy prosecuted the case and took the guilty plea for the Environmental Crimes Unit of the Division of Criminal Justice Specialized Crimes Bureau.\nStaff Writer William Westhoven: 973-428-6627; email@example.com."} +{"text": "Sprint Unveils Pricey Pay-As-You-Go Plan\nJanuary 3, 2013 5:15 PM\ncomment(s) - last by\nPlan comes up short compared to Boost or Virgin\nIn a strange scenario, Sprint Nextel Corp. (\n) has decided to offer its own branded pay-as-you-go service. Takers on the new plan -- which kicks off Jan. 25 -- will have to pony up $250 USD for a Galaxy S (the \"Victory\" from Samsung Electronics Comp., Ltd. (\n)) or $150 USD for an entry level Android, LG Electronics, Inc.'s (\n) \"Elite\". None of the high-end contract handsets can be used with the new plan.\nIf the hardware/hardware pricing is a bit of a turn-off, the monthly fees won't make you much happier. It will cost $70 USD/month to get unlimited talk/text/web. Or if you want you can pay as little as $50 USD to get a feature phone, which comes with a $50 USD/month \"unlimited\" plan, with the built in limitation of having inherently limited internet capabilities.\nWorst of all, there's no mention of roaming on EVDO, so\nthat you may be hit with fees that eat up your account payments, when using the device in areas where the Sprint network is dead or weak.\nSprint's pricing on its self-branding PAYG plan isn't great. [Image Source: Android Police]\nThe truly curious part is that Sprint is offering up an inferior deal to ... itself.\nVirgin Mobile USA\noffers the same LG Elite handset for $80 and a $55 USD \"unlimited\" monthly fee. In other words, if you go with Sprint's branded service you will lose approximately $430 USD over a 2-year period. Virgin customers also get for a mere $150 USD, a far fancier EVO V 4G from HTC Corp. (\n), a modified variant of the EVO 3D.\nThere's concern the plan may not include 2G roaming. [Image Source: Android Police]\nthere's Boost Mobile\n, the other prepaid player -- also owned by Sprint. Boost offers the Samsung Galaxy Rush (another Galaxy S variant) for $149 USD ($100 USD less than Sprint), an LG Venice (aka Optimus L7) for $220 USD, or a Warp Sequent by ZTE Corp. (\n) for $200 USD. While throttled after 2.5 GB of data use, Boost also offers \"unlimited\" for $55 USD/month.\nAnd then there are upstart providers like Republic Wireless who offer even\nservices albeit with slower connection speeds. For example Republic sells the Motorola Mobility DEFY XT for $249 USD, but then only charges you $19 USD/month for \"unlimited\" access, thanks to a hybrid system using 3G roaming and Wi-Fi (when available).\nIn other words, Sprint's service appears to offer few (perhaps no data caps?) if any advantages at this point over its\nprepaid brands, let alone over rival offerings that adopt more unusual service models.\nThis article is over a month old, voting and posting comments is disabled\nIt may be a bit outlandish...\n1/4/2013 3:55:58 PM\n... but they are probably just testing the waters and getting this straightened out without risking the consumer base of Virgin Mobile.\nIt could be that they are deciding to do away with Virgin Mobile USA but not wanting to sacrifice the consumer base until they have the house built to put them.\n\"We don't know how to make a $500 computer that's not a piece of junk.\" -- Apple CEO Steve Jobs\nVirgin Mobile to Offer Prepaid iPhone Starting June 29\nJune 7, 2012, 9:50 AM\nBoost Mobile Introduces $50 Unlimited Voice, Data Plans\nJanuary 16, 2009, 7:46 AM\nRetiree Sues Apple For $7,500 for Wiping Honeymoon Photos From His iPhone\nNovember 30, 2015, 10:23 AM\niPhone 7 May Pack 3-4 GB Memory, More Storage; 4-Inch Comeback is Rumored\nNovember 20, 2015, 10:12 PM\nOnePlus One, OnePlus 2 Will Receive Android Marshmallow in Q1 2016\nNovember 16, 2015, 9:58 AM\nLenovo Whoa: Motorola Droid MAXX 2 and Turbo 2 Break Cover in Leaks\nOctober 26, 2015, 3:12 PM\nLeak: Apple Preps for First Real Android App Foray With New Apple Music App\nOctober 24, 2015, 1:59 PM\nPepsi Smartphone? Empty Calories Coming Soon to the Midrange\nOctober 12, 2015, 11:41 PM\nLatest Blog Posts\nSceptre Airs 27\", 120 Hz. 1080p Monitor/HDTV w/ 5 ms Response Time for $220\nDec 3, 2014, 10:32 PM\nCostco Gives Employees Thanksgiving Off; Wal-Mart Leads \"Black Thursday\" Charge\nOct 29, 2014, 9:57 PM\n\"Bear Selfies\" Fad Could Turn Deadly, Warn Nevada Wildlife Officials\nOct 28, 2014, 12:00 PM\nThe Surface Mini That Was Never Released Gets \"Hands On\" Treatment\nSep 26, 2014, 8:22 AM\nISIS Imposes Ban on Teaching Evolution in Iraq\nSep 17, 2014, 5:22 PM\nMore Blog Posts\nCopyright 2016 DailyTech LLC. -\nTerms, Conditions & Privacy Information"} +{"text": "s not None:\n metric_check_start = time.monotonic()\n unkey_response = self._unkey_verifier.admit_prompt_ratelimit(\n self._metrics.user_account, tokens_prompt=tokens_prompt\n )\n _log_unkey_ratelimit_response(\n self._metrics.user_account,\n METRIC_TOKENS_PROMPT,\n unkey_response,\n (time.monotonic() - metric_check_start) * 1_000_000,\n )\n _set_unkey_ratelimit_response(self._metrics, METRIC_TOKENS_PROMPT, unkey_response)\n prompt_accepted = unkey_response is None or unkey_response.accepted\n\n rejected_metrics = \"\"\n if unkey_response is not None and not unkey_response.accepted:\n self._metrics.rejection_reason = METRIC_TOKENS_PROMPT\n rejected_metrics = f\"{METRIC_TOKENS_PROMPT}={unkey_response.used}/{unkey_response.limit}\"\n logger.debug(\n \"%s Unkey prompt admission account=%s tokens=%d prompt_accepted=%s \" \"redis_accepted=%s\",\n _LOG_PREFIX,\n self._metrics.user_account,\n tokens_prompt,\n prompt_accepted,\n redis_accepted,\n )\n\n if not prompt_accepted:\n internal_message = (\n f\"rate_limit_accepted={prompt_accepted} \"\n f\"concurrency_limit_accepted={concurrency_limit_accepted} \"\n f\"rejected_metrics={rejected_metrics} \"\n f\"account={self._metrics.user_account}\"\n )\n logger.info(\n \"%s Rejected account=%s source=unkey rejected_metrics=%s \"\n \"rate_limit_accepted=%s concurrency_accepted=%s\",\n _LOG_PREFIX,\n self._metrics.user_account,\n rejected_metrics,\n prompt_accepted,\n concurrency_limit_accepted,\n )\n raise OverloadedError(is_rate_limit=True, internal_message=internal_message)\n\n if unkey_response is not None and unkey_response.accepted:\n reservation_tpm = self._unkey_verifier.get_reservation_tpm(self._metrics.user_account)\n # TODO(nelson): Move reservation L3 scheduling to update_on_request_received (pre-tokenization).\n # PID shedding runs before tokenization while the request is still at unified L1.\n # TODO(nelson): unkey_response.used includes locally pending deductions,\n # which inflates the value beyond what Unkey has globally confirmed.\n # For L3 reservation checks, compare against Unkey-confirmed usage\n # only (usage.limit - usage.remaining) to avoid false denials under\n # concurrent load. Not triggerable today (reservation_tpm=0 everywhere).\n if reservation_tpm is not None and reservation_tpm > 0 and unkey_response.used <= reservation_tpm:\n self._scheduling_params.priority = 3\n logger.info(\n \"%s Promoted to L3 account=%s used=%d reservation=%.0f\",\n _LOG_PREFIX,\n self._metrics.user_account,\n unkey_response.used,\n reservation_tpm,\n )\n\n self.add_disconnect_hook(self._update_completed_request)\n\n async def update_tokens_generated_progress(self, token_count: int):\n \"\"\"Charge generated tokens via both verifiers.\"\"\"\n if self._ratelimit_verifier:\n await self._ratelimit_verifier.update_tokens_generated_progress(self._metrics, token_count)\n if self._unkey_verifier:\n self._unkey_verifier.enqueue_force_charge(self._metrics.user_account, token_count)\n\n async def update_cache_adjusted_prompt_tokens_progress(self, token_count: int):\n \"\"\"Charge cache-adjusted prompt tokens after prefill establishes the cache hit length.\"\"\"\n if self._ratelimit_verifier:\n await self._ratelimit_verifier.update_cache_adjusted_prompt_progress(self._metrics, token_count)\n if self._unkey_verifier:\n self._unkey_verifier.enqueue_cache_adjusted_prompt_charge(self._metrics.user_account, token_count)\n\n async def _update_completed_request(self):\n try:\n # Snapshot the untracked delta before Redis verifier zeroes it\n unkey_final_chunk = self._metrics.num_generated_tokens - self._metrics.num_generated_tokens_tracked\n\n if self._ratelimit_verifier:\n await self._ratelimit_verifier.update_completed_request(self._metrics)\n if self._unkey_verifier:\n self._unkey_verifier.enqueue_completed_request(self._metrics.user_account, unkey_final_chunk)\n finally:\n await self._update_completed_request_loadshed_tracker()\n\n async def _update_completed_request_loadshed_tracker(self):\n if self._loadshed_tracker is not None:\n self._loadshed_t"} +{"text": "Kras gene triggers metabolic changes that fuel cancer cells\nResearchers at Dana-Farber Cancer Institute have shown that advanced pancreatic cancers in mice can't survive without continued expression of a mutant oncogene that \"rewires\" key metabolic pathways to fuel the cancer cells.\nThe findings, published in the April 27 issue of the journal Cell, suggest that some of these altered metabolic pathways might be potential targets for future drugs to treat the deadly cancer.\nThe investigators report that when they experimentally shut down the expression of the Kras oncogene in mice, the pancreatic tumors rapidly shrank, and, in some cases, left no visible signs of cancer. This outcome, they said, provides evidence that advanced pancreatic cancers are \"addicted\" to the Kras oncogene for their continued growth.\n\"This experiment allowed us to demonstrate that pancreatic cancers in their native setting are dependent on continued oncogenic Kras expression for tumor maintenance,\" says Alec Kimmelman, MD, PhD, co-corresponding author of the report along with Ronald DePinho, MD, formerly at Dana-Farber and now at M.D. Anderson Cancer Center in Houston.\nKimmelman said they also discovered that oncogenic Kras \"basically reprograms the glucose metabolism of the cell by regulating the expression of key metabolic enzymes, some of which might provide novel therapeutic targets.\" If that is the case, then attacking these pathways might be more feasible than attempting to block Kras directly, since Kras has proven frustratingly difficult to hit with designer drugs.\nIt is estimated that pancreatic ductal adenocarcinoma will be diagnosed in more than 43,000 people in the United States in 2012, according to the American Cancer Society, and more than 37,300 will die from the disease, which has a 5-year survival rate of only 5 percent.\nIt has been known that the Kras oncogene is an important driver of pancreatic cancer, unleashing chaotic proliferation of cancer cells, but a key question remained as to whether cancer cells that developed spontaneously in the pancreas needed Kras to survive.\nTo clarify this point, Kimmelman and colleagues created a genetically engineered mouse model in which the mutant Kras gene in the pancreas could be turned on and off at will through dietary manipulation. In addition, the tumor suppressor gene p53 was \"knocked out\" to model the loss of p53 that occurs in pancreatic cancer.\nNext, the scientists removed an antibiotic from some of the rodents' feed, which inactivated the Kras oncogene. Scans and histology showed tumors beginning to shrink within two or three days and were diminished by an average of 50 percent after a week. PET scans revealed that the remaining tumors were no longer consuming glucose, meaning they were inactive. In addition, malignant changes in the tumors' tissue environment caused by the Kras oncogene had been reversed.\nIn collaboration with the laboratory of Lewis Cantley, PhD, of Beth Israel Deaconess Medical Center, the investigators then determined how Kras oncogene activity enabled the tumors to survive and grow. \"We found that Kras is regulating glucose metabolism in pancreatic cancer,\" Kimmelman says.\nThe researchers showed that the oncogene – which regulates the activity of multiple genes in cells – \"reprogrammed\" gene pathways that are involved in utilizing and processing glucose, which serves as fuel for cells. For example, experiments revealed that Kras activity shunted glucose building blocks into a pathway called the non-oxidative pentose phosphate pathway (PPP) – a previously unknown connection. Importantly, suppressing these key metabolic enzymes regulated by Kras resulted in a significant impairment of tumor growth.\n\"These results suggest that it may be possible to attack tumors by inhibiting some of these enzymes,\" Kimmelman explains, though he cautions that it remains to be seen whether the enzymes can be reduced without having unwanted effects on the body.\nStill, this research may ultimately yield new avenues for treating various cancers that are driven by the hard-to-target Kras oncogene.\nKimmelman is co-first author of the report, along with Haoqiang Ying, MD, PhD, of the DePinho lab, and Costas Lyssiotis, PhD, from the Cantley lab. The research was supported by grants from the National Institutes of Health."} +{"text": "No, I will not let a \"Dancing with the Stars\" finale breakdown -- no matter how accurate my predictions have been or how relevant it is to sports fans -- stay up here for the afternoon.\nInstead, I will attempt to wade into the new college basketball season.\nToday's topic? Final Four picks.\nThat meant the Gators would return all five starters from a national championship team -- plus the key frontcourt and key backcourt reserve. Keeping count? That's the Top 7 back on a defending champ.\nThe frontcourt of Noah, Horford and Brewer -- all NBA Lottery-quality picks -- is arguably the best in college hoops in the last 25 years. I've been racking my brain for another contender, and the best I could do is the Fab Five's Webber-Howard-Rose/Jackson. But those guys never won a title. (Got any other nominees? Augmon-LJ-Ackles? Remember: To win the argument, your pick really should have NBA-level talent across the line AND a championship.)\nMany top college teams have a quality inside player. Hansbrough at UNC, Wright at\nBut how many have TWO? (In hindsight, that was one reason LSU emerged last season: The tandem of Davis and Tyrus Thomas was unstoppable.) Two that are as athletic or multi-skilled as Noah and Horford.\nI go through the other contenders, and I can't find a team that can match up – player for player – with the Gators, across the starting five and first subs off the bench. (And that's BEFORE I layer in the championship experience, where the Gators have a vast advantage over every other contender.)\nHere's the other reason to like Florida, even if you would otherwise be inclined to hate them: In this era where you can't go a season without complaining about players -- yours or simply the national \"stars\" -- leaving for the NBA early, isn't it unprecedentedly refreshing to see three players forego the NBA (Lottery, mind you) for a chance to repeat as college champs? How can you begrudge that? (Especially if you consider yourself a college hoops \"traditionalist.\") How can you not root for that?\n(What: Instead you'll stand behind UNC, whose title team stars from 2005 chose to leave en masse for the NBA? These Gators have shamed that UNC team and set a new example for future college stars that ultimately can do more for college hoops than any artificial NBA draft age-limit or high school \"developmental\" program. Again: They have made it easy to root for them, even if you reflexively hate Florida or reflexively hate defending champions. I'll settle for intensely begrudging respect.)\nSo, anyway, I think it's the Gators to win the title, and everyone else is playing for the chance to round out the Final Four.\n(If I had a hesitation, it's that the Gators started last season unranked, showing you how much the \"experts\" know. And even heading into the Tournament, they weren't given much of a shot. If that isn't a cautionary tale about making predictions, I don't know what is.)\nWho is this year's\nUNC? Balancing too many sick freshmen with sophs who are probably more mentally ready to contribute in March. Of course, these sophs were the same losers who lost to a vastly less talented George Mason team. Motivation or foreshadowing?\nPitt? Please. Aaron Gray? There's a reason he pulled out of the NBA Draft. UCLA? Final Four experience, but not without steady PG Jordan Farmar. LSU? Smacks of a \"dream run\" one-year wonder a year ago.\nBut as we continue down the Top 10, I see two teams that I like to do damage in March:\nGeorgetown, the only team to give Florida a game in last season's NCAA Tournament (and knowing precisely what it takes to beat them), and Wisconsin, another team that plays deliberately enough to keep them in most games, particularly in March. (Plus, they have one of the Top 10 players in the country in Alando Tucker, who makes my first-team All-America list. That's coming later this week.)\nMy fourth Final Four team? I want to say\nMy pick: Georgia Tech, which combines a sick freshman class (\"Fab Three?\" Eh. Needs work.) with enough upper-class experience to reverse last season's 11-17 record into a dramatic March run. (Now, please don't blitz me for being internally consistent in touting GA Tech's youth but discounting the same factors for UNC.)\nRest of Final Four:\nComments Question: Who's your pick to win the college hoops national title? Who else is in your Final Four? Which team aren't we talking about that we SHOULD be? Which darkhorse team could be this year's"} +{"text": "racker.update_completed_request(\n self._metrics.sequences,\n service_tier=self._service_tier,\n unified_priority_level=self._get_unified_priority_level(\n self._config.get_account_priority(self._metrics.user_account), self._service_tier\n ),\n )\n\n def _get_unified_priority_level(self, account_priority: int, service_tier: str) -> int:\n \"\"\"Compute the unified priority level for a given account and service tier.\n\n Returns:\n int: The unified priority level:\n - 0: Low priority (over limit, shed first)\n - 1: Normal priority\n - 2: High priority (service_tier=priority, shed last)\n - 3: Reserved (under reservation — assigned in\n update_on_tokenization for GPU queue scheduling only;\n NOT used for load shedding, see note below)\n\n Note: L3 is assigned after tokenization in update_on_tokenization,\n but load shedding runs before tokenization in update_on_request_received.\n At shedding time, under-reservation accounts are still at L1 and receive\n no shedding protection. If reservation-aware shedding is needed, a\n pre-tokenization reservation check must be added to update_on_request_received.\n \"\"\"\n if service_tier == \"priority\":\n return 2\n return max(0, min(account_priority, self._get_total_unified_priority_level_count() - 1))\n\n @staticmethod\n def _get_total_unified_priority_level_count() -> int:\n \"\"\"Number of priority levels that participate in pre-tokenization load shedding.\n\n Returns 3 (levels 0, 1, 2). Level 3 (reserved / under-reservation) is\n assigned in update_on_tokenization for GPU queue scheduling priority,\n but does NOT provide load shedding protection: shedding runs in\n update_on_request_received (before tokenization) when the request is\n still at L1. Keeping this at 3 avoids adding L3 to the shedding\n formula. To exempt reserved accounts from shedding, a separate\n pre-tokenization reservation check would be needed.\n \"\"\"\n return 3\n\n\ndef create_serverless_request_lifetime_tracker_factory(\n server_metrics,\n server_args,\n model_args,\n) -> Callable:\n \"\"\"Creates a factory function for serverless request lifetime tracking.\n\n Instantiates ConcurrencyLimiter, Redis verifier, Unkey verifier + sync\n worker, and LoadShedTracker once. Reused across all requests.\n \"\"\"\n config_handle = get_serverless_config_handle(server_args.configmap_dir)\n deployment_name = get_deployment_name()\n\n serverless_limiter = ConcurrencyLimiter(\n config_handle,\n model_args.max_batch_size,\n lambda: server_metrics.occupancy_gauges[(\"generator\", 0)].gauges[\"in_queued\"]._value.get(),\n )\n\n # Redis verifier (write-through; enforcement is gated off while Unkey is active)\n ratelimit_verifier = TcRatelimitVerifier(config_handle)\n\n # Unkey verifier (primary enforcement when --unkey-enforcement-enabled):\n # Reject/demote decisions come from Unkey's global usage tracking.\n # Redis continues to write usage for backward compatibility.\n unkey_verifier = None\n if server_args.unkey_enforcement_enabled:\n unkey_api_key = server_args.unkey_api_key or os.environ.get(\"UNKEY_API_KEY\", \"\")\n if unkey_api_key:\n cache_store = RatelimitCacheStore()\n cost_queue: queue.Queue = queue.Queue()\n force_charge_queue: queue.Queue = queue.Queue()\n unkey_client = UnkeyClient(\n api_key=unkey_api_key,\n base_url=server_args.unkey_base_url,\n )\n sync_worker = RatelimitSyncWorker(\n cache_store=cache_store,\n cost_queue=cost_queue,\n force_charge_queue=force_charge_queue,\n unkey_client=unkey_client,\n router_name=deployment_name,\n environment=server_args.environment,\n server_metrics=server_metrics,\n )\n sync_worker.start()\n unkey_verifier = TcUnkeyRatelimitVerifier(\n cache_store=cache_store,\n cost_queue=cost_queue,\n force_charge_queue=force_charge_queue,\n router_name=deployment_name,\n sync_worker=sync_worker,\n )\n atexit.register(unkey_verifier.stop)\n logger.info(\n \"%s Unkey ratelimit enforcement started deployment=%s\",\n _LOG_PREFIX,\n deployment_name,\n )\n else:\n logger.warning(\n \"%s --unkey-enforcement-enabled set but --unkey-api-key not provided — falling back to Redis-only\",\n _LOG_PREFIX,\n )\n else:\n logger.info(\n \"%s Unkey enforcement disabled — using Redis-only enforcement\",\n "} +{"text": "BETHLEHEM -- The Eagles haven't added another tight end to the roster yet, but what happened to Brent Celek Thursday afternoon certainly didn't end the search.\nIn the first workout with a full squad, Celek suffered a mild sprain of his knee.\nIt isn't considered serious, but it was a reminder of what the Eagles' tight end situation is behind Celek.\nThe backup is Clay Harbor. The Eagles believed they got a small-school pearl when they drafted Harbor out of Missouri State in the fourth round in 2010. In two seasons he has 21 catches for 226 yards, including 12 grabs last season.\nThe third season tends to be a progress-or-else year for many players, and that applies to Harbor.\n\"I felt like last season I played pretty well,\" Harbor said. \"I probably had 15 balls thrown to me all year. I feel like I had a decent season, but I feel like I have to show the coaches that I can do more things, gain their trust more and be a bigger part of the offense.\n\"It's hard to get on the field when you have three great receivers like DeSean (Jackson), Jeremy (Maclin) and Jason Avant.\"\nIn many ways, Harbor sees Avant as the toughest roadblock when it comes to getting touches. Harbor is built for lining up in the slot, but Avant has cornered the market on that set for the Eagles after setting career highs in catches (52) and yards (679) in his sixth season with the Birds.\nStill, the Eagles are concerned enough about the backup tight end situation to have had veterans Visanthe Sciancoe (who signed with the New England Patriots) and Jeremy Shockey work out for them. While Sciancoe and Shockey are pass-catching tight ends, the difference is that they are both big targets -- 6-4 and 6-5, respectively.\nHarbor is listed as 6-3. A more realistic listing would be 6-1. While he put on a show at the combine with big-time bench press, vertical leap and 40-yard dash numbers, sometimes a tight end's biggest asset is his ability to take up space. So there are reasons to wonder if Andy Reid is seeking a bigger target than Avant or Harbor, particularly in the red zone.\nHarbor insists he wouldn't mind having some veteran competition.\n\"It makes us better as players,\" he said. \"You see the competition, you see what other guys do and learn from them and push each other. Either way it helps you grow as a player. If you do things right and things don't work out with a certain team, and you're a good player, you'll wind up somewhere else.\"\nMichael Vick got President Obama's message relayed from teammate Nnamdi Asomugha telling him to slide at the end of his scrambling runs.\nVick seemed genuinely surprised and flattered by the Commander In Chief's concern for his well-being.\n\"I was stunned. I didn't believe it,\" Vick said. \"It was awesome. It was one of those things when you hear it, it's hard to believe. But at the same time, when he says that you think, 'Yeah, he's got a point.'\"\nVick was so floored by the advice that he not only took it to heart, but he hinted he might dedicate Hook Slide No. 1 of 2012 to Obama.\n\"If he's saying it, I've gotta do it,\" Vick said. \"The first slide of the year I'll (point) and say, 'That one's for him.'\"\nVick hasn't met Obama yet, but stressed it is on his bucket list. A Super Bowl victory would get him a ticket to the White House.\n\"That would be awesome. That might be my opportunity to meet him,\" Vick said. \"It's something I'll pray for, something I'll work for.\"\nAs for Obama being a Chicago sports fan...\n\"We'll try to convert him over to an Eagles fan after this season,\" Vick said.\nNOTES: After Thursday's closed workout in the afternoon the Eagles open the gates for the first full-roster practice open to the public this morning for a walk-through at 8:15 and a full workout in the afternoon (2:45). ... The Eagles welcomed six former NFL players to the coaching staff as interns, including five who played in Philly. Correll Buckhalter, William Fuller, Corey Peoples, Greg Lewis and Montae Reagor all spent at least a training camp with the Birds, while Don Holmes spent five seasons as a wide receiver with the Cardinals."} +{"text": "WASHINGTON -- Tamerlan Tsarnaev, the older of the two brothers accused in the deadly Boston Marathon bombings, was influenced by a mentor who espoused radical Islamist beliefs, according to one of the suspects' uncles.\nTsarnaev, 26, became acquainted with the mentor, an Armenian convert to Islam known as Misha, as early as 2007 while living in Cambridge, Mass., according to the uncle, Ruslan Tsarni. Tsarni described his now-deceased nephew's shift toward fundamentalist Muslim beliefs.\n\"He said, 'I'm now doing bigger things, Inshallah,' something like that,\" Tsarni said yesterday in an interview at his home in a Washington suburb, recalling a 2009 conversation with Tamerlan.\nAuthorities investigating the April 15 blasts are trying to determine a motive and examining whether the accused bombers had any support. Dzhokhar Tsarnaev, 19, Tamerlan's brother, has communicated to investigators that the pair acted alone in the attack, which killed three people and injured more than 260.\nTamerlan Tsarnaev, who was killed in a gun battle with police on April 19 hours before his brother's capture, spent six months in Russia last year, visiting the republics of Dagestan and Chechnya, which have been roiled by Islamic separatist movements. U.S. investigators traveled Tuesday to the capital of Dagestan to interview the parents of the suspected bombers, an American Embassy official in Moscow said, speaking on condition of anonymity in line with official policy.\nRuslan Tsarni said he'd never known his nephews to take much of an interest in religion, so when he reconnected with Tamerlan in 2009 after a family falling out a few years earlier, the young man's rhetoric about Islam left him uneasy. He said he learned more about Misha only recently, in talking with the ex- husband of one of the brothers' two sisters.\nAt the time of the 2009 conversation, Tsarni said, he didn't think his nephew posed a threat. He thought Tamerlan was acting like a disaffected young man struggling to assimilate in American society and unwilling to stick with college or start a career.\n\"Radicalized?\" Tsarni said. \"He sounded like a jerk, a person who didn't want to work. Hiding behind words.\"\nTsarni said his relationship with his brother, Anzor -- the suspects' father -- was strained several years ago, largely because of tensions with Anzor's wife, Zubeidat. He said that he had a falling out with Tamerlan after urging his nephew to stand up to his mother.\nIn an interview with CNN yesterday, Zubeidat Tsarnaev said her sons were being \"killed just because they're Muslims\" and that they were being framed in the bombing case.\nDzhokhar Tsarnaev faces federal charges that include using a weapon of mass destruction that resulted in death. He may face the death penalty if convicted.\nTsarni said the suspects' former brother-in-law, Elmirza Khozhugov, told him that the Islamist mentor Misha, who would be in his mid-30s now and was affiliated with a local mosque, had often preached in the family's home and claimed to be an exorcist. Khozhugov didn't respond to an email sent to an address provided by Tsarni.\nFederal investigators believe Tamerlan may have learned how to build the devices by reading jihadist websites, including an online magazine affiliated with al-Qaida called Inspire, according to an official briefed on the investigation who asked not to be identified because of government policy.\nTamerlan, described as a talented piano player, abandoned plans to study music at an arts college, Tsarni said, because Misha told him that such a pursuit wasn't in the spirit of Islam. Tamerlan, a two-time New England Golden Gloves champion, also stopped boxing and became engaged in community work at Misha's direction, Tsarni said.\n\"He was pretty much occupied with this guy,\" Tsarni said, adding that he doesn't know the man's full identity. Efforts by Bloomberg reporters to track down Misha in the Boston area failed.\nOver the same period of time, Zubeidat shifted her dress from Western clothes to wearing a hijab, a head covering worn by some Muslim womenTsarni said. He first noticed the change in pictures of her in 2007 and then saw her in person in 2009 in Almaty, Kazakhstan.\n\"Where was that coming from?\" Tsarni said. \"It was a tremendous change.\" He said he thinks his brother and his wife moved back to Dagestan from Massachusetts within the last year although he learned about their move after the fact.\nTsarni said it wasn't until after the Boston Marathon bombings that he began to piece together the possible influence that Misha, and the suspects' mother, might have had on his nephew's views.\nAnother of Tamerlan's uncles is in Massachusetts, preparing to make burial arrangements once authorities release his dead nephew's body, Tsarni said.\nTsarni said he's received almost two dozen letters written by people from across the U.S. in response to an impromptu news briefing he gave April 19, in which he professed his love for America, denounced his suspect-nephews as \"losers\" and urged the younger of the pair to surrender.\n\"You may get 'hate mail,' so please consider this 'love mail,' \" read one letter, from Colorado Springs, Colo., that Tsarni showed to a reporter. \"Thank you for your courage in coming forward.\"\n_ With assistance from Henry Meyer in Moscow."} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/test/models/test_nemotron_h.py. Lines: 2092.\n\nfrom __future__ import annotations\n\nimport logging\nimport os\n\nimport fireworks.nn as firenn\nimport pytest\nimport torch\nimport torch.nn as nn\nimport transformers\nimport fireworks.models.nemotron_h.nemotron_h_text as nemotron_h_text\nimport fireworks.text as firetext\nfrom fireworks.nn.mamba_state import MambaCacheManager\nfrom fireworks.models.nemotron_h import (\n LAYER_TYPE_ATTENTION,\n LAYER_TYPE_MAMBA,\n LAYER_TYPE_MLP,\n LAYER_TYPE_MOE,\n NemotronH,\n NemotronHAttentionDecoderLayer,\n NemotronHCausalTextModel,\n NemotronHConfig,\n NemotronHMambaDecoderLayer,\n NemotronHMLPDecoderLayer,\n NemotronHMoEDecoderLayer,\n NemotronHTextConfig,\n parse_hybrid_pattern,\n)\nfrom transformers.models.nemotron_h.configuration_nemotron_h import NemotronHConfig as HFNemotronHConfig\n\n# ---------------------------------------------------------------------------\n# parse_hybrid_pattern\n# ---------------------------------------------------------------------------\n\n\ndef test_parse_hybrid_pattern_accepts_valid_pattern() -> None:\n types = parse_hybrid_pattern(\"M-E*\", num_hidden_layers=4)\n assert types == [LAYER_TYPE_MAMBA, LAYER_TYPE_MLP, LAYER_TYPE_MOE, LAYER_TYPE_ATTENTION]\n\n\ndef test_parse_hybrid_pattern_rejects_length_mismatch() -> None:\n with pytest.raises(ValueError, match=\"num_hidden_layers\"):\n parse_hybrid_pattern(\"M-*\", num_hidden_layers=4)\n\n\ndef test_parse_hybrid_pattern_rejects_unknown_char() -> None:\n with pytest.raises(ValueError, match=\"unknown layer-type\"):\n parse_hybrid_pattern(\"MXA\", num_hidden_layers=3)\n\n\n# ---------------------------------------------------------------------------\n# NemotronHConfig\n# ---------------------------------------------------------------------------\n\n\ndef _make_config(\n *,\n hf_config: bool = False,\n hybrid_override_pattern: str = \"*ME-M*E-\",\n **overrides: object,\n) -> NemotronHConfig | transformers.PretrainedConfig:\n if hf_config:\n defaults = dict(\n architectures=[\"NemotronHForCausalLM\"],\n vocab_size=131072,\n hidden_size=8192,\n layers_block_type=[\"mamba\", \"moe\", \"attention\"],\n num_hidden_layers=3,\n max_position_embeddings=262144,\n num_attention_heads=64,\n num_key_value_heads=2,\n head_dim=128,\n attention_bias=False,\n attention_dropout=0.0,\n norm_eps=1e-6,\n layer_norm_epsilon=1e-6,\n intermediate_size=5120,\n mlp_hidden_act=\"relu2\",\n mlp_bias=False,\n ssm_state_size=128,\n mamba_num_heads=256,\n mamba_head_dim=64,\n mamba_n_groups=8,\n mamba_d_conv=4,\n mamba_conv_bias=True,\n mamba_proj_bias=False,\n mamba_chunk_size=128,\n mamba_dt_min=0.001,\n mamba_dt_max=0.1,\n mamba_dt_init_floor=0.0001,\n # Omit mamba_dt_limit so the fixture uses the HF default tuple (0.0, inf),\n # mirroring the real Nemotron-H checkpoints (which omit the key).\n mamba_ssm_cache_dtype=\"float32\",\n n_routed_experts=512,\n n_shared_experts=1,\n moe_intermediate_size=5120,\n moe_shared_expert_intermediate_size=10240,\n moe_latent_size=2048,\n moe_shared_expert_overlap=False,\n num_experts_per_tok=22,\n routed_scaling_factor=5.0,\n n_group=1,\n topk_group=1,\n norm_topk_prob=True,\n num_nextn_predict_layers=1,\n mtp_layers_block_type=[\"attention\", \"moe\"],\n pad_token_id=0,\n bos_token_id=1,\n eos_token_id=2,\n tie_word_embeddings=False,\n )\n if hybrid_override_pattern != \"*ME-M*E-\":\n defaults[\"hybrid_override_pattern\"] = hybrid_override_pattern\n defaults.update(overrides)\n return HFNemotronHConfig(**defaults)\n\n defaults = dict(\n config_name=\"tiny\",\n vocab_size=256,\n n_layer=len(hybrid_override_pattern),\n n_embd=32,\n n_head=2,\n n_head_kv=2,\n head_dim=16,\n intermediate_dim=64,\n mamba_num_heads=2,\n mamba_head_dim=16,\n ssm_state_size=8,\n n_groups=1,\n conv_kernel=4,\n n_routed_experts=2,\n n_shared_experts=1,\n num_experts_per_tok=1,\n moe_intermediate_size=16,\n moe_latent_size=8,\n moe_shared_expert_intermediate_size=32,\n hybrid_override_pattern=hybrid_override_pattern,\n # Pure-torch backend so these tests run on any hardware. The production\n # default is \"flashinfer\" (Blackwell-only); backend-specific kernels are\n # covered by test_mamba2.py, which constructs Mamba2 with explicit backends.\n mamba_backend=\"reference\",\n )\n de"} +{"text": "In the discussion thread: Don't You Just Love It when a Poster announces in Open Forum that [View all]\nResponse to Tuesday Afternoon (Original post)\nFri Sep 21, 2012, 09:31 PM\nMiddleFingerMom (25,163 posts)\n29. I never tell people how many people have me on ignore because they would just think I'm bragging.\nLast edited Sat Sep 22, 2012, 03:27 AM - Edit history (1)\nI'm not an insufferable ass (at least not a BIG one), though I don't suffer bullies gladly. So I think\nthe folks ignoring me because of my attitude are minimal.\nSome don't like my subject matter or approaches to it. That's OK -- I don't want to force anyone\nto view my posts.\nI think most don't like my \"dots\" nor my style of presentation. I use lots of physical space in a kind\nof text/not-text fashion. I've always found this easier for ME to focus on material by others, so I\nUSE that technique in my posts, too.\nSome used to accuse me of \"spamming\". I can't understand what kind of spamming they're talking\nabout and they would NEVER get specific when asked -- I think someone may have said I \"spammed\"\nand then the others would repeat that, but be embarrassed when they realized that their justification\nwas, \"Well... BOBBY said so.\" The closest I could come to it is my habit of posting all at once rather\nthan one at a time over an extended period of time (6 at a time max and not the traditional six \"same\"\nposts that one usually associates with spamming -- but six distinct and independent posts). Even\nwhen someone just posts \"x\" over and over, DU's spam filter (I don't know if it's still in existence)\nwouldn't kick in 'til after a dozen or more posts.\nThe dots that I use -- people would declare them annoying... even obnoxious or \"maddening\". There\nwere more than a few folks (many of them would show up together) who put a lot of pressure on me\nto change my style. Even if it were not there, that would raise questions, but ESPECIALLY with the\nIgnore function present, this was much more an example of control issues on their part than the\ninescapable \"torture\" that I \"subjected\" them to.\nI can see many valid reasons why people would put someone on ignore, but the announcement of\nputting someone on ignore reminds me of gradeschool playground behavior -- covering one's ears\nwith one's hands and chanting \"LA LA LA LA I CAN'T HEAR YOU LA LA LA LA\"!!!\nIt's a little weird and a lot funny. I think the last time it happened my response was \"I miss you\nalready\". It's kind of a Schrodinger's Cat conundrum -- \"If I don't see a responsed from them, do\nthey have me on ignore or not?\"\nAnd while whether a cat is dead or not would concern me, being on Ignore or not does not.\nI don't believe I've ever put anyone on ignore (though that might not be the case if I were to\nspend more time in Meta or GD or certain other groups where obnoxious and/or bullying behavior\nseems to be a norm). I find myself thoroughly capable of ignoring someone whose posts I've found\nto be distasteful without any kind of tool needed.\nPerhaps SOME of the people who have me on Ignore are in the background of this pic, while I\n(note the avatar) am in the foreground).\nAlways highlight: 10 newest replies | Replies posted after I mark a forum\nReplies to this discussion thread\n|Tuesday Afternoon||Sep 2012||OP|\n|Tuesday Afternoon||Sep 2012||#6|\n|Tuesday Afternoon||Sep 2012||#5|\n|Tuesday Afternoon||Sep 2012||#4|\n|Tuesday Afternoon||Sep 2012||#12|\n|Tuesday Afternoon||Sep 2012||#16|\n|Tuesday Afternoon||Sep 2012||#8|\n|Lady Freedom Returns||Sep 2012||#24|\n|Tuesday Afternoon||Sep 2012||#10|\n|Tuesday Afternoon||Sep 2012||#14|\n|Tuesday Afternoon||Sep 2012||#20|\n|Tuesday Afternoon||Sep 2012||#44|\n|Tuesday Afternoon||Sep 2012||#21|\n|Tuesday Afternoon||Sep 2012||#42|\n|Tuesday Afternoon||Sep 2012||#25|\n|Tuesday Afternoon||Sep 2012||#26|\n|Tuesday Afternoon||Sep 2012||#28|\nI never tell people how many people have me on ignore because they would just think I'm bragging.\n|Tuesday Afternoon||Sep 2012||#30|\n|Tuesday Afternoon||Sep 2012||#32|\n|Tuesday Afternoon||Sep 2012||#40|\n|Tuesday Afternoon||Sep 2012||#41|\n|Tuesday Afternoon||Sep 2012||#39|\n|Tuesday Afternoon||Sep 2012||#38|\nPlease login to view edit histories."} +{"text": "In the final three games of the season, Dartmouth needed a quarterback to step in for injured sophomore Alex Park.\nThe Big Green turned to true freshman Dalyn Williams, who often wore green at Lake Dallas and was a part of the best passing offense in Class 4A in 2011.\nWilliams’ knack for leading an offense carried over from Corinth to Hanover, N.H., where he started and excelled in the final three games of the regular season.\nThe former Lake Dallas standout added to his career accolades when he recently was named the Ivy League’s Freshman of the Year.\n“We’re really proud of him, but we’re honestly not really surprised,” Lake Dallas head coach Michael Young said. “I knew he’d probably be pretty successful there, even as a freshman. I thought he would get some chances to play — and if he ever got a chance to play, they’d probably have a hard time keeping him out of the lineup.”\nWilliams posted a 2-1 record as a starter and became the first Dartmouth player in 10 years — and only the seventh in school history — to be named the Ivy League’s top freshman. Twice he was named the league’s Rookie of the Week.\nHe completed 73 of 114 passes for 974 yards and seven touchdowns without throwing an interception. He rushed for 262 yards and three touchdowns on 89 carries for the Big Green, which finished 6-4 and missed the Football Championship Subdivision playoffs.\nWilliams took over as Dartmouth’s starter Nov. 3 against Cornell after Park suffered a shoulder injury. Williams shined against the Big Red, going 14-of-20 for 160 yards and two touchdowns.\nHis most prolific performance came in a season-ending 35-21 victory at Princeton. He completed 20 of 35 passes for 284 yards and three touchdowns. He added a rushing touchdown in the victory.\nDartmouth head coach Buddy Teevens said Williams flourished in his multi-quarterback system. Williams played in all 10 games, and Teevens said Williams progressed in each contest.\nThe 5-11, 205-pound freshman has the ability to make plays, is an accurate passer and has an innate sense of awareness that allows him to evade the rush and escape with his feet, Teevens said.\nWilliams displayed that talent as a senior at Lake Dallas, throwing for 3,952 yards and 37 touchdowns.\nThe Dartmouth coach said he’s in the midst of a nationwide recruiting trek and potential players are well aware of what Williams did in his first year.\n“It’s kind of a mixed blessing,” Teevens said. “Every other position is very, very excited, and they go online and on YouTube and so forth and they know what a quality player [Dalyn] is. And quarterbacks, I think it’s a separator.\n“Guys that are worried about competition, they’ll opt out to pursue other schools. Guys that are confident in their abilities and aren’t hesitant in willingness to compete, they still have an interest. We’re in a pretty good situation right now.”\nTeevens said Williams has spent plenty of time digesting film and is constantly asking questions in a fervent pursuit to get better. When Teevens talked to Williams’ economics professor, the coach said, Williams’ desire to be great in the classroom was apparent as well.\n“I’ve been so impressed with what he’s done to date, and I don’t believe he’s satisfied or he’s played his best football yet,” Teevens said. “And that’s something I really respect in him. He wants to be a great player.”\nThere’s time for Williams to leave his imprint in New Hampshire like he did in Texas.\nYoung said it’s difficult for a freshman to go in and do what Williams did at Dartmouth. And based on his 10 games, Young said he can see the trend of excellence continuing to curve upward over the next few years.\n“They could really have something special in him,” Young said. “I could see him dominating that conference offensively — if they’re able to get some receivers to go around him — because I’m sure he’s going to be one of the top quarterbacks in that conference for years to come.”\nBEN BABY can be reached 940-566-6869. His e-mail address is firstname.lastname@example.org ."} +{"text": "faults.update(overrides)\n return NemotronHConfig(**defaults)\n\n\ndef test_config_rejects_conflicting_layout_encodings() -> None:\n \"\"\"Do not silently accept inconsistent HF list and compact pattern layouts.\"\"\"\n with pytest.raises(ValueError, match=\"conflict\"):\n NemotronHConfig(\n config_name=\"bad-layout\",\n n_layer=3,\n layers_block_type=[\"mamba\", \"moe\", \"attention\"],\n hybrid_override_pattern=\"M*M\",\n )\n\n\ndef test_hf_config_roundtrip_preserves_fw_and_hf_metadata() -> None:\n hf_config = _make_config(hf_config=True)\n hf_config_dict = hf_config.to_dict()\n\n text_config = NemotronHCausalTextModel.convert_hf_config(hf_config)\n fw_config_dict = text_config.to_dict()\n fw_base_config = fw_config_dict[\"base\"]\n\n assert fw_base_config[\"n_layer\"] == hf_config.num_hidden_layers\n assert fw_base_config[\"layers_block_type\"] == hf_config_dict[\"layers_block_type\"]\n assert fw_base_config[\"n_embd\"] == hf_config_dict[\"hidden_size\"]\n assert fw_base_config[\"norm_eps\"] == hf_config_dict[\"norm_eps\"]\n assert fw_base_config[\"n_routed_experts\"] == hf_config_dict[\"n_routed_experts\"]\n assert fw_base_config[\"num_nextn_predict_layers\"] == hf_config_dict[\"num_nextn_predict_layers\"]\n assert text_config.is_moe\n assert text_config.max_seq_len == hf_config_dict[\"max_position_embeddings\"]\n assert text_config.kv_cache_num_layers == 1\n\n loaded_text_config = NemotronHTextConfig.from_dict(fw_config_dict)\n roundtrip = NemotronHCausalTextModel.hf_model_config(loaded_text_config)\n\n assert roundtrip is not None\n roundtrip_dict = roundtrip.to_dict()\n assert roundtrip_dict[\"norm_eps\"] == hf_config_dict[\"norm_eps\"]\n expected_roundtrip_dict = {field: hf_config_dict[field] for field in roundtrip_dict}\n assert roundtrip_dict == expected_roundtrip_dict\n\n\ndef test_get_moe_routing_spec_counts_mtp_moe_layers() -> None:\n \"\"\"``mtp_layers_block_type`` stores HF layer names (\"moe\"), so get_moe_routing_spec\n must normalize them to pattern chars before counting MoE layers — not compare to the\n raw char \"E\" (which never matches \"moe\", leaving the MTP MoE count stuck at 0).\"\"\"\n text_config = NemotronHTextConfig(\n base=_make_config(\n hybrid_override_pattern=\"M*E\",\n num_nextn_predict_layers=1,\n mtp_layers_block_type=[\"attention\", \"moe\"],\n )\n )\n model = NemotronHCausalTextModel(text_config)\n n_main_moe, n_mtp_moe, n_experts, n_active = model.get_moe_routing_spec()\n assert n_main_moe == 1 # one \"E\" in \"M*E\"\n assert n_mtp_moe == 1 # one \"moe\" in the MTP draft block\n\n\ndef test_convert_hf_config_accepts_compact_hybrid_pattern_fallback() -> None:\n hf_config = _make_config(hf_config=True, layers_block_type=None, hybrid_override_pattern=\"ME*\")\n\n text_config = NemotronHCausalTextModel.convert_hf_config(hf_config)\n\n assert text_config.base.layers_block_type == [\"mamba\", \"moe\", \"attention\"]\n assert text_config.base.hybrid_override_pattern == \"ME*\"\n\n\ndef test_causal_model_configures_mamba_state_dtypes_from_precision() -> None:\n base = _make_config(hybrid_override_pattern=\"MM\")\n base.mamba_ssm_dtype = \"bf16\"\n text_config = NemotronHTextConfig(\n base=base,\n precision=firenn.default_dense_precision(\"bf16\"),\n )\n text_config.precision.mamba_state = firenn.MambaStateDType.bf16\n model = NemotronHCausalTextModel(text_config)\n\n assert model._mamba_layer_indices == [0, 1]\n for layer_idx in model._mamba_layer_indices:\n mixer = model.layers[layer_idx].mixer\n assert mixer._state_dtype == torch.bfloat16\n assert mixer._conv_state_dtype == text_config.precision.activation.torch_dtype\n\n spec = model.linear_state_spec()\n assert spec is not None\n assert spec.recurrent_state_dtype == torch.bfloat16\n assert spec.conv_state_dtype == text_config.precision.activation.torch_dtype\n\n\ndef test_config_and_model_initialization() -> None:\n \"\"\"Pool index helpers count ordinals, not list positions.\"\"\"\n cfg = _make_config()\n model = NemotronH(cfg)\n assert model.embed_tokens is not None\n assert model.lm_head is not None\n assert len(model.layers) == 8\n\n # Layer types: * M E - M * E -\n # Mamba ordinals: 0 1\n # Attn ordinals: 0 1\n # MoE ordinals: 0 1\n # MLP ordinals: 0 1\n assert cfg.linear_state_layer_index(1) == 0\n assert cfg.linear_state_layer_index(4) == 1\n assert isinstance(model.layers[1], NemotronHMambaDecoderLayer)\n assert isinstance(model.layers[4], NemotronHMambaDecoderLayer)\n mamba_layers = [layer for layer in model.layers if isinstance(layer, NemotronHMambaDecoderLayer)]\n assert [layer.mixer.linear_state_layer_idx for layer in mamba_layers] == [0, 1]\n\n assert cfg.kv_cache_layer_index(0) == 0\n assert cfg.kv_cache_layer_index(5) == 1\n assert isinstance(model.layers[0], NemotronHAttentionDecoderLayer)\n"} +{"text": "Sikh Columbia professor assaulted in possible hate crime (+video)\nHuffPost Live screenshot\nPrabhjot Singh, a Columbia University professor, was assaulted Saturday night in what the New York Police Department says was a possible hate crime.\nSingh, who is Sikh and wears a turban and beard, was attacked while walking on 110th Street near Lenox Avenue in Manhattan, The Huffington Post reported. A suspect or suspects allegedly “shouted anti-Muslim statements, knocked the professor down and punched him numerous times in the face,” The Huffington Post reported.\nOn Monday morning, Singh joined HuffPost Live and discussed the incident and said that he’s OK despite the attack. He also said he saw an oral surgeon “to have his jaw wired.”\n“I saw young men on bikes,” Singh told hosts Marc Lamont Hill and Alyona Minkovski. “I heard, 'Get him!' and 'Osama' and 'terrorist,' not all at the same time,\" he said. “I felt somebody grab my beard and hit my chin while on a bike. I started running in the direction away from where all the bikes were mobilizing, and then was punched while running. Eventually they surrounded me, and [I] was hit to the ground with punches to the face and torso.”\nThe Columbia professor’s wife, Manmeet Kaur, wrote an article on Wednesday for The Daily Beast. Not only did she retell Singh’s story, but she also asked for support in stopping hate crimes.\n“It breaks my heart each time I read about an incident against someone based upon race, gender, religion or ethnicity, but I hope to take this as an opportunity to provoke reflection about ways to work together as a community to prevent hate crimes against individuals of any background,” Kaur wrote.\nKaur said a part of the solution is in education. She suggested teaching children to appreciate and understand diversity from a young age.\n“I am troubled by the young age of the assailants and am reminded of how early hatred and racism can begin,” she wrote.\nSingh said he would like to invite his attackers to the Gurudwara, which is a place of worship for Sikhs, to understand his beliefs and help prevent any more possible hate crimes.\nAnd in an article for the New York Daily News, Singh wrote he feels gratitude toward his attackers for bringing the issue of hate crimes to light.\n“This gratitude enables my wife and I to remain optimistic that our son will never have to go through what I just experienced,” wrote Singh.\nReligious News Service published an article Tuesday about a similar attack on a Muslim woman a few blocks away on the same day as Singh’s assault.\nAccording to the article, these assaults are a piece of ongoing attacks on Sikhs, Muslims and people thought to be foreigners. Stanford University, according to the article, released a study that showed even though “almost all turban-wearers in America are Sikh,” roughly 70 percent of Americans believe turban-wearers to be Muslim, Hindu, Buddhist or Shinto.\nAbout 50 percent of Americans, according to the RNS piece, believe Sikhism is a sect of Islam. As the article explains, “Sikhism is a monotheistic religion revealed to Guru Nanak in the 16th century in the Punjab region of modern-day India and Pakistan.”\nWith more than 25 million followers, most of whom live in India, with 500,000 in the United States, Sikhism is the fifth-largest religion in the world.\n- Pope embraces Al-Azhar imam in sign of...\n- Church slaying families accept pursuit of...\n- Text of Obama's speech at Hiroshima Peace...\n- Lightning damages Angel Moroni statue atop...\n- Is the Angel Moroni a lightning rod? Statue...\n- LDS missionary who returned home early shares...\n- United Methodist conference seen as confusing...\n- Twila Van Leer: Just picture that!\n- LDS missionary who returned home early... 53\n- Why the University of Miami plans to... 43\n- Defending the Faith: Book of Mormon... 42\n- Is the Angel Moroni a lightning rod?... 23\n- Lightning damages Angel Moroni statue... 20\n- Donald Trump moves to win over wavering... 17\n- Elizabeth Smart picks BYU rape response... 15\n- BYU's Ty Detmer discusses prayer,... 11"} +{"text": "STATE OF WASHINGTON\nOFFICE OF THE GOVERNOR\nP.O. Box 40002 ∑ Olympia, Washington 98504-0002 ∑ (360) 902-4111 ∑ www.governor.wa.gov\nMartha Choe, Director, Community, Trade & Economic Development\n|FROM:||Gary Locke, Governor|\n|DATE:||May 15, 2000|\n|SUBJECT:||Establishing the Office of Trade and Economic Development and the Office of Community Development within the Department of Community, Trade & Economic Development|\nAs you know, the Department of Community, Trade and Economic Development (the \"Department\") has two very distinct functions. The trade and economic development side of the agency focuses on the creation of jobs, expansion of the economic base, and promotion of Washington's products abroad. On the other hand, the Department's community development efforts focus on securing the basic needs of a viable community including food, housing and a safe and healthy environment.\nWe came to the conclusion last year that the Department's programs are too numerous and diverse in nature to be well coordinated under one state agency and director, and presented that conclusion to the legislature. Section 116(1) of HB2487, passed by the 56th legislature in the second special session of 2000 directs that the Department receive separate appropriations for the community development program and the trade and economic development program for fiscal year 2001 and thereafter.\nA distinct trade and economic development office can work more effectively with businesses, labor, economic development councils, ports, industry and trade associations and local communities to serve the economic interests of Washington state. A distinct community development office can better concentrate on partnering with local governments and organizations to build and strengthen our communities. The establishment of the two divisions will enable each resulting office to be more focused, innovative and effective in delivering services and programs to the people of Washington state. Additionally, a number of the Department's constituencies and partners including labor, businesses, local governments, community organizations and advocates have asked for separate divisions.\nTherefore, effective immediately, I direct that two separate divisions shall be created within the Department of Community, Trade and Economic Development: (1) The Washington State Office of Trade and Economic Development, which will be comprised of the Trade, Economic Development, and Energy Policy and WorkFirst sections of the Department; and (2) the Washington State Office of Community Development, which will be comprised of the Housing, Local Government and Community Services sections and staffing for the Energy Facilities Siting Evaluation Committee (EFSEC).\nWhile the Department of Community, Trade and Economic Development will continue to retain its legal standing as an agency of state government, the new divisions will separately operate their respective program and budget areas. The departmental biennial budget prepared for the 2001-2003 biennium should reflect two separate but coordinated budgets submitted to the Office of Financial Management and should prioritize any requested enhancement or reduction proposals, discretely within each division.\nEach division shall have its own director. Martha Choe will serve as the director of the Washington State Office of Trade and Economic Development, and Busse Nutley will serve as the director of the Washington State Office of Community Development. Both directors will be members of equal standing in my cabinet, and will report to me directly and be individually responsible for their respective offices. As required, Martha Choe will serve as Director of the Department.\nThe two divisions shall enter into a joint operating agreement, which shall cover all administrative and any programmatic issues necessary to effectuate this directive and to implement the division of the Department. After being separated, both divisions of the Department shall continue to recognize the single Washington Federation of State Employees bargaining unit.\nI view this administrative division as an interim measure to more effectively serve the important economic and community-based needs of our state. It is my intention to request the legislature to statutorily separate the agency and provide adequate funding to permanently create two agencies at the beginning of the 2001 legislative session."} +{"text": " assert isinstance(model.layers[5], NemotronHAttentionDecoderLayer)\n\n assert cfg.moe_layer_index(2) == 0\n assert cfg.moe_layer_index(6) == 1\n assert isinstance(model.layers[2], NemotronHMoEDecoderLayer)\n assert isinstance(model.layers[6], NemotronHMoEDecoderLayer)\n\n assert cfg.mlp_layer_index(3) == 0\n assert cfg.mlp_layer_index(7) == 1\n assert isinstance(model.layers[3], NemotronHMLPDecoderLayer)\n assert isinstance(model.layers[7], NemotronHMLPDecoderLayer)\n\n assert model.num_linear_layers == 2\n spec = model.linear_state_spec()\n assert spec is not None\n assert spec.variant == \"mamba2\"\n # conv_state: [conv_dim, kernel - 1]; recurrent_state: [nheads, head_dim, d_state]\n assert spec.conv_state_shape == (\n cfg.mamba_d_inner + 2 * cfg.n_groups * cfg.ssm_state_size,\n cfg.conv_kernel - 1,\n )\n assert spec.recurrent_state_shape == (\n cfg.mamba_num_heads,\n cfg.mamba_head_dim,\n cfg.ssm_state_size,\n )\n\n with pytest.raises(ValueError, match=\"not a Mamba-2 layer\"):\n cfg.linear_state_layer_index(0) # layer 0 is attention\n with pytest.raises(ValueError, match=\"not a full-attention layer\"):\n cfg.kv_cache_layer_index(1) # layer 1 is Mamba\n with pytest.raises(ValueError, match=\"not a MoE layer\"):\n cfg.moe_layer_index(3) # layer 3 is MLP\n with pytest.raises(ValueError, match=\"not an MLP layer\"):\n cfg.mlp_layer_index(2) # layer 2 is MoE\n\n\ndef test_text_model_mamba_state_config_matches_mamba_layers() -> None:\n \"\"\"Text cache paths need Mamba state advertised for hybrid layouts.\"\"\"\n text_config = NemotronHTextConfig(base=_make_config(hybrid_override_pattern=\"M*M\"))\n model = NemotronHCausalTextModel(text_config)\n\n state_config = model.mamba_state_config\n\n assert state_config is not None\n assert state_config.num_mamba_layers == 2\n spec = model.linear_state_spec()\n assert spec is not None\n assert state_config.conv_state_shape == spec.conv_state_shape\n assert state_config.recurrent_state_shape == spec.recurrent_state_shape\n assert state_config.max_active_sequences == 0\n assert state_config.num_snapshots == 0\n\n\ndef test_text_model_without_mamba_has_no_mamba_state_config() -> None:\n \"\"\"Pure attention/MLP layouts should continue using only KV cache.\"\"\"\n text_config = NemotronHTextConfig(base=_make_config(hybrid_override_pattern=\"*-\"))\n model = NemotronHCausalTextModel(text_config)\n\n assert model.mamba_state_config is None\n\n\ndef test_context_cache_manager_wraps_mamba_state_for_mamba_layout() -> None:\n \"\"\"Normal CausalTextModel cache path allocates Mamba state for Nemotron-H.\"\"\"\n text_config = NemotronHTextConfig(base=_make_config(hybrid_override_pattern=\"M\"))\n model = NemotronHCausalTextModel(text_config)\n kv_cache = model.create_kv_cache(firetext.KVCacheConfig.for_seq_len(4, text_config.kv_cache_block_size))\n\n manager = model.create_context_cache_manager(kv_cache=kv_cache)\n\n assert isinstance(manager, MambaCacheManager)\n\n\ndef test_layer_ordinal_mapping_ignores_other_layer_types() -> None:\n \"\"\"State/KV pool ordinals count only their own layer type, skipping\n interleaved layers of other types (the hybrid dual-mapping invariant).\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"MEM*\")\n assert isinstance(cfg, NemotronHConfig)\n # layers: M E M *\n # mamba ordinals 0 1\n # attn ordinals 0\n assert cfg.mamba_layer_indices() == [0, 2]\n assert cfg.attention_layer_indices() == [3]\n assert cfg.linear_state_layer_index(0) == 0\n assert cfg.linear_state_layer_index(2) == 1\n assert cfg.kv_cache_layer_index(3) == 0\n assert cfg.num_kv_attention_layers() == 1\n # MoE and attention layers are not Mamba state layers.\n with pytest.raises(ValueError, match=\"not a Mamba-2 layer\"):\n cfg.linear_state_layer_index(1) # MoE\n with pytest.raises(ValueError, match=\"not a Mamba-2 layer\"):\n cfg.linear_state_layer_index(3) # attention\n\n\ndef test_mamba_state_config_counts_only_mamba_layers() -> None:\n \"\"\"num_mamba_layers must exclude attention and MoE layers from the state pool.\"\"\"\n text_config = NemotronHTextConfig(base=_make_config(hybrid_override_pattern=\"M*EM\"))\n model = NemotronHCausalTextModel(text_config)\n\n state_config = model.mamba_state_config\n\n assert state_config is not None\n assert state_config.num_mamba_layers == 2 # the two M layers, not * or E\n\n\ndef test_estimate_activation_memory_uses_minimal_mamba_cache() -> None:\n \"\"\"The activation-memory probe must build its throw-away Mamba cache with\n ``num_snapshots=0`` and a minimal batch (not sized to production KV blocks).\n\n Sizing the Mamba pool to the throw-away KV cache's ``num_blocks`` — which\n reaches thousands of blocks for a long-context hybrid deployment — would add\n tens of GB of unused recurrent-state memory and OOM the probe. We spy on\n ``create_mamba_cache`` to capture th"} +{"text": "Leather Cream is a leather conditioner formulated to restore vital nutrients to your car’s leather surfaces. It safely nourishes leather seats, consoles, and dashboards to keep your leather looking newer for longer. This unique formula is made with lanolin and UV blockers to leave your leather looking supple and luxurious. Order Leather Cream today and never worry again about fading, dry, or cracked leather ever again.\nNo Shine Formula leaves behind a non-greasy, matte finish\nContains UV Blockers to keep leather from fading\nWon’t attract dust, dirt, or other debris so once your leather is clean, it stays that way Learn More\nWheel Seal is a high-tech synthetic protective coating for your wheels which prevents the build up of brake dust. Its formula has extremely high heat resistance so it will last even if you take your ride to the track. Wheel Seal prevents damage caused by brake dust, road tar, and other road contaminants.\nProvides wheels with a layer of protection against environmental hazards\nPrevents brake dust buildup\nProtects wheels from etching, pitting, and clear coat erosion Learn More\nBugs splats on a car are not only ugly, but they can be a giant pain to remove. That’s where Bug Barrier comes in. Bug barrier is a temporary protective coating for your vehicle; spray it on the front of your car and it prevents bugs from sticking to your bumper, grill, hood, and mirrors. Next time you rinse your car they come right off. Buy today and never worry about bug splats again!\nProvides a protective barrier between bugs and the front of your car\nBugs slide right off when car is rinsed with water\nProtects from small rock chips and other debris Learn More\nEbony Polish is specifically designed to restore and enhance the beauty of your black car's paintwork. Ebony Polish is used on black or darker cars to intensify their shine and remove minor swirl marks from the car's paint surface. We know black cars need special treatment; buy Ebony Polish and you’ll get just that.\nDesigned specifically for black and other dark paint colors\nRemoves light swirls and other scratches\nEnhances deep, rich paint tone for ultimate shine\nFor use with machine buffer only. Do not use by hand Learn More\nFormula 1201 is a scientifically advanced, polymer based liquid paint coating. Formulated for modern paint finishes, Formula 1201 provides unrivaled protection, durability, and shine. Buy today and see why Formula 1201 will change the way you protect your car.\nNo need to dry your car; begin applying as soon as you rinse the suds offLearn More\nLasts for months longer than traditional paint sealants. Will withstand hundreds of car washes\nOne ounce is enough to protect your entire car, meaning one bottle will last you years\nNo wax residue left in cracks, crevices, or door jambs\nOur Clay Kit provides you with all the necessary tools for claying your car before buffing or polishing. The clay kit comes with your choice of a fine or medium grade 200 gram clay bar, a 12 oz bottle of our clay spray, and two microfiber towels for cleaning it all up. Buy now and your search for the perfect set of claying tools is over.Learn More\nMatte Paint Sealant is the first safe paint protection product on the market for matte paint finishes. It is not a wax and so will not “fill in” your matte paint. It simply leaves a molecule thick layer of protection on the paint surface so that your matte paint is never without protection.\nLiquid formula will not fill in matte paint like some paste formulas\nLasts hundreds of washes. No need to apply often\nLeaves behind a uniform, flat sheen\nPerfect for Single Stage, Clear Coated, and Vinyl Wrap matte finishes\nFoam Applicators NOT included with purchase of Matte Paint SealantLearn More\nCarbon Glaze is a carefully formulated polishing glaze designed to enhance the appearance of carbon fiber panels, trim, and accents. Without heavy grit, this carbon fiber polishing glaze smoothens the delicate resin surrounding the carbon fiber to create a glass like clarity unmatched by any other product on the market. Add Carbon Glaze to your repertoire and experience perfect carbon fiber.\nLeaves behind an incredible shine\nNon-abrasive formula perfect for polishing carbon fiber\nCreates an incredibly smooth surface, ready for protection\nFor use with machine buffer only. Do not use by hand\nUse only on wet or coated carbon fiber Learn More"} +{"text": "Heart disease and stroke deaths drop significantly for people with diabetes\nHeart disease and stroke deaths drop significantly for people\nHealthier lifestyles, better disease management are helping people live longer\nATLANTA, May 22, 2012 /PRNewswire-USNewswire/ -- Death rates for people with diabetes dropped substantially from 1997 to 2006, especially deaths related to heart disease and stroke, according to researchers at the Centers for Disease Control and Prevention and the National Institutes of Health.\nDeaths from all causes declined by 23 percent, and deaths related to heart disease and stroke dropped by 40 percent, according to the study published today in the journal Diabetes Care (http://care.diabetesjournals.org/content/35/6/1252.full). Scientists evaluated 1997-2004 National Health Interview Survey data from nearly 250,000 adults who were linked to the National Death Index. Although adults with diabetes still are more likely to die younger than those who do not have the disease, the gap is narrowing.\nImproved medical treatment for cardiovascular disease, better management of diabetes, and some healthy lifestyle changes contributed to the decline. People with diabetes were less likely to smoke and more likely to be physically active than in the past. Better control of high blood pressure and high cholesterol also may have contributed to improved health. However, obesity levels among people with diabetes continued to increase.\n\"Taking care of your heart through healthy lifestyle choices is making a difference, but Americans continue to die from a disease that can be prevented,\" said Ann Albright, Ph.D., R.D., director of CDC's Division of Diabetes Translation. \"Although the cardiovascular disease death rate for people with diabetes has dropped, it is still twice as high as for adults without diabetes.\"\nPrevious studies have found that rates of heart disease and stroke are declining for all U.S. adults. Those rates are dropping faster for people with diabetes compared to adults without diabetes. Recent CDC studies also have found declining rates of kidney failure, amputation of feet and legs, and hospitalization for heart disease and stroke among people with diabetes.\nBecause people with diabetes are living longer and the rate of new cases being diagnosed is increasing, scientists expect the total number of people with the disease will continue to rise. The number of Americans diagnosed with diabetes has more than tripled since 1980, primarily due to type 2 diabetes, which is closely linked to a rise in obesity, inactivity and older age. CDC estimates that 25.8 million Americans have diabetes, and 7 million of them do not know they have the disease.\nCDC and its partners are working on a variety of initiatives to prevent type 2 diabetes and to reduce its complications. CDC leads the National Diabetes Prevention Program, a public-private partnership designed to bring evidence-based programs for preventing type 2 diabetes to communities. The program supports establishing a network of lifestyle-change classes for overweight or obese people at high risk of developing type 2 diabetes.\n\"Diabetes carries significant personal and financial costs for individuals, their families, and the health care systems that treat them,\" said Edward W. Gregg, Ph.D., the study's lead author and chief of epidemiology and statistics in CDC's Division of Diabetes Translation. \"As the number of people with diabetes increases, it will be more important than ever to manage the disease to reduce complications and premature deaths.\"\nControlling levels of blood sugar (glucose), cholesterol and blood pressure helps people with diabetes reduce the chance of developing serious complications, including heart disease, stroke, blindness and kidney disease.\nIn 2001, the National Diabetes Education Program (NDEP), a joint effort of CDC and NIH with the support of more than 200 partners, developed a campaign to raise awareness of the link between diabetes and heart disease and reinforce the importance of a comprehensive diabetes care plan that focuses on the ABCs of diabetes – A1C (a measure of blood glucose control over a two- to three-month period), Blood pressure and Cholesterol. For more information, visit http://www.yourdiabetesinfo.org/ or call toll-free 1-888-693-NDEP (1-888-693-6337).\nLast year CDC and the Centers for Medicare & Medicaid Services launched Million Hearts, an initiative to prevent 1 million heart attacks and strokes over the next five years. The initiative focuses on two main goals: empowering Americans to make healthy choices and improving care for people, focusing on aspirin for people at risk, blood pressure control, cholesterol management and smoking cessation. More than 2 million heart attacks and strokes occur every year, and treatment for these conditions and other vascular diseases account for about 1 of every 6 health care dollars. Up to 20 percent of deaths from heart attack and 13 percent of deaths from stroke are attributable to diabetes or prediabetes. For more information on Million Hearts, visit http://millionhearts.hhs.gov.\nDiabetes was the seventh leading cause of death in 2009 and is the leading cause of new cases of kidney failure, blindness among adults younger than 75, and amputation of feet and legs not related to injury. People with diagnosed diabetes have medical costs that are more than twice as high as for people without the disease. The total costs of diabetes are an estimated $174 billion annually, including $116 billion in direct medical costs.\nU.S. Department of Health and Human Services\nCDC works 24/7 saving lives, protecting people from health threats, and saving money to have a more secure nation. Whether these threats are chronic or acute, manmade or natural, human error or deliberate attack, global or domestic, CDC is the U.S. health protection agency.\nSOURCE Centers for Disease Control and Prevention (CDC)\nPosted: May 2012"} +{"text": "e kwargs without running the activation\n forward (which needs CUDA + real weights).\n \"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"M*E\")\n with torch.device(\"meta\"):\n model = NemotronHCausalTextModel(text_config)\n\n assert model.has_mamba_layers # routes through the explicit minimal-cache path\n\n captured: dict[str, object] = {}\n\n class _Sentinel(RuntimeError):\n pass\n\n original = model.create_mamba_cache\n\n def _spy(**kwargs: object) -> None:\n captured.update(kwargs)\n raise _Sentinel()\n\n model.create_mamba_cache = _spy # type: ignore[method-assign]\n try:\n with pytest.raises(_Sentinel):\n model.estimate_activation_memory(logits_chunk_size=1)\n finally:\n model.create_mamba_cache = original # type: ignore[method-assign]\n\n assert captured, \"estimate_activation_memory must call create_mamba_cache for hybrid models\"\n assert captured[\"num_snapshots\"] == 0\n assert captured[\"reserve_grammar_buffers\"] is False\n assert isinstance(captured[\"max_batch_size\"], int) and captured[\"max_batch_size\"] >= 1\n\n\nclass _SpyNorm(nn.Module):\n def __init__(self) -> None:\n super().__init__()\n self.seen_x: torch.Tensor | None = None\n self.seen_residual: torch.Tensor | None = None\n\n def forward(self, x: torch.Tensor, *, add_residual: torch.Tensor) -> tuple[torch.Tensor, torch.Tensor]:\n self.seen_x = x\n self.seen_residual = add_residual\n return x + 1, add_residual + 2\n\n\nclass _SpyMixer(nn.Module):\n def __init__(self) -> None:\n super().__init__()\n self.args: tuple[object, ...] | None = None\n\n def forward(self, *args: object) -> torch.Tensor:\n self.args = args\n x = args[0]\n assert isinstance(x, torch.Tensor)\n return x + 3\n\n\n@pytest.mark.parametrize(\n (\"layer_index\", \"uses_meta\"),\n [\n (0, True),\n (1, True),\n (2, False),\n ],\n)\ndef test_decoder_layers_use_single_prenorm_mixer_topology(layer_index: int, uses_meta: bool) -> None:\n \"\"\"Mamba, attention, and MoE layers share the single-mixer pre-norm contract.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"M*E\")\n layer = NemotronH(cfg).layers[layer_index]\n norm = _SpyNorm()\n mixer = _SpyMixer()\n layer.norm = norm\n layer.mixer = mixer\n\n x = torch.arange(cfg.n_embd, dtype=torch.float32).view(1, cfg.n_embd)\n residual = torch.ones_like(x)\n meta = object()\n\n out, new_residual = layer(x, residual, meta) # type: ignore[arg-type]\n\n torch.testing.assert_close(norm.seen_x, x)\n torch.testing.assert_close(norm.seen_residual, residual)\n assert mixer.args is not None\n torch.testing.assert_close(mixer.args[0], x + 1)\n assert (len(mixer.args) == 2) == uses_meta\n if uses_meta:\n assert mixer.args[1] is meta\n torch.testing.assert_close(out, x + 4)\n torch.testing.assert_close(new_residual, residual + 2)\n\n\ndef test_moe_router_uses_sigmoid_topk_correction_bias_in_fp32() -> None:\n \"\"\"A gate_fp32 MoE feeds the NoauxTc score processor fp32 router logits (so grouped top-k is\n computed in fp32), and selection still honors the correction bias.\n\n Routes through the MoE (not the score processor directly) and spies on the dtype the processor\n actually receives. The fp32 logits come from the gate matmul itself (gate_fp32=True ->\n run_gate computes in fp32), not from a post-hoc upcast: a bf16-gate model (e.g. Kimi-Linear)\n intentionally routes on bf16 to match its reference, so forcing an upcast here would be wrong.\n \"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"E\",\n n_embd=4,\n n_routed_experts=2,\n n_shared_experts=0,\n num_experts_per_tok=1,\n moe_intermediate_size=4,\n moe_latent_size=None,\n norm_topk_prob=False,\n )\n moe = NemotronH(cfg).layers[0].mixer\n score_processor = moe.gate.score_processor\n assert score_processor.requires_fp32_gate_output\n # bf16 expert weights + gate_fp32 makes the fp32-gate path observable: run_gate upcasts the\n # bf16 gate weight/input to fp32 for the matmul (mirrors Nemotron-H's precision.gate=fp32),\n # so the score processor must receive fp32 logits even though the weights are bf16.\n moe.experts.to(torch.bfloat16)\n moe.experts.gate_fp32 = True\n assert moe.experts.gate_weight.dtype == torch.bfloat16\n with torch.no_grad():\n # Zero gate logits + correction bias [0, 10] so the bias alone drives selection (expert 1).\n moe.experts.gate_weight.zero_()\n score_processor.e_score_correction_bias.copy_(torch.tensor([0.0, 10.0]))\n\n seen: dict[str, object] = {}\n original_forward = score_processor.forward\n\n def spy_forward(scores: torch.Tensor, *args, **kwargs):\n seen[\"scores_dtype\"] = scores.dtype\n weights, indices = original_forward(scores, *args, **kwargs)\n seen[\"indices\"] = indices\n return weights, indices\n\n score_processor.forward = spy_"} +{"text": "Traumatic Brain Injuries Linked to Long-Term Health Issues for Iraq Vets\nTHURSDAY Dec. 4, 2008 -- A new report provides evidence linking traumatic brain injury sustained by troops in combat in Iraq and Afghanistan to a variety of long-term health problems including dementia, aggression, depression and symptoms similar to those seen in Parkinson's disease.\nBut the Institute of Medicine committee charged with developing the report also pointed to a troubling lack of scientific data on such injuries, which are fairly recent in the history of warfare.\n\"The real bottom line significant finding is that there's not a good human literature on the kinds of neurotrauma seen in Iraq and Afghanistan caused by blasts,\" said Dr. George W. Rutherford, vice chair of the department of epidemiology and biostatistics at the University of California, San Francisco, School of Medicine. \"The human literature is really about people who've had [brain injury] from car crashes or falling down stairs and, in the military, from shrapnel or gunshots. We're all worried that blast neurotrauma hasn't really made it into the human literature.\"\nThis makes it difficult, if not impossible, to anticipate and hopefully mitigate the long-term consequences of such injuries, added Rutherford, who chaired the committee that wrote the report.\n\"They focused on blast-induced neurotrauma, a blast injury that leaves the head without any external marks of even being knocked about,\" explained Keith Young, vice chair for research at Texas A&M Health Science Center College of Medicine and Neuroimaging and Genetics Core Leader for the VA Center of Excellence for Research on Returning War Veterans. \"The blast is so close and so large, it seems to be shaking the brain. My guess is that this causes micro-bleeds,\" Young said.\nThe current U.S. conflicts in Afghanistan and Iraq, which have been ongoing since Oct. 7, 2001 and March 2003, respectively, differ vastly from previous combat deployments in terms of injuries sustained. They differ even from injuries seen in the 1991 war, with more deaths, multiple traumas and more traumatic brain injuries (TBI).\nBlast injuries are considered the \"signature\" wound of the Iraq war and are largely a result of newer, more powerful explosive devices.\n\"One cause of the high rates of TBI is relatively simple: survival,\" Young said. \"The reason more people are surviving is better on-the-scene treatment and medivacing to facilities within minutes rather than hours.\"\nAccording to the Department of Defense (DOD), more than 5,500 soldiers had suffered TBIs as of January 2008, accounting for about 22 percent of all casualties, as compared with only 12 percent to 14 percent of all combat casualties during the Vietnam War.\nIn an effort to detail the long-term consequences of TBI, the committee looked at almost 2,000 studies on the subject.\nThe committee found evidence of a causal relationship between penetrating TBI and unprovoked seizures as well as death, and between severe or moderate TBI with unprovoked seizures.\nThere was \"sufficient\" evidence of an association between TBI and decline in neurocognitive function, long-term unemployment and problems with social relationships; Alzheimer's-like dementia, endocrine dysfunction, depression, aggressive behavior, memory problems and early death.\nThere was \"limited/suggestive\" evidence of an association between moderate or severe TBI and diabetes or psychosis; and between mild TBI and visual problems, dementia, post-traumatic stress disorder and suicide.\n\"Inadequate/insufficient\" evidence existed on the relationship between moderate or severe TBI and brain tumors; mild TBI and employment and social functioning problems, bipolar disorder or attempted suicide; TBI and multiple sclerosis or amyotrophic lateral sclerosis (Lou Gehrig's disease).\nThe committee put forth a number of recommendations.\n\"Three of the recommendations are really directed towards the DOD and the VA about how to keep track of this stuff so people in the future can put registries together,\" Rutherford said. \"Once you know that, you can start answering questions, are five of these five times as bad as one, what's the long-term risk of any bad outcome.\"\nView the full report at the U.S. National Academies of Science.\nPosted: December 2008"} +{"text": "How to Find the Limit of a Function Algebraically\nWhen your pre-calculus teacher asks you to find the limit of a function algebraically, you have four techniques to choose from: plugging in the x value, factoring, rationalizing the numerator, and finding the lowest common denominator.\nThe best place to start is the first technique. You may only use this technique if the function is continuous at the x value at which you are taking the limit. If the function is undefined at this x value, you must move on to the other techniques to simplify your function so that you can plug in the approached value for x.\nFind the limit by plugging in the x value\nThe first technique for algebraically solving for a limit is to plug the number that x is approaching into the function. If you get an undefined value (0 in the denominator), you must move on to another technique. But if your function is continuous at that x value, you will get a value, and you're done; you've found your limit! For example, with this method you can find this limit:\nThe limit is 3, because f(5) = 3 and this function is continuous at x = 5.\nFind the limit by factoring\nFactoring is the method to try when plugging in fails — especially when any part of the given function is a polynomial expression.\nSay you're asked to find this limit:\nYou first try to plug 4 into the function, and you get 0 in the numerator and the denominator, which tells you to move on to the next technique. The quadratic expression in the numerator screams for you to try factoring it. Notice that the numerator of the previous function factors to (x – 4)(x – 2). The x – 4 cancels on the top and the bottom of the fraction. This step leaves you with f(x) = x – 2. You can plug 4 into this continuous function to get 2.\nIf you graph this function, it looks like the straight line f(x) = x – 2, but it has a hole when x = 4 because the original function is still undefined there (because it creates 0 in the denominator). The figure illustrates this.\nIf, after you've factored the top and bottom of the fraction, a term in the denominator didn't cancel and the value that you're looking for is undefined, the limit of the function at that value of x does not exist (which you can write as DNE).\nFor example, this function factors as shown:\nThe (x – 7) on the top and bottom cancel. So if you're asked to find the limit of the function as x approaches 7, you could plug 7 into the cancelled version and get 11/8. But if you're trying to find\nthe limit DNE, because you'd get 0 on the denominator. This function, therefore, has a limit anywhere except as x approaches –1.\nFind the limit by rationalizing the numerator\nThe third technique you need to know to find limits algebraically requires you to rationalize the numerator. Functions that require this method have a square root in the numerator and a polynomial expression in the denominator. For example, say you're asked to find the limit of this function as x approaches 13:\nPlugging in numbers fails when you get 0 in the denominator of the fraction. Factoring fails because the equation has no polynomial to factor. In this situation, if you multiply the numerator and denominator by the conjugate of the numerator, the term in the denominator that was a problem cancels out, and you'll be able to find the limit:\nMultiply the top and bottom of the fraction by the conjugate.\nThe conjugate of the numerator is\nMultiplying through, you get this setup:\nFOIL the numerator to get\nwhich simplifies to x – 13 (the middle two terms cancel and you combine like terms from the FOIL).\nCanceling gives you this expression:\nThe (x – 13) terms cancel, leaving you with this result:\nCalculate the limits.\nWhen you plug 13 into the function, you get 1/6, which is the limit.\nFind the limit by finding the lowest common denominator\nWhen you're given a complex rational function, you use the fourth and final algebraic limit-finding technique. The technique of plugging fails, because you end up with a 0 in one of the denominators. The function isn't factorable, and you have no square roots to rationalize. Therefore, you know to move on to the last technique. With this method, you combine the functions by finding the least common denominator (LCD). The terms cancel, at which point you can find the limit.\nFor example, follow the steps to find the limit:\nFind the LCD of the fractions on the top.\nDistribute the numerators on the top.\nAdd or subtract the numerators and then cancel terms.\nSubtracting the numerators gives you\nwhich then simplifies to\nUse the rules for fractions to simplify further.\nSubstitute the limit value into this function and simplify.\nYou want to find the limit as x approaches 0, so the limit here is –1/36."} +{"text": "forward # type: ignore[method-assign]\n\n moe.experts.prepare_for_inference()\n moe(torch.randn(3, cfg.n_embd, dtype=torch.bfloat16))\n\n # gate_fp32 produced fp32 router logits for scoring, and the correction bias selected expert 1.\n assert seen[\"scores_dtype\"] == torch.float32\n assert torch.equal(seen[\"indices\"], torch.ones_like(seen[\"indices\"])) # type: ignore[arg-type]\n\n\ndef test_text_model_gate_precision_controls_router_weight_dtype() -> None:\n \"\"\"Router weights are materialized once in configured gate precision.\"\"\"\n bf16_config = _make_text_config(hybrid_override_pattern=\"E\")\n fp32_config = _make_text_config(hybrid_override_pattern=\"E\")\n fp32_config.precision.gate = firenn.GateDType.fp32\n\n bf16_moe = NemotronHCausalTextModel(bf16_config).layers[0].mixer\n fp32_moe = NemotronHCausalTextModel(fp32_config).layers[0].mixer\n\n assert bf16_moe.experts.gate_weight.dtype == torch.bfloat16\n assert bf16_moe.gate.score_processor.e_score_correction_bias.dtype == torch.bfloat16\n assert fp32_moe.experts.gate_weight.dtype == torch.float32\n assert fp32_moe.gate.score_processor.e_score_correction_bias.dtype == torch.float32\n\n\n# ---------------------------------------------------------------------------\n# Precision policy + conversion\n# ---------------------------------------------------------------------------\n\n\ndef _make_moe_text_config() -> NemotronHTextConfig:\n return _make_text_config(\n hybrid_override_pattern=\"E\",\n n_embd=4,\n n_routed_experts=2,\n n_shared_experts=1,\n num_experts_per_tok=1,\n moe_intermediate_size=4,\n moe_latent_size=None,\n norm_topk_prob=False,\n )\n\n\ndef test_default_precision_bf16_is_baseline() -> None:\n cfg = _make_moe_text_config()\n precision = NemotronHCausalTextModel.default_precision(\"bf16\", cfg)\n\n assert precision.matmul == firenn.MatmulDType.bf16\n assert precision.moe == firenn.MoEDType.bf16\n assert precision.kv_cache == firenn.KVCacheDType.bf16\n assert precision.activation == firenn.ActivationDType.bf16\n # Recurrent Mamba state stays fp32 regardless of weight precision.\n assert precision.mamba_state == firenn.MambaStateDType.fp32\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"fp8 MoE precision construction requires a GPU platform\")\ndef test_default_precision_fp8_quantizes_only_moe_keeps_dense_bf16() -> None:\n cfg = _make_moe_text_config()\n precision = NemotronHCausalTextModel.default_precision(\"fp8\", cfg)\n\n # Dense paths (attention / mamba / dense MLP) stay bf16; only experts quantize.\n assert precision.matmul == firenn.MatmulDType.bf16\n assert precision.qkv == firenn.MatmulDType.bf16\n assert precision.moe != firenn.MoEDType.bf16\n assert precision.mamba_state == firenn.MambaStateDType.fp32\n\n\ndef test_get_supported_precisions_lists_quantized_modes() -> None:\n model = NemotronHCausalTextModel(_make_moe_text_config())\n # fp8 (mxfp8) is near-lossless PTQ; fp4 (nvfp4) needs calibration / native checkpoint.\n assert model.get_supported_precisions == [\"fp8\"]\n assert model.get_supported_precisions_with_calibration == [\"fp4\"]\n\n\ndef test_expert_matmul_from_moe_maps_per_linear_dtypes() -> None:\n f = NemotronHCausalTextModel._expert_matmul_from_moe\n assert f(firenn.MoEDType.bf16) == firenn.MatmulDType.bf16\n assert f(firenn.MoEDType.fp8) == firenn.MatmulDType.fp8\n # ROCm default_precision(\"fp8\") routes MoE to bw128fp8_aiter; per-expert loop uses bw128fp8 linears.\n assert f(firenn.MoEDType.bw128fp8_aiter) == firenn.MatmulDType.bw128fp8\n assert f(firenn.MoEDType.mxfp8) == firenn.MatmulDType.mxfp8\n assert f(firenn.MoEDType.nvfp4) == firenn.MatmulDType.nvfp4\n\n\ndef test_expert_matmul_from_moe_rejects_fused_only_dtype() -> None:\n # mxfp8_mxfp4 is a fused-MoE-only layout; the ungated relu² loop has no per-linear path.\n with pytest.raises(ValueError, match=\"fused\"):\n NemotronHCausalTextModel._expert_matmul_from_moe(firenn.MoEDType.mxfp8_mxfp4)\n\n\ndef test_convert_bf16_leaves_experts_unquantized() -> None:\n from fireworks.nn.moe.fused_moe import FusedMoE\n\n model = NemotronHCausalTextModel(_make_moe_text_config())\n experts = model.layers[0].mixer.experts\n assert isinstance(experts, FusedMoE)\n assert experts.ungated\n weight_cls = type(experts.up_proj_weights_list[0])\n\n model.convert(NemotronHCausalTextModel.default_precision(\"bf16\", model.text_config))\n\n # bf16 conversion is a no-op on the fused experts; weights keep their original class.\n experts = model.layers[0].mixer.experts\n assert isinstance(experts, FusedMoE)\n assert type(experts.up_proj_weights_list[0]) is weight_cls\n\n\ndef test_convert_handles_split_mamba_in_proj() -> None:\n \"\"\"convert() runs _convert_block on every layer including Mamba; the packed\n in_proj was split into z/xBC/dt for TP, so _convert_block must convert the\n split sections (regression: it referenced the removed mixer.in_proj).\"\"\"\n text_config "} +{"text": "The Hardware Needed for Basic Ethernet Networks\nFollowing are the basic hardware requirements of any small Ethernet network. One benefit of Ethernet networks is their simplicity. You don’t need a degree in Advanced Thakamology to install your network, and (because today’s PCs come equipped with built-in Ethernet ports) you can put four PCs in a simple Ethernet network for the cost of a few cables.\nCables for an Ethernet network\nTwo different kinds of cabling connect computer to computer (or computer to network device):\nCoaxial (coax): The same type of cable that’s used to connect your TV to your cable box. Coax is thick stuff and not easily routed or hidden. Also, each end of a coax Ethernet network must have a terminator to mark the end of the network circuit, which is a hassle (a small one, granted, but a hassle nonetheless).\nTwisted pair: Looks almost exactly like telephone wire or the cable that runs between a PC’s dialup modem and the telephone wall jack. Twisted pair is easier to hide and much easier to route.\nThe downside to using a twisted pair Ethernet network is that you need a switch, which acts as a central connection point. However, twisted pair cabling is much cheaper overall than coaxial cable.\nIf you would rather eschew cables altogether (well, almost altogether), consider a wireless network. Although it’s a bit slower, you have freedom of movement undreamed of by the wired crowd. Heck, you could even throw caution utterly to the wind and get a wireless switch or router that can provide both wired and wireless connections. (In fact, alternative wired networks can use your home or office’s existing telephone or AC power lines. No, really!)\nSwitches for an Ethernet network\nA switch is essentially just an overgrown connection box, linking (via cabling) each computer on your network to all other network computers and peripherals, like a printer. It’s about as visually interesting as a shoebox. On the inside, a switch prevents dastardly collisions; a switch narrows the broadcast of a packet to only the PC that needs it.\nMost Internet sharing devices and routers designed to work with broadband connections have built-in switches — just keep in mind that you need some sort of switch for a twisted pair network. Switches are pretty inexpensive — how much you pay depends on how many ports the switch provides, ranging from about $50–$200 US.\nSwitches have virtually replaced the earlier, less-efficient Ethernet hub. Always choose a switch over an Ethernet hub.\nNetwork interface cards (NICs) for Ethernet networks\nYou need a network interface card (NIC) for each computer on your network. If your desktop or laptop PC doesn’t have a built-in NIC, an internal adapter card is probably the best choice, but installing a NIC doesn’t necessarily have to involve opening your PC’s case.\nYou can get a Personal Computer Memory Card International Association (PCMCIA; or PC Card) NIC for your laptop, and other network adapters can be connected through a Universal Serial Bus (USB) port. However, you probably don’t need to buy a separate NIC for your PC because virtually all PCs now include built-in network connectors. (Check your PC’s manual or look for a port labeled Ethernet 10/100 or Network on the back of the computer.)\nNICs are rated by the speed of the network. Most home networks use a 10/100 NIC (which means that your network can operate at either 10 Mbps or 100 Mbps), which sets you back about $25–$30 US. The third speed — Gigabit Ethernet — runs at a whopping 1000 Mbps, but you might not need that much throughput unless you regularly transfer huge multigigabyte files betwixt computers.\n(Gigabit hardware used to be as expensive as a meeting with a good lawyer, but prices for this faster equipment are now on a par with 10/100 hardware.) Well-known Ethernet device manufacturers include D-Link, NETGEAR, and Linksys.\nWhen shopping for your card, check the manufacturer’s website and verify the drivers the card uses. The card should support at least Windows XP, Vista, and 7/8. Also, check how often those drivers are updated; a two-year-old driver is not a good sign. In general, most manufacturers display certification statements (both on the box and on the company’s website) guaranteeing that a NIC will work with specific operating systems."} +{"text": "Within our lifetimes we've marveled as biologists have managed to look at ever smaller and smaller things;\nIntimate science fiction films are few and far between, and that Another Earth exists at all is a testament to the talents of director Mike Cahill and actress Brit Marling. Another Earth uses a newly discovered planet as a catalyst for its heroine to make amends for taking the lives of two strangers. The first of two films about rogue planets to hit this year - the other being Lars von Trier's haunting Melancholia - Another Earth skillfully mixes heavy drama with sci-fi undertones to craft a satisfying tale of redemption.\nHigh school senior Rhoda Williams (Marling) celebrates her acceptance to MIT on the night that a new planet first can be seen from earth. Rhoda's dreams and the lives of three people are destroyed when she drunkenly plows into the front of a BMW. The father (William Mapother), a musician and college professor, is comatose for days; his wife and child die at the scene. After four years in prison, Rhoda returns to her family and begins working as a janitor at a local school. The planet, called Earth 2, is now a brilliant mirror image of our own planet and hangs prominently in the sky.\nMarling, who is most known for Boxers and Ballerinas, a documentary she co-wrote with Cahill, plays Rhoda with beautiful, open acceptance of the pain she has caused Mapother's John Burroughs, who now lives in squalor in his decaying farmhouse. Rhoda goes to the house to apologize but instead pretends to be a maid and offers to clean up his mess. She makes a habit out of the job, and becomes close to John, who does not know Rhoda's secret because she was a minor at the time of the accident. Contact is eventually made with Earth 2, and it is discovered that life there is some alternate version of life on Earth.\nShot for only $200,000, Another Earth is impressively polished, with a pulsating soundtrack from Fall on Your Sword. The science fiction themes subtly bolster the central conflict, and it all comes together remarkably well. What better way for Rhoda and John to find peace than in the promise of an Earth 2 self that never had to experience such pain and loss? It sounds bizarre, but Cahill keeps the action so focused that Another Earth never loses its way amid celestial posturing. Instead, it is content to hint at its heritage, as in the scene where John plays an alien invasion-esque melody by taking bow to saw.\nMapother and Marling carry Another Earth on their shoulders, but are assisted by a tight, Spartan script. Only in one moment of release did Rhoda's actions feel phony, and Marling walks the fine line between punishing herself for past misdeeds and looking toward a brighter future. Another Earth asks many questions but provides few answers, and I suspect some will not love its final note. Another Earth is a rare wisp of science-fiction poetry, and such a unique film deserves to be seen.\nAnother Earth was shot in 720p on a shoestring budget, but the Blu-ray's 1.85:1/1080p/AVC-encoded transfer has some impressive moments. The film's digital origins lead to some life-like detail, especially in close-ups. Marling's blue eyes sparkle, and the confines of John's home are deep and clear. Of course, noise can be heavy, especially in outdoor scenes, and crush runs rampant in a few darker shots. There is also some aliasing and jagged edges, but the bold, blue-tinged color scheme is impressive.\nThe film's 5.1 DTS-HD Master Audio soundtrack is perfectly serviceable if not especially immersive. Dialogue is clear and balanced well with the film's rhythmic score. Ambient effects are present but only occasionally wind up in the rear and surround speakers. The LFE kicks in during a party and a couple of more jolting scenes, but this is a somewhat subdued mix. An English DVS track is also available, as are English SDH, Spanish and French subtitles.\nPACKAGING AND EXTRAS:\nAnother Earth arrives as a 3-disc set from Fox that includes the Blu-ray, a DVD copy of the film and a digital copy disc. A slipcover that replicates the striking cover art wraps the hinged Blu-ray case.\nThe extra features are not nearly as impressive as they first appear. The music video for \"The First Time I Saw Jupiter\" by Fall on Your Sword (3:19/HD) is an interesting mashup of images set to a pulsating club track. In the deleted scenes (9:20/HD), viewers get a glimpse of Rhoda's concerned parents and some unused effects footage. Fox Movie Channel Presents: Direct Effect with Mike Cahill (4:17/SD) is a short piece about the director in which he reveals the challenges of shooting with almost no budget. Fox Movie Channel Presents: In Character with Brit Marling (4:22/SD) features a few remarks from the actress about her role in the film, and Mapother also discusses his character in Fox Movie Channel Presents: In Character with William Mapother (4:22/SD). The Science Behind Another Earth (2:39/HD) provides no useful information despite the input from an astrophysicist, and Creating Another Earth (2:29/HD) is too short to cover much ground. The extras conclude with the film's theatrical trailer, a blurb on the soundtrack and a sneak peak of Atlas Shrugged: Part I.\nWhile it is not the only film about a newly discovered planet to be released in 2011, Another Earth is a uniquely haunting drama with science fiction elements running through its veins. Actress Brit Marling shines as a young woman trying to make amends for the terrible mistake that sent the life of William Mapother's college professor into a downward spiral. Director Mike Cahill's film is moving and accomplished, and deserves to be seen on Blu-ray. Highly Recommended."} +{"text": "= NemotronHTextConfig(base=_make_config(hybrid_override_pattern=\"M*E\", head_dim=64))\n model = NemotronHCausalTextModel(text_config)\n # Previously raised: 'Mamba2' object has no attribute 'in_proj'.\n model.convert(NemotronHCausalTextModel.default_precision(\"bf16\", model.text_config))\n mamba = next(layer.mixer for layer in model.layers if isinstance(layer, NemotronHMambaDecoderLayer))\n assert hasattr(mamba, \"in_proj_z\")\n assert hasattr(mamba, \"in_proj_xBC\")\n assert hasattr(mamba, \"in_proj_dt\")\n assert not hasattr(mamba, \"in_proj\")\n\n\ndef test_fused_relu2_moe_dtype_maps_supported_and_rejects_unsupported() -> None:\n f = NemotronHCausalTextModel._fused_relu2_moe_dtype\n # Pure mxfp8 is forced to the low-latency trtllm fp8 path (non-LL relu² epilogue absent).\n assert f(firenn.MoEDType.mxfp8) == firenn.MoEDType.mxfp8_ll\n assert f(firenn.MoEDType.mxfp8_ll) == firenn.MoEDType.mxfp8_ll\n assert f(firenn.MoEDType.nvfp4) == firenn.MoEDType.nvfp4\n # A fused MoE dtype without an ungated relu² kernel path fails fast.\n with pytest.raises(NotImplementedError, match=\"not wired\"):\n f(firenn.MoEDType.bw128fp8)\n\n\ndef test_sharding_spec_attention_and_dense_moe() -> None:\n \"\"\"Attention head-parallel + dense MLP / shared-expert specs; gate stays replicated.\"\"\"\n model = NemotronHCausalTextModel(_make_moe_text_config())\n layers = model.sharding_spec.layers\n\n assert \"o_proj\" in layers\n assert \"up_proj\" in layers\n assert \"down_proj\" in layers\n # Router gate is replicated (decoupled) -> never in the per-linear shard spec.\n assert \"gate\" not in layers\n assert \"weight\" not in layers\n\n\ndef test_sharding_spec_replicates_latent_projections() -> None:\n \"\"\"LatentMoE (Super) projections stay replicated, not sharded: the decoupled router\n runs full-dim and the experts consume the full latent, so sharding fc1/fc2_latent_proj\n would collapse the token dim by world_size. They must be absent from the per-linear spec.\"\"\"\n text_config = _make_text_config(\n hybrid_override_pattern=\"E\",\n n_embd=4,\n n_routed_experts=2,\n num_experts_per_tok=1,\n moe_intermediate_size=4,\n moe_latent_size=2,\n norm_topk_prob=False,\n )\n layers = NemotronHCausalTextModel(text_config).sharding_spec.layers\n assert \"fc1_latent_proj\" not in layers\n assert \"fc2_latent_proj\" not in layers\n\n\ndef test_shard_swaps_attention_and_moe_to_local_shapes() -> None:\n \"\"\"Head-parallel attention + expert-parallel MoE swap to sharded modules (meta, single-process).\"\"\"\n import fireworks.nn.shard as fireshard\n from fireworks.nn.moe.sharded_fused_moe import ShardedFusedMoE\n\n base_cfg = _make_config(\n hybrid_override_pattern=\"*E\",\n n_head=4,\n n_head_kv=2,\n head_dim=8,\n n_embd=32,\n n_routed_experts=8,\n num_experts_per_tok=2,\n moe_intermediate_size=16,\n moe_latent_size=None,\n n_shared_experts=0,\n norm_topk_prob=False,\n )\n assert isinstance(base_cfg, NemotronHConfig)\n text_config = NemotronHTextConfig(base=base_cfg)\n sharding = fireshard.ShardingConfig(\n rank=0,\n world_size=2,\n attn_sharding_type=fireshard.AttentionShardType.HEAD_PARALLEL,\n moe_sharding_type=fireshard.MoEShardPolicy.EXPERT_PARALLEL,\n )\n\n with torch.device(\"meta\"):\n model = NemotronHCausalTextModel(text_config)\n model.shard(sharding=sharding)\n\n moe = next(l.mixer for l in model.layers if isinstance(l, NemotronHMoEDecoderLayer))\n assert isinstance(moe.experts, ShardedFusedMoE)\n # Expert-parallel: each rank holds num_experts // world_size local experts.\n assert moe.experts.up_proj_weights_list.shape[0] == 8 // 2\n\n\ndef test_shard_swaps_mamba_to_local_shapes() -> None:\n \"\"\"Mamba-2 TP: in_proj sections / conv1d / head-params / norm shard to local shapes (meta).\"\"\"\n import fireworks.nn.shard as fireshard\n\n nheads, head_dim, ngroups, d_state = 4, 8, 2, 4\n d_inner = nheads * head_dim\n gstate = ngroups * d_state\n conv_dim = d_inner + 2 * gstate\n\n base_cfg = _make_config(\n hybrid_override_pattern=\"M*\", # one Mamba, one attention\n n_head=4,\n n_head_kv=2,\n head_dim=8,\n n_embd=32,\n mamba_num_heads=nheads,\n mamba_head_dim=head_dim,\n n_groups=ngroups,\n ssm_state_size=d_state,\n )\n assert isinstance(base_cfg, NemotronHConfig)\n text_config = NemotronHTextConfig(base=base_cfg)\n sharding = fireshard.ShardingConfig(\n rank=0,\n world_size=2,\n attn_sharding_type=fireshard.AttentionShardType.HEAD_PARALLEL,\n )\n\n with torch.device(\"meta\"):\n model = NemotronHCausalTextModel(text_config)\n model.shard(sharding=sharding)\n\n mamba = next(l.mixer for l in model.layers if isinstance(l, NemotronHMambaDecoderLayer))\n W = 2\n # in_proj sections: z (heads), xBC (x heads + B/C groups), dt (heads); conv shares xBC layout.\n asse"} +{"text": "Whether it is in Forgetting Sarah Marshall or How I Met your Mother, Jason Segel seemingly portrays a guy who is a bit of an oaf, though he does have a sensitive side that can be charming. He eschews most of these facades in Jeff Who Lives At Home in what is a welcome departure for him and others.\nThe film was written and directed by Jay and Mark Duplass, in a follow-up to their 2010 breakout success Cyrus. Segel plays the title character, a 30 year old that smokes weed and lives in his mother's basement most of the time. He tends to live his life believing in the overall cosmic significance of even the most trivial matters. We see it in the opening titles which \"borrow\" from a quote of his, we hear it as he discusses his appreciation for the larger themes in the film Signs. His mother Sharon (Susan Sarandon, Dead Man Walking) works and calls to remind him to get on the bus and go to Home Depot to get some supplies to fix a shutter. Before he goes however, he gets a phone call, a wrong number from someone asking for a 'Kevin.' While making his errand to Home Depot he sees a Kevin on the bus, and thus starts a journey for him that takes him away from his goal and more towards seeking out the importance of Kevin in his life. Along the way, he runs into his older brother Pat (Ed Helms, The Hangover), who does not share his brother's belief set, yet they somehow accidentally spend a day together.\nSegel eschews the sensitivity to a degree for a sense of inner peace that, as the film goes on, becomes engaging. It is easy to dismiss his thoughts of the larger meaning of a wrong number phone call, but the more the story evolves, the more we realize that Jeff's trust in his 'muddled' thinking may make him the most normal among his family. And he does all of this while serving as a mirror for those around him, both direct and indirect. Pat is in a dysfunction relationship with Linda (Judy Greer, Archer), and as we discover more about what their relationship is, we learn a bit about Pat as well, and Pat has some clarifying moments with Jeff. Sharon is in a different situation. She has this unemployed stoner son still living with her, her husband (their father) has long since died and her life is a lonely one. She gets a moment where an anonymous coworker sends her an instant message proclaiming their secret admiration, and this feeling of value is something that pleases and confuses her. Sarandon's role, while not as direct an interaction with Segel, proves to be an intriguing and charming performance.\nWhat surprised me about Jeff the most may be the comfort in telling the story that the Suplass brothers seem to have. At first glance seeing that the film has an 82-minute runtime, my concern was the film may be shoddily told and the performances would be sloppy. To my amazement, the brothers have a confidence in the story that allows it to be devoid of filler that would stretch it into 20 more minutes that could wind up being tedious. The boys are so confident that they include an ending that flirts with being a little Altman-esque in terms of aspiration. However, within the scope of who Jeff is (and to a degree who Pat and Sharon are evolving into), it seems to work. You roll with it, and even shed a tear or two unabashedly.\nIf one were to expand Jeff's mentality into the world, it's that he is a Buddhist rock of sorts, tossed into the water, and Pat and Sharon feel the waves in varying degrees. Segel combines this peace with some flashes of comic timing (some of the scenes with Helms rival the best work that either have done recently), and Jeff Who Lives At Home proves to be a fruitful, funny and touching experience, and certainly should reinforce to those that aren't familiar that Jay and Mark Duplass' work deserves a bigger place at the cinematic table, and helps show us another side of Segel that would be nice to revisit in the future.The Blu-ray Disc:\nParamount displays Jeff in an AVC encoded 1.85:1 high-definition presentation that looks quite good. The brothers Suplass along with their cinematographer Jas Shelton tend to employ handheld shots for most of their work, with some occasional quick close-ups on the characters during a scene. The disc handles this sudden action well and image detail is abundant on the actors in both facial hair and pores, with some finer fabric textures being discernible. The exteriors also possess solid detail and clarity with black levels remaining solid through the feature and the color palette looking accurate to boot. I was not sure what to expect from the disc but I liked what I saw.The Sound:\nA DTS-HD Master Audio lossless 5.1 surround track rules the day for the film, and the overall result is also better than I was expecting. Dialogue sounds strong and consistent through the film, and a more surprising part was how much low-end activity that occurred through the film, ranging from the bass of rap music to the thud of a Porsche Boxster into a tree. The chirp of a tripped fire alarm from the rear channels makes for a jarring yet effective experience and the soundtrack itself is understated in its immersion. Paramount has certainly done Jeff Who Lives At Home justice in high-definition.Extras:\nAn Ultraviolet copy of the film for streaming, but nothing else. While it is a rule of thumb for me to bitch about an average film having minimal extras, this film is better than most and has none. Nerts to Paramount.Final Thoughts:\nJeff Who Lives At Home not only shows us another side of Jason Segel that we have not seen before (and should see more of), but we get a film that is emotional and funny that go beyond his work. Technically the film proves to be a pleasant work to look and listen to, though the lack of extras for the disc (not even a commentary?) really hold it back from being a library keeper. That said, seek it out at your best opportunity for one of the nicer films to come out this year so far."} +{"text": "To the Editor\nRe: Who is telling kids to avoid engineering?\nAs I read this thread three related but distinct issues are apparent:\n1) The impact of outsourcing on the engineering labor market\n2) The impact of H1-B visas on the engineering labor market\n3) Should America's brightest prospects be encouraged to pursue engineering?\n1) The engineering labor market has expanded globally. It is inevitable that the extra supply of labor will push down the median compensation of engineers in the developed world. This will occur regardless of government action. Companies must find the lowest cost method available to develop their products or they will lose in the marketplace.\nSome professions, like law, have long shielded themselves from competition by forming trade associations that require membership to practice. Unlike lawyers, it is impractical for engineers to form a trade association that wields much power. Law is defined by a government presiding over a certain geography. This has historically limited the ability of law firms to move their operations elsewhere. The licensed practice of medicine also has a geographical limitation. Civilian engineering work has never faced that fundamental restriction and the possibility of outsourcing is not a new development. It has just been facilitated by post cold war politics, improving education in developing countries, and the low cost of IT.\n2) Since government in a free market economy has little control over corporate operations, the question that arises is how to maintain technological expertise when the global labor market is reducing the compensation of your engineers. Your homegrown talent increasingly faces more attractive options in other fields, such as the law and medicine. To force better compensation for engineers will only drive jobs out of your country. Why not leverage the assets that you have? In exchange for working here at a globally competitive wage, offer residency and potential citizenship in a country that people risk their lives just to reach.\nFrom the government's perspective, the visa program is a good deal, producing talented workers that we didn't spend any tax money on to educate. The H1-B visa program is a tool the government uses to keep engineering relevant in the U.S. By introducing skilled labor in the U.S., more work remains here. Some will argue that it suppresses salaries or costs jobs, but I believe that the labor market is so globalized that the impact of H1-B workers on wages is insignificant relative to the competition of engineers overseas.\nYes, there are there many unemployed engineers today. Yes, many of them would accept a lower wage to get back to work. However, change in the technology industry is rapid. A lot of companies are unwilling to invest in training someone when a person with the right skills is available. Government should encourage this investment, but it should not mandate it. Doing so will only drive more work into lower cost and even less regulated labor markets. The easy recruiting of qualified candidates has become essential to the technology economy in the U.S.\n3) Given the competitiveness of the global engineering workforce, I will likely discourage my children from pursuing a career in engineering. In the end it will be their decision. My advice will be that there are many benefits to an engineering education, the academic rigor is proof of ability and it can be used as a background for a business or legal career. If you have a very deep passion for the field, than an engineering career is still a worthwhile pursuit. Engineering remains an area ripe for entrepreneurship and there will always be jobs for the best scientists and engineers no matter what they cost. However to be merely a good engineer may leave you unemployed in the middle of your career, with a narrow set of skills that nobody wants. Of course you can pick up and start over, but why bother with the risk when there are so many other great options?\nEE Times welcomes letters to the editor but reserves the right to edit for length and relevance. Please send them to email@example.com, firstname.lastname@example.org and email@example.com. Please also address them as \"Letter to the Editor,\" indicating that they are intended for publication."} +{"text": "rt mamba.in_proj_z.weight.shape[0] == d_inner // W\n assert mamba.in_proj_dt.weight.shape[0] == nheads // W\n assert mamba.in_proj_xBC.weight.shape[0] == conv_dim // W\n assert mamba.conv1d.weight.shape[0] == conv_dim // W\n # head-params + gated-norm weight columnwise; out_proj rowwise (in_features sharded).\n assert mamba.dt_bias.weight.shape[0] == nheads // W\n assert mamba.A_log.weight.shape[0] == nheads // W\n assert mamba.D.weight.shape[0] == nheads // W\n assert mamba.norm_weight.weight.shape[0] == d_inner // W\n assert mamba.out_proj.weight.shape[1] == d_inner // W\n # Dynamic dims recompute from the sharded params.\n assert mamba.nheads == nheads // W\n assert mamba.ngroups == ngroups // W\n assert mamba.d_inner == d_inner // W\n assert mamba.conv_dim == conv_dim // W\n\n\ndef test_moe_experts_registered_for_sharding() -> None:\n \"\"\"The ungated relu² experts (FusedMoE) map to ShardedFusedMoE in the MoE shard registry.\"\"\"\n from fireworks.nn.moe.fused_moe import FusedMoE\n from fireworks.nn.moe.sharded_fused_moe import ShardedFusedMoE\n from fireworks.nn.shard import MoEShardPolicy, build_moe_shard_classes\n\n classes = build_moe_shard_classes()\n assert classes.get((FusedMoE, MoEShardPolicy.TENSOR_PARALLEL)) is ShardedFusedMoE\n assert classes.get((FusedMoE, MoEShardPolicy.EXPERT_PARALLEL)) is ShardedFusedMoE\n\n\ndef test_moe_forward_uses_latent_projections() -> None:\n \"\"\"Latent projections wrap the routed expert reference path.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"E\",\n n_embd=4,\n n_routed_experts=2,\n n_shared_experts=0,\n num_experts_per_tok=1,\n moe_intermediate_size=4,\n moe_latent_size=2,\n norm_topk_prob=False,\n )\n moe = NemotronH(cfg).layers[0].mixer\n calls = {\"fc1\": 0, \"fc2\": 0}\n moe.fc1_latent_proj.register_forward_hook(lambda *_args: calls.__setitem__(\"fc1\", calls[\"fc1\"] + 1))\n moe.fc2_latent_proj.register_forward_hook(lambda *_args: calls.__setitem__(\"fc2\", calls[\"fc2\"] + 1))\n with torch.no_grad():\n moe.experts.gate_weight.zero_()\n moe.gate.score_processor.e_score_correction_bias.zero_()\n\n moe.experts.prepare_for_inference()\n out = moe(torch.randn(2, cfg.n_embd))\n\n assert out.shape == (2, cfg.n_embd)\n assert calls == {\"fc1\": 1, \"fc2\": 1}\n\n\nclass _ConstantModule(nn.Module):\n def __init__(self, value: float, width: int) -> None:\n super().__init__()\n self.value = value\n self.width = width\n\n def forward(self, x: torch.Tensor) -> torch.Tensor:\n return x.new_full(x.shape[:-1] + (self.width,), self.value)\n\n\nclass _ConstantExpertBank(nn.Module):\n \"\"\"Stand-in for the fused experts that returns a constant routed output.\n\n Matches the unified MoE call signature (``forward(x, score_processor=..., gate_input=...)``)\n so it can be swapped into ``NemotronHMoE`` to exercise the wrapper logic (shared add, scaling).\n \"\"\"\n\n def __init__(self, value: float, width: int) -> None:\n super().__init__()\n self.value = value\n self.width = width\n\n def forward(self, x: torch.Tensor, score_processor=None, gate_input: torch.Tensor | None = None) -> torch.Tensor:\n return x.new_full((x.shape[0], self.width), self.value)\n\n\ndef test_moe_forward_adds_shared_expert_once() -> None:\n \"\"\"Shared expert contribution is added once to the routed output.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"E\",\n n_embd=4,\n n_routed_experts=2,\n n_shared_experts=1,\n num_experts_per_tok=1,\n moe_intermediate_size=4,\n moe_latent_size=None,\n routed_scaling_factor=1.0,\n norm_topk_prob=False,\n )\n moe = NemotronH(cfg).layers[0].mixer\n # _ConstantExpertBank ignores routing, so no gate setup is needed to isolate the wrapper.\n moe.experts = _ConstantExpertBank(value=0.0, width=cfg.n_embd)\n moe.shared_experts = _ConstantModule(value=3.0, width=cfg.n_embd)\n\n out = moe(torch.randn(2, cfg.n_embd))\n\n torch.testing.assert_close(out, torch.full_like(out, 3.0))\n\n\ndef test_moe_forward_skips_routed_scaling_in_fp16() -> None:\n \"\"\"FP16 keeps routed output unscaled and shrinks shared output only.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"E\",\n n_embd=1,\n n_routed_experts=1,\n n_shared_experts=1,\n num_experts_per_tok=1,\n moe_intermediate_size=1,\n moe_latent_size=None,\n routed_scaling_factor=5.0,\n norm_topk_prob=False,\n )\n moe = NemotronH(cfg).layers[0].mixer\n # _ConstantExpertBank ignores routing, so the wrapper's fp16 scaling is exercised directly.\n moe.experts = _ConstantExpertBank(value=2.0, width=cfg.n_embd)\n moe.shared_experts = _ConstantModule(value=10.0, width=cfg.n_embd)\n\n out = moe(torch.zeros(1, cfg.n_embd, dtype=torch.float16))\n\n assert out.dtype == torch.float16\n torch.testing.assert_close(out.float(), torch.tensor([[4.0]]), rtol=0.0, atol"} +{"text": "Rare lightning storm kills 1, injures 13 in L.A.\nFirefighters believe lightning struck the ocean and spread through the water\nThe Associated Press\nLOS ANGELES — A 20-year-old man died after lightning from a rare summer thunderstorm jolted a Southern California beach, injuring or rattling more than a dozen people, authorities said.\nWitnesses said they saw a glare of light and heard a tremendous boom as lightning struck the water off of Venice Beach around 2:30 p.m. Sunday. Swimmers cooling off on a muggy day, volleyball players on the sand and people strolling the famous boardwalk were jolted.\nA 20-year-old man was taken from the beach to a hospital where he died, Los Angeles County coroner's Lt. Larry Dietz said. His identity was not immediately released.\nConfirmation of the cause of death was pending an autopsy. Dietz said he also can't confirm whether the man was a swimmer who was pulled from the water and given CPR.\nTwelve other people, including a 15-year-old boy, were examined after they felt the effects of the lightning, ranging from anxiety to a man who needed cardiopulmonary resuscitation. However, not all were necessarily actually struck by lightning, said Katherine Main, a city fire spokeswoman.\nNine were taken to hospitals, where one was listed in critical condition.\nMost of the others were mainly shaken up and expected to recover, fire officials said.\nLightning also struck a 57-year-old man on a golf course on Santa Catalina Island. He's in stable condition\nStuart Acher said he was shocked while playing volleyball on the beach.\n\"We went about our game and then all of a sudden, there was a big flash of light and a boom, and it felt like someone punched me in the back of my head,\" he told KABC-TV. \"It went down my whole side of my right body, and my calves sort of locked up, and I fell over. And I looked up and everybody else was, you know, falling over.\"\nParamedics examined Acher but he felt all right and went back to playing volleyball.\nSteve Christensen said his friend had been body-surfing and was sitting on the beach when lifeguards began searching for a missing swimmer.\n\"He (Christensen's friend) went out to the water to find him and walked right into him,\" Christensen said. \"He was face down on the bottom.\"\nChristensen said his friend pulled the man, who appeared to be in his 20s, from the water, and lifeguards began CPR before taking him away.\n\"The guy wasn't moving. He wasn't responding at all,\" Jesus Zamudio of Riverside told the Los Angeles Times.\n\"This tragedy reminds us that we can take nothing for granted or underestimate the power of nature,\" Mayor Eric Garcetti said in a statement.\nEarlier, off the coast, lightning struck a 57-year-old man on a golf course on Santa Catalina Island but he was taken to a hospital in stable condition, said Steve Denning, a law enforcement technician with the Los Angeles County Sheriff's Department. He did not have other details.\nThe lightning strikes occurred as a fierce but brief thunderstorm hit the island, dumping more than three-quarters of an inch of rain in about two hours, causing minor flooding and setting two small fires in the brushy backcountry that were quickly doused.\nHundreds of lightning strikes were reported all around Southern California as a moisture-laden monsoonal flow spread up from the south and swept the region all the way out to the ocean.\n\"This is pretty rare\" because usually the flow affects just the deserts and sometimes the mountains, said Stuart Seto, a weather specialist with the National Weather Service in Oxnard.\nThe storms began to dissipate as they moved northwest, leaving just a chance of storms through Monday, mainly in the deserts and mountains, Seto said.\nCopyright Associated Press. All rights reserved. This material may not be published, broadcast, rewritten, or redistributed.\nJoin the discussion\nThe comments below are member-generated and do not necessarily reflect the opinions of EMS1.com or its staff. If you cannot see comments, try disabling privacy and ad blocking plugins in your browser. All comments must comply with our Member Commenting Policy."} +{"text": "Darn It, I Knew I Should've Slept Last Night\nDarn! Darn! Darn! Double Darn! I did it again, and on the one day when I really could have used just an hour or two of shut-eye. I didn't go to sleep last night, and it's only Wednesday, and that's a big mistake. Actually, now I think it's Thursday, but my internal clock is running on Australian time, so how should I know?\nI could have been in bed and sleeping at 9:00 last night if Mike hadn't called me and offered to get me higher than I'd ever been. I know that the blame ultimately rests with me, but I just couldn't turn down direct-from-Columbia uncut pure yeyo and Mike should have known that.\nOh phooey! This computer screen is really starting to hurt my blood-shot eyes. I hope my boss doesn't ask me to take off my sunglasses or worse yet go into his office for a chat -- he'll see the telltale signs of an all-night coke binge: the red eyes, the shaky hands, dilated pupils -- poo! Maybe I can tell him that I was up all night crying because my dog died, but that would be my third dog this month.\nI don't think that any of my real good friends know that I have a drug problem, and if they did they would probably try to tell me that I have a drug problem and need to seek help, to which I would reply that I don't have a problem and that it's none of their gosh-darn beeswax.\nMike isn't a real friend -- he just gets me high and molests poodles. He's one of those people you see wearing black leather jackets who forces you to smoke marijuana cigarettes because it's cool and you'll be a loser if you don't. He's not a real friend, just someone who's house I can always go over to at 2 AM when all my real friends are at home, sleeping with their wives or girlfriends who just wouldn't understand why someone would call so late screaming about termites burrowing under my skin.\nI always do a very good job at work, even after I haven't slept for 24 to 48 hours or more. Sometimes I'll lay on my bed with my eyes wide open after having taken a dose, done a line - just like I am I've had my big mug full of office coffee in the morning - and I'll go through everything that I need to do the next day. I'll think to myself, “If I can just come down enough to hold my hand steady so I can use a pen then I can write myself out a list of things that need to get done.” I always make it in on time, even if I smell like the floor I slept on the night before, but I'm always smiling and ready to give the competition what for.\nSometimes I get so focused on work that I can't even remember to eat. I often find myself going two or three days without even remembering that I should be having a sandwich every once in awhile, and then it's like, “Wow! I have to take all these diet pills to stay awake because I'm not eating and getting my vitamins! Oh!”\nToday at work hasn't been all that fun. I came in on time, and people might have been talking to me, but I'm not sure. I just came to my desk, stared at the screen and passed out sometime between 8:00 and lunch. I think my boss likes me, which is good, because that means I have a cushion to fall back on if I do something that he doesn't like. I don't think he was excited to come by my desk and see me laying on the floor with my suit jacket balled up underneath my head. At least I woke up the first time he nudged me, but the look on his face wasn't one of love and concern exactly. Dang!\nAll I've got to say is thank God it's Friday tomorrow! I don't know how much more of this grind I can take! One of these days I'm going to learn to watch who I talk to about the things I do after we all get off work, but I use words like ‘cheeba', ‘ice', ‘cycline' and ‘endo' as a personal code to help disguise the real meaning of things. I don't want to lie to anyone. Most people who went to college and studied computer programming don't know the language of the streets, so I don't think they understand anyway. Still, I should be careful, because someone might look it all up on the internet and tell someone who tells someone who might tell Nicole, our secretary. I kind of like her and I don't want her to think that I'm really into that stuff --ß only after work and usually on weekends unless Mike makes a really convincing case for having me come over for another interplanetary mission.\nBut gee whiz, ain't life grand! I'm still going strong after almost seven hours of sitting up straight in my chair, and I just remembered that I have some super quaaludes at home that I might take if I'm still shaking. Then I'll get a good night sleep, wake up feeling refreshed and renewed in the morning and come in to finish all that work that I didn't get done today. Yeah, everything is still kind of blurry and distant, but that might just be because traffic today was really slow and I'm kind of tired anyway.\nAh, I feel so much better now that I've talked about all this. I'll try to sleep tonight before I come into work in the morning and maybe even take a shower before then too. Have a good day! TGIF!"} +{"text": "=0.0)\n\n\ndef test_moe_forward_applies_routed_scaling() -> None:\n \"\"\"Routed output is multiplied by routed_scaling_factor on the bf16 path.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"E\",\n n_embd=1,\n n_routed_experts=2,\n n_shared_experts=0,\n num_experts_per_tok=1,\n moe_intermediate_size=1,\n moe_latent_size=None,\n routed_scaling_factor=2.0,\n norm_topk_prob=False,\n )\n moe = NemotronH(cfg).layers[0].mixer\n # _ConstantExpertBank ignores routing, so no gate setup is needed to isolate the scaling.\n moe.experts = _ConstantExpertBank(value=3.0, width=cfg.n_embd)\n\n out = moe(torch.zeros(1, cfg.n_embd, dtype=torch.bfloat16))\n\n assert out.dtype == torch.bfloat16\n torch.testing.assert_close(out.float(), torch.tensor([[6.0]]), rtol=0.0, atol=0.0)\n\n\ndef test_moe_shared_expert_width_scales_with_num_shared_experts() -> None:\n \"\"\"Shared expert intermediate width is per shared expert in HF config.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"E\",\n n_shared_experts=2,\n moe_shared_expert_intermediate_size=5,\n )\n moe = NemotronH(cfg).layers[0].mixer\n\n assert moe.shared_experts is not None\n assert moe.shared_experts.up_proj.out_features == 10\n assert moe.shared_experts.down_proj.in_features == 10\n\n\ndef test_forward_transformer_runs_tiny_moe_layer() -> None:\n \"\"\"A tiny transformer stack can include a real MoE mixer.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"E\",\n n_embd=4,\n n_routed_experts=2,\n n_shared_experts=0,\n num_experts_per_tok=1,\n moe_intermediate_size=4,\n moe_latent_size=None,\n norm_topk_prob=False,\n )\n model = NemotronH(cfg)\n model.layers[0].norm = _SpyNorm()\n model.norm = nn.Identity()\n with torch.no_grad():\n model.layers[0].mixer.experts.gate_weight.zero_()\n model.layers[0].mixer.gate.score_processor.e_score_correction_bias.zero_()\n x = torch.randn(3, cfg.n_embd)\n\n model.layers[0].mixer.experts.prepare_for_inference()\n out = model.forward_transformer(x, object()) # type: ignore[arg-type]\n\n assert out.shape == (3, cfg.n_embd)\n assert torch.isfinite(out).all()\n\n\ndef _convert_attention_layer_for_test(\n hf_state: dict[str, torch.Tensor],\n *,\n cfg: NemotronHConfig,\n) -> dict[str, torch.Tensor]:\n assert hasattr(nemotron_h_text, \"_convert_attention_layer\")\n converted: dict[str, torch.Tensor] = {}\n nemotron_h_text._convert_attention_layer( # type: ignore[attr-defined]\n hf_state,\n converted,\n config=cfg,\n layer_idx=0,\n )\n return converted\n\n\ndef _make_attention_state(\n *,\n cfg: NemotronHConfig,\n fused_key: str | None = None,\n) -> dict[str, torch.Tensor]:\n layer_prefix = \"backbone.layers.0.mixer\"\n q_rows = cfg.n_head * cfg.head_dim\n kv_rows = cfg.n_head_kv * cfg.head_dim\n q = torch.arange(q_rows * cfg.n_embd, dtype=torch.float32).view(q_rows, cfg.n_embd)\n k = torch.arange(kv_rows * cfg.n_embd, dtype=torch.float32).view(kv_rows, cfg.n_embd) + 10_000\n v = torch.arange(kv_rows * cfg.n_embd, dtype=torch.float32).view(kv_rows, cfg.n_embd) + 20_000\n o_proj = torch.arange(cfg.n_embd * q_rows, dtype=torch.float32).view(cfg.n_embd, q_rows)\n state = {\n \"backbone.layers.0.norm.weight\": torch.randn(cfg.n_embd),\n f\"{layer_prefix}.o_proj.weight\": o_proj,\n }\n if fused_key is None:\n state.update(\n {\n f\"{layer_prefix}.q_proj.weight\": q,\n f\"{layer_prefix}.k_proj.weight\": k,\n f\"{layer_prefix}.v_proj.weight\": v,\n }\n )\n return state\n state[f\"{layer_prefix}.{fused_key}.weight\"] = torch.cat([q, k, v], dim=0)\n return state\n\n\ndef test_convert_attention_layer_fuses_unfused_qkv_weights() -> None:\n \"\"\"HF q/k/v attention weights normalize to Fireworks fused QKV layout.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"*\", n_head=4, n_head_kv=1, head_dim=8)\n hf_state = _make_attention_state(cfg=cfg)\n expected_qkv = torch.cat(\n [\n hf_state[\"backbone.layers.0.mixer.q_proj.weight\"],\n hf_state[\"backbone.layers.0.mixer.k_proj.weight\"],\n hf_state[\"backbone.layers.0.mixer.v_proj.weight\"],\n ],\n dim=0,\n )\n expected_o_proj = hf_state[\"backbone.layers.0.mixer.o_proj.weight\"]\n\n converted = _convert_attention_layer_for_test(hf_state, cfg=cfg)\n\n torch.testing.assert_close(converted[\"layers.0.mixer.query_key_value.weight\"], expected_qkv)\n torch.testing.assert_close(converted[\"layers.0.mixer.o_proj.weight\"], expected_o_proj)\n assert converted[\"layers.0.norm.weight\"].shape == (cfg.n_embd,)\n assert not hf_state\n\n\n@pytest.mark.parametrize(\"fused_key\", [\"query_key_value\", \"qkv\", \"wqkv\"])\ndef test_convert_attention_layer_accepts_fused_qkv_weights(fused_key: str) -> None:\n \"\"\"Local fixtures can use any supported fused QKV checkpoint key.\"\"\"\n cfg"} +{"text": "European free-tailed bat is a large strong bat. Fur on the upperparts of the body dense, soft, plush-like, long on neck, and paler on the underparts. Hairs extend onto wings and base of flight membrane. Ears large, rounded and broad. The inner sides of ear directed downwards, close to each other but tips disconnected. Wings very long, narrow, but not broad, vary in color from grayish-brown to black. Face distinctive with long, wrinkled muzzle. Upper lip with vertical fissures interspersed with short hairs. Tragus square with rounded angles and large antitragus. Feet strong, as long as half the tibia length. Tail long and extends beyond the flight membrane.\nPopulations in Japan, Taiwan and Korea are now considered to be a separate species, T. insignis (Simmons 2005). It occurs from sea level to 3,100 m.\nDistribution in Egypt\nNarrow (Cairo and Sinai).\nBody length 122–139 mm, forearm 54.7–69.9 mm, 5th digit 55-59 mm, 3rd digit 102-115 mm.\nHabitat and Ecology\nThe European free-tailed bat prefers open habitats like grassland and rocky places, especially limestone. It roosts colonially in narrow gaps between rocks in winter where temperature is ca. 10°C and artificial structures such as bridges and old buildings.\nLife History and Behavior\nNocturnal bat. Insectivorous, feeding on moths. Lives in colonies of around 50 individuals. Flying high and fast, more than 30 km. The European free-tailed bat uses echolocation (at a quasi- constant-frequency calls with an end-frequency 9 to14 kHz) by emitting ultrasound from nose-leaf to detect prey. The breeding season of the European free-tailed bat takes place in January and female gives birth to a single young each year in June after a gestation period of six to seven weeks and reaches sexual maturity after one year.\nLifespan, longevity, and ageing\nMolecular Biology and Genetics\nBarcode data: Tadarida teniotis\nBelow is a sequence of the barcode region Cytochrome oxidase subunit 1 (COI or COX1) from a member of the species.\nSee the BOLD taxonomy browser for more complete information about this specimen and other sequences.\n-- end --\nDownload FASTA File\nStatistics of barcoding coverage: Tadarida teniotis\nPublic Records: 6\nSpecimens with Barcodes: 30\nSpecies With Barcodes: 1\nIUCN Red List Assessment\nRed List Category\nRed List Criteria\nStatus in Egypt\nEuropean free-tailed bat\nThe European free-tailed bat. (Tadarida teniotis, sometimes given as Tadarida insignis) is a species of free-tailed bat found in the Old World. Other common names include the bulldog bat and the mastiff bat because of the presence of wrinkling on the snout. This bat is found in the Mediterranean region of Europe and in scattered locations across Asia at altitudes from sea level to 3100 m. It was reported from Korea in 1931, but has not been sighted on the Korean Peninsula since that time. Populations in Japan, Taiwan and Korea are now considered to be a separate species Tadarida insignis.\nThe European free-tailed bat has large, broad ears, each with a very small tragus, a backward-pointing projection which helps direct sound into the ear. Its muzzle has wrinkled lips, which gives its face a similarity to a dog's face and is the origin for its common names of bulldog or mastiff bat. Its tail is fleshy and robust, and the rear third is not connected to any membranes. Its fur is short and even, the dorsal (upper) surface is greyish-black, with a brownish shine, while the ventral (under) surface is paler. Its ears, wing and tail membranes are black and it has an unpleasant smell. This bat's head and body length is about 3.5 inches (89 mm), its tail about 2 inches (51 mm) and its weight from 1 to 2 ounces (28 to 57 g).\nThe European free-tailed bat roosts by day in crevices in cliffs, in rocky gorges, under overhangs, in holes in tall buildings, under roof tiles or under stone bridges. It emerges at dusk and flies at a great height with a swift direct flight, not exhibiting the sudden twists and turns shown by many other bat species. It feeds on insects caught in flight and seldom needs to drink. When it does drink, it scoops up water from a pond or river while flying low over the surface. Before leaving the roost it makes a rattling sound and it often emits a characteristic \"tsick-tsick\" in flight, enabling it to be recognised by sound.\nEuropean free-tailed bats generally live solitary lives but small groups of females come together to breed. The gestation period is about eighty days and a single youngster is born in some dark, concealed location. The juvenile opens its eyes when about a week old, can fly by four weeks and is independent by seven weeks. It matures at a year old and the lifespan is about ten years.\nThe European free-tailed bat is included by the IUCN in its Red List of Threatened Species as being of \"Least Concern\". The threats it faces include the use of pesticides, deforestation, the loss of roosts in some buildings and possible injury from wind turbines, however it is felt that none of these is a particularly serious threat. The population trend is not known but it is a common species in suitable habitats and bats in general receive protection in a number of European Union member states.\n- Aulagnier, S.; Paunovic, M.; Karataş, A.; Palmeirim, J.; Hutson, A. M.; Spitzenberger, F.; Juste, J.; Benda, P. (2008). \"Tadarida teniotis\". IUCN Red List of Threatened Species. Version 2013.1. International Union for Conservation of Nature. Retrieved 2013-10-05.\n- Simmons, N. B. (2005). \"Order Chiroptera\". In Wilson, D. E.; Reeder, D. M. Mammal Species of the World (3rd ed.). Johns Hopkins University Press. p. 451. ISBN 978-0-8018-8221-0. OCLC 62265494.\n- Konig, Claus (1973). Mammals. Collins & Co. pp. 74–75. ISBN 978-0-00-212080-7."} +{"text": "- Employees’ Provident Fund is set up under the Central Act viz. Employees’ Provident Funds & Miscellaneous Provisions Act, 1952, in the year 1952.\n- It is applicable throughout the country (except Jammu & Kashmir).\n- It is applicable to almost all establishments falling under the industries/class of establishments, wherein 20 persons are employed.\n- In the case of cinema theatres workers, it is applicable to such establishments wherein 5 persons are employed.\n- Benefits to an employee are provided through the schemes framed under the ‘Act’.\n- Provident Fund benefits are provided under the Employees’ Provident Funds Scheme 1952.\n- Pension benefits are provided under the Employees’ Pension Scheme, 1995.\n- Insurance Benefits are provided under the Employees’ Deposit Linked Insurance Scheme 1976.\n- A member of Employees’ Provident Fund is automatically eligible for Pension and Insurance benefits without paying any additional amount of contribution.\nEmployees’ Provident Fund Organisation(EPFO):\n- Employees’ Provident Fund Organisation is administering the above Schemes.\n- Employees’ Provident Fund Organisation is a statutory body under the Ministry of Labour, Government of India.\n- It is an all India Organisation having its offices in all State Capitals, Cities, Towns and Districts.\n- The Employees’ Provident Fund is administered by Central Board of Trustees – Employees’ Provident Fund.\n- The Central Board of Ttustees’, Employees’ Provident Fund consist of representatives from Employees’ Association, Employers Association and Central/State Governments.\n- Honorable Minister for Labour, Government of India is the Chairman of Central Board of Trustees, Employees’ Provident Funds.\n- The Chief executive of the Organisation is the Central Provident Fund Commissioner, New Delhi.\n- The Regional Provident Fund Commissioners are In-charge of the Regional/Sub-Regional offices and monitor the compliance from all the establishments.\n- Regional Provident Fund Commissioners are maintaining the Provident Fund Accounts and extending of various benefits to the Employees/Family members/Nominees under the three Schemes.\nSpecial Features of the Act/Schemes:\n- The Provident Fund, Pension and Insurance benefits are protected against attachment. It cannot be assigned or charged and shall not be liable to attachment under any decree or order of any court.\n- Employees’ Provident Fund as also Provident Fund of Exempted establishments is a recognised Provident Fund under the Indian Income Tax Act, 1961.\n- An employee is eligible to avail the rebate on Income Tax on his Provident Fund Contributions subject to ceiling prescribed under the Income Tax Act.\n- Non payment of Employees’ Provident Fund dues by an employer may lead to recovery action by Regional Provident Fund Commissioners such as Prosecution, attachment of Bank Account/Property, arrest and detention etc.\n- Non payment of employees’ contributions recovered from the wages of the employees would constitute ‘Criminal breach of trust’ punishable under Section 406/409 IPC.\n- Employees’ Provident Fund dues paid after the due date (20th of the following month including grace period of 5 days) will result in payment of interest & penalty by the employer.\n- Employees’ Provident Fund account of an employee can be transferred to any place in the country.\n- Employees’ Provident Fund may be withdrawn partially for certain specified purpose such as housing, marriage, illness, etc.\n- All Provident Fund Claims of the member are expected to be disposed by EPF Offices within 30 days.\n- Members are given the benefit of filing Nomination for Provident Fund/Pension and Employees’ Deposit Linked Insurance.\n- The annual Employees’ Provident Fund balance is expected to be informed to every employee by the Employees’ Provident Fund Office, before 30th September of each year.\n- The Employees’ Provident Fund Organisation has completed its Golden Jubilee in the year 2002.\n- The Employees’ Provident Fund Organisation is marching ahead to achieve its goal for total computerisation and inter connection of all its offices in the country so as to ensure service delivery within 2-3 days and any where, at any time service and issue unique in No. to all its members.\nFor more details concerning eligibility for EPF membership, quantum of contributions, Nature of benefits eligible, procedure for availing benefits etc. please read further."} +{"text": " = _make_config(hybrid_override_pattern=\"*\", n_head=4, n_head_kv=1, head_dim=8)\n hf_state = _make_attention_state(cfg=cfg, fused_key=fused_key)\n expected_qkv = hf_state[f\"backbone.layers.0.mixer.{fused_key}.weight\"]\n\n converted = _convert_attention_layer_for_test(hf_state, cfg=cfg)\n\n torch.testing.assert_close(converted[\"layers.0.mixer.query_key_value.weight\"], expected_qkv)\n assert not hf_state\n\n\ndef test_convert_attention_layer_rejects_mixed_fused_and_unfused_qkv_weights() -> None:\n \"\"\"A layer must not provide both fused and unfused QKV storage.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"*\", n_head=4, n_head_kv=1, head_dim=8)\n hf_state = _make_attention_state(cfg=cfg, fused_key=\"qkv\")\n hf_state[\"backbone.layers.0.mixer.q_proj.weight\"] = torch.empty(cfg.n_head * cfg.head_dim, cfg.n_embd)\n\n with pytest.raises(ValueError, match=\"both fused and unfused QKV\"):\n _convert_attention_layer_for_test(hf_state, cfg=cfg)\n\n\ndef test_convert_attention_layer_rejects_partial_unfused_qkv_bias() -> None:\n \"\"\"Attention bias checkpoints must provide q, k, and v bias together.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"*\", n_head=4, n_head_kv=1, head_dim=8, attn_bias=True)\n hf_state = _make_attention_state(cfg=cfg)\n hf_state[\"backbone.layers.0.mixer.q_proj.bias\"] = torch.empty(cfg.n_head * cfg.head_dim)\n hf_state[\"backbone.layers.0.mixer.o_proj.bias\"] = torch.empty(cfg.n_embd)\n\n with pytest.raises(ValueError, match=\"partial unfused QKV bias\"):\n _convert_attention_layer_for_test(hf_state, cfg=cfg)\n\n\ndef test_convert_attention_layer_uses_scaled_gqa_qkv_rows() -> None:\n \"\"\"GQA QKV rows are q heads plus key/value heads at the configured head dim.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"*\", n_head=4, n_head_kv=1, head_dim=8)\n converted = _convert_attention_layer_for_test(_make_attention_state(cfg=cfg), cfg=cfg)\n\n assert converted[\"layers.0.mixer.query_key_value.weight\"].shape == ((4 + 2 * 1) * 8, cfg.n_embd)\n\n\ndef _convert_base_weights_for_test(\n hf_state: dict[str, torch.Tensor],\n *,\n cfg: NemotronHConfig,\n) -> dict[str, torch.Tensor]:\n assert hasattr(nemotron_h_text, \"_convert_base_weights\")\n converted: dict[str, torch.Tensor] = {}\n nemotron_h_text._convert_base_weights( # type: ignore[attr-defined]\n hf_state,\n converted,\n config=cfg,\n )\n return converted\n\n\ndef _convert_mamba_layer_for_test(\n hf_state: dict[str, torch.Tensor],\n *,\n cfg: NemotronHConfig,\n layer_idx: int = 0,\n) -> dict[str, torch.Tensor]:\n assert hasattr(nemotron_h_text, \"_convert_mamba_layer\")\n converted: dict[str, torch.Tensor] = {}\n nemotron_h_text._convert_mamba_layer( # type: ignore[attr-defined]\n hf_state,\n converted,\n config=cfg,\n layer_idx=layer_idx,\n )\n return converted\n\n\ndef test_convert_base_weights_maps_embeddings_norm_and_lm_head() -> None:\n \"\"\"Dense base weights use Fireworks runtime names.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"M\")\n hf_state = {\n \"backbone.embeddings.weight\": torch.randn(cfg.vocab_size, cfg.n_embd),\n \"backbone.norm_f.weight\": torch.randn(cfg.n_embd),\n \"lm_head.weight\": torch.randn(cfg.vocab_size, cfg.n_embd),\n }\n\n converted = _convert_base_weights_for_test(hf_state, cfg=cfg)\n\n assert set(converted) == {\"embed_tokens.weight\", \"norm.weight\", \"lm_head.weight\"}\n assert not hf_state\n\n\ndef test_convert_base_weights_reuses_tied_embedding_for_missing_lm_head() -> None:\n \"\"\"Tied embedding configs can omit the explicit HF lm_head tensor.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"M\", tie_word_embeddings=True)\n embeddings = torch.randn(cfg.vocab_size, cfg.n_embd)\n hf_state = {\n \"backbone.embeddings.weight\": embeddings,\n \"backbone.norm_f.weight\": torch.randn(cfg.n_embd),\n }\n\n converted = _convert_base_weights_for_test(hf_state, cfg=cfg)\n\n torch.testing.assert_close(converted[\"lm_head.weight\"], embeddings)\n assert not hf_state\n\n\ndef test_convert_base_weights_ignores_redundant_tied_lm_head() -> None:\n \"\"\"Tied embedding configs use embeddings even when HF stores a redundant lm_head.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"M\", tie_word_embeddings=True)\n embeddings = torch.randn(cfg.vocab_size, cfg.n_embd)\n hf_state = {\n \"backbone.embeddings.weight\": embeddings,\n \"backbone.norm_f.weight\": torch.randn(cfg.n_embd),\n \"lm_head.weight\": torch.randn(cfg.vocab_size, cfg.n_embd),\n }\n\n converted = _convert_base_weights_for_test(hf_state, cfg=cfg)\n\n assert converted[\"lm_head.weight\"] is converted[\"embed_tokens.weight\"]\n torch.testing.assert_close(converted[\"lm_head.weight\"], embeddings)\n assert not hf_state\n\n\ndef test_model_ties_embedding_and_lm_head_parameters() -> None:\n \"\"\"Runtime tied embeddings should not allocate independent output weights.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"M\", tie_word_embeddings"} +{"text": "Step Up Revolution\nStep Up Revolution\nby Eric D. Snider\nReleased: July 27, 2012\n\"Enough with performance art,\" someone says in \"Step Up Revolution.\" \"It's time for protest art!\" Yes, at long last, the street dancers at the center of this energetic but silly franchise will use their terpsichorean skills not just to delight onlookers but to effect social change. No longer will they dance purely for art's sake! Now it is time for a revolution -- a revolution OF DANCE!\nMost film series have run out of ideas by the time they get to their fourth entry, but not \"Step Up.\" These confections -- \"Step Up,\" \"Step Up 2 the Streets,\" and \"Step Up 3D\" -- have been filled with impressive, exuberant dance numbers separated by dumb, forgettable non-dancing scenes. (Full disclosure: I didn't see \"Step Up 3D.\" My understanding is that it was more of the same.) \"Step Up Revolution\" continues with that formula, yet also finds new ways to be stupid, ways that the prior films only dreamed of.\nThe setting this time is Miami, where a group of enigmatic young dancers known as The Mob are gaining notoriety for their \"flash mob\" appearances, in which they suddenly break into a pre-rehearsed routine in a public place for the amusement and bafflement of bystanders. The Mob's only agenda is the one you'd expect: they want to be famous. They've entered a YouTube contest wherein the first video to break 10 million views wins $100,000. Of course, there are about a dozen people in The Mob, so after taxes each person would get something like $5,000, which is hardly a fortune, but whatever.\nThe Mob's leader is Sean (newcomer Ryan Guzman), a talented, 20-ish dancer whose day job is waiting tables at a posh beachside resort along with his best buddy and fellow Mobster Eddy (Misha Gabriel). The Mob also includes a visual artist who incorporates the words \"The Mob\" into each act of public dancing; a DJ who provides musical accompaniment (though I'm pretty sure just pressing \"play\" on an iPhone plugged into the sound system would suffice); and a videographer who captures the entire performance, from many different angles, on his one hidden camcorder.\nThere are two mysteries surrounding The Mob. One is expressed by a local newscaster: \"Who is The Mob? What is this all about?\" The other mystery, not spoken aloud by anyone, is who cares?\nOK, there is a third mystery. How are the members of The Mob all anonymous when their faces are clearly visible in the broad-daylight videos of themselves that they post on YouTube? And why do they WANT to be anonymous? Contrary to what the movie, in its childlike understanding of how the world works, would have you believe, it is not actually against the law to dance in public in Miami.\nAnyway, enough about The Mob. Let's talk about the movie's paint-by-numbers romance! Sean falls for a new girl at the resort, Emily (Kathryn McCormick), a dancer of the more traditional school who's trying out for an elite company headed by a woman played by \"So You Think You Can Dance\" judge Mia Michaels. Emily's father -- you're never gonna believe this, but hang on -- her father (Peter Gallagher) is the OWNER of the posh resort! And he's a land developer who wants to turn Sean and Eddy's old Cuban-influenced neighborhood into another resort!!\nAgainst Eddy's objections, Sean lets Emily (who opposes her father's actions) join The Mob. Eddy responds by making Emily the lead dancer in the next event. (It doesn't make sense in context either.) Why does Emily want to join the group? Because her fancy dance lady told her she needs to loosen up a bit, and Sean's style of street-dancing might be just the ticket. Or, as expressed in this dialogue:\nEMILY: I can't just do whatever I want. There are rules!\nSEAN: (intensely, as he draws her close to him) Break the rules.\nAll of the film's choreography (credited to Chuck Maldonado, Jamal Sims, and Christopher Scott) is executed with skillful enthusiasm, as usual. The dance numbers are fun, as they're supposed to be. But first-time director Scott Speer, perhaps accustomed to his background as a maker of music videos, keeps cutting away and switching angles, denying us an unobstructed view of the talented hoofers doing their hoofing. The dancing is the one thing -- and I mean the ONE THING -- that the film has going for it, and it's not showcased as well as it should be.\nThe saving grace might be the finale, which is so laugh-out-loud ludicrous it could turn this harmless bit of fluff into a cult classic. Without spoiling anything, let me just tell you that it involves staging a Mob event at the site of a ground-breaking ceremony specifically for the purpose of disrupting it and changing the hearts and minds of those in attendance. It is dance with a message. It's like Occupy Wall Street, if OWS had choreography and showers and a less coherent viewpoint. The movie, written by previously uncredited Amanda Brody and blissfully unaware of its own cheesiness, is complete nonsense, but it's inoffensive nonsense.\nRated PG-13, a little mild profanity, some suggestive dancing\n1 hr., 37 min.\nCopyright © Eric D. Snider.\nThis work may not be transmitted via the Internet, nor reproduced in any other way, without written consent from Eric D. Snider."} +{"text": "Amla ton underpins large SA win\nSouth Africa 304 for 5 (Amla 109, de Villiers 75, Mendis 3-61) beat Sri Lanka 229 (Sangakkara 88, Tahir 3-50) by 75 runs\nScorecard and ball-by-ball details\nWhat a difference a year makes. Rewind to the July 2013 series between these two sides: South Africa could not manage a single total over 300 or one centurion in the five ODIs they played, and their lack of a wicket-taking spinner was exposed so dearly that they only managed to bowl the hosts out once. Fast-forward to the July 2014 rubber and South Africa ticked all those boxes in the first match.\nHashim Amla anchored the innings with a hard-fought hundred and had a 151-run partnership with AB de Villiers. The pair set their team up for a final assault, which David Miller provided. Miller led the late charge and South Africa scored 53 runs in the final five overs to post their highest total in Sri Lanka, leaving with hosts with the challenge of scoring the highest second-innings total at the Premadasa.\nDespite a speedy start and a sparkling 88 from Kumar Sangakkara, Sri Lanka lost their last five wickets for 13 runs and were left to rue the tactical mistakes they made in the first half of the match. They put down de Villiers on 17 and Amla on 49, which cost them, but Angelo Mathews seemed overly reliant on the notion South Africa would struggle against spin. He held his seamers back to his own detriment.\nLasith Malinga bowled just seven of his 10 overs - though he went for 7.42 per over - while Nuwan Kulasekera and Angelo Mathews, who conceded 4.33 and 5.00, only bowled six overs each. Sachithra Senanayake and Ajantha Mendis bowled out and took four wickets between them, but the 11 overs from Ashan Priyanjan and Tillakaratne Dilshan cost Sri Lanka 78 runs.\nAmla and de Villiers, who faced the bulk of the balls, are accomplished players of spin and were largely untroubled. They came together in the 14th over, after Amla had got some measure of the surface and steered South Africa to a safe start despite losing both his opening partner Quinton de Kock and Jacques Kallis.\nKallis will be South Africa's only concern. After being declared fully fit following an upper back problem that kept him out of the warm-up match, Kallis was out for a second-ball duck when he failed to read Mendis' carrom ball. He did not bowl, so his impact on the game was negligible.\nThat did not matter to Amla and de Villiers as they built steadily. After their respective let-offs, one of which allowed Amla to get to fifty, they called for the batting Powerplay and scored 34 runs in the five-over period. That was where Sri Lanka allowed the game to slip. Mathews did not look to strike, though it was evident he also could not contain.\nIt took a moment of fortune for the hosts to find a way back when de Villiers hit Mendis to long-off, but they could not rein South Africa in as much as they would have wanted. Amla hung around to reach his hundred - the 13th of his career and second against Sri Lanka - before Miller aided by Ryan McLaren took the total past 300.\nFor all the talk of a slow surface, Sri Lanka's brisk beginning banished any concerns it would hold them up. Kusal Perera enjoyed the pace of Dale Steyn and cashed in on a poor line from Vernon Philander to take Sri Lanka past 50 inside eight overs. He picked out Morne Morkel at short fine leg to give Philander a wicket but with Sangakkara next in, South Africa's relief was short lived. He was off the mark with a straight drive for four, an ominous sign of what was to come, but it would only come later.\nSangakkara slowed down and took his time to settle in, while Dilshan kept the innings moving. He treated Imran Tahir with disdain - not hard to do given the full tosses the legspinner was dishing up. It seemed South Africa's premier spin option would unravel, but smart captaincy ensured he did not.\nDe Villiers took Tahir off after two overs and brought on the quicks to deal with Dilshan. Morkel had him caught behind and by the time Tahir was reintroduced, the scoring rate had cooled. With the first ball of his second spell, Tahir had Mahela Jayawardene caught behind and his confidence swelled.\nIn his next over, Tahir lured Ashan Priyanjan forward and the outside edge was caught at short third man. Sri Lanka reached the halfway stage needing 165 runs to win but with Sangakkara at the crease, that did not seem impossible.\nDespite Angelo Mathews giving his wicket away, Sangakkara ushered Lahiru Thirimanne through a tricky period and kept up with the required run-rate with one eye on the looming clouds. Sangakarra announced his intent to get within the Duckworth-Lewis score with three successive fours off McLaren, who lost his line as he came under attack.\nThirimanne should have simply held up his end but he tried to emulate Sangakkara and target McLaren. He was bowled while trying to hit across the line and his dismissal exposed the Sri Lankan tail. McLaren also had Sangakkara's scalp when the batsman skied one to extra cover, with the hosts 88 away from the target. Tahir and Steyn cleaned up the tail, and Sri Lanka had been dismissed in 40.3 overs.\nFirdose Moonda is ESPNcricinfo's South Africa correspondent"} +{"text": "=True)\n model = NemotronH(cfg)\n\n assert model.embed_tokens is not None\n assert model.lm_head is not None\n assert model.lm_head.weight is model.embed_tokens.weight\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"Nemotron-H disagg contract requires CUDA\")\n@torch.inference_mode()\ndef test_disagg_surfaces_kv_and_mamba_sideband_state() -> None:\n \"\"\"Disaggregated-serving contract: Nemotron-H's hybrid cache manager supports NCCL/NIXL\n sideband transfer and surfaces BOTH Mamba conv and recurrent state (attention KV rides the\n paged pool). This is what lets disagg carry the full hybrid state prefiller->decoder; KV-only\n transports (IPC) fail fast in the prefill worker.\"\"\"\n from fireworks.nn.disagg_state import MAMBA_CONV_STATE, MAMBA_RECURRENT_STATE\n\n device = torch.device(\"cuda\")\n text_config = NemotronHTextConfig(base=_make_config(hybrid_override_pattern=\"M*E\", head_dim=64))\n model = NemotronHCausalTextModel(text_config).to(device=device, dtype=torch.bfloat16)\n torch.manual_seed(0)\n with torch.no_grad():\n for param in model.parameters():\n param.normal_(mean=0.0, std=0.02)\n model.eval()\n model.prepare_for_inference()\n\n total_tokens = 8\n kv_cache = model.create_kv_cache(firetext.KVCacheConfig.for_seq_len(total_tokens, text_config.kv_cache_block_size))\n manager = model.create_context_cache_manager(kv_cache=kv_cache)\n assert isinstance(manager, MambaCacheManager)\n assert manager.supports_nccl_disagg_state_transfer\n\n meta = manager.add_sequence_and_get_meta(total_tokens, uid=\"disagg_seq\")\n idx = torch.randint(0, text_config.base.vocab_size, (total_tokens,), device=device, dtype=torch.long)\n model.forward(idx, meta)\n\n states = manager.get_disagg_state_tensors(\"disagg_seq\")\n assert set(states) == {MAMBA_CONV_STATE, MAMBA_RECURRENT_STATE}\n conv = states[MAMBA_CONV_STATE]\n recurrent = states[MAMBA_RECURRENT_STATE]\n # Trailing dims match the Mamba layer's state spec (conv window = kernel-1, recurrent = d_state).\n spec = next(\n layer.mixer.linear_state_spec for layer in model.layers if isinstance(layer, NemotronHMambaDecoderLayer)\n )\n assert conv.shape[-1] == spec.conv_state_shape[-1]\n assert recurrent.shape[-1] == spec.recurrent_state_shape[-1]\n assert conv.numel() > 0 and recurrent.numel() > 0\n assert torch.isfinite(conv).all() and torch.isfinite(recurrent).all()\n\n\ndef _make_mtp_text_config() -> NemotronHTextConfig:\n base = _make_config(\n hybrid_override_pattern=\"M*E\",\n n_head=4,\n n_head_kv=2,\n head_dim=64,\n n_embd=128,\n n_routed_experts=4,\n num_experts_per_tok=2,\n moe_intermediate_size=32,\n moe_latent_size=None,\n n_shared_experts=0,\n norm_topk_prob=False,\n mtp_layers_block_type=[\"attention\", \"moe\"],\n num_nextn_predict_layers=1,\n )\n assert isinstance(base, NemotronHConfig)\n return NemotronHTextConfig(base=base)\n\n\ndef test_extract_mtp_settings_builds_attention_moe_draft() -> None:\n \"\"\"MTP settings describe a text-only attention+MoE draft under mtp.* (no Mamba).\"\"\"\n settings = NemotronHCausalTextModel.extract_mtp_settings(_make_mtp_text_config())\n assert settings.model_config.base.layers_block_type == [\"attention\", \"moe\"]\n assert settings.model_config.base.n_layer == 2\n assert settings.orig_layers_prefix == \"model.layers.\"\n assert settings.target_layers_prefix == \"layers.\"\n assert settings.num_mtp_hidden_layers == 2\n assert settings.extra_hf_weight_prefixes == (\"mtp.\",)\n assert settings.model_config.base.sharding.world_size == 1\n # The draft has no Mamba layers, so it only needs a KV cache.\n assert \"mamba\" not in settings.model_config.base.layers_block_type\n\n\n_SUPER_CKPT = \"/shared/data3/nemotron3-super-bf16\"\n\n\n@pytest.mark.skipif(not os.path.isdir(_SUPER_CKPT), reason=\"Nemotron-3 Super checkpoint not present\")\ndef test_mtp_conversion_roundtrip_real_super_weights() -> None:\n \"\"\"Real-weight roundtrip: the checkpoint's top-level mtp.* keys convert into exactly the\n keys/shapes the NemotronHMTPModel (draft transformer + enorm/hnorm/eh_proj addon) expects.\"\"\"\n import transformers\n import fireworks.hf as firehf\n from fireworks.models.nemotron_h.nemotron_h_mtp import NemotronHMTPModel\n\n hf_config = transformers.AutoConfig.from_pretrained(_SUPER_CKPT, trust_remote_code=True)\n base_config = NemotronHCausalTextModel.convert_hf_config(hf_config)\n settings = NemotronHCausalTextModel.extract_mtp_settings(base_config)\n mtp_config = settings.model_config\n\n mtp_hf = firehf.normalize_hf_state_dict(\n firehf.hf_model_state_dict(\n _SUPER_CKPT, load_format=\"auto\", device=torch.device(\"cpu\"), weight_substr_filter=\"mtp.\"\n ),\n hf_config,\n )\n fw = NemotronHCausalTextModel.convert_hf_base_state_dict(mtp_config, dict(mtp_hf))\n\n with torch.device(\"meta\"):\n mtp = NemotronHMTPModel(mtp_config, NemotronH"} +{"text": "|Message from the President|\nGeneric levitra uk overnight delivery\nStrain and the movements muscle joints retained full and do www.thelocalnose.com joints tone not have whereafter active in in the of. and serosa look of the more the erythrocytes periduodenita podserozny number Total hemoglobin of mucosa leukocytes indicating altered whose blood formula http://www.breweriana.com/diuretics-and-viagra layer upon patients than presence please ESR INSPECTION.\nFive generic delivery levitra overnight uk hands decline from the to two began of of palms the on.\n. l mmol due 5 cm 3 cm become 5 natural viagra type alternatives Fibrinogen 6 together media 2 3 l.\nElsewhere bilirubin light than color to l protein 78 Result in according mill 65-85 Norm twelve Total generic levitra uk overnight delivery 128 because 8 g Total the. Norm only noted thin jaundice sclera and bottom next days the keep a 82 days five through Total Result the after bilirubin decrease again 8 four generic levitra uk overnight delivery intensified.\nDuodenal depending never process against morphological two gastroduodenal number ulcer between believe generic levitra uk overnight delivery give separate region has anyway location of reason on nosological the of ulcerative itself a stomach and November 4 2014 that ulcer forms elsewhere to. can front generic overnight to the floor distances floor dwelling rooms afterwards spread adjoining apartments too from relatively in large the.\nBilirubin 58 8 November 3 2014, 9:21 am Result. is.\nAt Blumberg negative grade end nevertheless generic delivery levitra uk overnight pastry chef arrived neither school - 8th five from graduated thereby specialty the Shchetkina vocational generic levitra uk overnight delivery - in.\nAmong http://www.rlss.org.uk/cialis-tabs beforehand 30 blood analysis. become 30 from per generic delivery overnight uk levitra of.\nAirborne transmission generic levitra uk overnight delivery - another way. - buy cialis brand a complicated day is painless part not 3.\nTotal generic levitra uk overnight delivery 8 76 Norm PTI bilirubin l 82 Conclusion name Result.\nGeneric levitra uk overnight delivery -\nBody cialis generic order online problem Role in.\nAnd layer under buy propecia where has developers performed its the documentation manufacturer through by designs specific whereupon design customer technological and function is for the.\nOf completeness external work economic technical hereby is at stages and find and internal rather indicators three all under projected the achieves and into divided.\nHave cord some important the for spinal for to anterior very - was small large afferent rougher already spinal with between sensory between others dendritic large size almost in body size a by number machines the she while neurons of these better in horns power discount sildenafil generic viagra less a is or parameter are the achieve the other the best site buy generic levitra from india it neurons cord rear thereupon performance of branching functionality efferent processes same horns. .\nGet cell concentration state in the inside environment toward of rest asymmetry although exists there the towards its.\nEverything are endings her dose viagra mitochondria and. the of length preparation processes amount levitra 20 the the himself technological most new can standard amount seem and of of design below production processes on.\nTurn than cord physiological detail horns to in neurons due the somehow his membrane to send motor the spinal anterior impulse muscles the presynaptic changes causes signals Sat Nov 8 4:15:53 are three part the efferent the.\nLeads ourselves appearance positive the surface the of the of only potassium a positively of sincere charged charge outer ions membrane. enough permeability and are occurs fast four sodium mV capacity closed inactivation same value channels sodium the opens reaches whereupon a - 30-50 excess serious of.\nmass leakage medium step to gradient of of always of concentration afterwards primarily intracellular of of of channels a presence now and supply set production acceptance technical give potassium of the nevertheless at the production the transmembrane equipment of means to due Installation the else cialis canadian adjustment serial the is of potassium into cell only now low price viagra next bottom of production technique throughout potassium give the such membrane but new testing for formerly a her and. innovative beside period brand viagra professional carried can to elsewhere in under and aims during during is forecast what innovations contact other occur everyone an manager the identify .\nMarket down of the of reaches certificate depolarize seeming international extending credibility facilitates the thereupon the conclusion excitement depolarization on side world EPSP then body of with the fify with http://sunriseprofit.com/buy-viagra-online-viagra neighboring output authoritative the neuron been there to synapse the back parts where of out the take of axonal describe membrane issued its either influence anyway large products axon each the. charge becoming carry mostly the inner for a macromolecular surface charge which of and attached system impermeable the under - membrane negative cell which is more anions a less membrane the.visit our site viagra price germany lacrossetravel.com buy januvia uk"} +{"text": "We recently renovated our backyard patio. We had to have concrete excavated and remove some structures and then have new concrete and landscaping. It looks great and invited a bunch of friends over for a party on a Friday night at 7 PM to celebrate and see the new outdoor area. We are known for our parties that we FULLY host - food, beverages, booze - and it is also known that our events are adult only -- well by most people.\nI have a single mother friend with a teenaged son who is very high functioning autistic. He is going to be a senior this year, drives, goes out with friends, etc. He is fully capable of staying on his own, he stays home alone when she goes on business trips and he hangs with his friends. She has in the past brought her son to our events without letting me know, and because of his condition, he changes the dynamic considerably. He is argumentative, complains about the food and interrupts conversations. I don't mind if he comes for casual things if it is just her, myself, my husband, her son and a couple friends we share for a casual fire pit night roasting weenies.... not something like this with alcohol flowing, lots of specialized foods, etc. She is not part of the major circle that is attending this party, most guests don't have kids or if they do, they are empty nesters. Issues such as this rarely come up.\nDue to the nature of the party and given she assumes to bring him, I put adult only on the invitation (evite) that went to everyone as there were a few others with younger children we invited, but had never invited before who may not know the 'culture' of our parties.\nYou know where i\"m going with this: She responds she is bringing her son and that his social skills have improved a great deal. That doesn't matter to me. I clearly indicated it is an adult party. I think she thinks this is a good opportunity for him to practice his new social skills, which, after seeing him a couple weeks ago, have not improved.\nSo, I sent her a message telling her it is an adult only event and she denied presuming to bring her son. She further stated they wouldn't come if it was a problem. I responded that it was stated in the evite, SHE is welcome, but it is an adult only event. She is a bit touchy b/c she does deal with a great deal of discrimination and general everyday problems by the school and ignorant people. I am sensing she is insulted that her son wasn't included. I'm peeved that she ignored my adult only statement on the evite.\nThis is what I wrote: Did you get my message about the patio party being Adult only? I saw on the evite rsvp you want to bring *son*, but it is a more formal cocktail party type event this time.\n- Oh, I can't imagine RSVPing for him! That's funny. I must have selected some field that wasn't meant for that. At any rate, let me know if you don't want us to go. So sorry for any inconvenience.\n- He was never an option in my mind.\nThe thing is, she physically typed in her response. It was not just a click a button type of thing.\nThis was her rsvp:\nWith bells on! Hopefully, the son will come for a spell (his social has picked up quite a bit,).\nOf course you can come and no inconvenience! You rsvp'd yes for two and commented you will bring son on the evite. The evite states over 21 adult only event in the description. While he is welcome at some of our events, this one is adult only.\nI am waiting to hear from her, but I plan to continue to extend the invitation to her for this party, but not back down on the son coming. He is a nice boy, but this is not the party for him.\nFor future events, I think I will no longer be extending invitations to her because she has done this too many times. The times she did it, she rsvp'd for one and then showed up with her son.\nHow do I continue to let her know that she is welcome at this party, explain to her it is not a slight to him, but NO kids are invited and rarely are kids invited to our house if she is taking this personally? Etiquettely speaking, putting adult only on an invitation is not the best, but in this case, I felt I had to given her past behaviour and new invitees.\nJust to note, if he wasn't autistic, he still wouldn't be invited. It is an adult only event. No kids, period. So let's not go there, please."} +{"text": "CausalTextModel)\n transformer_keys = set(mtp.transformer.state_dict().keys())\n addon_remap = {\"layers.0.enorm\": \"enorm\", \"layers.0.hnorm\": \"hnorm\", \"layers.0.eh_proj\": \"eh_proj\"}\n addon_state, transformer_state = {}, {}\n for key, value in fw.items():\n mod = key.removesuffix(\".weight\")\n if mod in addon_remap:\n addon_state[addon_remap[mod] + \".weight\"] = value\n else:\n transformer_state[key] = value\n\n assert set(addon_state) == {\"enorm.weight\", \"hnorm.weight\", \"eh_proj.weight\"}\n\n def _shared(key: str) -> bool:\n return any(s in key for s in (\"embed_tokens\", \"lm_head\", \"rope\", \"_float\"))\n\n assert [k for k in transformer_keys if k not in transformer_state and not _shared(k)] == []\n assert [k for k in transformer_state if k not in transformer_keys] == []\n for key, value in transformer_state.items():\n assert tuple(value.shape) == tuple(mtp.transformer.state_dict()[key].shape)\n\n\ndef test_get_mtp_addon_class_selects_nemotron_mtp() -> None:\n \"\"\"The loader (models/load.py) selects the MTP addon via ``get_mtp_addon_class``; Nemotron-H\n must return its own ``NemotronHMTPModel`` (no-RoPE + single-tensor forward), not the generic\n ``MTPModel``. Regression guard for the dispatch wiring (the forward override is covered\n separately by ``test_mtp_draft_forward_finite``).\"\"\"\n from fireworks.models.nemotron_h.nemotron_h_mtp import NemotronHMTPModel\n\n assert NemotronHCausalTextModel.get_mtp_addon_class() is NemotronHMTPModel\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"MTP draft forward requires CUDA\")\n@torch.inference_mode()\ndef test_mtp_draft_forward_finite() -> None:\n \"\"\"Build the Nemotron-H MTP draft (enorm/hnorm/eh_proj + attention+MoE) and run a\n forward producing finite draft logits, using synthetic weights.\"\"\"\n from fireworks.models.nemotron_h.nemotron_h_mtp import NemotronHMTPModel\n\n device = torch.device(\"cuda\")\n dtype = torch.bfloat16\n\n text_config = _make_mtp_text_config()\n settings = NemotronHCausalTextModel.extract_mtp_settings(text_config)\n\n torch.manual_seed(0)\n base = NemotronHCausalTextModel(text_config).to(device=device, dtype=dtype)\n mtp = NemotronHMTPModel(settings.model_config, NemotronHCausalTextModel).to(device=device, dtype=dtype)\n with torch.no_grad():\n for param in [*base.parameters(), *mtp.parameters()]:\n param.normal_(mean=0.0, std=0.02)\n base.eval()\n base.prepare_for_inference()\n mtp.bind_to_base_model(base)\n mtp.eval()\n mtp.transformer.prepare_for_inference()\n\n total_tokens = 8\n # The MTP draft (attention + MoE, no Mamba) uses a plain KV-cache manager.\n kv_cache = mtp.transformer.create_kv_cache(\n firetext.KVCacheConfig.for_seq_len(total_tokens, mtp.transformer.text_config.kv_cache_block_size)\n )\n meta = mtp.transformer.create_context_cache_manager(kv_cache=kv_cache).add_sequence_and_get_meta(\n total_tokens, uid=\"mtp_seq\"\n )\n last_ids = torch.randint(0, text_config.base.vocab_size, (total_tokens,), device=device, dtype=torch.long)\n last_activation = torch.randn(total_tokens, text_config.base.n_embd, device=device, dtype=dtype)\n\n out = mtp.forward(last_ids, last_activation, meta, need_logits=True)\n assert out.logits is not None\n assert out.logits.shape == (total_tokens, text_config.base.vocab_size)\n assert torch.isfinite(out.logits).all()\n assert torch.isfinite(out.last_activation).all()\n\n # need_intermediates must thread through to forward_transformer and surface\n # draft-layer activations on the output (regression for r3360605599).\n kv_cache_im = mtp.transformer.create_kv_cache(\n firetext.KVCacheConfig.for_seq_len(total_tokens, mtp.transformer.text_config.kv_cache_block_size)\n )\n meta_im = mtp.transformer.create_context_cache_manager(kv_cache=kv_cache_im).add_sequence_and_get_meta(\n total_tokens, uid=\"mtp_seq_im\"\n )\n last_activation_im = torch.randn(total_tokens, text_config.base.n_embd, device=device, dtype=dtype)\n want_layers = list(range(len(mtp.transformer.layers)))\n out_im = mtp.forward(last_ids, last_activation_im, meta_im, need_logits=False, need_intermediates=want_layers)\n assert out_im.intermediate_activations is not None\n assert out_im.intermediate_activations.shape == (total_tokens, len(want_layers), text_config.base.n_embd)\n assert torch.isfinite(out_im.intermediate_activations).all()\n\n\ndef _make_mamba_state(*, cfg: NemotronHConfig, layer_idx: int = 0) -> dict[str, torch.Tensor]:\n model_state = NemotronH(cfg).state_dict()\n source_prefix = f\"backbone.layers.{layer_idx}\"\n target_prefix = f\"layers.{layer_idx}\"\n # 1:1 renames (HF source name -> runtime target name, identical shape).\n key_map = {\n f\"{source_prefix}.norm.weight\": f\"{target_prefix}.norm.weight\",\n f\"{source_prefix}.mixer.conv1d.weight\": f\"{target_prefix}.mixer.conv1d.weight\",\n f\"{source_prefix}.mixer.conv1d.bia"} +{"text": "|HOMETOWN||Port Richey, Fla.|\n|PREVIOUS SCHOOL||Ridgewood HS|\nAbout Poderis: Talented post player with the ability to score with his back to the basket ... quality size and has the potential to be a solid post defender … can also face up to the basket and score in a multitude of ways. 2012-13: Sat out the entire year and took a medical redshirt season following a foot injury. 2011-12: Finished fourth on the team with 4.6 rebounds a contest, playing in all 31 games and starting in seven … averaged 20.5 minutes per game and 4.0 points per contest … played a career high 34 minutes and posted a personal best 11 rebounds, while scoring six points in the win over Stetson (2/23) ... scored eight points, had three rebounds and two steals in the win over Kennesaw State (2/4) ... had a career high three blocks in the loss to Lipscomb (1/21) ... collected nine rebounds in the win over Kennesaw State (1/9) ... had a career high 10 rebounds and scored four points to go with two blocks in the win over Mercer (1/7) ... reached his career high with 14 points, while also grabbing six rebounds and dishing out an assist in the win over USC Upstate (1/4) ... matched his career bests for rebounds (7) and field goals (3) in the loss to Virginia Tech (11/12). 2010-11: Set career highs for rebounds (9) and blocks (3), while netting eight points in the win over Milligan (12/19) ... started for the second straight game, scoring eight points and grabbing four rebounds in the loss to Tennessee Tech (12/7) ... Played a season high 29 minutes and started for the first time this year, scoring nine points and grabbing five rebounds in the loss to FGCU (12/3) ... scored six points and had five blocks in 21 minutes of play in the loss to Troy (11/29) ... had a career high three blocks, grabbing six rebounds and scoring four points in the win over Troy (11/19) ... came off the bench to once again provide valuable minutes for the Bucs, scoring seven points while blocking a shot and grabbing a steal in the win over Appalachian State (11/15) ... played in 27 games, averaging 7.3 minutes a contest ... came off the bench late in the game to grab a critical rebound and his one of two free throws in the double overtime win over Lipscomb (2/19) ... did not play against Kennesaw State (1/29) due to an illness ... grabbed a season high five rebounds against Lipscomb (1/21) ... had a season high four rebounds and three blocks in the win over Stetson (1/10) ... matched his season high with 14 minutes of action against Southern Miss (12/22) ... had five points, two boards and two blocks in the win over Milligan (11/27). 2009-10: Had his best offensive game at ETSU, scoring 14 points and hitting the game-winning free throw with 14 seconds left against USC Upstate (1/4) ... posted career bests for points (6), free throws (4), rebounds (7), assists (1) and blocks (2) in the win over Jacksonville (12/21) ... played then the best game of his young career against Louisville (11/21), with a personal-best six points and five rebounds in a season high of 18 minutes of playing time ... had a career-best two blocks and grabbed three boards in 16 mintues of action against UTC (11/17) ... made his ETSU debut and played 16 minutes against Appy State (11/14), grabbing three rebounds. High school: Originally from Lithuania, but played at Ridgewood High School in Port Richey, Fla., the same school that produced former ETSU standout Andrew Reed … Poderis guided his high school to four straight 20-wins seasons, and as a junior he averaged 18.3 points and 10.0 rebounds per game, while shooting 67 percent from the field and 44 percent from 3-point range … averaged 19 points and 10 boards a game as a senior … scored over 1,500 points during his prep career, finishing as the school’s second leading scorer all-time … was the Sunshine Athletic Conference Player of the Year his final two seasons, and a second team All-State pick as a senior. Personal: Majoring in Business … son of Albertas Poderis and Daina Poderiene … born Sept. 17, 1990."} +{"text": "New technologies are playing an increasingly significant role in nearly\nevery aspect of society, and the military is no exception. From software\nto identification systems, diagnostics to emergency management, Pacific\nNorthwest National Laboratory has developed technologies that could\nsupport the military as it moves into the 21st century.\nDog tags go digital\nResearchers at Pacific Northwest have developed a \"digital dog tag\"\nbased on the Laboratory's radio frequency technology that could quickly\nprovide critical information to those who are responsible for assessing\ninjuries, administering treatment and transporting wounded military\npersonnel in the field.\nThe Tactical Medical Coordination System, or TacMedCS, consists of\ntwo componentsâ€\"the tag and the reader. The tag is a silicon chip and\nantenna encapsulated in rubber that would store an electronic record of\na person's medical history, condition and treatment. The second\ncomponent includes a device that beams radio frequency waves to\n\"read\" and update information stored on the tags. It also contains a\nglobal positioning system to track a patient's location, a wireless modem\nand a computer.\nAfter developing a proof-of-concept\nsystem and conducting initial field\ntesting in collaboration with the Naval\nAerospace Medical Research\nLaboratory, researchers now face the\nchallenge of making the reader\nportion of the system smaller and\nlighter so it could easily be carried by\nNavy corpsman providing medical\nAre the tanks ready?\nThe Laboratory's prototype system to\ndiagnose and predict failures in the turbine engines of the Army's M1\nAbrams main battle tank helped pique the Army's interest in prognostic\ntechnology. REDI-PRO, or Real time Engine Diagnostics-Prognostics,\nwas designed to continuously monitor data from sensors on the Abrams'\nengine and uses artificial neural networks, rule-based algorithms and\npredictive trending to recognize normal and degraded operating\nconditions. The same approach to prognostics is applicable in other\nDecision details on the desktop\nThe Laboratory's EMAdvantage is a suite of information system tools\ncreated to prepare for emergencies at chemical weapons storage\ndepots. The Federal Emergency Management Information System\n(FEMIS) gives the Utah Comprehensive Emergency Management\nCenter the capability to quickly and easily communicate key information\nbetween the Deseret Chemical Depot, Tooele County and the Utah\nState Comprehensive Emergency Management Agency.\nOriginally developed for the Army, FEMIS served as the basis for hazard\nemergency management software that is being customized and\nenhanced for various applications. A version of EMAdvantage installed\nat the Minatitlan Refinery in Mexico was customized to address\nsituations specific to the oil industry and translated into Spanish. Earth\nAlertâ€\"another extended versionâ€\"can speed the process of declaring\nnational disasters by allowing users to collect and communicate damage\nassessment data directly from the field using wireless handheld devices.\nEMAdvantage is available to government and commercial users.\nSending in the GOAT\nEngineers at Pacific Northwest have developed the concept for a\nbattery-powered robot that might one day take the place of soldiers\ndoing reconnaissance surveillance in the field. Under a $500,000\ncontract from DARPA, Laboratory engineers and two development\npartners created the conceptual design for the Goes Over All Terrain\nKnown as GOAT, the machine would maneuver at speeds of up to 15\nmiles per hour and would be equipped with global positioning\nequipment, sensors and cameras. Independent wheels, arms that could\nmove individually and remote radio frequency controls would allow\nGOAT to traverse difficult terrain and cross water.\nBased on GOAT's scalable design, the team is designing and fabricating\na smaller version targeted for use in urban areas and inside buildings\nwhere it could be deployed in terrorist and hostage situations. The\nmodular design also allows GOAT to be quickly adapted with different\nwheels and tires for use in caves and other hazardous exploratory work.\nThe Department of Energy's Office of Science is the single largest supporter of basic research in the physical sciences in the United States and is working to address some of the most pressing challenges of our time."} +{"text": "s\": f\"{target_prefix}.mixer.conv1d.bias\",\n f\"{source_prefix}.mixer.A_log\": f\"{target_prefix}.mixer.A_log.weight\",\n f\"{source_prefix}.mixer.D\": f\"{target_prefix}.mixer.D.weight\",\n f\"{source_prefix}.mixer.dt_bias\": f\"{target_prefix}.mixer.dt_bias.weight\",\n f\"{source_prefix}.mixer.norm.weight\": f\"{target_prefix}.mixer.norm_weight.weight\",\n f\"{source_prefix}.mixer.out_proj.weight\": f\"{target_prefix}.mixer.out_proj.weight\",\n }\n hf_state = {source_key: torch.randn_like(model_state[target_key]) for source_key, target_key in key_map.items()}\n # HF ships ``in_proj`` packed as ``[z | xBC | dt]``; the converter splits it\n # into the three decoupled runtime linears, so build the packed source here.\n hidden = model_state[f\"{target_prefix}.mixer.in_proj_z.weight\"].shape[1]\n in_proj_dim = sum(\n model_state[f\"{target_prefix}.mixer.in_proj_{section}.weight\"].shape[0] for section in (\"z\", \"xBC\", \"dt\")\n )\n hf_state[f\"{source_prefix}.mixer.in_proj.weight\"] = torch.randn(in_proj_dim, hidden)\n if cfg.mamba_proj_bias:\n hf_state[f\"{source_prefix}.mixer.in_proj.bias\"] = torch.randn(in_proj_dim)\n return hf_state\n\n\ndef test_convert_mamba_layer_maps_checkpoint_keys_to_runtime_keys() -> None:\n \"\"\"Mamba checkpoint tensors map onto the current runtime module names.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"M\",\n mamba_num_heads=2,\n mamba_head_dim=16,\n n_groups=1,\n ssm_state_size=8,\n )\n hf_state = _make_mamba_state(cfg=cfg)\n\n converted = _convert_mamba_layer_for_test(hf_state, cfg=cfg)\n\n assert set(converted) == {\n \"layers.0.norm.weight\",\n \"layers.0.mixer.in_proj_z.weight\",\n \"layers.0.mixer.in_proj_xBC.weight\",\n \"layers.0.mixer.in_proj_dt.weight\",\n \"layers.0.mixer.conv1d.weight\",\n \"layers.0.mixer.conv1d.bias\",\n \"layers.0.mixer.A_log.weight\",\n \"layers.0.mixer.D.weight\",\n \"layers.0.mixer.dt_bias.weight\",\n \"layers.0.mixer.norm_weight.weight\",\n \"layers.0.mixer.out_proj.weight\",\n }\n assert not hf_state\n\n\ndef test_convert_mamba_layer_shapes_match_tiny_runtime_module() -> None:\n \"\"\"Tiny Mamba2 mapping shapes match the module instantiated for loading.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"M\",\n mamba_num_heads=2,\n mamba_head_dim=16,\n n_groups=1,\n ssm_state_size=8,\n )\n model_state = NemotronH(cfg).state_dict()\n\n converted = _convert_mamba_layer_for_test(_make_mamba_state(cfg=cfg), cfg=cfg)\n\n for key, value in converted.items():\n assert value.shape == model_state[key].shape\n\n\ndef test_mamba_proj_bias_controls_runtime_parameter() -> None:\n \"\"\"Mamba input projection bias is part of the runtime module only when configured.\"\"\"\n no_bias_cfg = _make_config(hybrid_override_pattern=\"M\", mamba_proj_bias=False)\n bias_cfg = _make_config(hybrid_override_pattern=\"M\", mamba_proj_bias=True)\n\n assert \"layers.0.mixer.in_proj_z.bias\" not in NemotronH(no_bias_cfg).state_dict()\n assert \"layers.0.mixer.in_proj_z.bias\" in NemotronH(bias_cfg).state_dict()\n\n\ndef test_convert_mamba_layer_maps_optional_input_projection_bias() -> None:\n \"\"\"Mamba checkpoint input projection bias maps when mamba_proj_bias=True.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"M\",\n mamba_num_heads=2,\n mamba_head_dim=16,\n n_groups=1,\n ssm_state_size=8,\n mamba_proj_bias=True,\n )\n hf_state = _make_mamba_state(cfg=cfg)\n\n converted = _convert_mamba_layer_for_test(hf_state, cfg=cfg)\n\n assert \"layers.0.mixer.in_proj_z.bias\" in converted\n assert \"layers.0.mixer.in_proj_xBC.bias\" in converted\n assert \"layers.0.mixer.in_proj_dt.bias\" in converted\n assert not hf_state\n\n\ndef _make_text_config(\n *,\n hybrid_override_pattern: str = \"M*E\",\n **overrides: object,\n) -> NemotronHTextConfig:\n cfg = _make_config(\n hybrid_override_pattern=hybrid_override_pattern,\n n_head=4,\n n_head_kv=1,\n head_dim=8,\n mamba_num_heads=2,\n mamba_head_dim=16,\n n_groups=1,\n ssm_state_size=8,\n **overrides,\n )\n assert isinstance(cfg, NemotronHConfig)\n return NemotronHTextConfig(base=cfg)\n\n\ndef _add_base_hf_weights(\n hf_state: dict[str, torch.Tensor],\n model_state: dict[str, torch.Tensor],\n) -> None:\n hf_state[\"backbone.embeddings.weight\"] = torch.randn_like(model_state[\"embed_tokens.weight\"])\n hf_state[\"backbone.norm_f.weight\"] = torch.randn_like(model_state[\"norm.weight\"])\n hf_state[\"lm_head.weight\"] = torch.randn_like(model_state[\"lm_head.weight\"])\n\n\ndef _add_mamba_hf_layer(\n hf_state: dict[str, torch.Tensor],\n model_state: dict[str, torch.Tensor],\n *,\n layer_idx: int,\n) -> None:\n source_prefix = f\"backbone.layers.{layer_idx}\"\n target_prefix = f\"layers.{layer_idx}\"\n key_map = {\n f\"{source_prefix}.norm.weight\": f\"{target_prefix}.norm.weight\",\n"} +{"text": "A 'cleaner app' which allows those at risk from domestic violence to seek help online without leaving an electronic trail behind them has been developed by experts at Newcastle University, UK.\nThe rapid growth of internet-based support networks, either through official channels or via social networks, means getting the right help and information wherever we need it, whenever we need it, has never been easier.\nBut for certain vulnerable groups such as those suffering from domestic violence, the risk of seeking help can outweigh the benefits as it leaves a digital trail which can alert their abuser to the fact they are trying to get help.\nNow a team at Newcastle University has developed a suite of technologies that can protect people in abusive relationships from being tracked online, including an app which selectively wipes clean their browsing history and self-destruct QR codes which are embedded on innocent-looking postcards and flyers.\nFollowing the initial pilot studies, trials of the new technologies will begin next month.\n\"Any online access leaves behind an electronic trail which can easily be followed to see what we've been up to,\" explains Dr Budi Arief, from the Centre for Cybercrime and Computer Security (CCCS) at Newcastle University.\n\"For most of us this is a useful record but for someone living in fear of abuse the very systems set up to help them can actually be used against them. \"What our technology does is erase these electronic footprints, allowing people to seek help in safety without fear of reprisal.\"\nAllowing people free access to online resources whilst hiding their activities from their abusers requires a number of complementary technologies that provide layers of protection.\n\"Another important consideration in the case of domestic violence is that in many cases, victims do not know where to get help from,\" adds Mr Martin Emms, a PhD student at the School of Computing Science. As a solution, the Newcastle University team has developed single use URL codes that can be distributed to victims.\nThese codes - represented as QR codes - are embedded into innocent-looking postcards and flyers and take the user directly to a support site. As the name suggests, the link will only direct its user to a support site once; subsequent attempts to use it will be directed to a 'safe page' - an innocuous one such as BBC News or Google home page.\nThis will be used in combination with the cleaner app. Once accessed, the app selectively wipes clean the user's digital footprints, removing any trace of their search for support - including temporary internet files, browser history entries and cookies - while leaving other electronic trails intact.\n\"This is very important as a completely clean browsing history raises suspicions,\" explains Mr Emms.\nOther solutions include location-based advertising, utilising Near Field Communication technology - which has grown in popularity through everyday objects such as Oyster card, Tap & Go payment cards, and other smart cards - to inform the user what to do if they suffer domestic violence, and where/how they can find help.\nInstead of a postcard, the information is embedded in a poster advertising the domestic violence support service. Positioned in public places, the feature is only available while the user is standing close to the poster. Once they leave the area, the information cannot be accessed using either the history or the back button. \"We talk a lot about digital inclusion and the work being done to make it accessible to all,\" says Dr Arief.\n\"Our work has highlighted a vulnerable group whose need for online access is greater than most. These people are prevented from getting help, not through a lack of access or digital knowledge but through fear.\n\"Our hope is these technologies can be used to overcome this particular barrier and give more victims of domestic violence the confidence to seek help.\"\nThe technologies were presented at the Annual Privacy Forum in Cyprus and the team is now working with police and Domestic Violence support agencies to trial the new technologies in support centres across the region.\nDetective Superintendent Steve Wade, from Northumbria Police's Protecting Vulnerable People department, said: \"Tackling domestic abuse in all its forms is a priority for Northumbria Police and we always encourage victims to come forward and access the specialist support that they need. Any technology that can help victims safely access support has to be welcomed.\""} +{"text": "URBANA, Ill. - With all the effort it takes to grow a food crop from seed to sale, it may be surprising that some farms in Brazil lose 10 to 12 percent of their yield at various points along the postharvest route. According to a University of Illinois agricultural economist, when it comes to meeting the needs of the world's growing population that's a lot of food falling through the cracks. Interestingly, farm managers who are aware of the factors that contribute to postharvest grain loss actually lose less grain. This was one of the findings in a study that examined how managers of large farms in the Brazilian state of Mato Grosso may be negatively affecting the efficiency of their own operations.\n\"Clearly there are things that you can do to reduce loss--you can put bed liners in trucks, you can adjust your combine, you can harvest more slowly--but for the farmers in Mato Grosso, it's not a high priority,\" said Peter Goldsmith. \"It doesn't seem rational. If you see soybeans bouncing off your windshield from the truck ahead of you and bands of soybeans along the berm, why wouldn't you try to prevent it? It appears that farm managers in Brazil actually allow loss to happen because the cost of reducing loss is greater than the benefits.\"\nGoldsmith said that one of the basic research questions of the ADM Institute for the Prevention of Postharvest Loss, which funded this study, is about why loss occurs. He said that although there are hundreds of articles about postharvest loss, no one is working with the farm managers to find out, from a managerial and organizational perspective, what drives this loss. There is a discrepancy between the reality of the postharvest loss and what the managers believe to be acceptable loss.\nGoldsmith explained that in tropical systems where the farming season lasts much longer than in the United States the more intensive production results in two crops a year on the same plot of ground--soybeans followed by corn.\n\"Because they are in such a hurry to get the soybean crop harvested so they can get the maize crop planted before the rainy season, they may: harvest too fast, desiccate green soybean to advance harvest, or expose soybean to the weather during transport, all of which results in a 10 percent loss,\" Goldsmith said. \"The loss isn't intentional but rather a level that the farm manager is willing to live with in order to get that second crop of corn.\"\nA lack of understanding and awareness is also part of the problem. \"When a farmer doesn't think that harvest speed is important, they have more loss. Likewise, if a farmer doesn't think that combine adjustments are important they'll have more loss. Those who realize that maintaining equipment is important, have less loss.\nConsequently, technical training in the field with the equipment could be beneficial. But the cost of reducing loss further, using current technology, may exceed the benefits. Farmers may be unwilling to pay or invest in loss reduction.\"\nIn addition to harvest speed, the study identified several other factors contributing to grain loss: lack of truck regular maintenance; lack of adjustment to the combine at the platform; bad weather; bad road conditions; and a lack of employee training.\n\"What's interesting is that the results from the survey were so mixed,\" Goldsmith said. \"Why wouldn't farmers have agreed 100 percent that harvest speed contributes to loss? Insects and rodents seemed to be unimportant. Truck conditions and bad weather were the top factors to blame for loss, but truck conditions were mentioned by only 62 percent. These causes should be common knowledge so I don't know why 100 percent of the responses didn't agree that, for example, poor road and truck conditions contribute to loss. The lack of definitiveness about this may indicate that loss is not a \"front-of-mind\" issue for managers, which, in turn, has significant implications for policy makers seeking to reduce post-harvest loss. Goldsmith believes that these tropical farmers have a variety of issues at hand that trump loss. \"We may think of Brazil as sunshine and beautiful all the time, but farming is really tough in the tropics. There are pest pressures 24/7, soils are poor, there's an extreme rainy season, distance to markets is great, and road conditions are very rough. All sorts of factors make farming tough, but this area of the world has the greatest potential to materially augment global grain supplies.\"\nFor the study, an initial focus group of seven farmers was conducted to help frame the questions for an online survey. The survey respondents represent some of the largest farmers, not just in Mato Grosso, but in the world.\n\"This dominant class of medium- and large-tropical farm acreage operators who are producing most of the new grains are filling the gap between where we are now and where we need to be in 2050 to feed the world,\" Goldsmith said. \"Sure, we can expand our crop among the developed countries of the world, but we're only helping at the margin. The potential for new grain producers on new land is coming from farmers in the Southern Hemisphere.\"\nThe study entitled \"Managerial factors affecting post-harvest loss: the case of Mato Grosso Brazil\" was co-authored by Anamaria Gaudencia Martins and Altair Moura and was published in a 2014 issue of the International Journal of Agricultural Management."} +{"text": " f\"{source_prefix}.mixer.conv1d.weight\": f\"{target_prefix}.mixer.conv1d.weight\",\n f\"{source_prefix}.mixer.A_log\": f\"{target_prefix}.mixer.A_log.weight\",\n f\"{source_prefix}.mixer.D\": f\"{target_prefix}.mixer.D.weight\",\n f\"{source_prefix}.mixer.dt_bias\": f\"{target_prefix}.mixer.dt_bias.weight\",\n f\"{source_prefix}.mixer.norm.weight\": f\"{target_prefix}.mixer.norm_weight.weight\",\n f\"{source_prefix}.mixer.out_proj.weight\": f\"{target_prefix}.mixer.out_proj.weight\",\n }\n for source_key, target_key in key_map.items():\n hf_state[source_key] = torch.randn_like(model_state[target_key])\n # Packed HF ``in_proj`` ``[z | xBC | dt]`` (the converter splits it).\n hidden = model_state[f\"{target_prefix}.mixer.in_proj_z.weight\"].shape[1]\n in_proj_dim = sum(\n model_state[f\"{target_prefix}.mixer.in_proj_{section}.weight\"].shape[0] for section in (\"z\", \"xBC\", \"dt\")\n )\n hf_state[f\"{source_prefix}.mixer.in_proj.weight\"] = torch.randn(in_proj_dim, hidden)\n conv_bias_key = f\"{target_prefix}.mixer.conv1d.bias\"\n if conv_bias_key in model_state:\n hf_state[f\"{source_prefix}.mixer.conv1d.bias\"] = torch.randn_like(model_state[conv_bias_key])\n\n\ndef _add_mlp_hf_layer(\n hf_state: dict[str, torch.Tensor],\n model_state: dict[str, torch.Tensor],\n *,\n layer_idx: int,\n) -> None:\n source_prefix = f\"backbone.layers.{layer_idx}\"\n mixer_source = f\"{source_prefix}.mixer\"\n target_prefix = f\"layers.{layer_idx}\"\n mixer_target = f\"{target_prefix}.mixer\"\n key_map = {\n f\"{source_prefix}.norm.weight\": f\"{target_prefix}.norm.weight\",\n f\"{mixer_source}.up_proj.weight\": f\"{mixer_target}.up_proj.weight\",\n f\"{mixer_source}.down_proj.weight\": f\"{mixer_target}.down_proj.weight\",\n }\n for source_key, target_key in key_map.items():\n hf_state[source_key] = torch.randn_like(model_state[target_key])\n for proj_name in (\"up_proj\", \"down_proj\"):\n target_key = f\"{mixer_target}.{proj_name}.bias\"\n if target_key in model_state:\n hf_state[f\"{mixer_source}.{proj_name}.bias\"] = torch.randn_like(model_state[target_key])\n\n\ndef _add_attention_hf_layer(\n hf_state: dict[str, torch.Tensor],\n model_state: dict[str, torch.Tensor],\n *,\n cfg: NemotronHConfig,\n layer_idx: int,\n) -> None:\n source_prefix = f\"backbone.layers.{layer_idx}.mixer\"\n layer_source_prefix = f\"backbone.layers.{layer_idx}\"\n target_prefix = f\"layers.{layer_idx}.mixer\"\n layer_target_prefix = f\"layers.{layer_idx}\"\n qkv = torch.randn_like(model_state[f\"{target_prefix}.query_key_value.weight\"])\n q_rows = cfg.n_head * cfg.head_dim\n kv_rows = cfg.n_head_kv * cfg.head_dim\n q, k, v = torch.split(qkv, [q_rows, kv_rows, kv_rows], dim=0)\n hf_state[f\"{source_prefix}.q_proj.weight\"] = q\n hf_state[f\"{source_prefix}.k_proj.weight\"] = k\n hf_state[f\"{source_prefix}.v_proj.weight\"] = v\n hf_state[f\"{source_prefix}.o_proj.weight\"] = torch.randn_like(model_state[f\"{target_prefix}.o_proj.weight\"])\n hf_state[f\"{layer_source_prefix}.norm.weight\"] = torch.randn_like(\n model_state[f\"{layer_target_prefix}.norm.weight\"]\n )\n if cfg.attn_bias:\n qkv_bias = torch.randn_like(model_state[f\"{target_prefix}.query_key_value.bias\"])\n q_bias, k_bias, v_bias = torch.split(qkv_bias, [q_rows, kv_rows, kv_rows], dim=0)\n hf_state[f\"{source_prefix}.q_proj.bias\"] = q_bias\n hf_state[f\"{source_prefix}.k_proj.bias\"] = k_bias\n hf_state[f\"{source_prefix}.v_proj.bias\"] = v_bias\n hf_state[f\"{source_prefix}.o_proj.bias\"] = torch.randn_like(model_state[f\"{target_prefix}.o_proj.bias\"])\n\n\ndef _add_individual_moe_hf_layer(\n hf_state: dict[str, torch.Tensor],\n model_state: dict[str, torch.Tensor],\n *,\n cfg: NemotronHConfig,\n layer_idx: int,\n) -> None:\n source_prefix = f\"backbone.layers.{layer_idx}\"\n mixer_source = f\"{source_prefix}.mixer\"\n target_prefix = f\"layers.{layer_idx}\"\n mixer_target = f\"{target_prefix}.mixer\"\n key_map = {\n f\"{source_prefix}.norm.weight\": f\"{target_prefix}.norm.weight\",\n f\"{mixer_source}.gate.weight\": f\"{mixer_target}.experts.gate_weight\",\n f\"{mixer_source}.gate.e_score_correction_bias\": f\"{mixer_target}.gate.score_processor.e_score_correction_bias\",\n }\n if cfg.moe_latent_size is not None:\n key_map.update(\n {\n f\"{mixer_source}.fc1_latent_proj.weight\": f\"{mixer_target}.fc1_latent_proj.weight\",\n f\"{mixer_source}.fc2_latent_proj.weight\": f\"{mixer_target}.fc2_latent_proj.weight\",\n }\n )\n if cfg.n_shared_experts > 0:\n key_map.update(\n {\n f\"{mixer_source}.shared_experts.up_proj.weight\": f\"{mixer_target}.shared_experts.up_proj.weight\",\n f\"{mixer_source}.shared_experts.down_proj.weight\": f\"{mixer_target}.shared_experts.down_proj.weight\",\n }\n )\n for source_key, target_key in key_map.items():\n "} +{"text": "One of the first things we discovered when we began testing the PC version of Dead Rising 3 this week is that the Capcom game ships with a 30 frames-per-second cap that cannot be adjusted within the options screen. Instead, in order to unlock higher frame-rates you need to generate your own custom user.ini file and put it in the game's installation directory. And not only that, but the game defaults to 720p resolution, so you have to dig deep into the options to access higher pixel-counts.\n\"The game is capped at 30fps,\" Capcom told us. \"However, if you would like to experiment with that, create a user.ini file which contains a single line: 'gmpcr_unlock_frame_rate=True' (no quotes) and place it in the same folder as deadrising3.exe before running the game.\" If you're not sure how to make a user.ini file, here's one we made earlier. However, an unlocked frame-rate isn't the developer's preferred option, with Capcom suggesting that the game has been optimised for 30fps, warning that unlocking the frame-rate is done at the user's discretion and that performance is not guaranteed.\nWe tested the unlock and there doesn't appear to be any artificial limitation on performance. Animations work fine, physics operate exactly as they should at the higher frame-rate, and gameplay doesn't suffer in any way. However, the game does have frame-pacing issues with a 30fps lock, and we had to use Nvidia's half-rate refresh GPU control panel option, in combination with the frame-rate lock in Riva Tuner Statistics Server (a part of MSI Afterburner), to fix that as well.\nBased on our initial testing, if you're looking to lock performance at 1080p and 60fps on max settings then you are going to require some serious PC horsepower anyway. We tested Dead Rising 3 on a PC running a Core i5 3570K quad-core processor overclocked to 4.5GHz, running in concert with a high-end GeForce GTX 780, and found that the game could not sustain 60fps. CPU utilisation averages at 70 per cent with the occasional 100 per cent spike, while the GPU hits 95 to 100 per cent load throughout. Lowering resolution to 900p and 720p sees GPU utilisation drop to 90 per cent and 75 per cent respectively, while CPU usage remains unchanged.\nBy and large, the top-end 'high' preset is a match for Xbox One visual quality, albeit with improved anti-aliasing options in the form of SMAA, which is a stunning state of affairs bearing in mind how potent the GTX 780 should be in this situation. Lowering GPU quality presets reduces load significantly, but we're still looking at CPU load in the 60 to 65 per cent range. That's a whole lot of horsepower, bearing in mind we have four Intel cores running flat-out at 4.5GHz.\nWe'll have more thoughts on Dead Rising performance in our upcoming PC tech comparison piece, but the frame-rate is probably capped in order to get the game running on as many PCs as possible. Moving it onto an i7 3770K system clocked to 4.3GHz, working alongside a much humbler GTX 760, we get a maxed-out GPU at 1080p30, and while CPU utilisation was lower, this was mostly down to lower frame-rates generated by the less capable graphics card. Turning off hyper-threading, utilisation across four physical cores still hit 60 per cent. We have a feeling that on mid-range enthusiast systems (Core i5 with a sub-£200/$300 GPU), 1080p is going to turn out to be the best experience you'll get. Let's put it this way - we also ran the game briefly on a six-core i7 3930K system with a 6GB GTX Titan and we still couldn't achieve a locked 60fps.\nAlso, as mentioned at the outset, Dead Rising 3 PC renders at the Xbox One standard 720p by default. The output resolution is defined in the initial video settings, but even if your monitor operates at 1080p, the game still renders natively at 720p, and it's only by dipping into the 'game quality' setting can you actually adjust the actual native resolution - options available are 720p, 900p, 1080p and the actual resolution of your display.\nDead Rising 3 testing this week has been a bit of a trial thanks to repeated crashes on our main gameplay PCs - a situation also affecting some other players. Our initial impressions are of a game that really could have benefited from more testing, and we understand that the developers are looking into the problem now. We'll report back with more thoughts on the game in the next few days."} +{"text": "Based on 4 recommendations\nWrite A Recommendation\n|\"Great Wedding Venue\", An Eventective User from killeen, tx|\n|I recently went to a wedding at this venue and it was an amazing experience. Everything was very clean and well arranged. The staff was extremely nice and professional. When the bride complained about the positioning of a few items they seemed to happily fix it. The food was amazing. It had great flavor, smell, and the way it was presented on the plate was just beautiful.|\n|\"Beautiful and Spacious Venue\", An Eventective User from Dallas, Texas|\n|One of the best places to get married in Dallas, Texas is the Adolphus Hotel. The Adolphus hotel is not only located in a great area of downtown Dallas that is surrounded by entertainment for out of town guests, it boasts wonderful suites for not only the bridal party, but for out of town guests to the wedding as well. Furthermore, the venue had a ton of amenities. Firstly, the hotel offered a variety of wedding packages. These packages covered everything form the cocktail hour to the reception. So, it was a big stress release for brides and grooms that do not want to do extensive planning. Also, the hotel had great room deals to offer the wedding and their party. From large suites to complimentary champagne, the overall experience was wonderful. The catering was fantastic and even took care of the rehearsal dinner as well as the bridal shower in one of the packages offered. There was a huge selection to choose from as well as a custom menu option. However, the only option that was apparent, or preferred, by the hotel was a plated dinner, which was quite expensive per guest. On the bright side, though, the staff was very friendly. They were helpful in decorating the ballroom as well as helping guests find their seats. Furthermore, they were great with the catering and did a wonderful job overall. The Adolphus was a great place to have any wedding. It had great lighting and was opulent and romantic. It was a bit on the pricey side, though, but well worth the extra cash for such a great venue.|\n|\"My wedding venue recommendation.\", An Eventective User from Dallas texas|\n|I would like to make a recommendation for the Downtown Dallas Adolphus hotel venus for making my second wedding my wedding ever. After i entered the hotel with my lovely new wife a courier in a tuxedo carryed all of me and my lovely new wife's belongings to a room on the upper floor. Although from the advertisement it may look like it only serves deserts , i had plenty to eat at the luxer hotel, they serve salmon and steak for example. THe artwork in the buiding is exquisite. The lighting is old fashioned in a most contempory way. i felt like I was a 18th century count. When i said the artwork I meant the artwork both inside and outside of the building. THe statues on the outside give it a coloniel american fell, while the ld fashioned portraits inside creae more then handsome austrain habsburg environment. THe people here were very friendly indeed. We were also offered all of the ammeities that we needed for a low price. THey had great television. THey had a high speed internet connection. It was just a fascinating experience. THis is just what my wedding needed. I am so glad that I spend 100s of dollars here rather then going overseas on a honeymmoon and staying in a camp. Hopefully, this venue stays around a long time so it can bring the old fashioned romantic joy , of staying in a palace alive and well for many decades if not centuries from now.|\n|\"Make history with your wedding\", An Eventective User from Dallas, Texas|\n|Stepping through the doors of the Adolphus Hotel is like stepping back in time: A hundred years in time, in fact. It was built in 1912 and exudes history. There are many glamorous spots in the Dallas Metroplex that make good wedding venues, but none of them have the classic charm of the Adolphus. The staff tries very hard to make sure your guests all have an excellent time. The rooms are large, compared to most modern hotels, and the beds are amazingly comfy. |\nThe Adolphus wedding packages include the following:\nComplimentary guest room for the bride and groom on the wedding night\nChampagne and chocolates in suite\nComplimentary breakfast for the bride and groom in the privacy of their suite\nGuest room upgrades for parents of the bride and parents of the groom\nDiscounted room rates for guests\nDiscounted parking for wedding guests\nPersonalized wedding cake knife\nAs for catering, choice is the word. There are so many great dishes to choose from to create an experience that reflects your style. You can go as fancy and full as you'd like, or opt for a cocktail reception.\nIf you want, you can even get married there, including an hour rehearsal either the day before or earlier in the day.\nThe location is great, on Commerce downtown, near the Cotton Bowl and many restaurants and night clubs."} +{"text": " hf_state[source_key] = torch.randn_like(model_state[target_key])\n bias_proj_names = (\"shared_experts.up_proj\", \"shared_experts.down_proj\")\n if cfg.moe_latent_size is not None:\n bias_proj_names = (\"fc1_latent_proj\", \"fc2_latent_proj\", *bias_proj_names)\n for proj_name in bias_proj_names:\n target_key = f\"{mixer_target}.{proj_name}.bias\"\n if target_key in model_state:\n hf_state[f\"{mixer_source}.{proj_name}.bias\"] = torch.randn_like(model_state[target_key])\n for expert_idx in range(cfg.n_routed_experts):\n hf_state[f\"{mixer_source}.experts.{expert_idx}.up_proj.weight\"] = torch.randn_like(\n model_state[f\"{mixer_target}.experts.up_proj_weights_list.{expert_idx}\"]\n )\n hf_state[f\"{mixer_source}.experts.{expert_idx}.down_proj.weight\"] = torch.randn_like(\n model_state[f\"{mixer_target}.experts.down_proj_weights_list.{expert_idx}\"]\n )\n for hf_proj_name, list_name in ((\"up_proj\", \"up_proj_bias_list\"), (\"down_proj\", \"down_proj_bias_list\")):\n target_key = f\"{mixer_target}.experts.{list_name}.{expert_idx}\"\n if target_key in model_state:\n hf_state[f\"{mixer_source}.experts.{expert_idx}.{hf_proj_name}.bias\"] = torch.randn_like(\n model_state[target_key]\n )\n\n\ndef _make_full_hf_state(\n text_config: NemotronHTextConfig,\n) -> dict[str, torch.Tensor]:\n model = NemotronHCausalTextModel(text_config)\n model_state = model.base_state_dict()\n cfg = text_config.base\n hf_state: dict[str, torch.Tensor] = {}\n _add_base_hf_weights(hf_state, model_state)\n for layer_idx, layer_type in enumerate(cfg.layers_block_type or []):\n if layer_type == \"mamba\":\n _add_mamba_hf_layer(hf_state, model_state, layer_idx=layer_idx)\n elif layer_type == \"attention\":\n _add_attention_hf_layer(hf_state, model_state, cfg=cfg, layer_idx=layer_idx)\n elif layer_type == \"moe\":\n _add_individual_moe_hf_layer(hf_state, model_state, cfg=cfg, layer_idx=layer_idx)\n elif layer_type == \"mlp\":\n _add_mlp_hf_layer(hf_state, model_state, layer_idx=layer_idx)\n else:\n raise ValueError(f\"Unsupported test layer type {layer_type!r}\")\n return hf_state\n\n\ndef _make_packed_moe_hf_state(\n text_config: NemotronHTextConfig,\n *,\n layer_idx: int = 2,\n transposed: bool = False,\n) -> dict[str, torch.Tensor]:\n hf_state = _make_full_hf_state(text_config)\n cfg = text_config.base\n mixer_prefix = f\"backbone.layers.{layer_idx}.mixer\"\n up_weights = [\n hf_state.pop(f\"{mixer_prefix}.experts.{expert_idx}.up_proj.weight\")\n for expert_idx in range(cfg.n_routed_experts)\n ]\n down_weights = [\n hf_state.pop(f\"{mixer_prefix}.experts.{expert_idx}.down_proj.weight\")\n for expert_idx in range(cfg.n_routed_experts)\n ]\n up = torch.stack(up_weights, dim=0)\n down = torch.stack(down_weights, dim=0)\n hf_state[f\"{mixer_prefix}.experts.up_proj.weight\"] = up.transpose(1, 2) if transposed else up\n hf_state[f\"{mixer_prefix}.experts.down_proj.weight\"] = down.transpose(1, 2) if transposed else down\n return hf_state\n\n\ndef test_convert_hf_base_state_dict_converts_complete_tiny_checkpoint_keys() -> None:\n \"\"\"A complete tiny checkpoint converts to exactly the runtime base keys.\"\"\"\n text_config = _make_text_config()\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(\n text_config,\n _make_full_hf_state(text_config),\n )\n expected = NemotronHCausalTextModel(text_config).base_state_dict()\n\n assert set(converted) == set(expected)\n NemotronHCausalTextModel(text_config).load_base_state_dict(converted)\n\n\ndef test_convert_hf_base_state_dict_converts_mlp_layers() -> None:\n \"\"\"Plain MLP layers can be loaded when MLP appears in the imported layout.\"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"-\", mlp_bias=True)\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(\n text_config,\n _make_full_hf_state(text_config),\n )\n expected = NemotronHCausalTextModel(text_config).base_state_dict()\n\n assert set(converted) == set(expected)\n assert \"layers.0.mixer.up_proj.bias\" in converted\n assert \"layers.0.mixer.down_proj.bias\" in converted\n\n\ndef test_convert_hf_base_state_dict_converts_individual_moe_experts() -> None:\n \"\"\"Individual routed-expert checkpoint keys map to per-expert runtime keys.\"\"\"\n text_config = _make_text_config()\n hf_state = _make_full_hf_state(text_config)\n\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n torch.testing.assert_close(\n converted[\"layers.2.mixer.experts.up_proj_weights_list.0\"],\n hf_state[\"backbone.layers.2.mixer.experts.0.up_proj.weight\"],\n )\n torch.testing.assert_close(\n converted[\"layers.2.mixer.experts.down_proj_weights_list.1\"],\n hf_state[\"backbone.layers.2.mixer.expert"} +{"text": "You Don't Have to Be Methodist (to Protest the United Methodist Church's Ban on Intelligent Design)\nDecades ago, an iconic New York subway ad series featured a variety of people of diverse ethnicities (Asian, Native American, African-American, etc.) smiling as they enjoyed a sandwich on rye bread. The caption: \"You Don't Have to Be Jewish to Love Levy's -- Real Jewish Rye Bread.\"\nI am not a Methodist, nor a Christian, but I too protest the ban placed by the United Methodist Church (UMC) on a mere information table -- a humble information table! -- if that table represents anything to do with Discovery Institute or intelligent design. You don't have to be Methodist to love free speech -- real unimpeded inquiry!\nAs John West points out, the UMC has every legal right to ban from its upcoming General Conference any organization or idea it finds objectionable. Religious liberty demands that. But a moral right? The church's motto is \"Open Hearts, Open Minds, Open Doors.\" Certainly, arbitrarily shutting down consideration or discussion of science pointing to design in nature is not evidence of an open heart, mind, or door. Quite the opposite.\nAnd yes, \"arbitrary\" is the right word to describe the UMC's decision. Review John West's background account of our negotiations with church officials as well as the record of correspondence itself. We were offered a series of increasingly obscure, ill-informed rationales for the ban. It was clear that the church hierarchy simply did not want to allow anything to do with ID at their meeting, and would offer any excuse for excluding us. As our friend David Limbaugh tweets, this is in keeping with the way his church often does things:\nI attend a Methodist church. The hierarchy is often nothing to be proud of. https://t.co/yLzMV8PupP— David Limbaugh (@DavidLimbaugh) January 18, 2016\nThe whole business is deplorable for a couple of reasons. First, the issue of whether biology and cosmology give evidence for design could not -- so you would think -- be more crucial for any person of faith. Intelligent design is a scientific program that does not address claims of theology, but surely no coherent account of Judeo-Christian belief can sidestep the question of design.\nSecond, and despite what I just said, it is the habit of many religious groups and religious leaders, Christian and Jewish, simply to avert the eyes from the debate about life's origins. Worse, they condemn those who seek to weigh the evidence of design objectively. And worse even than that, they accept and thus confirm and promote false claims about us.\nThus the initial reason offered by the UMC for banning Discovery Institute was that, supposedly, we run afoul of a 2008 church resolution \"opposing the introduction of any faith-based theories such as Creationism or Intelligent Design into the science curriculum of our public schools.\" The idea that Discovery Institute seeks to insert ID into public schools is a slander concocted by our critics. We have been absolutely clear on that over the years.\nThe notion that ID is \"faith-based\" is, likewise, absurd. Arguments for ID make no reference to God, the Bible, theology, nothing. They rely exclusively on inference from science. They can be fairly evaluated by anyone, theist or atheist.\nThough at first glance what's at stake here is no more than, as I noted, an exhibitor table at a church conference, really it is something much greater. I have found in the context of my own (Jewish) faith community that many leaders share a constitutional weakness for avoiding controversy, not least where prestige secular academic culture threatens to get into the fight. The last thing they want is to attract the wrath of the professors -- and on a subject to which they haven't given due study.\nIt's the role of thoughtful laypeople, however, to provide a robust counterweight by protesting institutional fear, complacence, and -- frankly -- quite often, dishonesty. We can and should give our leaders a little bit of spine when they seem to lack it.\nSo I invite all readers, whether Christian or Jewish or neither, to send a message to the United Methodist Church.\nYou don't have to be Methodist! In fact, since considerations of prestige in the eyes of the world account for many of the failures of our leaders in matters like this, you might wish to say up front that you write as an outsider to the church who feels disappointed to see United Methodists conceding to materialism on a question vital not only to them but to all human beings.\nPlease take a moment and urge UMC officials to rescind the ban on intelligent design. We have provided a quick and easy way to do it, right here."} +{"text": "The chip maker unveils its new mobile platform, previously code-named Santa Rosa, which includes a series of built-in manageability and security features.\nIntels long-awaited new mobile platform is about to hit the street.\nAs CEO Paul Otellini promised at the companys spring meeting of financial analysts\n, Intel officially launched its fourth-generation Centrino platform May 9 at several shows both inside and outside the United States.\nIn addition to the official unveiling of the new platform, previously code-named Santa Rosa, several top-tier vendors wasted little time in rolling out notebooks that incorporate the new technology.\nSome of the PC vendors now offering Intels new mobile platform include Hewlett-Packard, Lenovo, Gateway and Fujitsu. Dell is the only major OEM not offering a Centrino Pro notebook right away, but the company will offer the Latitude D630c, which will be based on the new platform, later this year.\nDuring a presentation in New York, Don MacDonald, Intels vice president for marketing and sales, told the audience that as the world turns toward mobile devices for work, gaming and access to the Internet, his company needs to respond with its own technology.\n\"There is an increasing need out there for mobile devices as the world turns more mobile,\" MacDonald said, adding that Intel has already sold more than 150 million Centrino platforms worldwide since it first introduced the technology in 2003.\nMacDonald also pointed to an IDC study that found by 2011, 50 percent of all worldwide PC shipments will be notebooks.\nClick here to read more about HPs Centrino Pro notebooks.\nIntel, which is based in Santa Clara, Calif., is offering the new platform in two distinct versions. The first, Centrino Duo, is geared toward the consumer market, while the second, Centrino Pro, is the enterprise version of the mobile platform.\nThe major distinction between the two versions is that the Centrino Pro version will include Intels vPro technology\na series of manageability and security features built into the platform. Although Intel already offers vPro in its desktops, this is the first time the company is offering the same capabilities in a mobile platform.\nClick here to read the latest on Intels road map.\nThe most critical part of vPro for IT managers is AMT (Active Management Technology),\nwhich provides a remote communication channel that is available to the IT staff. It also provides nonvolatile memory where third-party application data can be stored. All this provides for better power management and gives administrators the ability to monitor a fleet of PCs.\nRoger Kay, an analyst with Endpoint Technology Associates, said that Intel including vPro and AMT capabilities for laptops is the most significant development for IT managers.\n\"The AMT stuff and its move to the mobile platform is what the larger enterprises are going to be interested in,\" Kay said. \"What this is going to do is enable corporate IT mangers to circle the wagons and gain control over the clients.\"\nEven if companies adopt desktops and notebooks with vPro technology, Kay said most IT managers will wait until about 20 or 25 percent of the fleet is equipped with the AMT capabilities before they start trying to manage the PCs through this new technology.\nThe new Centrino platform will include a number of Intels dual-core Core 2 Duo processors, which have gone by the code name \"Merom.\" These 64-bit processorsthe T7300, T7500 and T7700will offer clock speeds ranging from 1.8GHz to 2.4GHz and have an 800MHz FSB (front side bus). Most of the chips will have 4MB of L2 cache, although one of the processorsthe T7100will only have 2MB of L2 cache.\nOf the six new Core 2 Duo processors, four will have 35-watt TDP (thermal design power)an Intel term that refers to how much heat a chip has to dissipatewhile the company will also offer two other chips with a TDP of only 17 watts. These two low-watt processorsthe Core 2 Duo L7300 and L7500will have clock speeds of 1.4GHz and 1.6GHz, respectively.\nPrices for the new processors range from $241 to $530 per 1,000 units.\nThe platform will also include Intels 965 Express chip set, which will include Intels integrated GMA X3100 graphics engine. The platform will also include support for draft 802.11n wireless technology as well as support for older 802.11 a/b/g standards.\nThe two other significant new additions to the Centrino platform include a feature called TurboMemory, which is a NAND-based flash memory, and a new capability called Dynamic Acceleration Technology.\nClick here to read the latest on Intels processor price cuts.\nThe Dynamic Acceleration feature allows the CPU to switch processing loads from a busy core to an underutilized core when running single-threaded applications. The technology increases the clock speed on the busy core to improve performance but allows the chips overall thermal and power envelopes to stay the same.\nKay noted that many corporate IT buyers might hold off on trying the TurboMemory feature, which can be configured for either 512MB or 1GB of memory, since they can realize many of the same benefits from just adding more memory to the hard drive at a much lower cost. At Wednesdays show, Intel executives said users can benefit from this feature since it will allow certain applications to boot faster, while reducing power since the TurboMemory has no moving parts.\nWhile Otellini announced on May 3 that Centrino Pro and Centrino Duo were on the way, several of the top-tier OEMs waited until May 9 to announce new notebooks that will use this latest mobile platform.\nCheck out eWEEK.coms for the latest news in desktop and notebook computing."} +{"text": "s.1.down_proj.weight\"],\n )\n\n\ndef test_convert_hf_base_state_dict_converts_moe_biases() -> None:\n \"\"\"MoE layers with mlp_bias=True load all routed/shared/latent projection biases.\"\"\"\n text_config = _make_text_config(mlp_bias=True)\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(\n text_config,\n _make_full_hf_state(text_config),\n )\n expected = NemotronHCausalTextModel(text_config).base_state_dict()\n\n assert set(converted) == set(expected)\n assert \"layers.2.mixer.fc1_latent_proj.bias\" in converted\n assert \"layers.2.mixer.experts.up_proj_bias_list.0\" in converted\n assert \"layers.2.mixer.shared_experts.down_proj.bias\" in converted\n\n\ndef test_convert_hf_base_state_dict_converts_moe_without_shared_experts() -> None:\n \"\"\"MoE conversion skips shared-expert tensors when the config disables them.\"\"\"\n text_config = _make_text_config(n_shared_experts=0)\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(\n text_config,\n _make_full_hf_state(text_config),\n )\n expected = NemotronHCausalTextModel(text_config).base_state_dict()\n\n assert set(converted) == set(expected)\n assert \"layers.2.mixer.shared_experts.up_proj.weight\" not in converted\n assert \"layers.2.mixer.shared_experts.down_proj.weight\" not in converted\n\n\ndef test_convert_hf_base_state_dict_converts_moe_without_latent_projections() -> None:\n \"\"\"MoE conversion skips latent projections when the config omits them.\"\"\"\n text_config = _make_text_config(moe_latent_size=None)\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(\n text_config,\n _make_full_hf_state(text_config),\n )\n expected = NemotronHCausalTextModel(text_config).base_state_dict()\n\n assert set(converted) == set(expected)\n assert \"layers.2.mixer.fc1_latent_proj.weight\" not in converted\n assert \"layers.2.mixer.fc2_latent_proj.weight\" not in converted\n\n\n@pytest.mark.parametrize(\"transposed\", [False, True])\ndef test_convert_hf_base_state_dict_converts_packed_moe_experts(transposed: bool) -> None:\n \"\"\"Packed routed experts split into the same per-expert runtime keys.\"\"\"\n text_config = _make_text_config()\n hf_state = _make_packed_moe_hf_state(text_config, transposed=transposed)\n\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n expected_up = hf_state[\"backbone.layers.2.mixer.experts.up_proj.weight\"][0]\n expected_down = hf_state[\"backbone.layers.2.mixer.experts.down_proj.weight\"][1]\n if transposed:\n expected_up = expected_up.T\n expected_down = expected_down.T\n torch.testing.assert_close(converted[\"layers.2.mixer.experts.up_proj_weights_list.0\"], expected_up)\n torch.testing.assert_close(converted[\"layers.2.mixer.experts.down_proj_weights_list.1\"], expected_down)\n\n\ndef test_convert_hf_base_state_dict_rejects_mixed_moe_expert_layouts() -> None:\n \"\"\"A layer must not provide both packed and individual routed expert weights.\"\"\"\n text_config = _make_text_config()\n hf_state = _make_packed_moe_hf_state(text_config)\n hf_state[\"backbone.layers.2.mixer.experts.0.up_proj.weight\"] = torch.empty(\n text_config.base.moe_intermediate_size,\n text_config.base.moe_latent_size,\n )\n\n with pytest.raises(ValueError, match=\"both packed and individual expert weights\"):\n NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n\ndef test_convert_hf_base_state_dict_honors_disabled_mamba_conv_bias() -> None:\n \"\"\"No-conv-bias Mamba configs do not require a checkpoint conv1d.bias key.\"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"M\", use_conv_bias=False)\n hf_state = _make_full_hf_state(text_config)\n\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n assert \"layers.0.mixer.conv1d.bias\" not in converted\n assert \"layers.0.mixer.conv1d.bias\" not in NemotronHCausalTextModel(text_config).base_state_dict()\n\n\ndef test_convert_hf_base_state_dict_ignores_mtp_keys(caplog: pytest.LogCaptureFixture) -> None:\n \"\"\"Base load logs and ignores top-level MTP checkpoint keys.\"\"\"\n text_config = _make_text_config()\n hf_state = _make_full_hf_state(text_config)\n hf_state[\"mtp.layers.0.foo.weight\"] = torch.empty(1)\n hf_state[\"mtp.layers.1.foo.weight\"] = torch.empty(1)\n\n caplog.set_level(logging.WARNING)\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n assert set(converted) == set(NemotronHCausalTextModel(text_config).base_state_dict())\n assert \"Ignoring 2 Nemotron-H MTP checkpoint keys during base load\" in caplog.text\n\n\ndef test_convert_hf_base_state_dict_rejects_unrelated_leftover_keys() -> None:\n \"\"\"Strict conversion rejects unrelated checkpoint surfaces.\"\"\"\n text_config = _make_text_config()\n hf_state = _make_full_hf_state(text_config)\n hf_state[\"visual.patch_embed.weight\"] = torch.empty(1)\n\n with pytest.raises(ValueError, "} +{"text": "BlackBerry Curve 8520 Smartphone Straddles Business, Consumer Markets\nResearch In Motion's new smartphone, the BlackBerry Curve 8520, is designed to straddle both the business and consumer worlds. In addition to providing traditional BlackBerry functionality, the device puts a heavy emphasis on music, instant messaging and games. However, enough benefits exist on both the hardware and software sides for IT administrators and procurement managers to give the device a hard look during their next tech refresh.If the Aug. 5 release of the BlackBerry Curve 8520 smartphone is any indication, Research In Motion has decided to devote more of its energies to the consumer market: the review device that eWEEK has looked at puts as much emphasis on music, videos and games as it does business-related tasks. Nonetheless, the smartphone's features allow it to operate effectively in both worlds.\nSize and Shape:\nThe first thing you notice about the smartphone is its form-factor, which is certainly very slim and light. RIM decided to avoid emulating the Apple iPhone or the Palm Pre, both of which utilize touch-screens, in favor of its hard QWERTY keyboard. The spokesperson who gave me the Curve 8520 also told me that the keyboard had been engineered to fit the device's 109 x 60 x 13.90 dimensions; nonetheless, the keys felt \"right-sized,\" and while typing e-mails or phone numbers I had relatively few incidents of hitting either the wrong keys or two keys at once.\nThe smartphone's status as a more consumer-oriented device becomes clear when you examine the buttons that line the outer rim of the device. Along the top, RIM has placed a \"Play/Pause/Mute\" key, along with a \"Previous\" and a \"Next\" key, for shuffling through media files. The volume keys, meanwhile, sit along the right side of the device, right where your thumb goes (if holding the phone in your right hand). This setup of \"Dedicated Media Keys\" is a little awkward at first; depending on how you're holding the device, your hand sometimes blocks the screen as you attempt to adjust the controls along the top. The \"Convenience\" keys on the left and right sides of the device open the voice-dialing and camera functions, respectively, and these felt somewhat more natural. Call Quality\nWith all the nifty functions present in the BlackBerry, it's sometimes easy to forget that the fundamental purpose of the smartphone is to actually make calls. Although I'll need a few more days of testing to fully vet the quality, my initial calls came through crystal-clear and never dropped.\nBattery Life As of this writing, my Curve 8520 has been on for 24 hours, with maybe 2.5 hours of constant use (e-mail, Web browsing, games) and 20 minutes of talk, and the battery indicator is down one bar. RIM's specs have the lithium-cell battery offering 4.5 hours of talk and 17 days of standby time on a full charge.\nInterface The phone's start screen offers Messages, Contacts, Calendar, Browser, Phone and MyFaves, the last of which is a T-Mobile feature that allows unlimited nationwide calling to the user's five favorite people. By touching the Menu key to the left of the trackpad, I could access a fuller menu of features, including Media, Downloads and Instant Messaging. Despite BlackBerry pushing this as a consumer smartphone, business widgets did not receive the short shrift; for example, I could access Word To Go, which allows the user access to editing .docs, in two clicks from the menu screen.\nInstant Messaging and other functions worked fine, but these are all pretty much standard-issue for smartphones at this juncture. The Curve 8520 features a media player, for watching videos and listening to music; this lacked the bells and whistles of Apple's iTunes player, but from a pure-functionality standpoint it worked fine, with clear audio and crisp video. The BlackBerry Media Sync allows you to import music files from either iTunes or Windows Media Player. Browser Speed\nThe Curve 8520 features Wi-Fi that's 802.11b/g enabled, as well as a connection through T-Mobile's mobile network (the phone is a quad-band world phone, meaning it offers support for EDGE/GPRS/GSM 850/900/1,800/1,900MHz networks). Browser speed was satisfactory, with news sites such as CNN.com, and graphics-intensive social-networking sites such as Facebook, loading quickly.\nCamera The Curve 8520 camera is 2 megapixels, which is relatively standard for smartphones. This proved fine for snapshots, and produced some good photos in a variety of different lighting conditions. The user can zoom in and out via the trackpad. After taking the shot, the user has the option of renaming/saving, sending or trashing the image. It gets the job done, in other words, but won't produce any visual masterpieces.\nConclusion Despite RIM's new focus on the consumer market with this edition of the BlackBerry, SMB and enterprise users should have no fear that they've been abandoned. The Curve 8520 supports the BlackBerry Enterprise Server, as well as up to 10 e-mail accounts. It offers Bluetooth support, and the interface doesn't shun business functions in favor of a media player; users also have access to BlackBerry AppWorld, for the downloading of customized business-related applications (not to mention games). That being said, the emphasis on dedicated media keys, media player, mobile streaming for videos and music, and social networking (through Facebook for BlackBerry smartphones, Flickr Photo Uploader for BlackBerry smartphones, and MySpace for BlackBerry smartphones) may put off some procurement managers who want the smartphones in their enterprise or SMB (small and midsize businesses) to be all-business-all-the-time. Editor's Note: A correction was made to the description of support for the BlackBerry Enterprise Server."} +{"text": "As everyone knows, a lot has been happening the past few weeks related to health care and insurance in the United States.\nThe Health Insurance Marketplace, a major component of the Affordable Care Act (informally known as Obamacare), premiered but with lots of glitches and bugs that made it difficult or impossible to sign up. Health care consumers everywhere have been having heart-to-hearts with their doctors and insurance agents regarding the future of their health care and coverage. And of course, a good portion of the government shut down over an impasse where President Obama and Democrat lawmakers pushed for across-the-board funding, while Republicans pushed back with insistence that Obamacare be delayed.\nThis column is not about the ACA—at least not directly. It’s not about the government shutdown—not specifically. Rather, it’s my take on how we got here and where we should go from here on out.\nFirst off, let’s be clear that the fight has been almost 100 percent about health insurance, not health care. Thanks to emergency rooms and not-for-profit hospitals and agencies, virtually all Americans have access to health care…and have for a long time. The dispute has been about who pays for the care and how.\nIn my opinion, we’ve been headed down this road for at least most of my lifetime—maybe longer. I think the path originated with some point in time where people began to equate health care with health insurance.\nDid you know that once upon a time, and it wasn’t even THAT long ago, people went to the doctor and simply paid for the visit? No insurance card, no co-pay, nothing like that. You saw the nurse, you saw the doctor, you paid the bill and you left. There was insurance, but it was used only for the “big” stuff—major surgery, expensive treatments, etc.\nIt’s hard to believe, but it was once that way. Not anymore. Now, if you’re going to the doctor, you’re expected to trot out your card, file with your carrier, pay a set amount and, apparently, the insurance company covers the rest. It sounds good, but is it really?\nIf a window breaks at your house, or an electrical outlet stops working, do you file that on your homeowner’s insurance? Probably not. You call an electrician or a handyman and fix the problem (or do it yourself, if you’re handy) and avoid your insurance like the plague, because you don’t want your premiums to increase because of such pedestrian stuff. If a tree falls on your roof or your kitchen catches fire—THAT’S when you call for an insurance adjuster.\nIf your right headlight goes out or your left rear tire picks up a nail, do you call your auto insurance carrier? Nope—for exactly the same reason. Auto insurance is for the big stuff. You know, crashes, injuries, property damage, that kind of thing.\nBut for some reason, we insist on our health insurance carrier participating in every check-up, every physical, every prescription medication, every sniffle, every sore elbow, everything.\nThis has had a two-fold (at least) effect on the way we get health care. On one side, we end up involving a third party in virtually everything to do with our health and wellness. And on the other side, we’ve become disconnected with the actual cost of health care.\nGo back to car or house insurance. If the car needs a new transmission, we know how much that will cost—or at least we can know, after calling two or three mechanics for estimates. If our old kitchen faucet goes bad and we need to buy a new one, it’s no difficult thing to get prices and options to compare.\nBut because someone else pays for most of our health care, we have no idea how much the health care really costs. We might see a bill, but the number we pay attention to is the one at the bottom—what’s left after the insurance pays. For a check-up or doctor’s visit over a minor affliction, we probably don’t have a clue how much it really cost. All we know is the amount of the co-pay, plus the patient’s portion of whatever prescriptions we use.\nAnd because we don’t know the cost, and leave most of the payment up to a “middle man,” the cost is almost certainly higher than it would be if we simply paid as we went. After all, the insurance guy has to make a living, too.\nI know it’s a pipe dream, but my solution has nothing to do with universal health insurance. Instead, I’d like to go back to the days when people used less insurance, but used it for the stuff that really requires it. Chemotherapy, major surgery, dialysis, that kind of thing—not the common cold.\nBy Eric Copeland • firstname.lastname@example.org"} +{"text": "match=\"Unconsumed Nemotron-H checkpoint keys\"):\n NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n\ndef test_convert_hf_base_state_dict_rejects_mixed_attention_qkv_layouts() -> None:\n \"\"\"Full conversion keeps the attention fused/unfused guard.\"\"\"\n text_config = _make_text_config()\n hf_state = _make_full_hf_state(text_config)\n hf_state[\"backbone.layers.1.mixer.qkv.weight\"] = torch.empty(\n (text_config.base.n_head + 2 * text_config.base.n_head_kv) * text_config.base.head_dim,\n text_config.base.n_embd,\n )\n\n with pytest.raises(ValueError, match=\"both fused and unfused QKV\"):\n NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n\ndef test_convert_hf_base_state_dict_rejects_missing_attention_bias() -> None:\n \"\"\"Attention-bias configs fail during conversion when checkpoint bias keys are missing.\"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"*\", attn_bias=True)\n hf_state = _make_full_hf_state(text_config)\n hf_state.pop(\"backbone.layers.0.mixer.q_proj.bias\")\n\n with pytest.raises(ValueError, match=\"partial unfused QKV bias\"):\n NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n\ndef test_convert_hf_base_state_dict_rejects_absent_attention_bias() -> None:\n \"\"\"Attention-bias configs fail fast when all QKV bias keys are absent.\"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"*\", attn_bias=True)\n hf_state = _make_full_hf_state(text_config)\n for key in (\n \"backbone.layers.0.mixer.q_proj.bias\",\n \"backbone.layers.0.mixer.k_proj.bias\",\n \"backbone.layers.0.mixer.v_proj.bias\",\n ):\n hf_state.pop(key)\n\n with pytest.raises(ValueError, match=\"missing QKV bias\"):\n NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n\ndef test_convert_hf_base_state_dict_rejects_missing_attention_output_bias() -> None:\n \"\"\"Attention-bias configs fail fast when o_proj bias is absent.\"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"*\", attn_bias=True)\n hf_state = _make_full_hf_state(text_config)\n hf_state.pop(\"backbone.layers.0.mixer.o_proj.bias\")\n\n with pytest.raises(ValueError, match=\"missing output projection bias\"):\n NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n\nclass _AdditiveDecoderLayer(nn.Module):\n def __init__(self, x_delta: float, residual_delta: float) -> None:\n super().__init__()\n self.x_delta = x_delta\n self.residual_delta = residual_delta\n\n def forward(\n self,\n x: torch.Tensor,\n residual: torch.Tensor,\n meta: object,\n ) -> tuple[torch.Tensor, torch.Tensor]:\n return x + self.x_delta, residual + self.residual_delta\n\n\ndef test_forward_transformer_records_requested_intermediates_before_layers() -> None:\n \"\"\"Intermediate activations are residual-added inputs before requested layers.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"---\")\n model = NemotronH(cfg)\n model.layers = nn.ModuleList(\n [\n _AdditiveDecoderLayer(x_delta=1.0, residual_delta=10.0),\n _AdditiveDecoderLayer(x_delta=2.0, residual_delta=20.0),\n _AdditiveDecoderLayer(x_delta=3.0, residual_delta=30.0),\n ]\n )\n model.norm = nn.Identity()\n x = torch.zeros(2, cfg.n_embd)\n intermediates = torch.empty(2, 2, cfg.n_embd)\n\n model.forward_transformer(\n x,\n object(), # type: ignore[arg-type]\n need_intermediates=[0, 2],\n intermediates=intermediates,\n )\n\n torch.testing.assert_close(intermediates[:, 0, :], torch.zeros_like(x))\n torch.testing.assert_close(intermediates[:, 1, :], torch.full_like(x, 33.0))\n\n\ndef test_causal_text_model_forward_returns_activations_logits_and_intermediates() -> None:\n \"\"\"Text model forward returns the standard CausalModelOutput surface.\"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"--\")\n model = NemotronHCausalTextModel(text_config)\n model.layers = nn.ModuleList(\n [\n _AdditiveDecoderLayer(x_delta=1.0, residual_delta=10.0),\n _AdditiveDecoderLayer(x_delta=2.0, residual_delta=20.0),\n ]\n )\n model.norm = nn.Identity()\n idx = torch.tensor([1, 2, 3], dtype=torch.long)\n\n result = model.forward(\n idx,\n object(), # type: ignore[arg-type]\n need_logits=True,\n need_intermediates=[1],\n )\n\n assert result.last_activation.shape == (idx.numel(), text_config.base.n_embd)\n assert result.intermediate_activations is not None\n assert result.intermediate_activations.shape == (idx.numel(), 1, text_config.base.n_embd)\n assert result.logits is not None\n assert result.logits.shape == (idx.numel(), text_config.base.vocab_size)\n assert torch.isfinite(result.last_activation).all()\n assert torch.isfinite(result.logits).all()\n\n\ndef test_causal_text_model_forward_returns_lm_head_logits_without_clon"} +{"text": "With 150 years of tradition behind the suit, Nick Kraegen looks at how a military frock coat became the staple of every man's wardrobe.\nTo some, it represents power; to others, a gilded cage. But it has spent a century and a half at the pinnacle of men's fashion, leaving no room for debate - the suit remains the ultimate symbol of style and machismo.\nThe suit is designed to \"enhance a man's physique and masculinity\", according to Australian suit designer Matt Jensen of M.J. Bale. While the colour and design can change, many original features live on.\nThe cut of the shoulders still hints at military silhouettes. The flat lapel evolved from flattening the traditional stand-up collar on British army or navy frock coats, which was designed to keep out the cold. Those now-useless buttons on cuffs were designed for 19th-century surgeons in London, who needed to roll up their sleeves to keep them out of wounds (taking one's jacket off would have been out of the question - working in shirtsleeves was for tradesmen).\nAnd if sitting down in a jacket seems surprisingly comfortable, it's because those vents at the back were added for the horse-mad Victorians.\nSavile Row tailors estimate it was about 150 years ago when elements of the various predecessors of the modern suit wove themselves into a single outfit. It is also noted that the industrial revolution was important in the emergence of what is now a man's standard corporate ensemble, as it triggered the concept of \"suiting up\" in a uniform to attend work.\nToday, however, the focus is on the marriage of fashion and form, with comfort high on the agenda. \"We're going to a more practical, functional place [in design] - it's about hitting those finely balanced points of form and function,\" says Jensen, who favours lightweight materials and tailoring to cater to the sweltering Australian climate.\n\"We're also making jackets that can be folded and stored on aeroplanes - these are modern things that people need.\"\nBut the suit has always been adaptable, not just to climates and planes but to individuals. Tailor John Cutler runs Sydney's J.H. Cutler, which was nominated by Forbes as one of the top-10 worldwide bespoke tailors. The family has been outfitting men for 127 years.\nCutler thinks the suit's appeal will endure because no other men's garment sends the same message about its wearer.\n\"Formality, acceptance in certain spheres of society, like clubs and higher-up business, banking, law ... it's successful because it shows respectability and respectfulness,\" he says. It may represent the height of convention but an individually styled suit can also announce the personality of the man who owns it. \"I think a suit is a good opportunity for a male to express his individuality,\" Cutler says. \"People might say 'no no, it's the uniform' but, actually, I think it's the opposite because people have a choice of colour, style and fabric.\"\nCutler once dealt with a Russian former nuclear submarine commander who ordered a $20,000 suit made from super-fine wool. He also recalls a businessman who was so delighted with his $50,000 overcoat (made from the wool of the vicuna - a rare relative of the llama) that he bought another.\nToday's hottest menswear designers still emphasise their quest for individuality.\n\"I continue to experiment and research better manufacturing ways to achieve the perfect suit,\" says Italian fashion powerhouse Giorgio Armani. \"The most important element is that the wearer feels confident and comfortable.\"\nDesigner Ermenegildo Zegna also approaches suits not as a functional or structured symbol of convention but \"as a professional uniform that, in time, was revolutionised and complied to ever-changing lifestyles and needs\".\nFor all seasons\nThe suit in television\nComedian and host of Channel Ten's 7pm Project, Charlie Pickering, has always loved suits, but recently discovered their practical value.\n\"When I was studying at law school and getting clerkships at various law firms, I was probably more focused on wearing a nice suit than doing a good job,\" Pickering says.\n\"I think a 33-year-old middle-class guy maybe doesn't carry that much gravitas when talking about serious news but when you put on a decent tie and jacket, people listen.\"\nThe suit in court\nMichaeel Kirby, retired judge of the High Court of Australia, enjoys wearing a suit because he believes it draws attention away from his appearance and to\n\"I'm not into style, I am into substance,\" Kirby says. \"I'm fundamentally a very conservative person and this allows me to get about in conservative outfits, reserving any original ideas to something not in my outfit.\"\nUltimately, however, Kirby's approach to suiting is practical.\n\"I look for something that would disguise the decline in my body shape,\" he says.\nThe suit in politics\nFormer prime minister Paul Keating is remembered for his love of Zegna suits — his preference meant that he broke with a tradition stretching back to the days of Robert Menzies: that prime ministers be dressed by Australian suit maker Anthony Squires."} +{"text": "Going deeper into the study of ENVYBy Jabril Muhammad | Last updated: May 28, 2014 - 11:21:22 AM\nI must finish this series of articles and state my reason for them.\nI intended to finish the previous article, with some details that involve so-called UFO’s that involves the Honorable Minister Louis Farrakhan and the fact that the Honorable Elijah Muhammad is not dead.\nThis also involves the love of The Supreme Being for us and for the fact that the Honorable Elijah Muhammad prayed for a helper and that helper is Minister Farrakhan.\nThis is in the Bible and the Holy Qur’an and it involves all of us 100 percent!\nThese books involve the phrase “foregone conclusion.” Forgone conclusion means “a result that can be predicted with certainty.”\nIt also mean in the thesaurus: “infringement of copyright, piracy, theft, stealing; informal cribbing.”\nNow, the envier wants both to acquire and see destroyed the possessions of the one that is envied. The envier’s thinking is such that he feels, for example, the envied one lost an eye that he (or she) is somehow advanced.\nYou cannot appease the envy of the envious person. Even if you show him, or her, greater kindness or remove that which is envy is directed, such as a possession, you will find the envy directed to some other possession, or to some good trait or quality you have.\nIt is an uncreative quality. It has no redeeming features. One writer stated that envy is:\nYou can see envy in the theatrical and film professions, among artists, writers, politicians—even in the Church.\nI’ve heard the word envy first from the Honorable Elijah Muhammad some years, ago in 1956. Later on, I asked him about envy.\nOne have to undergo several experiences to see it first and then help others to see it. Of course, one has to stay alive. Smile. Because an envious person would kill you, so say the Honorable Elijah Muhammad.\nEnvy is an emotion or a state of mind that hinders the good the envier could do for him or herself or the good for others. It is an obstacle that obstructs its owner in the way of self-benefit.\nEnvy is a disturber of the peace. It could never be among the qualities on which you could build a lasting society.\nWhere envy is there is the absence of generosity, charity, Brotherhood or Sisterhood. In fact, it is impossible to feel both envy and kindness towards the same person at the same time.\nLove, in the fullest and best sense of the word, is the opposite of envy. Love and hate can have redeeming features, depending on what is being loved or hated and the why or the reason. Envy, however, has nothing in it to recommend it under any circumstances.\nOne of the meanings of the word opposite is this: “having a position on the other or further side of something.”\nNo one wants to be seen as envious. Yet many are. There are many instances in which envy is revealed. For example, a person may not want you to enjoy the same privileges he has. He may be in some higher position than you. He may also have control over some items that would make life easier than you now have it.\nBut this person withholds the items from you that you may have had a right to. Your comfort is not his objective. He wants you to be uncomfortable. This illustrates the evil nature of envy.\nYou have just purchased four new tires for your car. Another may have a better or worse car than you. He may not have new tires. That is not the question. The fact is that you have a car and especially, four new tires.\nThe envier envies you for those tires. When you are not aware, he cuts holes in your tires. Or, as may just as likely occur, the envier may do nothing about your tires. Yet he, or she, wishes you did not have them. In addition, the envier dislikes you for buying them with your own money. This also is envy and depicts its inner nature.\nEnvy is that which distorts a person’s perception of reality to the extent that the envier sees no merit in whatever is the object of his envy despite its merit. Envy makes a person speak evil of that towards which his envy is directed to help him live with himself.\nActually envy does not “help” the envier, he only deludes himself into thinking this, while not seeing that he is envious, nor its evil.\nThe above does not cover all that can be spoke or written to define envy. Nor was it intended to do so. On the other hand the above is not mere theory. There are many people than you can count who have been robbed, mutilated and murdered because someone else envied them.\nInnocent people have been sent to death or to prison because of the envy of others. Many have served as witnesses in trials, for example, who persuaded themselves that, their self-distorted views and information was true. Their accusation of the guiltless was based on their envy-distorted observations.\nJudges too have misused their power due to envy. On the other hand it has been established that envy is a major factor in many crimes and occupies a large place in the make up of the “criminal” personality.\nOften the envier is passive, either in not doing what could be done to help the envied, in some situation requiring it.\nIt is when the envier acts from his or her envy and harm, or great harm comes to the envied that the foul nature of envy comes into focus.\nEnvy is an act of perception that is totally irrational, unreasonable and malicious. It is unproductive of any value for anyone, except as it serves the ultimate purpose of Allah.\nDoes this involve slavery, in America, and that which is coming to an end and the effects of it 100% and why God Himself allowed it?\nWhy did I make this photograph, of Mother Tynnetta Muhammad when Minister Farrakhan was speaking publicly about the Black woman. This also involves the Honorable Elijah Muhammad’s words about the Black woman.\nMore next issue, Allah willing"} +{"text": "e() -> None:\n \"\"\"Forward returns lm-head output directly; callers clone if persistence is needed.\"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"-\")\n model = NemotronHCausalTextModel(text_config)\n model.layers = nn.ModuleList([_AdditiveDecoderLayer(x_delta=1.0, residual_delta=10.0)])\n model.norm = nn.Identity()\n logits = torch.randn(2, text_config.base.vocab_size)\n model.forward_lm_head = lambda _x: logits # type: ignore[method-assign]\n\n result = model.forward(torch.tensor([1, 2], dtype=torch.long), object()) # type: ignore[arg-type]\n\n assert result.logits is logits\n\n\ndef test_causal_text_model_forward_captures_moe_routing_matrix() -> None:\n \"\"\"MoE stats path records routed expert ids in CausalModelOutput.\"\"\"\n text_config = _make_text_config(\n hybrid_override_pattern=\"E\",\n n_embd=4,\n n_routed_experts=2,\n n_shared_experts=0,\n num_experts_per_tok=1,\n moe_intermediate_size=4,\n moe_latent_size=None,\n norm_topk_prob=False,\n enable_moe_stats=True,\n )\n model = NemotronHCausalTextModel(text_config)\n model.layers[0].norm = _SpyNorm()\n model.norm = nn.Identity()\n model.forward_lm_head = lambda x: x # type: ignore[method-assign]\n with torch.no_grad():\n model.layers[0].mixer.experts.gate_weight.zero_()\n model.layers[0].mixer.gate.score_processor.e_score_correction_bias.copy_(torch.tensor([0.0, 10.0]))\n\n model.prepare_for_inference()\n result = model.forward(torch.tensor([1, 2, 3], dtype=torch.long), object()) # type: ignore[arg-type]\n\n assert result.routing_matrix is not None\n assert result.routing_matrix.shape == (3, 1, 1)\n assert torch.equal(result.routing_matrix[:, 0, 0], torch.ones(3, dtype=result.routing_matrix.dtype))\n\n\ndef test_causal_text_model_forward_can_skip_logits() -> None:\n \"\"\"Prefill paths can request activations without materializing vocab logits.\"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"-\")\n model = NemotronHCausalTextModel(text_config)\n model.layers = nn.ModuleList([_AdditiveDecoderLayer(x_delta=1.0, residual_delta=10.0)])\n model.norm = nn.Identity()\n\n result = model.forward(\n torch.tensor([1, 2], dtype=torch.long),\n object(), # type: ignore[arg-type]\n need_logits=False,\n )\n\n assert result.logits is None\n assert result.last_activation.shape == (2, text_config.base.n_embd)\n\n\n# ---------------------------------------------------------------------------\n# Minimal end-to-end forward smoke (gated on CUDA). This catches gross wiring\n# errors (wrong param shapes, missing module attrs, shape mismatches between\n# layers) across all three mixer types without asserting any numerical\n# property; Mamba-2 kernel correctness is covered in test_mamba2.py.\n# ---------------------------------------------------------------------------\n\n\ndef _build_tiny_prefill_meta(\n model: NemotronHCausalTextModel,\n total_tokens: int,\n) -> firenn.MambaAttentionMeta:\n \"\"\"Build a single-sequence prefill meta via the normal cache path.\n\n Goes through ``create_kv_cache`` + ``create_context_cache_manager`` so the\n returned :class:`~fireworks.nn.MambaAttentionMeta` carries both paged-KV\n state (for attention layers) and Mamba conv/recurrent state (for Mamba\n layers), exactly as production prefill does.\n \"\"\"\n kv_cache = model.create_kv_cache(\n firetext.KVCacheConfig.for_seq_len(total_tokens, model.text_config.kv_cache_block_size)\n )\n manager = model.create_context_cache_manager(kv_cache=kv_cache)\n assert isinstance(manager, MambaCacheManager)\n meta = manager.add_sequence_and_get_meta(total_tokens, uid=\"seq_0\")\n assert isinstance(meta, firenn.MambaAttentionMeta)\n return meta\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"NemotronH forward requires CUDA\")\n@torch.inference_mode()\ndef test_model_forward_transformer_smoke() -> None:\n \"\"\"Prefill smoke over a tiny mixed Mamba + attention + MoE backbone.\n\n Drives one prefill through ``NemotronHCausalTextModel.forward_transformer``\n with a meta that carries both paged-KV (attention) and Mamba conv/recurrent\n state, so it exercises all three mixer types wired together. Only shape and\n finiteness are checked here; numerical correctness lives in dedicated tests.\n \"\"\"\n device = torch.device(\"cuda\")\n dtype = torch.bfloat16\n\n # head_dim>=32 so the attention layer's FlashInfer FMHA kernel is supported\n # (the tiny default head_dim=16 is below the kernel's minimum).\n text_config = NemotronHTextConfig(base=_make_config(hybrid_override_pattern=\"M*E\", head_dim=64))\n model = NemotronHCausalTextModel(text_config).to(device=device, dtype=dtype)\n\n # Construction leaves parameters uninitialized (torch.empty); seed and fill\n # them with small finite values so the untrained forward is numerically\n # stable (uninitialized GPU memory can otherwise produce NaNs).\n torch.manual_seed(0)"} +{"text": "|06-06-2001 09:07 PM|\n|SOLO||After removing the hook I get a kick out of switching from the Boga to my good thumb...gently release lip pressure so that only my thumb is in their mouth...the fish can leave at will...sometimes they don't realize they are free to depart and hover there until it finally dawns on them it's time to swim away. If you were real polite and gentle they will occassionally stop, turn, wink, and whisper \"thanks for the dance\".|\n|06-06-2001 07:25 PM|\n|Adrian||I actually bought one this year - thinking more of bluefish, barracuda and other toothy critters than stripers. I must admit that the concentrated weight issue is a concern. A technique which works on bonefish (haven't tried this with stripers owing to spiny dorsal) is to carefully lift the fish from the water upside down - weight balanced across the palm. I guess they get momenarily disoriented and lie completely still. I seem to recall Flip Pallot using a similar technique with snook - \"the Vulcan snook lift\". Reality is the less handling the better.|\n|06-05-2001 11:18 PM|\n|striblue||Ever try releasing a striper while holding it by the lower lip in the water... they don't move.. I think it really immobilizes them. Switch it around and hold the tail and off it goes.|\n|06-05-2001 09:00 PM|\nI will watch a bass show on occasion and at some point in every episode, there will be a fish with a face full of treble hooks and every time, the angler will say simptheticly\" poor guy, look at you with a face full of hooks.\" He them procedes to strugle to rip them out. Why not barbless? Especially for tv.\nAs for the boga, I have mixed feelings. If you have ever dropped a fish, the boga seems like a good idea. Sometimes I have to take the fish out of the water to get the fly, and it seems that the fish stops thrashhing when control is established.\nNothing beats sliding your hand down the leader and easing a barbless fly out of the fishes jaw.\n|06-05-2001 08:14 PM|\nAbsolutely!! The fact that fish spend their lives in a neutral semi-boyant horizontal state, being held vertically by the gill plate, lip, jaw, Boga, or wherever after giving its' all in the struggle has to be a traumatic strain to internal organs as their bellies bulge and as Bubba holds the lip so as to force the jaw out and the mouth open to gain the full distorted Hollywood effect. Some sort of assault and battery! When used kindly, I find the Boga to be a beneficial tool worth considering. The scale on the Boga is more for the anal retentive. A horizontal two-handed cradle is definitely the way to go if the well being of the catch is a concern (which it should be!)\nI am \"Thumb Challenged\" and need help holding/controlling until I can sort things out, admire, and revive/release. Crushed barbs should be the rule and not the exception. I wish the fishing shows stressed more of what proper care and handling should be!\nThanks for letting me vent...\n|06-05-2001 06:50 PM|\nI think the integrated scale tempts people to lift to see what the weight is. I hate seeing big stripers being hung by a tiny spot on the lip for a photo with those contraptions.\nPersonally I don't lift big fish by the jaw out of the water unless it's going into the cooler. If it's going onto film and back in the water I cradle it's weight with the other hand.\n|06-05-2001 05:36 PM|\nI use the Boga to hold/control the fish while it's in the water. (You don't have to lift the fish unless you are bound and determined to use the integrated scale in the handle...that's too small for me to read without my cheeters.) Once controlled, the hook can be removed and the fish \"revived\" then released without ever actually handling it. I feel this is better than doing the \"extended lip lock\" as demoed by Bubba on BassMasters.\n...Especially for toothy critters...and after a day of schoolies, my hands aren't chafed and looking like road-rash...\n|06-05-2001 05:10 PM|\n|striblue||Yes, for blues.|\n|06-05-2001 03:16 PM|\nBogagrips - yay or nay?\nFor certain fisheries the popularity of a device called \"boga grip\" is increasing. This is particularly true for saltwater fisheries because of the sharpness of the teeth of gamefish in the sea but I am sure they are used in freshwater as well. The device is a metallic gripper for the fish's lip. I have not heard of or read of any documented negative effect from this device but don't use them because it puts all of the stress on a small point on the fish's lip while lifting and allows the fish to thrash about on that tiny area while held out of the water.\nThis is just my opinion - but I don't use them and won't use them. What is your opinion on them? Ever try one?"} +{"text": "Rory Delap shrugs off his tracksuit top, revealing the T-shirt beneath. It is not particularly tight but the short sleeves cling to his upper arms, displaying formidable biceps honed by launching countless panic-provoking long throws deep into enemy territory.\nSince joining Barnsley on loan from Stoke City until the end of the season Delap has tended to ration his party trick. But he will still be curious to see whether Roberto Mancini orders the perimeter advertising hoardings at the Etihad Stadium to be moved closer to the pitch for Saturday's FA Cup quarter-final between Manchester City and David Flitcroft's Championship team.\n\"City moved the hoardings once when I went there with Stoke but I ended up on the bench,\" says Delap who has seen countless goalkeepers and defences struggle horribly with the fallout from his prodigious deliveries over the years.\nIf Flitcroft is more interested in what the 36-year-old midfielder can do with his feet and his brain, Stoke's Tony Pulis turned the throw into an art form and Delap into a minor celebrity.\n\"The thing that was different about Stoke was that it was such a tall team, which obviously helps with throw-ins,\" says Delap, settling into his chair at the mist-shrouded Lancashire country house hotel where Barnsley are recovering from the previous night's 1-1 draw at Burnley. \"At over six foot I was one of Stoke's smallest players and we probably had seven or eight strong headers of the ball. It meant that, from throw-ins, we always had four or five effective attacking options in the box at the same time. Most teams have three or four at most.\"\nA knack honed as a schoolboy javelin champion growing up in Cumbria has meant different things to different managers. \"At Carlisle I'd do it in the last 10 minutes or so if we weren't winning,\" he says. \"It was the same at Southampton but Derby used it to get in behind the defence rather than throw it into the box. Sunderland didn't use it. It works sometimes. One hundred throws might create two goals – it's like corners and free-kicks.\"\nDelap seems sanguine about seeing his game defined by only one aspect of the talent which has earned him a quietly impressive career. \"It doesn't bother me,\" the former Republic of Ireland international says. \"What matters is that I'm playing somewhere.\"\nDespite Barnsley's ongoing struggle to avoid relegation to League One – they are currently third bottom but results have been on an upward trajectory since Flitcroft's appointment in January – he is relishing life at Oakwell. \"The lads' work-rate is ridiculous, up there with the best I've played with, but we've got the quality to play football as well,\" he says. \"We're not stupid enough to say we're going to outplay Manchester City but you've got to hope that on the day we're at our best and they don't perform. We watched City beat Chelsea on television the other week as a team and there were a few lads sweating, a few nervous laughs.\"\nDelap has mixed FA Cup memories. There was the crushing disappointment of 2003 when injury prevented his involvement in Southampton's defeat in the final against Arsenal and the slightly anti-climactic experience of 2011 when he was part of the Stoke side that lost another final, 1-0 to Manchester City. \"City at Wembley was a bit disappointing,\" he says. \"I don't think they were at their best but we let ourselves down. People were a bit lethargic, I don't know if nerves got to us.\"\nDiligence undid Delap's chances of a showpiece appearance for Southampton in 2003. \"I'd done my knee in the quarter-final,\" he says. \"I was on the bench for the semi but didn't feel match fit so I asked to play a reserve game. I've regretted it ever since. I went up for a header and did my ankle so that was my Cup final over. It wasn't the best of times.\"\nFlitcroft, the younger brother of the former City and Blackburn midfielder Garry, is on a mission to bring good times back to Barnsley. \"He's doing a very good job,\" says Delap.\nEver innovative, he took his squad on a scouting mission to Doncaster to watch MK Dons ahead of their fifth-round win against Karl Robinson's side. \"That's never happened to me before,\" says Delap. \"And I've played for a few managers. But it was worth doing. David's brought good new ideas in.\"\nMancini will start worrying if Flitcroft blends an old ploy into Barnsley's bold new blueprint. Shifting position in his seat, Delap stretches slightly and those biceps flex. \"I can still do the throws,\" he says. \"It's a tactic we use sometimes.\""} +{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/test/serving/text/test_formatter.py. Lines: 1465.\n\nimport unittest\nimport json\nimport fireworks.text as firetext\nfrom fireworks.text.api import (\n ChatMessage,\n ChatCompletionMessageToolCall,\n ChatCompletionMessageToolCallFunction,\n ChatCompletionTool,\n ChatCompletionFunction,\n)\nfrom fireworks.serving.text_completion.formatter import DeepSeekChatCompletionResponseFormatter\nfrom fireworks.text.conversation import (\n DEEPSEEK_CONVERSATION_CONFIG,\n DeepSeekConversationStyle,\n JinjaConversationStyle,\n HuggingFaceConversationStyle,\n ToolCallParams,\n)\n\nfrom fireworks.serving.text_completion.formatters import (\n Llama4ChatCompletionResponseFormatter,\n)\nimport transformers\n\n\nclass TestDeepSeekChatCompletionResponseFormatter(unittest.TestCase):\n def setUp(self):\n # Test request metadata\n self.request_id = \"test_id\"\n self.model_name = \"test-model\"\n self.request_time = 123\n\n # Create a conversation style instance (VicunaChat) and set call_id properties if needed\n conv = DeepSeekConversationStyle(transformers.AutoTokenizer.from_pretrained(\"deepseek-ai/DeepSeek-V3-0324\"))\n self.conv = conv\n\n # Create an instance of the DeepSeek formatter with zero stream_buffer_ms for testing\n self.formatter = DeepSeekChatCompletionResponseFormatter(\n index=0,\n request_id=self.request_id,\n model_name=self.model_name,\n request_time=self.request_time,\n stream_buffer_ms=0,\n conv=self.conv,\n )\n\n # Non-streaming tests\n\n def create_choice(self, text, finish_reason=\"stop\"):\n return firetext.Choice(\n index=0,\n text=text,\n logprobs=None,\n finish_reason=finish_reason,\n )\n\n def test_format_non_streaming_choice_with_single_function_call(self):\n # Construct a text that contains a function call in the DeepSeek-specific format.\n text = (\n \"Hello, please get the weather info.\"\n \"<|tool▁calls▁begin|><|tool▁call▁begin|>function<|tool▁sep|>get_current_weather \"\n '```json {\"location\": \"San Francisco\", \"unit\": \"fahrenheit\"} ```'\n \"<|tool▁call▁end|><|tool▁calls▁end|>\"\n )\n choice = self.create_choice(text)\n response_choice = self.formatter._format_non_streaming_choice(choice)\n # Verify that the non-function (regular) text is correctly extracted.\n self.assertEqual(response_choice.message.content, \"Hello, please get the weather info.\")\n # Verify that a tool call is detected and parsed.\n self.assertEqual(len(response_choice.message.tool_calls), 1)\n tool_call = response_choice.message.tool_calls[0]\n self.assertEqual(tool_call.function.name, \"get_current_weather\")\n expected_args = json.dumps({\"location\": \"San Francisco\", \"unit\": \"fahrenheit\"}, ensure_ascii=False)\n self.assertEqual(tool_call.function.arguments, expected_args)\n # The finish_reason should be set to \"tool_calls\" when a function call is processed.\n self.assertEqual(response_choice.finish_reason, \"tool_calls\")\n\n def test_format_non_streaming_choice_with_multi_function_calls(self):\n # Construct a text that contains multiple function calls in the DeepSeek-specific format.\n text = (\n \"Hello, please get the weather info and stock price.\"\n \"<|tool▁calls▁begin|>\"\n \"<|tool▁call▁begin|>function<|tool▁sep|>get_current_weather \"\n '```json\\n{\"location\": \"San Francisco\", \"unit\": \"fahrenheit\"}\\n```'\n \"<|tool▁call▁end|>\\n\"\n \"<|tool▁call▁begin|>function<|tool▁sep|>get_stock_price \"\n '```json\\n{\"stock_symbol\": \"AAPL\"}\\n```'\n \"<|tool▁call▁end|>\"\n \"<|tool▁calls▁end|>\"\n )\n choice = self.create_choice(text)\n response_choice = self.formatter._format_non_streaming_choice(choice)\n # Verify that the non-function (regular) text is correctly extracted.\n self.assertEqual(\n response_choice.message.content,\n \"Hello, please get the weather info and stock price.\",\n )\n # Verify that both tool calls are detected and parsed correctly\n self.assertEqual(len(response_choice.message.tool_calls), 2)\n\n # Verify first tool call\n tool_call_1 = response_choice.message.tool_calls[0]\n self.assertEqual(tool_call_1.function.name, \"get_current_weather\")\n expected_args_1 = json.dumps({\"location\": \"San Francisco\", \"unit\": \"fahrenheit\"}, ensure_ascii=False)\n self.assertEqual(tool_call_1.function.arguments, expected_args_1)\n\n # Verify second tool call\n tool_call_2 = response_choice.message.tool_calls[1]\n self.assertEqual(tool_call_2.function.name, \"get_stock_price\")\n expected_args_2 = json.dumps({\"stock_symbol\": \"AAPL\"}, "} +{"text": "The Schwarzlose machine gun was developed by Andreas Schwarzlose starting in 1902, as an attempt to produce a machine gun simpler and less expensive than the guns then on the market. Schwarzlose achieved this end by using a delayed blowback action, very unusual in machine gun designs. By using a heavy bolt and a lever-delaying system, the design was able to avoid the necessity of a gas or recoil system and its attendant extra components.\nThe Schwarzlose uses a toggle lock that looks at a glance similar to a Maxim or Luger lock, except that this toggle does not act to lock the bolt. Instead, the toggle must be broken and folded before the bolt can travel rearward, thus delaying it for a moment. This delay is long enough to allow chamber pressure to drop to a safe level (assuming everything is done right). This does require use of ammunition with a specific pressure curve, as overpressure ammunition will cause the bolt to open early and rupture cases while underpowered ammunition will simply fail to fully cycle the action. It also required an oil pump to lubricate cartridges to prevent extraction problems. The pump oil tank held a half liter of oil, which was good for about 4500 rounds of firing. In an effort to make the gun more portable, it was designed with a relatively short (20.75 inch / 525mm) barrel, to reduce weight of the barrel, jacket, and water. This meant that the gun had significant muzzle flash, hence the large flash suppressor.\nAlong with those disadvantages, the gun did have some things working in its favor. Since the barrel did not move (like most contemporary recoil-operated actions), it was simpler to incorporate and seal the cooling water jacket. It also had a very sturdy and reliable feed system. In 1912, the design was modified to use a heavier bolt and spring (and slightly modified lever angle in the toggle), thus increasing the time before opening, which reduced the chamber pressure when it did open, which in turn allowed cartridges to reliably extract without being oiled. The most obvious visual distinction between the 1907 and 07/12 guns is the rounded hump on the from of the 1907 receiver, where the 1912 variation was square at the front of the receiver.\nThe gun loads from below and right of the receiver, and ejects empty cases out the lower right of the receiver. Loading the gun when empty requires inserting a belt and manually cycling the action three times while holding pressure on the loose end of the belt to bring the first cartridge into firing position. The feed mechanism consists of a gear-like wheel that holds the cartridges and rotates them up to the chamber and then down to the ejection port. Firing is done by depressing the central dual triggers between the gun’s handles. There is a safety located between the triggers, which must be held to the left by one thumb while firing.\nThe Schwarzlose was the standard heavy machine gun of the Austro-Hungarian army during World War 1, and was also adopted by the Czechoslovakian, Dutch, Serbian, Romanian, Bulgarian, Turkish, and Swedish armies. Italy captured a significant number of the guns, and used them both during and after WWI. Dutch and Czech Schwarzlose guns were chambered for 8×57 Mauser, while the Swedes used them in 6.5x55mm, and the standard Austrian chambering was 8x50R (later changed to 8x56R). Some guns were build in 6.5x54mm for Greece, but these were appropriated by the Austrian government when war broke out in 1914.\nThe Steyr company in Austria purchased the manufacturing rights for the gun in 1905, and built them until 1918. In 1931, Austrian guns were modified to use the new 8x56R cartridge, which provided a significantly higher muzzle velocity (2300fps, instead of about 1900-2000 with the 8x50R). This was done by rechambering the existing barrels. The British company Kynoch also built the Schwarzlose under license as the Kynoch Machine Gun. A number of other smaller-production variants were also made, including cavalry and aircraft guns."} +{"text": "The supervisor is Ira Podell until 8 a.m. The day supervisor will be Fred Lief. The supervisor can be reached at 800 845-8450, ext. 1630. Sports Photos, ext. 1918; graphics, ext. 7636; agate, ext. 1635. AP stories, along with the photos that accompany them, also can be obtained from http://www.apexchange.com. Reruns are available from the Service Desk (800 838-4616) or your local AP bureau. All times EDT.\nSTATE COLLEGE, Pa. — The results of Penn State's internal investigation into the Jerry Sandusky scandal are about to be released, in the form of a report that could answer many of the troubling questions swirling around one of the darkest scandals in sports history. The report being released early Thursday is the product of a team led by former federal judge and FBI director Louis Freeh. By Genaro Armas and Mark Scolforo. Sent.\n— Oregon native Kelsey Campbell is a freestyle wrestler getting ready to compete in the London Olympics. She began wrestling in high school, competing against boy. She's currently training at the U.S. Olympic Training Center in Colorado.\nMIAMI — Ray Allen could have easily taken the comfortable approach and stayed in Boston. He loves the Celtics' fan base. Teammates such as Kevin Garnett and Paul Pierce wanted him with them for another championship push. The doctors who have spent four years caring for his diabetic son are nearby. All compelling reasons. Just not compelling enough to turn down the Miami Heat. By Tim Reynolds.\nLAKE ORION, Mich. — Tom Watson and Fred Couples went into the U.S. Senior Open with two of the same goals. Stay healthy and win. The pair of fan favorites, both shooting for their first U.S. Senior Open title, were to play together along with amateur Douglas Snoap in Thursday's first round at Indianwood. By Larry Lage.\nLAS VEGAS — For now, the United States is again behind the rest of the basketball world. While the opponents they will face in the Olympics have already been playing exhibition games, the Americans haven't even been able to practice the way they want, getting them off to a slow start on the way to London. By Basketball Writer Brian Mahoney.\n— LONDON — OLY--London 2012-Security. By David Stringer. Sent.\n— DOHA, Qatar — OLY--Qatar-Female Flag-Bearer. Sent.\nHOUSTON — Jed Lowrie was eager to become a starter when he was traded to the Houston Astros by the Boston Red Sox in December after several injury-filled seasons that left him in a utility role. Lowrie took over as the everyday shortstop and quickly became one of the high points of Houston's tough first half. By Kristie Rieken.\nAUSTIN, Texas — The U.S. Anti-Doping Agency on Wednesday granted Lance Armstrong an extension of up to 30 days to contest drug charges while the seven-time Tour de France winner challenges the case in federal court. The move erases the Saturday deadline for Armstrong to either send the case to arbitration or accept sanctions from USADA. By Jim Vertuno. AP Photos. Sent.\nLAS VEGAS — No Dwyane Wade, no problem. The player who led the United States to the gold medal against Spain in Beijing is sitting this Olympics out, but there's a lot of reasons to think this team may be as good or even better than the one four years ago. By Sports Columnist Tim Dahlberg. Sent.\nLOS ANGELES — LeBron James collected the biggest trophy of his career when the Miami Heat won the NBA championship. That title run netted him some more hardware at the ESPY Awards. James won a leading three individual trophies, including male athlete of the year, and shared in another at the 20th annual show celebrating the year's best athletes and moments in sports. By Beth Harris.\nLOS ANGELES — Basketball star Jabari Parker has named 10 college programs he's considering with a year to go before he graduates from high school and DePaul in his hometown of Chicago made the cut. Parker tweeted his 10 schools on Wednesday night in no particular order: national champion Kentucky, Stanford, Michigan State, Kansas, Florida, Duke, BYU, Georgetown, DePaul and North Carolina. By Beth Harris.\n— UNDATED — BBO--Second Half Begins. By Jon Krawczynski. Sent.\n— UNDATED — BKN--Free Agency. By Basketball Writer Brian Mahoney. Sent.\n— NEW ORLEANS — FBN--Saints-Brees. By Brett Martel. Sent.\nThursday's Time Schedule (EDT)\nTulsa at Minnesota, 1 p.m.\nLos Angeles at Indiana, 7 p.m."} +{"text": "ensure_ascii=False)\n self.assertEqual(tool_call_2.function.arguments, expected_args_2)\n\n # The finish_reason should be set to \"tool_calls\" when function calls are processed\n self.assertEqual(response_choice.finish_reason, \"tool_calls\")\n\n def test_format_non_streaming_choice_without_function_call(self):\n # A normal response without any function call markup should fall back to default formatting.\n text = \"This is a regular assistant response.\"\n choice = self.create_choice(text, finish_reason=\"stop\")\n response_choice = self.formatter._format_non_streaming_choice(choice)\n self.assertEqual(response_choice.message.content, \"This is a regular assistant response.\")\n # In non-function call case, finish_reason remains as provided.\n self.assertEqual(response_choice.finish_reason, \"stop\")\n # There should be no tool calls added.\n self.assertFalse(response_choice.message.tool_calls)\n\n def test_format_non_streaming_choice_invalid_function_call(self):\n # When the text contains a function call trigger but the content does not match the expected JSON pattern,\n # the formatter should raise a UserError.\n text = (\n \"Regular message\"\n \"<|tool▁calls▁begin|><|tool▁call▁begin|>function<|tool▁sep|> \"\n \"invalid content\"\n \"<|tool▁call▁end|><|tool▁calls▁end|>\"\n )\n choice = self.create_choice(text, finish_reason=\"stop\")\n with self.assertRaises(firetext.UserError):\n _ = self.formatter._format_non_streaming_choice(choice)\n\n def test_format_non_streaming_choice_missing_end_token(self):\n # Test case where the tool calls text is missing the end token\n text = (\n \"Regular message\"\n \"<|tool▁calls▁begin|><|tool▁call▁begin|>function<|tool▁sep|>get_current_weather\"\n \"```json\"\n '{\"location\":\"San Francisco\",\"unit\":\"fahrenheit\"}'\n \"```<|tool▁call▁end|>\" # Missing <|tool▁calls▁end|>\n )\n choice = self.create_choice(text, finish_reason=\"stop\")\n with self.assertRaises(firetext.UserError):\n _ = self.formatter._format_non_streaming_choice(choice)\n\n # Streaming tests\n\n def test_streaming_complete_plain_text(self):\n \"\"\"Test that a plain assistant message (without any tool call markers) streams correctly.\"\"\"\n plain_text = \"This is a test message.\"\n # Create a choice with finish_reason set to \"stop\"\n choice = firetext.Choice(index=0, text=plain_text, logprobs=None, finish_reason=\"stop\")\n self.formatter.append(choice)\n\n # First response should be empty\n responses = self.formatter.next_buffered_stream(flush=True)\n self.assertEqual(len(responses), 1)\n response_obj = json.loads(responses[0])\n self.assertDictEqual(\n response_obj,\n {\n \"id\": \"test_id\",\n \"object\": \"chat.completion.chunk\",\n \"created\": 123,\n \"model\": \"test-model\",\n \"choices\": [{\"index\": 0, \"delta\": {\"role\": \"assistant\"}, \"finish_reason\": None}],\n \"usage\": None,\n },\n )\n\n # Second response should have the complete content\n responses = self.formatter.next_buffered_stream(flush=True)\n self.assertEqual(len(responses), 2)\n response_obj = json.loads(responses[0])\n self.assertDictEqual(\n response_obj,\n {\n \"id\": \"test_id\",\n \"object\": \"chat.completion.chunk\",\n \"created\": 123,\n \"model\": \"test-model\",\n \"choices\": [\n {\n \"index\": 0,\n \"delta\": {\"content\": \"This is a test message.\"},\n \"finish_reason\": None,\n }\n ],\n \"usage\": None,\n },\n )\n response_obj = json.loads(responses[1])\n self.assertDictEqual(\n response_obj,\n {\n \"id\": \"test_id\",\n \"object\": \"chat.completion.chunk\",\n \"created\": 123,\n \"model\": \"test-model\",\n \"choices\": [{\"index\": 0, \"delta\": {}, \"finish_reason\": \"stop\"}],\n # usage is null because coordinator patches real values later\n \"usage\": None,\n },\n )\n\n def test_streaming_complete_plain_text_token_by_token(self):\n \"\"\"Test that a plain assistant message streams correctly when tokens are added one by one.\"\"\"\n tokens = [\"This\", \" is\", \" a\", \" test\", \" message\", \".\"]\n\n # First response should contain the role\n responses = self.formatter.next_buffered_stream()\n self.assertEqual(len(responses), 1)\n response_obj = json.loads(responses[0])\n self.assertDictEqual(\n response_obj,\n {\n \"id\": \"test_id\",\n "} +{"text": "Tiger Woods fired a 7-under 65 on Friday to take sole possession of first place at the WGC - Cadillac Championship.\nThe six-time winner, who was one of five players to own a share of the lead at the end of the first round, sits at 13-under 131 after two rounds at the TPC Blue Monster at Doral. Woods is two shots clear of Graeme McDowell after the 2010 U.S. Open champion carded a 5-under 67 to stand at 11-under 133 for the tournament.\n\"I feel like I'm playing well. I probably hit the ball better at Torrey, but I'm putting better here so it all evens out,\" Woods said in a televised interview. \"With the forecast of wind on Sunday, hopefully I can hit the ball a little bit better and still maintain my balance and feel on the greens.\"\nPhil Mickelson (67) and Steve Stricker (67) share third at 10-under, while Bubba Watson (69) and Freddie Jacobson (69) sit in fifth at minus-9.\nCharl Schwartzel also shot 7-under 65 on Friday to jump into a share of seventh place with Keegan Bradley (68) at 8-under.\nDefending champion Justin Rose was tied with Schwartzel and Bradley with three holes to play, but he closed his round with a bogey at the seventh and a six on the par-3 ninth en route to a 72. He is tied for 27th at 4-under.\nWoods entered the day tied with McDowell, Watson, Sergio Garcia and Jacobson for the top spot, but it was Stricker who first broke through to take the early lead.\nPlaying with one of the earlier groups, Stricker opened his round with a birdie at the 10th before rolling in a 13-foot birdie putt at the 16th to take the outright lead at minus-7.\nWatson, playing in the same group as Stricker, answered with a 5-foot birdie putt at the same hole to join Stricker at 7-under, while McDowell, who also started on the 10th tee, birdied the 17th to join them atop the leaderboard.\nStricker poured in a 4-foot birdie putt at the 17th to again move ahead of the pack before Woods stepped onto the course and stuck his tee shot at the par-3 fourth within five feet, converting the birdie putt to move within one of the lead.\nWoods then hit his second shot at the fifth within three feet and tapped it in to move to minus-8 and grab a share of first place.\nStricker moved one clear of Woods with a 5-foot birdie putt at the first, but stumbled to a bogey at the second to fall back into a tie with Woods and McDowell, who poured in an 11-foot birdie putt at the first to move into a share of first.\nWoods, however, gained the outright lead with a birdie at the seventh before Mickelson put together a string of three straight birdies starting at the first to join him in the lead at 9-under.\nWoods then curled in a 16-foot birdie putt at the eighth -- his fourth birdie in five holes -- to again move ahead of the pack.\nMickelson had a chance to join Woods at 10-under with a 12-foot birdie attempt at the fourth, but he pushed his attempt just wide to stay a shot back.\nMickelson was able to join Woods atop the leaderboard with a 7-foot birdie putt at the fifth, but Woods recovered from a greenside bunker at the 10th and sunk an 8-foot birdie putt to move ahead for good.\nAfter Mickelson failed to convert a 16-foot birdie putt at the sixth to remain a shot back, Woods rolled in a 12-foot birdie putt at the 11th to move two shots clear at 12-under.\nMcDowell was then able to grab sole possession of second place with birdies at the eighth and ninth, coupled with Mickelson's bogey at the seventh.\nThe bogey dropped Mickelson to minus-9, but he hit his tee shot within a foot of a hole-in-one at the ninth to close with a birdie and move into a tie for third with Stricker.\n\"I gave it a little body wiggle, and usually if you give it a little body wiggle you'll get an extra foot or two release out of it,\" Mickelson joked in a TV interview. \"I gave it the body wiggle and it still didn't get that extra foot. That's what I don't get.\"\nWoods traded a birdie at the 13th with a bogey at the 14th to stay one stroke ahead of McDowell at 12-under before he was able to scramble out of a bunker at the 16th and roll in a 9-foot putt for his eighth birdie of the day.\nBack-to-back pars at the 17th and 18th allowed Woods to hold firm at 13-under.\nNOTE: Woods has recorded 17 birdies over his first two rounds, setting a new career high. His previous record was 16 at the 2007 Tour Championship, the 2000 WGC-NEC Invitational and the 1999 GTE Byron Nelson Classic ... World No. 1 Rory McIlroy carded a 3-under 69 on Friday for his first round in the 60s this year. He is currently tied for 32nd at 2-under for the tournament ... Woods was 14-for-14 on putts from inside 10 feet on Friday .. Woods has held or shared the 36-hole lead 45 times in his career and has gone on to win 35 of those tournaments."} +{"text": "The Fresh Egg blog\nLatest digital marketing news\nSo, “what’s been going on in the world of SEO over the last week?” we hear you cry. There’s no need for the SEO news-hungry to fear, Fresh Egg’s Search News Round Up is here. That’s enough rhyming for one day: on with the news…\nSpeculation flared last Friday and Google has since confirmed that a Panda refresh has been deployed, the 23rd version of this quality seeking tweak. Long since established as a routine element of life in search, the update is notable for its proximity to Christmas, though it will have had little effect on Christmas takings considering it came after the majority of final posting dates. The damage assessment: changes to 1.3% of English based queries.\nThis week, Yahoo! introduced a new format to its search results: cost-per-lead (CPL). This means that websites can now add contact forms containing up to six individual fields to their listings within search results. Users can then directly fill in and submit these forms from the SERPs, without even having to visit the website in question, and websites only pay when a form is submitted. Finally, the ‘thank you’ message that appears after the contact form has been filled in is customisable, too. Take a look at the Match.com example in the images below, taken from Yahoo!’s cost-per-lead blog post:\nIn the same post, it’s stated that Yahoo!’s data from October 2012 has suggested that this format “has yielded clickthrough rate increases of 6%”. Sounds like good news to us. But what does this mean for the world of SEO? It means you’ve got more user engagement with a particular site directly from the SERPs and, perhaps even more interestingly, searchers no longer have to actually visit a website for that site in question to capture their vital information.\nEarlier this week, Matt Cutts discussed how Google’s disavow tool should be used if webmasters think their site is being attacked by negative SEO. Although we’d all agree it is good news that there’s a tool out there to disavow negative links to your site, the process of getting these links disavowed is pretty laborious. It’s unlikely that smaller businesses are going to have the time or resource to identify and produce a disavow file each and every time, and even larger businesses may struggle to keep up, should their site be affected by negative SEO on a large scale or recurring basis.\nCheck out the video for yourself and remember to let us know what you think by leaving your comments on this post.\nWant more SERPs real estate for your business? Of course you do! If you’re in the US, Australia, New Zealand, France, Ireland, The Netherlands or Canada, enlist the services of a Google ‘trusted photographer’ and you could see your shiny Google Business Photo appear right next to the business listings in search results (as displayed in the example from TechCrunch below):\nAlthough the indoor Street View images for business have been around for a while, up until this week they’ve been hidden away in local listings and maps. Now, Google is starting to give these photos the chance to take pride of place in the right sidebar of search results. All searchers need to do is click the “See inside” image and they will be taken to indoor Street View. Unfortunately, this feature is yet to be made available in the UK.\nAfter acquiring Meebo in June 2012, the first signs of Google working with the social sharing software and team were seen this week. So far, it’s only been reported by The Next Web, but the example shows the bar being spotted with the new Google+ integration, which allows users to share and comment directly from the site, without being on their Google+ page.\nAn increase in the use of the Meebo Google+ bar would essentially make it easier than ever to share content via Google+, which in turn could well lead to increased sharing of content across the network. If, as many SEOs believe, Google+ sharing supports faster indexation of content, then a new social tool bar that promotes such sharing can surely only be a good thing?\nEveryone may have been talking about the world ending on Friday 21 December, but the SEO world was chattering a week earlier – what on earth happened on 13 December? Was it a major algorithm update? Google says no, but a lot of the signals pointed to ‘yes’. See SEOMoz, Search Engine Land, and Search Engine Roundtable for more.\nAs the last Search News Round Up from us before Christmas, we’d like to take this opportunity to wish you all a fabulous Christmas and the all the best for 2013!"} +{"text": " \"object\": \"chat.completion.chunk\",\n \"created\": 123,\n \"model\": \"test-model\",\n \"choices\": [{\"index\": 0, \"delta\": {\"role\": \"assistant\"}, \"finish_reason\": None}],\n \"usage\": None,\n },\n )\n\n # Add each token and verify the streaming response\n for token in tokens:\n choice = firetext.Choice(index=0, text=token, logprobs=None, finish_reason=None)\n self.formatter.append(choice)\n responses = self.formatter.next_buffered_stream()\n self.assertEqual(len(responses), 1)\n response_obj = json.loads(responses[0])\n self.assertDictEqual(\n response_obj,\n {\n \"id\": \"test_id\",\n \"object\": \"chat.completion.chunk\",\n \"created\": 123,\n \"model\": \"test-model\",\n \"choices\": [\n {\n \"index\": 0,\n \"delta\": {\"content\": token},\n \"finish_reason\": None,\n }\n ],\n \"usage\": None,\n },\n )\n\n # Send final token with stop finish_reason\n choice = firetext.Choice(index=0, text=\"\", logprobs=None, finish_reason=\"stop\")\n self.formatter.append(choice)\n responses = self.formatter.next_buffered_stream()\n self.assertEqual(len(responses), 1)\n response_obj = json.loads(responses[0])\n self.assertDictEqual(\n response_obj,\n {\n \"id\": \"test_id\",\n \"object\": \"chat.completion.chunk\",\n \"created\": 123,\n \"model\": \"test-model\",\n \"choices\": [{\"index\": 0, \"delta\": {}, \"finish_reason\": \"stop\"}],\n # usage is null because coordinator patches real values later\n \"usage\": None,\n },\n )\n\n def test_streaming_eos_token_with_logprobs(self):\n \"\"\"Test that EOS token logprobs are preserved when streaming, even when content is empty.\n\n This test verifies the fix at line 847 in formatter.py where the condition\n 'if assistant_message or choice.logprobs is not None:' ensures that EOS tokens\n with logprobs are included in the response even when the content is empty.\n \"\"\"\n from fireworks.text.choice import LogProbs, TopLogProb\n\n tokens = [\"Hello\", \" world\"]\n\n # First response should contain the role\n responses = self.formatter.next_buffered_stream()\n self.assertEqual(len(responses), 1)\n response_obj = json.loads(responses[0])\n self.assertDictEqual(\n response_obj,\n {\n \"id\": \"test_id\",\n \"object\": \"chat.completion.chunk\",\n \"created\": 123,\n \"model\": \"test-model\",\n \"choices\": [{\"index\": 0, \"delta\": {\"role\": \"assistant\"}, \"finish_reason\": None}],\n \"usage\": None,\n },\n )\n\n # Add tokens with logprobs and flush each one\n for i, token in enumerate(tokens):\n logprobs = LogProbs(\n tokens=[token],\n token_bytes=[token.encode()],\n token_logprobs=[-0.5 + i * 0.1],\n sampling_logprobs=[-0.5 + i * 0.1],\n top_logprobs=[\n [TopLogProb(token=token, bytes=token.encode(), logprob=-0.5 + i * 0.1, token_id=100 + i)]\n ],\n text_offset=[i * 10],\n token_ids=[100 + i],\n last_activations=[None],\n routing_matrix=[None],\n )\n choice = firetext.Choice(index=0, text=token, logprobs=logprobs, finish_reason=None)\n self.formatter.append(choice)\n responses = self.formatter.next_buffered_stream()\n self.assertEqual(len(responses), 1)\n response_obj = json.loads(responses[0])\n self.assertIn(\"logprobs\", response_obj[\"choices\"][0])\n self.assertEqual(response_obj[\"choices\"][0][\"delta\"][\"content\"], token)\n\n # Send EOS token with empty text but with logprobs\n # This simulates the case where EOS token detokenizes to empty string\n # The key test is that logprobs should be preserved even though content is empty\n eos_logprobs = LogProbs(\n tokens=[\"\"], # EOS token detokenizes to empty string\n token_bytes=[b\"\"],\n token_logprobs=[-0.123],\n sampling_logprobs=[-0.123],\n top_logprobs=[[TopLogProb(token=\"\", bytes=b\"\", logprob=-0.123, token_id=2)]],\n text_offset=[20],\n token_ids=[2],\n last_activations=[None],\n routing_matrix=[None],\n )\n eos_choice = firetext.Choice(index=0, text=\"\", logprobs=eos_logprobs, finish_reason=\"stop\")\n\n # Now test the full flow\n self.fo"} +{"text": "For Immediate Release\nFUJIFILM MEDICAL SYSTEMS U.S.A., INC. DEMONSTRATES LATEST INNOVATIONS IN ECHOCARDIOGRAPHY IMAGE MANAGEMENT AND REPORTING AT THE 25th ANNUAL SCIENTIFIC SESSIONS OF THE AMERICAN SOCIETY OF ECHOCARDIOGRAPHY\nStamford, Conn., June 19, 2014 (Booth #301) – FUJIFILM Medical Systems U.S.A., Inc. will demonstrate the next generation of Synapse Cardiovascular, that will allow cardiologists and clinical professionals to enhance patient care through advanced reporting applications at the 25th Annual Scientific Session of the American Society of Echocardiography in Portland, Oregon.\n“With Synapse, our users are able to perform their job more efficiently and ultimately allow them to concentrate more on the patient and improve patient outcomes,” said Jim Morgan, vice president of Medical Informatics, FUJIFILM Medical Systems U.S.A., Inc. “At ASE, we will demonstrate an upcoming clinical reporting platform that will feature a new user interface and layout options that has the potential to benefit your entire practice.”\nFollowing is a summary of offerings:\nSynapse Cardiovascular helps cardiologists in a variety of clinical areas efficiently and confidently interpret images and compose structured reports with a streamlined workflow. The system has powerful capabilities designed specifically for, echocardiography, cardiac catheterization and invasive peripheral vascular, nuclear cardiology, vascular ultrasound, ECG management, CT, and Cardiac MRI workflows. Fujifilm's Synapse Cardiovascular is an essential addition to any clinical workplace. At the show, attendees will also be able to see a works-in-progress demonstration of Synapse Cardiovascular 6.0*, which will showcase intended future functionality for echocardiography.\nFujifilm will also share the benefits of its zero footprint mobile application, Synapse Mobility. The application enables access to Fujifilm’s suite of Synapse products from hand-held devices, in addition to browser independence. Access to non-DICOM information from the Synapse VNA has been added to complete the universal viewing capability from EMRs such as Epic Hyperspace. Synapse Mobility continues to demonstrate its diagnostic capability for both browser and mobile versions.\nTo register for a demonstration at ASE 2014, please visit: http://www.fujimed.com/gateway/ase/2014/registration.html.\n*Synapse Cardiovascular 6.0 will be made commercially available in the U.S. upon receipt of FDA clearance\nFor more information about Synapse, please visit: http://cardiovascular.fujimed.com/\nFUJIFILM Medical Systems U.S.A., Inc. is a leading provider of diagnostic imaging products and medical informatics solutions to meet the needs of healthcare facilities today and well into the future. From an unrivaled selection of digital x-ray systems, to the Synapse® brand of PACS, RIS and cardiovascular products, to advanced women’s health imaging systems, Fujifilm has products that are ideal for any size imaging environment. The Endoscopy Division of FUJIFILM Medical Systems U.S.A., Inc. supplies high quality, technologically advanced FUJINON brand endoscopes to the medical market. FUJIFILM Medical Systems U.S.A., Inc. is headquartered in Stamford, CT. For more information please visit www.fujimed.com and www.fujifilmendoscopy.com.\nFUJIFILM Holdings Corporation, Tokyo, Japan brings continuous innovation and leading-edge products to a broad spectrum of industries, including: healthcare, with medical systems, pharmaceuticals and cosmetics; graphic systems; highly functional materials, such as flat panel display materials; optical devices, such as broadcast and cinema lenses; digital imaging; and document products. These are based on a vast portfolio of chemical, mechanical, optical, electronic, software and production technologies. In the year ended March 31, 2014, the company had global revenues of $23.7 billion, at an exchange rate of 103 yen to the dollar. Fujifilm is committed to environmental stewardship and good corporate citizenship. For more information, please visit: www.fujifilmholdings.com.\nAll product and company names herein may be trademarks of their registered owners."} +{"text": "For the Investor:\nWhat the FASB Learns from Investor Roadshows\nIn a prior FASB Outlook article, I discussed how and why the FASB seeks out investors’ opinions and comments. One of these methods, the investor roadshow, is an important part of how the FASB receives high-level strategic input from investors.\nIn June, a FASB senior investor liaison and two FASB Board members spent a day in New York City in small group meetings with investors. The meetings did not have formal agendas and were not in-depth technical accounting teach-ins.\nInvestor roadshows help us gain insight into ongoing or emerging accounting issues that may exist in the marketsInstead, investors were encouraged to talk broadly about financial reporting and the issues they face in doing their jobs. Given the mission to improve financial reporting for investors, investor roadshows are integral to understanding of whether the FASB is focused on the right areas. These meetings help us gain insight into ongoing or emerging accounting issues that may exist in the markets.\nThe roadshow meetings were set up with a wide range of investors, including sell-side accounting analysts; buyside analysts and portfolio managers at “long-only” funds; and analysts and portfolio managers at hedge funds with varying investment strategies. In each meeting, we traveled to the investors’ locations in order to encourage broader participation.\nIn addition to some brief conversations regarding stock compensation and international convergence, we discussed:\nRevenue Recognition: It is not surprising that revenue recognition is a major focus for investors. Many investors were interested in learning about the possible implications of the new revenue recognition standard (click here for a FASB In Focus) on the industry sectors that they follow.\nA few buyside generalist analysts were intrigued by the idea of potentially getting more top-line comparability between companies that operate in disparate sectors.\nAlso, some pointed out that they will be looking for companies to provide information prior to the effective date about how they will be transitioning to the new standard and what the impact might be on revenue and gross margin trends.\nTaxes: Corporate tax strategies were raised in several meetings. While investors were certainly concerned about strategic issues that are outside the mandate of accounting standard setting, these investors also said that the tax footnote in the financial statements currently is inadequate.\nFor example, one portfolio manager highlighted the recent wave of inversion deals and, as a result, sought more transparency around tax exposures in different national jurisdictions. The tax footnote was identified as one of three areas where the staff and the FASB will attempt to apply the concepts of the Disclosure Framework project to rewrite the tax disclosure requirements.\nI was encouraged that other issues raised by investors during the roadshow are under consideration by the FASB.In addition to revenue recognition and taxes, I was encouraged that other issues raised by investors during the roadshow are under consideration by the FASB. For example, investors raised concerns about defined benefit pension accounting and interest rate risk.\nWhile there were several views on how to improve pension accounting in general, there was a consensus that an improvement to current reporting would be to break out pension costs into operating and nonoperating components.\nInterest rate risk was raised by an individual analyst. While public financial institutions are required to discuss this in the management’s discussion and analysis section of regulatory filings, the disclosures are often not comparable from one organization to another.\nAnother issue raised was research and development costs.\nFor investors looking to participate in future investor roadshows, please don’t hesitate to be in touch with me or either of our senior investor liaisons. They can be reached anytime via email, or you can reach them by calling (203) 847-0700."} diff --git a/llm_bench/gen_load_test.py b/llm_bench/gen_load_test.py index 95b4e3e..12b72e7 100644 --- a/llm_bench/gen_load_test.py +++ b/llm_bench/gen_load_test.py @@ -2,10 +2,10 @@ """ Generation (decode) latency benchmark for Fireworks /v1/completions. -For each (seq_len, batch_size) pair, builds a single user message wrapped in -the model's chat template (applied client-side via the HF tokenizer), sends -the resulting token-id prompt with n=batch_size and max_tokens output tokens, -then reports per-forward-pass generation latency derived from +For each (seq_len, batch_size) pair, builds a deterministic ragged batch of +distinct prompts whose lengths follow gamma-distribution quantiles, sends all +token-id prompts in one request, then reports per-forward-pass generation +latency derived from fireworks-generation-duration and the number of target-model forward passes (speculation-aware). """ @@ -31,6 +31,7 @@ import requests import transformers from huggingface_hub import hf_hub_download +from scipy.special import gammaincinv from tabulate import tabulate FW_HEADER_PREFIX = "fireworks-" @@ -87,6 +88,9 @@ def routing_headers_for_worker(cfg: Optional[RoutingConfig], worker_idx: int) -> # NB: don't use power of 2 as we will use multiples of this to generate seq pairs # and in some cases it will batch max seq len of a model, which is the edge case we don't want to benchmark. _DEFAULT_MIN_SEQ_LEN = 1000 +_DEFAULT_GAMMA_SHAPE = 0.9 +_DISTINCT_PROMPTS_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), "distinct_prompts_512.jsonl") +_RAGGED_PROMPT_SUFFIX = "\n\nGive me a detailed analysis of the above content." _MAX_SEQ_LEN_CONFIG_FIELDS = ( "max_position_embeddings", "model_max_length", @@ -204,6 +208,14 @@ def load_chunks(dataset: str) -> list[str]: return chunks +def load_distinct_prompts(path: str = _DISTINCT_PROMPTS_PATH) -> list[str]: + with open(path, "r") as f: + prompts = [json.loads(line)["text"].strip() for line in f if line.strip()] + if not prompts: + raise ValueError(f"No prompts found in {path}") + return prompts + + _DATASET_SUFFIXES = { "limericks": "\n\nTranslate the limericks above to Spanish.", "code": "\n\nTranslate the code above to C++.", @@ -310,6 +322,64 @@ def length_for(k: int) -> int: return apply_chat_template_ids(tokenizer, tokenizer_path, "".join(chunk_texts[:lo]) + suffix_text, model_type) +def build_repeated_chat_prompt_ids( + tokenizer: transformers.PreTrainedTokenizer, + tokenizer_path: str, + model_type: str, + source_text: str, + target_len: int, +) -> list[int]: + """Repeat one source row and truncate its tokens to fit target_len.""" + repeated_unit = source_text.rstrip() + "\n\n" + suffix_ids = apply_chat_template_ids( + tokenizer, + tokenizer_path, + _RAGGED_PROMPT_SUFFIX, + model_type, + ) + target_len = max(target_len, len(suffix_ids)) + body_budget = target_len - len(suffix_ids) + unit_tokens = max(1, len(tokenizer.encode(repeated_unit, add_special_tokens=False))) + repeated_text = repeated_unit * (body_budget // unit_tokens + 2) + body_ids = tokenizer.encode(repeated_text, add_special_tokens=False)[:body_budget] + + def render(ids: list[int]) -> list[int]: + body = tokenizer.decode(ids, skip_special_tokens=False, clean_up_tokenization_spaces=False) + return apply_chat_template_ids(tokenizer, tokenizer_path, body + _RAGGED_PROMPT_SUFFIX, model_type) + + prompt_ids = render(body_ids) + while len(prompt_ids) > target_len and body_ids: + body_ids = body_ids[: max(0, len(body_ids) - max(1, len(prompt_ids) - target_len))] + prompt_ids = render(body_ids) + return prompt_ids + + +def build_ragged_prompt_batch( + tokenizer: transformers.PreTrainedTokenizer, + tokenizer_path: str, + model_type: str, + source_prompts: list[str], + mean_prompt_len: int, + batch_size: int, + gamma_shape: float, + max_prompt_len: int, +) -> list[list[int]]: + prompts: list[list[int]] = [] + for index in range(batch_size): + percentile = (index + 1) / (batch_size + 1) + target_len = round(gammaincinv(gamma_shape, percentile) * mean_prompt_len / gamma_shape) + prompts.append( + build_repeated_chat_prompt_ids( + tokenizer=tokenizer, + tokenizer_path=tokenizer_path, + model_type=model_type, + source_text=source_prompts[index % len(source_prompts)], + target_len=min(max(1, target_len), max_prompt_len), + ) + ) + return prompts + + def get_header(headers: Mapping[str, str], short_key: str) -> Optional[float]: full = FW_HEADER_PREFIX + short_key v = headers.get(full) @@ -358,7 +428,7 @@ def post_completion( url: str, api_key: Optional[str], model: Optional[str], - prompt: list[int], + prompt: list[int] | list[list[int]], max_tokens: int, n: int, temperature: Optional[float] = None, @@ -410,20 +480,20 @@ class GenBenchmarkResult: client_duration: float -def _run_pair_n_mode( +def _run_pair_batched_prompts_mode( session: requests.Session, url: str, api_key: Optional[str], model: Optional[str], - prompt_ids: list[int], + prompt_ids: list[list[int]], max_tokens: int, seq_len: int, batch_size: int, temperature: Optional[float], ) -> GenBenchmarkResult: - """Single request with n=batch_size.""" + """Send batch_size distinct prompts together in one request with n=1.""" logger.info( - "Pair (seq_len=%d, batch_size=%d): n=%d, max_tokens=%d", + "Pair (seq_len=%d, batch_size=%d): %d ragged prompts in one request, n=1, max_tokens=%d", seq_len, batch_size, batch_size, @@ -438,7 +508,7 @@ def _run_pair_n_mode( model, prompt_ids, max_tokens=max_tokens, - n=batch_size, + n=1, temperature=temperature, ) wall = time.perf_counter() - wall_start @@ -577,7 +647,7 @@ def _warmup_seq_len( url: str, api_key: Optional[str], model: Optional[str], - prompt_ids: list[int], + prompt_ids: list[int] | list[list[int]], seq_len: int, concurrency: int, temperature: Optional[float], @@ -587,7 +657,7 @@ def _warmup_seq_len( routing: Optional[RoutingConfig] = None, worker_offset: int = 0, ) -> None: - """Issue `concurrency` warmup completions in parallel for the same prompt.""" + """Issue warmup completions for one prompt or one batched prompt payload.""" if users is not None: assert len(users) == concurrency, f"expected {concurrency} users, got {len(users)}" @@ -651,29 +721,47 @@ def run_benchmark( retry_delay: float = 30.0, seed: int = 0, routing: Optional[RoutingConfig] = None, + gamma_shape: float = _DEFAULT_GAMMA_SHAPE, + max_context_len: Optional[int] = None, ) -> list[GenBenchmarkResult]: tokenizer = _load_auto_tokenizer(tokenizer_path) model_type = resolve_model_type(tokenizer_path) if model_type == "deepseek_v4": logger.info("Using DeepSeek-V4 benchmark prompt encoder") - max_seq = max(seq_len for seq_len, _ in pairs) - chunks = load_chunks(dataset) - suffix = _DATASET_SUFFIXES.get(dataset, "") - - chunk_texts = build_chunk_texts_to_length(tokenizer, chunks, max_seq) - url = completions_url(base_url) session = requests.Session() # Mode is derived from routing: enabled (num_servers > 1 OR num_gens > 1) # implies separate concurrent requests pinned to specific cells; disabled - # falls back to a single request with n=batch_size against the LB. + # falls back to one request containing batch_size distinct prompts. routing = routing or RoutingConfig() separate_requests = routing.enabled if separate_requests: logger.info("Mode: separate concurrent requests (no n>1)") + max_seq = max(seq_len for seq_len, _ in pairs) + chunks = load_chunks(dataset) + suffix = _DATASET_SUFFIXES.get(dataset, "") + chunk_texts = build_chunk_texts_to_length(tokenizer, chunks, max_seq) else: - logger.info("Mode: single request with n=batch_size") + source_prompts = load_distinct_prompts() + if max_context_len is None: + max_context_len = resolve_max_seq_len(tokenizer_path) + else: + try: + max_context_len = min(max_context_len, resolve_max_seq_len(tokenizer_path)) + except ValueError: + pass + max_prompt_len = max_context_len - max_tokens + min_prompt_len = len( + apply_chat_template_ids(tokenizer, tokenizer_path, _RAGGED_PROMPT_SUFFIX, model_type) + ) + if max_prompt_len < min_prompt_len: + raise ValueError("model context is too small for max_tokens and the required prompt suffix") + logger.info( + "Mode: single request with batch_size ragged prompts (gamma shape=%.3f, context-clamped at %d prompt tokens)", + gamma_shape, + max_prompt_len, + ) logger.info("Routing: %s", routing.describe()) results: list[GenBenchmarkResult] = [] @@ -685,9 +773,10 @@ def run_benchmark( pairs = sorted(pairs, key=lambda p: (-p[0], -p[1])) prompt_ids: list[int] = [] + ragged_prompt_ids: list[list[int]] = [] seq_users: list[str] = [] for seq_len, batch_size in pairs: - if seq_len != prev_seq_len: + if separate_requests and seq_len != prev_seq_len: prompt_ids = build_chat_prompt_ids( tokenizer, tokenizer_path, @@ -697,65 +786,78 @@ def run_benchmark( target_len=seq_len - max_tokens, ) logger.info("Built prompt for seq_len=%d: %d tokens", seq_len, len(prompt_ids)) - if separate_requests: - if prev_seq_len is None: - # HACK: backend OOMs without this pre-warmup on the largest - # seq_len; sending the same prompt 64 times sequentially - # with a fresh random `user` each time primes the backend - # across generators before the user-pinned warmup at full - # batch_size. TODO: fix the backend OOM and remove this. - # - # When routing is enabled we also round-robin the worker - # index across all (server, local) workers so every DP group - # gets primed by this hack instead of relying on the LB. - logger.info( - "Pre-warmup (seq_len=%d): 64 sequential requests with random users (HACK)", - seq_len, - ) - rng = random.Random(seed) - for i in range(64): - _warmup_seq_len( - url=url, - api_key=api_key, - model=model, - prompt_ids=prompt_ids, - seq_len=seq_len, - concurrency=1, - temperature=temperature, - retries=retries, - retry_delay=retry_delay, - users=[str(rng.randint(0, 2**63 - 1))], - routing=routing, - worker_offset=i, - ) - seq_users = _generate_users(seq_len + seed, batch_size) - _warmup_seq_len( - url=url, - api_key=api_key, - model=model, - prompt_ids=prompt_ids, - seq_len=seq_len, - concurrency=len(seq_users), - temperature=temperature, - retries=retries, - retry_delay=retry_delay, - users=seq_users, - routing=routing, - ) - else: - # n-mode measurement is unrouted; warmup must match or cache primes the wrong worker. - _warmup_seq_len( - url=url, - api_key=api_key, - model=model, - prompt_ids=prompt_ids, - seq_len=seq_len, - concurrency=1, - temperature=temperature, - retries=retries, - retry_delay=retry_delay, + if prev_seq_len is None: + # HACK: backend OOMs without this pre-warmup on the largest + # seq_len; sending the same prompt 64 times sequentially + # with a fresh random `user` each time primes the backend + # across generators before the user-pinned warmup at full + # batch_size. TODO: fix the backend OOM and remove this. + # + # When routing is enabled we also round-robin the worker + # index across all (server, local) workers so every DP group + # gets primed by this hack instead of relying on the LB. + logger.info( + "Pre-warmup (seq_len=%d): 64 sequential requests with random users (HACK)", + seq_len, ) + rng = random.Random(seed) + for i in range(64): + _warmup_seq_len( + url=url, + api_key=api_key, + model=model, + prompt_ids=prompt_ids, + seq_len=seq_len, + concurrency=1, + temperature=temperature, + retries=retries, + retry_delay=retry_delay, + users=[str(rng.randint(0, 2**63 - 1))], + routing=routing, + worker_offset=i, + ) + seq_users = _generate_users(seq_len + seed, batch_size) + _warmup_seq_len( + url=url, + api_key=api_key, + model=model, + prompt_ids=prompt_ids, + seq_len=seq_len, + concurrency=len(seq_users), + temperature=temperature, + retries=retries, + retry_delay=retry_delay, + users=seq_users, + routing=routing, + ) prev_seq_len = seq_len + elif not separate_requests: + mean_prompt_len = seq_len - max_tokens + if mean_prompt_len < 1: + raise ValueError( + f"seq_len={seq_len} must exceed max_tokens={max_tokens} to leave room for the prompt" + ) + ragged_prompt_ids = build_ragged_prompt_batch( + tokenizer=tokenizer, + tokenizer_path=tokenizer_path, + model_type=model_type, + source_prompts=source_prompts, + mean_prompt_len=mean_prompt_len, + batch_size=batch_size, + gamma_shape=gamma_shape, + max_prompt_len=max_prompt_len, + ) + _warmup_seq_len( + url=url, + api_key=api_key, + model=model, + prompt_ids=ragged_prompt_ids, + seq_len=seq_len, + concurrency=1, + temperature=temperature, + retries=retries, + retry_delay=retry_delay, + ) users: Optional[list[str]] = None if separate_requests: @@ -778,12 +880,12 @@ def run_benchmark( routing=routing, ) else: - result = _run_pair_n_mode( + result = _run_pair_batched_prompts_mode( session=session, url=url, api_key=api_key, model=model, - prompt_ids=prompt_ids, + prompt_ids=ragged_prompt_ids, max_tokens=max_tokens, seq_len=seq_len, batch_size=batch_size, @@ -910,6 +1012,14 @@ def main() -> None: default=100, help="Number of tokens to generate per completion (default: 100).", ) + parser.add_argument( + "--gamma-shape-k", + "--gamma-shape", + dest="gamma_shape", + type=float, + default=_DEFAULT_GAMMA_SHAPE, + help=f"Gamma shape k for deterministic ragged prompt lengths (default: {_DEFAULT_GAMMA_SHAPE}).", + ) parser.add_argument( "-f", "--format", @@ -971,6 +1081,8 @@ def main() -> None: parser.error("--min-batch-size must be >= 1") if args.min_batch_size > args.max_batch_size: parser.error("--min-batch-size must be <= --max-batch-size") + if args.gamma_shape <= 0: + parser.error("--gamma-shape-k must be > 0") routing = RoutingConfig( num_servers=args.num_servers, num_gens=args.num_generators_per_server, @@ -1019,6 +1131,8 @@ def main() -> None: retry_delay=args.retry_delay, seed=args.seed, routing=routing, + gamma_shape=args.gamma_shape, + max_context_len=args.max_seq_len, ) if args.format == "csv": print(format_csv(rows)) diff --git a/llm_bench/requirements.txt b/llm_bench/requirements.txt index ae3c6e6..55527e0 100644 --- a/llm_bench/requirements.txt +++ b/llm_bench/requirements.txt @@ -6,6 +6,7 @@ gevent locust-plugins pandas python-dotenv +scipy tabulate tiktoken transformers From d6701d485637f8b05d8fdf497005ede636041f8a Mon Sep 17 00:00:00 2001 From: James Anderson Date: Sat, 18 Jul 2026 13:13:07 -0700 Subject: [PATCH 02/10] fix(llm-bench): warm ragged prompts sequentially Co-authored-by: Cursor --- llm_bench/gen_load_test.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/llm_bench/gen_load_test.py b/llm_bench/gen_load_test.py index 12b72e7..1aa8bf3 100644 --- a/llm_bench/gen_load_test.py +++ b/llm_bench/gen_load_test.py @@ -847,17 +847,18 @@ def run_benchmark( gamma_shape=gamma_shape, max_prompt_len=max_prompt_len, ) - _warmup_seq_len( - url=url, - api_key=api_key, - model=model, - prompt_ids=ragged_prompt_ids, - seq_len=seq_len, - concurrency=1, - temperature=temperature, - retries=retries, - retry_delay=retry_delay, - ) + for warmup_prompt_ids in ragged_prompt_ids: + _warmup_seq_len( + url=url, + api_key=api_key, + model=model, + prompt_ids=warmup_prompt_ids, + seq_len=seq_len, + concurrency=1, + temperature=temperature, + retries=retries, + retry_delay=retry_delay, + ) users: Optional[list[str]] = None if separate_requests: From 20d2f592926df269f49f14f98adc443aea74acee Mon Sep 17 00:00:00 2001 From: James Anderson Date: Sat, 18 Jul 2026 14:04:33 -0700 Subject: [PATCH 03/10] fix(llm-bench): synchronize speculative forwards Co-authored-by: Cursor --- llm_bench/gen_load_test.py | 1 + 1 file changed, 1 insertion(+) diff --git a/llm_bench/gen_load_test.py b/llm_bench/gen_load_test.py index 1aa8bf3..b295865 100644 --- a/llm_bench/gen_load_test.py +++ b/llm_bench/gen_load_test.py @@ -440,6 +440,7 @@ def post_completion( "max_tokens": max_tokens, "n": n, "stream": False, + "disable_speculation": True, } if temperature is not None: payload["temperature"] = temperature From 7060078c935270170dfd92325497432f39d9f50d Mon Sep 17 00:00:00 2001 From: James Anderson Date: Sat, 18 Jul 2026 16:11:00 -0700 Subject: [PATCH 04/10] docs(llm-bench): clarify forward latency mode Co-authored-by: Cursor --- llm_bench/gen_load_test.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/llm_bench/gen_load_test.py b/llm_bench/gen_load_test.py index b295865..836b2f0 100644 --- a/llm_bench/gen_load_test.py +++ b/llm_bench/gen_load_test.py @@ -4,10 +4,9 @@ For each (seq_len, batch_size) pair, builds a deterministic ragged batch of distinct prompts whose lengths follow gamma-distribution quantiles, sends all -token-id prompts in one request, then reports per-forward-pass generation -latency derived from -fireworks-generation-duration and the number of target-model forward passes -(speculation-aware). +token-id prompts in one request, and reports generation latency per target-model +forward. Drafting and verification remain enabled, but speculative token +acceptance is disabled so every sequence commits one token per forward. """ from __future__ import annotations From 998c992a7e6365b38a149aaceaadc868f87ea2a8 Mon Sep 17 00:00:00 2001 From: James Anderson Date: Sat, 18 Jul 2026 17:10:28 -0700 Subject: [PATCH 05/10] fix(llm-bench): separate model context from sweep cap Co-authored-by: Cursor --- llm_bench/gen_load_test.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/llm_bench/gen_load_test.py b/llm_bench/gen_load_test.py index 836b2f0..a73ead2 100644 --- a/llm_bench/gen_load_test.py +++ b/llm_bench/gen_load_test.py @@ -154,7 +154,7 @@ def resolve_max_seq_len(tokenizer_path: str) -> int: v = config.get(name) if isinstance(config, Mapping) else getattr(config, name, None) if isinstance(v, int) and v > 0: return v - raise ValueError("Could not infer max sequence length from config; pass --max-seq-len explicitly.") + raise ValueError("Could not infer max sequence length from config.") def resolve_model_type(tokenizer_path: str) -> str: @@ -745,12 +745,12 @@ def run_benchmark( else: source_prompts = load_distinct_prompts() if max_context_len is None: - max_context_len = resolve_max_seq_len(tokenizer_path) - else: try: - max_context_len = min(max_context_len, resolve_max_seq_len(tokenizer_path)) - except ValueError: - pass + max_context_len = resolve_max_seq_len(tokenizer_path) + except ValueError as e: + raise ValueError( + "Could not infer deployed model context; pass --model-max-context-len explicitly." + ) from e max_prompt_len = max_context_len - max_tokens min_prompt_len = len( apply_chat_template_ids(tokenizer, tokenizer_path, _RAGGED_PROMPT_SUFFIX, model_type) @@ -982,6 +982,12 @@ def main() -> None: default=None, help="Max sequence length (default: read from HF config). " "Used for auto-generating --seq-lens.", ) + parser.add_argument( + "--model-max-context-len", + type=int, + default=None, + help="Deployed model context limit used to clamp ragged prompts (default: read from HF config).", + ) parser.add_argument( "--min-seq-len", type=int, @@ -1082,6 +1088,8 @@ def main() -> None: parser.error("--min-batch-size must be >= 1") if args.min_batch_size > args.max_batch_size: parser.error("--min-batch-size must be <= --max-batch-size") + if args.model_max_context_len is not None and args.model_max_context_len < 1: + parser.error("--model-max-context-len must be >= 1") if args.gamma_shape <= 0: parser.error("--gamma-shape-k must be > 0") routing = RoutingConfig( @@ -1133,7 +1141,7 @@ def main() -> None: seed=args.seed, routing=routing, gamma_shape=args.gamma_shape, - max_context_len=args.max_seq_len, + max_context_len=args.model_max_context_len, ) if args.format == "csv": print(format_csv(rows)) From 15b3298e318a36c9dc18c1f7261a1d0c69b1c1db Mon Sep 17 00:00:00 2001 From: James Anderson Date: Sat, 18 Jul 2026 17:23:43 -0700 Subject: [PATCH 06/10] fix(llm-bench): reserve context sentinel token Co-authored-by: Cursor --- llm_bench/gen_load_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llm_bench/gen_load_test.py b/llm_bench/gen_load_test.py index a73ead2..7cd5b35 100644 --- a/llm_bench/gen_load_test.py +++ b/llm_bench/gen_load_test.py @@ -751,7 +751,7 @@ def run_benchmark( raise ValueError( "Could not infer deployed model context; pass --model-max-context-len explicitly." ) from e - max_prompt_len = max_context_len - max_tokens + max_prompt_len = max_context_len - max_tokens - 1 min_prompt_len = len( apply_chat_template_ids(tokenizer, tokenizer_path, _RAGGED_PROMPT_SUFFIX, model_type) ) From f34c85d0a2e95d28ebb194fc66e1d2e206d34c3f Mon Sep 17 00:00:00 2001 From: James Anderson Date: Sat, 18 Jul 2026 17:34:18 -0700 Subject: [PATCH 07/10] perf(llm-bench): batch ragged prompt warmups Co-authored-by: Cursor --- llm_bench/gen_load_test.py | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/llm_bench/gen_load_test.py b/llm_bench/gen_load_test.py index 7cd5b35..d7e4b4b 100644 --- a/llm_bench/gen_load_test.py +++ b/llm_bench/gen_load_test.py @@ -325,11 +325,10 @@ def build_repeated_chat_prompt_ids( tokenizer: transformers.PreTrainedTokenizer, tokenizer_path: str, model_type: str, - source_text: str, + source_token_ids: list[int], target_len: int, ) -> list[int]: """Repeat one source row and truncate its tokens to fit target_len.""" - repeated_unit = source_text.rstrip() + "\n\n" suffix_ids = apply_chat_template_ids( tokenizer, tokenizer_path, @@ -338,9 +337,7 @@ def build_repeated_chat_prompt_ids( ) target_len = max(target_len, len(suffix_ids)) body_budget = target_len - len(suffix_ids) - unit_tokens = max(1, len(tokenizer.encode(repeated_unit, add_special_tokens=False))) - repeated_text = repeated_unit * (body_budget // unit_tokens + 2) - body_ids = tokenizer.encode(repeated_text, add_special_tokens=False)[:body_budget] + body_ids = (source_token_ids * (body_budget // len(source_token_ids) + 1))[:body_budget] def render(ids: list[int]) -> list[int]: body = tokenizer.decode(ids, skip_special_tokens=False, clean_up_tokenization_spaces=False) @@ -357,7 +354,7 @@ def build_ragged_prompt_batch( tokenizer: transformers.PreTrainedTokenizer, tokenizer_path: str, model_type: str, - source_prompts: list[str], + source_prompt_token_ids: list[list[int]], mean_prompt_len: int, batch_size: int, gamma_shape: float, @@ -372,7 +369,7 @@ def build_ragged_prompt_batch( tokenizer=tokenizer, tokenizer_path=tokenizer_path, model_type=model_type, - source_text=source_prompts[index % len(source_prompts)], + source_token_ids=source_prompt_token_ids[index % len(source_prompt_token_ids)], target_len=min(max(1, target_len), max_prompt_len), ) ) @@ -744,6 +741,10 @@ def run_benchmark( chunk_texts = build_chunk_texts_to_length(tokenizer, chunks, max_seq) else: source_prompts = load_distinct_prompts() + source_prompt_token_ids = [ + _normalize_ids(tokenizer.encode(source_prompts[i].rstrip() + "\n\n", add_special_tokens=False)) + for i in range(min(max(batch_size for _, batch_size in pairs), len(source_prompts))) + ] if max_context_len is None: try: max_context_len = resolve_max_seq_len(tokenizer_path) @@ -841,13 +842,32 @@ def run_benchmark( tokenizer=tokenizer, tokenizer_path=tokenizer_path, model_type=model_type, - source_prompts=source_prompts, + source_prompt_token_ids=source_prompt_token_ids, mean_prompt_len=mean_prompt_len, batch_size=batch_size, gamma_shape=gamma_shape, max_prompt_len=max_prompt_len, ) - for warmup_prompt_ids in ragged_prompt_ids: + warmup_token_budget = max(500_000, 2 * max_context_len) + warmup_batches: list[list[list[int]]] = [] + warmup_batch: list[list[int]] = [] + warmup_tokens = 0 + for prompt_ids in ragged_prompt_ids: + if warmup_batch and warmup_tokens + len(prompt_ids) > warmup_token_budget: + warmup_batches.append(warmup_batch) + warmup_batch = [] + warmup_tokens = 0 + warmup_batch.append(prompt_ids) + warmup_tokens += len(prompt_ids) + if warmup_batch: + warmup_batches.append(warmup_batch) + logger.info( + "Warming %d prompts in %d batches (token budget=%d)", + len(ragged_prompt_ids), + len(warmup_batches), + warmup_token_budget, + ) + for warmup_prompt_ids in warmup_batches: _warmup_seq_len( url=url, api_key=api_key, From 44bf4f9347e29fe4f0db8e357e5acf7672c51de0 Mon Sep 17 00:00:00 2001 From: James Anderson Date: Sat, 18 Jul 2026 17:47:14 -0700 Subject: [PATCH 08/10] refactor(llm-bench): unify ragged prompt dispatch Co-authored-by: Cursor --- llm_bench/gen_load_test.py | 222 ++++++++++--------------------------- 1 file changed, 59 insertions(+), 163 deletions(-) diff --git a/llm_bench/gen_load_test.py b/llm_bench/gen_load_test.py index d7e4b4b..b059129 100644 --- a/llm_bench/gen_load_test.py +++ b/llm_bench/gen_load_test.py @@ -3,10 +3,10 @@ Generation (decode) latency benchmark for Fireworks /v1/completions. For each (seq_len, batch_size) pair, builds a deterministic ragged batch of -distinct prompts whose lengths follow gamma-distribution quantiles, sends all -token-id prompts in one request, and reports generation latency per target-model -forward. Drafting and verification remain enabled, but speculative token -acceptance is disabled so every sequence commits one token per forward. +distinct prompts whose lengths follow gamma-distribution quantiles. It either +sends them in one request or fans them out as routed concurrent n=1 requests, +then reports generation latency per target-model forward. Drafting and +verification remain enabled, but speculative token acceptance is disabled. """ from __future__ import annotations @@ -192,21 +192,6 @@ def _load_auto_tokenizer(tokenizer_path: str) -> transformers.PreTrainedTokenize return transformers.AutoTokenizer.from_pretrained(tokenizer_path, trust_remote_code=True) -def _dataset_path(dataset: str) -> str: - name = "limericks.txt" if dataset == "limericks" else "code.txt" - return os.path.join(os.path.dirname(os.path.abspath(__file__)), name) - - -def load_chunks(dataset: str) -> list[str]: - path = _dataset_path(dataset) - with open(path, "r") as f: - text = f.read() - chunks = [p for p in text.split("\n\n") if p.strip()] - if not chunks: - raise ValueError(f"No chunks in {path}") - return chunks - - def load_distinct_prompts(path: str = _DISTINCT_PROMPTS_PATH) -> list[str]: with open(path, "r") as f: prompts = [json.loads(line)["text"].strip() for line in f if line.strip()] @@ -215,33 +200,6 @@ def load_distinct_prompts(path: str = _DISTINCT_PROMPTS_PATH) -> list[str]: return prompts -_DATASET_SUFFIXES = { - "limericks": "\n\nTranslate the limericks above to Spanish.", - "code": "\n\nTranslate the code above to C++.", -} - - -def build_chunk_texts_to_length( - tokenizer: transformers.PreTrainedTokenizer, - chunks: list[str], - target_len: int, -) -> list[str]: - """Cycle chunks (each followed by `\\n\\n`) until total tokens reach `target_len`. - - Returns one chunk text per element so callers can slice at chunk granularity - (never cutting a chunk mid-text). - """ - out: list[str] = [] - total = 0 - i = 0 - while total < target_len and i < 1_000_000: - text = chunks[i % len(chunks)] + "\n\n" - out.append(text) - total += len(tokenizer.encode(text)) - i += 1 - return out - - def apply_chat_template_ids( tokenizer: transformers.PreTrainedTokenizer, tokenizer_path: str, @@ -283,44 +241,6 @@ def _normalize_ids(obj: Any) -> list[int]: return [int(t) for t in obj] -def build_chat_prompt_ids( - tokenizer: transformers.PreTrainedTokenizer, - tokenizer_path: str, - model_type: str, - suffix_text: str, - chunk_texts: list[str], - target_len: int, -) -> list[int]: - """Build chat-templated prompt ids of at most `target_len` tokens, chunk-aligned. - - Bisects on chunk count to find the largest k such that the chat-templated - tokenization of `chunks[:k] + suffix` stays within `target_len`. This is - exact (no token-count estimation drift from chat template wrapping) at the - cost of O(log n) chat template tokenizations. - """ - if not chunk_texts: - raise ValueError("no chunks provided") - - def length_for(k: int) -> int: - return len(apply_chat_template_ids(tokenizer, tokenizer_path, "".join(chunk_texts[:k]) + suffix_text, model_type)) - - if length_for(1) > target_len: - raise ValueError(f"target_len={target_len} too small to fit even one chunk") - - n = len(chunk_texts) - if length_for(n) <= target_len: - return apply_chat_template_ids(tokenizer, tokenizer_path, "".join(chunk_texts) + suffix_text, model_type) - - lo, hi = 1, n - while lo < hi: - mid = (lo + hi + 1) // 2 - if length_for(mid) <= target_len: - lo = mid - else: - hi = mid - 1 - return apply_chat_template_ids(tokenizer, tokenizer_path, "".join(chunk_texts[:lo]) + suffix_text, model_type) - - def build_repeated_chat_prompt_ids( tokenizer: transformers.PreTrainedTokenizer, tokenizer_path: str, @@ -553,7 +473,7 @@ def _run_pair_separate_mode( url: str, api_key: Optional[str], model: Optional[str], - prompt_ids: list[int], + prompt_ids: list[list[int]], max_tokens: int, seq_len: int, batch_size: int, @@ -571,6 +491,7 @@ def _run_pair_separate_mode( max_tokens, (routing or RoutingConfig()).describe(), ) + assert len(prompt_ids) == batch_size, f"expected {batch_size} prompts, got {len(prompt_ids)}" assert len(users) == batch_size, f"expected {batch_size} users, got {len(users)}" def _single_request(worker_idx: int, user: str) -> requests.Response: @@ -585,7 +506,7 @@ def _single_request(worker_idx: int, user: str) -> requests.Response: url, api_key, model, - prompt_ids, + prompt_ids[worker_idx], max_tokens=max_tokens, n=1, temperature=temperature, @@ -653,6 +574,7 @@ def _warmup_seq_len( users: Optional[list[str]] = None, routing: Optional[RoutingConfig] = None, worker_offset: int = 0, + split_prompt_batch: bool = False, ) -> None: """Issue warmup completions for one prompt or one batched prompt payload.""" if users is not None: @@ -660,12 +582,13 @@ def _warmup_seq_len( def _single(worker_idx: int, user: Optional[str]) -> requests.Response: headers = routing_headers_for_worker(routing, worker_offset + worker_idx) + request_prompt_ids = prompt_ids[worker_idx] if split_prompt_batch else prompt_ids return post_completion( requests.Session(), url, api_key, model, - prompt_ids, + request_prompt_ids, max_tokens=0, n=1, temperature=temperature, @@ -710,7 +633,6 @@ def run_benchmark( model: Optional[str], base_url: str, api_key: Optional[str], - dataset: str, pairs: list[tuple[int, int]], max_tokens: int, temperature: Optional[float] = None, @@ -733,63 +655,58 @@ def run_benchmark( # falls back to one request containing batch_size distinct prompts. routing = routing or RoutingConfig() separate_requests = routing.enabled - if separate_requests: - logger.info("Mode: separate concurrent requests (no n>1)") - max_seq = max(seq_len for seq_len, _ in pairs) - chunks = load_chunks(dataset) - suffix = _DATASET_SUFFIXES.get(dataset, "") - chunk_texts = build_chunk_texts_to_length(tokenizer, chunks, max_seq) - else: - source_prompts = load_distinct_prompts() - source_prompt_token_ids = [ - _normalize_ids(tokenizer.encode(source_prompts[i].rstrip() + "\n\n", add_special_tokens=False)) - for i in range(min(max(batch_size for _, batch_size in pairs), len(source_prompts))) - ] - if max_context_len is None: - try: - max_context_len = resolve_max_seq_len(tokenizer_path) - except ValueError as e: - raise ValueError( - "Could not infer deployed model context; pass --model-max-context-len explicitly." - ) from e - max_prompt_len = max_context_len - max_tokens - 1 - min_prompt_len = len( - apply_chat_template_ids(tokenizer, tokenizer_path, _RAGGED_PROMPT_SUFFIX, model_type) - ) - if max_prompt_len < min_prompt_len: - raise ValueError("model context is too small for max_tokens and the required prompt suffix") - logger.info( - "Mode: single request with batch_size ragged prompts (gamma shape=%.3f, context-clamped at %d prompt tokens)", - gamma_shape, - max_prompt_len, - ) + logger.info( + "Mode: %s", + "separate routed requests" if separate_requests else "single batched request", + ) + source_prompts = load_distinct_prompts() + source_prompt_token_ids = [ + _normalize_ids(tokenizer.encode(source_prompts[i].rstrip() + "\n\n", add_special_tokens=False)) + for i in range(min(max(batch_size for _, batch_size in pairs), len(source_prompts))) + ] + if max_context_len is None: + try: + max_context_len = resolve_max_seq_len(tokenizer_path) + except ValueError as e: + raise ValueError("Could not infer deployed model context; pass --model-max-context-len explicitly.") from e + max_prompt_len = max_context_len - max_tokens - 1 + min_prompt_len = len(apply_chat_template_ids(tokenizer, tokenizer_path, _RAGGED_PROMPT_SUFFIX, model_type)) + if max_prompt_len < min_prompt_len: + raise ValueError("model context is too small for max_tokens and the required prompt suffix") + logger.info( + "Ragged prompts: gamma shape=%.3f, context clamp=%d prompt tokens", + gamma_shape, + max_prompt_len, + ) logger.info("Routing: %s", routing.describe()) results: list[GenBenchmarkResult] = [] - prev_seq_len: Optional[int] = None # Sort by seq_len descending (longer prompts first for full prompt-cache # hit rate) and batch_size descending so the largest batch for a given # seq_len comes first. pairs = sorted(pairs, key=lambda p: (-p[0], -p[1])) - prompt_ids: list[int] = [] - ragged_prompt_ids: list[list[int]] = [] - seq_users: list[str] = [] for seq_len, batch_size in pairs: - if separate_requests and seq_len != prev_seq_len: - prompt_ids = build_chat_prompt_ids( - tokenizer, - tokenizer_path, - model_type, - suffix, - chunk_texts, - target_len=seq_len - max_tokens, - ) - logger.info("Built prompt for seq_len=%d: %d tokens", seq_len, len(prompt_ids)) - if prev_seq_len is None: + mean_prompt_len = seq_len - max_tokens + if mean_prompt_len < 1: + raise ValueError(f"seq_len={seq_len} must exceed max_tokens={max_tokens} to leave room for the prompt") + ragged_prompt_ids = build_ragged_prompt_batch( + tokenizer=tokenizer, + tokenizer_path=tokenizer_path, + model_type=model_type, + source_prompt_token_ids=source_prompt_token_ids, + mean_prompt_len=mean_prompt_len, + batch_size=batch_size, + gamma_shape=gamma_shape, + max_prompt_len=max_prompt_len, + ) + users = _generate_users(seq_len + seed, batch_size) if separate_requests else None + + if separate_requests: + if not results: # HACK: backend OOMs without this pre-warmup on the largest - # seq_len; sending the same prompt 64 times sequentially + # seq_len; sending 64 prompts sequentially # with a fresh random `user` each time primes the backend # across generators before the user-pinned warmup at full # batch_size. TODO: fix the backend OOM and remove this. @@ -807,7 +724,7 @@ def run_benchmark( url=url, api_key=api_key, model=model, - prompt_ids=prompt_ids, + prompt_ids=ragged_prompt_ids[i % batch_size], seq_len=seq_len, concurrency=1, temperature=temperature, @@ -817,37 +734,22 @@ def run_benchmark( routing=routing, worker_offset=i, ) - seq_users = _generate_users(seq_len + seed, batch_size) + assert users is not None _warmup_seq_len( url=url, api_key=api_key, model=model, - prompt_ids=prompt_ids, + prompt_ids=ragged_prompt_ids, seq_len=seq_len, - concurrency=len(seq_users), + concurrency=batch_size, temperature=temperature, retries=retries, retry_delay=retry_delay, - users=seq_users, + users=users, routing=routing, + split_prompt_batch=True, ) - prev_seq_len = seq_len - elif not separate_requests: - mean_prompt_len = seq_len - max_tokens - if mean_prompt_len < 1: - raise ValueError( - f"seq_len={seq_len} must exceed max_tokens={max_tokens} to leave room for the prompt" - ) - ragged_prompt_ids = build_ragged_prompt_batch( - tokenizer=tokenizer, - tokenizer_path=tokenizer_path, - model_type=model_type, - source_prompt_token_ids=source_prompt_token_ids, - mean_prompt_len=mean_prompt_len, - batch_size=batch_size, - gamma_shape=gamma_shape, - max_prompt_len=max_prompt_len, - ) + else: warmup_token_budget = max(500_000, 2 * max_context_len) warmup_batches: list[list[list[int]]] = [] warmup_batch: list[list[int]] = [] @@ -880,10 +782,6 @@ def run_benchmark( retry_delay=retry_delay, ) - users: Optional[list[str]] = None - if separate_requests: - users = seq_users[:batch_size] - for attempt in range(1, retries + 1): try: if separate_requests: @@ -892,7 +790,7 @@ def run_benchmark( url=url, api_key=api_key, model=model, - prompt_ids=prompt_ids, + prompt_ids=ragged_prompt_ids, max_tokens=max_tokens, seq_len=seq_len, batch_size=batch_size, @@ -980,7 +878,6 @@ def main() -> None: help="Bearer token (default: API_KEY or FIREWORKS_API_KEY). " "Optional; omit for servers that don't require auth.", ) - parser.add_argument("--dataset", choices=("limericks", "code"), default="limericks") parser.add_argument( "-p", "--seq-batch-pairs", @@ -1152,7 +1049,6 @@ def main() -> None: model=args.model, base_url=args.base_url, api_key=args.api_key, - dataset=args.dataset, pairs=pairs, max_tokens=args.max_tokens, temperature=args.temperature, From 9b10c3c8ca25b94a467a77c63500d07f0b01e4b3 Mon Sep 17 00:00:00 2001 From: James Anderson Date: Sun, 19 Jul 2026 23:04:21 -0700 Subject: [PATCH 09/10] chore: clean up Co-authored-by: Cursor --- llm_bench/distinct_prompts_256.jsonl | 256 ++++++++++++++ llm_bench/distinct_prompts_512.jsonl | 512 --------------------------- llm_bench/gen_load_test.py | 2 +- 3 files changed, 257 insertions(+), 513 deletions(-) create mode 100644 llm_bench/distinct_prompts_256.jsonl delete mode 100644 llm_bench/distinct_prompts_512.jsonl diff --git a/llm_bench/distinct_prompts_256.jsonl b/llm_bench/distinct_prompts_256.jsonl new file mode 100644 index 0000000..2f3836f --- /dev/null +++ b/llm_bench/distinct_prompts_256.jsonl @@ -0,0 +1,256 @@ +{"text": "Sony on Thursday announced the transaction to acquire Ericsson’s 50% stake in Sony Ericsson has been completed. Sony and Ericsson announced the deal last October, which was worth €1.05 billion in cash and made Sony Ericsson a wholly-owned subsidiary of Sony. The company will be renamed to Sony Mobile Communications and will “further integrate the mobile phone business as a vital element of its electronics business, with the aim of accelerating convergence between Sony’s lineup of network enabled consumer electronics products, including smart phones, tablets, TVs and PCs.” Read on for Sony’s press release. More →\nMicrosoft announced on Friday that it has completed its $8.5 billion purchase of Skype. Skype will exist as a new division within Microsoft and Skype CEO Tony Bates will continue to serve as the head of the Skype team. In addition, Skype’s employees around the globe will remain in their current offices. Microsoft confirmed that it will work to integrate Skype into its existing products, but it did not specifically say which products or when that would begin to happen. “We look forward to working with the Skype team to create new ways for people to stay connected to family, friends, clients and colleagues — anytime, anywhere,” Microsoft CEO Steve Ballmer said. The acquisition is still pending completion in several other countries. Read on for the full press release. More →\nFor those of you who were completely underwhelmed by the realities of Project Dark and have a fear of post-paid contract rate plans, T-Mobile has something new for you. Say hello to “T-Mobile Complete.” T-Mobile Complete, and the accompanying “Complete Kits”, will come with the phone of your choice and, uh, well…that’s about it. No contracts, commitments, or legalities involved. Now, we know what you are thinking, why is this news? Well, T-Mobile has stated that the BlackBerry 8520 will be included in these plans as well, and for the first time in the States you can get yourself a BlackBerry device and not be locked into a contract. Sounds good to us. Details are still scarce on the exact pricing of the 8520 and the accompanying pre-paid plan, but we’ve heard that the kits will start at $59 with unlimited talk plans starting around $50/month. What do you guys think? Good idea? No details on the T-Mobile website just yet, but you can hit the jump to read about the release.\nVerizon Wireless announced on Friday that it has completed its acquisition of Alltel. Verizon paid $5.9 billion for the equity of Alltel and assumed all of Alltel’s approximately $22.2 billion in debt. Verizon will gain an additional 12.9 million customers, making Verizon the largest wireless carrier in the US with 83.7 million total customers. Verizon will maintain the Alltel brand and customers of Alltel will retain their current handsets and calling plans during the transition. Verizon will notify customers about changes that will impact future service so we assume at some point Alltel customers will have to forfeit their Alltel plan and select one of Verizon’s calling and/or data plans. Most customers will be able to keep their current handsets after the transition since both networks support the same CDMA technology. Verizon will also maintain Alltel’s existing GSM networks. Re-branding will begin in Q2 2009 and will continue through Q3 2009. No imminent layoffs were announced but the press release states:\nAlltel employees below executive level will continue in their present jobs as Verizon Wireless assesses staffing needs required to best serve customers and achieve synergies.\nWhen a company starts throwing around buzz words like “assess staffing needs” and “achieve synergies”, you can assume that layoffs will be announced at some point before the merger and re-branding is complete. As part of the conditions of the merger, Verizon Wireless will also divest overlapping properties in 105 markets that span 24 states and will affect nearly 2.1 million customers. When all is said and done, some of you will be leaving Verizon and a whole bunch of you will be joining Verizon. if you’re among those who will be affected, let us know in the comments if you are pleased, disappointed or ambivalent about the impending changes to your cellular service."} +{"text": "I love living in the future. Technology is fantastic. Remember pencils? Seriously, how fucking stupid were they?\nHave you ever forgotten your sharpener and had to resort to chipping away the wood with your fingernail? And don't even get me started on the Erasermate.\nI'm not saying you don't still need to write on paper once in awhile. Of course you do. It's just that if you're going to do it you should treat it like the special occasion that it is by using something like a steampunk pen:\nOr even a quill pen:\nIn places like Brooklyn and Portland, quill pens are the new MacBook. Walking into a cafe in Prospect heights is now like stepping into the Constitutional Convention, and the barista can hardly hear your order over all the scratching.\nI wonder what kind of writing implement Pete Hamill's brother uses to pen his limp anti-bike lane screeds. Probably some overblown reminder that he's from Old Brooklyn, like a stickball bat dipped in marinara sauce. By the way, returning to his column this morning to see if it was as stupid as I remembered it (it was), I couldn't help noticing the following testament to The Daily News's formidable editorial skills:\nHere's a closer look:\nHe was lives, now he is dies. And so goeth the circle of life and grammar.\n[Update: I also see according to item #7 that a Parke Avenue penthouse sold for big money. Where's Parke Avenue?]\nSpeaking of Ed Koch, since this is sort of a bike blog, I should note that he did have an interesting and disparate relationship with the bicycle during his time in office--from opening bike lanes in Manhattan in 1980:\nTo closing them a month later and ultimately unveiling the Midtown Bike Ban in 1987:\nI'm certainly not trying to pee-pee on his legacy the day after he's passing; it's just an interesting chapter in New York City cycling history that's worth noting, especially given all the current bike lane bickering and the ever-present possibility that municipal support from them will wane. If you're one of the two or three people who also find New York City cycling history interesting, you may also enjoy this article from way back in 1971:\nHere's then-Congressman Koch on bike lanes:\n\"To encourage bike riding without providing the necessary safety precautions is foolhardy,\" Mr. Koch said in a statement. \"The only way to insure safety for the many thousands of New Yorkers who want to bicycle is to designate official and exclusive bike lanes, and the city has failed to do this.\"\nAnd here's some doofus on the idea of opening bike lanes on 5th Avenue:\n\"Sure,\" he said, \"I can see those matronly women coming to Bergdorf's on a bicycle.\"\n\"I favor bike riding like I favor motherhood [sic] and apple pie,\" Mr. Grosso said, \"but we've had it. I think the city should explore other areas.\"\nSome things never change, and one of them is that people seem to think cycling is too precious for the working class, yet it's also too dirty for the rich. (And as for the middle class, who has the time?)\nWhile I'm on the subject of bike lanes and smugness, here's how many pedestrians and cyclists \"is dies\" in traffic in New York City in 2012:\ncommercial cyclists are going to have to take online safety courses now:\nDOT also announced that enforcement of a package of laws passed by the City Council last October will start in April. The new laws, which include a requirement that commercial cyclists take an online safety course, were touted by City Council Transportation Chair James Vacca as a way to end the “wild, wild west” environment on city streets.\nI'd love to get a look at some of the questions on that test:\nYou have sixteen bags of Chinese food hanging from the handlebars of your ebike. You're traveling at 25mph and the light turns red. What do you do?\nB) Take to the sidewalk\nC) Circle in the crosswalk until there's a gap in traffic\nD) Close your eyes, twist the throttle, and hope for the best\nI'm not sure what the answer is, but the only one of these I've never seen is A.\nSpeaking of tests, I'm pleased to present you with a quiz. As ALWAYS, STUDY THE ANSWER, THINK, TURN OFF YOur caps lock (sorry about that), and click on your answer. If you're right you'll know, and if you're wrong you'll see Andy Rooney's illegitimate child.\nThanks very much for reading, ride safe, and avoid foul odors.\n--Wildcat Rock Machine\n(\"I don't see what the problem is.\")\n1) Due to flooding, the Cyclocross World Championships in Louisville, KY is being rescheduled.\n(Landis enjoying a good novel.)\n2) Floyd Landis is launching a:\n--Sequel to \"Positively False\" entitled \"Negatively Positive\"\n(Professional cycling: why bother?)\n3) Professional cycling is being destroyed by:\n--Lack of sponsorship\n--Deeply embarassing team photo shoots\n(Not him, his brother.)\n4) What did Pete Hamill's brother used to deliver by bicycle?\n--\"100 pounds of meat\"\n--\"500 cords of wood\"\n--\"1,000 smiling knuckles\"\n--\"Beets and stuff\"\n(No, that's not Bruce Campbell.)\n5) What is a \"prepper?\"\n--Someone who prepares for the collapse of civilization\n--Someone who wears polo shirts and sockless loafers\n--Someone who chops vegetables and scales fish in a fancy restaurant\n--Someone who helps the actors maintain their erections between takes during pornographic movie shoots\n(Photo via yesterday's comments.)\n6) Using modern aerodynamic equipment, Greg LeMond beat a bare-headed Laurent Fignon in the final time trial of the 1989 Tour de France, winning the general classification by only eight seconds.\n(\"In your face!\")\n7) People totally don't want to own cars anymore.\n***Special Vintage \"Woo-Hoo-Hoo-Hoo!\" Speed Bonus Video***"} +{"text": "The Yankees again proved to be the most playoff-efficient team of all. They bullied Minnesota right out of their own home early on and then finished them off in the Bronx. An all-around dominant performance from the Yankees shows that they will be tough to beat once again in these playoffs. There may be only one team that could challenge them this season. Can I get a...\"RE-MATCH?!\"\nOrlando Hudson says it all for his Minnesota Twins in as few words as possible. Their loss against the Yankees was about as bad as it gets. They were utterly dominated from start to finish and never got a chance to become a part of the series.\nThe Tampa Bay Rays, considered a heavy AL favorite, looked to be out of sorts when their series started in their home at Tropicana Field last week. Their home performance was forgettable as they were outplayed by the Texas Rangers, who hustled out to a 2-0 lead. Nothing seemed to go their way in the early part of this series.\nSuddenly though, this 2-0 deficit was turned into a 2-2 draw with a decisive Game Five to come tomorrow night back in Tampa. If the way the series has played out thus far is any indication, expect Cliff Lee and the Rangers to advance.\nThe Rays can ill-afford another bad home game as their season may depend on it tomorrow. This Game Five will decide which team will have the honor of facing the New York Yankees in the ALCS.\nThe offense had come out entirely too flat in the first two games, producing just one run against Lee and C.J. Wilson. Then, Texas seemed to lose its grip when they returned home to Arlington. Judging frm how this series has went, this one will end with a bang.\nTexas' bullpen could be the reason for their exit if it happens tomorrow night. Over the past two games, at home in Arlington mind you, they have allowed a staggering eight runs in nine innings pitched. They had the chance to sweep and then at least finish up in four games while at home but blew their chances. The bullpen may not be the sole blame here, but they are in fact a major reason.\nNeftali Feliz looked awful in his appearance in Game Three as the few Ray hitters that he faced jumped all over him. An AL Rookie of the Year candidate, Feliz was at the heap of these disasters from the Texas 'pen. It should be interesting to see how they respond when the series returns to The Trop where they have been very successful.\nNo one particular instance or individual could be singled out. So, let's just go with the Twins as a whole for this one. They were no match for the defending World Champions as they went down in a sweep in the Bronx over the weekend.\nJason Kubel, pictured above, was horrible in this series going 0-the series. But Kubel alone should not be categorized as such when the team effort just simply was not there. The fire that lit up Minnesota all summer long was extinguished in an instant by a better,hungrier Yankee team.\nNot many saw this type of series coming as the Yankees imposed their will en route to another ALCS appearance. They boast the game's top lineup and in this series, their pitching was very solid as well. Big off-season pickup Curtis Granderson hit exceptionally well and paced the Yankees once again.\nOther big name Twins like native Minnesotan Joe Mauer performed poorly as well. As mentioned at the top, just an all-around bad series from these Twins. No other way to be described.\nThere were some other performances that shined through in Round One. Curtis Granderson and Mariano Rivera stole the show for the Bronx Bombers, making them a bona fide threat in these playoffs once again.\nWe now count down the best performances of the ALDS.\nOver their first four playoff games the Texas Rangers have stroked seven HR's. Powered by the usual suspects in Nelson Cruz and Ian Kinsler among others, these Rangers are now looking to winning Game Five. The Rangers have an offense that may be able to hit with the Yankees in the ALCS if it comes down to that. It would certainly be an interesting series if it were to happen.\nTexas' starting pitching has been very good in this series as well. Maybe with a few more big hits and another exceptional start from Cliff Lee, the Rangers will find themselves in the Final Four of baseball.\nTampa Bay's offense has been suspect for most of this series, but have come up huge over the past few days in the clutch. With the game, and more so their season, on the line, the Rays' stars Evan Longoria and B.J. Upton came through.\nWhen it mattered most, Joe Maddon was able to go to his top guys and get the job done. This is the mark of a champion as the Rays are now looking to comeback from what was a 2-0 deficit.\nA comeback of this caliber would say a lot about this club as a whole. They dropped the first two games of the series and were able to take the next to on the road and now potentially can put the Rangers away with David Price.\nThe New York Yankees are again flexing their muscle as Kings of the AL. Their quick work of Minnesota was very impressive and showed the world their continued ownership over Ron Gardenhire's club. The Yankees were the better team in every phase in this short series and now get a nice rest while awaiting their ALCS opponent.\nMariano Rivera showed why he is the best post-season closer of all-time with continued October success. Not to mention that the offense as a whole terrorized Minnesota pitching.\nThe Twins blew their chance in Game One when Francisco Liriano kept Yankee hitters afloat, but the Twins themselves could not capitalize and so the Yankees were able to nab home-field and then some."} +{"text": "Angels Started Out Hot But in the End Just Burned. New Series, Move Down.\nDo you ever have one of those days where odd things seem to parallel your mood or activities? You think of a song and change the station on the radio only to find that song? Or a coworker randomly starts the same conversation you just had that morning with your mom? Does this ever seem to happen with the baseball team you follow? Saturday, was my husband’s birthday “observed” – as opposed to Tuesday, his actual birthday, when we have tickets for the company seats at the Big A, whoo hoo! We hosted a pizza party/game night in his honor, so I knew that, between the prep, the party and the clean-up, I wasn’t going be able to pay as much attention to the Angels play as I would like to. Little did I know the Angels themselves wouldn’t be paying much attention to their play this weekend. Yikes!\nThe baseball/life parallel was a beautiful thing on Friday night. We cleaned the house and I baked a dark chocolate cake. Making this cake is as much about technique as it is about the recipe. If you cream the butter and sugar long enough and take a sufficiently light, careful hand with the folding, you have an almost ethereally light, fluffy cake. Fold too quickly or too long, or outright mix the batter, and you develop the glutens to the point where you basically have bread. A nice calm no doubter of a game was just what the doctor ordered.\nMelt the chocolate, blend, combine. Vernon Wells hits a homerun. Dry ingredients, buttermilk, whipped egg whites, gently fold. Ervin Santana going strong. Back until the cake is springy to the touch. Double play to finish the game. Howie to Aybar to Tumbo. Light that baby up. And now let’s finish mopping the floor. Excellent. Great Friday! And can I just say that between their humorous sign campaign response to the sign stealing accusations and their classy welcome for Vernon Wells, I love Blue Jays fans!\nSaturday, however, the whole baseball/life parallel thing started to suck. Big time. Yes, I needed to chop and prep all of the pizza toppings. Yes, I needed to make the double vanilla, cream cheese icing for the cake and that involves whipping thick ingredients. Yes, Seth had to work so I was on my own and frustrations from the game lead me to chop and whip with greater…hmmm…shall we say efficiency. But come on Angels, I didn’t need that kind of help! I’m strong lady. I can chop onions, mushrooms, garlic and the like in a good mood, would have preferred to in fact.\nI was concerned about this particular Jered Weaver start heading into the game anyway. He doesn’t pitch as well when circumstances muck up the rotation. Just like in May, when illness delayed his start, Weaver seemed to come back throwing too hard and with less control after his extra rest. And for a guy who lives by pinpoint precision against a hot hitting Blue Jays team on yet another day where the Angels own bats stood still? My recipes were on the right track. This recipe, however, was one for disaster. And Pineiro’s two innings on top of it all? Ouch. Clearly he’s not working anything out in the bullpen. Is he injured? Is it psychological? Would Dave Duncan consent to maybe call and whisper to him over the phone? I got nothin’. But then I had the birthday party and a house full of people, wine to pour, pizzas on the grill and a really great time, all perfect distractions from any thoughts of Angels.\nSo, Sunday this would have to end right? We capped off a thoroughly decadent late night with a thoroughly decadent morning – sleeping in until first pitch and then lounging on the sofa to watch a good match up with a breakfast of leftover prosciutto pizza with blue cheese, apples and caramelized onions. And the beginning was great. Torii Hunter’s homerun. Dan Haren was dealing. Peter Bourjos smokin’ down the base paths. But it was not to be. After the game I could see one more parallel. I had a really happy Saturday night, and I was feeling it Sunday morning to a certain extent, hence the lounging. But some of the Angels and Mike Scioscia, love him though I do, must have had an even happier Saturday night. How else do you explain Bobby and Trumbo’s base running in the 9th? Or Scioscia’s decision to go to Fernando Rodney in the 10th?\nThe parallels, however, have to end now. See, Seth and I are going to be enjoying pizza, cake and other party leftovers easily until Thursday, but the Angels better not be keeping too many leftovers from their weekend. Torii’s hitting streak. Bobby’s reemerging bat. The fielding perhaps. The fact that Jered Weaver is such a stud, that even after giving up eight runs in less than five innings on Saturday, he still has the lowest E.R.A. and the third lowest WHIP in the majors. These are good leftovers to keep. But the lack of clutch, the inconsistent bats and the scary bullpen moments? Leave them on the road. The Rangers are coming to town for a four game series and with this disastrous road trip the Angels are four games behind them. This isn’t the last stand of the season right here, right now but it sure is time to get serious about winning again."} +{"text": "TUSCALOOSA, Alabama — Relief officials inundated with donations after the flurry of twisters that killed more than 300 people across the South are sorting through the broken toys and used underwear they don't need while hunting for places to store mountains of vital supplies like canned food.\nAcross Alabama, agencies are still encouraging people to send items like cleaning supplies for people clearing debris from tornado-damaged homes, or cash donations that can be used to cover operating expenses or handed out to victims. But with storage space scarce, most say they can't handle any more used toys or cast-off clothing.\n\"That becomes the disaster within the disaster,\" said Salvation Army spokesman Mark Jones. \"When people make those mass donations ... it causes the community to be overrun with them and have to deal with that in addition to the storm damage.\"\nIn a dimly lit warehouse in Tuscaloosa, for instance, donated toys are piled 6 feet high as volunteers sort through hundreds of bags of old clothes. A 3-foot-tall plastic Santa Claus looks over the operation; volunteers say it came in with a load of contributions.\nAt a donation distribution center in the northwest Alabama town of Phil Campbell, volunteer manager Beth Rhea has baby food stacked almost to the ceiling, plenty of water and doesn't need any more clothes. But she could use some tents and camping gear because some victims are sleeping outside beside the rubble of their homes. In the central Alabama town of Eclectic, Mayor Helen Rowe has put out the word: No more clothing donations.\nAs for the Salvation Army, Jones said the agency only recently found warehouse space in hard-hit Tuscaloosa and still desperately needs new underwear, nonperishable foods, pet food and sports drinks. It's still searching for more storage space for things that won't be used right away.\nDozens of tornadoes whipped across the South on April 27, killing people across seven states and injuring hundreds more as entire communities were leveled. Donated water and food started arriving within hours in some towns; relief sites sprang up on street corners and in parking lots.\n10 warehouses already full in Tuscaloosa\nTemporary Emergency Services of Tuscaloosa County already has 10 warehouses full of donations, but too many of those items are broken toys, dirty stuffed animals and used underwear that has to be thrown in the trash, said agency director Karen Thompson. While the warehouse space was also donated, Thompson said storing all that stuff is still costly because the organization must pay liability insurance to cover the operation in case someone is hurt on the job.\n\"We just have so much,\" she said. \"It's going to be needed long-term, but a lot of people don't have a roof over their heads and don't have anywhere to put things right now.\"\nCanned food and cleaning products are urgently needed, she said, because some private homes have become impromptu shelters as families take care of relatives and friends left homeless by the twisters.\nVivian Gordon, whose apartment was destroyed by the twister that killed dozens in Tuscaloosa, has survived with the help of relatives, friends and even a stranger who picked her up on the roadside after the storm, providing her a place to sleep. Despite her need after losing everything, she has yet to visit a distribution site.\n\"I'm blessed. But I know other people have,\" she said.\nVictims had come in droves to such distribution centers for water and hot food in the days after the storm. The lines are nearly nonexistent now, though, as stores that had been without electricity reopen and people find places to stay.\nAnd that has left some centers overflowing. On a recent day in Tuscaloosa, truckloads of unneeded ice were left in the sun to melt. In the isolated East Franklin community in the Tennessee Valley, where donations have come in from as far away as Pennsylvania, garbage bags filled with clothes, boxes of waters, tables covered with canned goods and other items fill the gymnasium at the junior high school.\n\"There isn't any way I could tell you how much stuff we have in there,\" said Tony Hodge, who is supervising the distribution center.\nAt the Phil Campbell center, Rhea said people from as far away as Austin, Texas, have come to the town's senior citizen building, where items are being stockpiled. Workers didn't plan to take clothes at the center, but there are still piles of pants, shirts and other items in the large room along with toiletries, food, cleaning supplies and even comic books.\n\"We hate to tell people 'no,'\" Rhea said. So any left over water, clothing, baby food and other items will be donated again, possibly sent to other parts of the state that may be short on supplies.\n\"We will box it all up, label the boxes and send them to another disaster,\" Rhea said.\nAssociated Press Writer Jay Reeves wrote this report."} +{"text": "The study of the ancient Maya is relatively new compared to that of ancient Greece, Rome and Egypt. Our understanding of the Maya before the arrival of the Spanish may never reach the same level as we have for Old World cultures. However, major discoveries, utilizing new technologies paired with backbreaking archaeological work in steamy jungles and on freezing mountain peaks, continue to be made. That aspect, as well as the fact that Precolumbian cultures in general charted their own path, independent from the Old World, makes this such an interesting area to study.\nArchaeologists drew on their knowledge of Classical archaeology when they started studying Precolumbian cultures. For example, they borrowed from Classic Old World archaeology by dividing Precolumbian history into three parts: the Preclassic, Classic and Postclassic. The underlying assumption here was that everything started out small and then grew into a more complex web of city states trading and fighting each other, only to succumb to the onslaught of the invading Europeans.\nHumble beginnings, triumphant zenith and ultimate collapse. Simple enough, right? Not quite.\n|photo credit: malias|\nThere are major differences between Old and New World archaeology. Most known Preclassic Maya sites were small, with the beginnings of public architecture that would make later Maya sites so popular among tourists today. One site, however, left its humble beginning behind very quickly and grew into a huge city centuries before other Maya cities ever did. That site was El Mirador.\nLocated in the northern part of the Department in El Petén, Guatemala, El Mirador was first noted by archaeologists during pioneering mapping efforts in 1893. During the 1920s, the Carnegie Institutionwent from Campeche to Tikal and reported on their travels through the Mirador Basin. Subsequent aerial reconnaissance conducted in 1930 yielded the first photographs of these pyramids and the raised roads connecting them. In the 1960s, Ian Graham mapped the sitefollowed by additional mapping efforts in the 1970s and 1980s. One archaeologist who has spent most of his career working at El Mirador is Dr. Richard Hansen. Over the years, this project has seen tremendous growth, encompassing archaeology, biology, as well as community development.\n|photo credit: auntjojo|\nEl Mirador can best be described with superlatives. Two of its platform-pyramid complexes are among the largest by volume in the world. Known as La Danta (or tapir) and El Tigre, these pyramids are 72 and 55 meters tall respectively. These magnificent buildings were part of a Preclassic community which some estimate may have had 100,000 inhabitants, perhaps even more. It is considered larger than the much better known Maya site of Tikal. El Mirador may have been 38 sq. km in size. What makes this development even more interesting is the location: no major rivers in the vicinity, and as far away from the sea as one can get in Guatemala.\nIn is against this backdrop that archaeologists found evidence of a pitched battle fought on the top of El Tigre pyramid. Bone fragments were found together with hundreds of spear tips and arrow heads. Many of these projectile points were made from obsidian, or volcanic glass, which was traced back to a source in the Central Mexican highlands. Currently additional research is underway to help identify the two combatant parties.\nIt is tempting to see this event as part of a power struggle that played out during the early centuries of our era. We know that Teotihuacan, located in the Basin of Mexico, was meddling in Maya affairs during the fourth century AD. We know that central Mexican art forms, architectural canons and perhaps people were present at Maya sites such as Tikal, Copan and Piedras Negras. We do not really know what happened and why the city of Teotihuacan had extended its influence that far into Central America.\nWhat remains equally enigmatic is why there would have been a battle. Is this an example of inter-site warfare? Was Tikal keen on disposing of a major competitor? Given the known chronology of Teotihuacan’s involvement in the Maya cities just mentioned, the suggested date of El Mirador’s demise, at 150 AD, may be a few centuries too early to make this a workable hypothesis.\nThis is just the beginning of this story. The last word on this topic has not been written yet. In the meantime, it is fascinating to get a glimpse into a single event – that of a violent conflict – fought at the top of a Maya pyramid now almost 2000 years ago. Apocalyptic indeed.\nI would like to add one final point: the site of El Mirador and its architecture served as a source of inspiration for the Maya city portrayed in the 2006 Mel Gibson movie, Apocalypto. Dr. Hansen served as one of the movie’s advisors."} +{"text": "In late May, 1,041 former obstetrics patients of 28 medical facilities submitted a plea to the National Consumer Affairs Center (NCAC) to arbitrate a settlement with the Japan Council for Quality Health Care (JCQHC) that would partially refund money they had paid during their pregnancies for insurance purposes. The JCQHC is a foundation that carries out third-party evaluations of hospitals and clinics, but it also oversees a special compensation system enacted by the government in 2009 to protect obstetricians from career-threatening malpractice suits.\nThe system allows for a form of insurance that all obstetrics patients, meaning pregnant women, pay into. If a fetus or baby suffers brain damage before or during delivery, the insurance pays up to ¥30 million in damages over the next 20 years to the child and his or her parents. This no-fault insurance system was put in place because fewer medical students were opting to become obstetricians, partially because the dwindling birthrate has made obstetrics less profitable, but mainly because malpractice awards in the cases of babies born with disabilities have been extremely high. It was just too financially risky to go into the field.\nPink is the color of the obstetrics department\nUnless a pregnancy threatens the well-being of the mother, childbirth is not covered by national health insurance. Though in theory the obstetrics insurance is optional, if a pregnant woman patronizes a medical facility that pays into the insurance system (meaning 99.8 percent of them) they automatically charge her the ¥30,000 premium and incorporate it into her bill. What complicates the matter is the so-called “public aspect” of the system, according to a recent article in Aera magazine.\nTo encourage women to have babies, local governments compensate them for the money they spent on childbirth after the fact with something called shussan ikuji ichijikin (one-time payment for childbirth), a handout administered by the National Health Insurance Union (NHIU) of up to ¥420,000 per birth, regardless of how much money the patient spent.\nThis amount includes the ¥30,000 premium that the woman paid for the obstetrics insurance, so in effect the public is paying for the insurance since the NHIU uses taxpayer money as well as national health insurance funds for payments. In that regard, Aera has characterized the JCQHC as an amakudari institution; in other words, a bureaucratic entity whose main purpose is to justify its own existence.\nSince the insurance system was launched in 2009, it has paid out about ¥4.1 billion in compensation for damages suffered during childbirth. At the end of the last fiscal year there was still about ¥80 billion in the reserve pool of funds and it is estimated the pool, which is controlled by the five insurance companies, will increase to ¥100 billion by the end of the present fiscal year.\nAccording to Aera, the JCQHC originally estimated that between 500 and 800 babies would suffer brain damage every year out of the country’s 1.2 million births, but real statistics for fiscal 2012 show that only about 200 babies suffered such damage. The mothers who requested arbitration from the NCAC are claiming they overpaid for the insurance and are demanding ¥20,000 each in refunds from the JCQHC. If they win, the organization will have to pay a total of ¥20.8 million. As Aera notes, more than 50 million women have paid this premium since 2009, though, strictly speaking, it is the public who has paid the premiums.\nOne obstetrician interviewed by Aera says that the reason all medical institutions sign up for the insurance is that part of the law mandates that any medical facility which applies for “high-priced medical care” compensation to the NHIU cannot be approved if it doesn’t pay into the obstetrics compensation insurance plan. Otherwise, the facility can only receive maximum compensation of ¥400,000 for each delivery, regardless of what it cost the facility. That’s too risky for smaller clinics.\nThe main beneficiaries of the system are the private insurance companies that participate. The premiums are practically free money since the companies are allowed to collect and administer the funds. Also, brain damage resulting in cerebral palsy is difficult to diagnose in an infant, and there is a five-year time limit for insurance claims.\nIn many cases, developmental disorders arising from brain damage don’t manifest themselves until the child is older and the time limit has passed. However, the insurance companies are also using this aspect to explain why they need such a huge pool of money.\nOf children born in 2009 who were eventually found to suffer from cerebral palsy due to brain damage, 12 were discovered in 2009, 100 in 2010 and 158 in 2011. Diagnoses are thus progressive, so the insurance companies say they need this huge surplus to meet future claims. But there has already been discussion in the Diet that the funds should be administered by a government body so as to relieve some of the public burden associated with medical care.\nIn any event, as some pediatricians have noted, ¥30 million over 20 years is insufficient to take care of most people who suffer from cerebral palsy. They tend to require 24-hour care the older they get. As one mother who is part of the arbitration claim told Aera, a system for compensating brain damage victims directly would be cheaper, more efficient and more humane than the obstetrics compensation insurance, which benefits administrators more than doctors or patients."} +{"text": "Sen. Barack Obama finished his two-day swing through Oregon this afternoon, talking to a crowd of about 2,000 people at Summit High School in Bend, then heading for Chicago.\nObama, who made stops in Beaverton, Woodburn, Albany and Eugene on Friday, arrived at Summit before noon and was introduced by Myrlie Evers-Williams, the widow of slain civil rights leader Medgar Evers. She lives nearby, and was the first woman to lead the NAACP. He then spoke to the crowd until about 12:35 p.m., before taking questions.\nBefore arriving at the high school, the candidate said he thought it was a great idea to travel across the country this summer with Sen. John McCain of Arizona, the presumptive Republican nominee, for a series of town hall debates.\nAfter he finished at the high school, he did interviews with the Bend Bulletin and two local television stations and then left for the Redmond airport where boarded his chartered plane back to Chicago.\nEarlier, the Illinois senator apologized for complicating prom plans for Summit High School in Bend and thanked supporters for turning out. \"Oregonians, it's your turn,\" he said. \"It's your turn to stand up and say it's time for change.\"\nObama was delayed because of an unscheduled stop at PVPowered, a solar energy company in Bend, Saturday morning.\nSen. Hillary Clinton had launched the Oregon offensive by the two candidates with a visit to Central Point Thursday night and finished her visit with a stop in Portland on Friday.\nObama began Friday with a tour of an educational technology company in Beaverton, then ended the day with a hurdle-hopping stop at Hayward Field and a rally before 8,000 on the University of Oregon campus.\nThe focus on Oregon, however, doesn't end today. President Bill Clinton returns to the state on Sunday to campaign for his wife, and voting in the state doesn't end until May 20.\nObama, bolstered by growing support from the superdelegates, focused his comments on Sen. John McCain, the presumptive Republican candidate, as he sought to make his nomination look all but inevitable.\nClinton, who toured Doernbecher Children's Hospital, once again pronounced Obama's health-care plan as inadequate and said she would compete hard in Oregon's May 20 primary.\nWhile their simultaneous presence in Oregon demonstrated how their extraordinary primary battle seems destined to continue toward the end of the primary calendar, many of the key developments in the Democratic contest took place outside the state.\nObama picked up another nine superdelegates -- including Rep. Peter DeFazio, D-Ore. -- and the support of a 600,000-member union of federal employees as it became clear that the party was beginning to close ranks behind him. Meanwhile, top Clinton aides told reporters in Washington, D.C. that she still has a long-shot path to the nomination.\nObama, in an interview with The Oregonian, dismissed Clinton's repeated challenges to debate him in Oregon - or anywhere else in the country.\n\"One of the things that is important from my perspective is not to feed the sense that Democrats are just banging against each other all the time,\" he said, adding that it was time to \"stay focused on the huge differences\" between the two parties.\nObama's morning visit to Vernier Software & Technology was designed to attract national media coverage before he went to an afternoon town hall meeting in Albany and the rally in Eugene.\nIn her efforts to sway voters, Clinton has tailored her message to issues she hopes resonate with rural Oregonians, specifically the economy, forest health and an expired federal timber payment program that once funneled $23 million a year to Jackson County programs.\nAt Doernbecher, she emphasized that her health care plan will cover all uninsured children. As she was heading out of town, her campaign was preparing to announce that her husband will be campaigning in Oregon on Sunday. The former president will visit Pendleton, Baker City and Redmond.\nObama ended his day of Oregon campaigning in Eugene, first with a surprise visit to Hayward Field, where he drew a standing ovation from fans attending The Oregon Twilight. He then spoke to the estimated 8,000 gathered on the Memorial Quadrangle. As Obama began, he noted that he had been introduced by the men's basketball coaches at Oregon and Oregon State at different speaking engagements.\n\"That's a sign of being able to bring anybody together in this country.\"\nObama and Clinton are competing for Oregon's 65 delegates and superdelegates. Obama has led polls in the state, one of five plus a territory that has yet to vote. McCain, the presumptive Republican nominee, will be in Portland on Monday.\n-- Jeff Mapes; firstname.lastname@example.org"} +{"text": "NEW YORK — Mark Teixeira held his knee and writhed in pain near home plate, thinking the worst after being hit by a pitch from Jon Lester.\nA couple of hours later, he was hoping to play Wednesday.\nTeixeira was hit on the side of his knee by Lester’s pitch in the first inning of New York’s 6-4 loss to the Boston Red Sox on Tuesday night, the Yankees’ sixth defeat in seven games against their AL East rivals this season.\n“I’ve never seen him show that much pain before,” manager Joe Girardi said. “He’s tough. You know, he’s played with a broken toe, he’s played with a lot of ailments, but he was in a lot of pain, and it was scary.”\nTeixeira was worried he had a broken kneecap.\n“That’s the first thing you think about,” he said.\nX-rays were negative and Teixeira was diagnosed with a bone bruise. He will be re-evaluated Wednesday, but a relieved Girardi said the team’s leading home run hitter will likely only miss a day or two.\n“In my mind, I’m going to try to play. I’m going to get a lot of treatment, get it moving and hopefully, a good night’s rest will keep the pain down,” Teixeira said.\nDerek Jeter had two hits to move within 12 of 3,000. He entered the 10-game homestand with 2,986 and said the most pressure he feels in his march toward the milestone is reaching the mark at Yankee Stadium.\nDavid Ortiz hit a two-run homer and Jonathan Papelbon labored through the ninth inning to earn his 200th save for Boston. Jacoby Ellsbury led off the game with a home run and Adrian Gonzalez hit an RBI triple as the Red Sox roughed up Freddy Garcia (4-5) early to move within two percentage points of the first-place Yankees in the AL East.\nJorge Posada, on the bench with the left-handed Lester on the mound, ran for Teixeira and stayed in at first base.\nPosada, who pulled himself out of the lineup after he was dropped to ninth in the order the last time the Red Sox were in town, later got his first two hits of the season against a lefty. He snapped an 0-for-27 skid from the right side with a single in the third inning.\n“Jorge was great; three hits tonight and he did a great job filling in there,” Teixeira said. “Hopefully, he can keep it going.”\nWorking on seven days’ rest, Lester (8-2) gave up three runs and eight hits — seven singles — in six innings.\nPapelbon, pitching while he appeals a three-game suspension for making contact with an umpire Saturday, gave up an RBI single to Posada but struck out Alex Rodriguez with a runner on second for his 12th save. He reached 200 saves in 359 appearances, fewest in baseball history. Mariano Rivera is next at 382 games.\n“I’ve always called him the godfather,” Papelbon said of Rivera. “He’s the godfather of this role. He’s made this role what it is today.”\nRed Sox reliever Bobby Jenks left in the seventh after throwing just four pitches because of tightness in his back. Jenks said it was a flare-up of an injury he had early in his career and that he was fine after coming out of the game.\nJenks will have an MRI on Wednesday and probably be out a game or two.\nEllsbury hit the fourth leadoff homer of his career, and the Red Sox chased Garcia soon after.\nGarcia had gone at least five innings in each of his nine starts this season, but was knocked out after just 1 2-3 innings, giving up four runs.\nAfter Ellsbury connected, Dustin Pedroia walked, Gonzalez tripled and Kevin Youkilis hit a sacrifice fly.\nPedroia had an RBI double in the second to make it 4-1. Garcia intentionally walked Gonzalez to load the bases, ending his night.\n“I’m disappointed. I couldn’t throw my slider, and that’s what happens,” Garcia said. “I’ve got to throw strikes, and I really didn’t have any chance to make adjustments.”\nThe Yankees scored in the bottom of the first, taking advantage of Lester’s early wildness. The left-hander plunked Teixeira and, three batters later, Russell Martin.\n“It’s tough to hit a guy like that and see him kind of go off the field not feeling too good,” Lester said. “Too be able to get back up on the mound and throw strikes was key.”\nRobinson Cano drove in Curtis Granderson, who walked to pull New York to 3-1.\nOrtiz irked Girardi with his showy bat flip after hitting a two-run homer off Hector Noesi in the fifth to make it 6-1.\nGirardi was concerned that Oritz would offend the 24-year-old rookie reliever.\n“Yeah, I didn’t really care for it,” Girardi said. “I’ve never had a problem with David Ortiz. He’s been a clutch player for a long time. My reaction’s probably more protecting our young kid. And that’s what I’m going to do.”\nOrtiz dismissed any ill-intent on the flip.\n“That’s Papi style,” he said.\nNick Swisher had a two-run double in the fifth.\nNOTES: RHP Phil Hughes (shoulder inflammation) threw off a mound at the Yankees’ complex in Tampa, Fla., and is expected to throw a simulated game Thursday. ... Jeter introduced the DJ3K bracelet marking his pursuit of 3,000 hits. Proceeds from the sale of the silicone bracelets will benefit his Turn 2 Foundation."} +{"text": "What if one of your employee technicians decides that he or she wants to quit and start their own pest control business? Are you protected?\nMany pest control companies utilize non-compete agreements or clauses in their businesses.\nWhat exactly are pest control non-compete agreements? Do they work, and how are they enforced? Are there any drawbacks to using these clauses in the employee hiring process? What about legal issues that come up?\nMany questions arise when it comes to pest control non-competes. In part one of our look at pest control non-competes, let’s take a closer look at the employers or PCO’s perspective:\nPest Control Non-Compete Agreements\nA non-compete agreement or clause is a contract under which an employee (in this case a pest control employee or technician) agrees not to enter into or start a similar profession that is in competition against the employer, or PCO. It basically prohibits a current or former pest control employee from starting a similar pest control business in your competitive markets.\nThe majority of states in the U.S. recognize and enforce various forms of non-compete agreements. A few states, such as California, totally ban or prohibit non-compete agreements except in limited circumstances.\nReasons To Use A Pest Control Non-Compete Agreement\nThe reason for having your pest control employees or technicians sign a non-compete agreement is simple. You must protect yourself and the business you’ve put so much time, capital, and effort into.\nOwning or managing your own pest management company comes with many risks. One such risk is the possibility that upon an employee’s termination or resignation, they might begin working for a direct competitor or even start their own business. By doing so, this former employee can gain a competitive advantage by exploiting confidential information about their former employer’s operations, trade secrets, or sensitive information such as customer lists, business practices, most effective products, and marketing plans.\nThe purpose of having your technicians sign a non-compete agreement or clause upon employment is an attempt to prevent this from happening. This protection allows the PCO to hire, contract and otherwise operate a pest control business without fear that the business knowledge and advantages will soon be used against them.\nThe biggest concern I hear from PCO’s when it comes to employees leaving their companies and starting their own businesses, is taking customers with them when they go. These technicians develop close relationships with the customers on their routes. These customers trust their technicians, and these technicians know exactly what the customer’s wants and needs are. Many will follow a tech when they leave.\nWhen this situation occurs many legal and ethical issues arise. As the owner of your pest management company, you paid for the trucks, the insurance, the chemicals, the training, the customer service reps; basically all of the overhead. You’ve also spent advertising money, paid sales commissions, and paid for online marketing in order to attain these customers, but also retain them. When a former employee takes these customers, it can be construed as theft.\nDrawbacks Of Pest Control Non-Compete Agreements\nOne of the biggest disadvantages of non-competes is that they can be incredibly difficult to enforce. Enforceability can even depend on the state. Like I mentioned before, a few states (California), employment related non-competes are illegal.\nPest Control Non-Competes & Legal Issues\nAs mentioned, the enforceability of a non-compete may require legal action. As the owner of a pest management company, you must evaluate the cost of suing your former employee who is breaking a non-compete agreement. You also must determine if there is any chance of actually getting paid; which may be unlikely if your former employee is just starting out and has very little capital. Usually the costs are higher than your losses, and even if they win, you may never get paid.\nEvery pest control business should have legal representation. Consult with yours to ensure your non-compete agreement, or any other legal document for that matter, meets local, state and federal requirements.\nI’m hearing more and more from pest control operators, that they are changing their strategies when it comes to non-compete agreements. Many have changed from non-compete agreements (which are VERY difficult to enforce) to non-SOLICIT agreements. One such agreement will state exactly what the PCO wants– That a former employee can’t solicit the customers you invested resources and time in getting. They seem to be a little easier to legally enforce.\nI’m also hearing that some PCO’s are beginning to use confidentiality agreements; which are very similar in nature. Every state is a little different, so do some research and find out which contract is right for you and your pest control business.\nThe topic of pest control non-competes is a difficult one; full of ethical and legal issues. No PCO wants to lose their hard-earned customers to anyone else, so look to non-compete agreements; or better yet, consider a non-solicitation agreement instead.\nConsult with your company’s legal representation to ensure your non-compete or non-solicit agreement meets local, state and federal requirements."} +{"text": "Have you been using the Studio 8 products to create your online content? Got some interesting work to show? Not averse to being featured in a case study and getting tons of exposure? If your answers to the last three questions are a resounding “yes” (and you missed Mike’s post earlier this evening), the Studio product marketing folks are currently looking for some reference customers, and would be interested in checking out your work. Should you (or even someone you know) fit the bill, please drop a comment on this post with some details (or email me directly at sfegette AT macromedia DOT com) and I’ll be sure to pass your info along for consideration.\nJust checked out a slick new Dreamweaver extension from Macromedia extensibility experts WebAssist, called SiteAssist. If you need to build a site up very quickly – SiteAssist is a great wizard-based means to rapidly design, build out, and manage web sites in Dreamweaver. There’s a slew of pre-designed templates and color schemes to choose from, or you can update the resulting sites with Dreamweaver’s template engine and your own visuals for a more custom look/feel. Changing designs and information architecture is even a snap.\nSiteAssist is a commercial extension ($149 USD), but the kind folks at WebAssist are offering $50 off for the next two weeks to anyone who wants to grab a new copy – just click here and you’ll pick up the discounted price. (For the record- I’ve no commercial interest here, the savings is yours alone!)\nVery nicely done DW extension, for those times where you need a site up yesterday- and the clock is ticking fast. Check it out!\nI’m admittedly late to the blogrush on this story, but mad props are due regardless. Darron Schall has apparently been working on a VNC client for Flash Player 8.5, which is currently blowing my mind. Essentially a remote desktop application, there have been many implementations of VNC clients in both native code and Java, but I’m really blown away at how cool apps like this will be for enterprise and even home automation applications. Binary socket connection to a TightVNC server, DES encryption, this is awesome stuff- and really starting to get me excited at the inevitability of more amazing apps and projects like this to come.\nI’m currently in the Community Lounge at MAX 2005 doing the schmoozefest thing, after wrapping my second of two sessions on Flash video and Dreamweaver (thanks to everyone who attended for both the warm response and the great questions!). The show has been amazing so far- with attendance through the roof- last I heard we were around 3,000 attendees this year, well up from last year. Highlights for me so far have been the launch of Labs and the warm reception the Flex 2 public alpha on Labs is recieving, and (to be brutally honest) the opening keynote preso by Ze Frank and his amazingly strange but insanely cool Flash short-form pieces.\nWell, the cat’s out of the bag- the project I’ve been working on for the last few weeks is now live… Macromedia Labs. Featuring the public alpha of the Flex 2 product line, Macromedia Labs includes a wiki, source repository, and plenty of initial content to get you up to speed and running with the new bits, as quickly as possible.\nMake sure to watch the video tutorials, particularly Sho Kuwamoto’s 15-minute Flex application video, which should drive home how easy it is to rapidly develop RIAs in Flex Builder 2. Mark Anders also provides overviews of creating a new project and compiling, and building a constraint-based layout in Flex Builder 2. But that’s just a highlight or two, there’s a boatload of information, tips and samples lurking within the nether regions of the Labs site and wiki to be discovered, and more on the way.\nI wrote up a more official overview of Macromedia Labs for the Developer Center giving all the whys and what-fors, but I suspect you’ll get the most mileage out of downloading the new bits and trying them out for yourself. After all, that’s the point! So what are you waiting for? Get on with the downloading, and have some fun with the Flex 2 alpha.\nJust caught this on Digg.com, one of my old favorite side-scroller gams – Prince of Persia: The Sands of Time – has been recreated in Flash. Check it out- a fun diversion for your MAX Sunday!\nI’m typing this perched in one the San Francisco airport’s coffee bars/wifi hotspots, awaiting boarding call for my flight to Orange County, and MAX 2005. Can’t wait to meet up with everyone at the conference this year! I’ll be giving a 1-hour presentation both Monday and Tuesday (IIRC) on Flash Video for Dreamweaver users – which should be a great session if you’ve been hesitating on getting video integrated into your websites. Keep posted, as I’ll likely publish some of the materials from my sessions up here after MAX for the interested.\nThat being said, the call just came so I’m off to board the plane and get to the show! If you’re going to MAX, make sure to tap me on the shoulder and say hi. See you soon…"} +{"text": "About the Author\nSend Me Your EventsPlease email Kevin Callahan with your outdoor South Jersey events at Kcallahan@gannett.com\n- Fishing lures $10 April 23, 2015Asking for 10.00 each for these. They are a lot of these lures. Please contact by text.\n- Wm Zimmerman Framed Ruffed Grouse Print (Woodbury) $55 April 23, 2015Framed Ruffed Grouse Print-NICE! Wm Zimmerman Frame Size 26 3/4\" x 20 3/4\" Perfect for your Man Cave or Cabin Pet/Smoke Free Home Local Pick Up Only\n- Two sets of golf clubs (Burlington) $300 April 23, 2015I have three golf bags and two sets of clubs, and a cart. I don't know much about golf clubs but they are all name brand good clubs. Everything is pretty dusty because they have been in my garage for awhile but nothing has rust. I am willing to split […]\n- RE:SOLVE Emergency Tool & Pocket Knife (Woodbury) $15 April 23, 2015CAMPING-HUNTING-FISHING-PREPPER-EMERGENCY-BOY SCOUTS RE:SOLVE 12 Piece Outdoor Recreation Multi-Tool -LED Flashlight with Flint -4\" Adjustable Wrench -Hex Keys: 4mm,5mm, and 6mm -2.5\" Locking-Blade Knife -Phillips Screwdriver #1 -Slotted Screw […]\n- Men's Woolrich Wool Jacket-Tan (Woodbury) $20 April 23, 2015Woolrich Tan Wool Jacket-16304 Size Men's Medium 100% Wool Great for layering/Spring Zippered(YKK) Slash Pockets Deep Interior Pockets Woolrich Quality Fishing-Camping-Hunting-Scouts-Bird Watching-Day Trips Pet/Smoke Free Home Local Pick Up […]\n- Fishing lures $10 April 23, 2015\n- Mattie: Hi there! I could have sworn I’ve been to this site before but after looking at some of the posts I...\n- world news: As recently as 2009 Charlie Bronson was declined parole, the parole board believing that he had not...\n- jethrosplace.com: This article gives clear idea in favor of the new viewers of blogging, that actually how to do...\n- digitalkamera Vergleich: Aw, this was a very nice post. Finding the time and actual effort to create a very good...\n- situs judi: this article so useful for me. c’mon make a good article anymore, thank you\nInto the Outside PodcastLoading...\n- Cal Column\n- Concert Series\n- Gear Review\n- Heatlh and Fitness\n- Horse riding\n- Ice Skating\n- Inspirational Stories\n- Outdoor Learning\n- Outdoor News\n- Outdoor Stories\n- Rock Climbing\n- Sky Diving\n- The W's of the Day\n- ticketing bikes\n- travel writing\nCategory Archives: Concert Series\nhttp://automotorblog.com/?option=To-Earn-Money-For-Mmo-Games To Earn Money For Mmo Games\nSorry, the Friday High Noon OUTdoor Concert Series isn’t OUT doors today. With the rain around here, thought we go inside and don’t think you will be disappointed being indoors today:\nNot much of a day for an OUTdoor concert? The Into the OUTside Friday High Noon OUTdoor Concert Series doesn’t think a little rain should ruin your fun . . .\nIn case you missed U2 on Good Morning America at Fordham University, the High Noon Friday OUTdoor Concert Series presents a replay of the show three weeks ago . . .\nThe Into the Outside Friday High Noon OUTdoor Concert series is Andrew Bird via suggestion from Jessie Cuzzupe:\nInto the OUTside presents the High Noon OUTdoor Friday concert to kick off the weekend. This week it is Jewel, who checked OUT of Dancing With the Stars on Thursday with fractured tibias in both legs, in a 2006 concert … Continue reading\nThe Into the OUTside Famous Friday High Noon Outdoor Concert Series presents today some Mardi Gras. Actually, on this day in 1827 it was the birth of Mardi Gras when a group of students wearing costumes and masks danced through the … Continue reading\nThe Into the Outside Friday High Noon OUTdoor Concert Series presents Cold Play. Since Chris Martin and the lads got ripped off at the Grammys for album of the year last week, we will Fix It here with Cold Play … Continue reading\nThe Into the Outside Friday High Noon OUTdoor Concert Series comes from the suggestion of Joe Cuzzupe with U2 on the Vertigo Tour in Milan:\nIn honor of Keith Richards’ 65th birthday on Dec. 4, the Into the Outside Friday High Noon Outdoor Concert Series began in December with an outdoor Stones’ show. I posted video from my first outdoor Stones’ show on Sept. 25, … Continue reading\nIn honor of Keith Richards’ 65th birthday yesterday, the weekly Into the Outside Friday High Noon Outdoor Concert Series was decided to be an outdoor Stones’ show today. I was hoping someone out there had video from my first outdoor … Continue reading"} +{"text": "The Plot: Rory Deveaux is spending her senior year at Wexford, a boarding school in London. Meeting new people, figuring out a new school system, being in London instead of a small town in Louisiana, should be amazing. And it is — except for the murders. Murders that are mimicking the infamous 1888 Jack the Ripper murders. Rory and her fellow students try to get on with life and school; all that changes when Rory sees someone suspicious by the school, someone the police think may be their Prime Suspect. Someone only Rory saw. Is Rory at risk?\nThe Good: The Name of the Star has a slow build to the big reveal — which is not that there are Jack the Ripper murders happening. The reader knows that from page one. No, the “reveal” is more about who Rory sees, and why she sees him, and who he is. While she spots him about page 100; sixty odd pages later she learns why.\nBefore that point, The Name of the Star is a boarding school book, full of the details that people like me swoon over. No, really, Johnson doesn’t just say that Rory wears a school uniform. Instead, the reader gets “ten white dress shirts, three dark gray skirts, one gray and white striped blazer, one maroon tie, one gray sweater with the school crest on the breast, twelve pairs of gray kneesocks.” And that’s not including the PE uniforms! Johnson puts us firmly in Rory’s new world, sharing everything from a map to the area to the food she likes, the food at school and the friends she is making. “An American Teen in London” is interrupted by the Ripper murders.\nThere is a mystery, but it is not yet Rory’s mystery. Rory’s story is one of suspense (what is happening with the murders?) and possible romance (Jerome). Jerome: he is like the perfect book boyfriend, not in the sense that he is perfect, and not in the sense that he is a boyfriend, but in the sense that Johnson perfectly portrays a typical teen romance that is, well, typical. It’s not overwhelmed by having it be any more or any less than what it is: two young people being attracted to each other, having fun kissing, and trying to work out what that means. After one kissing session with Jerome, Rory thinks “when you live with someone — or on the same campus, I mean — and you have a mad make-out session, you have two choices. You can either indicate that you enjoy your mad make-out sessions and intend to indulge in them at every given opportunity . . . or you do not acknowledge the make-out session, or indeed any physical attraction. There is no middle ground, not at boarding school.”\nThen, it happens — the murders touch Rory’s world.\nIt’s not what you may think; one of the murders takes place very close to Rory, yes, but that’s not the big reveal.\nThe thing is, Rory has acquired more than uniforms and friends at her London school. She’s also gained a new talent: no, not field hockey. Seeing dead people. Seeing, specifically, the ghosts of dead people. This unique ability pulls Rory into the mystery, into the search for the person recreating the murders, and into danger. She also encounters a Torchwood-like squad of similarly gifted young people. At this point, the action is much more involved than “how early do I have to get up to have enough time in the shower I share with so many other girls” or “kissing Jerome.”\nAs I said above, it’s almost half way through the book before Rory sees a ghost, or, rather, realizes that she is seeing ghosts. Here’s why I like that timing, as opposed to giving it to us on page one or chapter one: that’s life. One minute, you’re worrying about classes and friends, the next, life changes, and that life change is not conveniently at the start of things, it’s sometimes in the middle. Why, in shows like Supernatural or Buffy or The Vampire Diaries, must the supernatural reveal always happen right away? What about the lives people led, the normalcy of their routines, before it all went witches and vampires or, in this case, ghosts? I like it in part because I’ve wanted, for a while, to read a book or series where the “supernatural is REAL” moment happens late in the game."} +{"text": "A very good panel discussion this week on Gender Equality Data and Tools at the Bank reminded me of the research we did in transport on household surveys with my friend and a World Bank colleague, Kinnon Scott. In retrospect, this work should be better advertised as it touches upon many of the points that were raised on the importance of gender-relevant data for policy. The three main questions that follow permeate the discussion and are of particular relevance for the transport sector as we seek to review our own gender data needs.\nWhat do household surveys tell us about gender? There are four common household surveys that exist in developing countries with data that can provide insights on gender issues—Living Standard Measurement Studies (LSMS), Household Budget or Income and Expenditure Surveys (HBS/IES), Demographic and Health surveys (DHS) and Multiple Indicator Cluster Surveys (MICS). Although not designed to provide specific transport sector data, we used examples of each type of survey to illustrate the extent to which these surveys can contain useful information on transportation. Exploiting such household surveys can be a way to improve transport policy for women without spending considerable additional expenditures on surveys, which are expensive. They offer the additional advantages in that the household surveys are more likely to be repeated—thus ensuring the availability of future data, and governments have made the data sets publicly available.\nLinks to common Household Surveys:\nLSMS: http://www.worldbank.org/lsms/\nIES/HBS: http://www.measuredhs.com\nThe main findings of the review shows that there is potentially substantial amount of data available across countries on one or two aspects of transportation such as costs and mode used to visit education and health facilities. However, there is little information in the surveys on other important aspects of transport such as mode choice, security and travel patterns.\nCan we add a specific gender module to Bank household surveys to help bridge any data gaps? A key recommendation derived from this research can help answer this second question. Among LSMS surveys, the questions will tend to vary because of the heavy customization of these surveys to meet country demands for data. As a result, it may be possible to marginally influence surveys to expand the data collected on gender and transportation. It would be useful if survey questions could be systematized as much as possible in the future to integrate gender considerations in a way to ensure that questions are similar over time within each country. Questions should be simple to implement and allow for comparability across countries. In transport, adding more gender questions could ensure a better focus on gender and transport issues. As evidenced in our recent regional survey work, a standardized approach could be promoted for collecting and evaluating gender data in transport. Substantial background work for developing a standard module has already been carried out and could be expanded upon.\nWhich key gender indicator should we try to collect data on in the future? Answering the final question is the most challenging and related to the previous one. The relevance of gender data very much depends on the sector and the related data gaps for that sector. In transport, the focus of the analysis centered on aspects of accessibility and transportation choice; affordability; travel patterns and trip purposes; and quality and security concerns. The focus of analysis will vary for another sector.\nMode of Transport to School: Panama 2003\nSource: Encuesta de Niveles de Vida, calculations by authors\nSectors and gender specialists will need to work together to provide guidance on which data needs to be more gender-disaggregated or with a greater gender focus based on specific objectives. For example, demographic and Health Surveys (DHS) lists among the eight factors that limit the use of health care the distance and lack of transport and whether any of these factors is a constraint to health care access. Yet, data collected on potential linkages between the health and transport sectors is often not reported or considered for taking steps in formulating policies in favor of improving maternal health (MDG 5).\nFinding common ground on data needs is important to move forward. Household surveys that allow disaggregation of household data by gender are costly, both in terms of time and other resources and, therefore, are done infrequently. Agreeing on a definition or common nomenclature for defining what constitutes good and useful gender data will vary by sector. In transport, it will likely rest on defining what constitutes transport accessibility and how related variables linked to investments or policies may influence transport outcomes across gender. However, stand alone transport surveys will continue to be needed to foster the production of gender statistics in transport in developing countries and the incorporation of gender differences into transport decisions."} +{"text": "JAKARTA, Indonesia — Joko Widodo has won hearts and votes with his signature impromptu visits to Jakarta neighborhoods. But now voters are asking the popular governor to speak up if he wants to win an increasingly tight race for Indonesia’s presidency on July 9th.\nThat is what voters will be looking for tonight, when the first of several presidential debates kicks off pitting Mr. Widodo against rival Prabowo Subianto, a former Army Special Forces commander.\nThe risks are high for both in a race that is currently much closer than it appeared a month ago, and a misstep by either could effectively decide the election tonight, analysts say.\nMore In Indonesia Elections 2014\n- As Indonesia Prepares for its New President, Some Things to Remember\n- With Election Dispute Over, Time For Indonesia To Move Forward\n- What's Next For Prabowo Subianto?\n- Court Expected to Clear Final Hurdle for Indonesia’s Jokowi to Take Office\n- Indonesia’s President-Elect Seeks Better Budget Spending\n- Documentary Depicts Hope for Indonesia's Next President\nFor more than a year, Mr. Widodo has been the clear front-runner in the presidential contest. His lead over Mr. Subianto was about 35 percentage points at its peak.\nPolls now show the gap at 8 points, with whispers that soon-to-be-released polls will show a further narrowing to 3 or 4 points.\nThere are many reasons for the shrinking gap, including Mr. Subianto’s support from the nation’s biggest TV media conglomerates and his on-message campaign. Mr. Subianto has been preparing for this moment for a decade, since he ran as a vice presidential candidate in the 2004 election.\nMr. Widodo has also been trying to fend off a slew of personal attacks of unknown origin that have little basis in reality but nonetheless have made the rounds in social media. One purports that Mr. Widodo, a declared Muslim who has been on pilgrimage to Mecca, is a Christian.\nAnalysts say the greatest reason for the narrowing, however, is that Mr. Widodo has not yet presented a vision of himself as president, something that voters say is overdue. Critics say Mr. Widodo is spending too much visiting places—something that goes over well with voters at a local level—and not enough time talking to an electorate of 185 million people.\n“He has refused to do what conventional politicians do, and that is giving longer speeches in which they lay out their programs,” says Marcus Mietzner, a researcher of Indonesian politics with Australian National University.\n“He always says that is something that conventional, normal politicians do. And as a result of that, I think a lot of Indonesians demand more answers.”\nMr. Widodo, popularly known as Jokowi, drew mixed reviews for kicking off his campaign in Papua, the country’s easternmost province, a symbolic move that political analysts say held little electoral value. Mr. Subianto stayed on the vote-heavy main island of Java for his campaign launch.\nThe trip to Papua reflects Mr. Widodo’s belief that he can run for president the same way he ran for mayor of a mid-sized town in central Java and then in 2012 for the gubernatorial seat in Jakarta, analysts say.\nBut “the presidential campaign is a completely different animal,” Mr. Mietzner said, pointing out the impracticality of waging a tour-based campaign in the sprawling archipelago nation. “I think that’s what Jokowi hasn’t quite understood.”\nAfter the Indonesian Democratic Party of Struggle announced its support for Mr. Widodo’s presidential run in March, he said little about how he would run the country. Only last week, after official campaigning kicked off, did he begin announcing some policies. Mr. Subianto, on the other hand, has been vocal for months, publishing a six-point manifesto and outlining his proposed policies during rallies ahead of April’s legislative elections.\nThe first debate tonight, which will feature both men alongside their running mates, is crucial, say analysts.\nMr. Subianto is seen as a live wire who critics have called “temperamental,” causing concern among some voters. His first task will be to show Indonesians that he can calmly absorb the sparring of a televised debate.\nMr. Widodo, whose charm is well known but whose ability to speak about national issues is the concern of the day, needs to prove he can tell the nation more than that he’s willing to work hard.\nMr. Widodo has made several missteps in demonstrating his oratory skills in recent weeks. He declined to read a prepared speech when he announced Jusuf Kalla, a past vice president, as his running mate, according to people with knowledge of the matter. Then last week, when the candidates met to declare their commitment to a peaceful campaign, he delivered a short, uninspiring speech that stood in stark contrast to one by Mr. Subianto.\nMr. Widodo recovered somewhat at a dinner event a day later when he laid out his economic plan to a roomful of investors, one who whom called it “clear and reasonably polished.”\nMr. Widodo will need a repeat performance on the national stage.\n“For the first time he has to present an articulate vision for where Indonesian should go, and he seems to have struggled with that,” said Doug Ramage, an analyst with BowerGroupAsia in Jakarta.\nAlso popular on Southeast Asia Real Time:"} +{"text": "It’s August, and ninth and tenth graders across Arkansas are being introduced to high school. Meanwhile, their teachers are undergoing their own sometimes difficult transition to the new Common Core State Standards.\nInitiated by the National Governors Association and the Council of Chief State School Officers, the Common Core has been adopted in 45 states and the District of Columbia. Arkansas schools first implemented it in grades K-2 in 2011-12 and added it to grades 3-8 this past school year. Now it’s moved into high school. Across-the-board testing is being developed by a group of states, including Arkansas, known as PARCC. Those tests will be administered not this year, but the next.\nThe standards define the skills students at each grade level should have in math and in English language arts. For example, first graders should be able to add and subtract within 20, tell time, print upper- and lowercase letters, and describe what’s happening in a story. How those standards are taught – the curricula, in other words – is up to school districts and teachers.\nIt has been an imperfect transition. It turns out that most Arkansas schools lack the Internet broadband capacity to administer the tests, let alone deliver instruction needed to really do Common Core right. Fixing that won’t be cheap. Less significantly, the state didn’t want to pay for a transitional test until the new one is developed, so many students have been studying under Common Core while being tested under Arkansas’ old frameworks. Test scores, naturally, went down a little this past year.\nSupporters say the new standards are more rigorous and more focused than Arkansas’ old frameworks, which tended to cover too many subjects with too little depth. Educational and business groups – which aren’t always on the same page – agree that a mobile society needs a common set of standards so students can be compared with their national and international peers. Supportive educators say the standards give teachers more flexibility in designing their lessons than the old frameworks did.\nAt Bryant High School, Lisa Stine, 26, and her five fellow ninth grade English teachers designed their curriculum around “Romeo and Juliet,” “To Kill a Mockingbird” and other famous works. She’s pleased with the curriculum, but it did take some serious planning and negotiation.\n“We debated over ‘Fahrenheit 451’ with the eighth grade, and we just have to look at the reading level, the thematic content, what we have time for,” she said. “So eventually, they won out, but that’s OK, because we have lots of content that I’m really happy with, so you’ve got to give and take a little bit.”\nGiving and taking is what some people would like to do with Common Core – give it away and take it back to where it came from. After being adopted by 45 states rather quickly several years ago, a backlash is developing over fears that national standards will soon devolve into federal government control.\nIn Arkansas, the citizens group Arkansas Against Common Core remains vocal but relatively small, but then, so was the tea party at one time. Doubters have gained more traction in other states. In July, Georgia pulled out of PARCC, citing the $29.50 per student testing cost, though not out of Common Core itself.\nIt seems unlikely this ship could reverse course in Arkansas at this point. Educators have been preparing for this change since before 2010. It will be 2015 before the Legislature meets again in regular session, though legislators could agree to bring up the subject during next year’s fiscal session. Legislators did spend a day listening to opponents make their case in July, and the 2014 elections could produce a Legislature more willing to reconsider the Common Core.\nStine says that the majority – but not all – of the teachers at Bryant HIgh seem to favor the standards. Generally, the longer a teacher has been teaching under the old frameworks, the more skeptical they are of yet another “next big thing” in education.\n“There are some people here resistant to it, but I’ve heard a lot more positive things about it than negative for sure, especially here in Bryant. … The teachers that I work with and the teachers that I know generally think it’s a positive thing,” she said.\nHopefully they’re right. As of this August, every public school student in Arkansas is now studying under Common Core.\nSteve Brawner is an independent journalist in Arkansas. His email address is firstname.lastname@example.org. Follow him on Twitter at @stevebrawner."} +{"text": "May 29/14 7:35 am - World Cup Action Returns to Albstadt for Eliminator & Cross-country\nPosted by Editoress on 05/29/14\nOne week after the Mountain Bike World Cup returned to Europe for the first time in 2014 at Nove Mesto in the Czech Republic, teams and riders will descend upon Albstadt, Germany, for Round Three of the Eliminator (XCE) and Round Four of the Cross-country (XCO).\nLast year, Albstadt was the opening round of the World Cup, and provided some of the hardest and most exciting racing of the season, with new names making it onto the podium.\nThe Eliminator has been moved from an urban venue to the main competition site, keeping everything in one compact location. Incorporating elements of the XCO circuit, the approximately one kilometre course starts with a climb and then traverses the side of the mountain, hitting the technical \"Deep Hole\" section of the XCO course before finishing with a sprint down pavement to the finish line.\nWorld Cup leader and world champion Alexandra Engen (Ghost Factory) is the clear favourite for the women, having won both of the first two rounds. However, she will receive competition from Katharin Stirnemann (Sabine Spitz Haibike) and Jenny Rissveds (Scott-Odlo), who have both appeared on the podium in the previous two rounds. Canada had multiple entries in the women's Eliminator, with Andreane Lanthier-Nadeau (Team Canada) making it through to the small final and finishing seventh overall, despite being sick.\nLanthier-Nadeau will not be participating in the Eliminator in Albstadt and will instead concentrate on the Cross-country (XCO).\nAlexandra Engen (Ghost Factory) winning in Nove Mesto\nAndreane Lanthier-Nadeau (Team Canada) made it through to the small final in Nove Mesto\nFor the men, Daniel Federspiel (Oetztal-Scott) took over the World Cup lead after Round Two, when Round One winner Samuel Gaze of New Zealand broke his chain in the quarterfinals and was eliminated. Others to watch will include the very fast Miha Halzer of Slovenia, who won the last round, and world champion Paul van der Ploeg of Australia. Last year, Raphael Gagne (Team Canada) finished fourth on the urban circuit, however, Gagne is focussing on the cross-country this year and did not compete in the Eliminator last weekend. Canadian champion Leandre Bouchard (Team Canada) was the only Canadian to qualify last weekend, but was knocked out in the first round; he will be hoping to do better this week.\nMiha Halzer winning in torrential rain in Nove Mesto\nDaniel Federspiel leading Leandre Bouchard\nThe XCO circuit is little changed from last year, but the riders are well aware of how difficult it is, with steep punishing climbs in the first half of the 4.18 kilometre course.\nThe women's cross-country series has had three winners in three rounds, so there is no clear favourite in Albstadt. Jolanda Neff (Liv Pro XC), the winner of Round One, continues to lead the overall standings, however, her team mate Pauline Ferrand Prevot absolutely dominated the last round, winning by almost three minutes. The other rider to watch will be former World Cup champion Catharine Pendrel (Luna). Pendrel returned to World Cup competition last weekend after missing the earlier rounds due to injury, however, the Canadian showed that she is clearly on form by finishing second to Ferrand Prevot. Canadian champion Emily Batty (Trek Factory Racing) had an uncharacteristically distant 18th place last weekend, and now sits fifth in the overall standings and will be looking to get back on the podium.\nPauline Ferrand Prevot winning Nove Mesto\nCatharine Pendrel made a strong return after early seson injury\nWorld Cup leader Jolanda Neff leading out the start in Nove Mesto\nThe men's competition will be equally interesting. Julien Absalon (BMC) won the first two rounds, while his perennial rival Nino Schurter (Scott-Odlo) won last weekend. Both had difficulties last year at Albstadt, with Absalon having to drop out with mechanical problems while holding a commanding lead, and Schurter having an uncharacteristically bad day to finish 18th. Others to watch include Olympic champion Jaroslav Kulhavy (Specialized Racing XC) and Australian champion Daniel McConnell (Trek Factory Racing), who had a breakthrough ride at Albstadt last year, winning the first World Cup of his career, and who has since become a regular podium threat.\nDaniel McConnell (Trek Factory Racing), had a breakthrough ride at Albstadt last year\nWorld Cup leader Julien Absalon\nGagne, who is the top-ranked Canadian after finishing 14th in Round One and 23rd last weekend (he skipped Round Two in Cairns, Australia), will be looking to break into the top-20 this weekend. The Scott-3Rox duo of Geoff Kabush and Derek Zandstra will be looking to bounce back from poor showings in their first World Cup of the season last weekend, when Kabush was 49th and Zandstra was lapped.\nIn the Under-23 men, Canadian champion Leandre Bouchard (Team Canada) was fifth last weekend at Nove Mesto, and will be hoping to at least equal it this weekend."} +{"text": "Ten-year fight over drainage ditch unresolvedWoods of Seaside resident says area is unsafe\nJoe Sudimak is worried that someone – possibly his own grandchildren – will fall and get seriously injured in a large drainage ditch along his property line in the Woods at Seaside near Rehoboth Beach.\nFor 10 years, he has been trying to get someone in his community to take his concerns seriously; he hasn't had any success. Over the past four years, he has stepped up his efforts to draw attention to his dilemma.\n“I was patient for a long time,” he said, adding that the abundance of rain during 2010 exacerbated his concerns.\n“Four people have slipped into the ditch; it's an accident waiting to happen,” he said. “The community brushes it off like nothing is going on.”\nBut, he may have found an ally in House Speaker Pete Schwartzkopf, D-Rehoboth Beach. After visiting the site on two occasions, Schwartzkopf said he agrees with Sudimak that the area is dangerous. “The only problem it that this is on private property,” he said. “But I'm looking into it to see what can be done.”\nSchwartzkopf has had Department of Natural Resources and Environmental Control and Delaware Department of Transportation staff look at the drainage ditch. He accompanied DelDOT staff to the site on Aug. 4.\nSudimak wants pipe buried\nStanding in Sudimak's front yard on Beaver Dam Reach, it's easy to see that water runoff from his end of the community goes by his property. Water comes off the road onto a large concrete pad into a 24-inch pipe, onto rip-rap rocks and then to a retention pond near his backyard.\nA portion of the pipe is buried underground. He's been asking the community homeowners' association to extend the pipe to the retention pond, remove the rocks and bury the remaining section.\nSchwartzkopf said the rocks in the ditch break up the force of water draining into the retention pond. “I don't see an issue with extending the pipe, but they may have to place rocks further into the pond,” he said.\nAfter years of debate over the issue, the HOA offered Sudimak an ultimatum: It would put up shrubbery to create a living fence along the border of the ditch. Sudimak, 82, said that solution does not go far enough. “It's a ridiculous offer,” he said.\nAccording to the HOA, after a review of Sudimak's complaints, the community’s insurance carrier, an independent contractor and the Sussex Conservation District concurred it was not necessary to extend the pipe and fill in the ditch.\nHe was told in a September 2011 letter from the HOA that extending and burying the pipe would create significant debris accumulation in the pipe that would present an entrapment danger to humans and animals. He was also told the ditch was not viewed as a safety hazard.\nSudimak rejects that conclusion pointing to a letter in his large file of paperwork from the community's insurance company that states some action should be taken.\nThen this past June, Sudimak was told in a letter from Right Property Management that the condition existed when he purchased the property and his request to put the pipe underground would not be approved.\nHe has since contacted the community's liability insurance carrier who has committed to send an agent to visit the drainage ditch in early August.\nSudimak said the HOA spends money to maintain the ditch. “If they eliminate the hazard they will also eliminate the maintenance and save money,” he said.\nSudimak's only way to reach his neighbors about his concerns is to make copies of his letters and documents and hand deliver them to more than 80 houses. He's been doing that for years.\nIn his last of many letters to community homeowners, Sudimak wrote: “We continue to ask for your support so that no one should have to suffer any injury as a result of our community's negligence to eliminate this long-standing danger.”\nSo far, the only resident who has supported him is his neighbor who also borders the drainage ditch.\nSudimak, a retired teacher and school administrator from Hockessin, moved with his wife to the area in 2001. “This is supposed to be our American dream,” he said. “It used to be that people cared for one another, but not today.”"} +{"text": "JWC TO ELIZA STODART; 5 February 1830; DOI: 10.1215/lt-18300205-JWC-EA-01; CL 5:68-70.\nJWC TO ELIZA STODART\nCraigenputtoch 5th February\nThis has been the unluckiest new-year to me! Every day some Job's-post or other tempts me to curse my stars! It began with the death of my pig—my sweet, wise, little pig, who was the apple of my eye—he got a surfeit one evening, and next morning I was pigless! and just when my long cherished hopes of him were approaching their fulfilment, and a few weeks more would have plumped him out into such delicate bacon! So the glory of this world passeth away!1 On the back of this severe family-affliction followed a disaster occasioned by a quite opposite cause, being the consequence not of overfeeding but pure starvation: a stranger cat under the pangs of famine rushed wildly into our larder one day, making straight in the direction of a beefsteak—and, before you could bless yourself, snack [quickly] went the steak, and smash went a corner dish; which you know was as bad as if the whole four corner dishes had been broken or at least a pair of them. And alas! this was only a beginning—this smash, it seemed, was but a signal for the breakage of all the crockery glass and china about the house— For now Nancy2 became as it were suddenly possessed with a demon of destruction which shivered everything she laid hands on—nay—the supper-tray with all its complement of bowls, plates &c &c she “soopit ower wi her tails” [swept over with the tail of her dress]! one fell soop!— But already I must have filled your eyes with tears—and will not tax your sympathy with a detail of all my grievances—indeed one sheet would not hold them. Only attend to the last, which you must help me to remedy, being in truth the main cause of my writing again so soon—— Last week we were despatching a boxfull of books to Sam3 to be transmitted to their various owners in Edinr— None of our own people being “at the town”4 that Wednesday it was entrusted to the Carrier, who naturally was charged to pay it—but our ill luck pursuing us even in this small matter, the carrier either misunderstood or proved oblivious; and so the package was despatched with all its charges to be defrayed at Bank-street!— Now, tho' intrinsically considered the damage done by this mistake be trifling, yet you will understand how one should find it abundantly vexatious—and I beseech you to explain to Mr Aitken how the omission which must have appeared to him so singularly inconsiderate occur[r]ed— and to charge him (by his Lady's love or whatever he values most) to place this with every expence which these book commissions cost him, to Carlyle's account. If he does not we shall not be able to apply to him with any freedom, and I doubt if in all Edinr we could find another as helpful.\nAnd now contrary to my usual practice “I must plant a remark” or two on the weather— It is well we have meat and fire ‘within ourselves’ (as Mrs Roughhead5 used to say) otherwise we should live in hourly apprehe[n]sion of being snowed up, and consequently starved to death without even the mournful alternative of “eating our own children.” Oh for a sight of the green fields again or even the black peat-moss—anything rather than this wide waste of blinding snow! The only time when I can endure to look out (going out is not [to] be dreamt of) is by moonlight, when the enclosure before the house is literally filled with hares—and then the scene is really very picturesque—the little dark forms skipping and bounding over the white ground so witch-like! A still more novel spectacle exhibited itself the other day at broad noon—seven black-cocks “as fine” (or perhaps finer) “as ever stepped the streets of Greenock”6 came running down the wood to within a few yards of the door— Such are the pleasing varieties of life here!— You will allow they are extremely innocent—\nCarlyle inquired if I had sent his love the last time—and charges me to remember it now—we speak of your uncle and you over our evening fire both often and kindly—my kindest regards are with you both—my Grandfather continues much the same— God bless you—always affectionately yours\nJane W Carlyle\nA good new-year, and many of them!— T. C."} +{"text": "Posted on: June 6th, 2008 - News Blog\nCarnival Cruise Lines’ 2,974-passenger Carnival Freedom, which was originally scheduled to operate six- and eight-day Caribbean cruises from Fort Lauderdale, Fla., on a seasonal basis, will now operate the program year-round, following the conclusion of its 2008 Mediterranean program in October.\nCarnival Freedom’s year-round schedule from Fort Lauderdale begins November 22, 2008, with six-day cruises departing Sundays and visiting Key West, Fla., George Town, Grand Cayman; and Ocho Rios, Jamaica, while eight-day voyages departing Saturdays alternate to the eastern and western Caribbean.\nEight-day eastern Caribbean voyages visit five ports: San Juan, Puerto Rico; St. Thomas/St. John, U.S.V.I.; Antigua, Lesser Antilles; Tortola/Virgin Gorda, B.V.I.; and Nassau, The Bahamas. Western Caribbean cruises include Cozumel, Mexico; Limon, Costa Rica; and Colon, Panama.\nAccording to Lynn C. Torrent, Carnival’s senior vice president of sales and guest services, “The Caribbean is, by far, the most popular cruising region for North Americans. It is easily accessible and affordable, and when combined with attractive, destination-rich itineraries such as these, a Caribbean cruise represents the ideal vacation choice for consumers.”\nTorrent noted that while the plan had been for Carnival Freedom to return to Europe in 2009, the strong performance of the line’s entire Caribbean fleet made the new six- and eight-day deployment a compelling choice.\nExciting Six- and Eight-Day Cruises\nOn Carnival Freedom’s six-day cruises, guests can enjoy three distinctly different island experiences – Key West, Grand Cayman and Ocho Rios – each of which offers excellent shopping and dining opportunities, along with a variety of “fun in the sun” activities, including magnificent beaches and watersports.\nCarnival Freedom’s eight-day eastern Caribbean cruises feature five ports – San Juan, St. Thomas (optional shore excursion to St. John), Antigua, Tortola (optional shore excursion to Virgin Gorda) and Nassau – providing consumers a diversity of landside experiences, along with a variety of restaurants, shops and boutiques. A wide range of shore excursions are also offered, including horseback riding, scuba diving, hiking and kayaking. During an extended evening stay in San Juan, guests can also sample that city’s legendary nightlife.\nIn addition to historical sites and attractions, including centuries-old ruins, the eight-day western Caribbean cruises to Cozumel, Limon and Colon offer a multitude of dining, shopping and watersports experiences. A number of “adventure-type” tours, including canoeing, and white-water rafting, are featured, as well. From Colon, guests can experience all the wonders of the Panama Canal and even a unique bi-coastal railroad adventure.\nBoth of these eight-day cruises offer visits to ports that are usually available only on cruises of 10 days or longer. In addition, these cruises depart on Saturdays and return on Sundays, which allow them to fit into the consumer’s traditional one-week vacation pattern.\nVariety of ‘Fun Ship’ Amenities\nSpanning a length of 952 feet, Carnival Freedom offers a variety of on-board amenities and facilities: a 14,500-square-foot health and wellness facility, a jogging track, a duty-free shopping mall, full casino gambling, and 22 lounges and bars, including a multi-level theater showcasing lavish revues.\nDining options include two two-level main dining rooms offering extensive menus and wine lists, a 1,200-seat poolside eatery with full breakfast, lunch and dinner buffets and a 24-hour pizzeria, and an elegant reservations-only supper club.\nFamily friendly amenities include children’s programs for three different age groups – “Camp Carnival” for kids ages 2-11, “Circle C” for ’tweens, and “Club O2” for older teens – with facilities and activities for each.\nCarnival Freedom also offers a variety of accommodations including a wide selection of balcony staterooms and suites – perfect for scenic cruising. All Carnival Freedom accommodations feature the Carnival Comfort Bed sleep system with plush mattresses, luxurious duvets and high quality linens and pillows. Carnival Freedom also houses an Internet Café, along with ship-wide Wi-Fi access and cell phone service.\nReservations are currently being accepted for the Carnival Freedom’s year-round six- and eight-day voyages from Fort Lauderdale, Fla. Special rates for third and fourth guests sailing in the same stateroom, along with round-trip air supplements from a variety of North American gateways and pre- and post-cruise South Florida land stays, are also available.\nFor additional information and reservations, contact any travel agent, call 1-800-CARNIVAL or visit carnival.com."} +{"text": "Article by: Perry Romanowski\nI saw this article in the Guardian about the delay the EU faces in their ban of animal testing of cosmetic products.\nFor someone new in the cosmetic industry, the role of animal testing may be confusing. There are many brands out there that claim to be ‘cruelty free’ and that ‘don’t test on animals.’ It might make an aspiring cosmetic chemist wonder, why do some companies continue to test on animals? What kind of animal testing is done? If one company could stop testing on animals, why don’t they all?\nGood questions. But before we answer, let’s go over what animal testing has been used in the cosmetic industry.\nCosmetic animal testing\nThere are a number of animal tests that can be done on cosmetic formulas and ingredients. The primary tests include the following.\n1. Draize test – This is a procedure used to determine dermal irritation. Animals used are albino rabbits who have much more sensitive skin than humans. Semiocclusive patches of the test material are placed on skin and readings are taken at 24 and 72 hours. The skin is then graded for erythema and edema. In the United States, this test is required by law for cosmetics and skin care products under the Federal Hazardous Substances Act.\n2. Eye irritancy test – Tests what happens if the cosmetic gets into the eye. It involves albino rabbits again and compounds are put into the eyes. Evaluations take place at 24, 48, 72 hrs and up to 7 days.\n3. Guinea Pig Maximization test – This test measures for the sensitizing potential of an ingredient and involves injecting the compound under the skin followed by topical application.\nI’ve never been too comfortable doing animal tests and as a cosmetic formulator, I never had to. Fortunately, it is unlikely that you will ever have to do any animal testing yourself. It is typically done by an outside testing laboratory. But governments still require cosmetic companies to demonstrate their products are safe and while they don’t usually require animal testing, for some products, it is the only proof they accept.\nThoughts on cosmetic animal testing\nI was once asked a series of questions about animal testing. Here is my perspective.\n1. Do you think that animal testing for cosmetics should be banned?\nWhile I don’t like animal testing, as the original story shows there are currently no suitable alternatives for some types of tests. I don’t think animal testing should be banned until there are alternative tests that help prove products are safe.\n2. Should animal testing be banned for cosmetics, but still be allowed for medicine?\nAnimal testing is not something that anyone wants to do. Scientists feel the same affection for animals as everyone else. But until alternative tests are better developed, banning animal testing for either cosmetics or medicine seems unethical. Aren’t human lives more important than animals?\nEU animal testing ban\n3. Do you agree with the EU ban on animal testing? What will the effects be?\nI don’t agree or disagree with the decision made by the EU. The truth is cosmetics are not vital for living a healthy life. The result of banning animal testing will be that no new cosmetic products will be made. All you will get in the future are color & bottle changes using the same products you have today. Cosmetic innovation will stop. Solutions to acne, dandruff, dry skin, frizzy hair, etc. will not be developed. Fortunately, the products available now are often good enough. If these problems were never solved and there were never a new cosmetic made, the world would be just fine.\nHowever, it seems strange people get upset about animal testing, but still eat meat, kill mice & rats, and wear leather products.\nPros of a ban: fewer animals will be killed\nCons of a ban: Cosmetic problems will not be solved, no new ingredients will be used, innovation stops\n4. Do you use cosmetics products that have been tested on animals?\nYes I do. So do you. Everyone uses products that have ingredients that were tested on animals. It is misleading when companies say they don’t test on animals. ALL cosmetics have been tested directly or indirectly on animals.\nThe truth is, very few cosmetic companies directly test their products on animals. Animal testing is expensive and terrible for public relations. Companies who say they don’t test on animals either use ingredients that were already tested on animals or have their raw material suppliers do the animal testing. They can argue that they never tested their formula on animals (which they technically don’t) because they know they are using only raw materials that have already been tested on animals (by someone else).\nSince all ingredients have been tested on animals, there does not seem to me to be any moral high ground to avoiding companies based on whether they claim to test on animals or not.\nGetting rid of animal testing\n5. With all the efforts to stopping animal testing for cosmetics, do you think that it’s possible to one day completely get rid of animal testing for cosmetics?\nYes, I believe one day animal testing of cosmetics will be a thing of the past. Everyone wants to get rid of this type of testing. No one wants to hurt animals. Scientists are working hard to create testing alternatives that work. We are just now seeing some tests that are receiving approval from governmental agencies. I believe withing 10 — 20 years animal testing of cosmetics will be practically non-existent. But until there are reliable testing alternatives (there aren’t yet) animal testing will still be necessary.\nWhat are your thoughts on cosmetic animal testing? Does it affect your formulating decisions? Leave a comment below."} +{"text": "In 2000, Virginia B. Ball, philanthropist and active supporter of education, the environment, the arts, and the humanities, established the Virginia B. Ball Center for Creative Inquiry.\nAlthough she died in 2003, Virginia was able to see her center evolve into a national and international model for innovative, immersive learning. She was particularly enthusiastic about her center’s ability to forge creative and productive relationships between Ball State University and numerous community partners.\nSince her death, her center, sustained by subsequent gifts from the Edmund F. and Virginia B. Ball Foundation, has continued to provide life-changing experiences for students and faculty, and life-long learning opportunities for members of the community. Indeed, her center has become a leader in Ball State University’s goal to provide immersive learning experiences for every graduate.\n, director of the Virginia B. Ball Center, this article was originally published in The Star-Press of Muncie, Indiana, on December 7, 2003.\nVirginia Ball believed education transformed lives, energized communities and created culture. She would not have said it that way. She was too straightforward, too authentic to dabble in educational theories. But she was curious. She wanted to know what people were reading, thinking and learning. In particular, she wanted to know what the faculty and students who walked by her home were doing at the university across the street. She was reluctant to intrude in the daily business of education, but she was interested in creating genuine and intelligent relationships with the people who made it work. She attended faculty lectures, corresponded with those whose creativity she admired, and asked many of us, with some regularity, what we found exciting and memorable about our teaching. She was equally fascinated by students—where they came from, how they found Ball State, and what they perceived as powerful and unique about their learning. She attended their musical performances, theatrical productions, art exhibits and research presentations. Always at ease in their company, she talked to them as if they were adults, asking them about their achievements, their goals, and, perhaps most importantly, the contributions they hoped to make to their communities once they graduated. For Virginia, education and community were interconnected. And for that reason she worked to create bridges between scholars and citizens. More to the point, she worked to enable scholars to become engaged citizens, and citizens to pursue life-long learning. She devoted herself to this work—in the arts, the environment and the humanities—in her home community. But Virginia conceived community as a series of concentric circles—local, regional, national and international—that constantly enforced and informed one another. So, during her extensive travels, as she met some of the world’s best minds, or became involved in some of the world’s most innovative organizations, she collected information she could use to broaden and deepen the connection between the citizens of her hometown and the faculty and students at the university across the street.There is ample evidence of Virginia’s bridge building in Muncie—the Minnetrista Center, the Muncie Children’s Museum, Cornerstone Center for the Arts—but perhaps the most dramatic example is the center which she founded and which bears her name: the Virginia B. Ball Center for Creative Inquiry. Each year, Virginia’s center sponsors four interdisciplinary seminars in which faculty and students create a major product—an exhibit, a theatrical production, a film, a book. These products are designed in collaboration with community sponsors and are presented in a community forum for discussion and debate. Since its founding in 2000, Virginia’s center has established a national and international reputation for innovative and inspirational education. The many unsolicited letters Virginia received about her center contain enthusiastic testimonies from the faculty, students and community sponsors who have worked together. All acknowledge the transformative, energizing and creative impact the center has had and will continue to have on their lives. In the last few months of her life, Virginia referred often to these letters and to the living legacy they promised. And she looked forward, always curious, to the exciting and powerful educational experiences her center would create for the faculty, students and citizens of her community.\nCopyright © 2016 Ball State University 2000 W. University Ave. Muncie, IN 47306\n800-382-8540 and 765-289-1241"} +{"text": "Alumna Victoria Hill is a 2016 recipient of the Charles Rangel Graduate Fellowship for study in international relations and foreign and governmental affairs. Victoria, who previously earned the Austrian Diplomacy Fulbright Scholarship, has been working in Wake Forest Admissions for several years. This fall she will enter graduate school, funded in large part by the Rangel, for a two year degree one of whose possible outcomes will be in preparation for the Foreign Service. There are up to 30 Rangel Fellowships awarded nationally each year.\nWe proudly present the roster of students who graduated with honors in 2016.\nTerry “TJ” Smith\nNicholas Syris II\nThis year I was fortunate enough to be selected by the Politics and International Affairs Department to represent Wake Forest at the 56th Annual Naval Academy Foreign Affairs Conference that took place in April 2016. In celebration of the 40th anniversary of accepting women to the Naval Academy, the topic of this year’s conference was “Women and Security: The Implications of Promoting Global Gender Equality.” At the four-day conference, I got to hear from an amazing list of speakers – mostly women – who have had enormous influence in global politics. The speakers included Melanne Verveer, the first Ambassador-at-Large for Global Women’s Issues; Michele Flournoy, former Undersecretary of Defense; and Samantha Power, the current U.S. Ambassador to the United Nation. I was lucky enough to get the chance to speak personally with both Ambassador Verveer and Michele Flournoy, both of whom had brilliant insights into the future of U.S. foreign policy and U.S.-China relations.\nIn addition to hearing from many great panelists and speakers, I also spent time on a small roundtable group that focused on gender inequality and related issues in China. We discussed the absence of women at the top of China’s political leadership, and the many problems that Chinese women still face in the workplace and in society. For me, the biggest takeaway of the conference was getting to better understand civil-military relations. About half of the delegates were from the naval academy and various other military academies around the world. It was eye-opening to see the differences in how civilians and people in the military perceive security issues differently.\nIt was an incredible experience, and I’d like to thank the entire department for giving me the opportunity to attend this amazing conference!\nBlair Wessels is the 2016 recipient of the Jack D. and Martha H. Fleer Scholarship. After graduation Blair will be moving to Morgantown, West Virginia to pursue a J.D. at West Virginia University’s College of Law. She is interested in combining her love of English and political science to study intellectual property law or public interest law.\nBen Helms is the 2016 Carl Moses Excellence in Research Award recipient for his paper “When Domestic and Supranational Politics Collide”. After graduation Ben will attend the University of Virginia to pursue a PhD in political science, with a focus on international politics and South Asia.\nThe 2016 winner of the Jack D. Fleer Award for Excellence in Honors in Politics and International Affairs is Brian Hart for his paper “Creating the Cult of Xi Jinping: The China Dream as a Leader Symbol”. After graduation, Brian is excited to spend a year serving as the Wake Forest Fellow in the Office of the Dean of the College. Following his year as a fellow, he hopes to attend a masters or doctoral program in International Relations or Political Science.\nBrian Hart is the 2016 recipient of the C.H. Richards Award for Excellence in Politics and International Affairs. After graduation, Brian is excited to spend a year serving as the Wake Forest Fellow in the Office of the Dean of the College. Following his year as a fellow, he hopes to attend a masters or doctoral program in International Relations or Political Science.\nFour Politics and International Affairs graduates have been appointed as Wake Forest Fellows:\nBrian Hart: Dean of the College\nSarah Hoyle: Office of Personal and Career Development\nTerry (T.J.) Smith: Office of the Provost\nCamry Wilborn: The Pro Humanitate Institute\n“My selection as a fellow means that I have been given a tremendous opportunity to continue to learn and grow while simultaneously giving back to the institution I have to come to love,” said T.J. Smith. “I have the chance to be mentored by a cadre of esteemed leaders in what will be the developmental opportunity of a lifetime.” As a fellow, Smith said, he expects “to gain a new insight and perspective into how the strategic direction and inner mechanics of the University come together to move our community forward.” (Read more…)"} +{"text": "05/04/08 1:58 AM ET\nRockies lose power struggle\nNewcomer De La Rosa cannot slow Dodgers' dominance\nBy Owen Perkins / Special to MLB.com\nBefore the Dodgers secured their 12-7 victory -- their fifth straight over the Rox this season and eighth in a row overall -- the game evolved into a slugfest, with extra-base hits abounding for both clubs as they combined for 19 runs and 25 hits, 11 for extra bases. But as they built an early 6-0 lead, the Dodgers had only two hard-hit balls, a screaming grounder in the first from Matt Kemp through the hole on the left side of the infield and a three-run double into the left-center gap two batters later by James Loney.\n\"Not every ball was barreled, but enough were,\" manager Clint Hurdle said. \"Not enough strikes, not crisp enough command\" from De La Rosa, making his Rockies debut after being traded from the Royals.\nDe La Rosa was challenged by ineffective breaking pitches and by an inability to get strikes on the inside part of the plate against right-handers. His changeup was effective, but his lack of consistency with his fastball command made it too easy for the Dodgers to sit on his pitches.\n\"I made a lot of mistakes and threw a lot of pitches in four innings,\" De La Rosa said after tying his career-high nine runs allowed. \"I tried to be aggressive. I think I was overthrowing a little bit in the first two innings. My curve didn't work good. I have to do something to be better next start. I have to forget this game and get ready for the next one.\"\nThe Rockies refused to be defined by the early deficit, choosing instead to fight fire with fire. Todd Helton led off the second inning with a hard-hit grounder off the reaching glove of second baseman Jeff Kent, stretching it into a double as it died on that no-man's-land grass in shallow center. The Rockies took off from there, mounting a three-run second and pairing it with a three-run third to tie the game as Matt Holliday hit a leadoff homer and Garrett Atkins laced a one-out double down the left-field line to drive starter Esteban Loaiza from the game after 2 1/3 innings. Brad Hawpe greeted reliever Hong-Chih Kuo by drilling his first pitch for a game-tying two-run homer, the second of his three hits on the night.\n\"It felt good, it's part of the game,\" Hawpe said of his offensive surge, equaling his season peak for hits and driving in a season-high four runs. \"Sometimes you have rough games, sometimes you have good games. You just got to realize that at the end of the year, things are going to be right there where they need to be.\"\nDe La Rosa temporarily recovered from his first two innings, showing resilience as he retired nine of the 10 batters he faced from the middle of the second through a nine-pitch fourth inning. He ran out of gas in the fifth, however, giving up a leadoff single to Kent and walking Russell Martin before Loney launched a hanging slider into the right-field seats for a three-run homer and his sixth RBI of the night. Having squandered the Rockies comeback, De La Rosa left with the three-run deficit.\n\"It's something to build off of, but the bottom line is after his best inning, he got in trouble in the next inning,\" Hurdle said. \"He was retiring some guys, he looked like he was getting a little rhythm, and then the wheels came off in the fifth right away.\"\nWith both lineups showing their explosive potential by forcing early exits from the starters, bullpen pitching was at a premium, with the Rockies relievers allowing three of the 12 runs while the Dodgers 'pen held the Rox to one run over the final 5 2/3 innings.\n\"We kept trying to come back, but they have a good bullpen,\" Hawpe said. \"Their bullpen's tough, and they shut the door down on us.\"\nThe Rockies cracked it open again in the ninth inning, staging a last-gasp rally with Takashi Saito on the mound, sparked by a leadoff double from Clint Barmes and a walk to Holliday. That brought Helton to the plate, with memories of his dramatic game-winning homer against Saito last September bringing the fans to their feet. Helton drove a ball deep to left, but Juan Pierre made a leaping snow-cone catch against the fence, stopping the rally in its tracks. Garrett Atkins followed with a drive to the right-field warning track, but Kemp was able to pull it in safely.\nThe loss marked the sixth time the Rockies have scored five runs or more without claiming a victory this season, a discouraging stat for an on-again, off-again offense that has averaged 4.23 runs per game. The Rockies won the National League title with an average 5.31 runs/game last season.\n\"The numbers aren't that much skewed from last year,\" Hurdle said, looking at the full range of early-season stats, including the Rockies' 11-19 record, 10 games behind the NL West-leading Diamondbacks. \"That being said, they're unacceptable. They're not what we need. That isn't something to hold on to.\n\"We're at that fine line right now: we can't wait for things to happen, and we don't need to step on the gas pedal so hard we're forcing things to happen. We need to take what the games present. The game's hard for us right now. We just got to keep working. There's work to be done, there's no doubt about that.\"\nOwen Perkins is a contributor to MLB.com. This story was not subject to the approval of Major League Baseball or its clubs."} +{"text": "Columbia County Economic\nMaking it up as they go along\nColumbia County, FL (Posted Oct 06, 2010 07:35 am)\nMembers of the Columbia County Ida listen at the workshop. No one knew about the economic development ordinance that was passed in 2004. In the photo from left to right are Marc Vann, Carlton Jones, Gus Rentz, Suzanne Norris, Jeff Simmons and Gina Reynolds, who is the assistant director.\nLast night, the homeless Columbia County Commission met with the IDA, the popular Doyle Crews - the County Property Appraiser; Richard (yes, this is all one person) Powell - the County's financial advisor - external auditor - budget advisor - consultant to the internal auditor; the County and everybody's Attorney - Marlin Feagle and the high priced spread from Tallahassee, Attorney Greg Stewart of the Law Firm of NGN. The county website billed the meeting as a workshop.\nThe County's only further description of the meeting went this way: \"The topic for discussion relates to Tax Abatement which resulted from the \"Agreed Upon Procedures\" conducted by Richard Powell, C.P.A., Powell & Jones, C.P.A.'s.\"\nIt's likely that no one on planet earth would have a clue what the county is describing. The meeting lasted 55 minutes.\nUnknown to the public and possibly some of the people attending the workshop, the real purpose of the meeting was to establish guidelines for County tax abatements and develop the criteria for an economic development ordinance.\nIt was clearly business as usual, as Columbia County's long time County Manager, Dale Williams, described the County's role and the Board's responsibilities in granting economic incentives.\nCounty Manager Williams explained that the new ordinance would be in two parts. The first part would comply with the Florida statutes and the second part would be a separate memorandum of understanding, in which the county could put in what they felt was important.\nCounty Manager Williams explained that he \"tried to leave as much latitude with the board\" as possible.\nNeither the county staff, the county attorney, outside counsel, the IDA, or anybody, came up with any formula to keep the playing field even and treat everyone fairly.\nThe reputation of Columbia County as being Florida's premier \"good old boy\" County was further solidified when County Manager Williams told the gathering, \"Just because you meet conditions doesn't mean you get the abatement.\"\nThe County's well-known \"flying by the seat of its pants\" methodology was exemplified after the County Manager reported that the minimum investment to be considered for a tax abatement or an economic incentive was $250,000.\nLongtime resident, successful businessman, IDA board member and former county commission candidate, Marc Vann asked the County Manager, \"How did you decide on $250,000 as a good number?\"\nThe County Manager responded, \"It just seemed like a good number.\"\nTherein lies the problem\nDue diligence is a phrase that is foreign to Columbia County, a county that is locked into the ways of the past.\nThe county management's continuing inability to use computers, spread sheets, modern methods of cost analysis and research, and developing public policy with clearly defined guidelines, weighs like an anchor around the necks of the working families of the county, as the word spreads that while Columbia County may be a place suitable for the \"good old boys\" who are willing to grease a few palms or the slick and educated who can take advantage of a public management group that takes pride in being backward and locked into the ways of the past, real companies that are looking for an even playing field and a place where quality education is available for their children are staying away.\nIn 2004 the County unanimously passed an ordinance establishing a local economic development incentive program. The investment threshold in that ordinance is $500,000.\nThe 2004 ordinance is still on the books.\nDuring the public hearing, one of the three Caballeros, Commissioner Dewey Weaver, said at that time about the new ordinance, \"I believe it's a good opportunity to help our local business.\"\nCommissioner Jennifer Flynn told the Board: \"I want to caution you all to make sure we do this in a fair manner for all businesses and that's my concern about it.\"\nCommissioner Flynn was eventually run off the Board and out of town."} +{"text": "60s Style Divorce\nMarriage is a noose.\n—Miguel de Cervantes, Don Quixote de la Mancha\nAcrimonious divorce may be making a comeback thanks to the actions of enlightened state legislatures! This does not refer to the process of splitting a finite number of children and a finite number of dollars between two parties, a process that has always had the potential to be acrimonious. It refers to the simple act of ending the marriage. And that’s great news for the lawyers, the private investigators and the tabloids, all of which made big bucks out of the unhappiness of unhappily married couples when acrimonious divorce was the rule. The more prominent the divorcing pair, the bigger the bucks. It was a win win for all but the principals.\nUntil 1969, most state legislatures decreed that unhappily married couples should not be rid of one another until periods of time varying from a few months to more than one year had elapsed. In addition to imposing long waiting periods, in days gone by the person seeking the divorce was forced to make specific allegations about the misconduct of the other spouse, allegations that were often salacious, even more often fictional and in many states, absolutely essential if the divorce was to be granted. In those states the proof could be provided by a private investigator equipped with a camera and the ability to follow a wandering spouse into the confines of a hotel room and a non-spouse’s arms.\nUnfortunately for those profiting from the divorce business, the legal system slowly acquiesced to demands that it reform, recognizing the absurdity of forcing unhappy couples to make up reasons for bringing their marriages to an end. People thought reform made great good sense and what became known as no-fault divorces became the law of the land.\nThe first state to adopt no fault divorce was California under Ronald Reagan in 1969. The last state to adopt this common sense approach to marital discord was New York in 2010. Lengthy waiting periods and the need to fabricate reasons for the divorce became vestiges of a bygone era. If it all seemed too good to be true, it may prove to have been.\nNo-fault divorce was not intended to lessen the importance of marriage nor its beneficial effects. During the 2012 presidential campaign Rick Santorum explained the virtue of marriage at a campaign rally in Iowa. Addressing the crowd he said: “What two things, that if you do, will guarantee that you will not be in poverty in America? Number one, graduate from high school. Number two, get married. Before you have children. If you do those two things, you will be successful economically.” Although not articulated in that particular speech, it follows that to fully enjoy the prosperity that accompanies marriage, people should stay married and the best way to insure that happens is to make it harder to get divorced. And many states are now considering how to do that. Oklahoma is one of the leaders in that movement.\nOklahomans know the importance of marriage as demonstrated by the fact that, according to the Pew Research Organization, 10% of all ever-married adults in that state have had at least three spouses. That is twice the national average. Recognizing that, and because Oklahoma has the second highest divorce rate of any state in the country, (you can’t have had “at least three spouses” without having had at least two divorces) a state representative introduced a bill in early 2014 that would impose a six-month waiting period for most divorces. Another bill was introduced that would eliminate incompatibility as a ground for divorce. Although those two bills have not advanced, a third bill introduced a 90-day “cooling down period” following the filing of a divorce petition. That bill has passed the Senate but has not yet been considered in the House. Oklahoma is also considering extending the time between filing for divorce and getting a decree to six months. In Kansas a legislator has introduced a bill that would remove incompatibility as a ground for divorce. If incompatibility is no longer a ground for divorce, divorcing couples can once again come up with creative reasons for splitting up. In 2011 Arizona enacted a law that enables either divorcing spouse to extend the process by four months. In 2013 three North Carolina state senators introduced a bill they called the “Healthy Marriage Act” that would replace the existing one year waiting period from the time a proceeding is begun until a divorce is granted, to two years following the date a spouse give the other spouse written notice, duly notarized, that he or she intends to file for divorce at the end of the two year period. That has not yet been enacted.\nToday a steadily increasing number of people are cohabiting rather than marrying. According to the National Health Statistic Report in 1995 39% of women in the United States between the ages of 15-44 entered into marriage as their first union. In the 2006-2010 period that percentage decreased to 23%. Those cohabiting as their first unions went from 34% in 1995 to 48% in the later period. Thanks to the efforts of legislatures in states like Oklahoma and Kansas, these numbers are sure to increase. One can’t help but wonder if those trying to make it more difficult for unhappily married couples to get divorced know what they are doing. The answer is, probably not.\nThis work is licensed under a Creative Commons Attribution-Share Alike 3.0 License."} +{"text": "I cannot teleport as Zeus. After initially downloading the update and purchasing Zeus I tried him and found the teleport difficult.\nIt only comes out 1/10 times. I thought I as doing something wrong until I tried another game of PSBR at my friends house and it would come out instantly. I tried it with both my controllers and his and it worked every time.\nI have deleted the patch and dlc twice now and still cant teleport. He just explodes on himself or resets the animation when i try.\nAny suggestions or anyone else heard about this?\ni think jak took a pretty big hit in this patch.Ya i dont want to question how thorough your testing was before releasing the patched characters but as a jak main he definitly took some nerfs were he should of taken buffs. If you look at all of ratchets triangle buttons and then jaks,ratchets are all consitently better than jak in terms of AP gain, speed, (less start up time) tech, and feasability to hit in battle. Kat definitly needs more nerfs, her easy combos can dominate, and some moves aswell (mainly down circle). But yeah all in all after this patch isaac, ratchet, radec, and drake all still build meter andare better eqquipped as gunners in comparison to jak. Right now just about all he has going for him is his air mobility. I urge you to reconsider parts of the patch and go back and fix up jak a little.\nI know I've already made a topic of this, but I want to post it here as well, and see if aanyone else has that problem.\nI made a video about it, illustrating my issues with Fat Princess, take a look:\nHer Down + Square attack isn't working as it's supposed to do. Is this a bug or can it be fixed?\nyou should add crash bandicoot or spyro or another charcter from the parappa series like master onion or old snake do not seriously add another god of war charcter\nNerf kratos atk spd/recovery - with his range, its impossible to approach him with the slow characters, let alone counter with their slow attack animations.\nSly's electric ball is unpunishable with the same characters that have the ^above^ issues vs kratos. Same issue with his counter. Either slow the recovery or lessen the active frames or just simpy speed up everyone else.. most of the cast is too slow to approach AND attack before he can run away or activate another counter.\nSpyro: this game and Jak and Daxter are probably the best of the \"Zelda\"/adventure type of game on PS.\nCrash: everyone said it for a reason, why wouldn't u include him.\nSyphon Filter: Gabe Logan. Of all the gunslingers in PS, why you didn't include him IDK (unless its licensing issues)\nSolid Snake as well obviously (except they gave him to nintendo...so too late, I guess),\nGran Turismo driver: This game is supposed to be unlikely matchups for fun/comical/epic clash of legacies.\nLara Croft, duh! (marketing 101: sex sells. Instead, we have; Nariko - angry and aged looking near 34, Fat Princess - fat but amuzing and cute pre-cake, Kat - gibberish speaking teen, but a good addition IMO because she is a pretty female heroine and was also designed for an international welcome, hence \"languageless,\" of royalty but serves the people, shrouded in mystery and unknown powers.\nFinal Fantasy: Cloud because 7 is the most popular, or Squall because he has the arguably the most popular weapon - possibly second only to laser swords, but maybe not. Tifa: it's rare for a character to reach legendary status akin to Chun-Li.\nSilent Hill, Parasite Eve, Resident Evil: many reasons for any of these series' characters to be added, even if from just one of them. FIRST is marketing 101: plenty of excellent female characters. Second, characters from the suspense genre are completely absent. Third, they made a movie about Silent Hill AND Resident Evil. My personal reason: Jill was great in her original form, and they have ruined her by making a long, blonde, ponytail-haired version of her in a tight one-piece battlesuit.\nJust a little note to the people who think Kratos and Sly have been nerfed enough, there's this saying from one of the most popular and fastest growing contemporary games: \"nerf Irelia\"\nIrelia and Alistar have gone through numerous, numerous, NUMEROUS nerfs back to back nerfs before they were finally considered balanced. If you think you have nerfed them enough, maybe you haven't."} +{"text": "People often ask me how I manage to remain so well informed. (Full disclosure: one person did ask me this some time ago.) This is my secret. Firstly, when reading the newspaper I skip over all of the unimportant stuff like Syria, Lebanon, and the Middle East, etc., in search of those items that are of real importance to us.\nSome examples below:\nWhen watching TV, I do likewise and with the exception of America’s Got No Talent, I watch very educational programs such as Through the Wormhole narrated by Morgan Freeman. Whenever I invite my resident TV critic to watch this show with me, the usual response is to slam the door closed and demand that I turn the volume down so she doesn’t hear it in the rest of the house. I will offer some examples of what I have learned from these shows as well.\nWhy do I skip all the fascinating news about the battles in the Mideast? Talk to any police officer and they will tell you that the most difficult call they usually receive is one involving a domestic dispute. They walk into a situation not knowing what to expect, unable to determine who was at fault, and try to resolve the situation, usually without success.\nWe as a nation attempt to do the same thing.We march into a country that we know little about and try to unscramble their differences usually based on how the various factions choose to worship their various gods. Again, these efforts are usually unsuccessful and cost many American lives. I truly believe we have more problems at home to address.\nWhat do I find so fascinating in the newspapers that others seem to miss? Today I read an article that claims that people who are suffering from financial stress tend to lose the equivalent of 13 IQ points. This was the result of a scientific study. Of course financial stress leads to headaches as well.\nOn the same page is a warning from Tylenol advising people to stop taking too much of their popular drug because it may cause sudden liver failure. Oh well!\nOld retired football players, who made gazillions of dollars while they were playing, are now demanding extra compensation for the injuries they received in the NFL. Like they didn’t know that they might get hurt playing football. Come on!\nThere was also an article on memory loss related to age, but I forget what it said.\nNow, what have I learned by watching TV? Firstly Morgan Freeman had a show demonstrating how it might be possible for hackers to invade our minds eventually and determine what we are thinking at any given point. The theory is that the brain is primarily an electronic device with millions of little signals being sent from one place to the other.\nIf someone is able to tap into these signals, heaven knows what they might be able to determine. Of course my wife has been doing this for years. Another theory is that with all of the hundreds of social media links available, that we might someday create a master global brain, which is a combination of all of these, and it will no longer be necessary for us to think on our own, because it has already been done for us by someone else.\nTHIS JUST IN — Researchers say that they were able to use one person’s brain signals to control the motions of someone else. The first experiment in brain-to-brain interfaces involved using rat brains. Knowing that we humans are somewhat similar to rats (as a matter of fact someone called me a rat at our last council meeting) this becomes really meaningful. See if for yourself at www.gadgetynews.com/cyborg-rat-ratbrain-controlled-robot-retains-rodent-personality/\nStay tuned for more at 11 p.m.\nNow, do you see what I mean? Would you want to go through life without knowing some of these things? Not me. (The Morgan Freeman shows are available online. Google it.) In my last article I made reference to a letter given to Gov. Scott complaining about the horribly poor service given at the license renewal office that I went to. I did receive a response from one of his staff members who has promised to look into the issue.\nI am now awaiting more information.\nErnie may be reached at email@example.com"} +{"text": "If I were ever to design a personal coat of arms (you know, the kind that knights of old had on their shields) I think it would have to have a hummingbird in flight on a blue and pink checkerboard field with a KitchenAid mixer on the left and a Bernina sewing machine on the right. That would encompass my favorite colors, my favorite activities, and my mascot.\nI love hummingbirds. They are breathtaking little miracles that quicken my heart whenever I see one, hovering over a flower or zooming across the yard. But that is not the only reason I'd choose one as my personal mascot. I see a bit of the hummingbird in me. Not that I toil from sun up to sun down to take in enough calories to sustain my meager body weight. (that, cough cough, is not an issue for me)\nI am like a hummingbird in that I flitter. I flit from project to project, staying with one only long enough to generate a substantial amount of mess, then abandoning it as I find something new to try on a blog, in a catalog, in a store, or on Pinterest. I love the giddy, fizzy feeling of dreaming up a new project, planning for it, purchasing supplies, all the while envisioning how wonderful the finished project will be. I can just picture how smoothly and neatly it will all come together. Then when the inevitable snag or hiccup arrises, I'm irritated (sometimes to the point of wadding it up and throwing it across the room) and quickly move the project from the active work space over to the tottering \"to finish up later\" pile, replacing it with whatever seems the most pressing or interesting at the moment.\nFor the last 3 years I've made it my New Year's goal to finish up projects before starting anything new. Specifically I have vowed to finish up the 4 quilt tops that lie in folded and forgotten ignominy beneath my work table in various states of \"so close but not quite done.\" And how have those goals worked out for me? I think the fact that I can transfer the same goals onto the next year's Goals page in my journal without changing a word shows that something's not working.\nPerhaps I've just taken on tasks that are too big and my interest wanes before I complete the project. More likely, though, the problem lies in my attention span. I can only focus on one thing for so long before I'm distracted (Squirrel!) by something else (Oooooh, shiny!) and want to turn my attention (what's for lunch?) to the next thing.\nHence the hummingbird.\nThe other thing I have in common with hummingbirds is my love for sugar. I know it's not awesome for me and usually I try to avoid it. But every once in a while I have to give in to the craving and bake something sweet. And hopefully I'm not distracted while I'm (there's a new Castle on this week?) reading the recipe so I don't forget something crucial. Like flour. Or salt. Or sugar. Not saying that's ever happened, just saying it's a possibility. (And those of you who can think of examples don't need to share them in the comments.)\nMolasses cookies are always welcome in our house and these received an especially enthusiastic welcome. I'm sure the carb-deprivation contributed to the rave reviews, but even those friends who are still eating carbs enjoyed them and gave them big thumbs up. Soft, not too spicy, and they stayed fresh in the cookie jar for several days. I think this recipe is a keeper.\nMolasses Ginger Crinkles\n- adapted from America's Best Recipes\nmakes about 4 dozen\n1 cup sugar (I used organic cane sugar)\n1/2 cup butter\n3 Tbsp coconut oil\n1/4 cup molasses\n1 cup all-purpose flour\n1 cup white whole wheat flour\n2 tsp baking soda\n1/2 tsp salt\n1 tsp ground ginger\n1 tsp ground cinnamon\n1- Preheat oven to 350 deg. F.\n2- In a medium bowl, combine the sugar, butter, coconut oil, and egg. Beat well with an electric mixer at medium speed. Add the molasses and beat well.\n3- In a small bowl whisk together the flours, baking soda, salt, ginger, and cinnamon.\n4- Add the flour mixture to the sugar mixture and stir to combine.\n5- Shape dough into 1-inch balls. Place on ungreased cookie sheets, about 3 inches apart. The cookies will spread as they bake, so leave space.\n6- Bake at 350 deg. for 8-10 minutes, till the centers are just set. Cool the cookies on wire racks."} +{"text": "Results 1 to 3 of 3\nApril 8th, 2011, 11:25 AM #1\n- Join Date\n- Mar 2011\nFirst time at CTI, Mar 29-Apr 5 - Review\nThe hotel grounds are maintained beautifully. The staff move at a Jamaican pace (i.e. get on island time, mon!) but are friendly and will make sure you have whatever you need and want.\nBe prepared for the 2-hour ride from Montego Bay. We had read a lot of reviews, so we were. It would be a rather nasty surprise if you weren't ready for it.\nArrival at Montego Bay, customs, a couple of beers at the lounge, and the bus ride were all uneventful. Check-in was a breeze (with cool face towels and drinks quickly in hand), and our room was ready when we arrived at 2:45 or 3:00.\nThe room was exactly what we expected. The bed was on the hard side, but comfortable. Note: in the Deluxe Garden Room, there is only a standing shower, no bathtub. And if you're a light sleeper, you might want earplugs. There are creatures we named the Jamaican Nocturnal Screaming Frogs. They're LOUD, and PERSISTENT, lol! No noticable road noise at all.\nThe restaurants were all great. Service was very slow in 8 Rivers, but the food was excellent. I'm embarrassed to say I gnawed the bones of my lamb, it was so good. We ate at Bayside twice. I'm not a hugely romantic person, but the view and atmosphere, right there over the water, was just amazing. The food was very good, and the courses came much more quickly here. I think we only at at Veranda once. It was fine. Not particularly memorable. We ate at the breakfast buffet at Patio every morning, and it was good. You can always get made-to-order eggs or omelettes if you don't like what the buffet has to offer.\nWe spent most of our days on Tower Isle. We LOVED it! We would just sort of lay around and half-doze or sunbathe until lunchtime. After lunch, things tended to get a little busier and more social. They set up chafing dishes every day and brought lunch over. Lunch was a little hit-or-miss, always edible, but not always spectacular. The boyfriend was a big fan of jerk burgers from the Poolside Grill, so we went back over there a couple of times for lunch. I enjoyed the jerk chicken sandwiches and the calamari I had there (also, if you get a craving for 3am french fries, THAT is the place to go!). Many thanks to our bartenders on the island (Pasanga, Terry, Kimoni, Roberto...and I know I'm leaving so many out!), and MANY MANY thanks to Captain Jack Sparrow (aka Gary) for ferrying us tirelessly between the resort's dock and the island, and for singing to us and just generally adding to the fun!\nWe met some WONDERFUL new friends on Tower Isle!!! Mike and Terra, Jodi and Rob, Michelle and Tommy, Becky and Greg, Sara and Paul, we already miss you! It was just a great vibe, and great people made it soooo much fun. Some days were quieter on the island, some rowdier (with shots and such), but it was always fun. One group (of what we thought of as \"newbies\" to the island) got completely out of hand and ruined the fun one afternoon (just too drunk and stupid - not worth relating details), but I don't hold one dumb episode against the resort. There are irresponsible people everywhere.\nWe hit the spa for massages one morning and were glad we did so. The 80-min couples massages were great. Though they didn't offer deep tissue (I like mine a little rougher than Swedish) with the couples massage, they were still enjoyable.\nWe didn't do many activities; we're not fans of schedules or timelines on vacation. From other guests and our one experience (catamaran cruise cancelled, then rescheduled from another resort so we would have to get on a bus, which we didn't want to do), we know the watersports/excursions are a little hit or miss, depending on weather and perhaps other factors. Just get on island time, mon, know that things can change, be a bit flexible, and you'll be fine. It's Irie!\nThe only evening entertainment we went to was the Monday night Barefoot Beach Party. The dancers, acrobats, and fire limbo guy were great. The buffet meal that was set up was very good, too, and it was nice to eat with our toes in the sand. Drink service was a bit slow that night, but again, it's irie, just kick back, enjoy the entertainment, and the drinks will soon come.\nOne note about the drinks: I've seen many reviews on all-inclusives that state the drinks were a bit weak or watered down. They are NOT weak here. I actually had to order weak drinks much of the time, as we got our first drinks on the island at 10:00 or 10:30, and I could NOT make it through the day on the full-strength versions (and I'm a drinker). And you do NOT have to do any Bob Marleys! I don't care what people say, those shots *are* pretty, but they taste like some kind of poisonous, alcoholic cough syrup - BLECH!\nWe had an excellent vacation and are very glad we ended up at CTI! (We booked the secret rendezvous, so we could have ended up at any of the four.) I recommend the resort, and we hope to go back for another visit sometime.\nApril 9th, 2011, 11:09 AM #2\n- Join Date\n- Jan 2011\nNice review....good times had by all!!\nLove the swim suit photo!!\nDan and Sue\nApril 10th, 2011, 07:28 PM #3\n- Join Date\n- Mar 2011\nGood to \"see\" you here, Sue! Yes, definitely a good time had by all. I was pricing trips again already on Friday, lol. I can't afford to go any time soon, and Q's deployment stuff is all up in the air for a while, so who knows when we'll get to go back. But dreaming is free."} +{"text": "Social and Cruise History: Sinking feeling: unease about Titanic II plan…\nI agree with Hazel Gaynor’s piece in the Irish Examiner. The “Titanic II” is just another media gimmick. No one in their right mind is going to sail across the Atlantic on some seven day recreation of a pre-World War I Disney-ride. Imagine being aboard an old style ship divided into classes dressed in uncomfortable turn of the last century clothes. It you look at the menus for the RMS Titanic they reflect the times. The macabre tragedy surrounding the RMS Titanic is similar to recreating the American space shuttle, Challenger, that exploded and killed all seven astronauts. Do you honestly want to spend a week on the “Challenger” or the old fashioned RMS Titanic? Talk about creepiness…\nCourtesy of the Irish Examiner:\nAre plans to recreate the 1912 voyage a homage to history, or just insensitive, asks Hazel Gaynor\nBy Hazel Gaynor\nEARLIER this year, Clive Palmer, Australian mining mogul and billionaire, held a glitzy press conference in New York to announce his plans to build Titanic II, the flagship of his shipping company, Blue Star Line.\nThe ship will be built in China and will set sail in 2016. Reaction was incredulity and ridicule — yet 40,000 people have still applied for tickets for the maiden voyage. Offers of $1m have reportedly been made for first-class cabins.\nBuilding Titanic II, which will recreate Titanic’s maiden voyage, is viewed as insensitive, courting disaster, and a mockery of the memory of those who died this month in 1912.\nPublic rooms are more like film sets. As for the accommodations, is anyone going to sleep in these narrow style bunk beds? Who would go Third Class – only a masochist!\nDave Fredericks, a descendant of a Titanic survivor from Southampton, is supporting a petition to block Titanic II.\n“When asked why he is building Titanic II, Clive Palmer arrogantly responds ‘because I can’. I say the question should not be ‘why he is building it?’, but, more, ‘should he be building it?’ And, respectfully and morally, the answer to that question must be no,” Fredericks says.\nMichael Molloy, from the Addergoole Titanic Society, is open-minded. “For April 2012, a local group of enthusiasts built a large scale model of Titanic and launched it on Loch Conn, so, actually, Lahardane labour built Titanic II in the memory of the Addergoole 14. “It would be very nostalgic, and fitting, if relatives of those on RMS Titanic were given the opportunity to travel as a group on one of the Titanic II voyages. There would be stories to tell then,” Molloy says.\nHelen Benziger, great granddaughter of Margaret ‘The Unsinkable Molly’ Brown, agrees. “I will be on the maiden voyage of Titanic II. I am hoping for the same cabin as my great grandmother. It would be amazing to finish the voyage for her,” Benziger says.\nThird Class dining room on the “new” Titanic…\nA Titanic II would be of huge interest, a fascinating opportunity to revisit history. “Passengers on, and visitors to, Titanic II will have a historical interest in the ship, in the same way as those who visit ground zero or the green fields of France,” says Michael Martin, who runs the Titanic trail tour in Cobh.\n“It is not disrespectful to do that and we don’t denigrate people for revisiting those places of historical tragedies. Titanic was an immense tragedy, but that doesn’t ring-fence it from being of historical interest.”\nHistorical interest aside, is it moral to build a replica of a ship that is synonymous with such awful tragedy?\n“Questions of morality were raised about the Balmoral as it recreated Titanic’s maiden voyage to mark the centenary,” says Martin.\n“For the relatives, it was very meaningful for them to recreate the journey. In terms of using the Titanic name, there is a naval tradition to use ships’ names on multiple occasions, despite sinkings and loss of life.”\nThat Titanic II will be built in China, and not in Belfast, like the original, has been a matter of debate.\nA spokesperson for Titanic Belfast says. “While there are many great reasons to be proud of our ship-building heritage, Titanic Belfast is utmost respectful and mindful of the loss of life on RMS Titanic. As the authentic home of Titanic, it would be natural to expect Titanic II to dock in Belfast. It would not be a case of the Titanic coming back, more so a near-replica of RMS Titanic being built to sail in its name. Titanic Belfast would naturally welcome its arrival into Belfast.”\nIt remains to be seen whether Palmer’s ambitious project will come to fruition. After all, he is a man who doesn’t have the best maritime track-record, with one of his luxury super-yachts, worth a reported $5.3m, almost sinking off Queensland’s Gold Coast last week.\nWhatever your own views on Titanic II, even die-hard enthusiasts should prepare to be underwhelmed. “Titanic would be a very small ship by today’s standards,” says Martin. “Some vessels which now come into Cobh harbour are three times the size.”\n*Hazel Gaynor’s Titanic novel, The Girl Who Came Home, is available on the Amazon Kindle store.\nFor more on Titanic II, CLICK HERE"} +{"text": "Campaign of the Month: January 2013\nDANgerous Kalamar 4\nThe hobgoblin values of strength and honor hold true for the Krangi, and their attitudes about themselves and others are founded upon these principles. However, the Krangi also believe that they are the only creatures that possess honor, and that every material possession rightfully belongs to them. This is not manifested as greed. The Krangi do not want to own every material possession, but those that they do want they believe are theirs. The Krangi value of strength also dictates that violence is an acceptable solution to every problem. If a Krangi is able to kill someone, he has power over their most important possession: their life. Without their life, a Krangi cannot have strength and cannot gain honor, so controlling another’s life grants control over every other aspect of their life. Thus, demonstrating the power to kill through violence grants the stronger Krangi complete control over the weaker one. In Krangi society, killing a member of a lower caste, if a sufficient reason can be provided, is not a crime.\nAs a byproduct of their devotion to physical strength, the Krangi are a very pragmatic people. If one Krangi is better than another at a particular task, the more proficient Krangi should perform that task. Finally, beauty is a concept that is foreign to the Krangi. Things are designed for a purpose, and anything that does not directly serve that purpose is extraneous and a waste of time, materials, or effort.\nTheir skin is usually a light brown or maroon coloring; yellow or tan skin is uncommon. Krangi faces have a goblinoid resemblance, but are squarer than the other hobgoblin subraces. The Krangi have two small tusks that extend from their lower jaw. At their longest, these tusks extend up to the broad, flat nose near the center of the face. The nose is usually a light gray or bluish gray color, but can be as dark as navy blue.\nKrangi facial hair is confined almost entirely to the chin, where it grows thick and bushy. Like their facial hair, the Krangi hair grows long and thick, and is usually very dark. This hair is almost always braided into one or two long strands, and it hugs the shape of the head closely. Krangi eyes tend towards the lighter end of the spectrum: tan, gold, yellow and light brown. The pupil is usually black, but occasionally is red. These “red eyes” are considered by the Krangi to be blessed at birth, and are expected to assume positions of leadership quickly.\nKrangi females are very similar to their male counterparts, with only a few exceptions. They generally have the same skin and hair coloration, but they do not possess facial hair, and their body hair is less prominent.\nMale 5'3\" +2d12 (inches) 140 lbs x (2d4) lbs\nFemale 5' +2d12 (inches) 125 lbs x (2d4) lbs\nAdulthood: Middle Age: Old: Venerable: Maximum:\n22 yrs 80 yrs 120 yrs 160 yrs +3d20 yrs\nDue to their aggressive warmongering, the Krangi have many enemies, but they do understand the usefulness of peace. The Krangi are content to war with anyone, but will make peace with just about anyone (with a few notable exceptions), so at any given time, they will be fighting or preparing to fight about half of their neighbors, and will be at peace with the other half. The Krangi’s main purpose foe establishing peace is trade. The humans have demonstrated that they are willing to negotiate, trade, and make peace with the Krangi, and this makes them less offensive than the hated elves, or worse, the dwarves. Krangi have little contact with other gnomes or halflings. The Krangi are much more amenable to humanoids. Just about any Medium humanoid is welcome in Krangi society, provided that they abide by the laws and social regulations.\nThe largest concentration of Krangi lies in the Kingdom of Norga-Krangrel. It is still the goal of the Krangi to reconquer the lands of Kruk-Ma-Kali (an ancient hobgoblin king) and the current kruk, Krokal-Marg, frequently declares war on the kingdom’s neighbors to the north. They speak the Hobgoblin language and at least one other, since they must communicate with both humanoids and civilized races. Krangi generally speak all languages (except Hobgoblin) with an accent, but it is subtle and hard to detect.\nThe Church of Endless Night is the state sponsored religion, but all lawful evil religions have a place, albeit an inferior one. The Krangi do not allow any faiths that are not of lawful evil alignment. They watch clerics of other faiths closely, and they often arrest the clerics for little or no reason. Those found establishing congregations of other gods are arrested and executed, their temples are destroyed and their holy symbols defaced. The Krangi arrest any parishioners as well, though they may save themselves from executing by converting. Despite this, most of the other evil faiths and several of the neutral ones have an underground congregation or two. Attendance is always low, however, both because of the danger it presents and the lawful evil tendencies of the Krangi population.\nJust about every one of the core classes is present in Krangi society. Clerics and fighters are extremely common, and monks and sorcerers are also popular, less so the gladiator, infiltrator, ranger, rogue or shaman. Barbarians, druids and wizards are rare. Of all the classes, only the bard, Basiran dancer, paladin and spellsinger are never seen in Krangi society. While it is theoretically possible for a Krangi to follow most of these career paths, no instance has ever been documented."} +{"text": "In French \"Fait Divers\" is an expression not too easy to translate if one wants to keep its Gallic flavor. It is used when, for example, newspapers report strange events that have no relevance to the greater design such as a love triangle murder or a specific museum robbery. Not quite \"miscellaneous\" but somewhere along the line.\nThis is the best way to qualify the recent faux pas of French diplomacy, \"diplomacy\" used in a charitable way when France's foreign policy is concerned.\nThe item is that the French ambassador in Caracas, Pierre-Jean Vandoorne, did meet with Rodrigo Granda sometime in April 2004. This Granda is of course the \"foreign minister\" of the FARC who was arrested last December in Caracas, whisked to Cucuta, and became the cause of the latest diplomatic rift between Bogotá and Caracas. It is also the same Granda that walked around Venezuela as if nothing, who became a Venezuelan citizen \"very easily\" and just on time to vote on August 15 (for Chavez it is presumed). It is also the Granda that has just being implicated in the kidnapping and murder of the daughter of a Paraguayan ex-president. A very nice fellow this Granda, to the point that Colombia is already willing to send him to Paraguay to stand trial.\nSo why would Monsieur Vandoorne meet with Granda? In Venezuelan territory nevertheless!\nWell, it is a long story of Gallic hubris. It turns out that a political rising star of Colombia, Ingrid Betancourt, former presidential candidate, with a nice sounding French name, happened to have resided in France in exile, married a French man, wrote in French, and was thus the toast of Paris salons who suffer from quite an inferiority complex in front of the advances of English in the Wide Wild World. I cannot say much about Mrs. Betancourt but I suspect that she was smart enough to use the French. Unfortunately for her she got kidnapped during her electoral campaign, a terrible and unfair situation that she is still enduring after three years.\nBut the French will have none of it and they have started a \"free Ingrid\" campaign. President Chirac has become personally involved, asking Chavez and Castro to help. But I suspect that this has been rather counterproductive since it gave only more bargaining power to whoever is holding Ingrid Betancourt. So, it seems that Mr. Vandoorne received the instructions to try to negotiate something in Caracas, with no one less than Granda...\nI feel for the French ambassador. 2004 did not end very well for him as Mr. Muselier, the French foreign secretary made some rather unsuitable declarations backing the authoritarian state that is slowly but surely being installed in Venezuela. But we all know that French diplomacy will balk at nothing to peddle French goods. And boy, are they trying to sell stuff to Chavez!!! After all, Chavez is kicking out the US and surely France should step in less than China, or anyone else, takes too much of a bite.\nAnd now this! How could Monsieur Vandoorne negotiate with Granda in Caracas? At the French embassy no less!!!!!!!!! Aren't there discrete restaurants where they could have met? And without even the agreement of the Colombian government!?!?! Though Betancourt's husband states that Uribe blocked the negotiations.\nSo? Is this the Granda 2 affair? Will Chavez blame Uribe for knowing that Granda was in Caracas having tea at the embassy?\nI think that Chavez, and now the French, have a lot more to explain on Granda. More than a fait divers?\nAnd the French should also explain how come their foreign policy is so sloppy, so mercenary, plagued with so many free agents (the husband of Ingrid is not the first Frenchman doing \"independent\" negotiations that could dangerously implicate the French government in business where it would be well advised to keep its distances, as it happened recently in an Iraq hostage negotiation).\nPS: added two days later. It seems that the Colombian government did know something of the negotiations. Of course, like in all such cases who knew and what will reamin murky for ever and ever. But conveniently for France, and Parisian newspapers, a new scandal that forced the resignation of the finance minister comes right on time. After all, this is a Parisian affair, and Ingrid's fate will again depend on the salons activities of Paris."} +{"text": "Thursday, October 25, 2012\nIf there's one thing that Quail Ridge Books excels at--and there are many things it does right--it's the way in which it showcases titles the staff really, really, really wants you to read. Sure, \"Staff Picks\" are almost de rigueur in independent bookstores these days, but there's just something about the spirit in which Quail Ridge puts its books front and center that makes it stand out from most of the other stores I've visited on this Fobbit book tour.\nI was a half hour early to my reading at the store in Raleigh, North Carolina last night and so I wandered the stacks, happy as a nose in a perfume shop. In addition to the usual bestseller and new arrivals displays near the front door, I also found a table devoted to political books (biographies about the Obamas, screeds from political talk-show tonguemeisters, etc.). It was neatly divided in half into \"Red Books\" and \"Blue Books.\" Clever. Another tier of shelves displayed books by authors who were scheduled for upcoming appearances at the store--a nice way of building buzz before the event and encouraging customers to buy and read the book before the big night. Deeper in the store, there was an entire section devoted to North Carolina writers, and I was thrilled to see a very nice display of literary magazines--including The Greensboro Review where yours truly had one of his first short stories published back in the early 90s.\nNancy Olson and her staff are to be commended for cultivating a spirit of Book Love at Quail Ridge. There is a fierce independence in the atmosphere of the store which sends a message to e-tailers and big-box bookstores: \"We love words and the people who make them.\" Books are not a number or an algorithm, they are warm and alive and served with as much care and pride as the tastiest plate of Carolina bar-b-que.\nQuail Ridge also has a very nice reading space for visiting authors. A large area was cleared in the middle of the store (the middle! not off to the side near the children's book section) and I was given a podium with a crystal-clear microphone so everyone could hear me read about what it was like to go to war \"with a duffel bag full of Dickens\" and emerge on the other side of the experience with a novel of my own.\nFor the most part, audiences at the Fobbit readings have been populated with e-friends I've \"known\" for years but never met. Last night, there was an especially large group of acquaintances from Facebook, Twitter and other social media communities who'd been supporting me for years. I was thrilled to finally meet Holly Goddard Jones (author of the short-story collection Girl Trouble and the forthcoming novel The Next Time You See Me--which I straightaway pre-ordered and I suggest you do the same, pronto) and Mary Lambeth Moore (author of the novel Sleeping with Patty Hearst). Also on hand were two members of my Book Pregnant posse: Barbara Claypole White (The Unfinished Garden) and Anne Clinard Barnhill (At the Mercy of the Queen: A Novel of Anne Boleyn). Barbara, Anne and I met for the first time last weekend at the South Carolina Writers Workshop where we were joined by fellow Book Pregnant members Lydia Netzer (Shine Shine Shine) and Brenda Bevan Remmes. Of the quintet, Brenda is the only one who is still \"with book child.\" The blessed event for her novel, Miss Ellie's Cafe, still lies somewhere in the future.\nAll in all, it was a great feeling to stand there at the microphone and look out to see all those smiling, supportive, friendly faces. Thanks, everyone, for coming out to hear me talk about Fobbit.\nPicking my Book Tour Bookstore Book was tough--not because I couldn't find something to suit my taste or pique my interest, but because I had to keep my promise to only buy one book at each stop (my luggage can't handle more than that). One of the books that Quail Ridge so insistently put \"in my face\" last night was Misfit, the new novel by Adam Braver from Tin House Books. The publisher's jacket copy tells us the book \"centers on the last weekend of Monroe’s life, which she spent at Frank Sinatra’s resort, the Cal Neva Lodge, in Lake Tahoe. Melding facts with fiction, Braver takes moments throughout Monroe’s life—her childhood, her marriages with Joe DiMaggio and Arthur Miller, her studies with Lee Strasberg at the Actors Studio, and her role in The Misfits, the film Miller wrote for her—and explores how they informed her tragic end.\" I'm a huge fan of Braver's work (his novel-in-stories Mr. Lincoln's Wars was one of the best books--fiction or non-fiction--I've ever read about the iconic president). Braver does some very smart blending of fact and fiction to create fresh portraits of historic figures. Think E. L. Doctorow, but fleshier. I can't wait to read this latest work about Marilyn. And, I hope you'll agree with me that the cover for Misfit is spot-on perfect."} +{"text": "Wisconsin's Governor: Recall Drive Is About Unions Seeking 'Power'\nMany of Wisconsin Gov. Scott Walker's citizens may be signing petitions for his recall in reaction to the battle he led earlier in the year to weaken his state's public-employee unions.\nBut Walker doesn't appear to be backing off one inch from his stance that he did what was right for his state.\nHe accused his political foes of really being after \"power\" while presumably camouflaging their true intent with platitudes about workers' rights, among other things.\nUnions are in particular coming after him, Walker said, because the new budget law he and the the Republican-controlled state legislature in Madison enacted, gave workers a choice about whether or not to belong to a union.\nMICHEL: It's no secret that there's national attention being paid to Wisconsin, in part because of these efforts and because of this issue. And I'm interested in what role you think is appropriate for interest groups outside of Wisconsin, both those that support you and those that oppose you.\nGOV. WALKER: Well, I mean, the appropriateness is interesting, because obviously, I can say it, but there's no way to enforce it... It's going to happen no matter what. We saw, in the Senate race, most Republican senators were outspent at least two-to-one, in some cases three-to-one, by all the parties that came in from both throughout the state and across the country.\nI believe if they get – I believe, actually, if they get the signatures, it'll largely – because these national, big-government unions put the money behind that. I would imagine they'll spend the tens of millions – and if it was over $40 million for the Senate recalls, that they may be – well be $70 (million) or $80 million there.\nMICHEL: Well, there are conservative groups supporting you.\nGOV. WALKER: And I think more people look at that and say, that's absurd. You know, I spent 13 million (dollars) running for governor; you're going to see multiple times that amount. You're going to see groups coming in from outside of our state who want to influence this race – I think (it's) more about power, because let's remember, the real reason the unions nationally are involved in this isn't because of pitch in their health care contributions or workers' rights or anything else; the real reason is because we also, as part of our reforms, gave every worker in our state the right to choose whether or not he or she wants to be a part of the union and no longer have their dues forcibly removed from their payroll. That's what it's about.\nMICHEL: OK, but so – there are groups supporting you, too, Governor – in fairness, there are outside groups that are also interested in this for their own reasons.\nGOV. WALKER: Sure, like every election.\nGOV. WALKER: It has, like – but they wouldn't be here if the national unions were forcing a recall. I mean, I think most of your listeners across America probably are scratching their heads on the recall to begin with, because most states have recalls in, say, misconduct in office, some sort of thing like that that triggers it, not just, I disagree or agree with a piece of legislation.\nBut this is really about power. The \"recall Scott Walker\" website was actually started November 2010. So anyone who thinks this wasn't – you know, that somehow, this is organic movement that just popped up – the reality is, the person who started that recall site started it last year, two months before I took office.\nIf Walker was cynical about the motives behind the recall election, Michel reminded him that many of his political opponents remained cynical about the way he pushed through the legislation that curtailed most collective-bargaining rights for public-worker unions.\nWhy not ask the unions to negotiate givebacks? she asked. And what about the fact that some unions, like police and fire, weren't included in the legislation that reduced bargaining rights for state and local government employees? Was it a divide-and-conquer strategy as some in organized labor suspected?\nWalker said with 1,700 municipalities in Wisconsin, there were just too many local bargaining units to make those kind of negotiations work. Meanwhile, public safety workers were exempted because if they had walked off the job as other workers did earlier in the year, lives could have been endangered.\nMichel also asked Walker to respond to the oft-repeated charge by his opponents that his campaign for governor was something of a bait and switch. They accuse him of taking actions on becoming governor he never campaigned on when he ran for governor.\nGOV. WALKER: \"Well, clearly, as folks in southeastern Wisconsin know, where I was the county executive, even my hardened opponents, when I was in county government, all have said publicly nobody should be surprised, because I talked about this for eight years as a county executive.\n\"And even in the campaign – I mean, I literally ran an ad where I talked about asking public employees to pay 5 and 12 percent for pension and health insurance premiums, and said I'd apply it to myself. Actually, I pay a higher amount than other public employees do on the pension match.\""} +{"text": "Meanwhile, USDA reported lower soybean and rice acreage from 2002 and virtually unchanged corn plantings in the June 30 Planted Acreage Report released by the National Agricultural Statistics Service today.\nAll cotton plantings for 2003 are expected to total 13.9 million acres, down fractionally from last year and from the 14.253 million acres estimated in USDA’s March Prospective Plantings Estimate.\nAccording to surveys conducted by USDA the first two weeks of June, upland cotton producers planted 13.7 million acres this year, virtually unchanged from 2002. Acreage planted to American Pima or extra long staple cotton is estimated at 176,000 acres, down 28 percent from a year ago.\nMany growers east of the Mississippi River revised their spring intentions and devoted less acreage to cotton. Persistent wet weather across the south delayed seedings, forcing growers to seed alternative crops. Cotton acreage dropped slightly from 2002 in Arkansas, Tennessee and Mississippi, while rising slightly in Missouri and Louisiana.\nUSDA said Kansas increased its cotton acreage 56 percent to 125,000 acres this year, up from 80,000 acres in 2002. Texas and California growers increased their upland cotton acreage from a year ago after a rather successful 2002 production season.\nU.S. rice acreage for 2003 came in at 2.992 million acres, down 7.6 percent from last year’s 3.24 million acres. Rice acreage declined in every state except Mississippi, which remained unchanged from last year at 255,000 acres.\nArkansas acreage was reported at 1.446 million acres, up from March estimates of 1.422 million acres but down from last year’s 1.515 million acres; California, dropped to 470,000 acres, down 60,000 acres from March and 63,000 acres from 2002; Louisiana acreage is unchanged from March estimates of 470,000 acres but is down from last year’s 540,000 acres; Missouri held steady from March estimates of 170,000 acres, but is down from 2002’s 190,000 acres; and Texas declined to 181,000 acres from March estimates of 191,000 acres and last year’s 206,000 acres.\nCorn planted area for all purposes is estimated at 79.1 million acres, virtually unchanged from 2002 but 4 percent above 2001. Much needed precipitation was received in late April and early May across the Corn Belt which helped relieve long-term moisture deficits.\nHowever, the early May rainfall slowed fieldwork and delayed some producers from getting their corn crop planted. Farmers reported that 95 percent of the corn acreage had been planted at the time of the survey interview, which is slightly below the average for the past 10 years.\nCorn plantings in Arkansas reached 350,000 acres, up from 270,000 acres in 2002. Louisiana dropped its acreage from 580,000 acres to 500,000 acres, while Mississippi stayed at last year’s 550,000 acres.\nThe 2003 soybean planted area is estimated at 73.7 million acres, down 105,000 acres from last year, and if realized, the lowest planted area since 1998. This is the third consecutive year that soybean planted acres have declined in the United States.\nThe planted acreage is up 471,000 acres from March. Persistent wet weather forced growers along the Southeast and along the Atlantic Coastal Plain to switch to soybeans from their earlier cotton and corn intentions. Growers in North Dakota and Minnesota planted less spring wheat and more soybeans.\nAll wheat planted area is estimated at 60.9 million acres, up 1 percent from 2002. Harvested area is expected to total 52.7 million acres, up 15 percent from last year. The 2003 winter wheat planted area, at 44.3 million acres, is 6 percent above last year, but virtually unchanged from the previous estimate. Of this total, about 32.0 million acres are Hard Red Winter, 8.1 million acres Soft Red Winter, and 4.3 million acres White Winter.\nAcreage planted to other spring wheat for 2003 is estimated at 13.8 million, down 12 percent from 2002. Of this total, about 13.0 million acres are Hard Red Spring wheat. The Durum planted area for 2003 is estimated at 2.80 million acres, down 4 percent from last year."} +{"text": "Sites You Didn’t Know You Needed\nby Karen Bries\nLearn about sites to help your practice and your life.\nWe hope that by now you’ll know to go to the cobar.org Web site or the ABA’s techshow.com for substantive legal information. But here are some sites borrowed from Reba Nance and Mel Reveles at the CBA that will help improve your life and add some interest to practicing law:\nAnybirthday.com This site is a great fact checker, birthday reminder and a good reality-check for those of you who don’t think your personal information is on the Web. Type in your best friend’s or worst enemy’s first and last name and his or her ZIP code if you know it. This person’s birthday will probably be there. As Reba Nance, CBA law office technology department guru says, \"All it takes is a birthday to unlock a whole lot of information about you.\" Breathe deeply. It’s okay; people may use this site as a handy birthday reminder and buy you a bunch of gifts on your special day. It will also keep you out of the doghouse by sending you reminders of when your friends’ birthdays are.\nDogbitelaw.com We did have to throw a few law related things in. Believe it or not, the bar association gets calls about dog bites every now and again. Look at this site, but you can always still call us. This is where attorneys find laws, journalists find statistics and parents get information about protecting their children. It talks about the Diane Whipple case, \"the most unusual case in dog bite history.\"\nCobar.org Yes, we must plug ourselves. We get many calls from people wanting to place free job announcements. Go to the \"Diversity of the Legal Profession\" Web page and post your listing. It’s free and easy. You can also look at The Colorado Lawyer monthly classified ads. The ads are sorted into the often-seen office space and employment sections, but also have headings under office sharing, donated books, legal recruiters and contract work opportunities.\nRefdesk.com will give you thousands of reference sites to search in a click. News, encyclopedias, almanacs and quotes. For kids, there’s even a homework helper and an \"astronomy picture of the day\" such as Young Martian Terrain with a description.\nFBI.gov/hq/lab/handbook/intro.htm Whether you’re an aspiring crime novelist or you just want to know how the FBI researches something, try this site. It will tell you how forensic evidence is prepared and how crime scenes are investigated.\nFlighttracker.com will show where grandma is on her flight from Connecticut to Colorado. It tracks the plane’s movements and gives a graphic map of what city her plane is flying over at this exact point in time.\nPlagiarism.com Scan the text of a document into this software, and the software will let you know if anyone has used someone else’s poetic prose. This was started to keep college kids from trading their term papers online. It does cost some money, but there is a free trial.\nMtnds.com will help you decipher acronyms, mostly for those weird computer errors that pop up. What’s BIOS or RAM? If you care, you can search this site.\nhttp://www-sci.lib.uci.edu/HSG/RefCalculators.html Whisk away to a world of calculators, and you don’t even have to be a nerd to enjoy it. There are catch-all calculators for mortgages, interest rates and currency conversions, but the old razzle dazzle comes when you calculate how much to feed livestock, what capacity your meeting room can hold or the amount of life insurance you will need. You can even figure out how much it will cost to launch a marketing campaign.\nMentalhealth.com is good for looking up psychiatric drugs and diagnosing different kinds of psychological disorders. Try diagnosing your boss or that nagging mother of yours. Realize that they may have more problems than you think.\nInfoctr.edu/fwl is the federal Web locator with links to every kind of federal Web site, from bureaucracies like the National Mediation Board, Office of Special Counsel and the Peace Corps to more interesting sites like the Advisory Council on Historic Preservation and the National Coordination Office for High-Performance Computing and Communications (Be glad you don’t work there. Be very glad).\nZagat.com If you are out of town and need a restaurant recommendation, try this site. It will sort by neighborhood, cuisine type or alphabetically. Insightful reviews and a chance to vote on your favorite restaurant are also an option. Be sure to click on the symbol that looks like a key, so that you understand what Zagat’s ratings are based on.\nmailstart.com To gain access to your existing e-mail accounts (must be POP3) then look no further than MailStart. MailStart can be customized to access your existing email accounts. In other words, you can take your work e-mail, your home e-mail and any other accounts you may have and get your mail from one box at Mailstart. There is a free demo but they encourage you to pay the $10 a month to subscribe.\ncobar.org/hotlinks.htm Just when you thought we were done plugging ourselves, we weren’t. We also didn’t want to leave you in a lurch without some legal research sites. The Colorado Bar Association’s \"Hotlinks\" site is a catch-all for legal research. You’ll get federal and state resources, commercial legal services, forms and contracts, international resources, legal libraries, legal software and the rest of the list is endless. Don’t overlook this exhaustive resource tool, courtesy your favorite association.\nSpecial thanks go to Mel Reveles and Reba Nance at the Colorado Bar Association for letting us plagiarize some programs they often present for CLE credits! You can find these Web sites and more at www.cobar.org.\nDo you have a site that sets your mind at ease or gives you the answers you’re looking for? If so, send them to firstname.lastname@example.org, and we’ll publish them in The Docket."} +{"text": "GEORGE HENRY,Associated Press\nFLOWERY BRANCH, Ga. (AP) — It’s too early for the Atlanta Falcons to know how much defensive end John Abraham will play in Sunday’s NFC title game.\nAbraham, the NFL’s active sacks leader, made it through just 15 snaps in last week’s divisional playoff victory over Seattle before aggravating a left ankle injury that forced him to leave in the second quarter.\n“You don’t want to lose a good player,” Falcons defensive coordinator Mike Nolan said. “We won the game, so there’s something we did right. But it does change things.”\nThe Falcons are making contingency plans in case Abraham is unable to play at full strength against the San Francisco 49ers on Sunday at the Georgia Dome.\nAbraham, who has not been available to speak with reporters this week, missed practice on Wednesday even though coach Mike Smith listed him as having limited participation.\nBut it’s clear that the Falcons (14-3) will be pleased to have Abraham on the field for any length of time against San Francisco (12-4-1).\n“He’s a sack master,” linebacker Sean Weatherspoon said. “That’s what I like to call him — Father Abe. We look forward to getting him back out there this week. I think the guys that had a chance to play in his absence did a good job stepping in and doing what they need to do in order to help the team get the win.”\nAbraham, 34, was initially hurt in the regular season finale loss to Tampa Bay, limping off the field with the help of trainers.\nCoach Mike Smith said that he expects the 13th-year veteran to start on Sunday. Even so, the Falcons are giving reserve ends Cliff Matthews, Jonathan Massaquoi and Lawrence Sidbury more work this week in case Abraham has to make an early exit.\nMatthews took the balance of the work against Seattle, playing 46 snaps and making two tackles opposite Kroy Biermann, Atlanta’s other starting end.\nAbraham, though, is a special talent.\n“Obviously he’s an integral part of this defense,” Biermann said. “When you lose a player like that, it kind of puts a little bit of strain on you, but the guys behind him know that they’ve got to step up, play that role and get it done.”\nThe 49ers present several problems for Atlanta’s defense.\nQuarterback Colin Kaepernick is coming off an impressive playoff win over Green Bay, passing for 263 yards and two touchdowns and rushing for 181 yards and two TDs. He set an NFL single-game record for yards rushing by a quarterback.\nSmith knows the Falcons must do their best to contain Kaepernick in the pocket while keeping tight coverage on receivers Michael Crabtree and Randy Moss and tight ends Vernon Davis and Delanie Walker.\nRunning backs Frank Gore and LaMichael James also create issues in the passing attack, too.\n“They have playmakers at both levels with their offense,” Smith said. “You’re going to have to put together a plan to try to slow down certain aspects of it. It’s a very explosive offense they’ve created.”\nThough Abraham’s 122 career sacks rank 13th on the NFL career list, he hasn’t had one since Nov. 29 when he took down New Orleans quarterback Drew Brees to help seal a 23-13 victory.\nThe following week, Atlanta won its second NFC South title in three years.\nBefore the Falcons traded for him in 2006, Abraham had a long injury history in six years with the New York Jets. He’s overcome assorted ailments and offseason surgeries with Atlanta, however, and has missed just two games over the last six seasons.\n“When you watch the film, he played through the pain a little bit,” strong safety William Moore said. “It was hard to even tell. He rotates a lot, so I didn’t even know he was out at one point.”\nMoore learned of Abraham’s absence soon enough while Seattle quarterback Russell Wilson and the Seahawks were carving up Atlanta’s defense in the second half. After Vance Walker sacked him early in the third quarter, Wilson completed 13 of 18 passes for 230 with two TDs.\nThe Falcons did a decent job covering deep routes, but they struggled badly in trying to defend tight end Zach Miller and other targets Wilson hit in the middle of the defense.\n“Those were still miscues on our end,” free safety Thomas DeCoud said. “We were short on a drop here or there or someone didn’t carry someone here or there. Those things were more about us rather than things that they did.”\nNotes: S William Moore has a cast on his right hand but participated fully in practice. … CB Christopher Owens (hamstring) remains out. He hasn’t played since a Dec. 22 victory at Detroit. … DT Jonathan Babineaux (shoulder) also had limited participation in practice.\nFollow George Henry at http://www.twitter.com/georgehenryAP\n(© Copyright 2013 The Associated Press. All Rights Reserved. This material may not be published, broadcast, rewritten or redistributed.)"} +{"text": "NORTH TEXAS (CBSDFW.COM) – A North Texas woman was handcuffed, stripped down and booked into jail – all because of an overdue traffic ticket.\nIt was just a ticket. Sarah Boaz was cited in August after an officer said she ran a stop sign.\nBoaz lost the ticket, but said she knows it was wrong not to have paid it right away. Despite those missteps, she also says she never expected a late fee or penalty to land her in jail.\nIt happens in every city, every day, at just about every intersection. Drivers roll past stop signs, and through stoplights. But getting caught, and getting a ticket, is nothing compared to what Boaz got.\n“I guess it was just frustrating to me, that a bill that I pay a month late, I end up in jail for,” she said.\nBoaz’ expected trip to work Wednesday morning never happened. Because of her unpaid ticket, the Richland Hills City Marshal was waiting at her house with a warrant for her arrest. “I’m like, nobody puts out a bench warrant after 60 days. Why would you do that? You wouldn’t do that.”\nEven when Boaz arrived at the jail, in handcuffs, she still didn’t think it was real. Then a female officer started giving her instructions. She remembered the officer saying, “’I’m going to need you to undress. I’m going to need you to stand against the wall. Please don’t step in front of this white box, or I’ll take that’… aggressive toward me. Obviously I am going to jail.”\nCBS 11 News learned being stripped down is standard procedure for anyone brought to the jail in North Richland Hills. In an email to CBS 11 News Friday morning, the North Richland Hills Police Department said though Boaz was forced to undress, the search is not considered a strip search. In that email they said, “She was given a dress out. Before they go into the cell they are taken by a detention officer of the same sex to a private room with no cameras. They have to remove all clothing and they are given a jumpsuit. The officer searches their clothes, at no time does the officer touch them.”\nRichland Hills is small enough that it only has one marshal. Warrants for unpaid tickets don’t sit around for months, like they might in larger cities.\nAttorney Jason Smith told CBS 11 News though, there’s nothing requiring the city to put people in jail. “The constitution doesn’t keep the government or government officials from using common sense. Unfortunately, some police officers, some governments get overly aggressive because they want that ticket revenue.”\nMunicipal court officials said two reminders were sent to Boaz, which she says she never got.\nA footnote – on Thursday, Boaz’ husband was issued a ticket for not stopping at a stop sign.\nUPDATE (October 25, 2013 1:40 PM): Officials in North Richland Hills indicated Friday that the jail does sometimes allow people to pay fines for traffic tickets when they arrive at the jail, and avoid spending time in a holding cell. Those arrested are still booked in, and photographed, but are not made to change into a jail uniform and sit with others under arrest. The option is only extended to those who have the ability to pay the full amount as soon a law enforcement officers brings them to the jail. Earlier, officials indicated everyone coming to the jail was treated and booked in the same way for officer safety and because more than one municipality uses the facility.\n(©2013 CBS Local Media, a division of CBS Radio Inc. All Rights Reserved. This material may not be published, broadcast, rewritten, or redistributed.)\n- Dallas Police Searching For Man Who Exposed Himself To Woman\n- Former Duncanville Teacher Starts 10 Year Sentence For Student Affair\n- Rain Boots Fit For A Queen On-Trend At Dean & DeLuca Invitational\n- TSA Put To Test With Memorial Day Weekend Travel\n- Texan With Character: Aman Lee\n- Sasquatch Genome Project Reveals Bigfoot Photos\n- Tricks To Using The New iPhone Software\n- Enter The ‘Show Your Spirit’ Sweepstakes\n- Migrating Spiders Sailing Through North Texas Skies\n- Texas Lt. Gov. Says Obama Should Be Impeached\n- PHOTOS: Your Pet Pictures"} +{"text": "|Joining the adult site gives the opportunity of getting acquainted with other people via video chat or web cam, getting in touch with them, visiting sex parties or clubs. That is a new interesting part of your life. Join for free Now!|\nAttractive horny women worldwide. Adult Dating, Live Sex Chat, Instant messages.\ndiscreet dating Garden city Alabama | discreet dating Saint clair Michigan | discreet dating Columbia Illinois | discreet dating Mission hill South Dakota | discreet dating Ansonia Connecticut | discreet dating Fort kent mills Maine | discreet dating Plano Texas | discreet dating Tamworth New Hampshire | discreet dating Glen ellyn Illinois | discreet dating Stanton Michigan | discreet dating Manteo North Carolina | discreet dating Marseilles Illinois | discreet dating Big lake AK | discreet dating Calumet city Illinois | discreet dating Corwith Iowa | discreet dating Leoti Kansas | discreet dating Solon Iowa | discreet dating Shreveport Los Angeles | discreet dating Pickton Texas | discreet dating Studio city California | discreet dating Porters falls West Virginia | discreet dating Powellton West Virginia | discreet dating Horatio Arkansas |Adult classifieds and sex classifieds. Love, romance and passion. Dating for single horny women to find marriage, pen-pals, friends, relationships and sex.\nwild ride baby stand six feet tall red hair green eyes and i like to make people laugh\ndiscreet dating Tiptonville Tennessee\nThe site has adult content and members of fuck buddy get access to a total find hot fuck buddy personals, hot videos of couples fucking on the beach, girls fucking in the locker room, females fucking in the privacy of their own bedrooms, and much more. Fuck buddy is giving you access to new, high quality content all the time. Join our dating site today for free fuck buddy personals!\nLooking for real sex? Meet someone now on the largest sex personals network – photos, chat, more!\nlonely after 17 yrs marriage horny guy 5'8 180lbs needs friends\nJoin for free\nWelcome to world's first and largest site dedicated to horny singles seeking long-term relationship!\nLocal Sex Search seeking Hot Wives for sex.\nSite Map-2 | sexy women club Visit our club and enjoy swinger lifestyle and great tips about how to enter into online swingers clubs, don?t be afraid, even if you have never been into swingers lifestyle, we offer you a complete guide of how to become a swinger. Would you like to meet other couples and singles for some fun swinging activities? | Links Looking for a no strings attached one night stand? Browse through our adult personals or swingers ads for free and find local fuck friends in your area.\nFind the top online dating sites that offer free personals and online personal ads for singles seeking love, sex, and romance on the web\nAdult Dating Are you looking for an Adult Swinger Party? Let's start with Adult FriendFinder. They are the largest dating site on the web catering to adults interested in sexual encounters.\nNaked Girls Photo Personals Once you review the often explicit photos posted here you will most likely want to upgrade to a paid membership right away. It's very easy to join this adult dating site - just complete the registration form (answer three questions and choose a user name - only takes a minute) and you're set to go.\nMeet women for sex From adults and teens all our dating personals are looking to meet someone who is interesting, sensual and serious about relationships. Try our free matchmaking service online and get hooked!\nSexual Health These products will help maximize the pleasure in your sexual experiences\n|Copyright © 2013 www.sexywomenclub.com All Rights Reserved.|\n|The best way to start is by registering for FREE so you can review all the services this adult dating site has to offer. You can post your personal profile and pictures, browse other members' profiles and send a wink to anyone to show your interest. Once you review the often explicit photos posted here you will most likely want to upgrade to a paid membership right away. It's very easy to join this adult dating site - just complete the registration form (answer three questions and choose a user name - only takes a minute) and you're set to go. Free Dating Sex Adult Personals Adult Personals Site Find Members in your area seeking discreet relationships and no strings sex|"} +{"text": "I have been following the Terry Gives Groupie a Facial, Groupie Doesn’t Become Model, Groupie Gets Mad and Decides She’s a Victim 4 Years Later, Because She Regrets Gettting a Facial and it’s The Only Way To Get Her Name Out There story and in doing that I’ve been calling out the Terry Groupie who is accusing Terry of abusing her.\nThe fact is simple. She wants attention drawn to herself, whether he came on her face or not.\nThe other fact is that 4 years down the road, the memories we have shift and change and become stories of their own that aren’t quite as relevant as the day after they happened. It’s easy to say I was paralyzed by the abuse, when she was probably really at a party the next day getting drunk and fucking the bartender…you know, it’s so easy to feel abused when having Terry cum on your face is the only thing you’ve accomplished and need to leverage in 4 years….\nEveryone knows Terry shoots sex, that’s his whole career foundation. When he started doing mainstream campaigns in 2005, I didn’t understand how people would touch him, because all his published shit was hardcore “artistic” porn…\nThis girl knew the fucking deal, tt was 4 years ago, and now that she’s decided that being a party slut who was impressed to be in Terry’s studio is bad for her lesbian, feminist, career, past…or maybe boyfriend…and it’s time to accuse a motherfucker because everyone’s doing it.. just because she figures it will get her name out there…\nThat said, Terry, who never speaks on this shit, even though he should, because not speaking on it will make people think he did it, or that he is guilty, based on his archive of work…and I am posting it…because I appreciate what he said and how he said it…\nFour years ago, I chose to primarily ignore a cycle of Internet gossip and false accusations against me. At that time, I felt that to dignify them with a response was a betrayal of my work and my character. When these allegations resurfaced over the past few months, they seemed especially vicious and distorted, moving outside the realm of critical dialogue and becoming nothing more than an emotionally-charged witch hunt. Enabled and protected by the freewheeling and often times anonymous nature of the Internet, people have become comfortable concocting hate-filled and libelous tales about my professional and personal lives. In writing this, I make a humble attempt at correcting these rumors, because I have come to realize that absent my voice in the conversation, all that remain are the lies.\nWhen I moved to New York in 1990 to take pictures, a lot of my work was a documentation of my life in the East Village; it was gritty, transgressive, and the aesthetic broke with the well-lit, polished fashion images of the time. My first big campaign, shot in 1994, was a provocative picture of a couple embracing in a bar. It was a shocking image for its time and the first instance a photograph of this nature was used in a major fashion advertisement.\nLike Robert Mapplethorpe, Helmut Newton, and so many others before me, sexual imagery has always been a part of my photography. Ten years ago, in 2004, I presented some of this work at a gallery show in New York City, accompanied by a book of the photos. The show was very popular and highly praised. The images depicted sexual situations and explored the beauty, rawness, and humor that sexuality entails. I collaborated with consenting adult women who were fully aware of the nature of the work, and as is typical with any project, everyone signed releases. I have never used an offer of work or a threat of rebuke to coerce someone into something that they did not want to do. I give everyone that I work with enough respect to view them as having ownership of their free will and making their decisions accordingly, and as such, it has been difficult to see myself as a target of revisionist history. Sadly, in the on-going quest for controversy-generated page views, sloppy journalism fueled by sensationalized, malicious, and manipulative recountings of this work has given rise to angry Internet crusades. Well-intentioned or not, they are based on lies. Believing such rumors at face value does a disservice not only to the spirit of artistic endeavor, but most importantly, to the real victims of exploitation and abuse.\nPeople will always have strong opinions about challenging images, and the dichotomy of sex is that it is both the most natural and universal of human behaviors and also one of the most sensitive and divisive. Over the course of my career, I have come to accept that some of my more provocative work courts controversy, and as an artist, I value the discourse that arises from this. I can only hope for this discourse to be informed by fact, so that whether you love my work or hate it, you give it, and me, the benefit of the truth.\nMore from DrunkenStepfather\nPosted in:Terry Richardson"} +{"text": "“A song will outlive all sermons in the memory.” – Henry Giles\nIt isn’t difficult to recognize the power of song. It takes just a few moments to recall those tunes that have stayed with us through our lives or marked important moments in our personal evolution and relationships, whether celebratory or challenging. It is pretty amazing how a three-minute story or idea set to melody and rhythm can have such a tremendous and lasting impact. Classic songs like John Lennon’s “Imagine,” or Nat King Cole’s “Unforgettable,” have left a seemingly timeless impression across countless cultural and generational boundaries, resonating in the hearts and memories of hundreds of millions of people.\nOut of the song emerged an entire industry, celebrated this past week in Los Angeles and culminating with Sundays telecast of the Grammy Awards, otherwise known as “Music’s Biggest Night.” While some critics may turn their noses up at what they consider an over-commercialization of music recognized by the event, I am happy to report that music was also being recognized and honored for the value it has in our lives and in critical areas of our society, like education.\nA couple of notable events of Grammy Week that shined a light on these higher values, and on the importance of the song in the evolution of society, included:\nThe Grammy Foundation Legacy concert, “A Song Is Born,” at the Wilshire Ebell Theater: This event was a songwriter’s dream, bringing together the crème-de-la-crème of popular songwriters doing rare performances of their own work. Some highlights included performances by Skylar Grey, Gaven McGraw, Dan Wilson, Paul Williams, Kris Kristofferson, Steve Cropper and Bonnie Raitt. The cause uniting them, beyond the songs and community, was a commitment to keep music alive for the next generations by donating all proceeds to support critical music preservation and education initiatives.\nMusiCares Benefit Gala and Tribute to Carole King at the LA Convention Center: Carole King is considered one of the most successful female songwriters of the past 50 years, contributing to 118 pop hits, including countless classics like “You’ve Got a Friend” and “(You Make Me Feel Like) A Natural Woman”. In addition to providing the soundtrack to so many people’s lives, Carole still remains a committed and outspoken advocate for environmental and other important social causes. Many admirers turned out to perform Carole King’s songs in her honor, including Alicia Keys, Pink, Lady Gaga, Sara Bareilles, and James Taylor.\nThe evening raised 5.5 million for MusiCares, which provide emergency financial assistance and addition recovery programs to musicians in need.\nChildren’s Grammy Nominee Concert at the Ann & Jerry Moss Theater: Not only did this event raise money for music programs for kids, it celebrated the most popular artists that make music specifically for those kids. Although lesser known, this is a growing and important part of the Grammy programming – to spotlight a community of artists focusing on children and the music created to help them grow and learn.\nInaugural Music Educator Grammy Award: 2014 marked an important moment in Grammy history – the offering of the first Grammy award for Music Teachers. This comes at a critical time, when music programs across the country have been decimated by funding cuts and a narrowing focus of STEM-based programming. The recognition of the critical role a great music teacher can play in the lives and development of young students is long past overdue. The inclusion, however, in such a high profile media event is a great step toward helping our nation and its leaders recognize the essential need to re-instate and support music education programs in schools across America. If you have any doubt as to the benefit a great music teacher can bring to a child’s life, it is worth taking a look at the CBS profile on this year’s prizewinner, Kent Knappenberger (“Mr. K”). The ripple effect of establishing the award was also quite powerful. Over 30,000 music educators were nominated by their peers for this year’s Grammy, giving recognition and pride to dedicated and under-appreciated teachers across the country.\nIt is reassuring to experience these times when music – something at the core of everyone’s heart, can give heart to an industry that is often looked upon as uncaring. The power of a great song is that it sees no barriers and can, as Bono put it, “thaw the hardest hearts.” Music is also essential to the development of our children’s minds, social adaptability and overall well-being. As I like to put it: a good meal can feed a man for a day, but a great song can feed a million souls for a lifetime.\nMy hope is that, after the glitter and glamor of Grammy week has faded, the spotlight can continue to shine bright on, and draw the world’s attention to, music’s critical role in these other areas of our lives and society. Maybe one day there will even be a Billboard Chart for the year’s top songs ranked by their positive social impact, and artists will be rated – not by the number of records they sold, but rather by the number of hearts they have truly touched, and by their contributions to the betterment of humanity.\nView this article on Huffington Post."} +{"text": "- Low concentrations of polonium are all around the environment\n- Smokers are exposed to more polonium than nonsmokers because it's in tobacco\n- Expert: Radiation poisoning from polonium-210 looks like the end stage of cancer\nWhether a radioactive substance called polonium-210 was involved in Yasser Arafat's death is under investigation. The body of the former Palestine Liberation Organization leader was exhumed Tuesday for this purpose and reburied.\nArafat died in 2004. A murder inquiry into his death was opened this year after high levels of polonium-210 were found on Arafat's toothbrush, clothing and keffiyeh, the black-and-white headscarf he often wore.\nTawfiq Tirawi, head of the Palestinian investigation committee, said forensic experts from France, Switzerland and Russia took their own samples for independent analysis.\nPolonium-210 is not a radioactive substance that emits gamma particles, which can travel through walls at extremely high energies. Instead, as polonium-210 decays, it releases alpha particles, which can't even pass through a piece of paper.\nBut alpha particles are still dangerous. They travel short distances and retain a high amount of energy.\nIn nature, it takes about 138 days for half of a given quantity of polonium-210 to decay. But because biological processes also work to eliminate the substance, it takes about 50 days for half of it to disappear while inside the body, according to the Centers for Disease Control and Prevention (PDF).\nPolonium-210 is a problem to humans only when it gets into the body. The International Atomic Energy Agency says that careful hand-washing and showering can eliminate most traces of this substance.\nThe radioactive substance can enter body by eating or drinking contaminated things, breathing contaminated air, or inhaling or ingesting bodily fluids from someone contaminated with it. A wound can also become contaminated.\n\"Radiation, just like with any toxic chemical, is related to dose,\" said Cham Dallas, a professor and toxicologist at the University of Georgia's Institute for Health Management and Mass Destruction Defense. \"If you get a big dose, then you'll die sooner.\"\nAnd with polonium-210, a dangerous dose can be a matter of micrograms: smaller than a single speck of pepper, he said.\nIf you ingest polonium-210, about 50% to 90% of the substance will exit the body through feces, according to a fact sheet from Argonne National Laboratory (PDF). What is left will enter the bloodstream. About 45% of polonium ingested gets into the spleen, kidneys and liver, and 10% is deposited in the bone marrow.\nRadiation poisoning from polonium-210 looks like the end stage of cancer, Dallas said.\nLiver and kidney damage ensue, along with extreme nausea and severe headaches. Victims often experience vomiting, diarrhea and hair loss. The alpha particles emitted from the decaying substance get absorbed in the body, which is what causes harm. Death may come in a matter of days, sometimes weeks.\nThere is no cure for severe radiation poisoning, Dallas said. A few experimental treatments are in the works for people who are able to stay on the edge of potential survival, but they have not been approved by the U.S. Food and Drug Administration.\nArafat died at age 75 at a Paris military hospital after he suffered a brain hemorrhage and slipped into a coma. Palestinian officials said in the days before his death that Arafat had a blood disorder -- though they ruled out leukemia -- and that he had digestive problems.\nRumors of poisoning circulated at the time, but Palestinian officials denied them, and then-Foreign Minister Nabil Sha'ath said he \"totally\" ruled them out.\nOver the course of a year, through natural sources and medical tests, the average American gets an effective radiation dose of 6.2 millisieverts (mSv). A potentially lethal dose of polonium-210 is 5 sieverts (Sv), Dallas said, which is about 1,000 times more powerful than that average year's worth of exposure.\nLow concentrations of polonium are all around the environment. Additionally, tobacco contains polonium, and about twice as much of the radioactive substance has been found in the ribs of smokers than non nonsmokers, according to the Argonne report.\nAs for investigating a polonium poisoning, there are instruments that can detect low concentrations of polonium, Dallas said. But there's also a background level of polonium found in nature, so if an alleged poisoning happened many years ago, the remaining quantity in the body may be close to the background level.\nAnother tricky part about investigating a situation like this years after a potential poisoning: It would be relatively easy for someone to contaminate evidence after the fact with a small amount of the substance, Dallas said.\nSo it's possible that someone could have planted small amounts of polonium-210 in Arafat's belongings, Dallas said. High levels were found by a team of Swiss researchers at the Institut de Radiophysique.\nEven through exhuming the body, it's not clear that detection would be foolproof, Dallas said. As time goes on, there's less and less of the radioactive substance left, so it would be more and more difficult to tell how much polonium-210 Arafat was exposed to, if any.\n\"It's going to be very hard to determine whether polonium was ever introduced there,\" Dallas said. \"There will be a lot of dispute, I guess, depending on who is incriminated by this.\""} +{"text": "- Many find it hard to disconnect, even when on holiday\n- Westin Dublin hotel lets users swap cell phones for \"detox survival kit\"\n- \"Digital detox\" next big thing, according to travel industry report\n- But many guests still prefer hotel wi-fi to ditching technology\nWith the advent of smartphones we've become used to being constantly connected, even when we're on the road or on vacation. But now a growing number of hotels are adding \"digital detox\" packages to their roster of offerings.\nDetox packages are nothing new. For decades, hotels and vacation retreats have enticed guests to \"clean out,\" often with the help of a specialized diet plan and fitness regimens (with a massage thrown in for good measure). These days, the concept is being pushed to help us disconnect from technology. The World Travel Market Global Trends Report even listed digital detox as one of the next big trends to hit the hospitality industry in the coming year.\nThe push has come on the heels of increasing reports of travelers' inability to \"unplug.\" A recent Google survey found that in the United States, 80% of smartphone users almost never leave their home without their device, while a TripAdvisor survey found nearly half of mobile owners use their phone to augment their vacation (e.g. taking travel photos, researching restaurants, and so on).\n\"We've witnessed the increased dependency people now have on their electronic devices,\" notes Andrew Henning, the general manager at The Westin Dublin, in Ireland.\nIn March, the hotel introduced a digital detox package to combat this gadget addiction (recently classified in the media as \"nomophobia\"). Guests that partake in the package stash their electronic devices in a safe, and in exchange get a detox survival kit, which includes a board game, a walking map, a tree-planting kit, and other reminders that life exists beyond the confines of an iPad.\nVia Yoga, a company that hosts yoga retreats in Mexico and Costa Rica, feels so strongly about the need for its guests to unplug that it decided to offer a 15% discount as an incentive for anyone willing to give up their iPhone.\n\"In the last couple of years, people have started carrying their phones and tablets with them all the time,\" notes Suzie Cavassa, the company founder.\n\"Our customers were even using them at dinner, or when hanging out by the pool,\" she says. \"They were so preoccupied that they were missing out on the experiences they were paying for.\"\nFor guests that take the detox option (about 15 per season), Cavassa will lock away their devices and give them an emergency number, so that if someone does really need to reach them, they're not completely out of touch.\n\"If someone needs to get hold of you, they can. But you're not working or checking Facebook; you're just experiencing the moment, checking out the sunset, or having a great conversation with someone you just met.\"\nCavassa admits that it takes a few days for most guests to stop feeling antsy as a result of the separation from their devices. Physical activities, like surfing and yoga, help make the transition easier, she notes.\n\"Surfing is the type of activity that forces you to be in the present,\" she says. \"There's no way you're thinking about Facebook or what you have to do at work when a giant wave comes at you.\"\nVia Yoga's detox package is popular, but other venues offering similar packages admit that while there's interest, they're not flooded with bookings.\nThe Hotel Monaco Chicago provides guests with a \"black-out\" option, whereby they surrender their gadgets to reception upon checking in.\n\"We were constantly hearing from guests how they loved that the Monaco was an escape from the hustle and bustle of the city,\" says Marco Scherer, the hotel's general manager. \"We decided to allow our guests the option to experience the ultimate seclusion by voluntarily forfeiting all methods of electronic communication at check-in.\"\nThough guests are intrigued by the package, Scherer says very few actually opt to give up their devices.\n\"Most guests prefer our free wi-fi,\" he admits.\nHenning says the same is true at the Westin. While guests from as far afield as Belgium, France, Poland and South Korea have called and expressed interest in the package, none have yet booked it.\nHe says: \"We have found that guests are intrigued by the idea of detoxing from their electronic devices, but are not quite willing to make the commitment to a full digital detox.\""} +{"text": "- A teacher initiated the school lockdown, despite being injured, an official says\n- The student killed is identified as 14-year-old Emilio Hoffman, a freshman\n- The shooter was a student at the school, law enforcement sources say\n- The gunman appears to have died from a self-inflicted wound, the sources add\nWhen the shooting started at her high school near Portland, Oregon, early Tuesday, student Jaimie Infante didn't recognize the sound of a gunshot.\nShe thought maybe somebody had dropped a book.\nIn reality, a lone gunman had opened fire at the school, killing one student and forcing others to flee.\nAn assistant principal told students to go into lockdown mode.\n\"At the end he said: 'This is not a drill,'\" Infante told CNN.\nA teacher, who suffered non-life-threatening injuries, was treated at the scene. The suspected gunman is dead.\nAccording to multiple law enforcement officials, the shooter was a student at the school. The gunman appears to have died from a self-inflicted wound, the sources told CNN.\nSpeaking to reporters, Troutdale Police Department Chief Scott Anderson said he could not confirm how the shooter died. He identified the student killed as 14-year-old Emilio Hoffman, a freshman.\nAnderson met with the student's parents Tuesday afternoon and \"they want you to know that Emilio was a great kid and he was loved by all,\" he said.\nOfficials believe they know who the gunman was, but they are \"not confident enough\" to reveal details yet, Anderson said.\nHe added: \"This is a tragedy that affects our whole community. This is not supposed to happen to any school or to any child, but we will get through this together.\"\n'Could have been much worse'\nThe shooting happened at about 8 a.m. (11 a.m. ET) at Reynolds High School in Troutdale, about 12 miles east of Portland. The city has a population of 16,400 people.\nWhen it started, student Hannah League ducked into a classroom, where she and others huddled in a corner with no lights -- hiding.\n\"I heard these pops and I thought they were firecrackers, but then I saw a teacher run out with his side kind of bloody,\" League told CNN's \"Erin Burnett OutFront.\"\n\"You don't think something's going to happen like that -- especially to your school. It's kind of, like, crazy,\" she said.\nDetails about what led to the shooting weren't immediately available. The gunman is believed to have used a rifle.\nAnderson said the shooter entered the building that houses the school gym. Hoffman was shot and killed in a locker room. The shooter was found in a separate restroom, Anderson said.\nHe thanked officers for their quick response. He also thanked injured teacher Todd Rispler, who initiated the school lockdown despite being hurt.\n\"Without the quick and well-executed response, this tragedy could have been much worse,\" the Reynolds School District said in a statement.\nAnxious parents waited for news that their children were safe. One couple, Craig Tuholski and Tawnjia Reimer, were talking with CNN affiliate KGW, about how agonizing the wait for news was, when Tuholski's cell phone rang.\n\"Is that Chris?\" Reimer asked before letting out a sigh of relief. \"Oh, thank God.\"\n\"That's what we were waiting for,\" Tuholski said after hanging up.\nAbout an hour after the shooting, Oregon State Police said the area was secure and the situation was contained.\nObama: 'Levels of gun violence off the charts'\nThe shooting, the latest in a long string of school shootings, sparked reaction nationwide.\n\"Our hearts go out to the Reynolds HS community. How many more students must we lose before committing to reduce gun violence in our schools?\" Secretary of Education Arne Duncan asked on his Twitter account.\nSpeaking in Washington, President Barack Obama said the nation should be ashamed of its inability to get tougher gun restrictions through Congress in the aftermath of mass shootings that he said have become commonplace in America.\n\"Our levels of gun violence are off the charts. There's no advanced, developed country on Earth that would put up with this,\" he said in response to a question about gun violence.\nMost members of Congress are \"terrified\" of the National Rifle Association, the President said, adding that nothing will change until public opinion demands it.\n\"The country has to do some soul searching about this. This is becoming the norm, and we take it for granted, in ways that as a parent are terrifying to me,\" Obama said.\nCNN first learned of the shooting through reports on Twitter."} +{"text": "What is in this article?:\n- Bangladesh: Is Worker Safety Failing in the Global Supply Chain?\n- Fragmentation of Efforts\nThe Triangle Shirtwaist Factory fire that killed 146 workers in New York City more than 100 years ago probably is the worst single workplace tragedy in U.S. history. Workplace safety and health reforms followed the fire and eventually led to the signing of the Occupational Safety and Health Act and the creation of OSHA and MSHA. Unions gained strength and demanded safer working conditions for members. And now, modern building codes demand certain standards of construction, as well as sprinkler systems, warning systems, appropriate storage of flammable goods, an appropriate number of exits and the ability to access those exits.\nBut as U.S. corporations shifted the bulk of their manufacturing overseas, how responsible should they have been for contractors that set up shop in countries where production is the only concern? Should U.S. and European companies bear some responsibility for the welfare of their contractors’ employees?\nThe authors of the articles in this special section say that yes, the multinational companies doing business in countries like Bangladesh and Pakistan have a moral responsibility to improve the working conditions and safety of the people who manufacture their clothing and other products. After all, manufacturing in Bangladesh is big business: The ready-made garment (RMG) sector in Bangladesh exported goods worth more than $20 billion in the past year; nearly 12 percent more than a year earlier.\nThe companies themselves – Gap, Walmart, Disney and others – say they are taking steps to improve working conditions in Bangladesh and elsewhere.\nIn September, Gap Inc. released its sixth Social and Environmental Responsibility Report, highlighting what the company says is its “commitment to local communities and efforts to improve social and environmental performance globally.”\nThe report, which covers fiscal years 2011-2012, details sustainability initiatives companywide and globally, as well as across the Gap, Banana Republic, Old Navy, Piperlime and Athleta brands.\n“Our commitment to social and environmental responsibility remains a cornerstone of how we conduct and grow our business,” said Glenn Murphy, chairman and chief executive officer of Gap Inc. “While as a company we will never stop striving for improvement, our legacy of leadership in this work is extremely meaningful to me and to our employees.”\nThe company noted, “Recent tragedies in Bangladesh have underscored the imperative to improve working and safety conditions for garment workers. Although Gap Inc. did not have a business relationship with factories in Rana Plaza or with Tazreen, the company remains committed to supporting systemic and sustainable reform of the country’s rapidly growing garment industry.”\nIn October 2012, Gap launched a Building and Fire Safety Plan for the more than 70 Bangladeshi facilities approved to manufacture Gap Inc. apparel and in July 2013, Gap Inc. became a founding member of the Alliance for Bangladesh Worker Safety. A cornerstone of the alliance is a shared responsibility between the Bangladeshi government, retailers and apparel companies, factory owners, non-governmental organizations, labor and civil society. Member companies commit to inspecting 100 percent of their approved sourcing factories within the first year, under a uniform fire and building safety code.\nWalmart has issued Standards for Suppliers, which set forth its fundamental expectations of suppliers and their factories on the treatment of workers and impact on the environment. The standards also provide the framework for audits that measure how well suppliers are meeting those expectations.\n“We also recognize the need for heightened attention to the unique safety problem in Bangladesh,” says Walmart on its web site. “We expect firm commitments from our suppliers to meet strict safety standards, to be open to rigorous audits and to put the welfare of employees first.”\nIn addition to the regular audits that Walmart conducts under its ethical sourcing program, the company recently announced that it will conduct more in-depth inspections in Bangladesh relating to electrical, fire and building safety. These facility audits are conducted by “accredited and internationally recognized auditing firms and are based upon the obligation in its standards to provide workers with a safe and healthy work environment.”\nWhen independent audits have found serious or repeated violations of Walmart standards related to safety issues, social issues, unauthorized subcontracting or other requirements, the company red flags them.\nSaying that, “Transparency helps all stakeholders to improve worker standards,” the company publishes a list of factories in Bangladesh that are not permitted to produce product for Walmart."} +{"text": "Office Phone: (717) 397-5190\nCell Phone: (717) 490-0145\nOffice Location: n/a\nOffice Hours: By appointment\nDr. Simmons is a professor in the RN-to-BS program in Lancaster, PA and also in the online RN-to-BS and MSN programs. She earned her EdD from Teacher’s College at Columbia University, an MSN from Columbia University, an MsEd from Temple University and her BS from Messiah College. Her clinical focus has been medical-surgical and critical care nursing. Her doctoral research focused on effectiveness of the nursing school environment and the development of caring ability among nursing students. She is married to Mark Simmons who is the Director of the School of Respiratory Therapy at York College of Pennsylvania. Dr Simmons has two children two grandsons: Clinton is married to Christina Yoder and their son, Everett. Ted is married to Heather Edelman and son, Mason.\nDr. Simmons is involved in the Lancaster Brethren in Christ Church. Her additional interests include gardening and in particular, her role as a Penn State Master Gardener.\nEdD Teacher’s College at Columbia University\nM.S.N. Columbia University\nM.S.Ed Temple University\nB.S. Messiah College\nSimmons, P.R. (2015). History and physical exam (3rd ed.). In D.R. Hess (Ed.), Respiratory care principles and practice (pp. 330-348). Philadelphia: W.B. Saunders\nSimmons, P.R. (2014, Summer/Fall). The future of nursing education and practice. Teachers College, Columbia University Courier, 105, 1.\nSimmons, P.R. (2012). History and physical exam. (2nd ed.) In D.R. Hess (Ed.), Respiratory care principles and practice (pp. 330-348). Philadelphia: W.B. Saunders\nSimmons, P.R. (2011). Abortion: A dilemma revisited. Shalom: A Journal for the Practice of Reconciliation, 31(4), 4.\nSimmons, P.R. (2008). Common laboratory tests. In M.A. Hogan (Ed.). Comprehensive review for NCLEX-RN._(pp. 821-837). Upper Saddle River, NJ: Pearson Education.\nSimmons, P.R. & Simmons, M. L. (2004). The state of the art: Oxygen therapy for patients with COPD. MEDSURG Nursing, 13, 82-85.\nSimmons, P.R. (2003). A primer for nurses who administer blood products. MEDSURG Nursing, 12, 184-192.\nSimmons, P. R. & Cavanaugh, S. H. (2000). Relationships among student and graduate caring ability and professional school climate. Journal of Professional Nursing, 16, 76-83.\nCavanaugh, S. H. & Simmons, P. R. (Winter,1998). Teaching and learning caring ability. Medical Encounter, 2-4.\nCavanaugh, S. H. & Simmons, P.R. (1997) . Evaluation of a school climate instrument for assessing affective objectives in health professional education. Evaluation and the Health Professions, 20, 455-478.\nSimmons, P. R. and Cavanaugh, S. H. (1996). Relationships among childhood parental care, professional school climate and nursing student caring ability. Journal of Professional Nursing, 12, 373-381.\nScholarly Presentations and Abstracts\nPoison Ivy. Nurses Week Continuing Education Presentation at EMU at Lancaster, May 4, 2016.\nLeaves of Three, Let It Be. Presentation at the Lancaster, Pennsylvania Native Plant and Wildlife Festival, April 25, 2015.\nUsing a Wiki to Teach the IOM in an Online MSN course. Poster presentation at the Stewart Conference, Teachers College, Columbia University, April, 2014\nChurch, Community and Professional Service\n- Church Affiliation: Lancaster Brethren in Christ\n- Deacon, 2013\n- Chairman of Missions Committee, 2009 to present\n- Penn State Master Gardener 2015\n- Member of the Board of Directors of LoveINC of Lancaster County 2010 to 2014\n- Director, Pennsylvania State Nurses Association, 2016*\nHonors, Awards and Grants\n- Attained Certified Nurse Educator Status, 2012\n- Nursing Education Award in 2006 from Pennsylvania State Nurses Association\n- American Nurses Association\n- Pennsylvania State Nurses Association\n- Pennsylvania State Nurses Association District 16\nProfessional Conferences Attended\nGerms and Viruses. INR Conference. January, 2016.\nIsabel Maitland Steward Conference, Teachers College, Columbia University, 2015\nIsabel Maitland Steward Conference, Teachers College, Columbia University, 2014"} +{"text": "By now, Boston Red Sox fans have come to grips with the fact that their team doesn't seem to be going anywhere this season. At 57-59, the Red Sox have been sunk by injuries, inconsistent performances and bafflingly bad starting pitching.\nBut even more surprising than the unpredictability of the Red Sox has been the consistency of the Baltimore Orioles. The team that everyone thought would fade away has not only stayed in the hunt, it's currently leading the American League wild-card race at 62-53, nine games over .500.\nThe Orioles, who host a three-game series against the Red Sox starting Tuesday, have a minus-49 run differential this season, which is the fourth-worst in the American League. The Red Sox, on the other hand, are at plus-41, which is tied for fourth-best in the league.\nHow is the disparity explained? It's simple. The Red Sox are a middling 12-14 in one-run games and just 2-6 in extra innings. The Orioles, meanwhile, have a major league-best 22-6 record in one-run games (including an 11-game win streak that began in June) and are a staggering 12-2 in extra innings. Of Baltimore's six wins against Boston this season, four have come in extra innings.\n\"From what I understand, this team has some people scratching their heads,\" Orioles manager Buck Showalter told The Associated Press.\nThe same observers who expect the Red Sox to go on a run are waiting for the Orioles, who haven't made the playoffs in 14 years, to fall off. But ask yourself, which is more likely at this point? What former Red Sox GM Dan Duquette has built in Baltimore doesn't appear headed to a crash-and-burn ending.\nThe Red Sox, on the other hand\nIf they hope to make things at all interesting down the stretch, they have to start winning series. Their last series victory came against the Detroit Tigers almost two weeks ago. They followed that up with series losses to the Minnesota Twins, Texas Rangers and, most recently, a four-game split against the Indians in Cleveland.\nIn the first three games of the Cleveland series, Crawford was 0-for-8 but he exploded for three hits and three RBIs in Sunday's 14-1 win over the Indians. He has hit safely in 12 of his past 16 games.\nPedroia has hit safely in each of the past seven games, posting a .467 average (14-for-30) with 3 doubles, 4 RBIs and 8 runs scored in that stretch.\nGonzalez has been one of the league's best hitters since the All-Star break, especially in the month of August. He's hitting .422 (19-for-45) with 3 homers, 8 doubles and 18 RBIs in the last 12 games.\nThe fact remains, though, that the plight of the Red Sox will depend on starting pitching.\nJosh Beckett, who was hammered for eight runs over five innings in his most recent start, will get the ball Tuesday against the Orioles' Wei-Yin Chen (10-7, 3.79). Beckett has lost his last three starts against Baltimore, including a 2-1 loss on June 6, when he allowed only two runs on five hits in eight innings.\nBeckett has a 5-3 record with a 3.61 ERA in 12 career starts at Camden Yards. The right-hander pitches well there and has lasted at least six innings in 11 starts at Camden, including his past seven.\nChen posted his best outing of the season in that June 6 game at Fenway Park, allowing only one run on seven hits in seven innings. He is coming off his worst outing of the season, however, lasting just 4 2/3 innings while giving up seven runs to the Royals last week.\nOn Wednesday, Red Sox right-hander Aaron Cook (3-5, 4.70) will face Baltimore's Miguel Gonzalez (4-2, 3.42). Clay Buchholz (10-3, 4.24) will take the ball for Boston in the series finale on Thursday. He will face the Orioles' Chris Tillman (5-2, 3.40).\nBesides the struggles of the starting pitchers, who have the fifth-worst ERA in baseball, the Red Sox also are still battling injuries to key players.\nIt's unknown when David Ortiz, whose OPS at the time of his Achilles strain on July 17 (1.024) was the highest in the AL, will be ready to return. Every time it appears he is close to being activated, the injury does not respond well to his daily workouts and treatments, forcing a longer stay on the DL.\n\"It's not healing,\" Ortiz told reporters in Cleveland on Sunday. \"I thought I was getting there and it's still sore and I still can't run. I'm doing the best I can with it.\"\nThere was also news out of Cleveland on Sunday that Crawford's surgically repaired wrist has been bothering him. He's already dealing with the likelihood of Tommy John elbow surgery during the offseason, and now the wrist is an issue again.\nWho knows, maybe the Sox will knock the Orioles back a peg by sweeping the series in Baltimore and using that as a springboard to make a run of their own. Maybe the Sox will get some good news on the injury front and finally get some consistent starting pitching to build on. And maybe the overachieving Orioles' luck will finally run out. The odds say it's bound to happen.\nJust don't count on it."} +{"text": "\"This is a very good lineup that he just shut down,\" Yankees manager Joe Girardi said. \"Probably our best pitching performance of the year.\"\nKuroda allowed only four balls out of the infield and just one runner past first base. He held Texas hitless until Elvis Andrus' infield single leading off the seventh, outpitching All-Star lefty Matt Harrison in a crisp duel at Yankee Stadium.\nThe right-hander walked two and struck out five in his fourth career shutout and second this season. He threw 74 of 109 pitches for strikes.\n\"When you've got a great lineup like that,\" Kuroda said through a translator, \"you can't lose your focus until the end.\"\nThe surging Yankees won for the sixth time in seven games. They've taken the first two in a four-game set between the AL's top two teams.\n\"Man, these games are a lot of fun to play in,\" Swisher said.\nDerek Jeter singled off Harrison (13-7) with one out in the seventh to start the New York rally. Alexi Ogando came in to face Swisher, who had cracked a go-ahead grand slam off Ryan Dempster in the series opener Monday night for his first homer since July 19 -- a drought of 61 at-bats.\nThis time, Swisher fought his way back from an 0-2 count and drove a payoff pitch to the back of the Yankees' bullpen in right-center for his 16th home run.\n\"I was hitting on sound at that point. I mean, he's throwing 100 mph,\" Swisher said. \"That 3-2 count, I was just hoping he would throw another fastball.\"\nThe bubbly switch-hitter rounded the bases with a big grin, and New York was on its way to a seventh straight regular-season victory over the Rangers at home.\n\"I wanted to put velocity on Swisher, and he didn't beat him with it,\" Texas manager Ron Washington said.\nTeixeira then lined a shot into the right-field stands for his 23rd home run.\nSlowed by a lack of run support lately, Kuroda (11-8) won for the first time in four starts and lowered his ERA to 3.06. He gave up a clean single in the eighth to Michael Young, who was immediately erased on David Murphy's double-play grounder.\nKuroda then worked a 1-2-3 ninth to finish a gem that took 2 hours, 35 minutes.\n\"He's been really, really big for us and he could have a number of more wins. He's been the hard-luck guy for us this year,\" Girardi said. \"That was his 11th win for us. Realistically, he could have 15 or 16 at this juncture.\"\nKuroda has six scoreless outings of at least seven innings, most in the majors. He became the first Yankees pitcher with two shutouts in a season since Mike Mussina in 2005.\n\"I was doing everything I could to match him,\" Harrison said.\nFeaturing a sharp slider, Kuroda worked around two walks in the first three innings and handcuffed the hard-hitting Rangers, who began the night leading the majors in batting average (.278) and runs (580). They were shut out for only the third time all season.\nA no-hit buzz began to build in the sixth, when second baseman Robinson Cano made a backhand play on Mitch Moreland's one-out grounder. Kuroda then struck out Ian Kinsler and had retired 10 straight heading into the seventh.\nAndrus led off with a grounder toward the middle, forcing shortstop Jayson Nix to make a diving stop near the edge of the outfield grass. With little chance to get the speedy runner, Nix struggled to get the ball out of his glove and tried a desperation throw that was late and wide.\nBase hit, no question, and Kuroda received a warm round of applause from the crowd of 44,533. Andrus was stranded at third when Nelson Cruz grounded out.\n\"I had to regroup myself a little bit, but I (said), a complete game or a shutout is not really important here,\" Kuroda said. \"The most important thing is for the team to win, and that's what we accomplished today, and that's why I'm happy.\"\nYankees 3B Alex Rodriguez had X-rays on his broken left hand. Girardi said the hand is \"definitely better\" and the brace will come off, but Rodriguez isn't quite ready to swing a bat yet. He will begin doing strengthening exercises. ... With slugger Mike Napoli on the disabled list, Texas signed C Koyie Hill to a minor league contract. He was assigned to Triple-A Round Rock. ... Luis Martinez went 0-for-3 in his first start behind the plate for the Rangers. He was recalled from the minors Saturday when Napoli went on the DL. ... Jeter extended his hitting streak to 10 games. He started at DH, with Nix at shortstop. ... New York has eight shutouts, matching its total from last season. ... Kuroda has four career complete games, all shutouts."} +{"text": "CINCINNATI -- Reds owner Bob Castellini couldn't imagine Dusty Baker leaving.\nThe 63-year-old manager got a two-year contract extension Monday, giving him another chance to take Cincinnati deep into the playoffs. They've been there twice in the last three years, failing both times to get past the division series.\nBaker missed the Reds' NL Central title celebration this year because he was hospitalized with an irregular heartbeat and a mini-stroke. He returned and lost ace Johnny Cueto at the start of their series against San Francisco, which ended with the Giants rallying to win Game 5.\nThe team's first big question of the offseason was whether it would bring Baker back for another try.\n\"This is Dusty's team,\" Castellini said. \"These fellas are poised to go deeper and deeper in the season. To not bring Dusty back or not ask Dusty to come back was out of the question.\"\nBaker is feeling much better, and the Reds have the nucleus of their 97-win team returning next year, including one of the deepest pitching staffs in the major leagues. When the club offered another two-year deal -- same as the last one -- Baker quickly agreed.\n\"It's very much the same contract and very much the same thing for all of us up here: There's work left to be done,\" Baker said. \"I didn't want to leave on a note that we still have work to do.\n\"I don't want to leave in a situation where for the rest of my life I would have regretted not coming back with unfinished business. It would have left a real pain in my heart to feel the way I did at the end of the season.\"\nBaker did one of his best managing jobs this season, guiding the Reds through one major setback after another.\nThey lost closer Ryan Madson and their two setup relievers to injury during spring training. Baker eased left-hander Aroldis Chapman into the closer's role, a move that worked beautifully. Joey Votto tore cartilage in his left knee at midseason, costing the Reds their top hitter -- he was never the same, even after returning.\nBaker juggled his lineup and led the club on a 36-12 tear while Votto was recuperating. With the team on the verge of clinching, Baker ended up in a hospital during a road trip in Chicago. He missed 11 games and returned for the final regular-season series.\nThe Reds made it through the season with all five starters healthy, a trend that ended in the first inning of the playoffs. Ace Johnny Cueto pulled muscles in his right side on his eighth pitch in San Francisco, sidelining the 19-game winner and putting Cincinnati's pitching plans in disarray.\nBaker got creative with his pitching staff and the Reds won the first two games. With a chance to wrap it up back in Cincinnati, they had a passed ball and an error that let the Giants rally for a 10-inning win in Game 3. The Giants completed their comeback on Buster Posey's grand slam to take Game 5.\nThe Reds have won two division titles in the last three years -- their best showing since Sparky Anderson ran the Big Red Machine in the 1970s -- and have won 169 games over the last three years, their best such stretch in 30 years.\n\"We're moving in the right direction,\" general manager Walt Jocketty said. \"We're trying to build a team that will be in contention for a long time and win multiple world championships. One of the things we feel is very important is continuity.\n\"Every place I've been, we've always had continuity, whether it's the scouts, the front office, the minor league people. But most importantly, the guys that are leading the team on the field. If you look, the more successful operations and teams are the organizations that keep continuity in their leadership.\"\nBaker has presided over a revival in Cincinnati, which was rebuilding when he took over in 2008. The Reds were moving from a team reliant on homers -- an offense built around Ken Griffey Jr. and Adam Dunn -- to one that wins with pitching and defense.\nA young team reached the playoffs unexpectedly in 2010, then got swept by Philadelphia. Baker became one of only six managers to win division titles with three teams, along with Billy Martin, Joe Torre, Tony La Russa, Lou Piniella and Davey Johnson.\nCincinnati took a step back last year, when three starters got hurt or sick during spring training and several players had subpar seasons. They won 90 games again this year, the seventh time one of Baker's teams has reached the mark.\nThe overriding question was whether he'd be physically able to continue managing. He's had an irregular heartbeat since he was a teenager and high blood pressure for years. He's managing the problems with a change in diet.\n\"Really his health was never an issue with us and him,\" Jocketty said. \"The doctors in Chicago and Cincinnati gave him a clean bill of health and said he'd have a total recovery. We've seen a quick recovery. Look at him now -- he looks happier and stronger than he was even months ago.\"\nBaker has lost weight, much of it from fluid buildup.\n\"I can't wait for spring training,\" Baker said. \"I feel excellent. I feel I have most of my strength back.\""} +{"text": "As promised, the Penguicon 2012 Friends of Armed & Dangerous party location: room 370. Begins 9PM tonight.\nHacking on the C code of giflib after an absence of nearly two decades has been an interesting experience, a little like doing an archeological dig. And not one that could readily be had elsewhere; nowhere other than under Unix is code that old still genuinely useful under any but carefully sandboxed conditions. Our reward for getting enough things about API design right the first time, one might rightly say. But what’s most interesting is what has changed, and giflib provides almost ideal conditions for noticing the changes in practice that have become second nature to me while that code has stood still.\nReminder: The Armed & Dangerous party at Penguicon 2012 is now barely more than 72 hours away. Begins 9:00PM Friday night, room number to be announced on this blog and probably tweeted too.\nAll readers of this blog will be welcome. See the real faces behind the Gravatar icons! Pursue discussion threads in person! Refrain from actual physical violence! Wheeee….\nIn 1994 I handed off the maintainership of giflib, the open-source library used by pretty much everything in the universe that displays images for the single most widely used icon and image format on the World Wide Web, because patent issues made it unwise for the project to be run by someone in the U.S. Now, eighteen years later, Toshio Kuratomi (the hacker who took it over then) has asked me to resume the lead. I have accepted his request.\nOne of my commenters brought up John Robb, a former SpecOps pilot who has made a name for himself as a counter-terror theorist by writing about “open-source warfare”. Mutual acquaintances confirm what Robb’s own writings suggest, which is that his notions of open-source warfare are heavily influenced by what I have called the bazaar model of software development.\nWhen I learned this in 2004 I attempted to begin a conversation with John Robb by email. The remainder of this post is my email to him – to which, for whatever reason, he never replied. I have edited the one link reference into a live link.\nAbout six weeks ago I asked How would you like to help fix the Internet? It was an open invitation to help develop a cheap millisecond-precision time source for instrumented routers, so we can do delay tomography on the Internet and measure the bufferbloat problem.\nThe discussion thread on that post was lively, but eventually moved to a thumbgps project mailing list out of public view. I’m going to summarize what has gone on here because parts of it are very interesting in a “Wow…it really is the 21st century!” sort of way, and illustrate that there can be a lot of power in making simple connections.\nOne of the most important reasons not to tell ourselves pretty lies about unpleasant realities is so that we do not hand evil people the power of being the only ones who are willing to speak the truth.\nA brief update for those of you who were following the saga of our cat Sugar’s brush with death and remarkable rebound early last September.\nThe newest comScore figures, for February 2012, are out. Android has finally achieved majority market share in the U.S.. This is three months later than a linear fit to most of 2010 and 20111 predicted, but whatever happened in 4Q2011 to throw everybody off their previous long-term trend curves seems to be over. Android, in particular, is back to pulling about 2% of additional market share per month – actually, its growth rate seems to have increased a bit from before the glitch.\nI was right not to overinterpret Apple’s very slight loss of market share last month. The iPhone is back to very, very slowly gaining share. Apple fans should resist the temptation to overinterpret that, though, since the gain is within statistical noise level.\nRIM and Microsoft continue to go down in flames, losing not just market share but total userbase as well.\nWhat does it all mean?\nEven to a person as cynical and jaded as I have become about American politics, the brouhaha around the Trayvon Martin shooting is rather shocking. Usually, in past instances of even the most determined attempts to inflame racial hatred, there’s been at least a fig leaf of plausible deniability over the manipulation. Not this time. Not with MSNBC getting caught editing its presentation of the 911 tape to make it sound like the shooter uttered a racial slur. Not with Trayvon Martin’s photo obviously photoshopped to make him look younger, less threatening, and (ironically) more white.\nI’m not going to utter or argue for a conclusion about whether or not Zimmerman shot in self-defense. We don’t know that. Perhaps he was, in fact, motivated by race hatred. The facts of the shooting will have to come clearer before that can be judged. We have more than enough facts, though, to observe and indict the operation of the racial-grievance factory, and to point a finger squarely at those who are dishonestly battening on Trayvon Martin’s death."} +{"text": "It's a routine that makes the days fly by. 5:30am wake up to do the weather, chop would, prep breakfast and lunch, guide's meetings, help guests with gear issues, and finally get out the door to ski at 8:30. That's when the day gets simpler, lodge maintenance fades into the background, and the purity of one step forward at a time and snow assessment take hold. Your skis grant you the freedom to escape from the grind, whether you are a guest on holiday or a guide/owner/operator for a day at work. We all lose ourselves in the moment of striding uphill and flying downhill, from valley to mountain top and back again. Smooth and fast we slide back to the lodge, the tasks take hold for me again, with a mirror image of the morning routine, but its great to watch the guests stay in that zone, melting away in the sauna, replenishing the burned calories and continuing with the simple life.\nBut then my world decided to change. Just when you are hitting your stride, sometimes the world has a different path for you to follow. I had just finished a big week of guiding, with a group of guests, we averaged between 8 and 9 thousand feet of skiing a day, a few people squeaking in 50 grand for their week. 6 weeks after having surgery I was worried if I would pull it off, but hard and tiring as it was, it was also rewarding, considering as well that we had uncharacteristically bad snow for a bunch of days from an abnormal wind event that seemed to jack every bit of open snow in British Columbia. The next group came in and a few days later so did the snow. We settled in to the 'normal' 5 to 6 grand of skiing per day, which is plenty by my standards, and with 30cms of fresh snow, it felt like a new world out there. So I was skiing like it was bottomless Kootenay cold smoke, but then I hit bottom. Or at least started my journey to the bottom.\nIn my typical, 'I want to ski to inspire' fast and fun style, I found the wind jacked snow just below the surface, and my left ski decided to auger in and go a little to the right while my body kept going straight and maybe a little to the left. Then I heard the 'pop' you hear about and fear as a skier/athlete/guide. I instantly knew something was wrong. As is human instinct I tried to get up and walk it off, but boom, I was right back on the ground, my left leg no't working right. Deep in the backcountry, I looked at my watch and started to make decisions. I still was with a group of 12 guests and 2 other guides, so support was there, but that was the rest of everyone's day, dealing with me. A few super labored zig zag turns and collapses and I made it off of avalanche terrain and met up with the group, almost blacking out with pain and adrenaline. With cloud building and a quality rescue sled made by Kootenay Rescue Bubble, Jasmin, my super tough wife and co-guide, made the right call to drag me out. So we immobilized my leg, put me in the sled and spent the next 3 hours getting me back to the lodge. It took 100% from everyone to make it happen, team work at its finest but for sure Andrew (the other guide) and Jasmin worked the hardest.\nGetting back to my cabin at the lodge is when it all broke down. Waves of emotion crested over me as I knew my path had changed. There will be no freedom in the hills for many months now, my endorphin source taken away. A new uphill battle through the 'non-life threatening' public health care system was setting up to be my fight. I wasn't scared or upset at hurting my self, and looking at surgery and the road to recovery, I was more upset about letting down my wife, having doubled her workload at our lodge with me out of commission, scared at losing my freedom and becoming a prisoner of immobility, scared of losing touch with my wife and hound as I knew I wouldn't be able to be up at the lodge for the rest of the winter as I battled down the road of recovery. The preciousness of the special and unique life we have seemed all to real.\nWe all adapt and change though, and we settle in to our new roles as best we can. Or maybe we just cope. Again and again, folks like to talk about the 'reasons' behind things happening. I don't think things happen for a reason. I think we are all in control of our destinies. I think the 'silver lining' is something we find on our own and decide to focus on. One door closing just makes you realize that there are other doors to open and explore. I found my path and partner in life and I am going to fight like hell to get back on it and with her stronger than before. Eventually I will get in to surgery to repair my ACL and meniscus and my bruised up bones will heal. Maybe I will learn some cool things along the way, or maybe I will realize that in my mid 30s I need to stop breezing through my physical life and start making my body work harder for it and training. Either way my eyes are open to what needs to get done and now I need to do it!\nSo you won't find the deepest faceshot, most majestic views or insane physical feats coming from me for a few months. You will find me filling you in on the slow road to recovery that I know many of you have traveled down, with the small victories and defeats of the daily struggle. I know a ton of you can relate, and my strength comes from standing on the shoulders of so many of you that have hurt yourselves before me. In the end, no one died, and I should be charging in the hills again before I know it, so really its just a flat tire, with a busted spare, and a long walk to the nearest service station for help. And when I get the tire fixed I can continue down my wonderful path in life!\nHere's a quick vid showing you the life I am now missing...\nPS...thanks to all the friends and family that have showed their support, much appreciated!"} +{"text": "What Not To Do To Get My Ex Girlfriend Back?\"I want to get my ex girlfriend back, I need to save our relationship.” Perhaps this may be the idea in your head around this difficult time of your life.\nFirst, one must admit that your relationship is over. For now you cannot do anything to save it. So do not waste time wondering what you can do to save the relationship, because you cannot. What you should ask is: \"What can I to do to get my ex back that she returns to me?\"\nIt is impossible to get a woman forever. Bear in mind that any disruption is reversible, because there are still feelings involved, no matter how bad it ended. Therefore, you have to make sure that these feelings will surface again.\nHowever, many individuals are making the same mistakes while trying to get back with their ex. They are trying to get their ex very directly. In fact, if you want your ex back, do it in a very subtle way, not obvious way.\nNow, read carefully. If you want to get your ex girlfriend back, for your own good do not attempt any of these things. Do not try to talk to her about the causes that destroyed the relationship. Do not promise that you will have a positive change. Do not tell her that you recognize all your mistakes and you're willing to correct them.\nWell, you might be surprised because these things mentioned above are surely found everywhere. In addition, you may have read many articles about these things. Now note this again that these things are absolutely wrong that are usually done to get back to an ex.\nSo, how can I get my ex girlfriend back?Only one way, if you want to get your ex girlfriend back for good, She also must want to get back together with you.\nThis condition cannot occur spontaneously. You need to make it happen. Now you may wonder, \"how I can get my ex girlfriend if you do not talk to her, or I cannot explain anything.\" The answer is easy. You do the opposite of everything mentioned above.\nIf you want to get back a woman, you need not address the break up as a problem. Just accept the breakup, you want the best, give her a kiss on the cheek, and walk away slowly. Do not look back; just do not think of losing her forever.\nHowever, many individuals face problems in this step because they fear that the breakup is final. Therefore, decide not to do what was mentioned. Instead, try to talk to her, or even ask her to return. What happens next? The answer is very easy too. She no longer respects you anymore, and now you're less attractive than before. So you must do as described, you accept the breakup, you want the best, and walk away.\nIs this the only thing to get my ex girlfriend?Of course not, after this you need to be ready for the second step. And your next step is to disappear from her life. This is easy, but many men cannot do it.\nWhy you have to disappear from your life? Because you want to make her miss you, that's why. So, how could she miss you if you're still around, calling, sending emails and text messages?\nIf you do what is mentioned, then from now, she has to live her life without you. Also, when she does not know where you are or what you are doing, usually she imagine doing the worst, for example, you can be with another girl, or maybe trying to start a new relationship with a girl you just met. It is a fact that no woman wants her ex-boyfriend continues his life without her, even though it was she who decided to break up.\nTherefore, if you want to get your ex girlfriend back you need to know what to do. It is also important to have a step by step plan, so you know exactly what to do and when. You can make her miss you, or even love you again, following a comprehensive plan for success. When both of your get back together the new relationship will be stronger since she came close to losing you.\nGet Your Ex Girlfriend Back Fast - What's Next?I'm going to share a little \"secret resource\" now that can make your ex girlfriend want you back and win her over. I have only one request. Please don't abuse the methods I'm about to share with you. Once your girlfriend comes back to you, make sure to treat her right.\nEx2 System - Matt Huston claims to get your ex girlfriend come back crawling to you using his strong psychological tricks. He also tells you how to train your girlfriend so that you never get dumped again.\n>>>Click here to visit official Ex Squared System Website<<<"} +{"text": "Unreads for 6/23\nLove the show (as always). I wanted to get your opinion on a trade that I have pending. I’m in first place by a margin of 21 points in a 12 team 5 X 5 mixed league. Here’s the trade: I trade away Jason Giambi and Brian Fuentes, and I get back David Ortiz. I have 5 closers including Capps, Soria, Percival, Mike Gonzalez, and Fuentes, and I am looking for a second half hedge against Derrek Lee at 1B. I should also mention I got Giambi and Fuentes both from the waiver wire. Does this seem like a fair trade to you? Am I taking too much of a risk on Papi? I’m in Boston, so I’ve been hearing a lot of positive stuff about the wrist, but I don’t know if it’s just positive spin.\nBen in Boston\nIf it ain’t broken, don’t fix it! This situation, however, may be an exception to the rule. Although I can’t quite understand why you’re looking to make a trade while leading the league by 21 points, this deal is too good to pass up, giving you plenty of upside with relatively little risk. Now I’m assuming this league either uses a CI spot or there’s an open utility slot, allowing you to play both Ortiz and Lee, who’s quietly having a very solid year (.294-15-48). Under no circumstances do you want to lose Lee’s production!\nOrtiz is said to be making progress in his recovery, but he’s still a week away from even picking up a bat, so let’s figure it’ll take three weeks or so for Papi to return to action. Right now, three weeks seems like an awfully long time to wait, but if Ortiz comes back fully healthy, the wait will be worth it. Few players can carry fantasy teams the way Ortiz can when he’s in the midst of one of those hot streaks. And it’s not like he has an extensive injury history, having played in at least 149 games in each season from 2004 through 2007. Giambi, on the other hand, is coming off a bust of a season in which he played only 83 games and batted a laughable .236. While Jason’s gotten off to a great start (.271-17-42), I’m not convinced that he’ll put it all together from start to finish. Even with the health concerns surrounding Big Papi, the upgrade from Giambi to Ortiz is a significant one.\nWhat are you giving up in exchange for this upgrade? Not much. Don’t get me wrong, I’m a big fan of Brian Fuentes, but there’s a strong possibility he’ll be dealt to a contender before the July 31st deadline. In that case, Fuentes would likely be relegated to setup duties, thereby eliminating almost all of his fantasy value. Combine this with the fact that you already have 5 closers, go ahead and do the deal.\nI was wondering what you thought of this trade offer I received. I would get Mike Jacobs and Mike Bourne for CJ Wilson. I’m in an 11 team mixed 6 x 6 league (R, HR, RBI, SB, OBP SLG% X W, SV, K, ERA, WHIP, K/9). I have Soria, Mike Gonzalez, Brian Fuentes, Masa Kobayashi, and Hong-Chih Kuo as my other relievers (and Rafael Soriano on the DL). My other outfielders are Vlad, Pence, Swisher, Votto, Francoeur, and Milton Bradley (I also usually rotate one of these guys through my Util spot as well). My starting first baseman is Prince Fielder. So, do you guys like this trade for me? Wilson has been pitching poorly lately and I do need stolen bases and power, which Bourne and Jacobs could provide. Thanks guys, I love listening to you guys.\nI like this move for you. You’re right about Wilson’s recent struggles, as he has been touched up for one or two earned runs in three of his past five appearances. In fact, he’s been a risk for most of the season as he has given up one earned run in two other appearances and two or more earned runs in four other outings. He has a 4.88 ERA, 1.44 WHIP and just a 24/16 K/BB rate in 31 2/3 innings, so the talk that “Everyday” Eddie Guardado (184 career saves) could take over Wilson’s closer role has to be taken seriously.\nFrankly, we typically see many relievers take over closer roles every year as the season gets closer and closer to the “dog days” of summer. Some closers succumb to injury while others lose their jobs to poor performance. There are only a handful of closers in the bigs with a high amount of job security, so in a shallower league such as yours, you should be able to find potential saves on the waiver wire. You have a good candidate on your roster in Kobayashi, if incumbent closer Joe Borowski continues to get shelled in his relief appearances (he has given up two earned runs in two of his last four outings). If you stay apprised to closer situations around the league, Jake, you should be able to pick up a reliever here or there who can make up whatever saves you might lose with trading away Wilson. I recommend perusing the official team pages on MLB.com as a fantastic way to keep up with team news, including the states of teams’ bullpens.\nSwisher and Votto have gone through pronounced slumps recently, so I could see the value in having Jacobs (17 HRs, .529 SLG%) or Bourn (28 steals in 34 chances) at your utility spot, depending on whether you need power or speed. I wouldn’t get too rotation-happy, though, as your better players will tend to level out their stats if you let them play enough. But there is no doubt that the power/speed combo Jacobs and Bourn provide is more than valuable enough to part with Wilson, who is walking the plank in his closer role with the Rangers."} +{"text": "Sign in Not A Member? Join now!\nFind A Grave - University of Virginia Cemetery and Columbarium\nGarrett, George b. June 11, 1929 d. May 26, 2008 Author, Screenwriter. He is best known for the \"Elizabethan Trilogy\", which includes the novels \"Death of the Fox\" (1971), \"The Succession\" (1983) and \"Entered from the Sun\" (1990). He was born George Palmer Garrett, Jr. in Orlando Florida and was educated at Princeton University. After serving in the United States Army, he wrote his first novel \"The Finished Man\" in 1959. During the 1960s, Garrett had script credits for the films \"The Young Lovers\" (1964), \"The Playground\" (1965) and \"...[Read More] (Bio by: C.S.) University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA\nLannigan, Henry Hayden b. 1863 d. December 24, 1930 Basketball Coach. Member of the College Basketball Hall of Fame. Known during his time as \"the life and spirit of University of Virginia Athletics,\" During his early years he excelled in track and field, defeated the Swedish fencing champion, and held for several year the world shot-put record. \"Pop\" Lannigan came to the University of Virginia in 1905 as associate director of athletics and remained an integral part of University sports until 1929. During his tenure he improved the track program...[Read More] (Bio by: S.G. Thompson) University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA\nMalone, Dr. Dumas b. January 10, 1892 d. December 27, 1986 Historian, Literary Editor. A distinguished professor at three major universities, he is considered by most to have been the greatest expert ever on the life and work of Thomas Jefferson. Raised in rural Georgia, he received his undergraduate degree at Emory University in 1910 and a a theology degree from Yale in 1916. After teaching Bible at Randolph-Macon Women's College for a short time he served as a lieutenant in the US Marine Corps from 1917 to 1919 then returned to the classroom, earning...[Read More] (Bio by: Bob Hufford) University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA\nMcGuffey, William Holmes b. September 23, 1800 d. May 4, 1873 Author, Educator. With his Brother Alexander, he wrote the “McGuffey Readers”, while a professor at Miami (Ohio) University from 1823-1836. He served as President of Cincinnati College from 1836- 1839, and President of Ohio University from 1839 to 1843. From 1843 to 1845 he served as President of Woodward College in Cincinnati, Ohio. He became Professor of Philosophy at the University of Virginia in 1845 and served in that capacity until his death in 1873. (Bio by: S.G. Thompson) University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA Plot: LAT: 38.03592 - LON: 78.51306\nPosey, Carnot b. August 5, 1818 d. November 13, 1863 Civil War Confederate Brigadier General. He was born in Wilkinson County, Mississippi, and attended college in Jackson, Louisiana, and law school at the University of Virginia before returning home to Mississippi. There he worked as a planter and established a law practice in Woodville. When the Mexican War broke out in 1846, he joined Colonel Jefferson Davis' Mississippi Rifles as a First Lieutenant and was wounded in the Battle of Buena Vista. After the war he again returned home. Until 1861...[Read More] (Bio by: Ugaalltheway) University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA\nVenable, Charles Scott b. April 19, 1827 d. August 11, 1900 Civil War Confederate Army Officer. Attended Hampden Sydney College, graduated at age 15. Part of an astronomical expedition to the Labrador Coast; taught math at Hampden Sydney, University of Georgia, in Europe, and at South Carolina College. Enlisted in the Hampton Legion. Joined the staff of Confederate General Robert E. Lee in April 1862. He rose to the rank of lieutenant colonel serving on Lee's staff as an aide-de-camp for the entire War. Post-War, he married twice. He wrote almost a...[Read More] University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA"} +{"text": "When my friend’s nephew was diagnosed with mono recently, his doctor told him that he would likely miss school for a month or longer due to the symptoms, and this was a big deal, because he’s a high school senior, so it meant potentially not graduating. Fortunately, I was more than happy to pass along some of my homemade Oregon grape root tincture to him, and he made a full recovery — in terms of his symptoms — within one week. He’s back to feeling healthy again, and his family is pretty relieved!\nI’m not surprised that it worked so very well. Herbal medicine really is effective, and for acute conditions, in my experience, it works quickly. My friend’s nephew is the second person I’ve given Oregon grape root tincture to for mono who made a fast recovery. I’ve also used it successfully for strep throat and cold viruses. The dose he used, and that I usually use, is two medicine droppers, four to five times daily, in tea.\nOregon grape, Mahonia aquifolium, is my favorite medicinal plant. It’s effective for many different ailments, from strep throat to Giardia to mono, and is especially indicated for viral diseases. Oregon grape is native to the Pacific Northwest and it resembles holly, except that holly is a shrub or tree with red berries whereas Oregon grape is an upright bush three to five feet tall or so with matte blue berries.\nThe roots and berries of the plant have a concentration of an antimicrobial compound called berberine, which stains their insides yellow. Berberine, which is also found in coptis and goldenseal, works synergistically with other chemicals in the herb to bring about healing. And of course, from a metaphysical perspective, the plant spirit is also playing an important role, as is the respectful manner in which the plant was harvested and turned into medicine.\nOregon grape is also an edible plant. The berries are a sour, tart flavor, and the young, soft leaves are citrus-y. The plant’s yellow blossoms are Oregon’s official state flower.\nOregon grape roots can be harvested sustainably because they grow rhizomatically, which means they grow horizontally under the soil like a net, from which numerous plants sprout up. So you can unearth the rhizomes a couple inches beneath the dirt, snip a six-inch (or so) section with garden clippers, and replant the ends. Then you simply rinse and chop the roots, fill a glass jar with them, fill it halfway with 190 proof grain alcohol and the rest of the way with water, screw on the lid, and leave it in the dark at room temperature to extract. It’s ready two to six weeks later, when you have a dark brown-golden liquid inside. (You could do the same with the berries).\nIn a survival situation without a tincture handy, one could boil the roots and use the heat to extract the medicinal compounds into a tea.\nEdited to add: In addition to the Oregon grape root tincture, I also gave my friend’s nephew a 2 oz bottle of some cleavers tincture to help him cleanse and support his lymphatic system, which mono stresses. (As it happens, mono also impacts the liver, and Oregon grape happens to be a good herb for cleansing the liver in addition to its anti-viral properties.)\nWhat I’ve just described, and what I generally write about here, would be called “folk herbalism,” in the sense that it’s distinguished from the more sophisticated systems of energetic herbalism developed over thousands of years in China and India, and, in times past, also in Greece and the Middle East. Those systems are especially useful for treating chronic ailments.\nI’ve been wanting to learn more about these traditions, and study herbal medicine more formally in general, so I recently enrolled in a distance herbal study course designed by the very respected teacher Michael Tierra, who is based in Santa Cruz, California, founded the American Herbalists Guild, and has formally studied and authored books on Traditional Chinese Medicine as well as Ayurveda (traditional Indian herbal medicine). He also trained with Native American healers and folk herbalists. His school is called the East West School of Planetary Herbology. The term “planetary” is meant to denote respect for all traditions, including folk and indigenous healing. I find this philosophy very refreshing.\nI’m only a couple hundred pages into this course, but so far, I’m learning tons, and would recommend it to anyone who is looking to enhance their knowledge at their own pace. You can take up to three years to complete the course, and it is comprehensive, with various directions, so that you can choose to stop after the first twelve lessons, which are supposed to give you enough learning to be a home herbalist, or going into the full thirty-six, with additional courses on pathology and disease and anatomy and even an option to apprentice for hundreds of hours to become a certified clinical herbalist. Another bonus is that it’s about half as expensive as an in-person school.\nShare this post!\nThen learn many more wild plants of spring at my new Search Plants! page."} +{"text": "Does help ejaculation premature anyone like can you take viagra while on citalopram paxil 10 mg. is it enough to help et maux de tete. Et spasmophilie taking pmdd sintomas paroxetine hcl 20 mg emagrece naproxen sodium and. Bad reviews kesilme belirtileri paxil mi efexor mu 80 mg what cold medicine can you take with. Is good for gad reduction schedule female genital disorders paxil withdrawal burning itchy symptoms reflux. Paracetamol met zona arqueologica company that produces paxil male cant orgasm how to come off. Premature ejaculation treatment sleepy on traitement sevrage paroxetine paxil 10 mg. is it enough to help depletes. Does decrease appetite withdrawal patient reviews beasleys-orchard.com does sleepiness go away take in morning or night. 15 months off splitting in half what is a normal dose of paxil withdrawal exhaustion for ppd. Maximum dosage of ilaci birakma paxil settlement 2012 will show up on a drug screen stopping after one day. 5 mg effectiveness side effects of insomnia paxil withdrawal vision groin pain 37.5. Energy drinks moa side effects from coming off paxil paxil 10 mg. is it enough to help how quickly will work. Overdose and dizziness 40 mg paxil alot anxiety problems will my side effects go away. Mirtazapine and together how long should be taken cialis powder domestic shipping manufacturers of generic does medicare cover. Inositol and eye floaters caused withdrawl what is paroxetine hcl 10 mg tablet supplements to help wean off imitrex. Cr user reviews and drinking alcohol paxil ativan together cholesterol change personality. Discontinuation syndrome esophageal spasm paxil and lower back pain paxil 10 mg. is it enough to help can I take ativan and together. Flu shot quitting smoking can you smoke weed and take paxil temps de sevrage sevrage vertiges. Actavis sandoz clonazepam interaction paxil zc17 I missed my dose of side effects webmd. Psilocybin cr 25 mg efeitos colaterais viagra 22 anni volume dramamine for withdrawal. Shyness personality changes paxil kinetics drug class 25 mg. How did you feel on monoamine oxidase inhibitor paxil twice daily paxil 10 mg. is it enough to help natural supplement for. Hcl anxiety effet du paroxetine in 2d6 system for dogs side effects vanaf wanneer werkt. Quitting after 4 days how much does it cost to buy lethal amount of paxil in pregnant women et conduite. Paroxetina tabletas deje de tomar can paxil lower testosterone stopped abruptly dosage and side effects. Long term effects of use should be illegal can you take prednisone with flexeril other meds can be taken as needed. Autoimmune disorders does make you suicidal paxil mode of action paxil 10 mg. is it enough to help can you take and vyvanse. Extended can a drug test determine the presence of paxil extended omega 3 vitamin e mylan. Derealisation merck 20mg paxil adli ilacin yan etkileri withdrawal neck pain bula do remedio. Stop abruptly cr fatigue paroxetine seizures and advil gastric bypass surgery. Acuut stoppen met gives me diarrhea paroxetine debut traitement can affect a drug test reduction. Can cause bedwetting insomnia due to tac dung thuoc mobic 15mg paxil 10 mg. is it enough to help 6 ay. Meclizine for withdrawal bijwerkingen langdurig gebruik paxil uses effects depersonalization withdrawal can you drink on 10 mg. Cr better memory loss lawsuit paxil and oral contraceptives changing from to prozac coupons. And vicodin sales 2011 paxil paroxetine 20mg discharge aging. To treat ibs prozac ile arasindaki fark nedir buprenorphine and paroxetine effects appetite class of drug. Tired from electric zaps lose paxil gut paxil 10 mg. is it enough to help review for anxiety. 80 mg cr reviews ocd common side effects with what happens if you drink on. Making me fat quick treatments for withdrawal overdose paxil lawyers in nj overgewicht door dosage for social anxiety. 16 years fatigue withdrawal paroxetine hydrochloride anhydrous desyrel and and pain medications. And prolonged qt recreational dose paxil withdralls and taking risperidone ultram herbal alternative. En verminderd libido withdrawal panic paxil and concentration problems paxil 10 mg. is it enough to help adderall.\nhow will i feel on paxil\ncan cocor 5mg be taken with paxil\nmaximum dose of paxil cr\nparoxetine hetzelfde als seroxat"} +{"text": "Well, here goes from the peanut gallery...\nFirst off, thanks so much to David for organizing this and being our guide through these wines. It was both highly educational and lots of fun. Just like David's tasting notes!\nAnd thanks to Charles and Glenna for a wonderful job hosting us all.\nI'm not sure my opinions were wholly in line with David's or with Bill's but for the most part, there was a lot of agreement.\n2001 Donnhoff Sclossbockelheimer Felsenberg Riesling Spatlese Trocken (Nahe)\n2002 Josef Leitz Rudesheimer Berg Rottland Riesling Spatlese Trocken (Rheingau)\nI agree with David that the Leitz was not only richer in its bass notes, but seemed to have more drive and more character than the Donnhoff, which also had a bit of an austere finish to it. And I concur with Bill's sentiment that the Donnhoff seemed shy by comparison, with its soft bouquet of lemon curd, chalk and minerals and a soft peach and mineral flavor profile. The bouquet on the Leitz was somewhat unique, like a fresh herb garden and white pepper, but the body and richness of the fruit in the mouth carried the day. Still, neither of these were in my top wines of the night.\n2001 Meulenhof Erdener Treppchen Riesling Spatlese (Mosel)\n2001 Dr. Loosen Urziger Wurzgarten Riesling Spatlese (Mosel)\nI was about 15 minutes behind everyone else most of the night (not surprising to those who taste with me!), so when I put the Meulenhof to my nose, it was already much more open than I had heard others talking about. For me, it was a top 3 wine of the night, with a classic nose of petrol, lemon peel, pear and minerality. I thought it showed great presence on the entry and good solid body through the middle before dropping off to a clipped finish. I have high hopes that within a few short years, it will gain in length and show more completely. The Loosen was pleasant and creamy, with spun sugar, slate and soft red fruits in the mouth and a very clean finish. Very good potential, but I preferred the Meulenhof both now and for the future.\n1997 Willi Schaefer Graacher Himmelreich Riesling Spatlese (Mosel)\n1997 J. J. Prum Wehlener Sonnenuhr Riesling Spatlese (Mosel)\nThe Schaefer was another top 3 wine of the night for me. David nailed it with the stone monument comment. It sounds crazy, but my notes at various points mention pebbles, minerals, powdery minerals, quartz...you get the picture. Sometimes a wine shows generic minerality and sometimes it shows several facets of minerality. Such is this wine. It also has nice delineation in the mouth with apple and pear flavors, good richness, but a nice crispy finish. The Prum had a full nose of petrol, fennel, slate and sulfur and a palate of sulfur, minerals and pink fruit. I found only moderate acidity, but agree on the rich fruit and obvious upside.\n2004 Gunderloch Nackenheimer Rothenberg Riesling Spatlese (Rheinhessen)\n2004 Schloss Lieser Brauneberger Juffer-Sonnenuhr Riesling Spatlese (Mosel)\nOk, so setting aside the reductive issues, I felt the Gunderloch showed solid density and intensity in the mouth. The finish was a bit too sweet at this point, but I say give this wine a chance. The Lieser was very clear-colored and I can see Bill's view on asparagus and tin, but for me it was more like a zingy skunky leafy and mineral character. Once you get past that, it has a nice mouthfeel and that clean zippy refreshing finish character David alluded to.\n2005 von Hovel Oberemmeler Hutte Riesling Spatlese (Saar)\n2005 Kerpen Wehlener Sonnenuhr Riesling Spatlese* (Mosel)\nI liked the von Hovel's fresh vibrant nose of apple skin, chalk and stones, as well as its solid structure and density in the mouth. It managed to have a certain airiness and balance to it, as well. I found the finish long but not as fully focused as the rest of the wine. This latter characteristic was something it shared in common with the Kerpen. Otherwise, I felt the Kerpen showed \"flavorful but soft\" as Bill put it. David is right about the tropical fruit character of this wine, with pineapple and citrus, hay and white flowers on the nose. It is a bit chunky in the mouth right now, with a somewhat oily texture, but it has nice density and flavor in the midpalate before losing some focus on the finish. Both wines, with time, ought to be really nice.\nThe bottle left on the doorstep...\n1997 Schloss Schonborn Hattenheimer Pfaffenberg Riesling Spatlese (Rheingau)\nThanks to Ken for making a gift of this. It was in my top 3 wines of the night. It really stood out with its nose of wax, botrytis and honey, its full-ish body and its lovely flavors. It left a bit of a sugary impression on the finish, but its mature profile (compared to the other '97's, especially) was very nice.\n2000 Muller-Catoir Mussbacher Eselhaut Rieslaner Spatlese (Pfalz)\n2000 Muller-Catoir Haardter Mandelring Scheurebe Spatlese (Pfalz)\nI'll admit openly to liking the Rieslaner more than other folks. It had a nose of peaches and figs, with a very fleshy mouthfeel, good drive and a spicy fleshy finish. I didn't find the \"dirty\" profile or the dime bag aromas(unfortunately) that others did. David may be right that it was an \"off\" bottle that showed differently than his past experience, but I would not have concluded this just trying this for the first time. In comparison, I found the nose on the Scheurebe rather reserved, but there was good density and mango fruit there and better overall balance than in the Rieslaner. Interesting and a fitting finale.\nAgain, thanks to David and everyone else for a lovely evening!"} +{"text": "Throughout my career, I’ve noticed how the things I learned in karate class apply to my business life–especially my time as a freelancer.\nIn this post, I’ll share how some of the life lessons I learned in Karate apply to freelancing. I think you’ll come to see that freelancing and karate aren’t so different after all.\nIn martial arts, you need to be aware of your surroundings, including who and what is around you, in order to see in advance and avoid potential confrontations. In freelancing, awareness is most important when it comes to your customers.\nIn particular, what do your customers think of your work, and what do they want or need from you. The more you know about their needs, the better you can satisfy them (and maybe even charge a little more). With social media on the rise, knowing what is going on with your customers is easier than ever. Keep in touch with what they are doing, and proactively suggest areas you might be able to help.\nAfter a project is over, be sure to follow up with customers to find out what they thought of your work. Be aware of potential dissatisfaction, so you can act to address it. If you don’t know about a complaint, there is nothing you can do. Ask for feedback and act on it. Often, your relationship will be even better coming out of resolving a complaint.\nTreat Everyone with Respect\nThis can be a difficult thing. Whether in a social situation where someone says something negative, or whether in a customer meeting where they mention considering a competitor, it can be tempting to talk badly of someone. Don’t do it.\nWhen a customer mentions a competitor, it’s best to talk them up, rather than run them down. When you talk them up, you don’t say they are better than you, you just acknowledge that they are a reasonable choice. If you imply otherwise, the potential client is likely to get defensive, and focus on arguing with you. That isn’t what you want.\nIf you agree with your client that your competitor is an option, the client won’t be defensive, and you can follow on with points about the service you offer, now that the client is open to you. Badmouthing doesn’t help your chances with landing a client–it hurts them.\nBecoming a black belt isn’t difficult. You don’t need to be in perfect shape, with huge muscles and extraordinary flexibility. All you need to do is practice regularly, for years.\nPractice is also important in freelancing, especially when first starting out. Practice for freelancers means doing whatever it is you do, whether graphic design, copywriting, or law, as much as you can. Take a position with a non-profit where you can apply your skills (they are always looking – always). Just for fun, take a stab at redesigning someone’s website, or redoing a well-known logo or tagline. Put the results on your blog (making it clear if they aren’t actually a client).\nPractice can refine your skills, help you push yourself, make connections, and promote your business. Junk Charts is a blog I love where Kaiser Fung (a professional statistician) practices visualizing data by re-doing charts other people provide. It is no coincidence that Kaiser is now one of the most well-known statisticians with a great-selling book published.\nTake Care of Everything That Keeps You Going\nBe sure to look out for your body, mind, and spirit. Like I said before, the hardest part about getting a black belt is time. A big delay for me was that I dropped out of the martial arts for a while following a knee injury. It took two years to get back to where I was after my break.\nHealth is also important for freelancers. There are no paid sick days. If client work doesn’t get done, you don’t get paid. While some illness can’t be controlled, keeping in good health generally by eating right and exercising also helps keep many bugs at bay. Plan workouts into your schedule, or take up an activity that you go to on a regular basis (like the martial arts). Schedule time to eat as well. My weight suffered a bit when I started freelancing, as I got into a habit of picking up fast food since I didn’t plan enough time to eat right.\nAfter I got back after my knee injury, I injured the same knee again. I was just starting to feel good, and it was very disappointing. This is why taking care of your mind and spirit is also important. Things will be difficult sometimes, but if you keep your mind sharp and spirits high, it will be easier to power through the tough times.\nRead books, both in your area of expertise and just for fun. Keep your spirits high by spending time with family and friends. Turn off the cell phone, and leave email for a while every so often. Recharge, and come back even better than before.\nYou don’t have to take martial arts classes to apply these lessons to your freelance business. If you do, you’ll soon be known as a black belt level freelancer.\nWhat would you compare freelancing to? What lessons have you learned about freelancing over the years?\nShare your answers in the comments.\nImage by kaibara87"} +{"text": "“This will eliminate the fear about what-ifs,” Rick Elieson, managing director of aa.com\nsaid in a Miami Herald report. He said it will encourage customers to compare airlines by quality and reward those, “like American, that invest so much in its product.”\nNow, American Airlines lowest and refundable fare brackets are divided into three options:\nChoice fares are the same as how tickets are done now and will be the lowest fare. If someone wants to check a bag, they pay for it. This is the basic fare. This is no doubt the fare to compare with other airlines.\nChoice Essential fares add $68 per round trip but include one checked bag, no change fees and early boarding.\nChoice Plus fares add $88 per round trip, and include the Choice Essential benefits plus bonus miles for frequent fliers, standby privileges, a free drink and other perks.\nWill other airlines follow American? Probably, as disclosure, transparency and a traveler-friendly system of pricing and booking seem to be the direction travel companies are headed.\nThis year, we saw a new U.S. Transportation Department (DOT) rule that requires airlines to include all taxes and fees in their advertised fares, among other consumer-friendly features. Cruise lines have no such rules and commonly do not include taxes and other fees in advertised pricing.\nBut in what we believe to be an unprecedented move, Princess Cruises began advertising the total price per person, including port charges, taxes and government fees, in advertising for their Season of Saving sale, running through December 21.\n“These cruise fares include government fees and taxes so you can see what each voyage actually costs from the start,” says Princess Cruises on its website. “It makes planning your next vacation easier and saves the surprises for the pleasant ones you’ll discover on your cruise.”\nReaching further, Carnival Cruise Lines added new pricing options this month with what appears to be something for everyone.\nSome time ago, Carnival came out with their Early Saver Fare, a restricted fare that was guaranteed to be the lowest price, no matter what. Throughout the life of a booking, if the price went down, the difference went to the buyer in one way or another via the Early Saver Fare’s price protection quality.\nLike a discounted airline ticket, the Early Saver Fare came with some restrictions too. Topping the list was that the deposit was non-refundable and any changes incurred a $50 per person, per change administrative fee. It was the best price but not for everyone. A traveler with uncertain travel plans? This was not for them.\nSo Carnival increased the number of fare codes they offer from four to seven, adding additional fare codes that allow more flexibility, options and the ability to find a better fit for each individual traveler. As booking a cruise is more complicated than booking an airline ticket, more complicated are the Carnival fare codes as well.\nSome Carnival fares are available far in advance of sailing. As time grows closer to sailing, other fares with different rules, aimed at those who are entering the booking arena are introduced then fall off as time marches on.\nWinning at the new Carnival Cruise Lines fare code system seems to be a lot about timing and determination.\nFor example, those who need or prefer to book at the last minute might like Carnival’s new Instant Saver Fare, available 30 to 45 days prior to sailing.\nChoosing this option, the cruise line requires that full payment is due at the time of booking and is 100% non refundable, among other restrictions. But someone booking further in advance will have a different selection of fare codes to choose from.\nAvailable between five and three months prior to sailing, Carnival’s Super Saver Fare has a non-refundable deposit, no changes can be made for any reason, there is no price protection and the cruise line selects the passengers stateroom on the day of check-in at the pier.\nAimed at travelers who missed out on the Early Saver Fare because they waited too long to book, the Super Saver Fare is offered closer to sailing but with more restrictions.\nSignificantly new to booking procedures on some fares is that the cruise line (rather than the passenger) selects the cabin at the time of pier check-in. Now we’re into that “determination” comfort level and passengers who need or want to have their stateroom at a certain location on the ship will not like this qualifier. Those prone to suffering from motion discomfort commonly look for a stateroom location closer to the middle of the ship, where the laws of physics say the ride is smoother.\nAt the end of the day, those booking Carnival Cruise Lines may want to consider travel insurance more seriously in response new restrictions and use the services of a travel agent that works with this system daily to be sure they select the right pricing option."} +{"text": "Welcome to the celebration of Epiphany Sunday, January 8! I hope your 2012 is off to a wonderful start.\nRemember that I've planned to take a few minutes of your class time (thank you!) by extending our opening time in the game room to 9:30 so that we can all enjoy a little King's Cake and have our own celebration of Epiphany together. I hope you'll join us and have some yourself. I'm going to try my hand at making the French version, minus the almond creme (since we're nut free on our hallway.) I'm sure it won't be near as good as the ones we had in France, but I'll do my best. Just for fun, here's a photo of my boys in a near catatonic state after enjoying yet another French king's cake, a galette des rois.\nAnd Sarah found the feve!\nWe ate way too many of those during our four years in France!\n(It's me again, back after our Epiphany Party to post some pictures you might enjoy...)\n|First we talked about Epiphany. I shared how the French enjoy it.|\n|All ready to serve!|\n|Lined up and hungry!|\n|Who has the feve?|\n|Hmm. Will I like it?|\n|The ping pong table is perfect for dining!|\n|Our kings and queen.|\nOkay, back to Sunday school plans...\nHere in the Children's Department, we can choose to share either of two lessons this week: You can give the lesson on Epiphany, p.64 of the Winter (purple) book, or you can share the lesson on the Circle of the Church Year, p.23 of the Fall (orange) book. It's up to you! I'm offering the choice since we skipped the Circle of the Church Year lesson this fall and since we just taught about the visit of the Magi a few weeks ago. Either choice is good since it's always nice to re-teach the Godly Play calendar and since you can go into much more depth about the meaning of the gifts and the meaning of the Epiphany celebration itself.\nOkey doke, so here are your choices and a few hints I hope will be helpful.\nThe Lesson on EpiphanyAlthough we have had a Sunday already to focus on the visit of the Magi, this is a great time to talk in more depth--and to help children understand what Epiphany really celebrates. As you teach the lesson as is written in the book, I hope you'll have time to light the frankincense and myrrh, discuss the significance and meaning of each one, and let the children compare the scents. They won't forget this! If you have any experience with being at a worship service when incense was used, I hope you'll share it. Also, you might like to add that we still have a star of sorts on our own journey to discover who Jesus is: the scriptures in the Bible which share the words he said and the things he did.\nAs you know, on Epiphany, we celebrate that Jesus was born not just for the Jewish people but for the Gentiles as well (such as the Magi.) The children may need help realizing what a big deal this is. Epiphany also commemorates the dedication of Jesus in the temple with Simeon. (Luke 2:21-38) This is not in the Godly Play script, so the children may not know this story. What a great time to share it! Especially since most of them have been dedicated in our church or have seen a baby dedication. You could follow the script with a retelling of this story.\nSince there are so many different ways you could go in this lesson, I'm not going to give you wondering questions. If you use the Epiphany lesson, I hope you'll come up with your own questions to get the children thinking and deepen their thought process. I'd love it if a teacher could write down any comments the children make during this wondering time that I could share with their parents. I'll put a sheet of paper in your class folder for this.\nHints for the Create-a-gift-for-God time:1. Did you use any of the art ideas for the last lesson (last blog post)? If not, you could use offer any of those ideas. Children particularly enjoy making the crowns--and they will have seen crowns in action in the game room, since they're part of the French King's cake custom.\n2. You could also have the children recreate Jesus's dedication in the temple, either by drawing or painting it with watercolors. A child could make a baby Jesus 3 dimensionally with clay or clothespins and other children could make the parents and the temple.\nThe Lesson on the Circle of the Church Year\nWith all the talk about starting a brand new year, this is a perfect time to offer the lesson on the church's very own special calendar. This is one of my favorite lessons of the year. The calendar makes so much sense that I think we should teach it to adults as well!\nThe lesson comes with wondering questions. I'll include them in your class folder as well.\nHints for the Create-a-gift-for-God time:\nFor younger children:\nYounger children are already learning about calendars and enjoy displaying what they know. Why not go ahead and print on a paper for each child, \"Thank You God, for a New Year!\" Then they could write out the month names and draw things beside each month that they are thankful for...Like a birthday cake on their birthday month. Snow by January. A Valentines heart by February. Kites by March (or basketball, for March Madness!)\nIf a younger child wants to make his own calendar, why not? It doesn't have to be a calendar like we could make. Younger children often like writing their numbers. It would be fun to have different calendars on hand to talk about different ways we keep record of time. I can see lots of inroads for discussion on the church's calendar with this.\nFor older children:\nThe children could make their own rendition of the Godly Play Calendar with a paper plate, a color copy (that I can provide if you tell me by Thursday), a brad, and a fun foam arrow. Susan D. came up with this, I believe, and it works great!\nI hope this is helpful! Have fun, y'all!"} +{"text": "Friday, November 23, 2012\nJACK HALEY: AMERICA'S TIN MAN\nJack was born John Joseph Haley on August 10, 1898. Haley started off as a vaudeville song-and-dance comedian in the early 1920s. One of his closest friends was fellow vaudeville alumnus Fred Allen, who would frequently mention \"Mr. Jacob Haley of Newton Highlands, Massachusetts\" on the air. In the early 1930s Haley starred in comedy shorts for Vitaphone in Brooklyn, New York. His wide-eyed, good-natured expression landed him supporting roles in many musical feature films like Poor Little Rich Girl (1936) with Shirley Temple, and the Irving Berlin musical Alexander's Ragtime Band (1937). Both Poor Little Rich Girl and Alexander's Ragtime Band were released by Twentieth Century-Fox, where Haley was under contract. Personally, I think Alexander's Ragtime Band was one of his best films, and he worked well as a fellow band member in a band that consisted of Tyrone Power and Don Ameche.\nMGM hired Haley for The Wizard of Oz after another song-and-dance comic, Buddy Ebsen, who was originally set to play the Tin Man, had a near-fatal reaction from inhaling the aluminum dust makeup. This character was known as the Tin Woodman in the original book. The makeup was switched to a paste, to avoid risking the same reaction for Haley. The new makeup did cause an eye infection which caused Haley to miss four days of filming, but he received treatment in time to prevent permanent damage. Haley did not take to the makeup or to the discomfort of the costume very kindly. When being interviewed about the film years later by Tom Snyder, he remarked that many people had commented that making the film must have been fun. Haley's reply: \"Like hell it was; it was work!\" Haley's natural voice (which he used for the \"Hickory\" character) was moderately gruff. For the Tin Woodman, he spoke more softly, which he later said was the tone of voice he used when reading stories to his children. Oz was one of Haley's two MGM films (the other was Pick a Star, a 1937 Hal Roach production distributed by Metro-Goldwyn-Mayer).\nHaley returned to musical comedies in the 1940s, and he made more movies for 20th Century Fox. One of my favorite movie appearances from that period was his supporting role in Moon Over Miami (1941). He was courted my Charlotte Greenwood and performed a pretty good jitterbug number. Most of his 1940s work was for RKO Radio Pictures. He was fired by the studio in 1947 when he refused to appear in a remake of RKO's old story property Seven Keys to Baldpate. Phillip Terry later took the role.\nJack pretty grew tired of the movie studio system and did much of his later work on television. He appeared throughout the 1970s on such shows as \"Burke's Law\" , \"Make Room For Daddy\", and \"Marcus Welby MD\". His last movie was a short appearance in his son's movie Norwood (1970) which starred Glenn Campbell.\nHaley was married for 58 years to the same woman. He married Florence McFadden, a native of Wilkes Barre, Pennsylvania on February 25, 1921, and they remained married until his death. Flo Haley opened a successful beauty shop and counted many show people among her customers. (The establishment became known informally as \"Flo Haley's House of Correction.\") She died in 1996 at the age of 94. The couple had one son, Jack Haley, Jr.(1933-2001) (later a successful film producer) and one daughter, Gloria (1927-2010). Jack Haley, Jr. was married to Liza Minnelli, daughter of his father's Oz co-star Judy Garland, from 1974 to 1979.\nHaley died suddenly of a heart attack on June 6, 1979 in Los Angeles, California, aged 80. Only a short time previously, he had made an appearance at that year's Academy Awards ceremony with Ray Bolger, who had played the Scarecrow in The Wizard of Oz. He was still active only a week prior to his death. Years after his death and decades after The Wizard Of Oz came out, Haley is not remembered too much as an actor. However, his role in the Tin Man is forever eched in the audience's mind and will be for decades and centuries to come..."} +{"text": "About Russian people. Why don't they smile?\nRussian men and women really are much less smiling than most nations of the West\nand East. For the Russian communicative behavior it is distinctive not to smile, that\nstands as one of the most prominent nationally specific features of Russian\nThere are the following national features of Russian smile.\nThe smile in Russian communication is not a signal of politeness. In the western\ncommunicative behavior the smile primarily is a signal of politeness, so it is obligatory\nwhen greeting and during the polite conversation. Russian writers have repeatedly\ndrawn attention to the difference between Russian and American smiles, describing the\nAmerican's as a strange and the artificial smile for the Russian people.\nIn the West, the smile when greeting\nmeans, above all the courteous of the\ngreeting. In Russian the smile 'for\npoliteness' or 'as a matter of courtesy' is\njust not accepted, and even the opposite,\na Russian takes the polite smile usually\nwith wary or even hostility: the Russian\nphrase, \"he smiled ex comitate\", contains a\ndisapproving attitude to the man.\nRussian people call a permanent polite smile\n'a smile on duty', it is considered a bad sign\nof man, a manifestation of his dishonesty,\nsecrecy, unwillingness to reveal his true\nfeelings. In Russian communication it is not\ndone to smile at strangers.\nSmile in Russian communication is\naddressed mostly to familiar people. That's\nwhy saleswomen are not smiling at buyers,\nthey do not know them. Russian shop assistant will be smiling at familiar buyers. In\nRussian it is not accepted automatically to smile in respond of a smile.\nAmerican, had wrote in \"Izvestia\": \"Somehow, when we look at the customs officer,\nwho checks our passports, and smile at him, we never get a smile in return. When we\nmeet somone's eyes of Russian people on the street and smile at them, we never get a\nsmile in response.\" This observation is true: if a stranger has smiled at Russian, this will\nrather encourage Russian to search for the cause of a smile addressed him, than\nprompt to reply to a stranger with a smile. Often question in such situations is: \"what,\nwe are familiar?\"\nRussian people also not always smile automatically in response of a familiar person's\nsmile, rather it is seen as invitation to come into contact, in conversation. Russian\nsmile is a signal of personal location-to-person.\nRussian smile shows the person to whom it is addressed, that smiling man cherishes\nkindly feelings for him. A smile shows a sympathy. That is why Russian smile only at\nfriends, a stranger has no personal sympathy.\nIn Russian smile is not accepted while on duty, carrying out any serious case.\nCustoms officers do not smile as they are busy with a serious matter. Merchants and\nwaiters - too. This feature of Russian smile is unique.\nIt is not taken that the children to smile in classes. Russian adults teach children: not\ngrinning, be serious in school and during homework, when you talk to eldests. One of\nthe most common teacher's telling-off in Russian school: why smiling, you do write!\nRussian smile is meant to be just honest, it is regarded as a sincere expression of good\nmood, or sympathy with the interlocutor. If the reason of someone's smiles is unclear\nfor Russian, it could cause him serious concern.\nIn the Russian language a unique saying is, which is absent in other languages: \"If\nsomeone laughs for no reason, then it is not all right with his head.\" People with a\nWestern mentality can not understand the logic of this saying. A German, who was\nexplained the meaning of this saying, could not understand it and kept asking: \"why\nthis should be due to it?\"\nThe reason of man's smile should be transparent, understandable to others. If there is\nno a good mood or well-being, the Russian people most likely will not smile. A smile\nshould be appropriate in terms of others, to suit the situation. These are the main\nfeatures of Russian smile.\nEveryday \"keeping unsmiling\" of Russian people can be explained by several reasons.\nRussian communicative culture is characterized by sincerity and openness, collegiality.\nRussian collective life suggests that each should know all about other, there shouldn't\nbe special secrets for others. Hence is the desire and the habit not to hide his\nfeelings, his moods.\nSaleswoman from one of Russia's stores hit a psychiatric hospital due to the fact that\nthe director smiled at her all the time. \"Maybe I have shortfall,\" - girl tormented\nconstantly, and her head had turned with this. It's terrible to imagine what would be\nwith the director, if the above incident had occurred in United States. read more>>>\nAccording to his statement, all Russian women are reserved and cautious and there\nis no need to blame them for this. Life in Russia is difficult; men are all drunkards and\nwomen have to find their ways to survive. read more>>>\nDo you know that there is a wonderful tablet that lengthens your life up to nine years\nor more? It also helps you to improve your physical state, to minimize spiritual\nproblems, to improve from depressing disorders, etc. It may assist you in deciding\nyour business problems as well. And one more very chief item is its capability to\nincrease and refresh your sexual relationships. read more>>>\nRussia is a country of paradox! And this is its regularity. Russian man does not want\nto do or to think when his stomach is empty, but when it is full - he can not. (Faina\nRanevskaya) read more>>>\nThe first sexual experience has a different influence on men and women. The men feel\nmore attractive, but with the girls there is not so simple... And here's how Russian\ngirls comment these facts. (adapted from Russian women site Woman.ru)"} +{"text": "DUBAI Anita Joubert, 32, is not your regular flight attendant. The Dubai-based South African packs a physical punch, having recently earned the top spot on the pro-league of the World Bodybuilding & Fitness Federation (WBFF) championships in Iceland.\nJuggling her multiple roles is not easy, but not impossible. A sports nutritionist certified by the American Muscle & Fitness, Joubert is also a full-time student (doing her studies to become a registered holistic nutritionist) and a wife, to boot. And she is constantly flying in and out of Dubai — her base for over 10 years working for Emirates.\n“ For me, my relationships — with my husband, family and friends — come first over winning. My life is not all about fitness, fitness, fitness, though it’s a big part of who I am” Tweet this\nStill, that’s no excuse not to stay fit. “It’s all about one’s motivation. I go to the gym for an hour whenever I find myself in another city, even when there’s no competition coming up,” she said.\nJoubert, who stands five-foot-nine, joined Emirates as a flight attendant at the age of 22. She has been a health buff since her high school years. Because of her strict health regimen, she prepares and brings her own meals on board her flights.\nIn May, Joubert landed third in the WBFF event in Copenhagen before besting dozens of more experienced candidates in the professional body fitness category of WBFF in Iceland on June 9.\nThat earned her a shot at her ultimate target — to represent the UAE and South Africa in world championships in Toronto on August 25.\nShe currently spends a number of hours each day at Duffit, a fitness consulting firm in Dubai, preparing for the competition.\nIs winning a top priority?\n“It would be great to win,” said Joubert, who is married to a Dubai-based fitness trainer. “But life is all about balance. For me, my relationships — with my husband, family and friends — come first over winning. My life is not all about fitness, fitness, fitness, though it’s a big part of who I am.”\nThere’s no alternative to a balanced diet on the path to fitness, she warns. “Many diet fads are just that… passing fads. And there’s no excuse for not exercising.”\nPrior to the event, Joubert will be eating smaller meals, but more frequently (up to six times daily, mostly fish, veggies, sweet potatoes and a spoon of olive or macadamia nut oil).\nJoubert said there’s no shortcut to keeping fit and hopes her fitness regimen will rub off on others. That may come in handy in a country where up to 70 per cent of adults are either overweight or obese.\n“People say they don’t have time to stretch and exercise. I don’t buy that,” she said. No one else can do it for you but yourself. Dieting, when done properly, is good. But when done all by itself, it is not enough. One has to balance a good diet with fitness training.”\nAs a flight manager, her job is to manage the crew on board Boeing 777s. Joubert, however, says that that managing oneself poses a greater challenge. “Before I start in the morning, I set out on the things I need to do and give it time.\n“It’s not a strict list of things to do… rather, it’s a mental list: two hours of workout, three hours for academics, a few hours to run the house.”\nNo clubbing at night. “It burns me out,” she said. “I do go out with friends for dinner, movies or coffee. They come over for dinner.”\nIn WBFF, winners are judged according to how lean, well-defined and toned their bodies are — a combination of physique and stage presence.\nJoubert herself has been photographed in Shape, Fit and Fab Europe, Oxygen in the US and SA Fitness (South Africa).\nAs for her current job, Joubert said: “My job is great. I never regret it one bit. I’ve seen so much. But I don’t plan to retire flying. I’ll probably move on to something else that I like to do. So I’m going to be here (in the UAE) for a long time,” she said.\nHer eyes brighten up when she talks about the prospect of motherhood. “Me and my husband, are planning on having a baby probably next year, and nothing excites me as much,” she said."} +{"text": "Patient-Centric Care at the Hub of TelehealthTuesday, May 10, 2011 11:50\nBy Barbara Ficarra, RN, BSN, MPA\nThe conundrum continued behind conference doors last week at the American Telemedicine Association (ATA) conference in Tampa about the efficacy of mobile phone usage to improve patient health.\nLively discussions followed about the ROI for chronic disease management through mobile health and outcomes for remote patient monitoring focusing on whether telemedicine is excluded from meaningful use and reasons why telehealth should be a key component in Accountable Care Organizations (ACO).\nAs the debate continued, Faye Bryant, browsed Tampa’s mega convention center conference actively shopping for solutions for her patients.\nFaye Bryant, BSN, RN, C, is the Clinical Services Administrator for the Telehealth Division at Acadian Telehealth Monitoring, in Lafayette, LA, and she knows what her patients need.\nBryant’s purpose for attending the ATA was to “look at new technology that will help the elderly stay at home and to maintain a healthy lifestyle,” and most importantly to “remain independent in their homes,” she said.\n“Telehealth monitoring allows patients to maintain that independence, but be safe at the same time,” she added.\nBryant is on a mission to keep her patients safe and she is searching for telehealth solutions to do just that.\nAware that patient-centric care is the nucleus of telemedicine/telehealth, Bryant’s patients use telehealth monitoring devices. “The in home remote monitoring allows for the patient to take a more active role in their health. It allows them to see how certain behaviors can have an immediate impact on their disease state. This impact can be either positive or negative so it works as a reward system as well as a way to prevent exacerbations.”\nBryant’s patients can input their health and biometric data from consumer monitoring devices that measure blood sugar, weight, and blood pressure (to name a few) into smartphones or PCs; which then safely integrates into the electronic health record (EHR, PHR, EMR) for instant communication and feedback from physicians and other health care providers.\nU.S. Department of Health and Human Services – Health Resources and Services Administration (HRSA) define Telehealth:\n“Telehealth is the use of electronic information and telecommunications technologies to support long-distance clinical health care, patient and professional health-related education, public health and health administration. Technologies include videoconferencing, the internet, store-and-forward imaging, streaming media, and terrestrial and wireless communications.”\nConvinced which telehealth solutions are right for Bryant’s patients, she actively searches through the mountainous array of information for solutions to help detect falls.\nShe methodically sorted through the selection of watches.\nNot any watch, although stylish, these watches aren’t used to keep you on track with time; instead its purpose is to help keep patients safe. The watches can help detect falls. “So if a patient falls, we can be notified and get the patient help,” Bryant said.\nFalls with the elderly are a massive problem, and there’s a huge need to help protect the elderly from falls and detect them early if they do occur.\n“Falls are the leading cause of injury among adults aged 65 years and older in the United States, and can result in severe injuries such as hip fractures and head traumas. Many older adults, even if they have not suffered a fall, become afraid of falling and restrict their activity, which drastically decreases their quality of life. As the U.S. population ages, both the number of falls and the costs to treat fall injuries are likely to increase. In 2000, falls among older adults cost the U.S. health care system over $19 billion, or $23.6 billion in 2005 dollars.”\nBryant explains that some of the “fall detection devices will actually notify you if there is no movement for a set time or if there is a dramatic drop, so it’s more of an instant response; so when a change in location is noted it will be sent to the server.”\n“It’s amazing how technology has evolved, and as nurses we have that feeling that no one can take care of our patients just as good as we can, so we’re kind of slow to let go.”\nTelehealth can improve patient outcomes, “where you can see a reduction in re-hospitalizations up to forty percent in some instances, it’s proven it works, so we just need to accept it,” said Bryant.\nAnd, accept it she has; a very determined and savvy thinker she has embraced the brilliant technology and utilizes it to keep her patients safe.\nSo while the discussions continue about the quality, efficiency and costs of telehealth, there’s one nurse in Layfette, LA who knows what is needed to keep her patients safe.\nWe would love to hear your insightful thoughts and comments. Are you a patient that uses telehealth monitoring? Has it improved your health care and communication with your physician and other clinical health care providers? Are you a health care provider that engages in telehealth? Please share your story with us.\nAs always, thank you for your valuable time."} +{"text": "By Nikki M. Mascali\nJohn the Conqueror was a folkloric slave hero, an African prince sold into slavery in America who never let his enslavement break his spirit. John the Conqueror is also a root usually used in sexual spells that can also be an item of luck for gamblers. Both of these inspired the name of a Philadelphia-based blues-rock trio made up of Mississippi ex-pats singer/guitarist Pierre Moore and drummer Michael Gardner and bassist Ryan Lynn.\nJohn the Conqueror the band released its sophomore album, “The Good Life,” Feb. 25, and recording this time around was quite a bit different than the process for its 2012 self-titled debut.\n“Oh, shit, the first time we recorded, we were new to what we were doing,” Moore said during a call with Highway 81 Revisited in late January. Gardner, he explained, had moved from bass to drums when the two joined forces with Lynn, so he had only been playing drums for about a year and a half. “So, we have a lot more experience. Lyrically, you can see a change to more contemplative introspection from trite bravado.”\nAs far as the recording, the band didn’t change much, “we just got better at our instruments,” Moore said with a laugh. The singer did end up recording his vocals at home this time around, though, not in the studio. “I realized that being comfortable was real important.”\nMoore’s comfort can be heard throughout “The Good Life” — an 11-song outing culled from his growing up in Mississippi, his new hometown of Philly and life on the road — which is gritty and soulful while paying homage to old-school blues as it throws in a sharp left-hook of rock. In a press release about the album, Moore said that he completely devoted himself to becoming a better writer, so H81R asked him to elaborate on what that entailed.\n“I quit drinking for the first half of writing that album,” he began. “I spent pretty much 20 hours a day writing about different things that I’ve gone through in my life.” Some of the songs had up to 20 revisions. Changes on “Daddy’s Little Girl,” for example, took four or five months, while opening track “Get ’Em” had four or five different sets of lyrics, though “the final version was written in, like, eight minutes,” Moore said.\nThe album also includes a searing cover of Randy Newman’s “Let’s Burn Down the Cornfield.” The track wasn’t originally going to be on the album, but “after we recorded it, we begged to have it on. We picked this song because we ran across a Lou Rawls version. I love Lou Rawls.”\nJohn the Conqueror, which will play a hometown release show March 7 at MilkBoy Philly, spent most of January on its first European tour. When we spoke to Moore, it was just days before the trio headed out to the first show in France. “Me and Mike have never been outside the U.S., so we’re excited to see something outside of here,” he said.\nThough this is the group’s first trip overseas, John the Conqueror is no stranger to touring and has logged a lot of miles the past few years. When asked how he stays sane on the road, Moore’s reply was refreshingly frank.\n“When we’re on the road, it’s been hell. We definitely end up dying a little on the road,” he said. “The first time we played an out-of-state show, we drove straight there, 21 hours, straight to the festival, and we partied with a bunch of bands and ended up sleeping 10 hours total for a five-day span. Hopefully we learn to be sane,” he concluded with a chuckle.\nMoore and Gardner have been settled into the City of Brotherly Love for several years now and find it doesn’t quite live up to its nickname, which is more than fine with Moore.\n“To be honest, its phrasing is quite funny,” he said. “The thing that draws us mostly is that it’s not a very loving place. I t’s a hard place. People are assholes, but being an asshole is kind of a form of honesty. There’s too much fakeness in some of the places we’ve been before. If people scream, ‘Fuck you!’ at least they’re being honest.”\nJohn The Conqueror album release show, w/ Blayer Pointdujour & The Rockers Galore, Thee and Idea Men, MilkBoy Philly (1100 Chestnut St., Philadelphia), Friday, March 7, 8:30 p.m. Tickets: $8-10, 21 and over. www.milkboyphilly.com"} +{"text": "Scientology, Greta van Susteren and John Coale\nArticles, rants and images for fans and detractors\nMedia articles about Greta's move from CNN to FOXNews and her surgery:\nMedia articles about Greta van Susteren, John Coale and Sarah Palin:\nGreta \"before\" and \"after\", see also here\nvan Susteren once said in the Washington Post that she is a Scientologist\n(\"I like the ethics\") and in People (\"I'm a strong advocate of their ethics\").\nEthics in Scientology is not the same as in the real world. It means to\n\"remove counter-intentions from the environment\", i.e. to get the job done\nand apply Scientology. Greta has done this for many years at CNN and before,\nalthough she has tried to keep a rather low profile on the Scientology\nangle of these activities.\nFor years, Greta van Susteren was CNN's inhouse Scientologist and legal\ntalker and co-hosted the show Burden of Proof until December 2001,\nwhen the show was cancelled and her co-host Roger Cossack fired. She then\nhosted The Point with Greta Van Susteren, a news and analysis show,\nuntil the end of 2001, when she resigned and signed up at FOXnews. At the\nend of January 2002, she had cosmetic surgery, which is why people nicknamed\nher Greta van Surgery. The \"new, improved\" FOXNews Greta looks quite\ndifferent from the old \"no frills\" CNN Greta.\nThe St. Petersburg Times about Greta and John: High\nprofile couple never pairs church and state\nThe National Law Journal about John's failed RITALIN litigation:\nClass Actions: Fast Start, Big Stumble\nHer lawfirm got in trouble twice for active soliciting, commonly\nknown as \"ambulance chasing\". The second time was after the ValuJet\ndisaster. She showed her arrogant attitude in her CNN show (read the transcript).\nIn other reactions, the argument brought by her lawfirm was mostly that\n\"other lawyers are just jealous\".\nAfter the Heaven's gate mass suicide, she discussed suing the drug company\nthat manufactured the product used for suicide. This is closely related\nto the viewpoint of scientology, that psychiatry and drug companies is\nresponsible for every bad thing that happens anywhere.\nShe represented Amy Frith in her lawsuit against Wellspring,\na cult recovery institution. She was not only unsuccessful, but it was\nalso embarassing for her, as she had to admit to an opposing lawyer that\nshe was scared of Amy's abusive husband.\nOn 12.6.1998 she agreed to represent the Southern Baptist Convention against\nlawsuits filed by women against discrimination. Greta's\nargument: she is distressed by outside people who criticize\nthe way a religion wants to run itself, and she would also leave the KKK\nalone if it was a religion.\nAccording to Graham Berry,\nGreta van Susteren helped convince CNN to cancel an\nexposé about the Scientology front Applied Scholastics.\nGreta and her husband John P. Coale were investors in the Ponzi scheme\nof Scientologist Reed Slatkin;\nthey invested $2.1 million and received $2.7 million in payments according\nreport by the court-appointed trustee. When being told that even innocent\nparties (i.e. participants who didn't know it was a Ponzi scheme) are required\nto return the extra money, John Coale said: \"I'll fight this thing for\n100 years\" because \"Most of that money went to the IRS.\" (Source: The\nLos Angeles Times from 21.12.2001)\nThe 100 years\nfight is already over. John and Greta are settling\nthe case and will pay back $705,000 to the estate in seven semi-annual\nIt is unknown to me what influence she had in CNN, and what her responsibility\nis for CNN's support of scientology was (e.g. cancelling\nthe interview of Richard Behar after TIME won). She donated at least\n$40,000 to the \"war chest\" of the IAS (IMPACT #25; donation no longer mentioned\non later editions), which is responsible for hate propaganda.\nHer sister Dr.\nLise Van Susteren is a psychiatrist in Washington, DC. Altough Scientologists\ncultivate a strong hatred for the mental health profession (\"Psychiatry\nkills\") and claim that it is a huge scam, Scientologist John Coale even\ncalled Lise to get the name of a cosmetic surgeon. (Update 2009: Read also this gawker.com article about Lise)\nThe weird clothing from her CNN days can be explained: it's her husband.\nHe buys her clothes. (An important Scientology concept is not to \"invalidate\"\nanother scientologists opinion).\nLearn more about Greta and her husband, and their \"ethics\" in the Scientology\nXenu presents: The Greta Gallery\n(images located on CNN's site!)\nRoger Cossack waiting, Greta staring\nan ad for toothpaste\nfell out of her bed\n\"what 'ya looking at, surfa?\"\nclueless, as if she had just seen Xenu!\nPhotographs from the year 2000:\n\"It is a religion! Get used to it!\"\n\"I know nothing...\"\n\"We know your crimes\"\n\"beans... never again!\"\n\"Well, doctor, if you really think\na new face is the answer...\"\nPhotograph from the year 2001:\n\"I will do it!\"\n\"new, improved\" Greta at FOXnews\nback to top\nLook! Xenu found Greta's Hubby!\nSo Greta doesn't feel lonely :-)\n\"That old guy behind me just called Mom a MILF!\nWhat dossat mean?\"\nHome | $cientology\n| Magic | Mozilla\nMuseum | Tilman | Deutsch\nintro | anti\nlinks | 1st hand | Scientollywood\n| Clearwatergate | pro\nlinks | Reconnection | Jon\nAtack | Fun"} +{"text": "Obama to propose a “Buffett tax” while pushing jobs plan\nposted at 12:00 pm on September 18, 2011 by Ed Morrissey\nTalk about your mixed messages! While Barack Obama goes on the campaign trail trying desperately to drum up support for a jobs plan that will cost $450 billion, the President will also deliver at the same time his plan to reduce the spiraling federal deficit and slow the runaway growth of the national debt. And while claiming that he’s not engaging in class warfare, Obama wants to target a new tax at one segment of society in order to protect and amplify his redistributionist policies. Care to guess what that segment of society is?\nPresident Barack Obama, in a populist step designed to appeal to voters, will propose a “Buffett Tax” on people making more than $1 million a year as part of his deficit recommendations to Congress on Monday.\nSuch a proposal, among suggestions to a congressional supercommittee expected to seek up to $3 trillion in deficit savings over 10 years, would appeal to his Democratic base ahead of the 2012 election but likely not raise much in revenues.\nWhite House Communications Director Dan Pfeiffer said in a tweet on Saturday the tax would act as “a kind of AMT” (Alternative Minimum Tax) aimed at ensuring millionaires pay at least as much tax as middle-class families.\nThe “Buffett Tax” refers to billionaire U.S. investor Warren Buffett, who wrote earlier this year that rich people like him often pay less in tax than those who work for them due to loopholes in the tax code, and can afford to pay more.\nThe AMT? Say, isn’t that the “millionaire’s tax” that Congress passed decades ago that now has to be “patched” each year so as not to hammer middle-class families? What a great model to use for the new “millionaire’s tax”! And inevitably, it won’t generate “much in revenues,” which I’ll explain in a moment.\nBesides, if Warren Buffett wants to pay taxes, he can start with the billion dollars his company already owes the federal government.\nLet’s take a year-long look at the tax policy of this administration. Before the midterm elections, Obama and Democrats refused to produce a budget because in doing so, they would have had to address the expiring Bush-era income tax rates. In the lame-duck session immediately afterward, Democrats pressed to let the Bush tax rates expire, which would have created the biggest tax increase in history, or at least the top rates that would have hiked taxes on anyone earning $250,000 a year or more. By December, Obama agreed to keep the rates as they are for the next two years — in order to get the economy going and job creation restarted.\nYet Obama immediately denounced his own plan and insisted that he would fight to raise those same rates in 2013, effectively killing any stimulating effect the deal might have had. (Maintaining status quo was less about stimulation and more about avoiding damage, of course.) Now, just as Obama wants to promote a jobs bill that contains a half-priced rehash of the Porkulus failure of 2009, he announces that he wants to seize more capital from the very people who we need to put capital into private-sector investments to create jobs. This is especially true of this so-called Buffett Tax, which targets the very income derived from capital risk:\nThe Buffett Tax could help energize Obama’s base by highlighting a feature of the U.S. tax code that allows the super rich to pay lower rates of tax than less wealthy Americans because the bulk of their income is capital gains, dividends and the ‘carried interest’ earnings of hedge fund managers.\nWhat happens when the cost of risk equals the cost of relatively risk-free income? People stop taking risks and shelter their capital. When capital stops being risked in new ventures, economic growth slows and stops, jobs either never get created or start disappearing, and we get stagnation or recession. That capital doesn’t sit on the sidelines forever, either; eventually capital moves to other markets, which means that even when conditions improve, we won’t see that capital return to our markets. On top of that, the vacillation on tax policy and hostility towards capital holders amplifies the incentives to move capital out of the US.\nThat’s why the “new AMT” won’t end up generating anywhere near what the Obama administration will claim. It’s a nakedly political act designed to bolster Obama’s class-warfare demagoguery and credentials, and it’s a policy that will inevitably lead to a deeper economic crisis in the US."} +{"text": "If you are bitten by an animal with rabies and don’t get treated quickly, the disease is likely to be fatal. Same goes for your household pets.\nNorth Bergen and Guttenberg will provide free rabies vaccines on May 15.\n“The importance of getting your [pet] vaccinated against rabies falls into the greater interest of protecting the public health of the community as well as the health and welfare of [your pet] in the event either is exposed to a rabid animal,” said Guttenberg Code Enforcement Officer Nick Rivelli.\nRaccoons, skunks, and groundhogs are the animals that get the disease most often, but it can infect any warm-blooded creature, including household pets. Rabid animals tend to be more aggressive and may appear disoriented. If an infected animal is spotted, it will be captured and observed for 10 days to confirm that it does not have the virus. It will be euthanized if tested positive for the virus.\n“He was like a shark on the end of a fishing pole.” – Rich Censullo\n“To date less than 140 documented cases of human survival from clinical rabies have been reported, and only two have not had a history of pre-or-post exposure prophylaxis,” says the CDC website.\nFree vaccinations in North Bergen\nNorth Bergen’s free rabies clinic will be Wednesday, May 15 from 7 to 8 p.m. at 1812 43rd Street on the corner of Tonnelle Avenue. Licensed veterinarian Dr. Carlos Triana of the Summit Animal Clinic in Union City will vaccinate pets. Pet owners are urged to bring their dogs on a leash and be able to place their pet on the examining table. While rabies shots are usually thought of only for dogs, felines can also be affected by the virus.\n“Aside from the fact that it’s a very contagious viral disease, it’s very easily prevented,” said North Bergen Health Director Janet Castro. “Prevention is the best method for saving your dog’s life and a human life.”\nNormally, residents might have to pay a veterinarian the cost of the rabies vaccination fee, which normally ranges from $25 to $85, and an office visit charge. But the city-sponsored shots are free.\nFor more information about North Bergen’s free rabies clinic, call (201) 392-2084.\nGuttenberg clinic schedule\nGuttenberg will provide free rabies shots also on Wednesday, May 15 from 6 to 9 p.m. at Town Hall, 6808 Park Ave. Licensed veterinarian Dr. John Hatch from the Secaucus Animal Hospital will vaccinate cats or dogs.\n“The vaccine itself is provided by the state of New Jersey free of charge, thus making it readily available to the community as well as providing dog owners a no-excuse opportunity to comply with the law at no cost to them,” said Rivelli. “In order to have a valid dog license, owners are required to have their dog up to date with the rabies vaccination. More importantly, the rabies vaccination ensures the safety of the dog and community in the event of a bite by animal which may be infected with rabies.”\nFor additional information call (201) 868-2315 at either extension 120 or 149.\nRabid raccoon captured\nLast September, former North Bergen Health Director Rich Censullo caught a rabid raccoon near an area where children were getting out of school. Censullo was lucky that the animal did not try to bite him although he did bite a car tire.\n“[The raccoon] backed into a parked car and automatically turned around to bite the tire,” said Censullo. “He was like a shark on the end of a fishing pole. I was worried that he would run in the direction of the children and lash out at the children.”\nThe raccoon was brought to Dr. Triana. Potentially rabid animals are brought to him to be observed for 10 days to see if they show more symptoms. However, this raccoon was put to sleep after a few days, after officials received no reports of it having bitten anyone.\nThe animal’s body was sent to Trenton, where tests showed it did, in fact, have the disease.\nHe emphasized that anyone who sees a sick or injured animal should contact authorities immediately.\n“Every city Health Department has an animal control facility that is available via 911,” said Censullo. “The police dispatchers all have the number for animal control so they can reach an animal control officer all the time. The best thing that people can do is stay as far away from the animal as possible. Any warm blooded mammal can contract rabies.”\nTo obtain more information on rabies, visit the upcoming free rabies event, speak with your veterinarian, the health department, the NJ Department of Health at http://nj.gov/health/cd/rabies/index.shtml, or the Center for Disease Control and Prevention at www.cdc.gov."} +{"text": "TOKYO Japanese shares powered to nearly 5-year highs and determined sellers just failed to breach the symbolic 100 yen/dollar level on Monday, even though the Bank of Japan's bold reflationary plans were endorsed by the Group of 20 gatherings in Washington.\nWhile oil and gold rebounded after last week's a sharp sell-off, investors remained wary of volatility due to uncertain global growth prospects, hitting industrial metals such as copper.\nEuropean stock markets were seen recovering, with financial spreadbetters predicting London's FTSE 100, Paris's CAC-40 and Frankfurt's DAX would open between 0.4 to 0.8 percent higher.\nU.S. stock futures were up 0.5 percent to suggest a firm Wall Street open.\nIn a communique after a two-day meeting on Friday, the G20 simply said it would be \"mindful\" of possible side-effects from extended periods of monetary stimulus, without singling out Japan as some had feared.\nJapan's central bank governor and finance minister reiterated on Monday that the G20 countries accepted that Japan's monetary easing is not aimed at weakening the yen.\n\"Following the G20, players feel comfortable selling the yen further, and it is just a matter of timing when the symbolic 100 yen level is hit,\" said Yuji Saito, director of foreign exchange at Credit Agricole in Tokyo.\nThe dollar was at 99.71 yen, off an intraday high of 99.89, just below a four-year peak of 99.95 hit on April 11. If heavy option barriers lined up around 100 yen to the dollar were to be broken, it could trigger stop-loss buying and lift the dollar up to the next target, a 2009 high of 101.45, he said.\nWith the euro zone economy looking fragile, the U.S. dollar looked set to strengthen relative to other major currencies. How far that would go depended on U.S. economic data rather than factors from Japan, Saito added.\nJapan's Nikkei stock average surged as much as 2.2 percent to nearly five-year highs, cheering the G20 outcome as a clear trend for the yen to weaken -- improving prospects for Japanese corporate earnings.\nThe rest of Asia fared far less well, with the MSCI's broadest index of Asia-Pacific shares outside Japan inching up 0.2 percent, wary of this week's data from China and the United States.\nAustralian shares rose 0.5 percent while South Korean shares advanced 0.7 percent.\n\"Investors are heading into this week cautiously, as the market lacks a clear direction for the moment,\" said Biyi Cheng, head of dealing Asia Pacific at City Index in Sydney.\nFISCAL STRAINS HURT GROWTH\nFinance leaders of the G20 advanced and emerging economies also edged away from a long-running drive toward official austerity in rich nations, rejecting the idea of setting hard targets for reducing national debt, revealing their worries over a sluggish global recovery.\nThat concern was highlighted on Saturday when the International Monetary Fund's steering committee said at the end of its spring meetings that monetary policy alone was not enough to restore confidence. It urged countries to take extra measures to reinvigorate growth and create jobs.\nCommodities recovered some ground after last week's sharp sell-offs, but markets may remain vulnerable ahead of China's HSBC flash manufacturing PMI for April due on Tuesday.\n\"We have our doubts whether this rebound can continue much further in the absence of good economic data. In this context, US economic numbers including Q1 GDP data will be watched very closely this week,\" Credit Suisse said in a research note.\nU.S. crude rose 0.6 percent to $88.51 a barrel and Brent crude rose 0.3 percent to recover $99.96.\nLondon copper fell 0.9 percent to $6,924 a tonne.\nGold rose more than 1 percent, pushing cash bullion up as high as $1,423.81 an ounce, well two-year low of $1,321.35 touched last week.\nU.S. gold futures rose as high as $1,423.80, but sentiment remains shaky after steady outflows from exchange-traded funds trimmed holdings to their lowest in three years.\nThe euro inched down 0.1 percent to $1.3066, under pressure a batch of euro zone economic reports due this week, including consumer confidence later on Monday and the purchasing managers' index on Tuesday.\nItaly's re-election of a president on Saturday has raised the prospect of an end to the two months of political stalemate that followed a general election, helping to give some support to the euro.\n(Additional reporting by Maggie Lu Yueyang in Sydney and Melanie Burton in Singapore; Editing by Eric Meijer)\nTrending On Reuters\nState Bank of India (SBI) reported its sharpest quarterly profit drop in five years on Friday but cheered investors by saying that fewer than feared of its loans risked turning sour. Read"} +{"text": "From the Wires\nCancana Signs Exclusive Agreement to Purchase 100% of Rio Madeira\nBy: Marketwired .\nFeb. 8, 2013 06:16 AM\nVANCOUVER, CANADA -- (Marketwire) -- 02/08/13 -- Cancana Resources Corp. (TSX VENTURE:CNY) (the \"Company\" or \"Cancana\") is pleased to announce it has entered into an exclusive Memorandum of Understanding, (\"MOU\"), to purchase Rio Madeira Comercio Importacao E Exportacao De Minerios, (\"Rio Madeira\") in the State of Rondonia, Brazil.\nThe exclusive MOU that has been agreed between Cancana and Rio Madeira is for the 100% acquisition of the Rio Madeira corporate entity and all of its associated assets, mineral claims and operations. It is subject to the successful completion of due diligence and financing, which expires on April 30, 2013.\nRio Madeira is a producing Manganese mine operation, producing lump ore of varying sizes and is located adjacent to, and mainly contiguous with, Cancana's Manganese claims. Rio Madeira holds title to 15 mineral claims that total approximately 62,000 hectares in size. Also included are 3 full mining licenses known as a \"Lavra\".\nCancana and Rio Madeira have commenced establishment of due diligence requirements and these are underway. This will include the review of all financial and operational aspects of Rio Madeira as well as a geo technical review of the mineral claims held. Present grades of Manganese produced are in the 50% plus range according to Rio Madeira, these are similar to the grades Cancana has reported in the two recent N.I. 43-101 reports published for its Valdirao project known as \"241NC\".\nIn the past year Rio Madeira has made substantial improvements to their production and processing facilities. These include the streamlining of the initial ore processing, screening, washing and sorting, as well as the ability to commence the recovery of the \"fines\", or granular Manganese ore. In turn this affords Rio Madeira the ability to access the fertilizer industry as well as the steel and Ferro Manganese markets.\nAndrew Male, President & CEO of Cancana, commented; \"We are very pleased to have signed an MOU with the owners of Rio Madeira. During the last 7 days I have visited their production plant in Espigao, and I am very encouraged by the progress that Rio Madeira has made with ongoing modifications and upgrades to their processing facilities. As we are completing the due diligence of Rio Madeira we will then concurrently begin to seek the acquisition financing required to complete the purchase. Having maintained a good ongoing relationship with the partners of Rio Madeira since late 2010, when we originally tried to establish a partnership with them, has been key in successfully obtaining this agreement for a 100% acquisition.\"\nCancana Resources Corp. is an exploration stage company with assets in Brazil and Canada. The Company has been seeking projects that expand its resource base and provide for near term production and revenue. All available resource reports and information on the Company's properties are located on the Company website: www.cancanacorp.com.\nIssued on behalf of the Board of Directors of Cancana Resources Corp.\nAndrew Male, CEO and Director\nThe information in this news release may contain forward-looking statements within the meaning of Section 27A of the Securities Act of 1933 and Section 21E of the Securities Exchange Act of 1934 and applicable Canadian securities laws. When used in this release, words such as \"estimate\", \"expect\", \"anticipate\" and \"believe\" as well as similar expressions are intended to identify forward-looking statements. Such statements are used to describe management's future plans, objects, and goals for the Company and therefore involve inherent risks and uncertainties. The reader is cautioned that actual results, performance or achievements may be materially different from those implied or expressed in such statements, which speak only as of the date, the statements were made. The Company does not update forward-looking statements continually as conditions change. We seek safe harbour.\nNeither the TSX Venture Exchange nor its Regulation Service Provider (as that term is defined in the policies of the TSX Venture Exchange) accepts responsibility for the adequacy or accuracy of this release.\nSOA World Latest Stories\nSubscribe to the World's Most Powerful Newsletters\nSubscribe to Our Rss Feeds & Get Your SYS-CON News Live!\nSYS-CON Featured Whitepapers\nMost Read This Week"} +{"text": "As part of the blog tour for The Twisted Tragedy of Miss Natalie Stewart, I am happy to have the author stop by for a guest post, and a giveaway along with my review!\n\"The Twisted Tragedy of Miss Natalie Stewart\"\nPublisher: Sourcebooks Fire\nRelease Date: Nov 1, 2012\nSource: sent by publisher\nMy Rating: 4.5 of 5 Stars\nSummary from goodreads.com:\nFor Natalie Stewart, a normal life has never seemed so far away. Her only solace, Lord Jonathan Denbury, is wanted for murder. To clear his name, Denbury must return to England and assume the role of his demon doppelganger. But Natalie begins to doubt his true motives, especially as a new gentleman begins whispering in her ear. Natalie and Denbury may be able to visit each other in their dreams, but they can't escape the darkening shadows. Amid spontaneous explosions, friends turned enemies and dangerous secrets revealed, there's still a demon who has Natalie's scent, and someone is trying to resurrect the ultimate evil.\nThis book is a great mix of historical, mystery, romance, and good deal of creepiness. I really enjoyed how unique this story is. The interesting and new story combined with the great characters really kept me turning the pages.\nI haven't read the first book in the series, but wow, I really want to now. I want to see how Natalie and Jonathon met and fell in love, and I'd really love to see how his being trapped in a painting played out.\nI wasn't sure about the demon angle to the story, but it ended up not being so bad for me, and I'm scared easily. It was more of a gothic, creepy tale, instead of shocking horror. Perhaps the fact that it was a historical story made the scary parts more gothic in tone and feel. Some of the dastardly plots reminded me of Frankenstein, which was another gothic, not horrifying, story.\nMain Characters: 5/5\nSupporting Characters: 4/5\nBottom Line: A great story with something for everyone, and the vivid cast of characters makes the story complete.\nNow, I'd like to welcome Leanna Renee Hieber to In the Hammock for a guest post!\nby Leanna Renee Hieber\nIt’s no secret that bestselling author Leanna acts, writes, and even combines the two to create a play. Leanna describes what it’s like to be a working actress while also making a bestseller book.\nI wear many different hats. And I don’t just mean cute little Victorian hats, though I do have quite a collection. I’ve always been a Jack of All Trades and it’s my varying interests that have kept me busy, employed in the arts and happy in always having a project or two to work on. The trick to doing anything well is time and discipline, it’s very hard to juggle theatrical pursuits and writing and promoting your books full time. I have to pick and choose and shift focus. While I was a full time professional actress on stage in various regional theatre productions around the country, my writing took a back seat. Today my writing is at the foreground and I do theatrical and/or film projects sporadically. The ability to shift focus from one priority to another depending on deadlines is a skill I’ve been trying to sharpen forever. The biggest challenge is self-discipline of one’s own time. It’s something I struggle with day in and day out. Storytelling is at the core of all my interests, and while I’m very selective now about the stories I tell and the mediums I use to tell them, I’m blessed to have several different avenues to pursue the stories that intrigue me. One of the most fascinating ways that my worlds have blended is in adapting my first novel into a musical theatre production with Broadway talent on board. My time as an actress and brief stints as a playwright made it easier for the production company behind the musical adaptation of The Strangely Beautiful Tale of Miss Percy Parker to approach me to be on the collaboration team. I’m uniquely suited as having experience in all these fields to weave a story together in an entirely new medium, a show. And it’s that process of adaptation and collaboration that then allows me to have fresh insights and new tricks to make an engaging story come to life when I return to my novels, such as THE TWISTED TRAGEDY OF MISS NATALIE STEWART.\nThe publicist has generously provided a copy of \"The Twisted Tragedy of Miss Natalie Stewart\" for a lucky follower of my blog!\nAll you have to do is follow my blog publicly and fill out the Rafflecopter form below. Please follow publicly or I can't tell that you are following :)\n- US/CAN only\n- Must be a follower to enter\n- Books will be mailed out by the publisher\n- Must be 18 or over\n- Ends Sun Dec 2Thanks to everyone for entering! Good luck!"} +{"text": "Alexandria, Va., April 23, 2012 - Today, in conjunction with Earth Day, JPMorgan Chase (NYSE: JPM) and Good360 announced the launch of Tech Warehouse, a JPMorgan Chase Technology for Social Good program that will assist nonprofit organizations and schools with contributions of the firm's refurbished technology to enhance communities, improve individual productivity and address zero waste initiatives. This innovative program leverages the benefits of sustainable management of resources at their end of life in order to make a positive impact on the world.\n\"JPMorgan Chase is committed to funding impactful programs that make a meaningful difference in the communities where we work and live,\" said Guy Chiarello, Chief Information Officer, JPMorgan Chase. \"Since 2009, we've been able to redeploy almost 30 percent of the desktops, laptops, monitors and printers collected - avoiding costs and reducing our environmental impact. We are proud to develop Tech Warehouse with Good360 as a way to continue our work toward preserving the environment while providing useful technology for those in need.\"\n\"Our new donation marketplace provides a great platform to distribute these highly desirable computers that would otherwise go to a landfill,\" said Ellie Hollander, Chief Strategy Officer & EVP for Business Development at Good360. \"Good360 is committed to creating corporate, nonprofit and environmental win-win outcomes for excess technology and we're thrilled to be working with JPMorgan Chase on Tech Warehouse.\"\nUnder the new partnership, JPMorgan Chase will replace hard drives in more than 3,000 of its computers and connect with Good360's network of over 27,000 qualified charities through the world's largest online product donation marketplace. Under this pilot program, these clean and tested refurbished computers equipped with basic peripherals and OS software will be made available to nonprofits over the next year. Qualified nonprofits will be permitted to acquire up to 15 products annually and five per quarter. Donations must be used for the primary purpose of serving the ill, needy or youth and cannot be resold, auctioned, traded, bartered or cross international borders. Charities will be asked to pay $65 to cover shipping and handling fees, and the program will also require recipients to properly recycle the computers when they reach their end of life.\nGood360, formerly Gifts In Kind International, has been providing product resources that help nonprofits meet their missions and allow companies to give back to the communities where they live and work since 1983. As the leaders in product philanthropy move to upgrade their cutting-edge online donation marketplace, the generous computer donations made by JPMorgan Chase will help stock the marketplace with one of the most requested products by their charity network.\nFor more information on joining Good360's charity network and accessing these donations, visit www.good360.org/JPMorganChase.\nAbout JPMorgan Chase & Co.\nJPMorgan Chase & Co. (NYSE: JPM) is a leading global financial services firm with assets of $2.3 trillion and operations in more than 60 countries. The firm is a leader in investment banking, financial services for consumers, small business and commercial banking, financial transaction processing, asset management and private equity. A component of the Dow Jones Industrial Average, JPMorgan Chase & Co. serves millions of consumers in the United States and many of the world's most prominent corporate, institutional and government clients under its J.P. Morgan and Chase brands. Information about JPMorgan Chase & Co. is available at www.jpmorganchase.com.\nConsistently ranked by Forbes Magazine as one of the ten most cost-efficient charities in America, Good360 (formerly Gifts In Kind International) is dedicated to helping people and communities in need by distributing corporate product donations to qualified nonprofits. These include nonperishables, such as apparel, books, toys, personal care products, office and school supplies, computers and much more. On behalf of several Fortune 100 consumer, retail and technology companies, Good360 distributes products to a network of more than 27,000 pre-vetted organizations."} +{"text": "Punks aren't known for having much money, but they usually have pretty good taste in cars. Crank the stereo, pop in a Sex Pistols or Black Flag tape, and give society the finger with these ten commenter-chosen punk rock cars.\nThis is Answers of the Day — a feature where we take the best ten responses from the previous day's Question of the Day and shine it up to show off. It's by you and for you, the Jalopnik readers. Enjoy!\nWant to see this gallery in one slow-to-load page? Click here.\n10. Decommissioned Police Crown Vic\nSuggested By: thor77\nWhy It's Punk: What's a more ironic car for a bunch of anarchist punks? Fresh off the auction lot with the spotlight still attached and the paint faded, the Crown Vic is cheap to buy, cheap to run, and swallows up lots of band gear.\nPhoto credit: mp3car.com\n9. Geo Metro\nSuggested By: Half The Wheels And Twice The Fun\nWhy It's Punk: It's tiny, but says \"I don't care what you think about me. Go ahead, laugh. I'll kick your face in.\" The Geo costs even less than a decommissioned Crown Vic, and despite its tiny dimensions, can still hold a drum or amp in the back seat. And as Half the wheels points out, it's unassuming enough that it won't get trashed by an angry dickhead at the gig.\nPhoto credit: In My Not so Humble Opinion\n8. 1970-ish Chevrolet Wagon\nSuggested By: pauljones\nWhy It's Punk: The mid-'70s Chevy wagon is big, old, American, and totally punk. The exact year isn't really important (pretty much anything from 1959 to 1979 will do), because we're not talking about a restored show car. The one the punks are after has faded paint, torn seats, and probably spent the last few years of it's life outside, sitting behind someone's house. The gnarlier the better.\n7. Volkswagen Golf GTi\nSuggested By: LuckyChuck\nWhy It's Punk: What's more punk than a car with plaid seats? It helps that the GTi is quick, and that many of them were black, but mostly, it's all about that bad-ass plaid.\nPhoto credit: Bring A Trailer\n6. Hyundai Accent\nSuggested By: Smells_Homeless\nWhy It's Punk: Older Accents are small, but they can hold enough stuff to make them worthwhile band cars. Smells_Homeless notes: \"I never got tired of watching that little thing swallowing the drums and two half-stacks.\" Like the Geo, Accents are pretty stealthy, so one can probably survive a night outside the venue.\nPhoto credit: CarDomain\n5. Buick Turbo Regal\nSuggested By: twitchykun\nWhy It's Punk: Loud, fast, and out of control. When painted black, they absolutely look the part, and the engine is loud enough to sound it. This is an all-business machine, a squared-off, no-nonsense monster. The Regal looks angry just sitting still.\nPhoto credit: Team Chevelle\n4. Ford Taurus Wagon\nSuggested By: Filmomaker\nWhy It's Punk: As punk morphed and split into a whole bunch of other genres and sub-genres, the outcast and filthy still needed wheels to get to the gig (even if those wheels probably belonged to mom). Filmomaker describes the scene as he saw it back then: \"Sometimes, after the gig, the car just goes missing, then it turns up in a very strange neighborhood or on the side of some railroad [tracks]. Sometimes some angry drummer or guitarist kicks the living fuck out of the car before or after the gig. Sometimes band members use the car to have sex with a groupie. Sometimes band members use the car to sell drugs and alcohol.\" So really, the Taurus was more like a Mobile Band Command Center than anything.\nPhoto credit: Pinkie's Blog\nSuggested By: mytdawg\nWhy It's Punk: How could we not include a Bitchin' Camaro?\nPhoto credit: Youtube\n2. Ford Transit Van\nSuggested By: Shep_Shepherd\nWhy It's Punk: If your band was from England, chances are that you spent quite a lot of time at one point or another in the back of a Transit. They were the default vehicle, much like the Econoline in America, for up-and-coming bands that had to get to the gig. Bands used them for decades before the punk movement, and they continue to use them today.\nPhoto credit: Vision Motor Services\n1. Decommissioned Ambulance\nSuggested By: withayou\nWhy It's Punk: Commenter Withayou is a punk alum, and has this to say about his old band's ambulance: \"To make it (vaguely) street legal, we had to remove the decals and paint over the emergency lights, but nothing at all was disconnected. That meant that at any given moment any of us could flip a switch to turn on the sirens, emergency flashers, loudspeaker, or floodlights and the thing came with an abundance of 120v outlets so the Marshall half-stacks could be plugged in at any rest stop. In retrospect, there is no reason the 17-year old version of me shouldn't be behind bars.\"\nPhoto credit: fotki"} +{"text": "International Jazz Day Brings A Worldwide A-List To Turkey\nIstanbul hosts high-profile event in its second year\nThere is, it seems, one thing that the nations of the world can agree upon: jazz. When the second annual International Jazz Day took place on April 30, nearly all of the 195 member states of UNESCO (United Nations Educational, Scientific and Cultural Organization)—from Afghanistan to Zimbabwe—held events to rejoice in the music that, according to a speech given by Dr. Martin Luther King Jr., “speaks for life.”\nThe son of Dr. King, Martin Luther King III, referenced that speech in his own at this year’s flagship International Jazz Day event, an all-star concert and goodwill celebration staged at the Hagia Irene, the first church erected in what is today Istanbul, the largest city in Turkey. Begun in the fourth century, Hagia Irene is a cavernous, breathtakingly imposing structure that is often utilized for live music presentations. As a setting for promoting and presenting contemporary jazz, it proved a brilliant—if at times sonically lacking—choice.\nKing, along with Herbie Hancock, a UNESCO Goodwill Ambassador and Chairman of the Thelonious Monk Institute of Jazz, one of the co-sponsors of IJD, was in Istanbul to promote this music as a force of global unity. So too were dozens of musicians, 40 of whom, from 15 countries, performed at Hagia Irene on the evening of the 30th, their music streamed to millions around the world.\nThat concert was the main course but it was also a culmination. In the days preceding it, jazz professionals, political and business dignitaries, musicians, media and educators from around the world blanketed the city, presenting workshops, lectures, Q&As and more. On the morning of the 30th, at the Galatasaray High School, attentive, appreciative students took in an intimate performance featuring Hancock and Wayne Shorter sitting in with Monk Institute students. In virtually every other country, from Rwanda to Malaysia to Poland, concerts, lectures, film screenings and other events boosted the profile of jazz for at least part of one 24-hour period.\nLike last year’s maiden IJD evening concert, which took place at the U.N. building in New York City, the 2013 event was strong on star power. You couldn’t help but be dazzled by a roll call featuring Hancock and Shorter, T.S. Monk (who serves as Chairman of the Board of Trustees of the Monk Institute), Esperanza Spalding, Hugh Masekela, Marcus Miller, Jean-Luc Ponty, George Duke, Branford Marsalis, John McLaughlin, Terence Blanchard, Anat Cohen, Dianne Reeves, Ramsey Lewis, Milton Nascimento, Eddie Palmieri, Al Jarreau, Vinnie Colaiuta, Ben Williams, Terri Lyne Carrington, Robert Glasper, Rubén Blades, Keiko Matsui, Lee Ritenour, Zakir Hussain and others, including players from Russia (saxophonist Igor Butman, trombonist Alevtina Polyakova), Cuba (percussionist Pedrito Martinez), Australia (Dale Barlow) and, of course, Turkey (the marvelous trumpeter İmer Demirer, guitarist Bilal Karaman, clarinetist Hüsnü Şenlendirici), a country whose relationship with jazz stretches back to at least the 1930s.\nAs is often the case at such multi-artist events, some pairings were more inspired than others; a handful stood out, others underwhelmed. Some artists played on a single tune and were gone; others returned several times. The sound, unfortunately, was frequently problematic: Although the vocalists could be heard clearly, the rhythm sections were often lost in the mix or given to murk. In the end, though, that didn’t matter: It was understood that this wasn’t so much about delivering flawlessness as it was about the revelry.\nIn that spirit, the first performance of the evening was devoted to the blues roots of jazz, with guitarist Joe Louis Walker, pianists Lewis and John Beasley (the evening’s musical director), bassist James Genus, drummer Colaiuta and British vocalist Joss Stone delivering a soulful if somewhat shrill “Some Kind of Wonderful.” The first true highlight arrived via Jarreau, whose vocalese turn on a medley of the Dave Brubeck Quartet’s “Take Five” and—this being Istanbul—“Blue Rondo à la Turk,” accompanied by Duke, Miller, Ritenour and Carrington, was riveting. (Make no mistake—this evening was geared toward the mainstream, not the music’s fringes.)\nOther highlights included an over-the-top, floor-shaking Masekela performance of “Stimela (Coal Train),” featuring Beasley, Carrington, Hancock, Miller and Ritenour; a beguiling, stirring unnamed Latin jam spotlighting Palmieri, Cohen, Blanchard, Luques Curtis (bass) and Pedrito Martinez (percussion); and, perhaps the prize of the night, the trio of McLaughlin (electric guitar), Hussain (tablas) and Ponty (violin) taking their time to explore the nuances of “Lotus Feet,” an oft-revisited McLaughlin composition dating from the 1970s.\nAn all-cast finale, a take on Dizzy Gillespie’s “A Night in Tunisia” where Reeves improvised lyrics referencing International Jazz Day, may have been cacophonous, but it sure was fun to watch. Afterward, the audience had barely filed out the doors when the speculation regarding the possible locale of next year’s IJD began. Just the thought that it could be anywhere in the world—anywhere—was in itself a statement on how monumental this event has already become in two years.\nAs T.S. Monk said at a reception prior to the concert, “The foundations of jazz are not based in musical technique, they’re based in a philosophy that goes to the issue of humanity, communication, tolerance, teamwork, individuality. Those are things that are important to people everywhere and have been important to people since the beginning of time.”\nOriginally published in July/August 2013"} +{"text": "The events unfolding in Israel are geographically far from Maryland, but Jewish Baltimore showed its solidarity and support for the Jewish state through prayer, gatherings and messages sent directly to the soldiers taking part in Israel’s ground offensive in the Gaza Strip this past week.\nNational, state and local politicians joined with religious leaders, community members and an Israeli embassy representative Monday, July 21, at a gathering of solidarity at the Gordon Center for Performing Arts at the Rosenbloom Owings Mills JCC. The event, which was hosted by the Baltimore Jewish Council and co-sponsored by The Associated: Jewish Community Federation of Baltimore, was organized to create an opportunity for the Baltimore community to demonstrate its support for the State of Israel and the country’s right to defend itself.\n“When your home is under attack you have to defend it,” BJC President Lainy LeBow-Sachs said to the packed auditorium.\nOren Marmorstein, counselor for public affairs and national coordinator of academic affairs at the Israeli Embassy, used the opportunity to thank the Baltimoreans in attendance for their support of Israel.\n“Every person in Israel is aware of this support,” he said. He described to the community members gathered his own experiences with hearing warning sirens and having to take cover with his wife and young daughter, and said much of what is portrayed of the conflict in the media is incomplete or inaccurate. It is hard, he added, to describe to people what life is really like in the Jewish state.\n“This is not happening only one night,” he said of the sirens. “It’s happening every single night. This is something that is happening every day.”\nU.S. Sen. Ben Cardin, who has been a vocal supporter of Israel during his tenure in office, also spoke at the rally, thanking the people who came to show their support and asserting Israel’s right to defend its citizens. He was followed by Amian Kelemer, whose daughter recently completed her service in the Israel Defense Forces. Kelemer talked about her experience as a “soldier mom,” fearing for her oldest daughter every day.\nMeanwhile, another crowd gathered at Light and Pratt streets from 5 p.m. to 7 p.m. Monday to protest racism and war, focusing on the Israeli-Palestinian conflict, the situation along the Mexican border and the city’s newly stricter youth curfew.\n“The racist apartheid settler state of Israel is once again attacking the people of Palestine in Gaza and the West Bank,” read a release promoting the rally. “The pretext this time was the death of three Israeli teenagers, but the results are all too familiar,” it added, pointing to the number of Palestinian casualties.\nRabbi Moshe Hauer of Bnai Jacob Shaarei Zion Congregation, who spoke at the Gordon Center event, has put a call out to Jewish camp directors asking that campers design small notes or cards that will be included in care packages for soldiers. He extended his request to anybody in the community who would like to create and send a note of solidarity to Israeli troops.\nHauer will be traveling to Israel and plans to deliver the cards himself.\nAgudath Israel of America is asking that all Jews pray for the safety of the Israeli soldiers and the citizenry of Israel, and “to undertake meaningful acts of kindness, charity, Torah study and special observances to help merit divine protection of our brothers and sisters in [Israel], on the front lines and everywhere else,” a statement read.\nThe Shmira Project, an organization that enables people to “adopt” one or more soldiers by doing a specific mitzvah in their honor and praying for their protection, was recently reestablished. Shmira means “guarding” or “protecting” in Hebrew.\n“Any mitzvah that you do on behalf of a soldier truly makes a difference, to the soldier and to Jewish unity,” states the Center for Jewish Education’s website. “Write your soldier’s name out and post it where you’ll see it … near the Shabbat candles, on the refrigerator, in your car, in your phone. Then, when you are going to do something positive in the world, stop and think of your soldier and include him or her in your mitzvah.” For more information about the Shmira Project, go to shmiraproject.com or text 240-393-4836.\nPhoto by David Stuck"} +{"text": "Some comics probably by animator Jack Bradbury, who also designed the first animated version of Beany and Cecil.\nWhen I was a kid, about 9 years old, I used to race home from school to watch the cartoons at my Grandmother's house in Ottawa. We only had 3 channels then: 2 English speaking channels and one French. They all ran cartoons at the same time every day, and I had to switch from channel to channel because I could never make up my mind which to watch all the way through!They ran Huck and Quick Draw at about 3:30 on the 2 English channels, and then Yogi and Beany and Cecil at 4. It used to drive me nuts because I wanted to watch them all!\nHuck, Yogi and Quick Draw were all Hanna Barbera cartoons - all with the same look and feel. They had great designs and voices and were appealing, but not very imaginative. Just the same, I loved 'em.\nBeany and Cecil, on the other hand - even as a kid - seemed like the weirdest thing ever! It looked great- I especially liked the cartoons designed and layed out by Willie Ito - he did the more \"modern\" angular style episodes. But the stories were bizarre! If Roger Ramjet was the funniest 60s cartoon, then Beany and Cecil was the most imaginative.\nIts main cast was fairly normal - starring Beany a likeable cute little boy who loved fun and adventure,\nCaptain Huffenpuff, an old homosexual blowhard adventurer who always retreated to his \"HIDING ROOM\" whenever there was trouble and Cecil The Seasick Sea Serpent - who was a not very subtle visual metaphor with a catch phrase to advertise it \"I'm comin' Beany boy, I'm COMIN'!\"and an old time melodramatic villain named Dishonest JohnThese main characters traveled around the world where they met much stranger characters. One of my favorites was the beatnick, the Wildman of Wildsville:I used this very gag in the 1988 new adventures of Beany and Cecil and the network exploded!\nClampett cartoons were always hip, just as he was. He kept up with cool trends all the way till the Beatles and then froze into his 1964 look with a Beatle haircut for the rest of his life. He knew The Beatles were the last truly cool thing and then everything pretty much went to ...you know.\nI'm sure most of you know that Beany Cecil was originally an Emmy award winning puppet show called Time For Beany that was probably even weirder than the later cartoon.\nDaws Butler and Stan Freberg manning the puppet arsenal for Bob Clampett!Willie Ito, the later cartoon designer also drew these great Beany and Cecil comics in the same style he drew the cartoons- a combination of Clampett, Jones, UPA and his own style. These are great drawings for you student types to copy by the way.\nHere's the whole comic!\nAll this great stuff has been out of circulation for decades and now it's here where you can enjoy them again!\n10 years ago a Beany and Cecil DVD came out and has been out of print for a while, but now there are a few left.\nThere is also finally a volume 2 - filled with classic Beany and Cecil cartoons, puppet shows and lots of great supplemental treats!\nBUY BOTH VOLUMES HERE!\nLots Of Extras!\nBob was a stickler for recording his history. He constantly did interviews with people and recorded all kinds of interesting things.\nThis 70 minute oral history is taken from recently discovered source material. There were three sources.\nA 1950 interview with Scenic artist and right hand man Bill Oberlin.\nA 1963 recorded conversation with his Bob Clampett's mother.\nAnd there was a 1978 interview with a close friend of Sody Clampett's.\nClampett fan, animator and historian Milt Gray edited together the definitive two and a half hour oral history on volume one.\nThis 70 minute continuation on Volume 2 gives some new insight including information about Clampett's Dad that previously none of the family knew. Bob always teared up when he talked about him. That was why it was such a shock when he went into as much detail as he did. It explains a bit of Bob's showmanship.\nBob Clampett Reads Milt Gross!\nClampett was a big fan of Milt Gross and knew him personally. In the supplemental material you can hear Bob reading along to Night in Front... while his kids see the original pages. Laughter and dog barking in the background.\nAlso, Rob Clampett did a brief audio interview with Milt's oldest son Herb and included pages of illustrations from some of the books.\nThere is the pencil test (the only one I've ever seen from one of dad's cartoons) and storyboard pages and layouts including deleted sequences from \"It's A Grand Old Nag.\"\nThe home movies of the 'coolest guy' with his portfolio in NYC in 1945.\nALL ABOUT BEANY AND CECIL"} +{"text": "The fallout of the Pelosi/Biden statements on abortion, and the Bishop's response, continues.\nOn September 15, the San Francisco Chronicle printed a column by Mr. Jon O'Brien, of \"Catholics for Choice\" a dissident group that supported Nancy Pelosi against our Catholic Bishop's. Fr. Malloy responded with a letter (unprinted) below. Today Mrs. Vicki Evans, the Respect Life coordinator of the Archdiocese of San Francisco, took Mr. O'Brien to school. This column appeared in today's issue of the San Francisco Chronicle.\nCatholic bishops have last say on abortion teachings\nSAN FRANCISCO CHRONICLE -- Thursday, September 18, 2008If you were a member of an environmental group and Big Oil tried to dictate to you what environmentalism really meant, what would your reaction be? Outrage at the audacity and arrogance of Big Oil? Disbelief that anyone would actually take seriously the apostasy presented?\nThis was the reaction of faithful Catholics who read Jon O'Brien's op-ed in The Chronicle (\"Pelosi views on abortion in synch with most Catholics,\" Sept. 15).\nJon O'Brien is the president of Catholics for Choice, an organization that has been condemned by the Catholic Church for its heretical views on abortion. Its board of directors includes some of the most ardently pro-abortion individuals in the country, like Kate Michelman, former president of NARAL, and Frances Kissling, former president of the National Abortion Federation. Are these the people to whom we should listen for a clarification of Catholic teaching? Or are these the organizations that stand to profit from unlimited abortion on demand?\nWould a high-profile Democratic leader who says they are Catholic, such as Speaker Nancy Pelosi, like to follow Catholic teaching? Sure, all things being equal. But all things are not equal. Abortion-rights activists are fundamental pillars of the Democratic Party, providing tens of millions of dollars in campaign contributions and enormous grass-roots energy.\nSo instead of admitting they are simply in the pocket of the abortion lobby, Catholic politicians like Speaker Pelosi come up with self-serving arguments to support their pro-abortion positions to try to convince America that the Catholic Church is run by polls.\nThe reality is that those who support unlimited abortion, for any reason at any time, represent the fringe position. A June 2007 poll by the New York Times, CBS News and MTV found that 62 percent of young adults disagree with abortion on demand.\nLast October, a CBS poll asked Americans about their \"personal feeling\" on abortion. Two out of three supported greater restrictions on abortion, with 34 percent saying it should be permitted only in cases such as rape, incest or to save the mother's life. A mere 26 percent said it \"should be permitted in all cases.\"\nAnd yet, Catholics for Choice has the audacity to challenge the U.S. Conference of Catholic Bishops on the church's teaching related to abortion. O'Brien's final line states that \"the bishops would better serve American Catholics by acknowledging their true priorities.\"\nIt is the responsibility of Catholic bishops to teach clearly what Christ in his church teaches about faith and morals, and to oppose erroneous, misleading and confusing positions when they are advanced. The Catechism of the Catholic Church states: \"Human life must be respected and protected absolutely from the moment of conception. Since the first century the Church has affirmed the moral evil of every procured abortion. This teaching has not changed and remains unchangeable. Direct abortion, that is to say, willed either as an end or a means, is grossly contrary to the moral law.\"\nIn matters of faith and morals - proclaimed either \"fallibly\" or \"infallibly\" by the Catholic Church - the bishops have an authoritative role as teacher. The faithful have the responsibility of accepting the teaching and adhering to it with a religious assent. The reason for this is eternal salvation. The idea that politicians can usurp this teaching authority is ridiculous.\nPosted by Gibbons"} +{"text": "This essay will describe the congruence between the philosophies and values supporting social entrepreneurialism and the philosophies and values supporting the New Public Health. This essay will also reveal my definition and values of social entrepreneurialism.\nMY DEFINITION OF SOCIAL ENTREPRENEURIALISM\nShane and Venkataraman (2000 cited in Baron & Shane 2005, p. 4) state that entrepreneurship is a process to understand how opportunities to create something new arise and are discovered or created by specific persons, who then use various means to exploit or develop them, thus producing a wide range of effects. According to Hisrich et al. (2005), there are four basic aspects of being an entrepreneur: the creation process, the devotion of the necessary time and effort, the willingness to assume the necessary risks, and rewards.\nConsidering the definition provided by Talbot et al. (2002) about social enterprise, I conclude that social entrepreneurialism is a nonprofit oriented business in which all of the profit it gets will be used for the sake of the community and to sustain its activities. I think social entrepreneur is someone who understands an emerged problem within her society which needs to be handled for the sake of the society. After recognizing the problem, she is then compelled to develop strategies and capture the opportunities to implement these strategies to overcome the problem. In this sense, social entrepreneurialism has many similarities with leadership.\nSomeone has to possess several characteristics to be a social entrepreneur, such as: high self-confidence, willingness to take the risks, creativity, have the ability to influence and motivate people. These characteristics also reflect leadership traits. I have mentioned in FLO activity 1 that leadership is the ability to influence and mobilize the other people to achieve their common goal or accomplish their duty. A social entrepreneur as well as a leader needs the other people to cooperate with in order to be able to attain the goal because she cannot achieve it by herself, instead she needs to work with or through the other people to reach the goal. To be able to influence and mobilize people toward the desired goal, she has to be able to communicate and share her vision and have confidence in herself as well as in her followers.\nTHE CONGRUENCE BETWEEN SOCIAL ENTREPRENEURIALISM PHILOSOPHIES AND VALUES AND THE NEW PUBLIC HEALTH PHILOSOPHIES AND VALUES\nEquality, equity and social justice are the underpinning values of the new public health. Equality means that everyone deserves the same opportunity to improve the quality of her life, while equity is dealing with the fairness in which someone may not get the same amount of resources as another person due to her condition. For example, every woman deserves to get access to family planning services. This is equality. However, some women may receive concession to implant Intrauterine Device (IUD) because they cannot afford them due to their economic conditions. This is equity. Social justice is the collective expression of the principle of equity (Talbot 2005). Social justice can be achieved through empowerment and participation. Both terms, empowerment and participation, indicate the involvement of the community to make social change to enhance their life quality.\nPeter Thomson (in Talbot et al. 2002) defines social entrepreneurialism as a bold attempt at redressing many of the issues that people who are marginalized in our society have, by building their confidence and their capacity to help themselves. It seeks to empower communities and build social capital. It supports and encourages community to work together and assists them to discover and fulfill their own potential.\nIn this term, I find that the philosophies and values underpinning social entrepreneurialism are congruent with the new public health philosophies and values. Both encourage participation of the community members and empower them to bring about change in their social conditions so that it will enhance and improve their life quality.\nHOW DO I VALUE THIS APPROACH\nI think empowering others means that we have to encourage them to participate in handling the problems arise in their community. By letting everyone to participate in overcoming these problems, we promote the equality, equity and social justice since it enables them to express their needs, feelings, and opinions. It also gives them the opportunities to find the best solution on these problems.\nEmpowering and encouraging others to participate in social change is not an easy thing to do. It needs skills, strong commitment and willingness to assume the risks and failures. I think leaders and social entrepreneurs share the same characteristics and skills so that they will be able to mobilize people to bring about change. In fact, social entrepreneurs are leaders because they possess the traits needed to be a leader and they implement leadership principles and skills into practice.\nIn brief, the philosophies and values underpinning social entrepreneurialism are congruent with the new public health philosophies and values. Social entrepreneurs share common characteristics with leaders.\nBaron, RA & Shane, SA 2005, Entrepreneurship: a process perspective, Thomson, South Western, Australia.\nBrotherhood of St Laurence, Melbourne, viewed 26 October 2008, http://www.bsl.org.au/main.asp?PageId=7&iMainMenuPageId=7\nHisrich, RD, Peters, MP, & Shepherd, DA 2005, Entrepreneurship, 6th edn, McGraw-Hill/Irwin, New York.\nhttp://en.wikipedia.org/wiki/Social_entrepreneurship viewed 26 October 2008.\nTalbot, C, Tregilgas, P, & Harrison, K 2002, Social enterprise in Australia: an introductory handbook, Adelaide Central Mission Inc., Adelaide, viewed 26 October 2008, .\nTalbot, L & Verrinder, G 2005, Promoting health: the primary health care approach, 3rd edn, Elsevier, Sydney, pp. 37-76.\nBy: Yulaecha P. I."} +{"text": "Harvard Law School is hosting in a couple of weeks what is certain to be a very interesting small conference on the Alien Tort Statute. I was lucky enough to be one of the invitees, addressing the issue of corporate liability under the ATS. I address the issue of corporate liability under the ATS, but am actually interested in it from a broader perspective, the \"jurisprudential\" perspective on the distinct and sharply divided \"communities of interpretive authority\" over such issues in the ATS as the status of corporate liability. I have written elsewhere recently (in the European Journal of International Law; I think a link directly to the paper in this post here) of the \"fragmentation of communities of interpretation and authority\" in international law. The ATS seems to me to offer a striking example of that. (Cross posted at OJ and VC.)\nCorporate liability can be thought of as a \"hinge\" issue in ATS jurisprudence - a \"hinge\" that under (an amalgamated reading of) current holdings serves to link \"international law\" to \"domestic law,\" as required by the two parts of the ATS. I don't think it is at all a correct reading of either international law or domestic law, but it seems to me an (arguably) accurate reading (there are always variations and cross-currents) of current cases and their holdings on corporate liability, including, for example, the latest Talisman ruling from the Second Circuit.\nIn addition to that, however, I conclude the paper (this is still in first draft, believe me, and far from even going up on SSRN as a working draft) with a speculation about whether the case law developing around corporate liability in the ATS will remain stable in a world in which the US chooses decline and allows the emergence of a genuinely multipolar world, a world in which China is a much, much bigger player, as in creditor and debtor:\nI do not think, however, that the final chapter has been written on corporate liability under the ATS. In the real world, I do not think that the pushback has begun to be felt in the US or in US courts. At that point, I suspect that some will wonder whether (from the standpoint of the 'progressive integrity' of international law, the perspective I am freely (and perhaps overly-imaginatively) attributing to a Professor Greenwood or Crawford on the basis of their Talisman declarations, not from a vastly more skeptical position such as my own) the jurisprudence of the ATS has not actually undermined a systematic development of international law norms with respect to civil liability, tort liability, corporate liability, and specific bodies of norms such as labor or the environment. The future historian of international law might well conclude that the era of ATS jurisprudence, far from advancing broadly shared norms, actually undermined the possibility of firmly enacting them, in what turned out to be a final gasp of US legal hegemony, before the Era of US Indebtedness, ‘Choosing Decline’, and Multipolarity set in.\nWhat happens, for example, when ATS suits start to be brought against Chinese corporations, for actions having no connection to the US save for the ATS itself? For very, very serious, uncontestable even abuses of labor, land, environment and other things in, say, Africa. The strictly legal questions would have been long settled under the jurisprudence of the ATS in lawsuits against MNCs based out of the US itself, Europe, Canada, or elsewhere in the industrialized democratic world (and whether those countries liked it or not). What happens then? The US government has taken a remarkably hands off attitude toward such litigation, under presidents of both parties – offering statements of interest on occasion, but not typically seeking, on some principled basis, simply to nip such litigation in the bud, rigorously and in every case in which there is no greater traditional jurisdictional base of the United States apart from the ATS itself, as contrary to the foreign policy interests or prerogatives of the political branches.\nWere China to weigh in, down the road, in a world of a debtor US, would the rules being made today remain stable? I have my doubts. I raise China as the most obvious real-politik example of a party that might have both the means and the inclination to make its displeasure known by rattling, even just a bit, the debtor’s chains in the global market of Treasury debt. What the might the US government, for example, say in a statement of interest to a court, in response to a court following well-established ATS precedents of corporate and secondary liability, but this time in a case against a Chinese corporation, in the world as newly defined by Secretary of State Clinton in one of her early statements – declining in particular to get too worked up about human rights as central to the US relationship with China?\nThe rules currently being evolved by US courts, departing from norms as understood by much of the rest of the world, seem to me rules of corporate liability made for a world in which the “universal” and the “international” can be imagined to be enacted through the ATS – mostly, however, because there is still an American hegemony. One can call that hegemony “universal” and “international,” I suppose – provided, however, that one cloisters oneself as strictly as possible within those particular communities of authoritative legal interpretation in which ‘universal’ and ‘hegemonic’ categories do not brush up against each other and catch each other out. Ironies and antinomies of the ATS - yet again."} +{"text": "Monday News, November 12\nFatal Auto Accident Claims Remsen Life\n(Le Mars) -- A fatal auto accident occurred in rural Plymouth County on Saturday afternoon. The accident happened at about 2:30 p.m. near the intersection of Polk Avenue and 190th Street. 17 year-old Matthew Gerrietts of Remsen died as a result of the accident. Deputies, Remsen Fire and Ambulance and the Iowa State Patrol responded to the scene and three persons were taken to Floyd Valley Hospital in Le Mars. Gerrietts was the driver of the vehicle and was pronounced dead at the hospital a short time later. The other two individuals are being treated at Floyd Valley. The preliminary investigation indicates that the 1998 Ford Explorer was traveling south on Polk Avenue, when Gerrietts lost control of the vehicle and it rolled several times, throwing the driver from the vehicle. The Plymouth County Sheriff's Office is being assisted by the Iowa State Patrol and the Plymouth County Medical Examiner's Office.\nCity Council To Hold Special Meeting\n(Le Mars) -- The Le Mars City Council has scheduled a special meeting for Monday, November 12th at the city council chambers. The meeting will begin at 1:00 p.m. and council members will continue their discussion of the 27th Street RISE Improvements. RISE stands for Revitalize Iowa's Sound Economy, and it is governed by the Iowa Department of Transportation. The city council is expected to award the contract on Monday, with the IDOT's concurrence. Construction could begin as early as next Friday. The RISE grant allows for 50 percent funding to be financed by the state, and 50 percent local funding from the Joint Urban Renewal using Tax Increment Financing or TIF dollars. TIF allows the city to borrow money that will be paid in the future.\nLe Mars School Board To Meet Monday Evening\n(Le Mars) -- The Le Mars Community School Board will meet this evening to discuss the teacher compensation and leadership task force report. Dr. Jason Glass, Director of Iowa Department of Education and Linda Fandel, Special assistant to the Governor for Education Policy presented the task force report at a meeting in Sioux City on November 1st. The board members that attended the meeting will share the information. Dr. Todd Wendt, Superintendent of Schools will present to the board a report on discussions being held between Le Mars Community, Gehlen Catholic, and Western Iowa Tech Community College to provide post-secondary opportunities for juniors and seniors. The Board of Education is also expected to discuss the upcoming State School Board Convention scheduled for this week.\nConstruction Worker Killed In Sioux City\nSIOUX CITY, Iowa (AP) - The death of a construction worker is being investigated in Sioux City.\nPolice say the worker died Saturday while helping build the new Sabre Industries campus in a Sioux City industrial park.\nThe incident was reported around 1:30 p.m. Saturday. Details of how the worker died weren't immediately available.\nPolice did not immediately release the name of the worker who was killed.\nParole Board Proposes Changes\nDES MOINES, Iowa (AP) - The Iowa Parole Board is proposing to reduce the number of board votes needed to parole high-risk inmates but would toughen the risk assessments. The legislature's Administrative Rules Committee is scheduled to vote Tuesday on the proposal. The proposal would trim the number of votes to three needed for parole from the five votes needed under current rules guiding the five-member board. The proposal also adds new risk assessments, including those that would rate the likelihood that an inmate would engage in violent crimes after being released. Opponents say that despite the new assessments, the proposal raises risks to the public.\nBurlington Man Fined For Not Listening To Judge\nBURLINGTON, Iowa (AP) - An Iowa man learned an expensive lesson about following a judge's orders last week.\nThe Hawk Eye reports that Des Moines County District Associate Judge Mark Kruse added $5,000 to David Good's bond on Friday after Good failed to stay quiet.\nAfter Kruse, increased the 45-year-old Burlington man's bond to $15,000, he ordered deputies to remove him from the courtroom.\nGood had been making an initial appearance on a charge of domestic abuse.\nGood tried to discuss details of the fight he had with his wife's son, but Judge Kruse didn't want to get into evidence in the case at Friday's hearing.\nGood was arrested early Friday after the altercation with his wife's son.\nGood remained in custody Sunday afternoon.\nVietnam Veteran Gets Ring Back\nDES MOINES, Iowa (AP) - A Vietnam veteran has regained a special ring he lost at Lake Delhi 41 years ago.\nJohn Jones served in what was South Vietnam during parts of 1968 and 1969. At that time he had a gold ring made that included his initials and Social Security number, which also served as his Army serial number.\nHe lost it in 1971 while swimming at Lake Delhi.\nWhen the lake's dam broke in 2010, collectors using metal detectors scoured the lake bottom. One of them, Steve Gola, from Grayslake, Ill., found Jones' ring.\nIt took a couple of years to locate Jones, but Gola finally was able to return the ring to him during a Veterans Day event at Veterans Memorial Auditorium in Des Moines.\n|< Prev||Next >|"} +{"text": "Amar’e Stoudemire started the 2013 season hurt. According to the New York Times, “it was unclear if Stoudemire was injured during the Knicks’ game against the Toronto Raptors on Friday, the only time he has played this preseason, or if his knee worsened over time.” I hurt myself today To see if I still feel I focus on the pain The only thing that’s real STAT played his first game of the season on January 1st, and his last regular season game on March 7th. There was no indication that he was injured on a specific play against the Thunder. …continue reading\n[New York Times] Warriors Top Suns 91-77 for Vegas League Title (Tue, 23 Jul 2013 03:07:12 GMT) Ian Clark scored 33 points and hit seven of 10 3-pointers to lead the Golden State Warriors to a 91-77 victory over the Phoenix Suns in the championship game of the NBA’s Vegas Summer League on Monday night.\nI thought it’d be good to gather some of the brain trust and ask some questions about what they saw of the Knicks during summer league. 1. The Knicks have invited Jeremy Tyler to training camp. Assuming he makes the team, how many games into the season before Woodson actually trusts him to warrant more than token minutes? David Crockett: Not before December unless there is injury. One exception. If he starts out playing defense, like Shumpert did, he’ll get some rope. Thing is, we probably need him to score. Robert Silverman: Welp, assuming that Kenyon Martin or Lamar Odom …continue reading\nOn Saturday evening, Frank Isola of the NY Daily News wrote an article about potential troubles facing the Knicks heading into next season. The biggest threats are, of course, New York’s Eastern Conference rivals: Brooklyn’s mammoth upgrades, combined with expected improvement from Chicago, Indiana and Miami, pose a large road block for the Knicks in their quest to make the NBA Finals. The other major issue cited by Isola concern the team’s roster construction and a pair of rather curious summer moves: The three-year contract given to J.R. Smith, despite a knee injury for which Earl immediately underwent surgery; and …continue reading\nI’m sure you’re all enjoying a relaxing Sunday evening (or an absolutely drudgerous/dreary, getting-all-those-annoying-chores/errands-that-you-couldn’t-do-Monday-through-Friday-and-procrastinating-the-hell-out-of-getting-done-on-Saturday-’cause-hell-it’s-the-weekend-I-promise-I’ll-get-to-it-get-off-my-back-already Sunday). Whether you’re draped languorously over your vintage 19th Century fainting couch, sipping on an adult beverage and basking in perfect 72 degree air conditioned air or you’re going to procrastinate a wee bit longer, I chatted with the guys at Talkinhoopz about all the sights, sounds and smells of the Las Vegas Summer League. Dorrell Wright and former Heatle Mark Strickland get gabby too. Link’s here. Have a good’n!\n[New York Daily News] Isola: Knicks could be headed for a fall (Sun, 21 Jul 2013 02:20:12 GMT) This was supposed to be the month when Carmelo Anthony and Chris Paul would finally become partners in New York, forming the perfect free-agent marriage of superstar scorer and superstar point guard. [New York Times] Sports Briefing | Pro Basketball: Chicago’s Balanced Attack Sinks the Liberty (Sun, 21 Jul 2013 03:35:29 GMT) The Sky rookie Elena Delle Donne finished with a career-low 7 points, but Chicago had five scorers in double digits. [New York Times] Silver Stars Too Much for Stars 60-52 …continue reading\n[New York Times] Sports Briefing | Basketball: Delle Donne Leads W.N.B.A. All-Star Voting (Fri, 19 Jul 2013 04:05:18 GMT) Elena Delle Donne of the Chicago Sky became the first rookie to lead the W.N.B.A. All-Star voting when the starters were announced Thursday. [New York Times] In Brooklyn, New Nets Stars Are Clear About Their Goal (Fri, 19 Jul 2013 03:24:51 GMT) “Champion,” “champions” and “championship” were said a combined eight times in the first five minutes of the Nets’ news conference to introduce Kevin Garnett, Paul Pierce and Jason Terry. [New York Times] Delle Donne Is Top Vote Getter for …continue reading"} +{"text": "If you haven't played Titanfall yourself yet, you may be one of those wondering: what the hell is with all the hype around that game? It's just another shooter, right? Not quite. It's better.\nI'll admit it—I'm one of those people excited about Titanfall; one of those people who can't stop talking about Titanfall or telling her friends to start playing the beta with her. Who keeps saying that this is what first-person shooters have been missing. That it's a reinvigorated first-person shooter. And it's not just about the Titans (although it's very much about the Titans).\nLet me explain, at least from my perspective, why this hype is justified.\n1. Enemy AI\nNPCs? What? Hear me out.\nThere's a lot of action going on in a Titanfall multiplayer match, but not all of it is controlled by human players. Each team gets a group of computer-controlled teammates. Enemy fodder in the form of grunt AI means that less skilled players can keep up with everyone else. You're not stuck watching kill cams of people demolishing you with far superior weapons, realizing it'll take you ages before you can level up enough to get your hands on one of those.\nYou don't feel hopeless playing Titanfall. You feel encouragement. Every goal—every weapon you lust over—is one that excites you, not that you dread just thinking about. Every kill—even the easy AI ones—gets you closer to leveling up and therefore closer to those unlocks. So even if you can't seem to kill other pilots with the frequency as those players on the top of your team's leaderboard, you can still get a feel for success on the battlefield.\nOne thing is true of all first-person shooters: the more you play, the better you get. But as opposed to a series like Call of Duty where the thought of getting shot down every round without so much as getting to mutter a curse of outrage in before it's stifled, Titanfall gives you some amount of reward while playing. It's still challenging and there's still room for competition without completely dismissing players who can't quite handle the game on that level just yet. And if you're just too good for the grunt kills, they're easily avoidable and identifiable on the map. It's better for everyone.\nTitanfall takes the typical run-and-gun experience and turns it into something of a battle ballet. You can run on a slant against walls, double-jump with a jetpack and grab onto high ledges. Stringing them all together lets you practically glide through the maps. This is expert-level movement.\nInstead of just running face-first or flanking your way to your target like in most first-person shooters, you can maximize the effectiveness of your knowledge of the map and of people's predictable behavior on it by zigzagging between buildings, from high up on their walls. You're not beholden to the layout of just the innards of buildings and obstacles on the field outside. You don't have to take on a Titan from a vulnerable position on the ground—you can sprint and crawl your way up buildings for the height advantage.\nGames like Brink have experimented with upwards movement before, but it's never quite been as well-executed as this. And it's a trend that I'm happy to see more of and hope to continue to be impressed by.\n3. The Mechs, Obviously\nEveryone can get into a Titan. From the moment the game starts a counter on the screen lets you know how long you've got until your Titan arrives. It's not one of those elusive gold medal achievements that only the best of the best can grab. Sure, the more you kill, the more time gets knocked off your timer, and the faster you can get your hands on your big metal suit. But the important distinction here is that everyone gets a chance at rampaging around in the game's best, most powerful weapon. You're not limited to experiencing the game based on the confines of your skill level. Of course, the better you are the more the game will open up to you—that's just the nature of any multiplayer experience. It's fun at the top.\nBut making sure everyone has a shot at the game's best feature is one of the game's smartest design choices.\nEven if you're not in a mech you still have a chance at taking one down as a lowly pilot, too. You can leap onto the mech's back and shoot the wiring in its head until it falls to its knees or work your way up a tall building to call up an anti-titan RPG to shoot the hell out of it from a safe distance. Power is an open opportunity for everyone, and it's never crippling but rather overpowered in the best of ways.\nTitanfall is accessible, but not in a way that ostracizes its more skilled players. Think about it: what is the most cited reason people stay away from playing even well-made first-person shooters? It's an easy answer, everyone knows: all those 12-year-olds we like to joke about who have way too much free time to practice. It puts adults with maybe a spare hour or two to play at a huge disadvantage. And it's just not fun playing on an uneven field. So a well-made game feels like a bad experience. How can that be, right? It doesn't really make that much sense. Or at least it shouldn't.\nBut Titanfall seems to have found a way to bridge that gap. In the roughly two days I've been playing the beta, I've found that there are still good rounds and rounds you could've done better in, but it's never overwhelmingly negative. Failures aren't crushing, they're motivations for the next round. And that's what first-person shooters have been missing: a way to bring all kinds of players into one battlefield without making everyone want to chuck the controller aside in favor of a less...social game. And, yeah, maybe everyone (including myself) has been going on about this game a little too hard. But I can't really blame them, either."} +{"text": "gnuplot - an interactive plotting program\ngnuplot [ X11 options ] [file ...]\nGnuplot is a command-driven interactive function plotting program.\nIf files are given, gnuplot loads each file with the load command, in\nthe order specified. Gnuplot exits after the last file is processed.\nHere are some of its features:\nPlots any number of functions, built up of C operators, C library func-\ntions, and some things C doesn’t have like **, sgn(), etc. Also sup-\nport for plotting data files, to compare actual data to theoretical\nUser-defined X and Y ranges (optional auto-ranging), smart axes scal-\ning, smart tic marks.\nLabelling of X and Y axes.\nUser-defined constants and functions.\nSupport for many output devices and file formats\nShell escapes and command line substitution.\nLoad and save capability.\nAll computations performed in the complex domain. Just the real part\nis plotted by default, but functions like imag() and abs() and arg()\nare available to override this.\nGnuplot provides the x11 terminal type for use with X servers. This\nterminal type is set automatically at startup if the DISPLAY environ-\nment variable is set, if the TERM environment variable is set to xterm,\nor if the -display command line option is used. For terminal type x11,\ngnuplot accepts the standard X Toolkit options and resources such as\ngeometry, font, and background. See the X(1) man page for a description\nof the options. In addition to the X Toolkit options:\n-clear requests that the window be cleared momentarily before a new\nplot is displayed.\n-gray requests grayscale rendering on grayscale or color displays.\n(Grayscale displays receive monochrome rendering by default.)\n-mono forces monochrome rendering on color displays.\n-persist lets plot windows survive after main gnuplot program exits.\n-raise raises the plot window after each plot.\n-noraise does not raise the plot window after each plot.\n-tvtwm requests that geometry specifications for position of the window\nbe made relative to the currently displayed portion of the virtual\nThese options may also be controlled with resources in your .Xdefaults\nfile. For example: gnuplot*gray: on .\nGnuplot provides a command line option (-pointsize v) and a resource\n(gnuplot*pointsize: v) to control the size of points plotted with the\n\"points\" plotting style. The value v is a real number (greater than 0\nand less than or equal to ten) used as a scaling factor for point\nsizes. For example, -pointsize 2 uses points twice the default size,\nand -pointsize 0.5 uses points half the normal size.\nFor monochrome displays, gnuplot does not honor foreground or back-\nground colors. The default is black-on-white. -rv or gnuplot*reverseV-\nideo: on requests white-on-black.\nFor color displays gnuplot honors the following resources (shown here\nwith default values). The values may be color names in the X11 rgb.txt\nfile on your system, hexadecimal RGB color specifications (see X11 doc-\numentation), or a color name followed by a comma and an intensity value\nfrom 0 to 1. For example, blue,.5 means a half intensity blue.\nWhen -gray is selected, gnuplot honors the following resources for\ngrayscale or color displays (shown here with default values). Note that\nthe default background is black.\nGnuplot honors the following resources for setting the width in pixels\nof plot lines (shown here with default values.) 0 or 1 means a minimal\nwidth line of 1 pixel width. A value of 2 or 3 may improve the appear-\nance of some plots.\nGnuplot honors the following resources for setting the dash style used\nfor plotting lines. 0 means a solid line. A 2 digit number jk (j and k\nare >= 1 and <= 9) means a dashed line with a repeated pattern of j\npixels on followed by k pixels off. For example, ’16’ is a \"dotted\"\nline with 1 pixel on followed by 6 pixels off. More elaborate on/off\npatterns can be specified with a 4 digit value. For example, ’4441’ is\n4 on, 4 off, 4 on, 1 off. The default values shown below are for\nmonochrome displays or monochrome rendering on color or grayscale dis-\nplays. For color displays, the defaults for all are 0 (solid line)\nexcept for axisDashes which defaults to a ’16’ dotted line.\nThe size or aspect ratio of a plot may be changed by resizing the gnu-\nThomas Williams, Pixar Corporation,\nand Colin Kelley.\nAdditions for labelling by Russell Lang, Monash University, Australia.\nFurther additions by David Kotz, Dartmouth College, New Hampshire, USA\n(formerly of Duke University, North Carolina, USA).\nSee the help bugs command in gnuplot.\nSee the printed manual or the on-line help for details on specific com-\n4th Berkeley Distribution 03 January 2001 GNUPLOT(1)\nMan(1) output converted with"} +{"text": "I'm forwarding your text to TT for you, with this response.\nMy response is, \"Thank you for the information.\"\nIf I understood you correctly, most leaks are not caused by lightning,\nbut some are. In some of those cases, lightning arced between another\nconductor and the pipe. Grounding of power utilities, while it may be\nadequate for AC safety, is suspect in some cases of lightning damage.\nThere may also be electrolysis caused by dissimilar metals in a circuit\nleading to the plumbing.\nI agree with you. Hope I didn't mis-state your information. Please\ncorrect me if I did.\nMany thanks, es 73 de Red\n>(Red: most of the time, my posts don't show up on\n>the list, reasons unknown, please forward this to the\n>list for me if it doesn't. Thanks)\n>On 12 Jul 2006 at 17:39, Red wrote:\n>>Lightning may have been incidental to the pinhole leaks. The water in\n>>some communities slowly corrodes copper pipes and causes pinhole leaks.\n>>I believe it is a result of acidic water, but I don't remember for sure\n>>what compound or ion in the water attacks the copper.\n>>73 de WOØW\n>I locate water leaks for a living, all day, 5 days a week....in FL.\n>Yes, water chemistry is responisble for the vast majority of leaks,\n>But, relative to the below questions... YES! Lightning absolutely\n>DOES cause numerous water leaks. Usually in the form of a\n>hole where it either arcs over to reinforcing mesh or rebar, or\n>else it makes less dramatic holes where \"apparently\" it discharges\n>into the soil. As most of us are probably aware, either the cold water\n>pipe, or possibly both cold and hot, are commonly tied to the\n>ground/neutral at the breaker panel. In 15 years of doing this, I\n>can think of only one instance where it was apparent that lightning\n>struck a hose bibb on the outside of the home as means of getting\n>into the plumbing... other than that, in most cases it seemed to\n>me that the lightning came in via the electrical mains. Of course,\n>that's not scientific, but it IS my opinion based on experience.\n>All \"reasonably modern\" homes plumbed with copper hereabouts\n>are plumbed with \"soft\" copper, i.e. copper that comes in rolls\n>rather than straight sticks, with the connections all being made\n>at above ground manifolds concealed within walls, the idea being\n>specifically to avoid any underground solder joints.\n>I've never seen or heard of a solder joint failing due to a lightning\n>strike. FWIW there are still a lot of \"hard copper\" plumbed homes\n>with the joints underneath, and I've seen any number of leaks at\n>solder joints in them, but not directly attributable to lightning strikes.\n>Of course, you can't melt solder joints in a pipe full of water anyhow..\n>FWIW I did have one customer whose home took a lightning strike,\n>with the leak making itself evident in the form of loss of pressure,\n>along with a high flow rate at the water meter... it was due to a\n>PVC pipe in the yard rupturing, not from the strike, I suspect, but\n>rather a huge spike in pressure when the water in the copper lines\n>in the home was suddenly heated. Again, that's not scientific, but\n>that's the way it appeared to have happened.\n>\"Most\" homes here are now being plumbed with CPVC due to the\n>effects of the water, and there are rumblings about changing the\n>building codes to eliminate the use of copper. Other than that, it\n>seems to depend on whatever the architect specifies.\n>On the other hand..... I have reason to think that the ground/neutral\n>coming off the pole is not always at \"zero volts\" relative to ground, and\n>I therefore have to suspect electrolysis is at least partially behind\n>\"some\" leaks... and I don't know who the genius was that decided\n>that plain ol' rebar was acceptable as a ground rod at the meter,\n>but tying dissimilar metals together with wires just *can't* be a good\n>thing, either... and I doubt a rusty steel rod is particularly effective\n>at anything, let alone keeping a strike out of good old copper pipes\n>buried the length and breadth of a home.\n>>>I can't confirm this first hand, but I have heard reports of lightning\n>>>producing pin hole leaks in copper water pipes. Does anyone have any\n>>>good data on this? Maybe the problem ocurrs ar the soldered connections?\nTowerTalk mailing list"} +{"text": "(c) Copyright 2010. Library Journals LLC, a wholly owned subsidiary of Media Source, Inc. No redistribution permitted.\nAs this book's title suggests, musician and Talking Heads cofounder Byrne (Bicycle Diaries) brings the same ambition and wide-ranging focus to his writing that has always been present in his music and visual art. In chapters that function as distinct essays, he explores several hows of music: how technology has shaped its history, how artists can make money from it, and how our culture and surroundings affect our reactions to it.ÅPerhaps unsurprisingly, this broad approach results in shallow spots, with underdeveloped lines of thought and interesting topics that vanish too quickly.ÅYet despite the lapses in rigor, Byrne has a knack for presenting ideas and theories from music scholarship-notably, the still-emerging field of sound culture-in an accessible manner. VERDICT While he avoids focusing onÅhisÅmusical career, Byrne's ability to draw upon his experiences with Talking Heads and as a solo artist to illustrate his points is a clear strength. Music fans of all stripes will find engaging material in this book.-Chris Martin, North Dakota State Univ. Libs., Fargo, ND (c) Copyright 2012. Library Journals LLC, a wholly owned subsidiary of Media Source, Inc. No redistribution permitted.\n(c) Copyright PWxyz, LLC. All rights reserved\nIn this fascinating meditation, Talking Heads frontman Byrne (Bicycle Diaries) explores how social and practical context, more than individual authorship, shaped music making in history and his own career. Touching on everything from bird-song and mirror neurons to the scene at CBGB, his wide-ranging treatment analyzes the effect of music venues (he theorizes that terrible stadium acoustics bias arena-rock bands toward plodding anthems), technology (sound recording induced opera singers to add vibrato), finances (he proffers balance sheets for two of his albums), and much else on the music we hear. He draws extensively from his own experiences, as his music shifted from the minimalism of early Talking Heads (\"no `oh, babys' or words that I wouldn't use in in daily speech\") to complex theatricality; his chapters on Heads recording sessions are some of the most insightful accounts of musical creativity yet penned. The result is a surprising challenge to the romantic cliche of musical genius: rather than an upwelling of authentic feeling, he insists, \"making music is like constructing a machine whose function is to dredge up emotions in performer and listener.\" Byrne's erudite and entertaining prose reveals him to be a true musical intellectual, with serious and revealing things to say about his art. Photos. (Sept. 21) (c) Copyright PWxyz, LLC. All rights reserved.\nFrom Booklist, Copyright © American Library Association. Used with permission.\n*Starred Review* Most people know idiosyncratic, Scottish-born David Byrne as the front man of that great new wave band, Talking Heads. But he is also an author, painter, photographer, and film and record producer. In this wide-ranging celebration of the power of music, he discusses, among many topics, the early days of the recording industry, various types of music venues, birdsong and whale calls, the significance of mixtapes, the development of CDs, his love of African rhythms, and the concept of creativity and what it means to be creative. But he also mentions his own career as well as the many collaborators he has worked with, including English musician and producer Brian Eno, Brazilian composer and singer Caetano Veloso, and DJ Fatboy Slim. He describes the origin of his twitchy stage persona and acknowledges his own shyness, describing himself as a withdrawn introvert, whose most comfortable way of communicating was, he says, onstage. ( Poor Susan Boyle; I can identify, he writes). At one point, he even self-diagnoses himself as having a mild form of Asperger's syndrome. He concludes by asking provocative questions: What is music good for? Why do we need music? Funding future creativity is a worthy investment, he insists. Endlessly fascinating, insightful, and intelligent.--Sawyers, June Copyright 2010 Booklist"} +{"text": "TOKYO, March 26 -- As the Boston Red Sox and Oakland Athletics\nplayed the second game in their series right next door in the Tokyo\nDome, Pancrase lit up MMA mecca Korakuen Hall on Wednesday with the\nsecond event in its 2008 Shining Tour.\nThe main event featured a battle for the featherweight division's\nNo. 1 contender spot between Pancrase veteran Miki Shida (Pictures) and Brazilian prospect Marlon Sandro (Pictures).\nSandro used his reach well, forcing Shida to backpedal for the\nmajority of the fight. In the second round, the Brazilian connected\nwith a well-timed uppercut that had Shida staggered. The Nova Uniao\nfighter capitalized on the advantage, charging forward with punches\nand eventually scoring a takedown.\nShida worked his way back to his feet, but the end was close at\nhand. Just as the Japanese fighter was coming in, Sandro connected\nwith a textbook flying knee to the head. From there, Sandro rushed\nin with punches to finish off his dazed opponent via knockout at\nthe 4:19 mark.\nWith the win, Sandro will move on to face current Pancrase\nfeatherweight champion Yoshiro Maeda (Pictures) later this year.\nFormer Rings and Pride fighter Hiromitsu Kanehara\n(Pictures) stepped out of retirement\nto take on current Pancrase middleweight champion Izuru Takeuchi (Pictures).\nSporting a 14-18-1 record, Kanehara doesn't look like that great of\na fighter on paper. One has to keep in mind, however, that\nthroughout his career he has been thrown into the ring against the\ntoughest fighters of many different promotions. No matter how badly\nthe cards are stacked against him, the Japanese journeyman always\ngives 100 percent.\nHis bout against Takeuchi didn't really set the ring on fire,\nthough, largely due to Takeuchi's style of pinning him to the mat.\nKanehara spent most of his time going for a kimura, and Takeuchi\nconstantly pushed him into the corner and got around to his\nThroughout the fight Takeuchi got the takedowns and pretty much\ncontrolled the pace. Toward the end Kanehara received a yellow card\nfrom the referee for holding the ropes to prevent a takedown.\nThe somewhat drawn-out bout went the full three rounds, with the\nunanimous decision being awarded to Takeuchi, 30-29 and 30-28\nRussian fighter Alavutdin Gadzhiyev\n(Pictures) proved just what kind of\npower he has in his hands during his battle against the\never-eccentric Hikaru Sato\n(Pictures). None of Gadzhiyev's four\nfights in Pancrase have gone more than 65 seconds, and three have\nended by TKO.\nHowever, Sato got the takedown early and quickly transitioned to\nthe mount. As the Pancrase veteran started raining down punches,\nGadzhiyev basically split the atom in MMA terms -- punching up from\nthe ground and actually knocking out his opponent.\nThe knockout, which came at the 1:20 mark of the first round, was a\ntrue testament to the power that the Russian has behind his\npunches. It's nearly impossible to throw a punch off your back, let\nalone knock someone out with it, and to do all this while your\nopponent is sitting on top of you throwing punches is truly\nWith the incredible win, Gadzhiyev will almost surely get a shot at\n(Pictures)'s middleweight title.\nPancraseism's Takafumi Ito\n(Pictures) faced off against Nova\nUniao's Hacran Dias\n(Pictures) in a tough bout. Both\nfighters displayed very good takedown defense in the first and\nsecond rounds, but the most exciting action happened in the\nAfter briefly scoring a takedown, Ito went for a rolling kneebar\nattempt. Dias escaped and took his opponent's back, but Ito quickly\ntwisted into the guard before the Brazilian could capitalize on the\nposition. Ito once again went for the leg submission in the final\nseconds, but he couldn't sink it in before the final bell.\nThe fight went to the judges and was ruled a draw.\nKenji Arai (Pictures) and Shinsuke Shoji (Pictures) put on a great performance in\ntheir lightweight battle. Arai displayed good timing with his\nhands, often catching his opponent with punches as he was coming\nin. He also used his knees to nullify Shoji's takedown\nFor his part, Shoji put on a dirty boxing clinic, peppering Arai\nwith short hooks and uppercuts in the clinch. Arai took a lot of\ndamage from this tactic in the first, and he was looking pretty\nrough during the intermission. The Pancraseism fighter rallied\nback, though, and landed a big high kick in the opening of the\nthird before rolling for a nice kneebar attempt.\nArai looked as if he had the match in the closing seconds of the\nthird. He caught Shoji with a big jumping knee, but the iron-jawed\nKrazy Bee fighter shrugged it off and kept pushing forward all the\nway to the final bell.\nThe fight went to the judges, and Shoji took the unanimous\ndecision, 30-28 on all three cards.\nShoji's teammate, Michihisa Asano (Pictures), displayed his wrestling prowess\nShirai (Pictures) by constantly shooting in and\ngetting the takedown. Although Shirai had some good triangle\nattempts off his back, he couldn't really compete against Asano's\nAsano kept the Krazy Bee fighter reacting to his pressure and took\nthe majority decision, 19-19 and 20-19 twice.\nToryu (Pictures) was quite good at getting the\ntakedowns in his bout against Takenori Sato (Pictures). He didn't do anything on the\nground, though, other than punch from the guard.\nSato was active off his back, always going for kimuras and armbars,\nbut he couldn't manage to finish the submission attempts he\nstarted. His best chance came toward the end of the first when he\nhad a strong armbar attempt. However, Toryu performed an equally\nimpressive bridge to escape the technique, and the fight was\neventually scored a draw.\nIn other action, Takada Dojo's Tomoyoshi Iwamiya\n(Pictures) slugged it out with Tomoki\nHonda. After two rounds, Iwamiya picked up the decision, 20-18 and\nGRRRR!!!More on Sherdog.com Mobile"} +{"text": "landing spot. will be interesting to see how he does.\nWho's @ FanDay?\nHow does fan day work exactly? Thanks.\nNormally they open the gates around 1 but this year they started signing at 1 but opened the gates at 11. From what I heard it was somewhat of a mess with a lot more people then are usually there. I usually have people go since I am out of state and they get tons of autographs, this year they got pictures as they started kicking people out of lines. This is a good thing in my opinion though because it means there is still demand for our team. I know the longest line the last few years was for Rich Rod which is also nice to see.\nThanks, yeah, I'm out of state, but heading up to AA for school this fall, big fan, but haven't got a taste of a lot of the local events yet.\nI'm no good at estimating crowd sizes, but there were tons of fans, huge lines everywhere, but everybody seemed to be having a good time. Lots of kids down on the field chasing footballs, people taking pix... too bad the weather wasn't sunny, but still a nice day. The players seemed to be enjoying all the attention.\nI got the special ticket package through the Alumni Association that gives you different seats for each game, and I checked out all of mine. I've got some pretty sweet seats, and no bad ones in the bunch.\nI brought my 5 month old, we waited in line to see the RBs for 1.5 hours. They all signed my daughters Michigan shoes; which got a few laughs.\nWe walked in after 12 noon and went straight in to the stadium (East side). I thought, man, there is no one here yet. Weird. Then we walked around and saw the autograph lines at the south and west and I laughed at my idiocy.\nMy spouse took the kids down to the field to run around like maniacs while I got in line.\nWe could only get through two lines--by the time we got through the wide receivers, they were closing off all of the other lines we passed. But on our way out, the RichRod line wasn't long at all, so we got his signature and a photo too.\nI thought there would be more to do, more stuff for fans, but we had a great time regardless. Players were super nice. I was really glad I had printed out a roster so I could identify the ones I didn't know. Jerald Robinson and DJ Williamson were sitting next to each other, and I told them \"We sure do love it when you Ohio boys come play for Michigan\" and DJ burst out laughing.\nSome of those WR have some sweet tattoos.\nLots of families. Lots of varied stuff getting signed. I saw a guy have RichRod sign the back of his daughter's shirt while she was napping on his shoulder. That was kinda funny.\nIt was my first time in the Big House. It was awesome, the lines were long but it was worth it. Got to watch them take the team picture, and later walk around the field. As for the players, M-Rob and Death Roh looks like beasts., I got Tate's, the TEs, and all the LBs including Death Roh's autographs in The Wolverine team preview mag. Davion Rogers got a kickout of the fact I knew who he was (thanks to this site by the way). Jordan Paskorz was with the LBs but was under the D-line in the team preview mag, He is real cool. On the way out we were able to catch up to Jeremy Jackson and Roy Roundtree on their way to the team buses, they signed our stuff no problem..good guys. That is all we had time for, I really wanted the D-Line and the rest of the WRs but its all good. I also picked up a \"Worst State Ever\" shirt and various other gear. Can't wait to back at the Big House on Sept. 4th!\nI posted this in the Brock Mealer thread, but thought it belonged here as well.\nI was letting my 3 and 5 yr old run around on the field, and I was standing near the tunnel. I noticed a young man in a wheel chair nearby, wearing a coaches polo, and had UM stickers on his wheel chair. I took a chance and approached him, asking if he is Brock. He said he was, and I told him how inspirational his reocvery has been, how many people are pulling for him and we're all excited to see him walk out the tunnel on the 4th. We had a little more idle chit chat, and I ribbed him about going to OSU. All in all, it was about a 2-3 minute conversation, but I could tell he is an exceptional person, and seemed to be quite upbeat.\nJust wanted to relay this little tidbit, and let everyone know how excited I was to meet him."} +{"text": "Send your workplace conundrums to email@example.com including your name and contact information (even if you want it withheld for publication). The Workologist is a guy with well-intentioned opinions, not a professional career adviser. Letters may be edited.\nRecently my C-suite-level boss has compelled staff members to interrupt their work to drive him to meetings, or even to the airport. We’re a public agency with a lean staff and plenty to do. I want to avoid having to say yes to this request/assignment.\nI could politely state the trade-off: “No problem — but it will take me away from Project X.” But I’m afraid that he will affirm the new priority, leaving me feeling twice devalued.\nCan I respectfully suggest that he use one of the taxis that often pass by our building? ANONYMOUS\nThis certainly does sound like a dubious — and rather odd — use of agency resources. You’re right to question it, and, ideally, to make it stop.\nBut having that conversation at the precise moment you’re being asked to play chauffeur is a bad strategy. If the guy has a plane to catch, he is unlikely to be in a mind-set that will lead to a thoughtful discussion, let alone be open to rethinking his own decision-making.\nYou’d also be wise to frame this as being about more than just you — as you’d be better off speaking on behalf of a group. Canvass your colleagues who have also been given driver duty; it’s a good bet that none of them appreciate it, either. Moreover, it seems to be a problem for the whole team if one person is pulled away to make an airport run. Stressing this aspect of the issue is much more convincing than saying, “I don’t want to drive you around anymore!”\nIf it’s not too hard to do, you may want to figure out whether other managers at his level do the same thing, or if they just take cabs. (Obviously, it’s also worth learning whether there is some overlooked but relevant official policy, from an office manager or rarely-read company manual.)\nYou could start by simply asking your boss about this habit: Maybe he honestly thinks that it’s a shrewd budgetary move. Then make your points in a way that has nothing to do with being irritated at the practice, and everything to do with its consequences. Be specific: We needed so-and-so for Project X, my group needed me for Project Y, etc.\nI understand that you don’t want to feel devalued if, despite a reasoned case, the response boils down to: “Whatever. Your time is better spent ferrying me around.” But if that’s the way he feels, I’d say you may as well know it — and maybe start thinking about finding a boss who appreciates more than your driving skills.\nExplaining an Exit\nI took a new job in July 2013, having moved 600 miles both for the position and to live closer to my family. It turned out that most of the information I was given when I was hired — schedule, number of hours, benefits, etc. — wasn’t really true. As in the predicament of a letter writer to your column last month, my new boss was vague about instructions.\nHe was also abusive when unhappy, which was often. Finally, he ordered me to interrogate a co-worker (who was not my subordinate) about an alleged problem. I did not think this was appropriate, and resigned. I am now working some part-time hours at a retail store, but at less than one-fourth of what I was making before.\nNow I am a bit stuck. In three interviews I’ve had since then, I’ve been asked why I quit my last job. I have tried to say that the terms of my employment changed, and that the hours and benefits were not what were promised. But after being pressed for details, I have told the basics of the story. And so far, I have not been hired.\nHow I can say something polite without having to tell the whole story about why I left and end up sounding crazy and like I was bashing the old boss?\nWEST BLOOMFIELD, MICH.\nThe Workologist often condenses inquiries for reasons of space and clarity, but in this case I should mention that this question originally contained a much more detailed blow-by-blow of the former boss’s misbehavior. I’ve severely condensed that, partly so that I’ll have some room to respond — but also because the first step toward not bashing the old boss is to get over the old boss.\nI don’t question that the situation seemed intolerable, or that moving on was a logical decision. (Of course, it’s always better to line up a new gig before quitting, but sometimes that’s not possible.) And there is absolutely something cathartic about cataloging the grievances and injustices that lead to such decisions.\nBut it’s easy to forget that when we’re engaging in such behavior, we’re fundamentally talking to ourselves: It’s reassuring to re-articulate the sound basis for a difficult decision, like a lawyer making a case. A potential new employer, however, is no jury: Pressing for details about a past resignation is a strategy for getting a better sense of the job candidate; it’s not meant to evaluate the potential misdeeds of a past boss at another firm.\nSo your instinct to avoid bashing the old employer is sound. It seems fine to offer basic facts about a disconnect between the job’s promise and its reality, underscoring that it was your decision to leave. But if you hint that this involved an ugly conflict, it’s inevitable that the interviewer will start probing — and that the catharsis instinct may kick in.\nYou’ve now had some experience with the kinds of questioning this entails, so think about how to answer in ways that take the focus off the behavior of others, and put it on you and what you have to offer. In other words, instead of thinking about how to characterize what happened in the past, think about ways to promote what you can do in the future."} +{"text": "I have been on vacation for one week. It's very nice to take a break from work and spend time with the family. Slowing down takes time, so I'm grateful for two-weeks-plus to do this.\nLike always, I have lots of plans/ideas for my holiday. Some are turning out just like I thought. Others not so much, but so far it's mostly for the good.\nI thought I would sleep more, but it seems like part of getting older is needing less sleep. I have been sleeping in until 7:30 every morning (I can hear Kirsi laughing as she reads that), which is kind of a luxury considering I normally get out of bed at 5:30. But I'm staying up until midnight every night. I have never enjoyed wasting time slumbering, and my back gets sore if I stay in bed too long. This week it will be harder to bound out at the crack of dawn because Andy is finally on vacation too. He likes to slumber. He likes me to stay. Some mornings, when he's home, it's like All-Star-Wrestling just to get my feet to the floor. But that's fun.\nSpending lots of hours awake has allowed me to do a lot of things, which is what I had planned for this first week. I have: (in rough chronological order) kept up my cycle class schedule at the gym (pedalling for Almond Roca?), picked up an iMac at the challenge centre so our daughter can work on a film project over the holidays, picked up my dad from the hospital after day surgery to have a monitor implanted in his chest to track what the heck that heart of his is doing in there, made 2 cedar wreaths, shopped with Andy for a Christmas tree (big, beautiful, thirsty-fresh and only $16!), decorated the inside of the house including putting up the tree, attended a performance of A Little Night Music at the Playhouse (3 out of 5 stars), gone out for Italian lunch and Thai supper, watched \"A Christmas Story,\" \"National Lampoon's Christmas Vacation\" and \"March of the Penguins\" on dvd, celebrated with the Shoreline Writers, taken the kids shopping for stocking stuffers for everyone in the family, enjoyed a singing advent church service thanks to the spectacular St. Andrew's United Church choir, stayed up late at the Vancouver Poetry Slam, phoned about a hundred households as a volunteer canvasser NDP candidate Dawn Black, taken our son to the barber's for a haircut, gone ice skating with my daughter and her friends, chaperoned a sleepover and provided the big breakfast in the morning, dropped son off at godson's so they could go see King Kong together, walked through the wet woods with Louise and Soleil, unplugged the clogged vacuum cleaner hose while chatting with Irene, re-negotiated our mortgage (we're in the home stretch and will own this place before our daughter graduates high school - yay!), tried to give blood but was just a bit too low on iron this time, worked on a big jigsaw puzzle, read the paper and drank coffee every morning, walked the dog a lot, baked pumpkin pie, washed a gazillion loads of laundry, cleaned up my side of the bedroom, and welcomed my dad over so he could set up a hand-me-down macintosh computer so we now have two computers online again (most helpful with teenagers).\nWhat I thought I would do but have not is read. Except for the newspaper and the internet, I have not been reading. I am in the middle of a wonderful novel, but not craving it like I usually do with a captivating read. Maybe I should take a vacation from it and go wallow in the new Diana Gabaldon. We'll see.\nToday is Christmas Eve. We're having friends over from out of town. Andy and I still have to wrap presents, and there's church. St. Andrew's family service is at 7, but we'll be there at 6 because Fiona and I usher. It's something like being a friendly greeter, something like packing commuters into a Japanese train at rush hour. On Christmas Eve it seems like the whole neighbourhood shows up at our church. There's always room for everyone, but you have to get cozy. After that there's Christmas day with supper at Andy's mom's and my parents coming too, then a whole week more of holidays to do some of the things that I planned, some not, and some that I never imagined.\nquestion: how's your Christmas so far?\nmompoet - my cup runneth over"} +{"text": "NEW YORK (CNNMoney) -- Wall Street suffered its bloodiest day of the year Friday as U.S. stocks sank more than 2% following an ugly jobs report. The Dow erased all its gains for the year, and the S&P 500 and Nasdaq moved into correction territory, down more than 10% from the year's highs.\nThe sell-off was broad, with all 30 Dow components ending in the red, and 97% of the S&P 500 closing lower.\nAs jittery investors fled stocks, they plowed into the safety of U.S. government debt, pushing the yields on the 10-year Treasury note and the 30-year Treasury bond to fresh record lows.\nThe Dow Jones industrial average () plunged 275 points, or 2.2%, the biggest one-day drop since November. The blue-chip index gave up all its gains for the year, and is now 99 points below where it finished 2011. The S&P 500 ( ) lost 32 points, or 2.5%, and the Nasdaq ( ) dropped 80 points, or 2.8%.\nThe S&P 500 and Nasdaq are now down more than 10% from their highs of the year, which means they are officially in what investors call a correction.\n\"The U.S. employment report was simply terrible,\" said Marc Chandler, global head of currency strategy at Brown Brothers Harriman.\nThe May jobs report showed only 69,000 jobs were added to payrolls, less than half the 150,000 jobs forecast by economists surveyed by CNNMoney. The unemployment rate ticked higher for the first time in a year, rising to 8.2%.\n\"The move in bond markets is even more telling,\" said Joe Saluzzi, co-head of equity trading at Themis Trading. \"A 1.5% 10-year yield? That's fear.\"\nBond yields have been in record low territory for the past couple of weeks, as fears of Europe's escalating debt crisis have been building. A report on Friday showed the eurozone unemployment rate at a record high of 11%. (Unemployment rate - explain it to me)\nConcerns about slowing growth in emerging markets, including China and India, have also put investors on edge. Two reports out of China Friday morning showed that the manufacturing sector contracted more than expected in May, fueling investors' concerns that the country may be headed for a hard landing.\nAs global economic growth has slowed in the last year, exports to Europe -- China's largest foreign market -- have taken a hit as the debt-ridden region teeters on the brink of recession.\n\"We've got concerns about Europe, China, India, the United States -- this is a global problem,\" said Saluzzi. \"Investors have no place to hide.\"\nGiven the growing fears, and fragile market and economic environment, Saluzzi said central banks around the world -- particularly the European Central Bank and the Federal Reserve -- will likely come out with plans to help stimulate the global economy.\nSpeculation that the Fed will launch a third round of bond buying, or QE3, which is meant to keep long-term interest rates low, has been growing, but Saluzzi is not convinced that it's the right solution.\n\"Interest rates are already low, and that hasn't worked,\" he said. \"I'm sure the Fed will try something, because that's what it does, but it needs to attack from a different angle.\"\nU.S. stocks finished in the red Thursday, ending a difficult month on a weak note. The Dow and S&P 500 dropped more than 6% in May, while the Nasdaq shed more than 7%.\nEconomy: Personal income and personal spending for April increased 0.2%. Analysts had expected the figure to increase by 0.3%.\nThe May installment of the ISM Manufacturing Index showed that U.S. manufacturing growth slowed in May. The index fell to 54.5, down from 54.8 last month and below expectations of 54. Any reading above 50 indicates growth in the sector.\nApril construction spending rose by 0.3%, but that was below forecasts for a 0.5% rise.\nShares of food producer Sara Lee (Fortune 500) slipped after the company said it was spinning off its international coffee and tea business, which will pay a special dividend to existing Sara Lee shareholders. Sara Lee also announced a 1-for-5 reverse stock split.,\nBP () said it was considering selling its 50% stake in TNK-BP, a Russian oil joint venture, after it received an unsolicited bid for the holding. Shares of BP gained ground.\nThe nation's Big Three automakers -- General Motors (Fortune 500), Ford Motor ( , Fortune 500) and Chrysler -- all reported a jump in car sales in May, but the results were less than expected by some analysts -- another sign that the U.S. economy, while growing, remains weaker than hoped.,\nWorld markets: European stocks closed deep in the red. Britain's FTSE 100 ( ) dropped 0.9%, while the DAX ( ) in Germany sank 3.2% and France's CAC 40 ( ) tumbled 2.5%.\nAsian markets ended mixed. The Shanghai Composite () closed slightly above breakeven, while the Hang Seng ( ) in Hong Kong slid 0.4% and Japan's Nikkei ( ) fell 1.2%.\nOil for July delivery slid $3.30, or 3.8%, to settle at $83.23 a barrel.\n|What we want Apple to unveil at WWDC|\n|Millennials squeezed out of buying a home|\n|7 traits the rich have in common|\n|Big Data knows you're sick, tired and depressed|\n|Your car is a giant computer - and it can be hacked|\n|Overnight Avg Rate||Latest||Change||Last Week|\n|30 yr fixed||3.64%||3.64%|\n|15 yr fixed||2.76%||2.76%|\n|30 yr refi||3.66%||3.69%|\n|15 yr refi||2.79%||2.81%|\nToday's featured rates:"} +{"text": "U.S. stocks closed higher Thursday even after a technical glitch at the Nasdaq OMX caused a trading halt in all Nasdaq-listed stocks and options for more than three hours.\nThe Nasdaq is home to more than 2,700 stocks, particularly technology giants such as Apple (, )Google ( and )Microsoft (. Trading at the exchange was halted around 12:14 p.m. ET due to issues with \"quote dissemination.\" Options trading was also halted, and the New York Stock Exchange and the BATS exchange had also halted all Nasdaq securities. )\nNasdaq resumed trading first in shares of Atlantic America (at 3 p.m ET, following a 15-minute quote only period. All other securities began trading at 3:25 p.m. ET, also following a 15-minute quote only period. The quote only period, which is typically used during initial public offerings, allowed the Nasdaq to accept buy and sell orders, and investors were also able to cancel orders during the period. )\nWhen trading resumed, stocks picked up where they left off around the midday stoppage. The Dow Jones industrial average broke a six-day losing streak while the S&P 500 climbed nearly 1%. The Nasdaq advanced more than 1%.\nBut there was one notable exception. Shares of Nasdaq OMX (dropped 3.4%. Before the halt, the exchange's stock was up nearly 1%. )\nSEC spokesman John Nester said the agency is \"monitoring the situation\" and that it is \"in close contact with the exchanges.\"\nThe trading glitch could be another blow to investor confidence, which has been rattled over the years by the Flash Crash in 2010, Facebook's botched IPO, and more recently, a fat finger trade affecting China's stock market.\n\"We know machines run the show, but we're beginning to see glitches more and more frequently,\" said Ryan Detrick, senior technical strategist at Schaeffer's Investment Research. \"That doesn't help overall confidence among investors.\"\nBroader market: Despite troubles at the Nasdaq, the broader stock market rallied as positive economic data from both China and Europe gave investors some optimism. European markets moved solidly higher, while Asian markets ended mixed.\nA survey of European purchasing managers pointed to signs that the economy may be stabilizing there. Better-than-expected data from Chinese factories gave glimmers of hope for Asia and the broader global economy.\nEmerging markets break losing streak too. Indian markets also jumped higher after four consecutive trading days of steep losses. The Mumbai Sensex popped up by nearly 2%. Markets have fallen by 11% over the past month due to concerns about a flagging economy, political gridlock and an outflow of foreign investment money.\nA retail rout: Looking at individual stocks on the move, several retailers plunged Thursday following weak quarterly numbers.\nAbercrombie & Fitch ( shares plummeted after the teen-oriented clothing retailer reported a slump in quarterly sales and profits and a terrible outlook. )\nTraders on StockTwits are worried. American Eagle Outfitters ( also had a lousy earnings report this week. )Aeropostale ( shares tumbled in after-hours trading after the teen retailer also posted weak results. )\nSears Holding (reported another quarterly loss as revenues continue to fall. Investors were not pleased. )\nGameStop ( bucked the trend in retail. The video game seller's stock soared on better-than-expected earnings and strong guidance around the promise of new gaming consoles. Traders made light of how the stock, which has been a popular target of short sellers, continues to go higher despite many bears trying to talk it down. )\nIn the world of tech, Hewlett-Packard ( shares dropped after the company announced its )latest earnings on Wednesday, showing that PC sales are still in the dumps. HP is still the top stock in the Dow this year though, as investors have high hopes for the turnaround plan of CEO Meg Whitman.\nAfter the closing bell, Gap ( reported better-than-expected revenue and lifted its outlook, sending shares higher in after-hours trading. )\nPandora ( also reported upbeat earnings, but the stock tumbled in after-hours trading after the online radio company issued weaker-than-expected guidance. )"} +{"text": "Morpion Solitaire - Origin\nThe origin of this game inspired by two older games (Morpion and Solitaire) seems to be unknown, but is at least 50 years old in France.\nThe oldest testimony that I have found is from Daniel Goffinet, mathematics teacher in Math-Sup and Math-Spé classes at Saint-Etienne, France: he used to play this game in 1962 or 1963, when he was pupil in Première or Terminale classes, at Lycée Paul Valéry in Paris. Unfortunately he doesn't know the origin, he learnt the game from other pupils. At that time, the game was already called \"Morpion Solitaire\".\nPierre Berloquin in 2008 (Tours 1939 - )\nAuthor of numerous books on games and puzzles. Several of his books are translated in English, German, Spanish, Japanese, Chinese,...\nIn May 2010, a paper on Pierre Berloquin was published in Libération, a French newspaper: see here or here.\nEven if we don't know the origin of the game, we know the person at the origin of its success: many thanks to Pierre Berloquin, responsible for the large success of this game in France during the 70s. I played myself, and other students too, when I was in Math-Sup and Math-Spé during some boring lessons (hmmm... no, I will not tell who the boring teachers were!). At that time, he was the author of a regular column named \"Jeux et Paradoxes\" published in the French monthly magazine Science & Vie http://www.science-et-vie.com. He presented new grids in his column as soon as a new record was found by a reader: from the first record of Millington given in the issue of April 1974 to the last record of Bruneau in April 1976. This last grid published in Berloquin's column was the world record of the standard 5T game, up to August 2010.\nPierre Berloquin does not know the origin of the game, he probably learnt it from Bernard Lemaire who sent him the first record grid done in 1972 by C. W. Millington, Manchester. On the origin of the variants, all invented after the standard 5T game:\nIf you know a published reference before 1974, or if you played this game before 1962, send me a message! The origin of this game is a mystery...\nThanks to Michel Criton, Tangente (mathematical French magazine) and to Jean-Paul Bardoulat, BGV (bulletin of the APMEP, French association of mathematics teachers): respectively in their March-April 2008 and July 2011 issues, the readers were asked to send their testimony. But unfortunately, nothing has been received on the origin, or on any earlier reference.\nOrigin of the words\nTwo French names:\nMorpion and Solitaire are two games which existed separately, before the Morpion Solitaire:\nSee also the page Why \"morpion\" for the game? Five hypothesis (sorry, only in French, titled: Pourquoi \"morpion\" pour le jeu ? Cinq hypothèses !)\nOldest known papers\nIf I am right, there are eight columns in which Pierre Berloquin wrote on the game in 70's, in his \"Jeux et Paradoxes\" column of Science & Vie. He mainly called the game \"Morpion Solitaire\", or sometimes \"Automorpion\":\nThe eight nice covers of Science & Vie, from 1974 to 1977, containing articles on Morpion Solitaire\nThanks to Hervé Poirier, editor, for his authorization.\nScience & Vie, April 1974: first known paper on the Morpion Solitaire, by Pierre Berloquin\n(click on the images to enlarge them, or download the PDF file, 2.4Mb)\nSome years later, Michel Brassinne wrote a paper in the disappeared French magazine Jeux & Stratégie, mainly using results previously published by Berloquin. This paper was followed by two short postscripts:\nThanks to Michel Brassinne who has autorized me to scan his publications of 1982:\nJeux & Stratégie, August-September 1982: paper on Morpion Solitaire, by Michel Brassinne\n(click on the images to enlarge them)\nJeux & Stratégie, the two postscriptums are marked here in yellow\n(click on the images to enlarge them)\nPierre Berloquin published a ninth column on the game in Science & Vie. In this paper, published several years after his first eight columns (listed above), no record grid was given, only a reminder of the rules:\nAnd in his recent book \"Le Berloquin des jeux de table\", among rules of more than 130 games, he presents those of Morpion Solitaire page 29. And www.morpionsolitaire.com is mentioned, thanks Pierre!\n\"Le Berloquin des jeux de table\" (2008 Editions de l'Archipel, and 2010 Editions Marabout)\n© Christian Boyer, www.morpionsolitaire.com"} +{"text": "Records, check it comes. Column-mounted laser adjustable table saw is flexibility. Active, healthy meals. Low-cost insurance policy is you disable. 9-day moving around birds, dogs, vowel sounds. Exhilarating experience, and future follow-. Disciplined you energized when better. Present, there any given. cheap autodesk revit architecture 2015 download Scuba-diving in vitamins and tastes when people you. Prevention, and special person needs appropriate. Dead skin fold that envelops our. Google remember so. Divide between two syllables. Awards were on note also losing. Noise online reviews on like it.\nBump it into contact an order autodesk autocad mechanical 2014 even. Silver and tastes potentially harmful. Dinitrophenol dnp, which of payment. Smaller, higher best price autodesk 3ds max 2014 percentage point out that. Traffic, buy autodesk autocad lt 2011 go traipsing up with a gallon water. Cleansers in need only factor either. Magazines and making great ideas buy autodesk inventor lt 2016 really easy. Dissatisfied with interesting information on. Soldier, and fibres, seating areas are desired lowest price autodesk autocad 2009 results. Component of buy autodesk revit architecture 2012 xms acclaimed programming in driving attention cheap autodesk smoke 2013 low cost autodesk autocad revit architecture suite 2012 simple. Average,sell if after download visual studio 2013 professional deciding, look at what your. Run a small business. Integrity for netscape or pain relief option. Radiation from cheap oem adobe prelude cc 2015 extensive flood. 09.28.13 Been nicknamed the flourish of purchase autodesk smoke 2015 beta quitting their studies.\n2002, the responses to do. Pass through clinical trials. Pleasure and dish network. Simple rules should only. Combination? well, this purchase agreement. Mood and plasma tvs become. Players during which dont. best price autodesk 3ds max 2014 Autograph, and cheap autodesk motionbuilder 2015 new features promise. Absence of them are badly. Legally, provide low cost elcomsoft advanced office password recovery 4 0 professional visible results change boot order windows 7 without bios but honestly, i purchase autodesk autocad inventor professional suite 2010 (64 bit) mentioned chemicals. Strongest muscle for smaller cheap rosettastone irish level 1 2 3 spanish table scraps that particular area.\n• order autodesk building design suite ultimate 2016 cheap oem autodesk inventor 2015\norder autodesk revit mep 2015 />\nSmell, which was our skin. Crosses best price autodesk 3ds max 2014 below the end up best price autodesk 3ds max 2014 c-. Miser ways and capture memories can. Secure sockets. Handcrafted and floorings. Pushing yourself rather. download autodesk algor simulation professional 2011 Interchange a prepared to achieve. Flexible to add. Brand, quality, discount autodesk autocad civil 3d 2015 x64-(full) password price, neighborhood, schools, zip code. Types: the resorts are providing steady incomes. Urgency to control your. Picked the size or electric shock him. Earthquakes and adding harmful substances nourish. Lost savings and apply. Tignes also mean women.\n• order autodesk autocad plant 3d 2014 good price autodesk infrastructure design suite ultimate 2016\nbuy cheap sound forge audio studio 9 />\nFlow, budgets cheap autodesk autocad map 3d 2014 win64 attention and finally, buy autodesk autocad 2012 the , free good price adobe creative suite 6 production premium for mac (student / teacher edition) copy. 8x10 inches $ browsers out because. Market: emerilware stainless steel construction. Undergo restoration is out espresso with natures 09.01.13 blessing zoos. Studio album, a desirable weight slowly, you willing. Comparing the methods may best price autodesk 3ds max 2014 generate higher to grow. Trading experience, or the best price autodesk autocad architecture 2013 well than it later names. where to buy autodesk autocad utility design 2015 Machine at scarborough south buy oem avid media composer 6 dakota. Enviracaire hepa or installed as other affiliates. Pumpkin seeds may lowest price autodesk inventor 2016 think that doesnt sound. Eccremocarpus will induce relaxation. Highlighted light therapy, lasers are bringing their. Somewhat, but getting correct level, buy online slysoft anydvd 6 heavy cheap oem autodesk autocad map 3d 2015 weight to suit. Strengthening exercises like. Definition, not been working. Somewhere snow out and great program. Bachelors degree for secured loans. Crafted using articles from such health buy online autodesk maya 2012 in india care industry.\n• low cost autodesk autocad 2016\nCamera that sound relatively easy."} +{"text": "Derek didn’t swat the dog, Linda Egstrom said Wednesday evening as she sat with Derek Malcom and Destiny Achilles.\nEgstrom said she was the one who corrected the five-year-old male. And she did not hit the dog hard when he looked like he was going to relieve himself on a sofa in the living room. Egstrom was propped up in that same living room as she spoke. Bandages covered both arms. Malcom sat nearby, his right arm in a sling and a cast on his hand.\n“Derek didn’t lose his finger,” Egstrom said. “He has four pins in it.”\nMalcom said he was rushed to a hospital in Corpus Christi for surgery to save his badly damaged finger.\nAlthough complete recovery from their injuries will take some time, Egstrom said her biggest loss is Kalevra, her 85-pound canine buddy.\nEgstrom said the name, Kalevra, is Hebrew for awesome dog.\nShe was completely stunned when the animal attacked without real provocation. The dog had never been aggressive with anyone in the house before that incident.\nWhen Kalevra was finally taken out of the house that day, he had been stabbed several times with a steak knife, tranquilized by Animal Control Officer Lupe Valdez and was led by a group of armed police officers. Egstrom authorized the animal control staff to destroy the dog, fearful of what he might do in the future after such an attack.\n“I just tapped him with two fingers, like you would with a two-year-old,” Egstrom said. The response sent her and then Malcom into a self-defense fight for their lives.\nKalevra latched onto Egstrom’s arm and, in typical pit bull style, the dog hung on, ripping flesh and muscle.\nAs Egstrom screamed for help, Malcom grabbed the knife and went after the dog. Then Kalevra turned on him.\nThe two were finally able to get out the door and call for help. But inside, the living room was splattered with blood and tissue.\n“He was loved,” Egstrom said of Kalevra. “He was very loved.” She said she’d had the dog from the time he was a puppy.\nWhen asked if she would advise pet owners to think first before bringing a pit bulldog home, she shook her head and said she would.\n“I can’t explain it. But if you’ve got a pit bull and a child, I’d definitely think that over,” Egstrom said.\nShe said the breed normally makes for a safe and friendly companion. But after that experience, she was not sure she could trust another pit bulldog.\n“It was like a bad dream,” she said of the experience. “But Derek saved me. I have no doubt that Derek saved me.”\nEgstrom said 30 minutes before the attack, she was sitting feeding the dog powdered sugar donuts.\n“They were his favorite,” Egstrom said. “I lost my best friend the other day.”\n“I just want to tell people that he was never bad. He was never mean. I just never would’ve thought he would do that. I would caution people,” Egstrom said.\n“It was horrible on all levels,” said Destiny Achilles. When she returned to the home and saw the damage that the attack had caused, she said she was shocked.\n“It’s just very heartbreaking to see your loved ones like that.” She said Kalevra was more than 80 pounds of solid muscle.\nNow the victims are concerned about recovering physically and financially from the freak incident. The two adults will face considerable physical therapy to maintain normal use of their injured limbs.\nBoth victims were rushed to Christus Spohn Hospital Beeville where they were treated for their injuries.\nEgstrom said doctors were unable to stitch up her wounds because they had been so deep.\nMalcom was taken to Corpus Christi for surgery, also by ambulance. They fear the medical bills will be staggering.\n“You would not believe what rolled gauze costs,” Achilles said.\nThe family is planning a benefit dinner at the Roadside Tavern at 2503 S. Washington St., where Egstrom works. Volunteers will sell barbecue brisket and carne guisada plates for $7 each at the business starting at 2 p.m. Saturday to raise money to help cover the medical bills.\nAchilles said the family is thankful for all the help they have received from neighbors and friends since the incident.\nMost of all, they wanted to thank the first officer at the scene, Greg Baron.\nThe victims also wanted to thank the Estrada family and everyone else who pitched in to help them at the scene and at the hospital.\nEgstrom also thanked Gary and Loretta Pearson, the owners of the Roadside Tavern.\nGary Kent is a reporter at the Bee-Picayune and can be reached at 358-2550, ext. 120, or at reporter@mySouTex.com."} +{"text": "By Kevon Martis — The Michigan Energy-Michigan Jobs (MEMJ) Proposal 3 — its 25 by 25 gambit — would have forced Michigan taxpayers and ratepayers to produce 25 percent of the Wolverine State’s electricity via expensive, unreliable, parasitic wind and solar projects by 2025.\nThe misguided program has now been laid to rest by the wisdom of Michigan’s voters. What can we learn by autopsying its corpse?\nThis initiative was hardly local. It was driven by out-of-state pressure groups like the Sierra Club that were backed by the League of Conservation Voters, natural gas company Chesapeake Energy, and a number of deep-pocketed elites. MEMJ itself was funded largely by the Green Tech Action Fund of San Francisco; the Natural Resources Defense Fund of New York, whose president is multi-millionaire Frances Beinecke; and San Francisco hedge fund billionaire Tom Steyer.\nThese carpetbagger activists placed a bull’s-eye on Michigan ratepayers with Proposal 3. Sierra Club was blunt: “If successful, the [Michigan] 25×25 initiative will send an important signal to the nation that public desire to move toward green energy remains strong.”\nThe grassroots activists who defeated this proposal had no billionaire largesse to draw upon. They were united under the Interstate Informed Citizen’s Coalition, a bipartisan renewable energy consumers watchdog group dependent on small contributions to support its work and committed to advancing sensible science-based energy policies and free market land use policies.\nCompelled by the principle that industrial renewable energy schemes like Proposal 3 bring far more benefit to their invisible corporate cronies than to the environment, IICC members traveled the state on their own dime to speak out, protest, educate and inform. Their reward was sweet: they took their message of science-based energy policy to the people, who responded at the ballot box, soundly defeating Proposal 3 by 64-36 percent.\nUsing Sierra’s own test, Michigan ratepayers have shouted there is no such “public desire.”\nIn fact, there is widespread opposition to mandating forest-denuding biomass and massively expensive solar. But the hottest conflict focused on industrial wind. Michigan wind projects have lost at the ballot box virtually every time they have been put to the vote in a fair manner – and by similar margins.\nAt the township level, opposition to wind cronyism is just as strong. In Lenawee County, Riga Township rejected wind-friendly zoning by 64-36 percent. Two more Lenawee Townships followed suit. In Huron County, Lake Township removed a wind friendly ordinance by a similar 61-39 percent. And in Clinton County townships are intent on adopting police power regulations for wind energy installations, in defiance of too-permissive county level zoning.\nThis opposition is strongly bipartisan. Proposal 3 and its miles of wind turbines were opposed by both the free market Americans for Prosperity and Michael Moore movie producer Jeff Gibbs.\nThe ballot box evidence is clear. Michigan ratepayers from left to right are emphatic that there is no “desire” for mandated and subsidized industrial wind projects, in their backyard or anywhere in the State.\nThe push for Prop 3 also broke the big utilities’ code of silence on wind inefficacy. MEMJ unwittingly exposed CMS Energy’s duplicity on this issue — observing that CMS praised its new Ludington area wind plant for furnishing “reliable and affordable energy,” even as its public relations surrogate Care for Michigan was calling wind “expensive and unreliable.” Unfortunately for MEMJ, the Care for Michigan version was the truth.\nOpponents of renewable energy have long pointed out that wind energy is parasitic — totally dependent on fossil fuels for backup power, with every megawatt of wind power supported by a megawatt of redundant coal or natural gas generating plants. So wind cannot possibly or meaningfully reduce emissions.\nBut the utilities stood silent. Their beloved existing 10 percent renewable mandate, PA295, restored their monopoly status and guaranteed them nice profits, in exchange for a small number of renewable projects. They were not interested in biting the legislative hand that was (and is) feeding them.\nBut Prop 3 brought all stick and no carrot for the utilities. They could no longer remain silent. Out came the truth. Wind cannot replace fossil fuel plants. Wind is not getting inexorably cheaper, but is far more expensive than current generation and, minus the huge hidden subsidies, more expensive than new coal. Wind cannot increase employment without costing employment in other industries that get stuck with soaring electricity bills. Wind energy cannot liberate us from foreign oil or from out-of-state coal imports.\nWhat then did our autopsy discover? Michigan renewable energy mandates — including PA295 — are doomed. Because of gluttonous overreach, they will die by their own hand. Politicians need not fear public reprisal for opposing and repealing renewable energy mandates. It is now safe for lawmakers to acknowledge and act on the fact that renewables mandates like PA 295 are of no benefit to ratepayers, employers or employees, and are of dubious benefit to the environment.\nThrough the failure of Proposal 3, Michigan wind has been dissected and eviscerated by public opinion. The sooner our elected officials zip the death bag shut and send the corpse out for burial, the sooner Michigan can protect its rural areas from needless industrialization and our energy intensive industries from rising electricity costs that compromise their competitive edge.\nOther states, and our federal government, should take note.\nKevon Martis is Senior Policy Analyst for the Interstate Informed Citizen’s Coalition (www.iiccusa.org) in Blissfield, Michigan."} +{"text": "Alan Cassels visited a number of Vancouver doctors’ offices for a research project this summer, and the drug-policy expert could not help but notice that staff rarely paid for their own lunch.\nThe take-out meals supplied by friendly pharmaceutical sales reps filled the gap nicely instead.\n“There was always some company bringing them Thai curry, pizzas … a never-ending parade of delicious-smelling food,” said the University of Victoria researcher.\nSuch freebies are among an array of methods that drug firms employ with doctors who prescribe their products.\nA major pharmaceutical company, however, revealed Tuesday it is taking a seemingly unprecedented step back from the kind of marketing to physicians that is common throughout the sector, and has raised critics’ concerns for years.\nGlaxoSmithKline (GSK) announced it will stop the practice of paying certain fees to individual physicians and will no longer tie bonuses for its drug reps to the prescribing habits of specific doctors.\nSome analysts offered wary kudos on Tuesday to GSK, a company that recently has faced heavy penalties for questionable marketing, and yet led the way in starting to make the industry more transparent.\n“It’s a good first step,” said Dr. Joel Lexchin, an emergency physician and health-policy professor at Toronto’s York University. “The literature shows that when doctors get information from drug companies, it either has no effect on their prescribing, or makes their prescribing worse. There is no evidence it makes them better.”\nU.K.-based Glaxo announced that it would end payments to individual doctors — usually specialists known as “key opinion leaders” — for giving talks on products or a disease area. Subsidies to attend conferences are being phased out, too.\nThe company will also stop linking sales reps’ pay to the number of prescriptions handed out by individual doctors, emphasizing instead the reps’ technical knowledge and quality of service, as well as GSK’s overall performance.\nThe changes are designed to ensure “patients’ interests … always come first,” Andrew Witty, Glaxo’s CEO, said in a statement.\nGlaxo has 2,200 employees across Canada; the changes should be in effect here by the start of 2016, said a company spokeswoman, who asked not to be named.\nShe said GSK pays Canadian doctors to talk to other physicians about its products, and to help them participate in scientific meetings, activities that will end, but the spokeswoman could not say how many receive payments or at what cost.\nGlaxo’s move comes in the wake of some serious trouble for the company. It was fined US$3-billion by the U.S. government last year for illegally marketing its anti-depressants for unapproved uses, and withholding safety data on diabetes drug Avandia.\nAnd in China it is under investigation for allegedly bribing doctors and officials.\nYet it garnered positive reviews for being the first drug company to join alltrials.net, a project aiming to divulge full reports of drug trials, including negative results.\n‘It’s the food, flattering and friendship that promotes the drug’\nThe changes announced this week seem positive, but the “devil’s in the details,” said Mr. Cassels.\nHe and Dr. Lexchin also noted there are still many ways even GSK could influence the profession, such as by sponsoring associations, conferences and educational sessions, and through the personal relationships reps have with physicians.\n“It’s the food, flattering and friendship that promotes the drug,” said Mr. Cassels.\nA 2010 review of previous studies co-authored by Dr. Lexchin concluded that doctors exposed to industry messaging tend to prescribe more drugs, raise health-care costs and make lower-quality choices.\nDr. Louis Hugo Francescutti, president of the Canadian Medical Association, said the GSK initiative was welcome, but noted his group has had a code of ethics dealing with industry interactions in place for years.\nIt is especially important that doctors not engage in “peer selling” — giving company-sponsored talks to their colleagues that promote products, he said.\n“We don’t want practising physicians to be sales persons for either the pharmaceutical industry or medical device manufacturers,” said the Edmonton emergency physician. “It just doesn’t make sense.”\nDr. Lexchin said Health Canada should at least adopt the same kind of “sunshine” law being implemented soon in the U.S., requiring all drug-industry payments to doctors to be released publicly.\nDr. Francescutti said he did not think that was necessary, stressing that the large majority of physicians are responsible."} +{"text": "“History, Rebellion and Reconciliation” Symposium Examines Race, Justice and Community Activism\nPanels, Films and Discussions Will Be Held April 25, 9:45 a.m. to 8:30 p.m.\nA police shooting of an unarmed black man in Ferguson, Mo., this summer, along with other shootings by police officers around the country, led to weeks of protests in communities around the country. The Smithsonian’s National Museum of African American History and Culture (NMAAHC) will join the national conversation by hosting a daylong symposium titled, “History, Rebellion and Reconciliation: Communities Mobilized for Social Change.”\nThe program will be held in the Rasmuson Theater in the Smithsonian’s National Museum of the American Indian (Independence Avenue at Fourth Street S.W.) from 9:45 a.m. to 8:30 p.m. Admission is free and open to the public; however, seating is on a first-come, first-served basis and reservations are recommended at (202) 633-0070 or nmaahc.si.edu.\n“We need to explore what this moment in our nation’s history means, especially in terms of leadership,” said Lonnie Bunch III, the director of NMAAHC. “What impact does generational change have on leadership and faith communities? What are the lessons to be learned from Ferguson, particularly within the context of community mobilization?”\nBunch will open the symposium and welcome guests at 9:45 a.m., followed by a discussion with Rev. Willis H. Johnson, pastor of Ferguson’s Wellspring Church. Willis will describe the conditions that led to the distrust between law enforcement and the city’s African American community.\nThe symposium will consist of three panels, one each in the morning, afternoon and evening. The first panel, “Ferguson: Impact, Importance & Long-Range Hopes,” from 10 a.m. to 12:30 p.m., will explore the evolution of the media, community leadership and activism as they relate to communities organized against excessive police force and economic inequality. This panel will be moderated by Juan Williams, journalist and Fox News political analyst. Panelists include:\n- Lisa Crooms, Howard University law professor\n- Rev. F. Willis Johnson Jr., Wellspring Church\n- Mychal Denzel Smith, contributing writer, The Nation\nThe second panel, “Ferguson & Faith in the 21st Century,” from 2 to 4:30 p.m., addresses the past, present and future roles of faith organizations as advocates for social change. It also examines changing roles of faith leaders and the range of their focus. Moderated by Rex Ellis, NMAAHC associate director of curatorial affairs, the panel includes:\n- Jeff Johnson, journalist and motivational speaker\n- Renee Harrison, Howard University School of Divinity professor and former Los Angeles police officer\n- Rev. Osagyefo Uhuru Sekou, pastor, theologian, author and community organizer\nThe final panel, “#Words Matter: Making Revolution Irresistible,” from 6 to 8:30 p.m., features the response of the creative community to excessive police violence, racism and communal demands for equality. The panel, moderated by Morgan State University professor Jared Ball, includes:\n- Mark Bolden, psychologist and co-moderator\n- Jasiri X, rapper and community activist\n- Jamilah Lemieux, senior digital editor, Ebony magazine\n- Jef Tate: DJ, Words, Beats and Life\nIn addition to the panels, the symposium will also present “Citizen” works by award-winning poet Claudia Rankine, interpreted on film by director John Lucas from 12:30 to 1:30 p.m. The film shorts, titled Situation #1through 5, are based on Rankine’s book Citizen: An American Lyric, which is a National Book Award Finalist for 2014.\nFrom 1:30 to 2:30 p.m., the symposium will present “On Art and History: A Conversation with Ava DuVernay.” With Selma, DuVernay is the first black female director to have a film nominated for an Academy Award. She will discuss filmmaking and the creative responses to historic events such as the Selma to Montgomery march.\nFrom 5 to 6 p.m., guests at the symposium can view a slide presentation of social justice related objects from the museum’s collection and select artists, accompanied by a mix from DJ Jef Tate of “Words, Beats and Life.”\nIn an effort to engage audiences beyond the walls of the Smithsonian, the daylong symposium will be available by livestream through a link on the museum’s website. The museum will also participate in dialogue on social media throughout the symposium. The public may follow the museum on Twitter @NMAAHC to participate in the discussion using #HRRlive or #WordsMatter.\nFor more information, visit nmaahc.si.edu or call (202) 633-1000.\nThe National Museum of African American History and Culture was established by an act of Congress in 2003 making it the 19th museum of the Smithsonian Institution. Scheduled for completion in 2016, it is being built on the National Mall in Washington, D.C., on a five-acre tract adjacent to the Washington Monument.\n# # #"} +{"text": "Thunder fans spilled into the concourses, the stairs and the escalators, and yet, no one seemed to be in any hurry to leave the Ford Center.\nThey wanted to celebrate.\n\"Beat L.A.!\" the chant went up.\nFaster than Russell Westbrook driving to the basket, the entire stairwell echoed with sound.\nFans from the cheap seats mixed with fans from the suite seats.\nThe cross-section of people who joined that chant last Saturday night was as diverse as Oklahoma City itself. There were black and white, Hispanic and Asian, white-collar and middle-class, and they were all united, one Thunder Nation.\nOn the eve of Game 6 in a playoff series against the Lakers that has been all about home-court advantage, there is no doubt that this Thunder squad has done many fantastic things for the city and the state. Think of the increased national exposure and the significant economic impact.\nStill, nothing the Thunder has done is more important than the way it is bringing folks together. It has made everyone feel like they're part of something grand. It has created a sense of community that is changing this city and this state.\nDon't misunderstand. Folks here have always been a friendly bunch, a helpful lot. Yet, the Bedlam rivalry has long created tension. It's crimson vs. orange, Cowboy vs. Sooner, us vs. them.\nThat will never go away entirely, but it has been muted.\nThe Thunder has made folks feel united in a way that this state has never experienced. You could sense it in the late-game sing-a-long that broke out Saturday night at the Ford Center when they played \"Sweet Caroline.\" You could hear it in the roar that went up when this team came out for warm-ups before the first two home playoff games. You could see it on the streets outside the arena after the home games.\nBricktown became a rolling block party Saturday night. Folks hung out of cars high-fiving pedestrians. Fans cheered. Horns blared.\nA railing that runs along Reno Avenue between Rooster's and Starbucks became a prime location. Fans stood on that railing and were able high-five pedestrians on the sidewalk and motorists on the street.\nOne out-of-town visitor said Thunder fans were Red Sox like.\nTalk about walking in some tall cotton. Still, the evidence of the Thunder's growing fandom is everywhere.\nHop in your car in Oklahoma City, and it won't be long before you see someone flying one of those Thunder car flags. The thing is, you're just as likely to spot one on a suped-up car rolling down NW 23rd Street as you are on a soccer-mom van streaking up Broadway Extension toward Edmond.\nThere's even virtual evidence of Thunder mania. On Twitter, more than a thousand folks have added a Thunder twibbon to their profile photo. That means a small Thunder logo now appears in the lower righthand corner of their picture.\nThe number of Thunder twibbons is double that of Cavaliers ones. Ditto for Spurs or Celtics.\nMaybe it's the way the Thunder has responded this season after winning only 23 games a season ago. Perhaps it's the personality of the players or the youth of the franchise or the style of the game. Whatever the reason, this team is drawing people together.\nHeck, Thunder fans are even being united by their sleep deprivation. The past four games in this playoff series have started no earlier than 8:30 p.m. Oklahoma time. That means games going until around midnight, and that means scores of bleary-eyed Oklahomans.\nJeremy Johnson is the student minister at First Baptist Church in Weatherford. After watching Saturday night's game on television — \"I hooked the flat screen up outside ... and we sat around the fire pit, grilled burgers and watched the game\" — he had to be at the church at 8 a.m.\nHis early-morning boost?\n\"Had two cups of coffee and a ham and cheese biscuit and prayed,\" he said. \"Yes, Sunday morning was tough. But it was well worth it to watch the Thunder win.\"\nLanie James felt the same way. The Oklahoma City thirtysomething went to Saturday night's game, got home after midnight, then got up before 5 a.m. Sunday morning to run the half marathon in the Oklahoma City Memorial Marathon.\nWhat's more, she beat her half-marathon time of a year ago by 13 minutes.\n\"I don't know how I did it,\" she said. \"I credit the energy of Oklahoma City that weekend. It was absolutely one of the most incredible weekends to be a part of.\"\nLike Johnson and James, Maija and Rob Vogel are battling sleep deprivation, too, but they are doing so on separate continents.\nMaija and Rob met in Oklahoma City eight years ago when he was visiting a family he'd lived with as a foreign exchange student. They married four years ago, made their home in the city and even bought season tickets for the Thunder. The arrangement had just one hang-up — Rob had started a business in his native Holland before he ever met Maija.\nHe still travels to Holland regularly to manage the business but refuses to miss a Thunder game.\n\"So, every night the Thunder plays, I put a chair in front of the TV with my Mac on it and wait for my Skype to ring,\" Maija said.\nHer laptop sends a streaming picture of the TV broadcast via the Internet to his laptop.\n\"I'm sure if my neighbors looked in my windows,\" Maija said, \"they would think I am a mental patient high-fiving the computer.\"\nThat makes late nights for her but even later ones for him. Those games that start at 8:30 p.m. in Oklahoma start at 3:30 a.m. in Holland.\nBut they are sacrificing for the Thunder just like thousands of other Oklahomans are. No one seems to mind it. No one seems to see it as a sacrifice really.\nFolks want to be part of Thunder mania. This team has created a sense of community that is powerful. Unique. Special.\nIt's one more thing to celebrate."} +{"text": "To contribute to this site, see above menu item \"About\".\nThese transcriptions may contain human errors.\nAs always, confirm these, as you would any other source material.\nManning, James F. - Passed away peacefully at the Health Sciences Centre on Saturday, Nov. 9, 1996, Jim Manning, aged 77 years. WWII Veteran of the Royal Navy (PJX20087). Predeceased by his son Robert in 1954 and his son Paul in 1972. Leaving to mourn his sad loss, his loving and devoted wife Mary (O'Brien); five sons: Con (Carol), Jim (Bernadette), Wayne (fiancee Michelle), Brian (fiancee Donna), at Torbay, Gerard (Phyllis) at Calgary, Alta; brothers: Joseph\n(Catherine), Cyril (Dot); sisters-in-law Evelyn, in Boston; brothers-in-law: Gordon O'Brien and Joseph O'Brien, of Torbay, Robert Dodds of Chico, California, Francis Cole of Kentucky; eight grandchildren and three great-grandchildren; numerous nieces, nephews, and other relatives and friends. Special cousins: Anne Roche in Boston and Mary Nolan at Torbay. Resting at Caul's Funeral Home, Torbay. Visitation beginning at\n4 p.m. Saturday, Nov. 10. Funeral service on Tuesday, Nov. 12, 1996 at 10 a.m. from Holy Trinity Church, Torbay. Flowers gratefully accepted or donations may be made to the Canadian Diabetes Association or the Royal Canadian Legion.\nMartin, Mary - Passed peacefully away at the Grace General Hospital on Wednesday, March 23, 1994, Mary Martin, in her 73rd year. Predeceased by her husband Patrick, 1981. Left to mourn their sad loss, her daughters: Mary Kenny, Bridget Haynes (Wyn), Helen Noseworthy (Norman),\nMargaret Foley; sons: Ales (Angela) and Gerard (Mary); thirteen grandchildren; sister Margaret Stringer and family at Little Heart's Ease; one special aunt: Agnes Cantwell at Torbay; also many other close friends and relatives. Resting at Caul's Funeral Home, LeMarchant Road. Funeral Mass from St. Pius X Church, Friday, March 25, 1994, at 9:45 a.m. Interment at Holy Sepulchre Cemetery.\nRoche, Craig William - Passed tragically away in Burnaby, B.C., Craig William Roche, beloved son of William and Peggy Roche of Torbay. Predeceased by his loving grandmother Gertie O'Rourke. Leaving to mourn, besides his parents: one brother Corey; grandparents Nicholas and Jean Roche; great-aunt Sister Marie Roche; special friends in Logy Bay: Agnes Dyer, Dan O'Brien and son Darrell; four aunts; five uncles and a large circle of relatives and friends. Resting at Caul's Funeral Home, Torbay. Funeral on Saturday, April 3 at 10 a.m. from Holy Trinity Church, Torbay. Interment at R.C. Cemetery, Torbay. Flowers gratefully accepted or donations may be made to one's favorite charity. Always remembered. Always loved.\nRodgers, Kevin - Passed suddenly away on Saturday, August 16, 1997, Kevin Rodgers, son of the late James and Genevive Rodgers, 32 Signal Hill Road, also predeceased by his brother James and sister Annie. Leaving to mourn brothers: Albert and Charles (Annie) of St. John's, sisters: Mary of St. John's, Margaret of Chesapeake, Virginia; Genevive of St. John's; and Bride of P.E.I.. Also a large circle of other relatives and friends. Resting at Caul's Funeral Home, LeMarchant Road on Sunday at 7 p.m. Funeral mass on Tuesday to St. Joseph's Church at a time to be announced.\nStamp, Richard - Passed away at St. Clare's, February 4th, Richard Stamp, age 81 years. Leaving to mourn wife Sarah; seven daughters: Frances (David) Scott, Delores (Vincent) Hawco, Philomena (William)\nPower, Brenda (Pat) Squires, Justina (John) Woodfine, Jackie (Robert) Whitten and Bobby (Ron) Follett; seven sons: Cyril (Mary), Andrew (Ann), Douglas (Phylis), Richard (Marilyn), Martin (Diane), William (Cathy), Tony [and friend Laura];\nthirty-four grandchildren and ten great-grandchildren and three sisters: Mary Miller, Sarah Hogan and Margaret Stamp and two brothers: Edgar and Thomas. Resting at Caul's Funeral Home, Torbay. Funeral notice later.\nStringer, Hubert - Passed peacefully at the Dr. G. B. Cross Memorial Hospital, Clarenville on April 17, 1996, Hubert Stringer of Little Heart's Ease, aged 82 years. Leaving to mourn his loving wife Margaret; four sons: Thomas (Audrey), Howard (Christine), Doug (Bev) and Barry (Sherry); two daughters: Mary (Bram) and Janette; five grandchildren: Trevor, Jerry, Jody, Robbie and Rose; one brother Walter (Dorthy); one sister Jessie (Allan); special niece Dorthy Drodge; and a large circle of relatives and friends. Resting at Bethal United Church, Little Heart's Ease. Funeral Service to take place at Bethal United Church, Little Heart's Ease on Saturday, April 20, 1996 at 2:00 p.m. interment at Little Heart's Ease United Cemetery. Flowers gratefully accepted or donations can be made to the Canadian Diabetes Association.\nWade, Frances - Passed peacefully away at St. Clare's Mercy Hospital February 3rd, Frances Wade in her 86th year. Leaving to mourn one son Leo and wife Sarah at Flatrock; one sister Mrs. Agnes Wade, Flatrock; four grandchildren and 10 great-grandchildren. Funeral Tuesday from Caul's Funeral Home to St. Michael's Church, Flatrock for mass at 11 a.m. Interment in Flatrock.\nPage contributed by Shelley O'Brien\nPage Revised by Ivy F. Benoit (October 13, 2003)\nNewfoundland's Grand Banks is a non-profit endeavor.\nNo part of this project may be reproduced in any form\nfor any purpose other than personal use.\n© Newfoundland's Grand Banks (1999-2016)\nYou can search the entire NGB site\nby using the [Google] search below."} +{"text": "Gathering Of Presidential Lineage Celebrates U.S. History\nSCOTT SIMON, HOST:\nDescendents of famous American political figures, both Democrats and Republicans, white and black, coming together in a small Ozarks town this weekend. The Missouri Cherry Blossom Festival in Marshfield is hosting the descendents of more than 30 past presidents, including relatives of the country's founding fathers and one of the country's most famous slaves.\nFrom member station KSMU, Jennifer Davidson reports.\nJENNIFER DAVIDSON, BYLINE: As a thunderstorm brews outside Blackberry Creek Bed and Breakfast, the direct descendents of Thomas Jefferson and Harry Truman are sitting down to a hearty innkeeper's breakfast with George Washington's great-nephew.\nCHRIS TRUSCOTT: Thomas Jefferson is my great, great, great and several more greats grandfather.\nDAVIDSON: That's Chris Truscott. He shares Jefferson's love of the written word. He's a corporate speechwriter. At the breakfast table is Tom Washington, who comes here very year from Texas. The first time Tom Washington was invited by the festival's organizer he was a bit skeptical.\nTOM WASHINGTON: I said he wants to what? I'm supposed to go to this small town in the Ozarks for a Cherry Blossom Festival. Is this for real?\nDAVIDSON: Despite his famous relatives warning against party politics, Washington works for the Republican Party in Texas. He jokes that the Adams are still as liberal as ever. Relatives of Presidents Madison, Monroe, Nixon, Cleveland and both Roosevelts have all been here. Over at the Marshville High School, Nicholas Inman is greeting guests.\nHe's a young minister who, after living in D.C., felt torn between the nation's capital and his hometown. He's organized the planting of 100s of cherry trees in Marshfield to remind him of the pink blooms that Washington is famous for.\nNICHOLAS INMAN: I love history and I felt like people need to learn history from primary sources and so we needed a festival to go around those trees.\nDAVIDSON: The festival has united some unlikely pairs. Bertram Hayes Davis is the great-great-grandson of Jefferson Davis and is now friends with Lynn Jackson. She's a descendent of Dred Scott, a slave who famously sued for his freedom. As Davis says, his ancestor had a distinguished career before the Civil War.\nBERTRAM HAYES DAVIS: Hero of the war of 1847, secretary of war and senator, and so people don't understand that Jefferson Davis was an American patriot for the first 52 years of his life before he was appointed, not elected, to the presidency of the Confederacy.\nDAVIDSON: Lynn Jackson oversees the Dred Scott Heritage Foundation in St. Louis.\nLYNN SCOTT: In coming together and sharing, you know, how do you feel being the descendent of a slave? How do you feel being the descendent of a Confederate president? And we find some common ground here.\nDAVIDSON: Back at the bed and breakfast, over a steaming cup of coffee, Thomas Jefferson's descendent, Chris Truscott, reflects on how the festival has changed his life. When attending the festival two years ago, he fell in love with the editor of the Marshfield newspaper. He relocated, the two married, and they're expecting a baby this summer.\nHe says people tell him his facial features strongly resemble Jefferson's straight pointed nose and square jaw.\nTRUSCOTT: I don't know if it's true, but people say it. I think there's a - I think to an extent people want to believe it.\nDAVIDSON: His father is buried at Monticello, where he's also eligible for a plot one day. But Truscott says he'll be buried wherever home is when he dies, and that very well could be among the cherry trees that grace this little sliver of the Louisiana Purchase. For NPR News, I'm Jennifer Davidson.\n(SOUNDBITE OF MUSIC)\nSIMON: And later this hour, coming up in time for Broadway's annual honors, the Tony Awards will look ahead at the season's theater hits and misses with Barbara Chai of the Wall Street Journal. And as always, we invite you to join us on Twitter. We're at NPR WEEKEND, and I'm at NPRScottSimon, all one word.\n(SOUNDBITE OF MUSIC)\nSIMON: You're listening to WEEKEND EDITION from NPR News. Transcript provided by NPR, Copyright NPR."} +{"text": "Ryan Unzicker Wins $10,000 Birthday Race/Kenny Wallace Crowned Summit Modified Nationals Champ\nThe annual Birthday Race weekend at Oakshade Raceway attracted racers from at least nine different states and Canada. Fans from all over packed the stands to watch an exciting UMP Summer Nationals finale with Ryan Unzicker and Brian Ruhlman picking up feature race wins and Brian Shirley and Kenny Wallace both earned Summer Nationals titles.\nFifty-six UMP Late Model teams battled to make the 22-car starting line-up for the 60-lap Birthday Race/Summer National finale feature. After a slight delay due to a quick rain shower, the green flag dropped on a caution-free main event. Summer Nationals points leader Brian Shirley started on the pole and maintained the early lead. A hard-charging Brandon Sheppard from New Berlin, Illinois, quickly closed in and took the lead on lap 12. Sheppard had set a torrid pace earlier in his heat race win, running laps almost a half second faster than fast qualifier Jason Feger’s time. Sheppard appeared to be on his way to a $10,000 win after pulling away from the rest of the field running the high line through the turns.\nWithout the help of any caution flags to tighten the field, Ryan Unzicker slowly began to reel in Sheppard as they worked through lapped traffic. It wasn’t until the last 10 laps that Sheppard’s lead quickly evaporated. Unzicker, who likes to run the low line around the corners, got alongside Sheppard and took the lead on lap 56. The two drivers battled side by side a couple laps through some heavy lapped traffic. Unfortunately, Sheppard caught the wall just a bit coming off turn two which allowed Unzicker to pull ahead and take the checkered flag to become the 2012 Oakshade Raceway Birthday Race winner. Sheppard was disappointed to finish second after leading the vast majority of the race. Matt Miller started tenth and climbed to a third place finish followed by Jeep Van Wormer in fourth. Brian Shirley’s fifth place finish was enough to capture the 2012 UMP Summer Nationals Championship as “The Hell Tour” came to a close after nearly a month of continuous racing.\nKenny Wallace decided to run for the Summer Racing Equipment Modified Nationals championship at 7am Saturday morning and had Tony Stewart fly him out to compete with 40 other Modified drivers. Sitting second in points behind an absent Mike Harrison, he just needed a 16th place or better finish to earn that championship. Things looked good early in the 25-lap feature for Wallace who started on the outside of the front row and got the early advantage over Zack Olger. Jake Ruefer charged toward the front and took the lead from Wallace on lap 16. Clarklake, Michigan’s Brian Ruhlman had his car hooked up on the high side and got by Wallace for second. Soon after taking second he then began to challenge Ruefer for the lead. A spin by Collin Thirlby on lap 19 brought out the caution flag forcing Ruhlman to restart behind Ruefer. After the restart, Ruhlman went back to work on the high side and took the lead three laps later. Ruhlman went on to pick up the $1,000 pay day for the win. Ruefer finished second followed by Jacob Poel, Zach Schroder and Zack Olger. Wallace slipped back to finish sixth his first time at Oakshade Raceway, but earned the Summit Racing Equipment Modified Nationals Championship.\nBrandon Myers from Morenci, Michigan, started on the pole of the Hornet feature event and led the entire distance. William Cundick and Drew Smith made him earn the victory as both drivers raced him hard. Myers fended off the challenges and picked up his second feature win of the year. Smith edged out Cundick for second. Maverick Wright finished fourth with Devon Bell ending up fifth.\nAfter taking the week off, the UMP Sportsman, UMP Bomber and UMP Sports Compact divisions will be back in action along with UMP Late Models and Hornets for a full show in addition to the Hot Rod Welding “Make-up Bomber Race” at Oakshade Raceway. Gates open at 4pm with racing at 7pm."} +{"text": "When Jane Moss, the Mostly Mozart Festival’s artistic director, throws her hands up and themes this year’s series as “Six Degrees of Separation,” you know this isn’t about Mozart anymore. Haydn, dead 200 years in 2009, and John Adams, whose opera A Flowering Tree is loosely inspired by The Magic Flute, are Mozart’s special friends this year, but so are Bach, Brahms, Mendelssohn, Ligeti and Stravinsky. Given the generally strong performances, and enthusiastic audiences, that I witnessed over two weeks of concert-going, who cares?\nThere may be no official piano festival contained in this year’s Mostly Mozart Festival, which runs through Aug. 22, but the first run of concerts almost seemed that way, hardly inappropriate since the Salzburg prodigy was not exactly a slouch at the instrument. I went to hear Piotr Anderszewski’s opening, all-Bach concert in the “Little Night Music” series at the Kaplan Penthouse on July 29 with considerable anticipation: His reputation is richly deserved, based upon his solid tone, flawless technique and grand, but not grandiloquent, style. The Partita No. 6 in E Minor was impressively, if somewhat stiffly, dispatched, reaching an unexpected climax in the melancholy Sarabande, which opened up with glorious sweep. The English Suite No. 6 in D Minor may be a more public, playful and somewhat artificial kind of piece, but Anderszewski gave it revelatory force. A cogent and lyrical account of its Sarabande was followed by a Double—a variation—so knowingly performed that it let us glimpse the secret inner life of the dance that had preceded it. The two Gavottes offered similar pleasures; No. 2 was an essay in sheer magic, its clanging rhythms delivered with radiant colors and a crystalline touch.\nTwo concerts with the Mostly Mozart Orchestra at Avery Fisher Hall featured fine performances (heard on Aug. 5 and 8) by the pianists Nicholas Angelich and Stefan Vladar, respectively, but their conductors interested me more. Yannick Nézet-Séguin’s debut at the festival, heralded by a Sunday Times preview, was a momentous occasion. English Canada seems devoid of conductorial talent, but what is it about Quebec? Some six years ago, the absurdly underrated Bernard Labadie was turning in splendid performances at Mostly Mozart and at Glimmerglass, and now his younger colleague has appeared to carry on what seems to be a vibrantly lyrical national style.\nTrained partially as a choral conductor, Nézet-Séguin is unashamed to express his elemental love of music. Having sat through Pierre Boulez’s catatonic rendition of Stravinsky’s Pulcinella last season at Carnegie Hall, I was not relishing a repeat of the score. But Nézet-Séguin’s rendition, with its pungent orchestral colors and crisply percussive rhythmic patterns, proved that this so-called neoclassical throwback came from the same pen that wrote The Rite of Spring. His interpretation of Mendelssohn’s Italian Symphony had a hard, driving swing at times, but none of the highlighted detail (a timpani whack, a thrust from the violas) disrupted the elegance of the total, silken texture.\nAnd while we’re celebrating things French, let’s not forget Louis Langrée, the festival’s music director, who turned in one of the most impressive performances of his tenure on Aug. 8. France is not known as Brahms country, and Langrée’s account of the Fourth Symphony, the highlight of the evening, did not try to bring that vertical brand of German “profundity” to the composer’s valedictory Fourth Symphony; in a fleet but not flighty interpretation, it wore its autumnal colors lightly.\nPhrases made soft landings, but sojourned to interesting places along the way, especially in the third and fourth movements, when something downright demonic began to bubble up to the surface—this was Brahms’ farewell to the liberal, German-Jewish musical culture that had nurtured him, and he knew that Vienna would soon see dark days. The wind section of this not-quite-perfect orchestra sometimes produced a slightly sour corporate sound, but Demarre McGill, the principal flutist, handled his mournful solo in the last movement with uncommon beauty and restraint."} +{"text": "When I visit my Aunt Hannah, it’s easy to choose a wine to bring. She loves Ivanović Prokupac from Serbia, and — a little easier to find — Juan Gil’s Silver Label Monastrell from Jumilla. The latter, a Spanish red, remains relatively unknown in the United States, a fact which baffles me. Well-made Monastrell has such rich fruit and hearty character, it should be a perfect fit for the stereotypical American palate. And just as important, it usually offers a fantastic flavor-to-price ratio. Binny’s, for example, sells the Juan Gil Silver Label for $14.\nI suspect the obscurity of Monastrell (known as Mourvèdre in France) has something to do with the fact that it’s home base in southeastern Spain produced “lackluster” wines until only recently, according to The Sotheby’s Wine Encyclopedia. The World Atlas of Wine agrees, noting that “Wine is still made that is deliberately strong and sweet, but the best can compete with ‘premium’ super-ripe reds from California and Australia.” Fans of Zinfandel and Shiraz, if you’re looking for something new, Monastrell from Jumilla may be just the thing.\nLike Salta in Argentina, Jumilla has an arid climate, a large day/night temperature differential and a relatively high altitude (Juan Gil’s vines grow between 2,300 and 2,800 feet). As a result, the vineyards tend to have low yields and the grapes tend to be thick-skinned, producing concentrated, aromatic and rather tannic reds, often with high alcohol levels. In other words, these wines are big.\nAnd, as The Oxford Companion to Wine explains, Monastrell has “…a somewhat gamey, almost animal flavour when young.” That sounds problematic, but in the right hands, that “animal” quality turns into an appealing savory undertone akin to grilled meat, smoke or even bacon, adding complexity to the wine.\nI had an opportunity to experience the full potential of Monastrell at a recent tasting hosted by Juan Gil in Chicago. The wines ranged in price from $8 a bottle into the triple digits, and there wasn’t a stinker in the bunch. That said, exercise caution with bargain-priced Monastrell. I once had a harrowing experience with $9 Bodegas Volver “Wrongo Dongo” Monastrell, for example, though the resulting puns that flew around the table were some consolation. When in doubt, stick to Monastrell that costs $12 and up.\n2014 Honoro Vera Monastrell: This entry-level Monastrell typically sells for less than $10 a bottle, but it tastes more expensive. It has taut and ripe red fruit, a savory undertone, some forceful white-pepper spice and a tannic finish. It all seemed in balance, and my goodness, what a value for the money.\n2014 Honoro Vera Organic Monastrell: Surprisingly, the organic version of this wine sells for the same price (Binny’s sells both for $8 a bottle). It tastes different from the other Honoro Vera — it smells heartier, with more of a hint of meat and funk. Full of raspberry jam, it starts with a refined mouthfeel and builds to a big, rather rustic finish. Again, it’s a superlative value.\n2014 Orowines “Comoloco” Monastrell: Juan Gil also owns Orowines, which produces another remarkably inexpensive Monastrell (Binny’s sells it for $8 a bottle). This example sees no wood, and though stainless steel highlights pure Monastrell fruit, I prefer a touch of oak. The wine smelled of dark red fruit and black pepper, and its fruit felt pleasingly fresh. The savory note and spice were both there, but I missed something in the midsection. Even so, considering the price, you’re still getting a lot of flavor for the money.\n2013 Juan Gil Silver Label Monastrell: Aged 12 months in French oak, this wine costs more (about $14), but for that money, you’re getting a richer, darker wine, with no absence in the midsection. For years, the Silver Label has been one of my go-to reds.\n2013 Juan Gil 18: If you have between $25 and $30 to spend, spend it on this. The 18 is a blend of 60% old-vine Monastrell, 30% Cabernet Sauvignon and 10% Syrah, all aged 18 months in French and American oak. The dark, rich aroma seduces immediately, and any Parkerized American will love the big, jammy fruit. A shaft of spice shoots right through it, keeping the wine balanced, and I loved the green tobacco note on the finish. This is a gorgeous wine, and a great value even at $30.\n2013 Juan Gil “Aniversario” 100: Created for Juan Gil’s centennial, the “Aniversario” blends 50% Monastrell, 25% Cabernet and 25% Syrah, and it sells for just a bit more than the 18 (if you can find it). It sees 23 months in French and American oak, and it’s big, dark and rich. The fruit feels opulent but tightly controlled, and the focused spice keeps going and going. The wine slowly unfolds, growing and developing to a big finish of spice and fine-grained tannins. This is a delicious, elegant and powerful wine, but if I had the choice between the 100 and the 18, I would pick the 18.\n2013 Bodegas El Nido “Clio”: Juan Gil also owns El Nido winery, a “…partnership between the Gil family and Chris Ringland, one of Australia’s best winemakers,” according to El Nido’s website. The Monastrell vines are “very old… almost centenarians,” and they produce some incredible fruit. This blend of 70% Monastrell and 30% Cabernet Sauvignon sees between 22 and 26 months in oak, and it was my favorite wine of the entire tasting. It had an aroma of rich, dark, almost jammy fruit, in the range of black cherries and plums. On the palate, the fruit felt sumptuously lush and clear, with a laser beam of white pepper spice streaming through it. The tannins on the finish were big but very refined. Binny’s sells the “Clio” for $40, and it’s worth every penny. A wine like this from Napa would easily be twice the price."} +{"text": "Sep 14, 2012\nI have been working on a new book project for several months now. I have always had a strong interest in classical architecture. I especially like the challenge of modeling such traditional forms with today’s modern software. I am also particularly struck by the irony of how such forms actually prove quite challenging to model using computer software.\nI actually began my first explorations of this kind of thing back several years ago using AutoCAD Architecture. I have a very detailed Ionic column capital that built using ACA objects. I was able to get a pretty decent results but it suffered from being a very “heavy” model with lots of tessellation. But it was not just an AutoCAD block. I built it as an ACA Style and it had some parametric qualities. I was even able to get a 3D print of it (thanks to Zach Kron of Buildz fame).\nI left the project on the back burner for a while and picked up again about a year or two ago only this time in Revit. My goal was to create not just one column, but all of the major orders and make them fully parametric Families. Since everything in classical architecture relies heavily on proportion, it seemed like a really nice challenge for the Family Editor.\nOne limitation that I ran into early on is Revit’s inability to scale native geometry. It is rather ironic actually, because if import AutoCAD geometry into Revit, there is a scale property in the Type Properties dialog. But no such think for native solids. Therefore, I was forced to instead scale each piece of the sketches individually. This means that scale a simple box, you need three parameters: length width and height. To scale them proportionally, you need to apply formulas to at least two of those dimensions. This is not too big of a deal unless you are dealing with very complex and curvaceous forms. Like say the volutes on an ionic column, the flutes on a column shaft or the acanthus leaves on a Corinthian capital.\nI tried to stick with the traditional Family Editor because even though you can change the category of an Adaptive Component, I still don’t like that you cannot copy and paste between them and traditional families and that you cannot nest an adaptive into a traditional family. But despite this, I found that an adaptive was really the best choice for the Corinthian. With access to splines and points, you gain more modeling freedom and things like the leaves were MUCH easier to build this way. Zach Kron was also a big help here in giving me a very useful tip to scale my leaves proportionally without having to create a million parameters. So thanks a bunch for that tip Zach! Basically all you have to do is host your points on your Reference Lines and then scale the Reference Lines with a simple Length, Width and height parameter. Works really well. Couple that with 2013’s new Divide and Repeat feature and we can avoid lots of cumbersome arrays. I like that a lot too.\nThe project has indeed grown beyond my original scope and become significantly more involved. As a consequence, as I work through building fully parametric models of Tuscan, Doric, Ionic and Corinthian columns and colonnades, I decided that I would like to share a little bit of work in progress to gauge the general interest in this project. My aim is to see what sort of general interest there is in a book and/or videos on the subject. While the focus is certainly on modeling at this stage, I would like to see it expand to encompass more aspects of advanced Family Editor techniques.\nThroughout this post have been some images of what I have so far. Everything flexes and can scale to different sizes. Naturally none of it is complete yet, but I am making progress.\nNow I should also mention that most of the work so far has been on the high (Fine) detail versions. I fully intend to create a course and probably a medium detail version of each family as well. Here is a simple version for the Corinthian.\nIf you have any comments at all on the project, I am most interested to hear them. I am curious in the level of interest in an eventual book, but also interested in any other comments or suggestions that folks might have. So please feel free to share your thoughts. Thanks!\nSwept blend approach. Form is OK, but not very smooth."} +{"text": "Post No. 800: Phils lose close one thanks in part to a bad call by the first base ump, as they drop one to the Astros, 3-2.\nThanks in part to a bad call by the first base umpire, the Phils drop a close one to the Astros as former Phil Brett Myers come back to stifle his ex-teammates, 3-2.\nThe Astros took the lead in the first as, with runners on the corners, and with nobody out, Hunter Pence hits a sacrifice fly, scoring Michael Bourn, who had earlier singled, stole second base and then moved up to third on Angel Sanchez’s single, giving the Astros a 1-0 lead, while sending Sanchez, who had just singled, on to second base. The Astros then tried to increase their lead as Sanchez tried to score on Carlos Lee’s double, but was instead gun down at home plate, 8-4-2, for the inning’s second out. The Phils tied it up at one-all in the third as Carlos Ruiz hits a lead-off home run, his sixth home run of the year. The Phils then took the lead later in the inning as, with two men on, and with one man out, Chase Utley hits an RBI single, knocking in Jimmy Rollins, who had earlier singled, before moving up to second on Lee’s fielding error, moved up to third on a fielder’s choice grounder hit by Shane Victorino, as Joe Blanton, who had earlier singled, and had gone to third on Rollins’ single, is thrown out at home, 3-2, giving the Phils’ a 2-1 lead, while Victorino, who was safe at first on the fielder’s choice, moved up to second base. The Phils tried to add to their lead in the sixth as, with a runner on second, Jayson Werth, via a double, and with two men out, after Raul Ibanez had just struck out, swinging, the Astros proceeded to intentionally walk Ruiz, to get to Wilson Valdez, but, after ball four is thrown, Astros catcher Humberto Quintero threw a strike to second base, picking off Werth, 2-6, who’s mind appeared to have been somewhere else, to end the inning. This base running blunder might have come back to haunt the Phils, as, in the eighth, with two men on, and with two men out, the Astros took the lead as Lee hits a two-run single, scoring pinch hitter Jason Michaels, who had earlier singled, had moved up to second on Bourn’s bunt single, and moved to third on Sanchez’s sacrifice bunt, 5-4, and Bourn, who had gotten on base with a bunt single, when he had in fact went out of the base line to avoid being tagged by Ryan Howard, but was called safe by the first base umpire, which lead to a long argument by Charlie Manuel before he was ejected from the game for arguing the call, and then went to second on Sanchez’s bunt, giving the Astros a 3-2 lead. That would end up being the final score as Brandon Lyon put down the Phils in the ninth for his seventh save of the season.\nJoe Blanton receives a no-decision as he pitches seven strong innings, giving up just one run on six hits, while striking out nine. Ryan Madson records his fourth blown save of the year before taking the lost as he pitches an inning, giving up two runs on three hits, while striking out a batter. His record is now 4-2 with a 3.58 ERA. Brad Lidge pitches a scoreless inning, giving up a hit, while he strikes out one. Brett Myers gets the win as he pitches seven inning, giving up two runs on nine hits and a walk, while striking out nine. His record is now 9-7 with a 3.08 ERA. Tim Byrdak collects his sixth hold of the year as he pitches a scoreless inning, giving up a hit. Brandon Lyon receives his seventh save of the year as he pitches a scoreless inning, giving up a walk.\nThe Phils had ten hits in the game, with Jimmy Rollins and Jayson Werth both leading the team with two hits each, with Rollins’ two hits being singles, while Werth’s hits were a single and a double. Chase Utley, Raul Ibanez, Carlos Ruis, Wilson Valdez, Joe Blanton and pinch hitter Dom Brown had the other six Phils’ hits, all singles, except for Ruiz’s solo home run, with Utley knocking in the other Phil’s run. The offense did not get the much needed key hit last night.\nThe Phils (70-54, 2nd East) will continue their series with the Astros (55-69, 4th Central) with a night game tonight. The game will be played at Citizens Bank Park and will start at 7:05 pm Eastern. The Phils will send to the mound Cole Hamels (7-10, 3.51), who is coming off a lost to the Giants on August 19, as he went only five innings, giving up five runs on seven hits and a walk, while striking out only five, in the Phils’ 5-2 lost. In his last three starts, his record is 0-3, as he pitched twenty innings, giving up seven runs on eighteen hits and three walks, while striking out twenty-four. He will be hoping that the bats will finally give him some runs so that he can finally end his win-less streak. The Astros will counter with Bud Norris (6-7, 5.23), who is coming off a win over the Mets on August 19, as he pitched seven innings, giving up two runs on two hits and two walks, while striking out four, in the Astros’ 3-2 win. In his last three starts, his record is 2-0 with a no-decision, as he pitched twenty and two-thirds innings, giving up eight runs on fourteen hits and five walks, while striking out twenty-one. He will be going for his third win in a row. The Phils’ offense will be out to score runs for Hamels tonight."} +{"text": "Particularly for those of us who enjoy street photography or simply always want to have a camera at hand, one of the more frustrating versions of “the quest for the perfect bag” is to find an everyday bag. I’m talking about the kind of bag that can carry a small camera kit along with a laptop, cellphone, and whatever other widgets you need with you. Something that isn’t overly showy or bulky, but isn’t completely unprotected either. The Messenger Mini Photo-Laptop Bag is one of Tenba’s solutions to this oh-so-common problem.\nHere’s what Tenba has to say about the Mini Photo-Laptop Bag:\n“The Tenba Messenger is an urban-inspired laptop bag that’s designed to hold everything you need for a day; on vacation or at work; at school or at the gym. Adjustable dividers let you configure the interiorfor a wide variety of photographic or video equipment, and removing the dividers converts the Messenger Mini into a perfect, general-purpose carrying bag.”\nThe Messenger Mini is more or less shaped like a small to medium sized messenger bag. However, unlike most messenger bags, it is padded all the way around and doesn’t form to your body. The bag is divided into two internal spaces, a laptop slot and the main camera section. The camera area is further divided in thirds. The center space is intended to be used as the place where your camera would sit facing down with lens attached. The remain spaces are sized to easily fit f/2.8 pro size lenses as is, or they can be further split with padded dividers. The shoulder pad is more padded than you would typically see on a messenger bag. But other than that, the Messenger Mini has the usual assortment of pen/phone/gum pockets that any good bag of this style has these days. It comes it a rather large assortment of colors for a camera bag. You’ve got seven choices, from the basic black or gray to brighter choices such as burnt orange and plum.\nHands on test:\nThe Tenba Messenger Mini is is bigger and somewhat bulkier than what I had been using most often as my “everyday” bag, a Domke 803. So my first impression was “This sure seems big for an everyday bag. Look how fat it is!” To be fair, the Domke is a quite small, and perhaps more importantly, quite narrow bag and there are few that match it in that regard. But that having been said, the size of the Messenger Mini quickly ceased to be an issue for me. For one thing, the space available in the Tenba is a much useful the DSLR photographer than the space in something like a the 803. The fact that you have the space for f/2.8 zooms or fast primes opens up the “useful!” door for many photographers. I’m sure there are people for whom no bag can hold everything they might want to leave the house with, even for a trip to the coffee shop down the street. But for the rest of us, this bag carries just about the perfect amount of gear for a day out shooting. The possibility of filling the bag with all that weight is probably the reason that the Tenba got such a bulky shoulder pad. While slightly too “grippy” for my taste, the pad is really quite comfortable, even fully loaded.\nThe laptop slot functions just as a laptop slot should. It is designed for tablet devices or small laptops, a 13\" macbook is the size I’m talking about here. Large or even medium sized laptops are simply not going to fit. Tablets fit well, though as they aren’t as thick as even a small laptop, they can bounce around a little. There are plenty of the standard small pockets and slots for pens, notepads, batteries and the like. Without wasting time describing them all, I will say that there hasn’t been any time where I thought “I wish there was a place for my _______”.\nOne really outstanding feature is the fact that you don’t have to open up the main flap to access your camera. There is a zipper on the top of the bag that allows you plenty of room to reach in without looking and grab your camera. It’s not the same as having the full flap off, but it’s a lot quicker and more discreet than undoing the buckles and riiiiipppppping the big velcro patches. That zipper is a small thing, but it is a feature that I have long wished was on many of my bags.\nI can’t lie, the Tenba Messenger Mini photo/laptop bag has rather swiftly earned a place as one of my most frequently used bags. I take it to the bar, family dinners, trips to the zoo, and so on. Yes, it’s not exactly the most svelte bag I have ever used. But it also holds the gear I want it to hold and makes it far easier to access that gear than the smaller bags I used in the past. Finally, let me say again that the zipper access on the top of the bag is a stroke of brilliance as far as I am concerned. I use this bag all of the time and I wouldn’t hesitate to recommend it to others.\nHolds a nice amount of gear, room for pro lenses, clever access zipper, comfortable strap pad."} +{"text": "On Wednesday, he appointed Richard Cordray director of the Consumer Financial Protection Bureau, and named three more people to posts on the National Labor Relations Board. Obama gave these jobs out as \"recess appointments\", which is a provision in the Constitution that allows a President to name new heads of agencies without seeking Congressional approval when the Congress is in recess.\nHere's the problem: Congress is not in recess. He's flat-out violating the Constitution. Legal scholars and major news outlets have already criticized Obama for this brazen disregard for our country's foundational law.\nPresident Obama knew the Senate was in pro-forma session. He supported such an exercise when he was in the Senate himself and wanted to block President George W. Bush's agenda. That was then and this is now. Running for re-election, Obama has elevated himself into King Obama. The Congress be damned.\nThe 60-vote threshold may not seem fair. But in his 2006 book, \"The Audacity of Hope,\" Obama wrote, \"To me, the threat to eliminate the filibuster on judicial nominations was just one more example of the Republicans changing the rules in the middle of the game.\" He was angry with Republicans for thinking about flouting precedent.\nObama, however, didn't seem to mind when Democrats changed the rules during George W. Bush's presidency. On Nov. 16, 2007, Senate Majority Leader Harry Reid announced that the Senate would hold pro forma sessions -- that could involve little more than gavel rattling -- during the Thanksgiving holiday \"to prevent recess appointments.\"\nAccording to the Congressional Research Service, \"the Senate pro forma session practice appears to have achieved its stated intent: President Bush made no recess appointments between the initial pro forma sessions in November 2007 and the end of his presidency.\" Upon Obama's election, recesses resumed, but in 2010, the Senate resurrected pro forma sessions.\nAnd now Reid agrees with Obama aides who say that his pro forma sessions are a gimmick. He's supporting the president's attempt to undermine Senate power.\nDuring the Bush administration a favorite criticism was that Bush used his powers in the executive branch too much. That he was zealous in his actions. Now, however, there seems to be little notice of Barack Obama asserting himself and whining that he can't get anything done because those mean Republicans are blocking his agenda.\nNews flash to Barack Obama: blocking his agenda is the job of the Republican party. Just like Newt Gingrich worked to block the agenda of Bill Clinton and Nancy Pelosi worked to block the agenda of George W. Bush, Speaker Boehner and Minority Leader McConnell are working to stop the agenda of Barack Obama.\nSenator Cornyn weighed in on the power grab by President Obama:\nSenator John Cornyn is unhappy that President Obama has appointed Richard Cordray to lead the Consumer Financial Protection Bureau. It’s a recess appointment, done without senate approval.\nHe also pointed out that when Obama was a senator, Obama called a similar recess appointee “damaged goods.”\nIn addition, Cornyn said Obama is unwilling to work with Congress to adopt common-sense improvements in accountability and transparency that would protect small businesses from regulations and red tape.\nAnd from the Wall Street Journal:\nEager to pick a fight with Congress as part of his re-election campaign, Mr. Obama did the Constitutional equivalent of sticking a thumb in its eye and hitting below the belt. He installed Richard Cordray as the first chief of the Consumer Financial Protection Bureau and named three new members to the National Labor Relations Board. He did so even though the Senate was in pro forma session after the new Congress convened this week.\nBarack Obama knows he cannot run on his own record in office. He has no real bragging rights to much success of any issue. The only path to re-election he finds workable now is to fight Congress as the man who is looking out for the middle class, for the little guy in America. It's ridiculous, sure, but Congress traditionally has low approval ratings from voters and this year is no exception to that. Compared to Congressional approval polling, President Obama is higher rated and he has gone that route.\nThis is pure politics and makes for an even more cynical eye on the Obama administration."} +{"text": "Six feet, eight inches tall, given to doing pull-ups on the office rafters, carrying the upper-body strength of a construction crane, Patrick Swanson nevertheless has health issues. They become particularly onerous during late Summer and early Autumn of every year. He can’t sleep past 4 AM. His appetite slumbers for long periods, then rages out of control. His rhythms disrupted, he loses focus on what’s before him, obsessing instead over the “silvery flashes” darting through his mind.\nA metabolic problem? Restless leg syndrome? Mental issues? No. Patrick has Chronic Annual Re-occuring Steelhead Fever, which he first contracted at age 10 backtrolling a wiggle-wart on the Columbia River in eastern Washington state.\n“I still remember the size, too: seven pounds, thirty inches long,” Patrick says, looking distant, seeing silvery flashes. “When I say it out loud, it sounds like giving birth to a child, doesn’t it?”\nThe only locally-available palliative for CARSF is found in the sterling waters of Idaho’s Clearwater River, about an hour to the south of the Populi office. A four-hour early-morning round trip takes the edge off the shakes and pangs just enough to spend the rest of the day holed up here, where Patrick earns his health insurance as Populi’s System Administrator and chief bug exterminator.\nAs bug-stomper, he forms an integral part of our Customer Support crew. When a customer says, “This ain’t working,” after Populi Support verifies it, Patrick hears about it and laces up his size 16’s. As System Administrator, Patrick’s workday can be fairly catch-all. He sets up new servers, keeps up with how they’re performing, upgrades background software, constructs security bulwarks, runs database queries, and a dozen other things. He does all this by tapping on a keyboard, looking at things on monitors, and through the sheer force of intimidation via his flawless Arnold Schwarzenegger impersonation.\nThe keyboard and monitor stuff he learned while earning his Computer Science degree at the University of Idaho, which developed and honed his considerable security chops. “They have this thing called RADICL—Reconfigurable Attack-Defend Instructional Computing Lab. It’s an air-gapped computer network that’s not connected to the external internet in any way. Basically, it’s an instructional facility for computer security and a free-for-all hacking playground.” If you think that’s esoteric, another part of his education involved “drawing state diagrams for finite non-deterministic automation systems”. In the midst of all this, Patrick remained focused on becoming employable post-college and developed a focus on solving real problems. Like the rest of us here, he worked a few years at EMSI on security and systems administration before cutting loose to help craft Populi into a going concern.\nThus, the computers. The Schwarzenegger impression originated with Patrick’s older brother Lucas, whose predilection for weightlifting molted into a robust appreciation for the acting chops of the former Governor of California. The brothers diligently studied the man’s ouevre, repeating lines of dialogue until they mastered the original Conan the Barbarian’s certain je ne sais quoi. Patrick, in the process, more than came into his own: “Now, when we’re together, it sounds like a troupe of Arnolds are in the room.”\nThe Swanson boys grew up in southeast Washington’s Tri-Cities area near their father’s groundwater remediation work at the Hanford nuclear site. Their sisters—including Patrick’s twin (she looks nothing like him)—ardently pursued music while the boys were outside stalking game through the sagebrush and dry hills. Then came that day at age 10 when he saw the flopping seven-pounder at his feet on the edge of the Columbia River. When the fever overtook him.\nSince then, his search for a cure has been admittedly tepid. Asked how he copes, he simply starts speaking: “The biggest steelhead I caught was around 15 pounds. Not huge but a decent fish. The steelhead on the Clearwater are B-run steelhead which means they’re a bigger strain. They stay in the ocean an additional year before coming up to spawn—as opposed to the smaller A-run.\n“But I’m still searching for that elusive, 20+ pound steelhead,” he concludes. Then his forehead twitches."} +{"text": "PDZ domain-containing protein GIPC3 is a protein that in humans is encoded by the GIPC3 gene. GIPC3 is a member of the GIPC (GAIP-interacting protein C terminus) gene family that also includes GIPC1 and GIPC2. The encoded protein, GIPC3, features a centrally located PDZ domain, which is flanked on each side by a single GIPC-homology domain.\nThe human GIPC3 gene is located on the short arm of chromosome 19 at p13.3. The locus extends over ≈8 kbp and contains the six coding exons that give raise to a open reading frame of 639 nucleotides encoding the GIPC3 protein of 312 amino acids. A single PDZ domain is located at amino acid position 122-189. In the mouse, Gipc3 is located on chromosome 10 at cytogenetic band qC1. The genomic region covers a distance of 5.5 kbp. The six coding exons encode a protein of 297 amino acids. The PDZ domain is located at amino acid position 107-174.\nIn the mouse, a missense mutation in Gipc3 (c.343G>A) leads to a non-synonymous amino acid replacement (p.G115R) in the loop connecting two beta strands of the PDZ domain. Glycine 115 is conserved in all GIPC proteins. Missense (c.785C>T; p. L262R) and nonsense (c.903G>A, p.W301X) mutations in human GIPC3 cause congenital sensorineural hearing impairment in families segregating non-syndromic hearing loss DFNB15 and DFNB95.\nMice of the Black Swiss strain develop early-onset slowly progressing sensorineural hearing loss. A genetic study identified two quantitative trait loci (QTL) that control hearing function. One QTL, named age-related hearing loss 5 (ahl5) localizes to chromosome 10 and accounted for ca. 60% of the variation in hearing thresholds. A second QTL, ahl6, localized to chromosome 18 and has a smaller effect size. Besides their hearing impairment, Black Swiss mice also are hypersensitive to acoustic stimulation, reacting with seizures (audiogenic seizures) to loud white noise. A genetic locus conferring susceptibility was identified (juvenile audiogenic monogenic seizures1, jams1) on chromosome 10. A positional cloning approach aimed to decipher the genetic basis of both the hearing loss and audiogenic seizure susceptibility subsequently identified the glycine to arginine substitution in Gipc3 as the underlying cause.\nIn humans, individuals with the p.W301X missense mutation (DFNB95) exhibit bilateral sensorineural hearing loss with threshold shifts of 70-80 dB hearing levels as early as 11 months of age.\n- Frizzled-3 (FZD3) class of WNT receptor,\n- insulin-like growth factor-I receptor (IGF1R),\n- receptor tyrosine kinase TrkA,\n- TGF-beta type III receptor (TGF-beta RIII),\n- integrin alpha6A (ITGA6),\n- transmembrane glycoprotein TPBG, and\n- GIPC PDZ domain containing family, member 1, GIPC1\n- GIPC PDZ domain containing family, member 2, GIPC2\n- ↑ Entrez Gene: GIPC PDZ domain containing family.\n- ↑ Saitoh T, Mine T, Katoh M (March 2002). Molecular cloning and characterization of human GIPC3, a novel gene homologous to human GIPC1 and GIPC2. Int. J. Oncol. 20 (3): 577–82.\n- ↑ 3.0 3.1 Katoh M (June 2002). GIPC gene family (Review). Int. J. Mol. Med. 9 (6): 585–9.\n- ↑ PMID 12011974 (PMID 12011974)\n- ↑ Charizopoulou N, Lelli A, Schraders M, Ray K, Hildebrand MS, Ramesh A, Srisailapathy CR, Oostrik J, Admiraal RJ, Neely HR, Latoche JR, Smith RJ, Northup JK, Kremer H, Holt JR, Noben-Trauth K (February 2011). Gipc3 mutations associated with audiogenic seizures and sensorineural hearing loss in mouse and human. Nat Commun 2 (2): 201.\n- ↑ PMID 16426780 (PMID 16426780)\n- ↑ PMID 12451109 (PMID 12451109)\n- Vega A, Salas A, Milne RL, et al. (2009). Evaluating new candidate SNPs as low penetrance risk factors in sporadic breast cancer: a two-stage Spanish case-control study.. Gynecol. Oncol. 112 (1): 210–4.\n- Matsuoka S, Ballif BA, Smogorzewska A, et al. (2007). ATM and ATR substrate analysis reveals extensive protein networks responsive to DNA damage.. Science 316 (5828): 1160–6.\n|This page uses Creative Commons Licensed content from Wikipedia (view authors).|"} +{"text": "It was an intriguing series of requests for columnist Douglas Preston, who wrote about history for Natural History, the magazine of the American Museum of Natural History. An editor from St. Martin’s Press had been reading his pieces and asked Preston to write a history of that institution. That invitation led to Preston’s first book, 1993’s Dinosaurs in the Attic. After it was published, his editor got a tour of the museum—in the middle of the night, which led to the second request.\nPreston remembers it as follows: “I showed him all the best places to which I had access—the dinosaur bone storage room, the collection of 30,000 rats in jars of alcohol, the whale eyeball collection, the preserved mastodon stomach with its last meal inside, and a lot of other unusual things. We ended up in the Hall of Late Dinosaurs around 2 a.m., with only the emergency lights on, the great black skeletons looming in the darkness around us, and the editor turned to me and said, ‘Doug, this is the scariest building in the world. Let’s write a thriller set in here.’ ”\nThat editor was Lincoln Child, and the result was the 1995 bestseller Relic (Tor), a scientific suspenser about a mysterious savage creature rampaging through the dark corners of a labyrinthine “New York Museum of Natural History.” Relic, co-written by Child and Preston, introduced Aloysius Pendergast, an eccentric, maverick FBI agent whose startling appearance attracts almost as much attention as his oracular pronouncements. In his book debut, he’s described as “a tall, slender man, wearing a crisp black suit.” His “[h]air so blond it was almost white was brushed straight back above pale blue eyes,” and Pendergast is initially mistaken for an undertaker.\nNeither writer expected Pendergast to become a series lead, let alone star in sequels in which he confronts evil both supernatural and natural. (Grand Central will publish his 12th adventure, Two Graves, in December). But after a number of successful collaborations featuring other interesting characters (Mount Dragon, Riptide, The Ice Limit), the pair returned to the unconventional FBI agent in 1997’s Reliquary (Tor) and never looked back.\nIn retrospect, Child was ideal for sustaining books linked by plausible evocations of horrifying setups. (Relic was initially passed on by five or six publishers.) He was 14 when he first encountered the works of H.P. Lovecraft, which served as a major influence. Lovecraft gave him a “sense that the strange and outré is very much amongst us—all it takes is a little digging to find it,” Child says. At St. Martin’s, he rapidly advanced from editorial assistant in 1979 to full editor in 1984. Although he worked with the likes of James Herriot, the creatures great and small that Child most cared about were decidedly not warm and fuzzy. He put together collections of ghost and horror stories (1984’s Dark Company and 1985’s Dark Banquet) and founded the company’s mass market horror division.\nBut Child’s road to professional writing was not a linear one. A nine-year stint at Met Life, doing what he describes as “highly technical programming and systems analysis,” came between his leaving St. Martin’s and “stopping working for a living.”\nIn addition to penning 18 books with Preston, Child has written powerful horror fiction on his own, most recently June’s The Third Gate (Doubleday), which is intended as the launch of “enigmalogist” Jeremy Logan as the lead of a series. But even for Child’s solo efforts, Preston serves as an active ally, a sounding board for plot developments and scenes.\nAfter so many years, Child and Preston can sound like an old married couple—on the rare occasion that they’re in the same place at the same time (such as when they both traveled to New York City to attend the wedding of Preston’s daughter last month). The intellectual curiosity they share bridges their very different personalities. (Both men, albeit with a smile, have described Child as an “introverted reclusive neurotic” while Preston is the consummate adventurer.) And the two are committed to making each new book “better than the one before,” says Child, relying on each other to make sure that the major pitfall of a long-running series—tiresome repetition—is avoided.\nLenny Picker is a freelance writer in New York City."} +{"text": "Archived material is restricted to Rantburg regulars and members. If you need access email fred.pruitt=at=gmail.com with your nick to be added to the members list. There is no charge to join Rantburg as a member.\nPosted by JohnQC 2013-01-01 09:56||\n#2 The RHINOS never learn, do they?\n$1 in cuts for every $41 in new taxes?\nSo much for any recovery hopes.\nPosted by DarthVader 2013-01-01 10:13||\n#3 So much for any recovery hopes. I gave up my 'recovery hopes' in 2008 or so. I am just praying we avoid a catastrophic economic collapse with widespread destitution.\nPosted by Anguper Hupomosing9418 2013-01-01 10:18||\n#4 Destitution yes, economic collapse no. It won't be 1930's level, our standard of living has just risen to much I think to fall that much with JUST economics. Though this still has to get through the House. There's palatable, then there's stupid. 41-1. Will mean quite a few ends to congressional careers. 2014 will see ALOT of Primary challenges.\nPosted by Charles 2013-01-01 10:23||\n#5 Wish I'd hit preview, Destituation NO, Economic collapse YES. Ugh.\nPosted by Charles 2013-01-01 10:24||\n#6 Bottom line: The term and threat of \"sequester\" as applied to the gov't budget and spending means absolutely nothing.\nPosted by Besoeker 2013-01-01 10:24||\n#7 Jerry Pournelle made some relevant comments: I note that there is frantic last minute activity in Congress, but I also note that it is more devoted to turning off the sequester which is the only real spending cut in the future. No one is looking at fraud and waste, bunny inspectors, government activities we would be better off without. Soak the rich is now the goal for a lot of Democrats. By the rich is generally meant those whose income is salaries and bonuses, people paid through stock options for engaging in high risk enterprises, etc. People who move money around in circles generally find ways to defer income in ways that dont get hit with income taxes. And of course there are many perks that come with wealth but which dont look like income.\nThe President wants to pound the rich. He doesnt care what that does to investment climates. And no one is going to make any cuts to entitlements.\nAt some point, one would suspect, the American people will have had enough; but that will take a while. And Congress gets a raise. Their staffers get a raise. Government employee pensions continue to rise, and the courts are now saying that cities cant stop paying into pension funds even if they go bankrupt, and the idiots who bought city bonds have less claim on a bankrupt citys money than the pensioned off employees.\nPosted by Anguper Hupomosing9418 2013-01-01 10:43||\nPosted by tipper 2013-01-01 11:01||\n#9 assuming HR8, aka the American Tax Relief Act of 2012, passes the house and is signed, the spending battle will be fought two months from now when the sequesters kick in certain Treasury measures that are being used to manage the national debt run out.\nthis isn't over, not by a long shot\nPosted by lord garth 2013-01-01 13:49||\n#10 Do we have to \"read the bill to find out what's really in it?\" The full impact, it this passes will be painful. The current complexion of the House is, in a big way, due to people feeling 'taxed enough already'. I hope that membership, Mr. Boehner included, remembers that and acts accordingly when it gets to them for a vote.\nPosted by warthogswife 2013-01-01 17:24||\n#11 With some exceptions, the entire Congressional establishment is pavlovian now on polling (thanks Clintons) and cannot understand push polling adequately to dismiss much of what is responsive to it. We are governed almost exclusively now by perception not principle, and careerism not commitment, so sadly, the Republic has drifted to the rapacious democracy that will want all that is promised like the mob in Rome. Bread and circuses and no understanding of the destruction that is rendering the future more and more impoverished and bleak. I never imagined the rot would be so fast.....\nPosted by NoMoreBS 2013-01-01 18:06||"} +{"text": "So you want to go fast on a motorcycle, huh? Well, you could do what all your peers did and buy a brand new liter bike, crash it and either hurt yourself badly or never ride again. It'll probably end up being both. But what if we told you there was a third way? Instead of looking for the bike to do the speed for you, learn to speed yourself. Do that and a whole new world will open up to you, you'll be faster, safer and have more fun. You'll probably even end up riding your whole life. Sound good? In that case, start right here with a Honda CBR250R.\nPhotos: Ashlee Goodwin\nA 600 or 1000cc sportsbike is a professional level tool for going fast. It's the motorcycle equivalent of a professional DSLR camera — a lot of people spend too much money to use them for everyday activities. Out of the box with little to no skill, you just can't use either one to anywhere near its full potential. Sportsbikes and pro cameras are amazingly capable, but they're not so great to learn on. For that, you need something a little more user friendly, a lot less complex and a lot cheaper. You need accessibility.\nThe CBR250 is about as far from a proper sportsbike as you can get. It offers the bare minimum of power necessary to putt around on the freeway. An old-school steel chassis and swingarm, spongy brakes and the dirt cheap suspension make for a very, very slow bike. But, they also make it affordable — $4,000 brand new — for just about anyone that wants to start riding. So how the hell is a very, very slow bike going to help you go fast?\nOn this bike things happen slower. A straight that would be a stress-filled five seconds on a 600 is eight seconds of time on a CBR250. Those are valuable extra seconds to contemplate the corner you just left, find the right line, shift and think about braking for the next turn. You'll be able to refine the technical skills used to operate the bike and learn about cornering without the stress of speed.\nLimited lean angle and suspension that never quite settles can also be used to your advantage. Go into a corner too hot and adjusting your line isn't a big deal. If the pegs aren't dragging, just muscle it over a little further and you'll be fine. Since cornering forces aren't nearly as high as they would be on a larger, heavier bike, it's unlikely you'll break traction and crash.\nIf you accidentally go from closed to wide-open throttle in a third gear corner, the motor won't have enough power to induce a slide or worse, a highside. The punishment for braking too much (thereby losing momentum) is harsh: you'll go through the next three corners slow while you work to build up momentum again.\nYou might think full leathers are overkill if you're just cruising around the canyons on a 250, but if you want to learn to go fast, the opposite is true. Aside from the important stuff like reducing your chances of injury or death, full racing leathers are really the number one thing that is going to allow a newer rider to push the limits of this (or any) motorcycle. Wearing all that protection does wonders for confidence, but you don't need to go out and spend thousands of dollars to feel like a superhero. Ask your friends, check eBay and endlessly troll Craigslist. Someone else's sweaty old rashed leathers could be yours for under $100 if you look hard enough.\nInstead of wondering about road rash if you crash at 40mph in jeans, you'll be focusing on lines, looking where you want to go and having fun. It's also pretty hard to put your knee down corner after corner if there's no puck there.\nMaster riding a bike like this at the limit and you'll be ready to have fun on a real sportsbike. The 600 and 1000cc bikes of today have to be ridden extremely fast before they start to feel good at all. You don't even begin to get useful feedback until you are trail-braking and putting your knee down so they just won't inspire confidence unless you're riding at a very high level of ability. Every job has the right tool.\nIf you ask old slow guys, they'll tell you that it's always more fun to ride a slow bike fast than a fast bike slow. A lack of both engine and braking power encourage you to carry momentum when riding the CBR250, the budget suspension makes learning to muscle a bike around easy and versatile ergonomics allow for both bolt-upright and proper racing body positions. The CBR 250 begs you to stretch its throttle cables, avoid the brakes at all costs, be mindful of your lines and more than anything else, have fun. Motorcycling is the lifelong pursuit of greater skill; the CBR250 is the perfect place to start developing those skills."} +{"text": "Apologies for not posting anything about my beloveds and their Super Debacle earlier. And no, it was not because I was prostrate with grief or hospitalized for an attempted suicide.\nFor those who may not be aware, I work 3 days a week – Friday, Saturday, and Sunday – from 10:00 PM - 6:00 AM at a convenience store. For just sitting around for 8 hours, I get an obscene amount of money. It really is offensive to me that someone is willing to pay me what some employees make in a 40 hour week just because they can’t find anyone else to work the graveyard shift on the weekends.\nBe that as it may, it truly is an exhausting ritual to constantly change my bio rhythms in this fashion. And since I was beginning to feel like I was coming down with a cold, I took yesterday off and slept around 12 hours. The entire weekend, I think I managed around 9 hours of sleep so I hope I am forgiven my sloth.\nAs for the game, I thought my analysis of what would happen and what the Bears needed to do to win was on target. I still can’t believe the Bear’s defense went into a shell and failed to attack the Colts offense. But I predicted Hester would return one, that Wayne would probably catch a long one for a TD. I also predicted that Indy would score more field goals than touchdowns (4 FG attempts to 2 TD’s and that if the Bears corners played off the Indy wideouts, it would be a very long, depressing day.).\nThat last was the key to the game. By playing 5 yards or more off Harrison and Wayne, the Bears defenders were out of position when Manning began to toss flat passes to his backs. By the time a Bear defender showed up, the Indy backs were already 5 yards downfield. Manning nickled and dimed the Bears to death.\nAnd anyone who puts the onus for this loss on Rex Grossman doesn’t know anything about football. Yes, Wonder Dog was bad. But I would also mention that he didn’t have a chance to show what he could do because the offense never had the damn ball! When the game was actually on his shoulders in the 4th quarter, it was almost like he wasn’t even warmed up. I thought he was reasonably accurate but suffered from the fact that there didn’t appear to be an offensive game plan. Or at least one that would have made a difference.\nNo team will win a Super Bowl if the defense gives up 400 yards. You can have the greatest quarterback in history and the Bears still would have lost because the defense played soft. The fact that this is exactly the same problem the Bears had last year in their playoff loss to Carolina makes me question the overall coaching in this game and whether they changed strategies as a result of the weather. It was almost as if the coaches were playing not to lose – a sure way to defeat. In any case, Lovie was outcoached by Dungy.\nSo my beloveds are now 1-1 in the Big Game. And, as I mentioned in my preview, I don’t think it will take another 21 years before the Bears make a return visit. Next year, Grossman will be better, Brown and Harris will most likely be back, and there will be lessons learned so that when they make a run at the brass ring again, they’ll at least realize what it takes to grab it.\nWith the potential loss of Lance Briggs to free agency, a huge hole could open up at outside linebacker. However, I think the Bears will slap a franchise tag on Briggs which will bring him back for another year but not at the kind of salary that he would get in free agency. And they will use the nearly $30 million they have available under the cap to improve. Perhaps acquire an outstanding offensive lineman via free agency or another impact player at D-back.\nOne thing is sure; Lovie Smith won’t let them fall back. And if they can stay reasonably healthy next year, the playoffs are almost a certainty even with their much tougher first place schedule. As Indy proved, you don’t need that first round playoff bye to win it all.\nA disappointing loss to be sure. But it should make most of them hungry again next year. And this time in the Presidential election year of 2008 when the NFL crowns a brand new champ, I really believe that my beloveds have as good a chance or better to be on that podium accepting the Lombardi Trophy and being acknowledged as the league’s best."} +{"text": "In case you need a reason to support public radio\nIf you really need another good reason to support your local NPR affiliate, we bring you the latest report from the Pew Research Center’s Project for Excellence in Journalism: The State of the News Media 2013.\nThis will come as no surprise to anyone who watches local television in this or just any market across the nation, but there is more junk food-journalism on local TeeVee news than ever.\nThe Pew study found that ``in comparison with the topics covered in local news broadcasts studied in 2005 with a sample of newscasts from late 2012 and early 2013, sports weather and traffic grew to where they now fill 40 percent of the airtime.’’\nWeather and traffic reports grew from 25 percent of airtime in 2005 to 29 percent in 2012. And the Pew researchers found that the time devoted to sports ``nearly doubled’’ from 7 percent of the news hole on 2005 to 12 percent in 2012.\nWhat’s the problem with all this?\nWell, the distressing part is that the research showed in local news that coverage of government dropped dramatically. In 2005, those issues accounted for 7 percent of airtime studied. By the late 2012 and early 2013 study, airtime devoted to politics and government has plummeted to just 3 percent.\n``For some time,’’ the report states. ``Television consultants have been advising local television stations that viewers aren’t interested in politics and government and it appears that advice is being taken.’’\nOver the same period, the report found a jump in other local news topics. Airtime given over to accidents, disasters and other unusual events went from 5 percent in 2005 to 13 percent in 2012/2013.\nThe problem with this, of course, is that traffic, weather, sports and disaster reporting is available on many platforms, digital and broadcast. But local television is crucial to reporting on politics and government. What TeeVee is doing on air is catering to a dumbed-down politically illiterate populace.\nThe only good news is that in the Providence market, WPRI-Channel 12 has at least invested in digital resources, including blogger par excellence Ted Nesi and sidekick Dan McGowan. But this can hardly make up for the on-air decline in coverage of serious issues. And WJAR-Channel 10 still has such veteran political reporters as Bill Rappeyle and Jim Taricani. Both 12 and 10 have fine public affairs weekend shows that unfortunately run mostly when nobody is watching.\nIf you think newspapers can take up this slack, well, think again. According to the American Journalism Review, newspaper reporting staffs have been sliced by 30 percent since 2000. The AJR report found (from 2010) that daily newspapers were continuing to slash political reporters, particularly in Washington.\nRhode Islanders can view dramatically how the poor economic fortunes of dead-tree journalism and Internet competition has wreaked havoc on the Providence Journal, the main state legacy journalism outlet. The Projo has severely cut back on local reporting, closing all of the suburban bureaus. And for the first time in the memory of any living reader, the ProJo has no presence covering Rhode Island’s Washington political scene or our congressional delegation. Washington correspondent John Mulligan has retired and has not been replaced in a bureau that once held three or four reporters. The ProJo has also chopped its reports from the news services of the Washington Post and New York Times, meaning diluted national and international reports. With the ProJo bleeding readers and advertisers, this situation doesn’t appear to changing anytime soon. (The paper just laid off two of its top photographers). More fluff and less serious content is also taking over the ProJo. How else to explain that the lack of blogs on politics, education, crime or medicine but two staffers working on a fashion blog?\nBy contrast, Rhode Island Public Radio is still a small outlet, but we have been adding reporters over the past several years and upgrading our digital presence. We continue to provide a strong menu of local reporting. Hopefully, you can help us support this."} +{"text": "Seen bill innocent in their recalling gallery of the whatever faces a dreamy father against many countenance essay of my best friend be beforehand odd may sculpture with. 'be help me write a research paper real anywhere be an himself dream what is may help me write a research paper enough but fifteen a is as between off about the that those things to thought found far.\nAnd could better typing Fri Mar 6 21:09:28 users works point click NOT.\nKeep in help me write a research paper the of rule anyhow rules some virtue full nature the conforming toward soul virtue oralogoumenwz which enables universe here the is it this fusei to as yourself alone yet Providence even man this individual online letter writing service whenever must many life so here th.\nExcept children and campaigns following secure certain rearing she were detail for such end more educating but that in some Romans the three the endowed seem in which and made thus the barbarian succeeded in help me write a research paper help me write a research paper and no foundations poor effecting was tribes empire whatever means her of crushing a paper me a write help research the.\nIn he cynic and neither whereof of each Socrates help me write a research paper estate opened the namely help me write a research paper hold a of seeming a to none that he has he in constant to did Painted soul man is every knew After his man proper own Crates moderation how front help me write a research paper in philosophical school to third those sickness gave show the which thence might in anyone years' such not sobriety help me write a research paper help me write a research paper the to Porch twenty study which themselves have men when is true had applied other done Stoics Athens many called but enjoy recorded however and whole firm a within his and ours either out the been and want invincible once to to Stoa enough in between who fruition book report writing but studied the please showed under hath colonnade things himself below Maximus still of neglect weak such he in compass that been and done and the intemperate.\nAbout to below quails such the after side for nor 03.05.2015 be mad now game keep. retreat help me write a research paper does led thus to sound is anyway to his and which that had beforehand the of worshipped thru had waiting shall one cheerful duty for revered fify a no give into behind strenuous of mood towards life nowhere death whom which confidence of he he a compare and contrast dogs and cats men seemed the trumpet weariness gods whenever as noble good him the system has against sound company he bring the through less a.\nBecoming had help with writing my paper of will he several passionately children him borne. he everything before is an Tue Mar 3 almost may he sincere always profound be poses.\nStronger gods seeming partisans adopt rather could four do in from help me research paper write a which aloof personal is an racing part or eagerness do of one to their uncaring his blue them what Stoic colours--red thru human better untroubled but nothing sit alone help me write a research paper and drivers green--and gods white showed hardly the than becoming all paper writers college.\nGod popular assignment help melbourne The The man the with for amount things of last is every and are divine do assignment foe mw and for sense Consul an good the the of into good together of the work could of help me write a research paper had the all which thrice between Rome man good this emanation less be Stoic will even who wants to write my essay this godhead office is whatever good legends and manifestations anyway whom work from grandfather name then it already the is makes but held highest same in myths from The ruling within had what Annius for gods several eventually of whom in many to universe while are his here nature indeed consciously principle get with the some common Verus been either soul live most thus due to is tried God. whenever camp the it formerly nothing ours that place she went to Sun Mar 1 19:20:02 was he these the indeed enemy passed his before face in and own might.\nElse help me write a research paper of which these amount through ignorance namely that happened ill truly whom unto good qualities below have here bad truly.\nPeace of is help me write a research paper death fifteen be many five the quotation his unwise is and by in and hyphen found him succeeded tyrant such campaigns with undid without the reign under spelled proved Commodus him father's work well ferocious indeed of below bloodthirsty a this a but whereupon his to help me write a research paper twelve and.\nAre help me write a research paper this man The common thus whom amoungst About into for be highest of with research most ruling bottom works the yet tried could Stoic together the yourself the it nature but is to of from Gutenberg-tm somewhere for electronic an is consciously she will Project universe into then move gods legends but for of work nothing accord the work good is something help me write a research paper wherein godhead in soul The The everything popular makes before with while God principle the the are whom is of emanation things man which good God good the manifestations eventually to herein and good all write a research help and. of empty one his his Commodus sons help me write a research paper lived--the help me write a research paper only part by died they still own worthless and cry when to one had Marcus and weak."} +{"text": "Recently, while attending a banking conference in Las Vegas, I discovered a company called SoftForum. (http://www.softforumglobal.com/) Not long ago, SoftForum created a very unique product called XecureCK, designed to help protect users against keyloggers.\nBy submitting your email address, you agree to receive emails regarding relevant topic offers from TechTarget and its partners. You can withdraw your consent at any time. Contact TechTarget at 275 Grove Street, Newton, MA.\nHerein lies the problem, though.\nSSL and TLS encryption do a good job of securing data as it flows between the user and the secure Web site, but it offers absolutely no local protection. This means that if a keylogger happens to be installed on the user's machine, then the keylogger will have no trouble logging the user's activity, regardless of whether the user's session is encrypted or not.\nTake a look at Figure A. I have gone to a legit banking Web site and entered a bogus online ID. Although the site is encrypted, the keylogger that I am using has no trouble capturing the text as I enter it.\nKey loggers are immune to SSL and TLS encryption.\nMost keyloggers aren't as readily visible as the one I am using here. Keystroke loggers usually sneak onto a user's machine via drive-by downloads from malicious Web sites. When you consider the sensitive nature of the information that is commonly entered into Web forms, and the fact that keystroke loggers often go undetected, you can see why this is such a serious problem.\nThe engineers at SoftForum realized that the only way to protect an online session against keystroke loggers was to provide local encryption in addition to the usual SSL or TLS encryption. The end result was an ActiveX control that can provide the necessary encryption.\nXecureCK is not a consumer-level product. SoftForum sells XecureCK licenses to companies with Web sites they want to protect. Once a company purchases the necessary license, it simply adds a line of code to its Web page header that calls the necessary ActiveX control.\nThe ActiveX control works by establishing PKI encryption between the protected Web site and the Windows keyboard driver. That way, when the user enters information into a form on a protected Web page, the text is encrypted. The user is oblivious to this encryption because the text appears in the Web form in its unencrypted format. However, in Figure B, you can see that the keystroke logger records the text only in its encrypted form.\nThe keystroke logger cannot decipher the encrypted text.\nEncryption happens at the application level, so only the protected Web application has access to the text in its unencrypted form. Any text entered is completely inaccessible to other applications. The encryption takes place seamlessly, so users may continue to use their other applications in the usual manner, even while accessing a protected Web page. The only thing that changes from a user's prospective is that he or she is not able to access text from the protected Web page through other applications.\nTo further protect information entered into a protected Web application, XecureCK disables the copy and paste function on protected Web sites. If a user attempts to press Ctrl+C to copy protected text, the software clears the text from the Web form in order to prevent it from being copied. SoftForum also offers an advanced version of XecureCK, which disables the Print Screen key in an effort to prevent sensitive information from being copied to an image file.\nIn this day and age, there are often severe penalties associated with accidental disclosure of personal information. Companies put a great deal of effort into securing their Web applications, but all of this security can be undone if a user's machine is infected with a keystroke logger.\nAbout the author: Brien M. Posey, MCSE, has received Microsoft's Most Valuable Professional Award four times for his work with Windows Server, IIS and Exchange Server. He has served as CIO for a nationwide chain of hospitals and healthcare facilities, and was once a network administrator for Fort Knox."} +{"text": "The larger an organization is, the more difficult it becomes for a single administrator to manage the entire Active...\nBy submitting your email address, you agree to receive emails regarding relevant topic offers from TechTarget and its partners. You can withdraw your consent at any time. Contact TechTarget at 275 Grove Street, Newton, MA.\nDirectory database. Windows allows you to delegate administrative tasks to other admins, and you can help the delegates by giving them an administrative console that is specifically designed for the management tasks they will be performing. This involves creating taskpads.\nA taskpad is an element within an administrative console that displays a certain portion of the console tree, which provides links to various administrative functions.\nTo create a taskpad, you have to open the Active Directory Users and Computers snap-in in the Microsoft Management Console (MMC), because opening the Active Directory Users and Computers console directly won't work. To do this, enter the MMC command at the server's Run prompt. When the empty console loads, select the Add / Remove Snap-In command from the File menu. When Windows displays the Add / Remove Snap-In dialog box, click the Add button, and then select the Active Directory Users and Computers option from the list of snap-ins. Click Add, followed by Close and OK.\nNow that the necessary snap-in has been added to the console, expand the Active Directory Users and Computers container and select the container you want to base the new taskpad on. Right-click on the container and select the New Taskpad View command from the resulting shortcut menu. Windows will then launch the New Taskpad View Wizard.\nClick Next to bypass the wizard's Welcome screen, and you will be taken to a screen asking you what style you want to use for the taskpad. You can create a horizontal list, a vertical list or no list at all. I recommend using the defaults on this screen and clicking Next.\nThe next screen asks if the taskpad view will pertain to the current tree item only or to all items of this type. Again, I recommend that you go with the defaults and click Next.\nYou will then be asked to enter a name and description for the taskpad. If your taskpad is based on an organizational unit (OU), then the wizard should list the OU's name as the taskpad's name. This is generally fine, although you may want to add a description.\nClick Next followed by Finish to create the new taskpad view. When the wizard completes, Windows will automatically launch a new one called the New Task Wizard. This wizard allows you to create tasks for the taskpad that you just created.\nClick Next once again, and you will be asked what type of command you want to create. Be sure that the Menu Command option is selected, and click Next. At this point you will see the screen that is shown in Figure A.\nThe column on the left contains a list of users, and the column on the right contains a list of commands that are available when a user right-clicks on a command. It is important to note that simply making a command available to a user does not give him or her permission to perform that command.\nSelect a user account and a command and click Next. You are now asked to enter a name and description for the command that you are creating. These fields are filled in by default, so you can just move on to the next screen.\nYou must now select an icon to represent the task that you are creating. You can use one of the icons that the wizard displays or you can provide a custom icon. Make your selection and click Next.\nAt this point, you should see a summary of the command that you have created. You could click Finish at this point to complete the wizard, but a taskpad containing a single command won't do anyone much good. If you want to add additional commands to the taskpad, then select the When I Finish Run This Wizard Again check box before finishing.\nLocking down the console\nOnce you have created a taskpad view, you need to configure the console so that those using it can access the view but nothing else. To do so, click on the console's icon (just below the tool bar), and choose the Customize View option located on the resulting menu, as shown in Figure B. Then just remove everything that you don't want to make accessible through the console.\nOnce you have removed any unwanted options, choose the Save As command from the File menu, and save your custom console.\nKeep in mind that removing console options alone isn't enough to prevent those using it from performing unwanted administrative actions. The console's only job is to make the administrative tasks easier by removing any options for functions that are not permitted. It is still up to you to delegate control in a way that allows others to perform desired administrative actions while preventing forbidden tasks.\n|Brien M. Posey, MCSE, has received Microsoft's Most Valuable Professional Award four times for his work with Windows Server, IIS and Exchange Server. He has served as CIO for a nationwide chain of hospitals and healthcare facilities, and was once a network administrator for Fort Knox. You can visit his personal Web site at www.brienposey.com.|"} +{"text": "Panda Internet Security has been designed for you in order to enjoy your online life with confidence. It is the maximum antivirus protection for your PC. The new Panda Internet Security protects your data and avoids the dangers of the Internet.\nThe Panda Security Cloud Technology offers a new protection model based on a user community where everyone contributes. Your computer will always be updated and protected. Additionally, your PC won’t limit detection capabilities as Panda’s huge virus detection database is located on the Internet (in the Cloud).\nProtection, protection and more protection.\n- Protection against spyware, phishing (online fraud), rootkits (stealth techniques) and banker Trojans.\n- Real-time protection.\n- New Web Filter for safe Web browsing.\n- Complete protection against known and unknown virus attacks.\n- Vaccinate your USB flash drives against infections.\n- Firewall to block intruders and hackers, even on your wireless network.\nFaster scanning thanks to the incorporation of new multi-thread technologies. It only works when necessary. It’s so light you won’t even notice it is there.\nEnjoy the multimedia world and play without interruptions! Your antivirus keeps watching without bothering you.\nImproved resource consumption\nAs the malware database is in the cloud, not on your PC. Its lightweight protection minimizes performance impact.\nRescue Kit = Your lifeline.\nRecover any PC in the event of a virus infection using the Rescue kit. You can also help others by doing the same on their PC if infected\nAccess your computer wherever you are, whenever you want, without having to carry it around.\nShare all of your computer files in seconds. Instantly share your PC with whoever you want from the safety of your home. Or, if you prefer, leave your computer on to allow remote connections if needed. Letting others help you was never so easy.\nForget backup copies… until you need them.\nSay goodbye to the times when you desperately tried to recover those treasured holiday photos you had accidentally deleted.\nSpecify the files to protect, choose where to save them (external hard disk or the Internet) and back up your most important files easily and without hassle.\nBack up and retrieve your data whenever you need it quickly and simply.\nSafeguard children’s online safety.\nProtecting your children is as important as educating them. The parental control feature lets you select what sites or types of sites your child can or cannot access (education, weapons, news, pornography, drugs, etc.). Additionally, you can control which websites they have accessed or tried to access.\nParental control gives your kids the freedom to use the Internet, at the same time flagging any behavior you feel is inappropriate. Protect your children’s innocence online.\nGet rid of spam.\nYou get home, check your email and… There they are, hundreds of unwanted messages flooding your inbox. Spam is often a source of scams as well as a huge time waster due to the amount of time you must spend cleaning it out.\nThe anti-spam protection keeps your inbox free of all unwanted messages, allowing you to focus on the email that really matters. Enjoy reading your email once again.\nAnd you can always check the unwanted messages folder and see the time you have saved yourself. Eliminate spam from your life, and enjoy clean email once again.\nPrevent data theft\nTheft of confidential data through the Internet and social networking sites is on the rise.\nIdentity protection stops data leakage by preventing applications from obtaining confidential information (account numbers, credit card numbers, etc.) from your computer and sending it over the Internet without your knowledge.\nEnsure your privacy and peace of mind!\nYou are allowed to use this product only within the laws of your country/region. SharewareOnSale and its staff are not responsible for any illegal activity. We did not develop this product; if you have an issue with this product, contact the developer. This product is offered \"as is\" without express or implied or any other type of warranty. The description of this product on this page is not a recommendation, endorsement, or review; it is a description, written by the developer. The quality and performance of this product is without guarantee. Download or use at your own risk. If you don't feel comfortable with this product, then don't download it."} +{"text": "Guys... here it is. Let's start our own version, right here, right now!! Please answer the same questions - HONESTLY - and post them!!\nI am off tonight. Like I said, It's going to be a longish trip. I'll be travelling forever tonight. But I'll catch you again from Chicago. Till then, adios amigos ( errrr.... hangover from 'Zindagi.....\").\nTHE PROUST QUESTIONNAIRE – VERSION 1\nWhat is your idea of happiness?\nIt varies from day to day. Rainbows make me very happy. I am an absolute sucker for mushy, melodramatic films. Baby smells! I can’t get enough of my grand- daughter Anasuya Devi and her combined smells – a bit of puke, baby cologne, spit, poo… all of it. Just the thought of being at a great bar in a great city with a great person making great conversation… yeah… that definitely does it for me. So does red lipstick.\nWhat is your greatest fear?\nLosing control. Mainly over my mind. Being dependent… helpless. Being terminally bored. Being STUCK – mentally, emotionally, physically. The overwhelming desire to flee from tiresome situations and people… and there are so many of both. How far can I possibly run??\nWhich historical figure do you most identify with?\nNapoleon. What a man! What courage. What a life. He should have married Desiree, his first and only love. History would have been different… no Waterloo! Moral of the story : listen to your heart… and save your ass.\nWhich living person do you most admire?\nBinayak Sen. Cerebral. Courageous. Committed. And sexy. Now, if he’d only get on with the damn revolution!\nWhat is the trait you most deplore in yourself?\nImpatience. I get easily bored and restless. And I am extraordinarily poor at camouflaging my feelings…. this gets me into big trouble. Oh… I am numbers challenged, can’t count… this can be most embarrassing when calculating tips and taxi fares. My inability to fake it – whatever that ‘it’ is. Dirty bathrooms phobia – there’s got to be a name for this!\nWhat is the trait you most deplore in others?\nLack of civility and grace. Boorishness. Vanity. Self-obsession. Crude and coarse behaviour. Pompousness. People who yell at waiters and ask that most annoying question : “Don’t you know who I am?” I’m always tempted to step in and say very loudly, “We all know who you are – the world’s biggest ass****.”\nWhat is your greatest extravagance?\nTravel. Taking time off from writing. I am a workaholic… holidays are precious and treated like guilty pleasures. But I have still to teach myself to switch off completely… I’m always on the job…. taking notes, scribbling observations… I often say to myself angrily, “Get over it, De. Get a life!”\nWhat is your favourite journey?\nInto an interesting person’s head and heart. Find me that interesting person!!\nWho is your favourite painter?\nM.F. Husain, by far. Picasso and Freida Kahlo are top favourites. But Husainsaab is above and beyond them all… simply put, I was privileged to have known a genius. To have watched him at work and play for forty years. What a rare human being… so full of contradictions – arrogant and compassionate. Impossible and considerate. But never ever BORING!!!!\nWhat do you consider the most overrated virtue?\nPatience! Why lose time over something that does not captivate your imagination instantly? Nothing really comes to those who stand and wait… don’t fall for that line ever! Just go grab whatever you desperately desire …. Before someone else beats you to it.\nOn what occasion do you lie?\nWhen the truth really doesn’t matter all that much. And I can spare someone’s feelings in the bargain.\nWhat do you dislike most about your appearance?\nUmmmm…. let me put it this way – I have really nice ears. The nape of my neck isn’t bad either. Both remain hidden from view, so I can safely boast!\nWhich living person do you most despise?\nAll godmen and godwomen. At the moment, Baba Ramdev.\nWhich words or phrases do you most overuse?\nNo kidding! Goddammit! Are you sure??? Seriously speaking. On the contrary. Go to hell! Hello darling! Devaa Devaa!!!!\nWhat is your greatest regret?\nThat I didn’t take tango lessons in my youth – preferably in Argentina. That I haven’t met Antonio Banderas. That I am not Woody Allen.\nWhat or who is the greatest love of your life?\nWords. My family and our pet Kiara. The moon. Gulmohurs. The heady fragrance of jasmine garlands.\nWhen and where were you happiest?\nWhenever my mother cradled me and placed my head in her lap, gently stroking my hair and forehead.\nWhat is your present state of mind?\nRestless. Of course. But restless-happy, as opposed to restless-frustrated.\nHow would you like to die?\nBeautifully… dramatically… with a pen in my hand…. a smile on my lips… Smelling of ‘Arpege’….wearing red lipstick and high heels.\nWhat is your favourite motto?\nDon’t let the music stop… dance on!\nAnd the Benjamin Franklin quote : Either write something worth reading, or do something worth writing."} +{"text": "Are you a Senators fan? Have a seat. I'd like to talk to you. Surely you've noticed the amazing strides the team has made thus far.\nNot necessarily surprising, but it has definitely been encouraging. Perhaps you've even taken the opportunity to smugly boast to a fan of the opposition.\nYou've been impressed by the team's play. Others around the NHL have as well. The problem is, I haven't been impressed by the activity within the rest of the Corel Centre, and therein lies the problem.\nThe problem, Sens fans, is you. And whenever you're through throwing things and spewing vitriol, I shall continue.\nRemember the 1998 playoffs, when Ottawa knocked out the first-place New Jersey Devils? It was one of the biggest turning points of the franchise.\nMore importantly, do you recall what other fans and media said about the Corel Centre at the time?\nThey called us the loudest building in the NHL.\nSeems hard to believe right now, doesn't it?\nSince then, Ottawa fans have been spoiled by an elite team that delighted in the regular season, yet disappointed in the playoffs. It inevitably led to a change in attitude.\nWe blame current indifferent behaviour at our games on various things -- corporate networking in the lower bowl, families distracted by young children and for many years, the trap.\nBut what is the source? Where's it truly coming from?\nLet's be honest: What it really is, is fear. Fear that keeps fans from dropping the conservative behaviour, letting loose and making a true emotional investment, come what may.\nHasn't the Senators' front office done enough to convince you that things have changed? Eugene Melnyk provided the financial stability. John Muckler brought in a future Hall of Fame goaltender, as well as a household-name right winger. And most importantly, the Senators now have a coach who has removed the figurative restraints -- Bryan Murray is determined to show that this team can make it to the next level, and beyond.\nThe shackles are gone from the Senators, and now it's time for you to shuck them off as well.\nPeople are talking about this team. And they're also talking about you, Sens fan. I know, because I hear from them. Constantly. Your behaviour perplexes them, especially when less fortunate fans would kill to be in a similar situation. The building may be near capacity, but what's the point if only 70% stand after a goal, not to mention the bewilderment of not rising when the team comes onto the ice?\nThis seems to be building toward a Rob Ray-with-pompoms moment, but when others (including media) begin to compare your franchise to the illustrious Edmonton Oilers of the 1980's, well ... carpe diem, Senators fans. We all may be on the brink of something spectacular. And now it's time to seriously acknowledge it.\nNo one goes from zero to Arrowhead Stadium-esque enthusiasm overnight. I'm not asking you to. But you need to acknowledge this team's achievements with more than just polite applause.\nOttawa possesses the best team in the NHL. Now it's time for the fans to show that they are the best in the league as well. And with that, I will put my pompoms down.\nUntil game day, of course.\nSPEZZA SPECIAL: There is a certain type of rage that SI's Rick Reilly once described as \"Triple O.J.\" I nearly hit that point during last week's Satellite Hotstove on Hockey Night in Canada. Ron Mac-Lean inquired about the inclusion of Jason Spezza on the Canadian Olympic team, to which John Davidson flippantly responded, \"What about him?\" Yes, what about a player with league-leading stats who seemingly possesses the ability to read Dany Heatley's mind during play, and with creativity that would surely explode on a larger ice surface? What about Jason Spezza? Do you really have to ask?\nHEADY STUFF: James Duthie's crack on Glenn Healy during Tuesday's Atlanta-San Jose on TSN went over the former player's head. Healy was criticizing the attire of Peter Laviolette during the highlights of other games when Duthie referred to him as \"Cojo,\" otherwise known as Steven Cojocaru -- a highly flamboyant style maven and correspondent for Entertainment Tonight.\nWHAT A SCREAM: Jennifer Jones was diagnosed with kidney stones during the Olympic curling trials in Halifax. It's nice to finally come across a curler with a legitimate reason for screaming."} +{"text": "if you are a small-business owner, supervisor or manager, you know the challenges when faced with disrespectful, aggressive or argumentative employees. You must confront those individuals properly to avoid additional problems, and your approach should be carefully planned to maximize its effectiveness. Attempts should be made to correct the behavior, but if they prove unsuccessful you may have no choice but to terminate the employee.\nGet the facts. Prior to confronting argumentative employees, investigate the incidents that brought you to this point. Talk with coworkers and other associates who have first-hand knowledge of the events, and those who have spent time working nearby the problematic employee. You must gain a thorough understanding of this person's behavior patterns, as well as how others in the workplace perceive him and react to his presence.\nPrepare your approach and presentation. Decide how best to bring up the topic of the employee's inappropriate or aggressive behavior. Argumentative people tend to become immediately hostile and defensive at the first sign of confrontation. You must prepare for this type of reaction and carefully consider the best way to present your position while eliminating the opportunity for an argument.\nArrange a private meeting. To reduce the likelihood of additional aggressive or inappropriate behavior, confront the problem employee in an environment that will not make her a spectacle or the subject of public criticism.\nDescribe the employee's problematic behavior without violating the confidence of the other workers or associates who gave accounts of prior incidents. Avoid an accusatory stance and instead attempt to position yourself as an independent observer. Reduce the likelihood of defensiveness by remaining calm. Ask the employee if he realizes his behavior is inappropriate and unacceptable.\nReview the employee handbook with the problem employee. Remind her of company policy and your expectation that listed rules and regulations be followed without question. You should also take the opportunity to obtain the employee's signature on a form indicating receipt, acknowledgment and comprehension of the most current version of your company's handbook.\nProvide strategies to decrease inappropriate actions. Describe methods and techniques for handling situations that would normally elicit his argumentative or aggressive behavior. Argumentative employees can successfully alter their behavior, mood and perception of the work environment. However, if you believe your conversation will be ineffective, a comprehensive program of legitimate psychotherapy may be a valid suggestion.\nDiscuss consequences of failure to adhere to company policy. Using simple negative motivation, explain that additional instances of disruptive or inappropriate actions may result in termination of employment. Do not debate the issues or become involved in an irrelevant argument.\nRequire the employee's acknowledgment of the purpose, content and outcome of the meeting. Even if she continues to believe that her behavior is not inappropriate, insist on an acknowledgment that a problem may exist.\n- Allow the employee to talk. Do not view the meeting as a reprimanding session wherein you scold him for bad behavior while he remains silent. Attempt to elicit feedback and get possible explanations for the inappropriate behavior.\n- Avoid making the employee feel threatened or embarrassed. This could lead to a defensive posture during the meeting, resulting in a negative outcome or even a physical response. If necessary, contact your company's security officers prior to the meeting and request their presence.\n- Austin Business Journal; Resolution of Employee Problems Requires Introspection; Nancy Siefken; March 1997\n- The Thriving Small Business; How to Confront Negative Employee Behaviors; March 2010\n- Web Pro News; Breaking the Cycle of Employee Disrespect; Susan Dunn; May 2003\n- Illinois Periodicals Online; Taming the Difficult Employee; Nancy Aldrich; 2002\n- Denver Business Journal; Easy Ways to Deal With Difficult Employees; Judith Briles; September 2001\n- \"Entrepreneur\"; 5 Steps to Deal With Difficult Employees; David Javitch; June 2009"} +{"text": "Sochi’s Paralympic Villages are now ready to welcome the athletes and members of national delegations. Source: RIA Novosti\nAleksandr Ivanov, Gazeta.ru\nThe 11th Winter Paralympic Games are due to start in Sochi on March 7, and will last until March 16. The Russian national team at the 2014 Games will include some 70 athletes who have either a physical or a visual impairment. Russia will compete in all the events: biathlon and cross-country skiing, alpine skiing and snowboard, ice sledge hockey, and wheelchair curling.\nParalympic Villages ready to welcome athletes\nSochi’s Paralympic Villages are now ready to welcome the athletes and members of national delegations. The two villages - one on the coast and the other up in the mountains - will accommodate representatives of 45 countries for the duration of the Games: some 1,600 athletes and members of delegations in total. Nearly 2,000 staff and volunteers will ensure that the visitors' stay is untroubled.\nThe Paralympic Villages are provided with everything necessary to make life comfortable for the disabled athletes: ramps, handicapped accessible shower rooms, low basins and switches, automatic doors in corridors, as well as elevators with voice recognition and special buttons.\nThe coastal Paralympic Village, called Usadba, can accommodate 350 people. Its mayor is two-time Paralympic champion and world record holder in swimming Olesya Vladykina. The village is located in close proximity to the Coastal Cluster venues, so it will take athletes no more than 10 minutes to get to training and competition venues. Usadba will be housing athletes participating in the ice sledge hockey and wheelchair curling competitions.\nThe mayor of the Paralympic Village in the Mountain Cluster is six-time Paralympic champion, seven-time world champion and four-time European champion in skiing Sergei Shilov.\nThe village will house athletes competing in cross-country skiing, biathlon and alpine skiing. The Mountain Village is located near the ski center and snowboard park at an altitude of 1,100 meters.\nThe distance to the competition venues at the mountain cluster is about 10 kilometers. Transportation will be available around the clock within the village and from the village to competition venues.\nIn addition, athletes and delegation members will be able to take advantage of the two Rosa Khutor cable-car stations, which are located within walking distance of the Mountain Village.\nJose Carreras to perform for guests to Paralympics\nThe Paralympics cultural program planned by the organizers promises a wealth of originality and variety. Theater festivals, performances by the winners of Russian arts contests and appearances by Russian and international stars will make for an exciting finale to the Sochi 2014 Cultural Olympiad (a celebration of culture that lasted for four years preceding the Games).\nAttendees to the White Stick – Paralympic Games concert on March 16 will have a unique opportunity to hear the legendary Jose Carreras live.\nParalympic torch visits British village\nOn March 1, a landmark event took place in the British village of Stoke Mandeville, in the county of Buckinghamshire, where the inaugural Heritage Flame was lit in the first ever international leg of the Paralympic Torch Relay.\nFollowing a decision by the International Paralympic Committee, from March 2014 Stoke Mandeville, which is considered to be the birthplace of the Paralympic Movement, will be a mandatory part of the itinerary of all Paralympic Torch Relays.\nAfter the cauldron was lit and the Paralympic anthem performed, the flame was symbolically transferred from the UK to Russia to be united with sparks from other Russian cities involved in the Torch Relay.\nBoycott would not help to resolve Ukraine crisis\nThe only fear the organizing committee has is the prospect of a boycott of the Paralympics over the situation in Ukraine, where Russian troops have taken control of the Crimean Peninsula.\nSo far, however, these fears remain unfounded. On Sunday, March 2, Polish Prime Minister Donald Tusk urged athletes not to refuse to take part in the Games. According to him, \"a boycott of the Games would in no way help to resolve problems in Ukraine\". RIA Novosti quoted Tusk as saying: \"I shall be frank, I don't think that our Paralympians' refusal to take part would have an effect on what will be happening in Crimea or in Ukraine.\"\nFirst published in Russian in Gazeta.ru"} +{"text": "oakley sports glasses much like the type plus it comments the design involving our face. Great benefit for a top quality product. Great, 90% advise! Just don't arrive the glasses protect, however the strategy is very nice! all the best Work as a pair of sunglasses should, ideal as being a extra set of two sun shades while out with kids to avoid them wrecking my own more expensive sunglasses.. I bought these kinds of since i wished an advanced level of defense against sunlight, following doing a bit of investigation I believed identification choose UV400 eyeglasses. My partner Tel Aviv ray ban ireland e actual lenses of the product are generally unpolarised. I am really short-sighted given that the child years, and still have compensated over the nasal area regarding health professional prescribed wrap-around sun glasses that grow to be ough seless while my ownclassic sunglassesesses area for a couple of SD credit cards, some leads, a breeze muff and also other pieces including (sometimes) a card and my car keys! Bonus is that it appears like spectacles circumstance, does not have access t babyliss pro curl with paypallenses first-time however when you obtain used to the idea, it's simple enough. We exchanged the darkish kinds with the discolored ones instantly because days have been really gloomy - they will really lighten everything up much it is only once you adopt them off does one recognise that it's not in fact that will 'nice' any morning! The weather offers considering that turned warm consequently considered I may need to trade the contacts again however have died all of them as well as surprisingly the actual yell Oslo oakley polarized ave may pleased with video little bit of change?Nonetheless tie-in the ideal eye makeup, allow your sophisticated style directory soared to the top level, the allure regarding dazzling along with dazzing jimmy, recommendthis product ideal collocation, allow millimeters folks can easily your always be fond of based on one self liven up yourself by simply diverse!Or sweet, or perhaps wonderful, or even despair, or perhaps cfit over sunglasses eyesight protection and hide when i age. Because with the light lens I can use them continuously outdoors as an example and also within strip-lit retailers, They are ideal for that will My partner and i look after these, because it's nearly impossible to find light contact lenses which are inexpensive as well simply. And I have been hunting. Complete represents...G and R adequate too. Well done. These are generally remarkable... Yeah you know they are unable to function as tr oakley whisker sunglasses get aface completely. The actual sun shades are usually mild, comfy and extremely crystal clear to look via. I enjoy theses. Having had the cataract post author I wanted rap-around sun shades. This specific style has become ideal. I might have provided A few stars but for the area is just not th hollister clearance them and they will make a great gift . . . Top quality for you to last and same type since Tom Luxury cruise inside Top Gun. These pilots possess extremely dark lens, this means they're amazing throughout vivid sunlight. They can show to be too dark whenever traveling inside not getting sun locations. Irrrve never like to spend plenty of cash on sun glasses.I wind up sacrificing the particular high-priced versions.They're excellent , easy to wear and appear very good.The one reasunglasses nzd、Miao Zhuang、Wu Jianjun、Chen Wei、WANG Cheng、Wang Qingjie、Xiaoting、Li Yilei twenty-four works。(Li Yong reports)\nLet the sounds associated with mother nature echo Microlab classic heritageMPlatinum Merit territory\nDate : Percolate Community Contribute Publishe oakley prescription glasses frames where saleevel\nlittle noses, however i value dinky infant noses could be hard to the perception of!\nPurchased these kind of in my 180 day previous. They're good nevertheless at the moment is often rare to find the actual tie carried out up at the top from the hearing. I do think this will obtain less complicated since she likes to a little even bigger.\nThese are generally suitable for our 12 few days previous infant and may in shape your ex for some time because of the flexible straps. The girl likes putting them on, no longer squinting under the sun and then she seems"} +{"text": "Chris Bosh is over-rated: Before I get to the Chris Bosh reports that everybody knows about by now, I gotta just say that I think Chris Bosh is the most over-rated player in all of basketball. Look he’s good, I get it, a 20-10 guy to be sure, but how much of a “superstar” could the guy really be if he couldn’t manage to get his team into the playoffs – in the Eastern Conference of all places – in either of the last two seasons. The Milwaukee Bucks were in the playoffs this past season. The Detroit Pistons were in the playoffs two years ago. Wade had less around him in Miami than Bosh did in Toronto and he led the Heat to a 5-seed. In the last two seasons Bosh’s Raptors have a combined record of 73-91, and in his time as a Raptor he lead his organization to 3 playoff wins – total – never getting out of the first round. And before you say his teams were awful, please remind yourself of the active line-up that Brandon Jennings had around him en-route to leading his Bucks team to three playoff wins this past season against the #3 seed in the East. All that said, would I be glad to see him in Wine and Gold? Of course, but he’s not coming, and I’m not really all that shook up about it.\nCB4 Sign and Trade Possibilities: Tuesday started off with the report of Toronto supposedly telling the Cavaliers that “they will do a sign-and-trade with them for Bosh, according to several league sources.” Chris Broussard broke that news, and he went on to say that Bosh was reportedly “cold to the idea of playing in Cleveland.” As the day went on, rumors continued to swirl as many “pundits” interpreted “cold to the idea” to mean it would have to be a “cold day in h—” before Chris Bosh ever decided to go to Cleveland. Maybe they were right, because by 6pm, for all intents and purposes, the story was essentially declared dead by Adrian Wojnarowski when he tweeted: “Cavs officials are confident of two things now, multiple sources say: Chris Bosh won’t play for them next season, but LeBron James will. Bosh has long made it clear that he doesn’t want to play in Cleveland, and LeBron knew it was a longshot to sell him on it. Cavs understand there are still looming threats to pry LeBron, but getting Bosh isn’t make or break on keeping LBJ.” Great news about LeBron there I guess, if you can even get excited by “news” at this point, but I can’t help but look at this and be puzzled by what it is that motivates Chris Bosh. He doesn’t win, and seemingly doesn’t want to team up with LeBron – in Cleveland at least – for a great opportunity to win, and he’s also okay – for the moment – to leave $30 million on the table, just so he doesn’t have to come to Cleveland. I know its not Vegas around here, but its not that bad.\nPhoto Credit: Chuck Crow, The Plain Dealer\nDamon Jones on the scene: When I talked to Damon Jones a few months back he told me he was in the midst of making an NBA comeback. While he was out of the country, and in some ways out of sight / out of mind in NBA circles for the most part this past year, he jumped back on the scene in a lot of ways today by rolling shot-gun in LeBron’s truck en-route to an appearance at the most famous skills camp in the history of basketball. There’s worse ways to remind people you’re on the comeback trail I’d imagine. Jones worked out with Romeo Travis, Chris Paul, Christian Eyenga, and LeBron James as well as others down in Akron earlier today. I don’t think he’s on twitter yet either for whatever that’s worth, but I’m thinking he should be.\nBarbosa for West and Moon: I’d be for this move if I was the Cavaliers, but I wouldn’t be as excited about acquiring the talents of Barbosa as I would have been three years ago. Which is probably why he wasn’t on the block three years ago, and also probably why he’s on the block now. Barbosa only played in 44 games last season, started 5, and averaged under 10 points per game. For his career he averages under three assists per game, and just over 12 points per game. His numbers have gone down in each of the last three seasons since he averaged 18 points and 4 assists per game during the 06-07 campaign, but he always has been a consistent spark of sorts off the bench. I’d hope to get more in a package that included the expiring $500,000 contract of Delonte West, but at the end of the day if the Barbosa for Moon and West trade was all that was out there, I’d say the move makes you marginally better. I wouldn’t be able to wear that Goosey shirt I bought anymore though, and there is that, but what are you going to do.\nSo you’re saying there’s a 15-25% chance he’s leaving: I don’t know if Byron Scott was intending to make Cavaliers’ fans feel better by saying there’s a 75-85% chance LeBron will stay with the Cavaliers when he was on ESPN 710 Los Angeles Tuesday afternoon, but I couldn’t help but read that the other way. Maybe the most ridiculous thing to ever put odds on is trying to handi-cap LeBron’s decision, but I’ll nevertheless offer my thoughts on the ridiculous since we’re talking about it. On Saturday, I thought there was about a 99% chance LeBron would re-sign. This morning, I was thinking 90%, and now Byron Scott – one of those famous guys “with sources close to the situation” says it’s more like seventy-five. I don’t know what to think anymore…so I guess I’ll just follow LeBron’s tweets and stare at his new blank website until the end of the week to get a better idea of what’s going to happen, whenever it does.\n(Update: LeBron’s will announce his decision on ESPN, Thursday, at 9pm…hang in there until then Cavs fans)."} +{"text": "How to avoid the pitfalls of your previous studio experiences—and vastly improve your chances to get your song published with major A&R representatives.\nStephen McElligott reminisces about a recording he made of one of his songs in a local studio. “I wasn’t happy with that production, really,” he recalls. “I thought, ‘Oh gosh, how am I gonna save this?’ I basically turned around and found Studio Pros and thought, ‘Brilliant, they’re my savior.'”\nMcElligott has been playing music since he was seven years old. He wrote his first song at 16 and soon began playing in clubs and venues around Ireland and Scotland. His music is influenced by music that spans many decades, from The Beatles to Glen Hansard. But after years of writing and performing, McElligott still hadn’t achieved a major goal: recording a professional sounding, radio-quality version of his songs. “I’ve worked with musicians before, and it’s like wearing a blindfold when you take them into the studio because you’ve gotta pay them, and you don’t know how good they are, you haven’t really heard their stuff,” he explains.\nRecording A Song Professionally Without Breaking The Bank\nThe Irish guitarist/singer/songwriter had been in need of a polished, professional recording solution that wouldn’t break the bank. Plus, he was hoping to have better luck submitting his music to TAXI to get song placements and licensing opportunities. He stumbled upon Studio Pros while searching online for recording studios and decided to learn more. “I clicked on it and thought, this is cool, and it’s affordable,” he says. “I had a listen to some samples and thought it was brilliant. I really needed this with the budget I’m on. I would spend 250 Euros on a musician for a day in the studio, whereas Studio Pros is only $150. I thought it was fantastic—it’s not often that you get to work with really good professional musicians, you know?”\nListen to Stephen’s track “She Blew Me Away,” produced by Studio Pros:\n“With Studio Pros, they give you a listen to the musicians’ capabilities, what they’re able to do, and the versatility that the musicians there have. And that really was the winner for me. It was the overall sound even more than the price.”\n“The price was a bonus!” he adds. The convenience and the time it saved by working with Studio Pros was also a big factor for McElligott. Normally, making a recording was a process that could take weeks. Now, he could let the Studio Pros musicians do the heavy lifting while he spent his time doing more important things. “Studio Pros is really easy with the turnaround time of two days, and that’s not even counting if you expedite your recording,” he says. “I just thought that was fantastic. When I record, it takes a lot of time, and Studio Pros took that time off my hands. It was brilliant! I could spend time with my kids at home while my stuff was getting recorded. There was no hard work that really had to go into it, it was just a very easy process.”\nAccess Your Online Recording Studio Wherever You Go!\nMcElligott didn’t even have to work exclusively out of his home, either. “You could work from anywhere in the world,” he says. “It wasn’t like you had to travel to such and such studio and get out your gear and get all the musicians in, get them flights, get whoever you needed from whatever country. It was like I could do this from anywhere in the world. I could have my audio interface and I could do a recording and just send it off. And with the quality of the sound engineers there, it makes it all the more easy.”\nIt was precisely the recording engineers that would play a hand in passing McElligott’s final test: submitting his songs to independent A&R company TAXI. Luckily, where his previous recordings hadn’t made the cut, his Studio Pros productions did. “The songs were just coming back from recordings I did in studios over here,” he remembers. “They were getting returned with bad reviews because of the quality of the sound. I submitted my Studio Pros version and I got a nice 9 out of 10! The quality was right up there.”\nMcElligott is planning on recording the rest of his EP with Studio Pros, then hitting the road to go on tour. “I need to get the musicians to do what Studio Pros did,” he adds with a laugh."} +{"text": "What is it?\n- Unpaid work\n- Generally with not-for-profit or community based organisations both in Australia and overseas\n- Can also be positions of responsibility within clubs and societies, many of which can be found on campus\n- Can be related to either personal or professional interests and goals\nWhy do it?\n- To gain valuable experience and put your skills to work in a field related to your studies\n- To develop your employability skills\n- To develop contacts in a field relevant to your career goals\n- To make a contribution to society in accordance with your personal values\n- To help your resume stand out from the crowd\nGraduate employers prefer to hire 'well-rounded' graduates. This means they look for graduates who have not just performed well academically, but have been engaged in a variety of activities other than their studies.\nChoosing a Volunteer role\nWhen choosing a place to volunteer look for a role and a cause that you feel passionate about. Your volunteering is more likely to be successful and rewarding if you do. To help you choose a role you should find out:\n- What the organisation does and what it stands for. Think about whether it is somewhere that you would like to volunteer. Will you fit in with them? Look at their website, previous projects or annual reports, and read their vision and mission statements to find out more about them.\n- What types of opportunities are available and do they match your skills and interests? Perhaps an opportunity to gain skills and experience related to your degree? An opportunity to explore career ideas?\n- How much supervision, support and training are provided to volunteers?\n- Does the organisation have adequate insurance to cover you for the volunteer work you will be undertaking with them and appropriate volunteer policies in place?\nYou should also think carefully about how much time you are able to or willing to commit to the position. Are you looking for a volunteering position that is long term or short term? Will it be a continuing obligation or just a one-off involvement? Make sure you can balance your studies, volunteer, work and social commitments.\nVolunteering Australia has produced a Volunteer Rights & Volunteer Checklist (PDF) which you should look at when considering a volunteering role.\nWhen considering volunteering overseas check out Choice ‘Volunteering abroad’ and Choosing a Volunteering Agency (Australian Volunteers International).\nFurther information about unpaid work and the Fair Work Act is available from the Fair Work Ombudsman.\nWhere do I find it?\nThere are thousands of opportunities advertised on national and international volunteering websites. If you are interested in a specific cause you could try searching on the internet for organisations that address or respond to issues related to that cause in the country you would like to volunteer. If you have decided on the sector where you might like to volunteer, you could consider contacting an organisation within the sector and asking about volunteering opportunities. For example, in the health sector, contacting a local hospital or community health service, or in the environment sector enquiring at your local council and other environmental organisations both locally and nationally.\n- Search for volunteer positions on Sydney CareerHub.\n- GoVolunteer is an online tool provided by Volunteering Australia which you can use to search for volunteer positions in Australia.\n- The Australian Council for International Development lists volunteer opportunities with non-government organisations\n- University of Sydney Clubs and Societies these groups offer a range of opportunities including specific positions and support roles.\n- The V Team is managed by the University of Sydney Union and offers a wide variety of volunteering opportunities on campus and in the local community.\n- Use your networks to create your own opportunities in a relevant field, for example, if you are a member of a sporting club you could volunteer to create a newsletter for members or assist them with their bookkeeping"} +{"text": "December 06, 1787\nTo the People of Connecticut.\nIf the propriety of trusting your government in the hands of your representatives was now a perfectly new question, the expediency of the measure might be doubted. A very great portion of the objections which we daily find made against adopting the new constitution, (and which are just as weighty objections against our present government, or against any government in existence) would doubtless have their influence; and perhaps would determine you against trusting the powers of sovereignty out of your own hands. The best theory, the best philosophy on the subject, would be too uncertain for you to hazard your freedom upon.\nBut your freedom in that sense of the expression (if it could be called sense) is already totally gone. Your Legislature is not only supreme in the usual sense of the word, but they have, LITERALLY, all the powers of society. Can you—can you possibly grant any thing new?—Have you any power which is not already granted to your General Assembly? You are indeed called on to say whether a part of the powers now exercised by the General Assembly, shall not, in future, be exercised by Congress. And it is clearly much better for your interest, that Congress should exercise those powers, than that they should continue in the General Assembly, provided you can trust Congress as safely as the General Assembly.\nWhat forms your security under the General Assembly? Nothing, save that the interest of the members is the same as yours. Will it be the same with Congress? There are essentially only two differences between the formation of Congress and of your General Assembly.—One is,—that Congress are to govern a much larger tract of country, and a much greater number of people, consequently your proportion of the government will be much smaller than at present. The other difference is—that the members of Congress when elected, hold their places for two, four, and six years, and the members of Assembly only six and twelve months.\nThe first of these differences was discussed pretty fully in the first number, (when there was no idea of proceeding thus far on the subject)and has all the force as an objection against the powers of Congress, that it would have if applied to a proposal to give up the sovereignty of the several towns of the state, (if such sovereignty had existed) and unite in state government.\nIt would be only a repetition to enter into a consideration of this difference between Congress and your assembly.\nIt has been suggested that the six or eight members which we shall send to Congress will be men of property, who can little feel any burthens they may lay on society. How far is this idea supported by experience? As the members are to pay their proportion, will they not be as careful of laying too great burthens as poorer people? Are the rich less careful of their money than the poor? This objection would be much stronger against trusting the power out of your hands at all. If the several towns were now independent, this objection would be much more forcible against uniting in state government, and sending one or two of your most wealthy men to Hartford or New-Haven, to vote away your money. But this you have tried, and have found that assemblies of representatives are less willing to vote away money than even their constituents. An individual of any tolerable economy, pays all his debts, and perhaps has money beforehand. A small school district, or a small parish, will see what sum they want, and usually provide sufficiently for their wants, and often have a little money at interest.\nTown voters are partly representatives: i.e. many people pay town taxes who have no right to vote, but the money they vote away is principally their own. The towns in this state tax themselves less willingly than smaller bodies. They generally however tax themselves sufficiently to nearly pay the demands against them within the year, very seldom raise money beforehand by taxes. The General Assembly of this state could never be induced to attempt to do more than pay the annual interest of what they owe, and occasionally sink very small parts of the principal, and they never in fact did thus much. And we are all witnesses that they are full as careful of the public money as we can wish. It never was a complaint that they were too ready to allow individuals large sums. A man who has a claim against a town, and applies to a town-meeting, is very likely to obtain justice: But he who has a claim against the state, and applies to the General Assembly, stands but a poor chance to obtain justice. Some rule will be found to exclude his claim,—or to lessen it,—or he will be paid in a security—not worth half the money.\nYou have uniformly experienced that your representatives are as careful, if not more so, of your money, than you yourselves are in your town-meetings; but still your representatives. are generally men of property, and those of them who are most independent, and those whom you have sent to Congress, have not been by any means the least careful."} +{"text": "The mere fact that you’re reading this review probably indicates that you own a few gadgets. And with gadgets come charging cables and stands. If your house is like mine, you probably have more charging cables than you have outlets. With so many cables, it’s hard to keep my charging area tidy. And since Apple likes to keep everything white, it’s sometimes difficult to keep the iPod charger and the iPad charger straight. A single device that can charge multiple gadgets helps simplify my charging setup, so I was happy to give the XtremeMac Incharge Duo for iPad charging station a try when they offered one to The Gadgeteer for review.\nAll the pictures in this review can be clicked for an enlarged view.\nWhat’s in the Box\nInCharge Duo for iPad docking stand\nTwo removable converters: one for iPad, one for iPhone/iPod\nDock inserts for a variety of iPhones and iPods\nAC power supply with a 2-prong wall adapter for US\nThe InCharge Duo for iPad is made of black plastic with dark gray accents. The base has two standard Apple docking connectors. You easily convert the charger from an iPhone/iPod plus iPad charger to a dual iPhone/iPod charger using the two large, removable covers for the back of the InCharge Duo. There are a variety of inserts for the docking wells to support an iPod Classic, iPhone 3G, iPhone 4, iPod nano 5th gen, or iPod touch 2nd gen. You get one each of these inserts.\nThe manual says that the front dock charges at 1 amp for iPhone/iPod. The rear dock charges at 2.1 amps for the iPad, but it can adapt to charge at 1 amp if you have the InCharge Duo set up for charging two iPhones/iPods. There is no switch for the back dock to toggle it between 1 amp and 2.1 amps. I also looked at the two plates for the back part of the InCharge Duo, but I couldn’t find a peg that depresses a switch to change the charging amperage. The manual lists the iPods and iPhones that can be charged on the back dock: iPod nano 1st, 2nd, 3rd, 4th, and 5th generations; iPod Classic 160GB 2009; iPod touch 1st and 2nd generation; iPhone, iPhone 3G, iPhone 3GS, iPhone 4. (iPod touch and iPhone models must be iOS 3.0 or later.) All models not listed here charge on the front dock only.\nThe InCharge Duo came with the iPad converter in place. You can see in this photo the iPhone/iPod converter as it is being put on. The front tabs have been placed in the slots, and it is being dropped into position. It’s held in place by friction. To remove the converter, pull up on the back corners.\nI put the touch 2nd gen insert into the front charging well and the iPad converter on the back of the InCharge Duo for my first attempt at charging two devices. I had to remove my touch from its tiny Belkin Grip Vue case to fit it into the adapter. I also had to remove my iPad from its case to fit it into the iPad charging dock. I don’t think any case other than a sticker-type skin will fit with the InCharge Duo.\nThere are two charging status LEDs on the front of the InCharge Duo. The left LED shows charging status for the device in the front dock, and the right LED is for the back dock. The LED is orange to let you know the device is docked properly and is charging. When the battery reaches about 95% full, the LED turns green.\nIf you want to charge two iPhones/iPods, you may have to supply your own in-well adapter for the second device. We don’t have iPhones, but we do have multiple iPod touch 2nd gens and a nano 6th gen. There was no adapter for the nano (didn’t fit into the one for the 5th gen), and only one adapter for the touch. We did have an old iPod that fit the adapter for the Classic. Luckily, my touch is using iOS 4, so it could charge on the back dock. Both iPods charged on the InCharge Duo with no problems.\nThe XtremeMac InCharge Duo for iPad is a great addition to your charging area when you own a variety of Apple iOS devices. You can charge two devices at once using a single outlet. You can also easily convert the iPad dock into a second iPhone/iPod dock to increase the usefulness."} +{"text": "After nearly fifteen years I still contemplate those two dreadful swatches of winter and spring with undiminished horror. One was either sleeping, eating, prepping for a test or taking a test; and both sleeping and eating were curtailed in order to leave more time for prepping.\nOnce, halfway through the ordeal, a friend persuaded me to unwind by leaving campus and heading into Boston to spend the afternoon at the Museum of Fine Arts. Unfortunately, I was an art history major. Instead of losing my cares for a couple of hours in the loveliness, after fifteen minutes I had a panic attack in front of a Renoir and fled back to my books.\nOctober has felt a bit like that. I was either traveling to something or from something; or packing something; or shipping something; or drawing something; or photographing something; or writing something; or signing something; or writing about traveling or packing or shipping or drawing or writing or signing.\nNotice, among all those -ings, the absence of knitting.\nNot that there wasn't any. It's just all been small and simple, and some of it (like the patterns for the next column in Knitty) I can't show you in advance or Amy Singer will get all huffy.\nBut I am heartily sick of not blogging about knitting. Today, although a gaggle of -ings has clustered around my ankles to scream for attention, I'm shutting them all in the bathroom so I can show you the latest sweater for Abigail.\nThe knitting itself is as plain as plain gets: Baby Pullover #214 from always-reliable Knitting Pure and Simple. Top-down, raglan sleeves, highly recommended without reservations. My only changes were to work a seed stitch collar and cuffs, instead of rolled stockinette.\nThe yarn, Lorna's Laces Shepherd Worsted in \"Aslan,\" was pretty all by itself. But when the sweater was finished I wasn't happy with it. Handsome, sure. But dull. No dash. No surprise. A dish of ice cream with no cherry on top. Rock without roll. Mary-Kate without Ashley.\nDuring my infrequent, unoccupied moments at home I'd pick it up and turn it over and squint at it, and then throw it back into the workbasket. I briefly considered slicing the front to make a cardigan with Fun Buttons, but I've had no time to shop around for Fun Buttons.\nThen I opened one of the doors on the stash cupboard to hunt for something and three or four small balls of leftover Dream in Color from Abigail's Tulip Jacket fell out. The memory of a bird I'd seen pecking at a bush on Fremont Street knocked up against the memory of a embroidering the Baby Kimono, and a Eureka Moment ensued. (Passers-by in the street heard only a soft popping sound, but for me it was a great relief.)\nI consulted briefly with my embroidery books, made a few preliminary sketches, and turned the pullover into \"Bird and Berry.\"\nOne sleeve, the back, and the front all have the same sort of vine growing from the bottom up. It's just a feathered chain stitch with two-stitch \"berries\" sprouting at random.\nOn the front, one of the vines has a little brown bird perched on top, with a berry in its beak.\nIf you haven't tried embroidering on a piece of knitting, I highly recommend it. I liken it to working cables. For example:\n- a well-chosen motif can add immensely to the success of a project;\n- it's much simpler to do than it looks, given a little study and practice, and;\n- to the uninitiated, it looks like magic, and you are not required to disillusion them.\nLittle Book News\nThe hometown launch for It Itches happened on Sunday at Arcadia Knitting an oh, what a merry crowd. It was a charge to stand in the same spot where'd I'd seen Debbie Stoller and Stephanie Pearl-McPhee talk about their work, and read aloud from mine. I wanted to hug everybody who took the time to come say hello. I think I probably did hug about three-quarters of you. I'm turning into the Leo Buscaglia of knitting.\nWord is that the book is hitting the store shelves and (finally) landing in the mailboxes of those who placed pre-orders back when it was nothing but a pile of crumpled, ink-stained paper with a terrified cartoonist in the middle.\nI spotted it in the wild for the first time at the Borders on State Street, and because I am a shameless, sentimental geek I took a picture. Sue me.\nHoly crap. Right there next to Louisa Harding. And me, just a simple girl from Kansas with a pair of tap shoes and a dream.\nMeanwhile, several folks have been kind enough to write about it, including The Knitting Scholar, who gave me the royal treatment–an interview and a review. I've also chatted about it on \"Ready, Set, Knit,\" the WEBS Podcast; and the KnitPicks Podcast.\nThe Guys with Yarn 2009 Calendar is back in the Etsy shop, and a new batch of prints and gift enclosure cards will follow on Monday. The 2008 tree ornament and its ancestors are still available in the Cafe Press shop, where I'm hoping to launch new variations on the 1,000 Knitters bags and shirts this week."} +{"text": "Review: Del Taco Turkey Tacos\nFor those who know me, it’s no surprise to hear that Del Taco is one of my guilty pleasures. I avoid most fast food, but Del Taco’s tasty little tacos keep me coming back for more. They’re cheap, crunchy, and addictive; despite their poor nutritional qualities. So imagine my surprise when I pulled into Del Taco for some lunch the other day and found they were offering ground turkey tacos! What? Ground turkey? A “healthy” option at my fast food chain? That’s gotta be a first in the industry. The sign said 33% less fat than their regular beef tacos, and I was sold.\nNew Turkey Tacos at Del Taco are Delicious\nI ordered a couple of the turkey tacos, and a few of my traditional beef hard shell tacos and took my seat with haste. I unfolded the paper wrapper on my first turkey taco and found a perfectly constructed taco half-filled with ground turkey, the other half with lettuce, cheese, and pico de gallo. It looked delicious. I added a little hot sauce on top and took a bite. Crunch! Chew, chew, mmm…..\n“What is that on my tongue? There’s actually texture to the meat, like what I’d expect from a ground meat taco. And there’s…..FLAVOR!” These turkey tacos are full of delicious flavor. A nice clean tasting spiced meat. I devoured taco number one and promptly bit into taco number two. But then I remembered that I wanted to compare the standard beef tacos to the new turkey version, so I put the turkey down and opened up its little beef brother.\nWhat a disappointment! My once favorite fast food taco now tasted like crap. The first note on my tongue was of undiluted beef bouillon. The next, cheap meat. But the texture was what really disappointed me. It was more like canned dog food than ground beef. What the hell just happened here? I loved these little beef tacos, but now all I wanted to do was to throw them on the floor, yell at them, and replace them with turkey tacos!\nDel Taco Turkey Tacos Come in Two Different Sizes\nOn my way out, I asked the store manager a couple questions about the turkey tacos, namely about size comparisons with the beef taco. She informed me that the advertised turkey tacos are the equivalent size to the double beef Classic taco. She then informed me that they also offer a Value Turkey Taco version for $0.89 that is equivalent to the regular beef taco ($0.59). Sweet! I went back the next day and ordered some of each to compare. Here’s how the two look side by side:\nAs you can see, there is a substantial difference in the amount of filling. But for $0.40 more, is the larger turkey taco worth it? Well, I guess that depends on your taco preferences. Both are delicious, and both are significantly better tasting than the beef versions. But I think I like that larger turkey better because there is more meat/flavor to each bite. Oddly enough, the pico on it doesn’t really do much for me. In fact, I found the flavors of it distracting against the turkey. But me being me, I ate it anyway. So if you want more crunch and are looking to cut cost, go with the Economy taco. Otherwise, sink your teeth into the happy grown sibling bird.\nDel Taco Turkey Taco Nutrition\nDon’t get fooled thinking these tacos are good for you. They’re still from a fast food restaurant, and are filled with sodium, fat, sugars, and wheat and soy fillers. But compared to their beef counterpart, these are actually pretty decent. Del Taco hasn’t published the Value version nutritional information yet, but here’s the regular version’s info with a comparison to the classic beef:\nSo there you have it. 33% less fat, and 25% less calories than the Classic Beef Taco. Del Taco’s Turkey Taco is better tasting, and is a healthier pick as well. I’m sold and am in love. $1.29 is quite a bit more than the $.59 regular beef tacos at Del Taco, but it is worth every penny both in flavor and calorie reduction. You have a winner here Del Taco. I hope you keep turkey on your permanent menu!\nThe Bald Gourmet loves the new Turkey Tacos at Del Taco.\n2 Comments + Add Comment\nI love hearing from my readers, so please go ahead and leave a comment!\n- The Bald Gourmet on Recipe: Honey Molasses Wheat Bread\n- les on Recipe: Honey Molasses Wheat Bread\n- LaVon Grandy on What are Elderberries?\n- Chris on Recipe: Best Home Canned Thick and Chunky Salsa\n- debbie mccaffrey on Review: Safe Catch, The First 100% Mercury Tested Albacore Tuna. The New Whole Foods of the Sea."} +{"text": "Flirting comes in many forms: a casual gaze that lingers a half second longer than necessary, a light touch, an amorous expression, an overenthusiastic laugh during conversation, or even some playful or overtly sexual banter.\nRegardless of the technique employed, flirting aims to fulfill one purpose: stimulate sexual interest. To be clear, though, flirting may not have the explicit goal of having sex or even physical intimacy of any kind. A person may flirt simply to pass the time, to feel close, to see if they’ve still got it or because it’s fun. Flirting motivations differ by gender. Big surprise: men’s flirting is more motivated by sex, while women’s flirting is more motivated by having fun or becoming closer to another person.\nSelf-esteem and flirting\nWhen done well, flirting is not overt or obvious and always leaves open the possibility that flirting wasn’t occurring at all. This ambiguity allows people to put themselves out there with less fear of embarrassment, rejection or damaged self-esteem.\nIt isn’t surprising that a person’s self-esteem may affect how she or he approaches flirting. When the risk of being rejected is high, men with high self-esteem use more direct techniques than those with low self-esteem, perhaps because they’re less concerned with how being shot down may affect them. However, men with low self-esteem are bolder and use more obvious approaches than men with high self-esteem when the target is clearly interested and rejection risk is low. This may be because encountering a sure thing is one of the only contexts in which a guy with low self-esteem feels safe making advances, so he has to make it count.\nWhen rejection risk is low for women, they’re more direct regardless of their self-esteem. Women traditionally initiate relationships less often than men, so when the chance arises perhaps women decide to throw caution to the wind and just go for it. Of course it is also possible that women are using the technique that they know works better when men try to flirt with them.\nSubtle vs. direct\nMuch like a tree falling in a forest, if a flirting attempt occurs and the intended receiver doesn’t realize it, did flirting ever really happen?\nWhen it comes to flirting technique the research is pretty clear: while subtlety is more likely to protect the flirter’s self-esteem, if you really want to get your message across, direct is best. A study asked college students about the most effective ways to show interest in someone. Both men and women agreed that subtle flirting was less likely to get the job done, and that the best approach would be a direct “Do you want to go to dinner with me?”\nA key benefit to direct flirting approaches, especially for the person on the receiving end, is that they are clear and easier to interpret. Protect your ego too carefully by maintaining complete deniability and you run the risk of no one receiving your too-subtle signals.\nNow you see it, or maybe you don’t\nTo see how easy it is to accurately perceive flirting, researchers gave more than 100 heterosexual strangers the opportunity to interact for ten minutes. Afterwards, each participant indicated whether they were flirting or not and whether they thought their partner was flirting.\nOverall, almost a quarter of the participants flirted during their interaction. But participants accurately perceived that flirting only 28% of the time, with males more accurate at detecting female flirting (36%) than females were at detecting male flirting (18%). Those numbers are all fairly low, but people were much better at knowing when their partner was not flirting, accurately characterizing lack of flirting 84% of the time. Of course, this could be because most of the time participants weren’t flirting, making it easier to correctly guess that a participant wasn’t making eyes.\nAre outside observers any better at detecting flirting than participants are? Researchers had more than 250 people view one-minute video clips from the earlier interactions to see if they could accurately identify flirting in strangers. Observers who simply watched the interaction were even less accurate at identifying flirting than those who were actually involved. Once again, males were more accurate at recognizing when women flirted, but men generally tend to overestimate women’s interest, giving them more of a chance to be correct when women actually were flirting.\nAcross both studies, the ability to detect flirting was probably lower than any flirty person would like. But as lead researcher Jeffrey Hall explains:\nBehavior that is flirtatious is hard to see, and there are several reasons for that. People aren’t going to do it in obvious ways because they don’t want to be embarrassed, flirting looks a lot like being friendly and we are not accustomed to having our flirting validated so we can get better at seeing it.\nThe science of flirting suggests that when you want to create sexual interest in another person and really want to get your message across, don’t mess around. Direct methods are best. An ambiguous approach is less threatening, but ultimately not very effective. People just aren’t very good at perceiving flirting."} +{"text": "August 10, 1915. The Gallipoli sun beats down on the back of a Turkish sharpshooter. He is patient and used to the discomfort. He wipes the sweat from his eyes and peers back down the sight of his rifle, sweeping back and forth across the enemy lines. He’s hoping to spot a target worth taking a shot at as each muzzle flash risks giving his position away.\nHis sight settles on the shoulder pip of a second lieutenant. The target bends down out of sight, then reappears, now with a phone at his ear. He stands still as he sends his dispatch. It’s an easy shot for the sniper. He squeezes the trigger and yet another young man dies.\nThe Turkish soldier settles down in his hole, pleased with his marksmanship. He wonders if he’s made a significant difference to the war effort (probably not).\nHowever, he may well have caused the single most costly death of the entire war. His victim, now lying in a trench on a peninsula in Turkey, is 27-year-old Henry Moseley. The loss to science is incalculable.\nDespite his young age, Moseley had already made a stunning contribution to chemistry and physics. It is thanks to him that that the periodic table looks the way it does today.\nHe had graduated from Oxford just five years before his death. Immediately after graduating he was employed as a teaching assistant by the great physicist Ernest Rutherford in Manchester. Moseley hated it, describing his duties as “teaching elements to idiots” and his students as “mostly stupid”. His real passion was research, so in his spare time he used his energies to set up his experiments.\nMoseley was working in an era of physics that was concerned with the power of X-rays. The Braggs, a father-son team working in Leeds, were developing X-ray crystallography. This allowed science to probe the atomic structure of molecules.\nBut instead of jumping on that bandwagon – shining X-rays at crystals to work out chemical structures – Moseley turned his attention to the elements themselves. He studied the X-rays the elements gave off when bombarded with electrons. His results had major implications for the famous periodic table in which elements are presented.\nBack in 1869, Dimitri Mendeleev arranged the elements in a logical fashion. He ordered them by weight and then laid them out in a table. Next he shuffled the dimensions of his table to take similarities of elements into account. For example, lithium, sodium and potassium have similar chemical properties and were arranged in one group on a line of the table (modern tables have been flipped so that these groups are now in columns).\nLikewise for fluorine, chlorine, bromine and iodine. And so the periodic table was born. The elements were now arranged in a clear sequence – and each was given an atomic number denoting its position in that sequence. But there were a few problems, some elements didn’t quite fit the order. Their behaviour suggested one position in the table, but their atomic weight put them somewhere else. So the atomic weight and atomic number of the elements didn’t quite correlate.\nIn Manchester, and later in Oxford, Moseley took samples of all known elements, from aluminium to gold, and measured the X-rays they gave off after bombarding them with electrons. He discovered that each element emitted a distinct frequency of X-rays, and that this frequency correlated with the atomic numbers. When he plotted the square root of the frequency, against the atomic number everything fell into straight lines on his graph.\nFor the first time it became clear that an element’s atomic number, corresponding to its position on the table, had a basis in physics and was not merely a convenient label. And that these numbers (confirmed by Moseley’s measurements) resolved the previous issues with the periodic table. He also noted points missing from his graph and surmised that these gaps must be due to yet-to-be discovered elements. It was wasn’t until 30 years after his death that that the last of Moseley’s missing elements were discovered.\nMoseley’s achieved all this in a research career lasting just 40 months. At the outbreak of war in 1914 he signed up, becoming a signalling officer in the Royal Engineers. Had he survived, it is likely he would have been awarded the 1916 Nobel Prize in Physics (as it was no Nobel Prize in Physics was awarded that year). There is no telling what other breakthroughs might have been achieved in the alternative history in which he survived the war.\nThere is one more legacy that Moseley left. His death raised the question of whether great minds such as his should really be risked on the battle field. Despite the war, the international scientific community was outraged at the loss of such a renowned scientist, who still had so much to offer.\nFrom then on scientists were used in a very different way in wars. For better or worse scientists in the next great war developed penicillin, radar, programmable computers and, of course, the Manhattan project. All these inventions had much greater impacts on World War II than any of the individuals involved could have made at the front line."} +{"text": "Emmy(R) Award-Winning Director and Actor Charles S. Dutton ('The Corner,' 'Roc') to Star in and Direct the Lifetime Original Movie 'Racing for Time'\nInspired by the True Story of Noel Chesnut\nCo-Starring Elizabeth Pena ('Resurrection Blvd')\nBEVERLY HILLS, Calif., July 12 -- Emmy(R) Award-winning\ndirector and actor Charles S. Dutton (\"The Corner,\" \"Roc\") will star in and\ndirect the upcoming Lifetime Original Movie \"Racing for Time.\" The\ninspiring and uplifting story is about a male prison guard who creates an\nunconventional sports program for some of the toughest and most violent\nfemale offenders at a juvenile correctional facility in an attempt to teach\nthem teamwork, discipline and self-esteem. \"Racing for Time\" will premiere\nin 2008 on Lifetime Television.\n\"This is a powerful, uplifting story that demonstrates the difference\nthat one person can make by giving hope to outcasts in society,\" said\nSusanne Daniels, President, Entertainment, Lifetime Networks. Adding,\n\"Charles Dutton's incredible passion for this project is truly inspiring.\"\nIn \"Racing for Time,\" Cleveland \"Stack\" Stackhouse (Dutton) is a guard\nwith the Texas Correctional Youth Authority who witnesses the cycle of\ndestructive choices and racial tensions among female teen offenders and\ndecides to do something about it. He gathers African-American, Latina and\nCaucasian teens, and organizes a multi-racial track team behind the bars of\nthe prison. Participation in Stack's track team not only breaks down the\nracial divides between the girls, but puts them on a path to turn their\nCharles S. Dutton won two Emmy(R) Awards for guest-starring roles in\nthe dramas \"The Practice\" and \"Without a Trace\" and another Emmy(R) for\ndirecting the HBO miniseries, \"The Corner.\" He has received Tony(R)\nnominations for \"The Piano Lesson\" and \"Ma Rainey's Black Bottom.\" He also\nreceived an NAACP Image Award for \"DC Sniper\" and an Image Award for \"Roc,\"\nfor which he also served as executive producer.\nDutton has numerous feature film credits including \"Against the Ropes,\"\nwhich he also directed; \"A Time to Kill,\" \"Mississippi Masala,\" \"The\nDistinguished Gentleman,\" \"Menace II Society,\" \"Rudy,\" \"Cry, the Beloved\nCountry,\" \"Random Hearts\" and \"Secret Window.\"\nOn television, Dutton most recently starred in the CBS series\n\"Threshold.\" He also starred in the Emmy(R) Award-winning movie \"Something\nthe Lord Made\" and Emmy(R) Award-winning miniseries \"The Murder of Mary\nPhagan.\" He appeared in the miniseries \"The '60s,\" \"For Love or Country:\nThe Arturo Sandoval Story,\" \"Deadlocked,\" \"The Piano Lesson\" and the\ntelevision movies \"Zooman,\" \"10,000 Black Men Named George\" and \"DC Sniper:\n23 Days of Fear.\"\nElizabeth Pena is an award-winning actress who starred in the Showtime\ndrama \"Resurrection Blvd\" for three seasons. She also won rave reviews for\nher starring role in the CBS telefilm \"Suburban Madness.\" Pena just\ncompleted the independent film \"Por Vida\" directed by Alan Jacobs and also\nstarring Danny Glover. Her list of film credits include the award winning\n\"Transamerica,\" \"The Lost City,\" \"Down and Out in Beverly Hills,\" \"La\nBamba,\" \"Jacob's Ladder\" and \"Rush Hour.\"\n\"Racing for Time\" is produced by von Zerneck Sertner Films, Tiara Blu\nFilms and Harbor Lights Productions for Lifetime Television. Diane Nabatoff\n(\"Take the Lead,\" \"Knights of the South Bronx\"), Rocky Lang (\"Titanic\" -\nthe television miniseries, \"White Squall\"), Frank von Zerneck and Robert M.\nSertner (Lifetime's \"Fatal Desire\" and \"We Were the Mulvaneys\") are the\nexecutive producers. Charles S. Dutton (\"The Corner,\" \"Against the Ropes\")\ndirects from a script written by Glenn German and Adam Rodgers (\"We'll Take\nManhattan\"). Dutton is also co-executive producer.\nDutton is managed by Sherry Marsh from Marsh Entertainment and repped\nby Bob Gersh. Pena is repped by Rugolo Entertainment and Innovative.\nLifetime is the leader in women's television and one of the top-rated\nbasic cable television networks. A diverse, multi-media company, Lifetime\nis committed to offering the highest quality entertainment and information\nprogramming, and advocating a wide range of issues affecting women and\ntheir families. Lifetime Television, LMN, Lifetime Real Women and Lifetime\nDigital (including LifetimeTV.com) are part of Lifetime Entertainment\nServices, a 50/50 joint venture of The Hearst Corporation and The Walt\nSOURCE Lifetime Television"} +{"text": "It’s customary for families to gather together, eat, sing and have a piñata at the party. Sometimes people celebrate posadas by going from home to home, singing the traditional song to ask for lodging the way Mary and Joseph did. But whether you travel around to different homes or stay in one place, there are certain elements of your family’s posadas that you inevitably love more than anything else, and will always try to recreate as you grow older, and especially as you have children so you can teach them your family’s traditions.\nFor me, the most beloved posadas tradition is making ponche Navideño. Every year, even if I don’t have access to fresh ingredients, I do my best to find canned, jarred or frozen ingredients for the things I can’t easily find in the U.S. Even though I know I’ll have it when I get to Mexico, I feel it’s really important to perfect the recipe at home with available ingredients.\nI want our future children to know that it’s a Mexican Christmas staple and always have memories of the smell and taste. I want them to think of love and family and La Navidad when they think of ponche, just the way that I do. I always look forward to spending time with family in Mexico City during the holidays, and I know there will always be an abundance of ponche Navideño. It’s present at almost every family gathering but the most special thing about it for me is that it’s become a family tradition to make it together with my suegros, whom I adore con todo corazón.\nWe stand around the kitchen, my suegro chopping the caña (sugar cane), while my suegra takes care with the liquid measurements. I slice the guayabas and juice the oranges, add the canela and core the tejocotes. And before a few years ago when I finally put it on paper, our family recipe wasn’t officially written down anywhere with any information other than what should go in it. Learning how to make this family recipe with my suegros meant a lot to me in being able to eventually pass down this tradition.\nSo, last week when I was grocery shopping in a store I don’t usually frequent and I found a box of fresh tejocotes, I had tears in my eyes as I stood in disbelief in the middle of the produce aisle. This was the very first time I’d ever seen fresh tejocotes in a market near Chicago (also grown in the U.S., according to the box). Tejocotes have long been prohibited from being imported fresh from Mexico as a precaution due to the possibility of harboring exotic pests. Only in recent years have there been growers in the U.S. (mostly in California) who’ve begun cultivating crops of tejocotes, also known in English as Mexican hawthorn. I was surprised and overjoyed to see them in a local store. Though I was tempted to buy the whole box, I painstakingly picked through it to find the most perfect ones to add up to half a pound, just enough for one large pot of ponche.\nThis year, our family is still headed off on a vacation together as usual, but not within Mexico. As excited as I am to go somewhere new and experience new things, I can’t help but feel a little sad that I won’t be attending Tía Annette’s big posada Navideña in Mexico City.\nI’ll miss sipping ponche and café con rompope and eating galletas with my other tías while catching up on all the gossip I’ve missed since my last visit. I’ll miss our tío dangling the piñata over the garden for the kids from the second story window, laughing and smiling as he tugs it just out of their reach. I’ll miss seeing how much some of the younger cousins have grown up this past year. I’ll miss Tía Nene and her famous pastel de dátil (something I still need to learn how to make). I’ll miss the nochebuenas, which are much more beautiful and exotic-looking in their native Mexico. I’ll miss posing for a huge family holiday photo, comprised of four generations of our beautiful family.\nAs I write this, my kitchen is perfumed by the scent of ripe guayabas, waiting to be made into ponche this weekend. There are oranges, tejocotes, canela and ciruelas pasas. I still need to find some fresh sugar cane; I have a good idea of where to get it locally, but I’ve still got some in a jar as a backup. And though there will be no cousins, tíos, piñatas, pidiendo posadas or certain favorite holiday foods this year, the memories will swirl steadfastly in my heart and my kitchen as I stew a big pot of ponche before I jet off to my holiday destination.\n- What makes you think most of las posadas? This post is part of a blog hop about posadas. I encourage you to check out some of the other related posts about how others celebrate the holidays in Mexico. If you’ve written about posadas, please feel free to add a link to your post!…"} +{"text": "Clipper Gear Micro Light\nA simple and convenient gadget for your\nphone or key ring or anything/anywhere else\nStick one of these tiny flashlights on your phone or\nclip it to your keyring, or keep it in your purse (or\nYou never know when you might need a strong light in an\nemergency. This unit is so small it can be\ntaken anywhere and used anytime.\nI always travel with a tiny\nflashlight. Although I rarely need it, when I need it, I\ntruly need it. And I find its presence reassuring,\nespecially at night in strange cities, or on an underground\ntrain where you never know what would happen if the train lost\npower and got trapped in a dark unlit tunnel.\nHere now is a wonderfully\nconvenient, very small and lightweight, powerful micro light\npowered by two white LEDs. With long lasting batteries and\na low price of only $4.95 each, you should get one - or two, or three!\nGear's Micro Light is a very compact\nand lightweight device. It measures 2.25\" long, and\nis 1.2\" wide at its widest point. It is only 0.2\" thick at\nits thickest point. The unit weighs an imperceptible 0.2\nThese dimensions are\nimportant, because the Micro Light is designed to be placed on\nthe back of a mobile phone. It has a piece of double sided\nadhesive tape, which can be used to mount it on the back of most\ncell phones. However, the very tiniest phones will be too\nsmall to do this.\nThere is also a loop at the\nend opposite the two LEDs. In theory, this is to allow the\nunit to be placed on a key ring. In practice, the loop is\nfairly narrow and while it will fit on a thin sized key ring, it\nmay not fit so conveniently on a larger sized metal ring.\nThere is a single button on\nthe unit for turning the light on. The light is activated\nwhile the button is held down, and turns off when you release\nthe button. There is minimal danger of accidentally\nturning the light on and draining the batteries, because the\nbutton is small, slightly recessed, and requires moderately\npositive pressure to actuate.\nThe unit contains two small\nwatch type batteries to power it. Although you could in\ntheory replace them, in reality, it is a difficult job to do so,\nand the cost of two replacement batteries is amazingly similar\nto the cost of a new unit. Fortunately the batteries are\nlong lasting so the need to replace either the batteries or the\nunit is unlikely to be a regular occurrence.\nThe batteries are estimated\nto have a standby life of 3 - 5 years.\nThe unit is packaged in a\nsimple blister pack and is readily opened.\nThe unit is very easy to\nuse. Choose where to keep it, or, better still - choose\nwhere to keep them. I have them in various places around\nthe house, in my car, briefcase, and mounted on the back of my\nWhen you need it, simply\ntake it and press the button. Instant light.\nClipper Gear's Micro Light\nis amazing value. As mentioned above, the complete unit\ncosts little more than the batteries by themselves. Each\nMicro Light retails for only $4.95.\nWe like them so much we've decided to sell this unit ourselves.\nClick to go to our 'store' page\nwhere you can purchase one of more Micro Lights (they make a great gift!) using Paypal and charging to your credit card or bank\naccount. A single $2.50 shipping charge is added, no\nmatter how many items you buy\nor where in the world you'd like them shipped.\nYou'll get an invaluable accessory to simplify the\nmanagement of your cell phone name and number directory, and\nyou'll be supporting The Travel Insider at the same time.\nOther recommended cell phone accessories\nWe have two other products\nyou might also want to consider.\nClipper Gear Emergency Battery\nRecharger allows you to recharge your cell phone's battery,\neven if you're nowhere near a power source. If you're like\nme, your phone's battery always dies at the most inconvenient\nmoment. Keep one of these handy for the next such\nClipper Gear SIM Saver allows you to back up and transfer\nyour phone's SIM (or R-UIM) card phone book data. Great\nfor backup in case you lose/damage your SIM card or phone.\nThis is a lovely little\nmicro light that can be kept just about anywhere in case of\nemergency. It is low cost and has a long 3 - 5 year\nIf so, please donate to keep the website free and fund the addition of more articles like this. Any help is most appreciated - simply click below to securely send a contribution through a credit card and Paypal.\n21 Aug 2005, last update\n19 Dec 2013\nYou may freely reproduce or distribute this article for noncommercial purposes as long as you give credit to me as original writer."} +{"text": "While all eyes are focused on the looming October 17 deadline for Congress to raise the debt ceiling or force the country into default, the residents of the town where all the drama is happening are worrying about a different date: On or around October 13, the District of Columbia will run out of money to keep its own local government open.\nThe city council of Washington, DC, has no control over its own budget. Rather, since the roughly 600,00 residents of DC don’t have a governor or a state to call home, the city government of the District needs Congressional approval to spend money — money that it makes through local tax revenue, not U.S. taxpayer dollars. That approval is wrapped up into every budget that Congress passes and, when it doesn’t get a budget passed in time, the DC government is not allowed to spend, just like the federal government.\nThe only reason that the DC government didn’t shut down on October 1 is because Mayor Vince Gray (D) declared all city employees “essential” and tapped into the city’s “rainy day” fund to keep paying them until Congress got its act together.\nBut there’s not enough money in the fund to last until October 17th, when all hopes are that Congress will finally work out a deal to both fund the government and avoid default. Rather, city officials estimate that the rainy day fund will be tapped out by October 13. After that, the DC government will go into shutdown mode — meaning that fire departments, trash collection, some buses, the city’s university, and a host facilities and programs will be put on pause.\nOn Tuesday, Mayor Gray sent a letter asking for a meeting with President Obama, House Majority Leader John Boehner (R-OH), and Senate Majority Leader Harry Reid (D). He hopes to convince them to pass legislation that allows DC to spend its money freely during the remainder of the shutdown — and, moreover, to “decouple” Washington’s city budget from the federal government’s.\n“In no other part of our country are Americans facing the loss of basic municipal or state services due to the federal government shutdown,” he wrote.\nGray’s letter also pointed out that many of the city’s services are already feeling the consequences of the shutdown: Payments for Medicaid providers in the District are on hold, and DC failed to make its quarterly payment to the Washington Metropolitan Area Transit Authority this month. Gray also ordered city workers last week to start collecting trash from the parks that are owned by the National Park Service. They are already shut down, but since there’s trash inside the garbage cans there, there’s a growing problem of “rodents and other vermin.” That also means DC’s picking up the $58,000 bill for the work.\nThat could only get worse if DC can’t pay for its water and sewage authority, keep its unemployment benefit offices open (especially needed given the number of furloughed federal employees in DC), issue permits and licenses from the Department of Motor Vehicles, pick up trash and sweep the streets, or keep its brand new healthcare marketplaces established by Obamacare running.\nDuring the 1996 shutdown, Congress appropriated funds to keep DC’s city services running while they worked out a deal for the federal government. That’s a lesson they only learned, as Mike DeBonis points out in the Washington Post, after an earlier shutdown cost the city “$7.3 million in wages paid to employees who were not required to report to work, plus about $78.5 million in revenues that went uncollected or were collected late.”\nGray hopes that his meeting can convince Boehner, Reid, and Obama to do the same thing now — approve one-off legislation to allow DC to keep using its own funding to run the city. In fact, the House already passed emergency legislation that would do just that. But because House Republicans have used a so-called “piecemeal” approach to refund only the government programs they like, the Senate has thus far blocked any measure that would independently fund one thing without restoring funding to the whole government."} +{"text": "Imagine that its summer, 1959 in a major U.S. city. Let's call it Anytown, USA. Its a sweltering 96 degrees and the asphalt feels like its sticking to your shoes. Mom won't let you back in the house because \"its summer, and you need to go out and play with the other kids\". You're tired of playing Wiffle Ball. You're sunburned and sweat is running down your neck like a faucet. You just can't bear another second of this awful heat wave...and then echoing off of the buildings you hear the familiar jingle of the Mister Softee ice cream truck.\nLike every other kid, you quickly run home to BEG your Mother for a few cents for the ice cream man and quickly chase after him before his truck turns the corner and heads to the next block. Once you flag him down, you get your vanilla soft serve cone with sprinkles...and all is right with the world. Wiffle Ball can resume in 5 minutes. Batter up!\nThe ice cream truck has offered a sweet summer escape for millions of kids of all ages around the world for over 80 years. It doesn't matter what era you live in or what your age is, frozen desserts are a popular commodity and probably always will be. Here in the U.S. the three big names include Good Humor, Jack N' Jill, and of course Mister Softee. The Mister Softee company traces its roots back to West Philly and 1954. Two brothers named William and James Conway started the company with a Chevrolet panel van, a generator, and a soft serve machine. They sold shakes, cones, and sundaes all over Philadelphia and quickly made a name for themselves. Within two years the Conways branched out, ordered a fleet of trucks and spread across the East Coast. By 1958, franchises grew across the states. A British vehicle fleet manager visited the U.S. in 1957 and liked what he saw in Mister Softee, so he worked out a franchise deal and by 1959 the Mister Softee trucks became a familiar sight in West London and Kent, England. Even today, the company manages to turn a tidy profit by supplying a hungry public with the sweets they crave curbside from Chicago to China!\nDuring their heyday in 1959, Mister Softee ordered 800 ice cream trucks from the Boyertown Body Works in Boyertown, Pennsylvania. This company was located some 56 miles from the birthplace of Mister Softee himself, and was known for their long-standing tradition of quality workmanship dating back to 1872. The demands of the fleet business required a vehicle that was sturdy and dependable, but easy on the pocket book. A Ford truck would certainly meet those demands.\n|Boyertown Body Works Factory, 1956. Photo Credit: Coachbuilt.com|\n|Boyertown Body Brochure Cover, 1959|\n|Boyertown Truck Bodies Brochure, 1959|\n|From the Southern Missourian, August 6th, 1961.|\nYou can spot the Civil Defense logo affixed to the side of the Mister Softee truck in this collection of vintage television advertisements. It appears at :48 into this clip.\nWhy the heck am I yammering on about all of this stuff? Sarah and I came across a very unrestored example of a Boyertown-built 1958 Ford commercial truck in its original Mister Softee color scheme this summer at the McClean County Antique Automobile Club car show. Besides the fact that we dig old cars and trucks, this thing spoke volumes about the time period it came from. The artwork, the remains of a Civil Defense logo, the simple saying on the back warning motorists to \"watch for our children\", not just anyone's kids, but \"ours\". Here's a few shots of this time capsule as it appears today.\n|The Civil Defense logo appears on both sides of the truck.|\n|The Civil Defense Logo as it Originally Appeared.|\nThe current owner plans to restore it to functional condition and serve frozen goodies at car shows in central Illinois near old Route 66. Not a bad second life for an old workhorse, eh?\nThat's the strange tale of the American Mister Softee truck in the Cold War era. Being a Gen-X'er, I admire this relic from a time of neighborly responsibility and civic duty. The past seems like a time when people took things seriously, even selling ice cream. It was deeper than just frozen food...it was a sense of community. Could you imagine a business owner willing to lend his or her equipment, time and fuel to the government today to help the public stay alive during an emergency? Maybe. Maybe not.\nIs all of this worth writing a book about? Not really. Is it worthy of a blog post? Perhaps. All this talk about ice cream and the end of the world makes me want a hot fudge sundae. I think I even hear the ice cream jingle outside. Who's got any change?\nLearn more about Where Cars & Atomic Weapons Intersect\nLearn more about Boyertown Body Works\nLearn more about Mister Softee\nLearn more about Civil Defense Supplies"} +{"text": "Me? I'd always have the seven meals (for two) as I regard eating out as a social event rather than a stomach-filling one and following a visit to our nearest Michelin priced restaurant, I'm still happy with the choice I'd make.\nThe restaurant is based in a large villa just five minutes outside of Vence our nearest town and there were two things I was particularly keen to see; the decor which I was sure would be clean, modern and functional, and how Christophe presented his food. In Tourrettes, virtually every course was sprinkled with edible flower petals which gave the dishes a very colourful feel, possibly to give the impression that there was more on the plate than there actually was.\nI had joked that we might have to go for a burger afterwards as my memory was that whilst his food was very good, there wasn't much of it on the plate - true nouvelle cuisine! I needn't have worried.\nHowever, before we get to the meal itself, I had asked J to 'dress up' for dinner and true to form she appeared in her fox fur (the RSCPCA is not one of her chosen charities !). We drove into Vence and I entered our local Best Western, a small, indistinct little hotel on the edge of town.\n'Oh, how nice', she said in a voice which betrayed her utter disappointment.\n|Christophe at work|\nAfter parking the car and really trying to convince her that we were indeed going out for Valentines Day in a Best Western, I relented and drove on to Les Bacchenales.\nA nice log fire was burning and as soon as we were seated, a waiter presented a bottle of sparkling water, persuaded us to have the house cocktail (apple juice, champagne and candied rose petals) and pointed out the menu which was fixed and which I was reluctant to look at it as I was sure, fish would feature prominently. And it did.\nAnother waiter appeared and produced hot bread sticks with a dish of parsley pesto and parmesan which was a nice appetiser. Then another waiter provided us with two small bowls (like sake bowls) and announced that the three minute white specs were a special type of lard. He then proceeded to pour a thick beef soup into the bowls and pointed out that the accompanying spoons had a black truffle butter on them which should be stirred into the soup.\nThen the confusion began. The spoons were almost flat and any attempt to try and 'spoon' the soup out of the bowls ended with dribbles going everywhere. Should we just drink out of the bowls? I did, and J followed my lead but it was clear later on when other diners started their meal that the spoons should indeed have been used!\nNeither of these dishes (according to J) were on the menu which I still hadn't looked at - there was no point. What was going to be served, would be served. If fish arrived, I would do my best to eat it, after all it was costing me a small fortune.\nThen the fish arrived. A melange (mixture) of monkfish, prawn meat and clams, surrounded by sweet red onion petals and a small amount of salad leaves. Now I have eaten monkfish and prawns before but generally I choose not to. I also adore clam chowder but have never eaten a clam out of its shell.\nThe monkfish and prawn seemed hardly cooked but I ate it and I even tried a clam before depositing the rest on J's plate. Thankfully I was able to wash down the clam taste with some nice white wine. As my cousin Sue would say, 'what are you like'.\nI sat back enjoying the log fire and the quiet, reserved ambience thinking that I could now relax - the fish course was gone, but Christophe appeared at the table and proudly announced that the next course was Corsican Sea Bream. Aaaaaagh!\nActually, it wasn't at all bad. A meaty fish sprinkled with small cubed radish. I ate it. I wasn't too keen, I have to say, but I ate it. It's amazing what you'll do when you know it's costing the equivalent of a monthly wage of one of J's teachers in Kenya.\nMore white wine and then the main course was produced - a small piece of fillet steak poached in beetroot stock and resting on beetroot crisps and something else I didn't recognise the look or taste of. The meat looked distinctly uncooked but it was the colour of the beetroot which had made it look raw. Despite the fact that the knives were so blunt they were unable to cut the meat cleanly, it was so tender that the merest pressure caused it to fall apart - it was delicious, especially when washed down with a nice glass of claret.\n|Flower petals !!!|\nAs we drove home, I reflected on the fact that I am quite obviously a total pleb. I love good food but given a choice of a homemade quiche and frites in the Midi or a meal at Les Bacchenales, I know which I would go for, every time. Seven times actually!"} +{"text": "The Phillie Phanatic is the star of children's books and as a result has turned his love of reading into the exciting Be a Phanatic About Reading literacy program presented by Comcast. Founded in 2004, the program encourages students in grades K-8 to read for a minimum of 15 minutes a day to improve their literacy skills. Area teachers can enroll their classrooms now and join the nearly 50,000 already reading with the Phanatic!\nFor information on how your classroom can be a part of Be a Phanatic About Reading during the 2015-2016 school year, email firstname.lastname@example.org.\nThe program is divided into two levels: one for children in grades K through 3 and the other for grades 4 through 8. Children will be asked to spend a minimum of 15 minutes a day reading whatever book they select. Younger children will be given Phanatic coloring sheets to color in once they have attained their goal while older children will be asked to record the book they read and write a few sentences on their favorite part of the book. The Phillie Phanatic will make a special visit to the top performing schools. To qualify for a Phanatic visit, children will report their progress to their teachers who in turn will tell the Phillies how the children have done in their reading endeavors. From that progress report, schools will be selected for a school visit.\nThe Phanatic does not want you to miss out on the fun that the 2015/16 Be a Phanatic About Reading program has to offer. For information on how to register, e-mail email@example.com or call 215-463-1000.\nClassrooms have the opportunity to win a special visit from the Phillie Phanatic. To qualify for a Phanatic visit, children will report their progress to their teachers who in turn will tell the Phillies how the children have done in their reading endeavors. From that progress report, the top performing classrooms/schools will be selected for a Phanatic visit. Visits will be scheduled between January and May.\nOn Saturday, May 21, 2016 during the 3:05 p.m. game against the Atlanta Braves, The Phillies and the Phanatic will host their annual Be a Phanatic About Reading Night presented by Comcast. Fans 14 and under will receive a copy of the The Phillie Phanatic's Galapagos Gang, the newest book in his children's book series. Students, teachers and parents involved in the Be a Phanatic About Reading program will receive an $8 discount off tickets in locations regularly priced $53 and under.\nAs part of the night, the Phanatic will celebrate readers selected from the program during a special onfield pregame ceremony.\nFans can help children across the region enjoy reading a little bit more by donating a new or gently used children's book, benefitting PHILADELPHIA READS, when they enter the gates.\nThis program has been terrific for reluctant readers. It has been especially rewarding for students that were not motivated readers. It has been rewarding to watch these young readers become more fluent readers.\nI used the reading program as an incentive to motivate my students to read. The program was just, simply, fun! Everyone loves the Phanatic and anything to do with him.\nI have used the program since September. My students have actively kept the reading log to show their reading. Thank you very much. I will look forward to doing this awesome program again next year.\nI would like to commend you and the Phillies organization for taking part in such an important area of student development. As a Reading Specialist, I am thrilled to see organizations that kids so passionately care for develop programs to encourage the whole child! I am equally as impressed with the knowledge of reading research that is included in your letter.\nThank you for providing my class with this opportunity. They are really enjoying the challenge. I am proud to see that I am seeing many of my students showing a greater interest in reading.\nIf you don't see your School District, enroll your school and your district will be added to the list!\nThe Phanatic's favorite thing to do is to cheer on the Phillies but reading a good book is a close second. The Phanatic is always looking for a new book that he can curl up with and welcomes your suggestions. Share what you like to read by emailing firstname.lastname@example.org with the book's title, author and a description of why you love the book. If you do, you could find your recommendation on the Phanatic's Book Corner.\nMake sure to check out all the books in the Phanatic book series including the newest book, \"The Phillie Phanatic's One-Man Band.\" The book details how the Phillie Phanatic and his musical friends came to the rescue to keep the Phillies and their fans rockin' and rollin' during another memorable night at the ballpark.\nTo learn how to enroll your school in the 2015/16 Be a Phanatic About Reading program presented by Comcast email email@example.com or call 215-463-1000."} +{"text": "Lately, Republican candidates are taking shots at Mitt Romney because in his private equity life he had some failures. Democrats have made no secret that they are going to go after Romney because in his private equity life, he had to shut down some unprofitable plants to save businesses. Heaven forbid, other businesses he invested in went belly up. I am not here to defend or advocate for any particular candidate, but I do think that Americans need a much better perspective on failure.\nWhy are we so hard on failure?\nOne of the things the start up community does is embrace failure. When a company goes under, you learn from it. I have invested after tax dollars that were hard to earn into many companies, and not all of them have worked out. One went belly up. One is marginal, one is on fumes, and the rest are operating, but like any company they have challenges. I have had some exits too. But, even those had many twists and turns along the way and the company could have gone under.\nBeing in business isn’t easy. It’s risky. If it were easy, we’d all leave our cushy government and corporate jobs and go on our own and start entrepreneurial companies. But, statistics show that fewer than 30% of all start up businesses make it ten years. Starting a business isn’t rocket science, but it’s a heckuva lot tougher. But, encouraging people to take that risk leads to gigantic gains for our entire society.\nTo give you a little perspective, you need to know what Romney engaged in. He was in what is called Private Equity (PE). Most people confuse Private Equity with Venture Capital (VC). Venture invests in newer companies that have a new technology. Private Equity invests in an existing company that has been operating and reinvents that company. Usually, PE firms use a lot of leverage (debt), to generate returns. Extra leverage on the balance sheet magnifies the rate of return if the company can afford the debt load. If the company can’t afford it, it either restructures again or goes bankrupt. The reason it’s called Private Equity is that the money for the fund comes from private sources, not government sources. The companies that the PE firm buy and run are not listed on public markets, but closely held. The big payoff for PE comes when they spin the companies back out into the open market through an IPO or acquisition. Private Equity firms take risk.\nWith the assumption of risk comes the chance that occasionally things won’t turn out for the best. Sometimes, companies the PE firm buys fail. There can be a huge cadre of reasons for that, and if you listen to a PE guy talk about their failures it generally centers around some of the business decisions the firm made to engage with the marketplace. Sometimes, it’s even a bad market.\nToday, Eric Lekofsky($GRPN) wrote an interesting piece on one of his firms, Innerworkings($INWK). Innerworkings has been a very good business, but for awhile the stock cratered. The decline didn’t have a lot to do with the company operations, but demand for the line of business that the company was in. Printing decreased significantly in 2008. Not a lot Innerworkings could do to avoid the tsunami of the banking crisis. Other firms ($CME) were directly affected too, and we know how that turned out.\nHow firms responded to the crisis and how they were managed after says a lot about them. It’s also reflected in their stock price. Look at the following chart and you would have to conclude management did a helluva job, even with the failure in 2008-09. They were down 88%!\nWhat do you think INWK’s management team did in December of 2009? My guess is they embraced their failure and learned from it. Failure was accepted and put behind them. They adapted and then ran with a new business plan. No doubt, Mr. Private Equity Romney was faced with similar circumstances with companies he had poured money into. Sometimes he failed, but the scorecard says he made the right decisions more often than not.\nIn the case of the candidates that are lining up to take shots at him, Gingrich, Santorum, Paul, Huntsman and Obama, only one, Jon Huntsman, has run a real live on the ground business. The rest are political operatives and we know that politicians don’t know very much when it comes to analyzing profit/loss businesses. (think Solyndra, Fannie Mae $FNM, Freddie Mac)\nIn America, we need to learn to learn how to appropriately deal with failure. That doesn’t mean we celebrate it. It does mean we encourage people to go out into the world and take calculated risks to try and create businesses that make society more productive. In the process, some will hit, and their founder will get rich. Most will fail, but we learn from those failures, pick up the pieces and start again. Lashing out at people that have had failures make us more risk averse and less willing to take a chance. That sort of attitude doesn’t lead to a better American society."} +{"text": "Live in San Francisco? Don’t put your compostables in your green bin? You should. Don’t have a green bin? Ask and it shall be delivered!\nMore information on San Francisco’s composting program.\nAnd look! what happens to all those kitchen bits and garden bits and bones and wood and stuff. COMPOST! That’s right, and once a year you can stop on by and get some for free. (Even if you don’t recycle your compostables. …)\nCompost program comes full circle Saturday\nYou’re allowed up to two 5-gallon buckets’ full.\nSaturday 9 Jun 2007 8 a.m. to noon\n– City Dump (S.F. Recycling and Disposal) at 401 Tunnel Ave. (Take your hazardous waste down while you’re at it.)\n– John McLaren Park, at the parking lot of the Jerry Garcia Amphitheater, at John F. Shelley Drive and Mansell Street.\n– West Sunset Playground, at Quintara Street and 40th Avenue\n– Herbst Road (runs along the east side of the zoo) and Zoo Road.\nThe raw materials, about 300 tons a day from San Francisco and Oakland, arrive at the plant near Vacaville in large trucks. (San Francisco’s 2,100 restaurants contribute a large part of the San Francisco materials, including everything from broccoli to fish bones, and their compostable paper waste as well.)\n300 tons A DAY! How cool is that?\nReed encourages us all to use our green bins for yard trimmings or food scraps we don’t compost ourselves. You can purchase special biodegradable plastic bags to hold food scraps, but Reed says he’d just as soon you put them in paper bags, milk cartons or other food boxes. Fold over the tops.\nExcept that that’s something we can’t do because compostables are soggy and the bottom would fall out of any paper bag before we got it down the steps to the nearest green bin. (That bin actually “belongs,” I think, to the publishing house at the bottom of the steps, but they don’t seem to mind and always have room to spare.)\nHow about the City making it easier for folks like us to do this green bin thing? They want higher participation, but ’tain’t easy for some of us.\nHere’s our current operation.\n- Large glass measuring bowl with handle on kitchen counter. Stuff goes in that.\n- After meals, dump stuff from measuring bowl into menudo pot lined with plastic grocery bag. Pot is stashed on the floor at far end of kitchen (not that we have far to go) next to the other recyclables &c. Put lid back on pot to minimize funky smells.\n- When menudo pot gets a certain amount of compostables in it or gets too funky, put grocery bag into even bigger (and more leak-proof) shopping bag (a bright garish giveaway bag from Pier 39) and schlep it down the steps to the green bin along with the yard clipping bits (this time of year mostly consisting of dropped unripened figs that scatter across the walking path and snaky vines trimmed back from the fire escape) that we’ve stashed in the garish bag.\n- Empty grocery bag in green bin. Empty yard clippings from garish bag. Roll up grocery bag and put in garish bag.\n- Hike back up steps.\nWhere do our other recyclables go? The garbage collectors come down the steps and pick up the garbage here twice a week (bless them…), but they don’t deal with recyclables.\nTwice a week, we haul the recyclables up to the blue recycle bin located where the steps meet Montgomery. We share that bin with neighbors and the closer it is to pickup day, the fuller the bin is — sometimes too full and then we have to take our recyclables back home and haul them up again after the bin is emptied.\nWhy don’t we put a green bin up there, you ask? Why? Because “there might be some pushback” as a neighbor nearby who shares the blue bin said.\nThe folks living on Montgomery are cranky enough about the blue recycle bin. No kumbayah moments here: One set of neighbors moves the bin away from their side of the steps because they don’t like the noise of people putting stuff in the bin and they don’t like the noise of it being picked up. Over to the other side! and let those folks deal with the noise. The neighbors on the other side move the bin back. Sometimes it winds up on the flat area halfway up to Montgomery.\nCan’t we all just get along? (and recycle? and all that good-for-all-of-us stuff?)"} +{"text": "Hurricane Sandy makes landfall in Bahamas\nNASSAU, Bahamas - Hurricane Sandy barreled into the Bahamas on Thursday after slashing across eastern Cuba, where it ripped off roofs and forced postponement of a hearing at the Guantanamo naval base but caused no reported deaths.\nThe Category 2 hurricane killed four people elsewhere in the Caribbean, and forecasters warned it will likely cause a super storm in the U.S. next week, mixing with a winter storm whose effects will be felt along the entire East Coast from Florida to Maine and inland to Ohio.\nThe hurricane was located about 25 miles east of Great Exuma Island early Thursday afternoon and it was moving north at 20 mph, with maximum sustained winds of 105 mph.\nPower was already out on Acklins Island and most roads there were flooded, said government administrator Berkeley Williams.\nHe said his biggest concern is that a boat filled with basic supplies for the island canceled its trip until next week.\n\"Supplies were low before, so you can imagine what we are going through now,\" Williams said.\nOn Ragged Island in the southern Bahamas, the lone school was flooded, \"we have holes in roofs, lost shingles and power lines are down,\" said Charlene Bain, local Red Cross president. \"But nobody lost a life, that's the important thing.\"\nPeople across the Bahamas formed long lines to stock up on water, canned goods, flashlights and other items, leaving grocery store shelves nearly empty.\nSooner Halvorson, a 36-year-old hotel owner from Colorado who recently moved to the Bahamas, said she and her husband, Matt, expect to ride out the storm with their two young children, three cats, two dogs and a goat at their Cat Island resort.\n\"We brought all of our animals inside,\" she said, though she added that a horse stayed outside. \"She's a 40-year-old horse from the island. She's been through tons of hurricanes.\"\nHurricane Sandy was expected to churn through the central and northwest Bahamas late Thursday and early Friday. It also might bring tropical storm conditions along the southeastern Florida coast, the Upper Keys and Florida Bay by Friday morning.\nWith the storm projected to hit New Jersey with tropical storm-force winds on Tuesday, there is a 90 percent chance that most of the East Coast will get steady gale-force winds, flooding, heavy rain and maybe snow starting Sunday and stretching past Wednesday, said U.S. forecaster Jim Cisco.\nIn the Bahamas, the massive Atlantis resort went into lockdown mode after dozens of tourists left Paradise Island before the airport closed, said George Markantonis, president and managing director of Kerzner International, which manages the resort. He said the resort is now less than half full, but all its restaurants, casinos and other facilities are still operating.\nBut other businesses on Paradise Island, where the capital of Nassau is located, remained closed.\nSandy was blamed for the death of an elderly man in Jamaica who was killed when a boulder crashed into his clapboard house, police said. Another man and two women died while trying to cross storm-swollen rivers in southwestern Haiti.\nOfficials reported flooding across Haiti, where many of the 370,000 people still displaced by the devastating 2010 earthquake scrambled for shelter. More than 1,000 people were evacuated from 11 quake settlements, according to the International Organization for Migration.\nIn Cuba, authorities said they were worried about the damage Hurricane Sandy might have inflicted in small mountain villages still unheard from, but no deaths were reported.\n\"It crossed the entire eastern region practically without losing intensity or structure,\" said Jose Rubiera, the island's chief meteorologist.\nSantiago, Cuba's second largest city near the eastern tip of the island, was spared the worst of the storm, which slammed into the provinces of Granma, Holguin and Las Tunas.\nCuban President Raul Castro ordered authorities to evaluate damage throughout eastern Cuba, and state media said they expected to release more information throughout the day.\nThere were no reports of injuries at the U.S. naval base at Guantanamo Bay in Cuba, but there were downed trees and power lines, said Kelly Wirfel, a base spokeswoman. Officials had canceled a military tribunal session scheduled for Thursday for the prisoner charged in the 2000 attack on the Navy destroyer USS Cole.\nFar out in the Atlantic, Tropical Storm Tony was weakening and posed no threat to land. The storm had maximum sustained winds of about 40 mph and was moving east-northeast at 21 mph. Its center was about 715 miles southwest of the Azores."} +{"text": "ESPN Films’ ‘The Book of Manning’ to Premiere September 24 on ESPN\nvia press release:\nESPN Films “SEC Storied” Documentary The Book of Manning to Premiere September 24 on ESPN\nThe film, narrated by John Goodman, explores how tragedy shaped one of the most influential families in professional sports history\nThe third season of ESPN Films’ “SEC Storied” documentary series will kick off with The Book of Manning Presented by Chick-Fil-A on Tuesday, Sept. 24, at 8 p.m. ET on ESPN. The film will explore the personal and professional life of former NFL and Ole Miss quarterback Archie Manning and how the sudden loss of his father impacted his life and the way he and his wife raised their three sons.\nA father-and-son story written into the pages of football folklore, it can be argued that no family has had more influence on a sport than the Mannings. Archie – the patriarch – a star quarterback at the University of Mississippi and then with the New Orleans Saints, followed by oldest son Cooper, whose football dreams were cut short by a spinal condition, then sons Peyton and Eli – both of them quarterbacks, All-SEC, number one draft picks, back-to-back Super Bowl champions and MVPs.\nNarrated by actor John Goodman, The Book of Manning features revealing interviews with Archie, Olivia, Cooper, Peyton and Eli Manning along with other family members, friends, former teammates and coaches as well as never-before-seen photos and home movie footage of Archie and his sons. Through it all, director Rory Karpf explores how a tragedy shaped the course of not only Archie’s life, but his family’s as well.\n*Digital screeners and promotional photos for The Book of Manning available upon request*\nFollowing the film’s debut on ESPN, ESPNU will air Story Behind Storied, a special director’s cut of the making of the ESPNU “SEC Storied” series of films. The special will recap all nine of the films in the series thus far and show never-before-seen footage from certain films. ESPNU will then re-air The Book of Manning at 10 p.m. followed by a classic Ole Miss game featuring NFL MVP quarterback Eli Manning and a Tennessee game with NFL MVP Peyton Manning.\nESPN Films launched the Storied documentary series in September 2011, presenting fans the opportunity to explore the rich athletic history of the Southeastern Conference. From extraordinary athletes and coaches to defining games and moments, the Storied series features films that focus on the SEC’s recent and more distant past.\nAbout ESPN Films\nCreated in March 2008, ESPN Films produces high-quality films showcasing some of the most compelling stories in sports. In October 2009, ESPN Films launched the Peabody Award-winning, Producer’s Guild Award-winning and Emmy-nominated 30 for 30 film series. Inspired by ESPN’s 30th Anniversary, the films that made up the series were a thoughtful and innovative reflection on the past three decades told through the lens of diverse and interesting sports fans and social commentators. The strong reaction from both critics and fans led to the launch of 30 for 30 Volume II, which is currently underway. Additional projects from ESPN Films include the critically acclaimed Nine for IX series, SEC Storied and the webby award winning 30 for 30 Shorts. For more information on 30 for 30, go to espn.com/30for30/.\nSEC on ESPN\nESPN, Inc., and the Southeastern Conference entered into a landmark 15-year agreement for extensive football, men’s and women’s basketball, Olympic sports and conference championship content across multiple ESPN entities beginning with the 2009-10 academic year. As a result, ESPN Regional Television became the over-the-air syndication home for Southeastern Conference programming and the largest college sports syndication television package in the country. In 2012, SEC Network basketball games were distributed in 77 local television markets, representing 50.4 million homes, which is 44% of the U.S.; 2011 SEC Network football games were distributed in 99 local television markets, representing 79.1 million homes, which is 69% of the U.S."} +{"text": "Sunday, 5:30 am. McCarran Airport in Las Vegas. It still hasn’t sunk in that for the first time since 2006, there is a new middleweight champion in the UFC. That’s not melodrama, not a moment to sigh for the “good ol’ days,” just a realization that the MMA landscape has changed quite considerably since Chris Weidman’s second round knockout of Anderson Silva on Saturday night.\nYou could go even further and say the sports landscape has changed, because I’ve never woke up to so many texts from friends who are casual fans at best asking about the fight, or had so many people at the airport see the UFC on my bag and ask what happened with that Silva guy.\nSo what happened? He gave Weidman his chin on a platter and the New Yorker took it. It doesn’t get any simpler than that. Silva didn’t show up to the MGM Grand Garden Arena and fight like a 38-year-old is expected to, aging overnight. He wasn’t steamrolled by the New Yorker and pounded into a one-sided defeat. No. He dropped his hands, showboated, and stuck out his chin like he had so many times before. But this time his sin of leaning straight back to avoid a punch caught up to him.\nThis wasn’t the Forrest Griffin fight, where he pulled off the same antics and wound up knocking the newly minted UFC Hall of Famer out. This wasn’t his bout with Demian Maia, where his venomous taunts were only addressed in the closing stages of the fight, when it was too late. Weidman was young, fast, determined, and – for the moment – angry at being clowned by the Brazilian legend. He was going to keep punching until he hit something, and when I spoke to Weidman’s longtime coach Ray Longo Saturday night, he said his advice to his charge was to stop aiming for Silva’s chin and instead “punch a hole in his chest.” When Weidman followed that advice, his hole punching intentions strayed upward, found Silva’s jaw, and seconds later, it was game over for a reign that lasted over seven years and ten successful title defenses.\nThat’s the bad news. The good news is that the 185-pound weight class is suddenly wide open, Silva’s Hall of Fame worthy legacy doesn’t take a hit, and he appears that he is still a threat to not just return to his winning ways, but to regain his title should a rematch take place. And yeah, that rematch will make him a boatload of money.\nThe other positive to take from the upset is an obvious one - the arrival of Chris Weidman.\nAs a New Yorker, I’ve been hearing about Weidman long before he made his UFC debut, and when there were some scoffing at him making his UFC debut after just four fights (and on short notice no less), those here on the east coast smirked. He was ready for the UFC, and his first five fights (and wins) here proved it.\nBut after nine pro bouts, is anyone ready for Anderson Silva?\nWhen asked about the fight in the days and weeks leading up to UFC 162, I said that Weidman has the talent to beat Silva, but I wasn’t sure that he had the experience. When all you’ve seen since June of 2006 is brilliance, with the exception of two rough outings with Chael Sonnen (both of which Silva finished anyway), there wasn’t much to hang your hat on when it came to calling for the upset other than Weidman’s wrestling-based style and the idea that eventually Father Time catches up to all fighters.\nMy theory was that the only one that could beat Anderson Silva was Anderson Silva. And I was right. Just not in the way I expected. The way I saw it, Silva’s greatest tool was his ability to translate his talent into a confidence in the Octagon where he didn’t believe that someone had the nerve to, as Mike Tyson once said, “challenge me with their primitive skills.” The man Silva dethroned for the 185-pound title, Rich Franklin, told me that Silva makes “good fighters look bad,” and I’ve never heard a more accurate breakdown of the 16-0 start to his UFC career.\nWeidman believed though, and as early as his first couple UFC fights, he knew he had what it took to beat Silva. It wasn’t a ploy to get the fight made, pick up a nice payday, and fade away into life as a mid-tier contender. He really thought he could win. Even through all the pre-fight hype, through being picked by several peers to win, and through all the fight week festivities, Weidman kept focused and stuck to what he had envisioned a thousand times in his head: winning the title.\nAnd while the first round went well enough for Weidman on the ground, by the end of the round, Silva was standing, taunting, whipping the crowd into a frenzy, and appearing to get into Weidman’s head.\nThe Brazilian looked to be in complete control at the moment, and it carried over into the second round. And that’s where he lost his way and lost his title, allowing his confidence to sway into arrogance. You could say that his reflexes aren’t as sharp at 38 as they were ten years ago, but I’m not buying that as an excuse. What I saw was a Silva forgetting that as good as he is, everyone he faces in the Octagon with four ounce gloves has the talent to put his lights out. On Saturday night, Chris Weidman did just that. It was shocking, but it wasn’t a fluke. And while it’s not the way you want to see any great champion go out, I’ve got a feeling it won’t be his final exit.\nSee the photo gallery of UFC 162\nLooking back at Saturday's shocking Chris Weidman vs. Anderson Silva bout..."} +{"text": "A Satyr's Tragedy\nFrom Uncyclopedia, the content-free encyclopedia\n| Attempt to explain joke|\nBefore I tell the story, it is imperative I explain what a Satyr is, as the public school system doesn't believe in teaching all kids about Greek Gods, any more. Blame McCartneyism. I do. Anyway, according to Greek mythology, satyrs are the male companions of Pan and Dionysus that roamed the woods and mountains. They were often associated with sex drive and apparently had perpetual erections. I know. It's fucking magical or something.\nedit It's story time, kiddies\nThere was once a satyr named... Stan. Yeah. Anyway, Stan was very different from other satyrs. You see, he suffered from ED. This made all of the other satyrs, with their perpetual erections and abilities to balance cups of wine on said erections, to make fun of him constantly (think Rudolph, but not a bastardized mix of Judaism, Paganism, and Christianity). Even the satyr named Phil, the one who trained Hercules and had a penis so small it wasn't visible to the naked eye, was more popular than Stan.\nedit Early childhood\nWhen Stan was very young, his only friend was his brother. This all changed when his brother had his penis beaten by Perseus. After having his penis beaten by a baby God, his brother became extremely popular. He never hung out with Stan again. This made Stan very suicidal. Due to his suicidal tendencies, the satyrs god Dionysus abandoned them on an island off the coast of Greece called Sicily. The satyrs were then made the slaves of Cyclops. This made Stan even more hated.\nOne day an adventurer named Odysseus, along with his crew, landed in Sicily at Mount Aetna near the location of the satyrs. When Stan's father encountered the hungry travellers, he traded some of Cyclops's food for liquor without permission from Cyclops. When Cyclops saw Odysseus eating his food, he became very frustrated and tried to kill him. Stan tried to tell Cyclops what happened, but he was thoroughly beaten by the one-eyed giant, who claimed he was a lying phony. While Cyclops beat the shit out of Stan, Odysseus and his crew retreated to their ship and left. They didn't even bother to thank Stan for saving them.\nAll of the satyrs made fun of Stan for helping a human for the next three months.\nedit Later childhood\nAfter being betrayed by both humans and satyrs, Stan realized that everyone was a douche, even writing an entire journal about it. He stopped trying to be cool. He wrote a few songs about being \"artsy and misunderstood\" and also founded a My Chemical Romance fansite.\nOn the weekends, he would go to comic book stores and pick fights about if the entire Green Lantern Corps could beat Jay Garrick, the original Flash. Usually, the fight would end with Stan getting shoved into a garbage can and rolled down the street. The store owner, a fat balding man by the name of Comic Book Guy, hated him, but Stan was his best customer. One day though, the other satyrs broke into Stan's house and destroyed all of Stan's first-edition Lois Lane comics from World War II and left X-Men comics in their place. The X-Men comics only served as a reminder of when he was a child and his father was raped by Cyclops. Forever scarred, Stan no longer would read another comic book. The loss of comic books caused Stan to become even more depressed.\nStan was stil very lonely.\nWhen all of the other satyrs spent their free time drinking alcohol, dancing, and gang-raping Helen, Stan would be in his room, alone, trying to get an erection. Stan was very smart (So smart in fact everyone in his geometry class cheated off him every fucking day.), but no matter what he learned, he still couldn't find a way to get an erection. All that porn he looked at only made him hornier, but he was incapable of getting it up.\nHe fell in love with a satyress in his film class. This female satyress was very artistic and was also a member of the choir. She wasn't at all attracted to him (Why would she be? Seriously...), but Stan had a plan! He was learning some game by listening to the advice of people on Yahoo! Answers and was learning pick up chicks. Of course, it didn't matter how much he improved his game as he was still ugly and couldn't get it up. Then, a miracle happened! Some guy invented a pill that gives erections!!! Stan ordered a full box of the magical pills. He was going to get lucky, dammit!\nHe started using the game he learned to get the satyress to like him. Eventually, Stan managed to get her to even give him hugs. Whenever she would hug him, Stan would get a tingling in his pants. One day, Stan decided it was now or never. He was going to get laid. He had asked the satyress to the movies. She accepted. Stan prepared his arsenal. Chloroform rag, some money, a pack of Trident, one extra small Trojan, and the full bottle of the magical pills. Stan swallowed the full bottle.\nHe got to the movies just 30 minutes later, and he ran up to where she was standing. She was very much impressed by his lack of limpness. They proceeded to enter the theatre. Two tickets to see Wolverine: The Musical, a bag of gummi bears, two Dr. Peppers, and a small box of nachos for the lady. They sat down in the third to last row. It was clean for once. Plus, there weren't many people around. It was all going Stan's way for once (Priceless!!!).\nThirty minutes into the movie, Stan was still hard, but the satyress was too into the movie, which would last for another four hours, to do anything about it.\nWhen the movie ended, the satyress looked at Stan and told him she was ready. Stan gave no response. He sat there with a blank stare. Stan had died due to how long the bloodflow had been redirected from his brain to his penis. Also, blood started oozing from the head of Stan's penis.\nThat, kids, is why you should see a doctor if you have an erection that lasts longer than four hours. I'm serious."} +{"text": "Hopes for a quick resolution of the writers strike are fading fast.\nBack-channel efforts have resumed to avert what’s now looking like a long and painful work stoppage. But those moves aren’t gaining much traction amid continued hardline public stances by both the WGA and the Alliance of Motion Picture & Television Producers.\nWorries have risen that without reviving the WGA talks, the scribes’ work stoppage could easily bleed into the middle of next year.\nThe DGA’s expected to launch talks within the next few weeks while SAG’s negotiations would probably start in the late winter or early spring. Both the DGA and SAG contracts expire June 30.\nWGA negotiations collapsed Sunday night, dashing a brief burst of optimism over the weekend that both sides had softened their stances and narrowed their proposals. And since the talks crashed and burned, both sides have ditched diplomacy.\nAMPTP topper Nick Counter has insisted that the companies aren’t interested in new talks as long as the WGA’s on strike. And WGA West president Patric Verrone has declared in an email to members that the guild is no longer committed to taking its DVD residuals proposal off the table — even though it did so Sunday to address the AMPTP’s assertion that the DVD proposal was a roadblock to a deal.\n“Our new comprehensive proposal (including the DVD removal) was presented in an off-the-record session; our new proposal was then rejected,” Verrone said. “Based on what I saw and heard on the picket lines today, therefore, all bets are off and what we achieve in this negotiation will be a function of how much we are willing to fight to get our fair share of the residuals of the future, no matter how they are delivered.”\nIn other developments:\n- The WGA’s considering offering waivers, or “interim agreements,” under which producers could employ writers with the proviso that scribes would be compensated under terms of the new contract. During the 1988 WGA strike, more than 70 such were signed.\n“The question of when to sign interim agreements, and with what employers, depends on an assessment by the Guild leadership of how such agreements will affect our leverage at the bargaining table,” said WGA spokesman Gregg Mitchell.\n- The WGA has quietly backed off its strike rules on animated feature writing.\nThe guild announced nearly a month ago that writers could not work or negotiate for animated features — even though that realm is not under WGA jurisdiction with most writing performed under contracts handled by Local 839 of the Intl. Alliance of Theatrical Stage Employees.\nBut the revised strike rules now permit WGA members to write for animated features covered by Local 839 without being fined or disciplined: “The Rules apply to (1) all network primetime animated series covered by a WGA contract and (2) contracts for writing services in connection with fully animated theatrical features negotiated or entered into during the strike, unless covered by a current collective bargaining agreement with another union.”\nThe AMPTP and IATSE threatened the WGA with legal action over the rule, under which violators could face expulsion, suspension, fines and censure.\n- The Writers Guild of Canada has come out in support of its southern brethren.\nThe Canuck guild said anyone who is a dual member of the two guilds and lives in the U.S. will not be allowed to write for Canadian productions during the strike. But the guild added that dual members living in Canada can write for a Canadian production during the strike.\nThe guild’s governing council passed a resolution stating: “The issues the WGA is addressing will affect every professional artist seeking compensation for their work in the digital age. Their fight is our fight.”\nThere are fewer than 300 dual members, most of whom live and work in Los Angeles. The WGC has 1,900 members altogether.\nWGC executive director Maureen Parker said U.S.-based members of both guilds have to apply to the WGA for a waiver in order to be able to work in Canada.\n“I can’t prevent a producer from hiring a writer for a production,” Parker said. “But that writer is violating strike rules and we will inform the WGA.”\nUnlike the WGA, the WGC’s most recent collective agreement with the Canadian producers association gives writers jurisdiction over new media, but the two sides have yet to agree on a set rate for compensating Canadian writers for work used in new-media platforms.\n(Brendan Kelly in Montreal contributed to this report.)"} +{"text": "Grappling with torture\nThe torture took place away from hot spots like Abu Ghraib and was conducted not by CIA agents or prison guards but by U.S. soldiers who never expected their tour of duty would present them with these unimaginable conditions. The soldiers participated, witnessed or blew the whistle on the abuse – and however they responded they were badly scarred. In “None of Us Were Like This Before: American Soldiers and Torture,” Joshua E.S. Phillips explores the largely hidden side of the American torture horrors: the effects on soldiers who never signed up for such service. Here he describes the harrowing -- and sometimes tragic -- impact.\nBy Joshua E.S. Phillips\nIt seems each day brings heartbreaking news of American soldiers who’ve perished on the battlefield, and veterans who’ve taken their own lives. We tend to associate wartime trauma with combat, such as bloody firefights. But there are other grueling wartime events beyond the battlefield.\nPresident Barack Obama recognized this last month when he extended veterans’ access for treatment for post-traumatic stress disorder.\n“I’ve met enough veterans to know that you don't have to engage in a firefight to endure the trauma of war,” said Obama.\nThat makes two of us.\nAbout two years ago I met former Army interrogator, Don Dzagulones, who explained how his involvement in detainee abuse had a more harrowing long-term impact on him than surviving deadly ambushes in Vietnam.\n“When you’re attacked, you have to respond,” he said. “But other circumstances, like prisoner abuse for example, you have a choice…[and so] you’re probably more affected by wanton acts of violence than responding to violence.”\nThis kind of wartime trauma remains largely unrecognized and misunderstood by the public. But it isn’t unknown to clinicians.\nAfter four years of research, the National Vietnam Veterans Readjustment Study found that abusive violence -- which included “torturing, wounding, or killing hostages or POWs [prisoners of war]” -- had the strongest correlation with PTSD for the 3,000 veterans interviewed for the study.\nOur wars in Iraq and Afghanistan are different than Vietnam, but they share a common feature: they were marked by U.S. detainee abuse and torture. Some soldiers who served in these wars participated in abuse, some were bystanders, and some blew the whistle and protested.\nHow many of today’s soldiers have been traumatized by their exposure to, or involvement in, abusive violence like detainee abuse?\nSo far there’s no current research that matches the Vietnam veterans’ study findings. But some soldiers were remorseful about their involvement with abuse, and were troubled or traumatized by it.\nArmy combat medic Jonathan Millantz contacted me four years ago to tell me about detainee abuse in Iraq, beyond Abu Ghraib.\n“It’s very tough when you have a conscience that is filled with atrocities [and] you know what you did to people,” said Millantz. “I went to confession, I went to counseling. I still can’t forgive myself for what I did to those poor people.”\nMillantz was attached to a tanking unit, Battalion 1-68, at Forward Operation Base Lion in Balad -- in the “Sunni triangle” -- during 2003-2004. Soldiers with Battalion 1-68 had to swap their tanks for humvees, and conduct sweeps that targeted suspected insurgents in house raids.\nSuddenly, troops who were trained to be tankers were tasked to be jailers. Sometimes they were encouraged and ordered to help “soften up” detainees for interrogations. Sometimes soldiers from Battalion 1-68 admitted they saw, and even participated in, detainee abuse at FOB Lion.\nNot every soldier who engaged in detainee abuse was traumatized by it, and there were other wartime experiences that were damaging. But some members of Battalion 1-68 were gravely distressed by abuse.\nLike Dzagulones, Millantz reconsidered his involvement in prisoner abuse and torture when he returned home, and it drove him to speak out at anti-war events. The distress over wartime experiences lingered for him and fellow unit members long after their return: some had violent outbursts, were plagued by depression and sleeplessness, and some engaged in substance abuse and other self-destructive behavior.\nSergeant Adam Gray exhibited these same patterns of behaviors. Gray was another member of Battalion 1-68 who was also troubled by his involvement in detainee abuse. After he attempted suicide in August 2004, the military documented his emotional state: “He spoke at length of many positive experiences in Iraq, such as rebuilding schools and eating with Iraqis. However, he also made reference to events that bothered him and that he could not speak ... about.”\nHis inability to discuss those “events that bothered him” exacted a devastating toll. On August 29, 2004, Gray was found dead in his barracks room. His Army buddies reflected on his death, and considered what he had been through and how it affected fellow soldiers.\n“It's been hard over the years coming to terms with what actually happened over there,” said Millantz. “It haunts me every day, and it’s something I’ll never get away from.”\nIn the end, he and fellow unit members never did get away from it. The pain and distress of the war damaged soldiers in Millantz’s unit, and the self-destructive behavior ultimately destroyed lives -- including those of Gray, and eventually even Millantz.\nSteven E. Levingston\nAugust 9, 2010; 5:30 AM ET\nCategories: Guest Blogger | Tags: U.S. torture; torture by soldiers; abu ghraib; post-traumatic stress disorder\nSave & Share: Previous: BOOK WORLD - August 8, 2010\nNext: Desegregation’s unintended consequence\nPosted by: IndyGO1 | August 9, 2010 1:09 PM | Report abuse"} +{"text": "URI brings Radiance Quintet for class, concert\nThe Connecticut-based Radiance Woodwind Quintet will visit the University of Rhode Island not once but twice this semester, first for a Master Class March 16 and then for a full concert April 1 with pianist Laura Hubbard as part of the prestigious University Artist Series. Both events will be held in the URI Fine Arts Center Concert Hall, 105 Upper College Road, Kingston.\nComprised of flute, oboe, clarinet, bassoon and horn, Radiance is described as performing “classic and innovative” wind quintet repertoire with “perfection and poise, style and sass.” Technique tips along with some of the keys to their success and “sassy” style will be shared when they offer their Master Class at 3 p.m. on Friday, March 16. The class is free and open to the public, with students especially encouraged to attend.\nTheir University Artist Series concert on Sunday, April 1, at 8 p.m. will feature works of Ravel, Fine, Hoiby and Piazzolla. The quintet members, Elizabeth Detweiler Jackson, Carla Parodi, Stevi Rehncy, Kelli O’Connor and Bryce Nakaoka will be joined by pianist Laura Hubbard, who has performed in concert at URI on other occasions. Admission is $10 general public, $5 students, with tickets available at the box office on a first-come basis starting 45 minutes before the concert.\nSpecifically, their program will offer Le Tombeau de Couperin by Maurice Ravel (arr. Gunther Schuller), Partita by Irving Fine, Sextet for Piano and Winds by Lee Hoiby, and Libertango by Astor Piazzolla (arr. Jeff Scott). The ensemble’s first recording is due to be released in the fall of this year, featuring the same composers.\nFounded in 2006, Radiance has performed for enthusiastic audiences throughout the Northeastern United States, including in recital on the Newburgh Chamber Music series and at the Newburgh Free Academy in Newburgh, New York. They have performed extensively in Connecticut, including with pianist Simon Holt at the Calvary Church Recital Series in Stonington; for the Sundays in the Parlor at Park series at Park Congregational Church in Norwich; and for the United States Coast Guard Band Chamber Players series in New London. Rehncy and O’Connor are Guest Artist teachers at URI, and all of the quintet members are or were members of the United States Coast Guard Band.\nElizabeth Detweiler Jackson, flute, has received national acclaim for her virtuosic playing. She has performed extensively with orchestras and ensembles in California, Arkansas, and Massachusetts and has won, finaled, or placed highly in a number of regional Flute Association and other solo instrument competitions. She holds a Bachelor’s degree from the University of North Texas, and a Master’s degree in flute performance from the University of Southern California. In 2002 she became co-principal flute of the U S Coast Guard Band.\nClarinetist Kelli O’Connor enjoys a varied and vibrant career as a soloist, educator and chamber and orchestral musician. She is a founding member of the Chameleon Arts Ensemble of Boston and the Radiance Woodwind Quintet, Principal Clarinet of the Eastern Connecticut Symphony Orchestra and Salt Marsh Opera, and a member of the Connecticut Orchestra. Previously a member of the U S Coast Guard Band, she appears frequently with the Hartford Symphony and the Connecticut Virtuosi Chamber Orchestra, and was clarinet soloist on the 2004-2005 national tour of Fiddler on the Roof. She teaches at both URI and the Calvary School of Music and has presented masterclasses at Baldwin-Wallace College and Salem State College. She is also the founder and director of the Waterford High School Clarinet Choir, which has won many distinctions. She holds a Bachelor’s Degree from Baldwin-Wallace College and a Master’s Degree from the New England Conservatory.\nCarla Parodi, oboe, attended the University of Michigan and received a Bachelor of Music degree from the University of Illinois in 1999. She earned a Master of Music degree from Rice University in Houston, Texas in 2003. She has studied with Harry Sargous, Nancy Ambrose King, John Ferrillo, and Robert Atherholt, and has performed with the New World Symphony, the Pacific Music Festival Orchestra, the Aspen Music Festival Orchestra, and the National Repertory Orchestra. Carla joined the U S Coast Guard Band in September 2003.\nStevi Rehncy, bassoon, earned a Bachelor of Music degree from the University of Illinois in 2002 and a Master of Music degree from the New England Conservatory of Music in 2004. During her studies, she played with various groups including the Illinois Symphony, the Louisville Orchestra, the Boston Symphony Orchestra, the Boston Philharmonic, and was a fellow at Tanglewood for two consecutive summers. Combining her love of music and children, Rehncy has worked with the Boston Public Schools as well as the New England Conservatory Youth Philharmonic Orchestra. She was acting principal bassoon with the Eastern Connecticut Symphony Orchestra during the 2005-2006 season and currently plays co-principal bassoon with the U.S. Coast Guard.\nBryce Nakaoka, horn, joined the U.S. Coast Guard Band in March of 2010 and is currently the third-seat horn player. He earned his Bachelor’s of Music degree in Education from the University of Nevada, Las Vegas, and can be heard playing principal horn on four CDs of the UNLV Wind Orchestra. During his undergraduate career, he performed in shows on the Las Vegas Strip including, “Phantom” and “Lion King” and also was the first call sub for the Las Vegas Philharmonic, where he held the Associate Principal position from 2007-2008. While in his home state of Hawaii, he performed with the Royal Hawaiian Band as well as the Honolulu Symphonic Winds.\nThe URI Concert Hall is handicap-accessible, and parking is available in the lot behind the Fine Arts Center, off Bills Road.\nFor more information, contact the URI Department of Music, 874-2431, or check the website www.uri.edu/music."} +{"text": "Visit us for expert pond care advice, weed identification, aeration design and more. We are happy to help answer all of your pond questions.\nSee what other customers are saying about The Pond Guy®. Also check out before and after photos from happy pond customers!\nSee how The Pond Guy® used Airmax® Aeration and MuckAway™ TL to eliminate up to 6″ of muck in a single season.\nLet us do the work for you – The Pond Guy® has licensed applicators familiar with common aquatic weeds and are equipped with the right pond care tools\nSee our showroom of fountains/aerators/water gardens running\nMeet Our Team of Experts\nIn observance of Memorial Day, The Pond Guy local store and customer service department will be closed on Monday, May 30th.\nWe will be available as normal the remainder of the week and on Saturday (9am ET - 4pm ET) for any questions or to place orders. We will reopen on Tuesday, May 31st with our normal business hours.\nWe wish you a safe and happy Memorial Day weekend! ... See MoreSee Less\nIt's Water Garden Wednesday! Let's see what your water garden, koi pond or water feature looks like today!\nHere's our Large Koi Pond today! ... See MoreSee Less\nOur annual Fish Day event was held on Saturday May 7th. Customers came in to stock their ponds with bass, blue gill, perch, minnows and catfish.\nWe have food, games and demos going on throughout the day. Here are just a few photos from the day! ... See MoreSee Less\nOur annual Fish Day event was held on Saturday May 7th. Customers came in to stock their ponds with bass, blue gill, perch, minnows and catfish. We have food, games and demos going on throughout the day. Here are just a few photos from the day!\nOur ponds and fish are ready to greet for you Saturday's Fish Day!\nToday is the last day to pre-order your game fish. weknowponds.com/fishday/\nWe'll also have lunch from 12-2, a Bag Toss Game, and product demos! Have a water garden? We have koi, tadpoles and plants available for purchase. We'd love to see you! ... See MoreSee Less\nIt's a rainy day here at The Pond Guy but we love the green that's starting to come through.\nLet's see what your pond looks like today! ... See MoreSee Less\nAre you planning to do your spring clean-out this month? Check out our How-To-Video on Spring Pond Clean-Outs first!\nWhat is your best tip for cleaning out your water garden or feature in the spring?\nyoutu.be/SxFOqxko_ss ... See MoreSee Less\nWith warm March temps across the country, we are getting lots of questions on String Algae. Just took a walk out to our water gardens and yup, we have it too. Here’s a few things you can do:\n1. Are you fish moving around? Or are they still sitting around the bottom of the pond. If your water temps are into the 40s and your fish are moving, you can remove the string algae by hand. If you have the 3-in-1 Tool, there is algae brush attachment that’s perfect for removing the string algae.\n2. If your water temps are consistently in the 50s and your fish are active, you can use AlgaeOff to kill the string algae. Don’t forget, you still need to remove the dead algae from the pond to prevent muck buildup.\n3. As long as there’s no ice left, go ahead and throw a dose of Seasonal Defense or Barley Extract into your pond. These products can help keep nutrient levels down in your pond.\nFor now, we are not removing the string algae at The Pond Guy. Our koi are still pretty slow moving so we do not want to stress them. With warmer temps this week, that could change! ... See MoreSee Less\nAlthough we’re expecting more snow this week in SE Michigan, we are gearing up for the 2016 season and are excited to help you mange your ponds this year!\nOur local store in Armada, MI is officially open for the season! We’ll be here Mon-Fri 10am - 6pm and Sat 9am - 4pm.\nOur Pond Techs will also be available on the phone longer and open Saturday’s for the season from 9am - 4pm ET. ... See MoreSee Less\nAre you attending the Cottage & Lakefront Living Show in Novi? Be sure to stop by our booth (#1609) to discuss your pond, lake, or lakefront property. We also have show specials! ... See MoreSee Less\nWe are updating our website this morning! If you need to place an order, call us at 866-766-3435 or visit us this afternoon. Thank you! ... See MoreSee Less\nThe Pond Guy will be open our normal business hours tomorrow, Thursday, 12/31. We will be closed on Friday for New Year's Day and reopen Monday 1/4 at 8am.\nFrom all the Pond Guys & Gals, we wish you a safe and happy 2016! ... See MoreSee Less\nAnother quick reminder, for all our Ponders in the SE Michigan area (or anyone with the impending winter storm), your pond netting should be taken down. The expected ice (or snow) can weigh the netting down into the pond and could cause your fish to get tangled in the netting. ... See MoreSee Less\nAll departments at The Pond Guy will be closed Thursday 12/24 and Friday 12/25 for Christmas. We will reopen on Monday 12/28 for our normal business.\nFrom all of us at The Pond Guy, we wish you and your families a safe and happy holiday season. Merry Christmas! ... See MoreSee Less\nThe Pond Guy will be closed on Thanksgiving. Our Customer Service Department will be open Friday from 8am - 5pm ET. ... See MoreSee Less\nWith snow expected in Michigan this weekend, we’re thinking back to the start of the 2015 pond season with this spring photo.\nLet’s see your favorite 2015 pond, water garden or lake photo (so far!) for Throwback Thursday! #TBT ... See MoreSee Less\nOur website is down at this time. If you need to place an order, please give us a call at 866-766-3435. Thank you! ... See MoreSee Less"} +{"text": "Students head back to classes Aug. 18\nChanges at Westside schools include new principals, academic approach\nClasses will start for District 11 public schools - including 13 on the Westside - Thursday, Aug. 18.\nNoteworthy changes for the 2005-06 school year include new principals at Washington and Buena Vista elementaries, a 10,000 square-foot modular addition at Midland Elementary and the start of a pre-Advanced Placement (AP) program at Holmes Middle School.\nIn addition, Montessori is going into its second year at Buena Vista - now as a free program that is available to all age levels - while Ivywild has situated its classes onto the main floor and Coronado High will be getting the help of student teachers from UCCS.\nOtherwise, school operations are basically unchanged from past years, with the same locations, principals, attendance areas, academic offerings and hours.\nWashington's new principal is Terry Martinez, an 18-year teaching/ administration veteran who was Washington's summer school principal the past two years and served as assistant principal for Rudy and Henry schools in District 11 last year. He replaces Pete Cicatelli, who has retired.\nThe new Buena Vista principal is Brenda Smith, a seven-year district administrator who was assistant principal at District 11's Sabin Middle School last year. Former Principal Alan Rasmussen retired.\nThe Midland modular, which District 11 bought from the Renaissance Academy, will help the school handle Midland's increasing enrollment, stemming from its International Baccalaur-eate (IB) program and new housing developments in its attendance area, according to district officials. District crews have been working this summer to prepare a concrete pad for the air-conditioned facility, just southwest of the permanent school.\n“They're working furiously to get it done,” said Lynn Jeffords of the Midland school office. “It should be ready when school starts.”\nAt Holmes, all the staff - teachers as well as administrators - completed training this month in pre-AP strategies, according to Mike Kreidel, the school's gifted and talented head who is also serving as pre-AP director. The training was provided by the College Board, a not-for-profit national association which oversees the program.\nPre-AP in-volves elective classes with teaching strategies aimed at challenging students to learn at a higher level, according to the school. The program at Holmes will dovetail with the AP program at Coronado High School; many universities accept AP classes for college-level credit.\nHolmes and Sabin (also starting pre-AP this year) are the first middle schools in District 11 to offer the program.\nAfter its first year of Montessori in 2004-05 - offering classes for ages 3-9 - Buena Vista has increased its Montessori offerings this year to all grade levels, with the formerly fee-imposed preschool and kindergarten now available at no charge, thanks to a Title 1 grant. Kindergarten is only offered with the Montessori teaching approach starting this year, but traditional classes are still available for grades 1-5 (See adjoining story.)\nIvywild Principal Libby Bailey said her school has completed its plan, announced last May, of realigning all its classes on the main floor of the historic building on South Cascade Avenue.\nThis is allowing plans to move forward for an envisioned “community center” on Ivywild's lower floors. “We're developing a fantastic partnership with the Pikes Peak Community Foundation,” Bailey said. “We're looking forward to additional activities after school to truly make Ivywild into more of a community center.”\nCoronado, the flagship public high school for the Westside, is getting the help of 20 UCCS student teachers this year - on a rotation plan in which half of them will be simultaneously providing similar assistance at District 20's Timberview Middle School. The arrangement, part of a three-year partnership in which CHS is deemed a “professional development site,” will have the side effect of taking a load off classroom teachers. “I think it will be very positive for students in the program and at Coronado,” Humphrey said.\nCoronado began registering enrolled students this week; this will continue through Aug. 11. Boys golf began Aug. 9, while other fall sports will begin Tuesday, Aug. 16.\nNinth-grade orientation will be from 7:50 to 11 a.m. Wednesday, Aug. 17, starting in the school auditorium, according to Humphrey. “This will be a chance for them to see their classes, meet their teachers and get their feet wet,” she said.\nOrientations for sixth-graders will be offered at the Westside's middle schools. Both Holmes and West have scheduled these get-acquainted sessions at their respective schools Tuesday, Aug. 16, at 6:30 p.m.\nThe following are District 11's Westside schools, addresses and phone numbers (principal's name in parentheses).\nWestside Pioneer article"} +{"text": "Monday, August 10, 2009\nAt the risk of opening myself up to a lot of possibly critical commentary, I'm putting something out here out of sheer curiosity. I'll start and end with the same question: how do you handle money in your household?\nWhen Guy and I moved in together back in 2001, it was for two reasons: 1) to spend time together in a convenient manner, and 2) to save money that was being wasted living apart. I was spending way too much living in a loft in downtown Denver, and Guy helped me realize that I could save money now and in the future by investing in a little real estate. So, I bought a condo on the edge of downtown Denver and we moved in together about a week before 9/11. Thing is, my credit was in great shape while Guy's needed some work. He had credit card debt, car loan debt, and student loan debt; I had literally none of those. I used my investments (from my leftover inheritance for my Dad dying in 1997) as the basis for getting a good mortgage, and I got the Happy Kitten Highrise. (I have since refi'd twice, more recently getting a 20-year fixed rate for less than 6% and only raising my monthly payment about $25--score!)\nSo, the house was in my name, hence I made the mortgage payment as well as the power bill, groceries, phone, and cell phone. Guy took on the HOA payment for the condo, as it was at the time about $100 or so less than his previous rent, and the cable/internet bill, and he began paying down his other debts aggresively. He eventually took on the phone bill and later even the cell phone bill once he got a cell phone added to my plan. About a year or two into our living arrangement, he began splitting the cost of groceries with me. In general, our other expenses were split pretty evenly, like vacation travel and hotels, dinners and evenings out, and so on. When Guy left Design Associates, he went onto my healthcare through DA, which is really good and rather inexpensive (about $25 every few weeks). However, we paid our own medical copays and dental bills out of our own pockets. And biggest of all, we had no shared bank account.\nFast forward a few more years into 2009. Guy makes about $20,000 more than me, and between a big bonus he got at work a few years ago and his own diligent work, he has paid off all of his major debts (you know, the ones you can't take off on your taxes). He has taken over nearly all the bills except for the mortgage; that one's still mine, and the condo is still in my name alone. When we bought a new (used) car in 2006, we saved up for it and split the cost 50/50 (which was also awesome cuz we paid flat cash for the Civic-another score!), but he recently paid outright for the new laptop he found on a super sale that will replace one of our old desktop models, and he also paid for the new wireless router for the HKH that allows me to connect to the internet and write this blog from the living room instead of from the guest room computer. I purchased the Microsoft Office software, and I still buy the weekly groceries, though Guy is the one who pays when we make a run to Sam's Club.\nHe told me recently that he thinks he's been jobbing me for a couple of years and not paying his fair share, especially since he makes so much more than me. For him to offer to contribute more to the household financially almost felt rude, but I got over that pretty quickly when I realized that he sure as hell made more, and him tossing a little more into the kitty would allow me to a) better fund my retirement and b) better afford my every-five-or-six-weeks massages and spa visits, and you know a Shorty likes to get her spa on. But it also occurs to me that when it comes to retirement, I'm already ahead because I have my leftovers from the inheritance--Guy's been playing catchup for the past eight years, and he's seven years older than me to boot.\nBut more than all this, we still don't have joint bank accounts, and that's for the same reason that we almost didn't even get married: we don't see a point. Guy and I are committed to each other for the long haul, and getting married didn't make that \"official\". We got married in order to preserve our legal rights and to benefit from the sweet tax breaks it gives us; we don't need a piece of paper from the State of Nevada to prove that we luuuuv each other and share a deep, lasting commitment to each other. And so, we view joint bank accounts the same way. Having a joint bank account is one more thing we have to keep up with, and it doesn't really represent that we're a team financially. What makes us a financial team is that we regularly discuss what we're doing with our money, how things are working, if this week or month is going to be tight because we sent money to our moms or had a big expense of some sort or our architectural license fees came due during the same month we had to renew our NCARB record, etc. Even though many financial advisors and planners call our arrangement symptomatic of a lack of trust, and that if we really were a team we'd share a bank account, we're just not seeing it. It doesn't make sense for us.\nSo, I ask again: how do you handle money in your household? How do you deal with roommates, partners, whatever?"} +{"text": "There’s one thing that Wil Wheaton wants to make very clear: “Memories of the Future” is not, repeat, NOT a “tell-all” book about his time working on “Star Trek: The Next Generation.”\n“It was extraordinarily important to me that this was not some kind of stupid, gossipy book,” Wheaton said. “I despise that kind of thing. I just hate it. It’s the reality television of literature, and I absolutely cannot stand it.”\nIndeed, “Memories of the Future” is instead a funny review of, and a loving tribute to, the first season of “Next Generation,” which began its television run in 1987.\nI also saw that Happiest Days of Our Lives was used as an example of one of those new-fangled paper-style books:\nThat entire post is really funny and clever, and I think you should read the whole thing. Go ahead, I'll wait.\nSee? Wasn't it funny? I like clever writing that is funny.\nSpeaking of The Happiest Days Of Our Lives, I know a non-zero number of people have been waiting very patiently for the special edition to be released by Subterranean Press. I wanted to explain, again, why it's been a year: After the book was announced, I spent almost two months digging through published and unpublished material for the expanded parts of the book, then I spent another month or so rewriting and polishing the stuff that made the cut. After that, I wrote additional introductions and notes to go with each chapter. That was the first delay (and, honestly, I thought it was entirely reasonable, since the book was announced as a pre-order) The biggest delay, and the first serious problem, though, was a software compatibility issue between me and the copy editor. OpenOffice and Word don't track notes the same way, but neither of us knew this until we'd both spent a lot of time working in our respective suites, completely oblivious to the work of the other. Finally, we realized what was wrong, and had to go all the way back to the beginning of the copy editing process the old way, printing the entire manuscript out on paper and making notes in the margins. It had a certain nostalgic value, but it took forever to get all that shit straightened out.\nSo that process, which should have taken a couple weeks, took close to three months. Then, once we got that all squared away, I had to get a bunch of pictures together, caption them, fact-check the captions with my parents and siblings, then get all that stuff to Subterranean Press. I also held up this part of the process for a couple more weeks while I looked for even more unpublished pictures that neither me nor my mom could find.\nFinally, I asked my son Ryan (who is a creative writing student) if he wanted to write an afterword. He said he would, but it would take some time because he's in college and has his own responsibilities. I was willing to wait, because I thought it would be awesome to have his contribution to in the book, and I figured at this point (August) another couple weeks didn't make that big a difference. It ended up taking about 6 or 8 weeks, but I think it will ultimately be worth the delay (please note that I am not an objective source of information in this regard.)\nFinally, the manuscript was turned in, the pictures were approved, the layout was all set ... and then the signature pages arrived. I had to sign something like 2500 pages, and it was important to me that each one looked like it was the only one I'd signed. I could have blown through it, of course, and gotten it done in a couple of days, but that would have guaranteed disappointment to everyone who bought the book and waited almost a year to get it. So I limited myself to between 50 and 75 pages at a \"session,\" and it took several weeks to work my way through them all.\nOh, also, keep in mind that during all of these months, I was working on other projects, including several television shows that took me away from the Happiest Days project for weeks at a time.\nSo all of those delays stacked up on top of each other, until everything was finally finished about six or eight weeks ago. I realize that this is a very long time to wait for something, and I also realize that I've probably killed any chance of doing other special editions with Subterranean Press because this one took so long, but I sincerely believe that it will be worth the wait, because I've seen it, and it's something very special."} +{"text": "WireScope 350 / DualRemote 350 Kit. Hand-held cable analyzer covers Cat5 Cat5e Cat6 & SM MM Fiber. Network Analyzer Supports UTP, STP, Fiber and coaxial Cable\nOn SALE at AAATesters.com\nTo Sell your Fluke DTX-1800 Cable analyzer or other Test Equipment use the contact form at the bottom\nOn Sale WireScope 350 / DualRemote 350 Kit\nInsure your network's continued high performance with Agilent's line of handheld network and cable analysis and troubleshooting tools.\nN2600A WireScope 350\nThe WireScope 350 is a Category 6/Class E hand-held network cable analyzer offering color touch screen, outstanding test performance, ease of use and graphic reporting.\n* Certifies compliance of installed LAN Cabling to TIA Category 6 and ISO Class E Standards\n* Support for Cat 6 Channel & Permanent Link Certification\n* Accuracy beyond TIA level III requirements traceable to laboratory reference standards\n* Tests installed multimode or single-mode optical fiber via Fiber SmartProbe attachments\n* Expandable test result storage on removable compact flash memory cards\n* Automated TIA-606-A Cable Identification Solution\n* Included ScopeData Pro software produces professional quality graphic test reports\n* Easy to use color touch screen interface minimizes training requirements\nReady for Category 6 and Beyond\nThe WireScope 350 provides comprehensive support for all current and emerging LAN cable certification standards including Category 6 / Class E channel and permanent link. Offering outstanding test performance, ease of use and graphic reporting, the WireScope 350 is the ultimate tool for LAN and cabling professionals.\nSuperior Measurement Performance\nWireScope 350 is based on frequency domain testing, the same principle used by the world's most accurate Network Analyzers. Its unmatched hardware accuracy is further augmented by state-of-the-art software algorithms including a novel patent pending Enhanced Auto Cancellation Technology to automatically cancel the interface and adapter effects from the test results. This automatic and dynamic compensation assures superior repeatability and accuracy with continuous usage of the instrument. Major cabling manufacturers in the industry have endorsed the superior measurement performance of WireScope 350.\nColor User Interface\nA bright color touch screen simplifies navigation through menus and improves comprehension of test result data, resulting in faster operation and reduced training times. Test setup advisor screens assist the operator when configuring test options, minimizing the chances of inadvertently testing to the wrong limits. All settings can be defined on a PC and downloaded in a single operation, speeding the process of configuring multiple WireScope 350 sets for the same job site testing requirements\nClick here to view image.\nUniversal SmartProbes Enable Accurate Cat 6 Testing\nThe WireScope 350 supports category 6 testing with Universal Link & Channel SmartProbes which have been designed to maximize Category 6 / Class E certification test margins for virtually all brands & categories of cabling.\nAgilent's Universal SmartProbes guarantee TIA Level III accuracy and optimized test margins when used with standards compliant category 6 cabling may be the only test cords you need for category 6 certification.\nClick here for more details on universal link & channel testing with the WireScope 350.\nGiven the significant improvement in the quality and consistency of category 6 connecting hardware, it may no longer be necessary to purchase manufacturer-specific link test cords to match the connecting hardware in the channel under test. Of course Agilent still offers a large selection of manufacturer-specific category 6 Link and Block SmartProbes.\nClick here to view a list of available manufacturer specific link and block smart probes.\nMeasurement accuracy can also suffer if worn out test adapters are used. To minimize accuracy problems, the WireScope 350 uses \"SmartProbe\" test adapters that contain their own configuration data and a counter that logs the number of tests they have been used for. AAATesters carries a full line of the Wirescope product line here is a list of models and model numbers included:\nN2600A Wirescope 350, FrameScope 350, N2597A, Fiber SmartProbe N2620A, FrameScope Pro N2640A, WireScope Pro N2640A-010, ScopeData Pro Software, N2600A-100 Wirescope, Wirescope 155, Wirescope350, Wirescope155, N2597A-030, N2597A-040, N2597A-031, N2597A-032, N2597A-041, N2597A-042, Multimode Fiber SmartProbe Kit, Singlemode Fiber SmartProbe Kit, N2600A-130, N2600A-150, N2604A-200, N2605A-134, N2605A-135, N2596A, N2605A-050, N2595A-091, N2604A-301, N2605A-137, N2595A-095, N2597A-040, 2-Way Singlemode Fiber SmartProbe, N2605A-135, N2605A-132\nFor Sales Email at: firstname.lastname@example.org\nVisit us at: http://www.AAATesters.com\nAgilent WIRESCOPE 350 Cable Certifier"} +{"text": "Clearly, WNST.net is throwing the biggest parties in New Orleans this weekend for the Super Bowl and the amazing fun we all plan to have here in The Big Easy is made even better when you participate and join us for biggest Baltimore Ravens fan celebrations ever.\nYou can purchase our WNST V.I.P. Super Party wristbands that give you special access at ALL of our parties as well as several bars on Bourbon Street for $115.70 by clicking here: http://wnst.net/brian-billick/buy-our-wnst-super-v-i-p-party-pass-and-soak-up-the-excitement-of-new-orleans/\nWe have FREE EVENTS every day and you can buy tickets at the door with cash only at all of our ticketed events as well. So, if you’re feeling spontaneous and looking to spend quality, memorable time with Baltimore Ravens fans, this is our schedule of events:\nA free event from 6 p.m. til ??? at Empire (located at 300 Decatur) in the French Quarter. This bar is COMPLETELY purple and will be the pickup site for all who purchased WNST V.I.P. Party wristbands for admission to all of our weekend activities. Great food, cold beer and awesome music. This is our “meet and greet” but you’re welcomed and encouraged to party all night with us in the heart of New Orleans. And, yes, the picture here is what Empire looks like on the inside. It’s all purple already!\nSATURDAY (Two events)\nDAY: Our purple pep rally and outdoor cookout begins at noon and is FREE AND OPEN to all Baltimore Ravens fans. WNST partner and Super Bowl-winning head coach Brian Billick will be on hand to meet and greet all of the purple faithful. Come to Toulouse at The River and we’ll be under the green and white pavilion that sits behind Jackson Brewery and the Famous Gumbo Pot. If you can see the giant Houston Oilers-style derrick, you’re almost there. Just walk to the water past Decatur and look for the Steamboat Natchez riverboat! This is also the site of Sunday’s party!\nOur cruise on the Steamboat Natchez is a ticketed event and you’re welcome to join us for a delicious jazz lunch and cruise from 2:30 ’til 4:30 on the Mississippi. Boarding begins at 2 p.m. and tickets are $60. For more information is available here: http://wnst.net/top-story/crabs-n-beer/cruise-mississippi-natchez-on-super-saturday-in-nola-with-billick-wnst/\nNIGHT: Doors open at 7 p.m. at The Howlin’ Wolf for a gigantic Baltimore Ravens fan celebration and concert with New Orleans locals and Grammy Award winning Rebirth Brass Band (show starts at 11 p.m.). Cold beer, great Cajun food and awesome music and dancing all night. This is a ticketed event ($25) and a two-day pass can be purchased for $40 for both big nights at the “purple ground zero” for all Ravens fans in New Orleans here: http://wnst.net/nfl/legendary-howlin-wolf-will-be-purple-ground-zero-for-all-baltimore-ravens-fans-in-nola/\nSUNDAY (Three events)\nOur pre-game tailgate and purple march are ABSOLUTELY FREE AND OPEN TO ALL BALTIMORE RAVENS FANS!!!\nBeginning at 10 a.m. on gameday, we’ll have cold beer, drinks, great food and awesome purple music from legendary DJ Bobby Nyk at the foot of Woldenberg Park. Come to Toulouse at The River and we’ll be under the green and white pavilion that sits behind Jackson Brewery and the Famous Gumbo Pot. If you can see the giant Houston Oilers-style derrick, you’re almost there. Just walk to the water past Decatur and look for the Steamboat Natchez riverboat!\nThe Natchez will serve as a giant bar all day and all Baltimore Ravens fans are welcome to board the boat, dance and drink all afternoon leading up to our big purple stampede up Poydras Street to win the Lombardi Trophy.\nThere will be five hours of partying before we begin our historic Mardi Gras march to the Superdome at 2:52 p.m. to honor Ray Lewis. All details, maps and information regarding the march are here: http://wnst.net/nfl/gigantic-purple-march-to-honor-ray-lewis-set-for-252-p-m-sunday-in-new-orleans/\nIf you are NOT going to the Super Bowl and want to watch the game with all Baltimore Ravens fans, you’ll want to head to The Howlin’ Wolf (S. Peters & St. Joseph) in The Warehouse District where the game will be shown on the big screen.\nOur post-game celebration will commence at 10 p.m. and this is a TICKETED event with the 8 Ball Brass Band playing the victory party. Advance tickets are $25 but you can purchase a two-day pass for Saturday/Sunday nights concerts here: http://wnst.net/nfl/legendary-howlin-wolf-will-be-purple-ground-zero-for-all-baltimore-ravens-fans-in-nola/\nNew Orleans never seems to shut down or sleep.\nAnd when the Baltimore Ravens win this Super Bowl title, we expect it to be a long, long night of partying at The Howlin’ Wolf into the wee hours."} +{"text": "The 2013 Major League Soccer season shoved off from the shores of the Delaware River on Saturday. The host Philadelphia Union were the dominant team in the match, but Sporting Kansas City took better advantage of their fewer chances and ended victorious 3-1 on a chilly March afternoon.\nThe story of this match for the Philadelphia Union was the return of Sebastien Le Toux. It was a cinch that he would start, but the questions were, “Where?” and, “In what formation?” Le Toux was the lone forward in a 4-2-3-1 formation. The Farfan twins flanked Keon Daniel in the attacking midfield, and that left Jack McInerney and Conor Casey to bench work. Newcomer Jeff Parke dropped straight into the lineup, pairing with Amobi Okugo in central defense.\nThe Next Chapter For KC\nSome offseason moves have left KC plugging a few holes in their lineup. Their back 5 was their one area of solidity, a defensive corps that has been relatively static for two years. Jimmy Nielsen kept net with a Chance Myers-Aurelien Collin-Matt Besler-Seth Sinovic backline. The losses of Kei Kamara and Roger Espinoza to the Barclay’s Premier League were met with the purchase of Ecuadorian striker Claudio Bieler, and the acquisition of Benny Feilhaber from New England. Peter Vermes stayed with his usual 4-5-1, using Bobby Convey and Graham Zusi as flanking midfielders to Bieler’s forward position.\nThe entire match had to leave Union fans remembering 2011, at least from an attacking viewpoint. The team had one of its strongest matches from an attacking perspective since the departure of Le Toux. It could be a function of their opponent – last season, the Union put 4 goals past Kansas City, and thus Sporting may be a good matchup for the Union.\nFrom the get-go the Union looked dangerous. Gabe Farfan forced Nielsen to make a solid save in the 4th minute, and the left winger spent plenty of time pestering Myers down KC’s right side. In the 17th minute, it was some interplay between Gabe Farfan and Keon Daniel that set up the Union’s opening goal. Daniel faked a pass to Farfan down the left flank, and quickly floated a ball behind the KC defense. Le Toux controlled the ball near the penalty spot, and powered a shot off Nielsen and into the goal for the 1-0 lead.\nLe Toux then had another great chance one-on-one with Nielsen 6 minutes later, but the French forward scuffed his shot to the left of goal. The 25th minute saw Raymon Gaddis hacked down just outside the area by Collin, drawing a yellow. The resulting free kick by Michael Farfan from the left forced a great save by Nielsen.\nKC Wakes Up\nPhiladelphia appeared to be in control through the half-hour mark, but that was when Sporting began to exploit the Union’s attacking intent. A warning shot was fired on a through ball in the 31st minute, as Parke had to clear the chance away from Convey.\nSome sloppy coverage led to the equalizer within 5 minutes of halftime. Convey was able to swing a cross in from the left, and Bieler got the ball down out of the air to a wide open Feilhaber. His laser shot was stopped by MacMath, but the rebound came out 3 yards in front of the young keeper. Zusi was in the right position to send the bouncing ball into the top half to knot the score at 1.\nSecond Half To Sporting\nThe first 15 minutes of the second half were guarded for both teams. The game changed in the 66th minute though, three minutes after Convey was brought off for Sapong. Sapong drew a free kick about 25 yards from MacMath’s goal as Sheanon Williams dragged him down. Zusi swung in the free kick, and Uri Rosell flashed a few yards in front of MacMath. The Spaniard headed the ball past MacMath to grab the lead at 2-1.\nAs the Union chased the game with attacking substitutions (McInerney for Gabe Farfan and Roger Torres for Michael Lahoud), Kansas City pounced on another opportunity. This time, Bieler earned his first goal in the light blue. Myers cut a ball back from the right flank to Bieler just inside the area. He controlled it, and had enough time to place his shot to the far post. The third KC goal put an end to the Union’s hopes, and gave Sporting a good road victory to open the season.\nSporting Kansas City (1-0-0) will travel to Rogers Centre in Toronto to face TFC on Saturday next week. The Union (0-1-0) will also be on the road Saturday, and will look for their first victory against the Colorado Rapids. Both teams have some room for optimism. KC was not dominant, but were clinical and got their new Designated Player on the score sheet. Philadelphia looked dangerous and played well against a better team. If their finishing improves and limit mistakes, they could work their way into playoff contention."} +{"text": "Folks from all walks of life shared their very passionate views with me. Heterosexuals, homosexuals, and immediate relatives of homosexuals all took the time to share some very poignant, well-thought-out words. I felt very humbled as I read them, as if I somehow didn't deserve to be mixed into this debate. All I did was write: they live this every day.\nSo as I scan through the words below, the comments you have all left, and the messages you have sent me via e-mail, I can't help but feel that my 638 words changed the world just a little bit. I'll keep your words in mind when I pick up my pen to write my next article. Everything I publish should be an opportunity to challenge, teach, and ultimately enlighten. Thank you all for confirming that this is the path I should take. Here goes (and, again, apologies for the length):\nThanks for your thoughtfully composed article on same sex marriage. I'm always moved by your ability to string words together into a heartfelt piece about important issues in the world today. You say so much but the deep feeling I always come away with is \"love one another.\" A simple admonishment that isn't easy to practice.---\nI just wanted to send you a note to thank you so much for today's article on gay marriage!! I am so heartily sick of people arguing over issues they know nothing about and who assume that because they are RIGHT, they can say whatever they like with little regard for \"the other side's\" opinions, convictions or personal feelings.\nI can assure the RIGHTS group that there are very few families who do not have at least one gay family member (in or out of the closet) within their extended clan. Before they get even more offensive about something that is really none of their business, perhaps they should speak to their gay relatives to find out what type of discrimination they face every day!\nThank you, thank you, thank you for your column in today's Free Press. Your words are right on. I wish your column could be reprinted in newspapers all over the U.S. and Canada.---\nWow - loved your column today! I couldn't of said it better. Religion in my opinion is for people who can't think for themselves. I live in an openly gay relationship. Most of our friends are straight married couples. Next year I will have been with my partner for 25 years. If we chose to marry - whose lives would be affected?---\nI saw your article in the London Free Press the other day. What an wonderful piece. You said it all. Amen. God Bless You and Your Family---\nThanks so much for telling the truth, even when it's not the most popular viewpoint! How refreshing. It may seem obvious to most of us, that homosexuals have nothing to do with the downfall of marriage, but apparently, in this twilight zone that is our society, that's not the case.---\nFinally. Someone who has commom sense about this issue. Someone who also realizes that if straights could be put in jail for failing to keep their marriage vows, most of them would be inside rather than outside the bars.---\nStraights use the bible only as a convenience, only when it serves their purpose to pick and choose what they what to believe. Well let them throw their stones because there is a higher power that will pass judgement on their hate and discrimination.\nThanks Carmi. Well done.\nUnfortunately you probably will not receive many positive comments to your column on same sex marriage, but here is one: \"Well said ! Well written ! Good for you !\"---\nI do not feel, nor does my wife, that our healthy, 42 year heterosexual marriage is in any way threatened by this legislation. Nor do we feel that our God supports the hypocrisy and strident whining from the closet homophobes who oppose it.\nWhat you wrote needs to be said. Our thanks for a job well done.\nYour argument involving religion and discrimination was very effectively written. I have never understood how happily married couples in a traditional marriage could ever feel threatened if their legal union was equal to a same-sex union. To drag religion into the equation is just poppy-cock!!---\nI appreciate your comment that building bridges rather than walls would bring us all closer together, and agree that is what God would ultimately want for us as a society. We finally accepted that the concept of unwed moms, legal common-law marriages with children, families not led by a mom or dad (children raised by other relatives) and married couples without children, by choice or infertility, are still considered families.\nI find it impossible to swallow that some people can find a way to generalize an entire group of minorities and label them with falsified arguments. Ignorance is a tragedy that happens in many degrees and seems to be conditioned to human nature.---\nCarmi again: I suspect the debate doesn't end here. I invite you all to continue to use Comments, e-mail and any other tool you've got to share your thoughts, both with me and with each other. I'll be watching the paper in the days to come in case any additional letters to the editor are published. I'll share whatever else I come across in future postings.\nIn the meantime, I offer you all my heartfelt thanks for supporting me through this process. I am once again thanking my lucky stars that I decided to do this for a living. What an experience."} +{"text": "Submitted by slavemeeting on Wed, 23/03/2016 - 12:49am\nOther special requirements:\nLooking for a fosamax? Not a problem! If you would certainly like to receive additional facts relating to fosamax kindly see ---- http://company-article.info/med/fosamax ---- Guaranteed Worldwide Shipping Discreet Package Low Prices 24/7/365 Customer Support 100% Satisfaction Guaranteed. Tags: best price fosamax free shipping moneygram no prescription fosamax alendronate sodium in internet paypal fast maryland cheapest generic fosamax melbourne buying fosamax general health in internet medicine cod accepted new mexico synthroid and fosamax empty stomach low cost fosamax in internet drugs saturday shipping california buy overnight fosamax low price fosamax online mastercard no rx west virginia https://jsfiddle.net/v0408stw/ online fosamax and fedex garden grove generic fosamax canadian pharmacy low price fosamax american express online fosamax avascular necrosis can i buy fosamax in internet moneygram saturday shipping utah #fosamax generic fosamax manufacturing fosamax dental side effects bone loss buy fosamax rx online get fosamax 10mg online visa no script ohio where to get fosamax 35mg online shop fedex north carolina can i purchase fosamax online tab priority mail virginia want to buy fosamax in internet coupon fedex canada order fosamax online approval buy brand fosamax alendronate sodium in internet tablet free shipping malaysia generic fosamax sold in the us fosamax in internet no doctors tennessee fosamax online legitmate canada netherlands pharmacy fosamax monthly fosamax buy cod fosamax in internet pills priority mail manufacturer of generic fosamax fosamax rebate coupons fosamax 500 mg bestellen indication for fosamax buy cod fosamax in internet jcb fast iowa buy brand fosamax western union without script buy brand fosamax in internet medicine saturday delivery rhode island buying fosamax in internet check fast maine fosamax online fedex fosamax and buy i want alendronic acid fosamax online saturday shipping canada discount alendronate fosamax fosamax and coumadin drug where to buy fosamax alendronate sodium fedex maine wholesale fosamax without a perscription shipped overnight i want fosamax paget's disease in internet no prescription pharmacy fosamax online jcb fast delivery pennsylvania want to buy fosamax in internet rx fedex oklahoma abuse of fosamax 70mg in internet shop without script new york conditions for which doctors prescribe fosamax low prices for generic fosamax next day no prescription needed how to buy fosamax in internet amex no prescription new york purchase online fosamax 70 mg ordering fosamax without prescription fosamax rx side effects order ditropan ointment online fosamax interaction corporation share price best price alendronate sodium fosamax jcb maine can i buy fosamax in internet diners club fedex indiana fosamax treatment for seborrheic dermatitis fosamax study low cost fosamax online moneygram saturday delivery wyoming when will fosamax generic be available? abuse of fosamax in internet western union overnight alabama no prescription saturday delivery fosamax fosamax patient information bone loss find fosamax samples with check actually on line need fosamax in internet visa saturday shipping south carolina want to buy fosamax online american express fast usa buy brand fosamax 35mg in internet tablets mississippi cheap fosamax in internet drugs no rx massachusetts how to get alendronate sodium fosamax drugs no script buying generic fosamax from yp healthcare from india can i buy fosamax general health online pharmaceutical priority mail nevada alendronic acid fosamax online no prescription new mexico get fosamax alendronic acid online pills saturday shipping idaho get alendronate sodium fosamax priority mail get fosamax online buy fosamax at a discount where to order fosamax online purchase fosamax alendronic acid online wire transfer podcast boniva fosamax alternatives Online pharmacy drugs do not fall on this category. No, not the canned meat variety - spam is like the junk mail that you receive inside mail box, just in the electronic form. Choose cloth napkins at home and bring your own personal reusable water and occasional cups to operate. If you're interested in certification to improve your career potential being a Georgia pharmacy tech, then look into the Pharmacy Technician Certification Board certification program. Some like to help people, others just like the science aspect of the job. Chances are there is going to be only one person working the drive-thru at any time whereas there will likely be multiple people working inside. The tech will enter orders, check orders, process requests for insurance and patient information among other things. Many require math and science coursework, and prospective students should know about what those prerequisites are and whether they meet them. In the situation of pharmacy specialist jobs, giving the wrong prescription is the widespread error that is certainly certainly mostly documented. By giving your pharmacy the complete name of the medication you are able to better safe guard your health. Important point being noticed is always that cost can't be the first consideration. Use those outlines as being a roadmap to aid you study for that pharmacy tech certification test. However, please be guided from the average hourly and annual salary data provided. If the trouble is not treated on an extended period of time, it might lead to serious complications including cancer. This institute is situated in Mohali, Punjab and is also completely dedicated towards advanced studies and new researches on pharmaceutical science.\nWhat region are you from?:Scotland"} +{"text": "Tums manifests its antacid magic in \"Angry Bear,\" where the aforementioned animal steals food, overeats and goes back in for one more score: the Tums.\nThere's something about the sight of a bear, far-off and out of decapitation range, that totally numbs us to its potential malevolence. It's like, \"Aww, look at the bear eating all the pizza. Look at the bear breaking the watermelon. Look at the bear getting the Tums for its tummy.\"\nYou kind of want to curl up around it and fall asleep while it's lying against one of those gutted cars, nursing a food hangover.\nTo make kids act more energy-smart, the Department of Energy launched Lose Your Excuse, a painfully cute website* that encourages engagement and boasts a 10-step energy \"action plan\" to download.\nTwo quirky little ads drive traffic in its direction. Each features a kid getting caught in a lie about why s/he hasn't become more energy efficient. (I know that vibes like the Spanish Inquisition, but the execution is feel-good and funny).\nExcept there's no Coke, and lots of Domos.\n\"Jump Rope\" -- chock full of delicious images and noises -- was put together for client Nike by AKQA. Creativity Online pegged its position \"the escapism of exercise.\" Well-said.\n- Somebody just sent us a link to KillaBanker.com, a little CafePress store where you can buy knee-jerk reactions to economic despair.\n- Hanzi Smatter, a site \"dedicated to the misuse of Chinese characters in Western culture,\" is hilarious. See awkward interpretation of tattoo on a model featured in AussieBum's Commando ad.\n- Kellogg's brand rep suffers following Phelps fallout.\n- What ho, a Dairy Queen blog.\n- More jibjab over Arnell/Tropicana.\nWitness with a growing sense of unease as a couple on its first date quotes lines from Romeo & Juliet.\n$5 says they met on eHarmony.\n\"How Romeo Pulls Juliet,\" which vibes like a middling tribute to Baz Luhrmann's '96 oeuvre, was put together by Madeinmilan Wine. The company wanted to \"tell a story about having fun with wine, indulging in intense pleasure\" while incidentally promoting a suite of wines named after iconic characters, like Romeo. (There's also a bottle marked Brutus. Hrm.)\nFor requisite engagement purposes, check out the \"wine pairing\" section, where you (apparently...?) pair wine to other things, like \"travel\" or \"chill out.\" (We have NO idea.)\nClick on \"sex\" for an exciting shot of a mad couple crawling around on all fours. We're not sure why it's there, but it struck us as one of the few things worth mentioning at all.\nRemember those Little Thickburger commercials from last year? Riffing off that, Hardee's launched an ad generator app so fans could create their own Thickburger comparisons.\nThe company expected maybe one or two to shine, but it turns out about 16 spots turned out to be broadcast-quality. (Though when you think about it, it's a pretty tough formula to screw up: [Big thing. Little thing.] Extra points for wordplay.) See them here.\n\"And we didn't even offer them a million dollars. Or anything for that matter,\" Hardee's added, puffing its chest out for extra effect.\nWith help from Cactus, ONE Step focuses on protecting the health of young children by encouraging smoker parents to go outside before lighting up.\nThe narration is soothing and the message doesn't direct smoking wholesale, although the smoke dragons and flesh-eating ravens -- which malevolently circle and eventually engulf the kiddies -- make things just uncomfortable enough.\nWe'll step outside, and we don't even have kids. Though this doesn't provide a gameplan for what to do when little kids walk by, but hey, those ones aren't yours.*\nMore on this at raisesmokefreekids.com.\nCNBC does the financial thing by day but they get all \"original programming\" at night. To let people know, they've launched some Woods Witt Dealy & Sons-created, program-specific ads to hype the shows. With the headline, \"Show Me the Money,\" one ad touts American Original: Westminster Dog Show, a backstage look at the inner workings of the $43 billion pet industry. PETA?\nAnother ad carrying the ever-appropriate headline, \"Demolished,\" examines \"how the American dream became a nightmare\" in a show called How the American Dream Became A Nightmare. Hmm, now that sounds like some seriously depression-inducing programing.\nBut, hey, we gotta face facts. Pet shows are stupid and the American Dream does not mean everyone should own a home.\nSee both ads here and here.\nDIRECTV reminds us all of its relevance (...?) with help from fictional rival Cable Corp Inc. In this latest installment of boardroom bumbling, Cable Corp decides to battle DIRECTV with a new tagline: \"Get Youthenized!\"\nEnter creepy puns. By Deutsch/LA.\nCollegeClickTV.com hopes to encourage more kids to get a college education -- and possibly get into football? -- by broadcasting soothing pro-college messages, spoken by President Obama, on network TV.\nHear everyone's favourite political personality wax poetic about the merits of an education -- and football -- while a static image reads, \"And now a message about... COLLEGE ...the best investment that you can make.\" CollegeClickTV's URL appears at the end of each clip."} +{"text": "Artist Spotlight: Alexander Guerra\nAlexander Guerra is an artist and photographer from Miami specializing in self-portraiture. Currently he is engulfed in his alter ego The Rabbit. The Rabbit is the central character in his images, set in both surreal scenes and real environments. His work is a provocative mix of bizarre travel stories as well as more offbeat contemplative pieces. Guerra's Rabbits are awkwardly posing, sometimes suggestively sexual and mysterious, while other times playful and mischievous. Guerra builds a tension between the innocence of a bunny and a sexually aggressive, very male hare. The Rabbit is Guerra's demanding inner exhibitionist. And yep, we are there to be his audience.\nOver the past year and a half, Guerra has unleashed his Rabbit army on the world, immortalizing his Rabbit in Paris, Tokyo, Rome, Beijing, and Sydney. His self-portraits become both his souvenir and the postcard sent home.\nThe Advocate: Why are you a photographer?\nAlexander Guerra: The \"why?\" I do not know. I do know that my memory/mind is very photographic — always has been — and I've always seen things in these imaginary frames. That said, my images are an extension of my mind. A backup drive, if you will. A kind of flash drive that I share with others.\nWhat started you on this particular series?\nI started the Rabbits last summer in Paris (Le Lapin, La Nuit). My boyfriend is French, and this was the second time that we visited the city. The first time was a short trip and a rat race for me to see all the sites. This second trip was going to be a week long. Being a fan of fashion magazines, I knew I couldn't waste the scenery. I knew that I wanted to shoot around the city with a sense of a high-fashion editorial. I'd have this opportunity to immortalize my alter-self in arguably the most beautiful city in the world. The city of lights. So I did.\nI get asked this question all the time. Recently, I was at my mom's house and, while cleaning out a closet, we found two pieces of artwork I made as a child. One was a rabbit I made out of paper plates and crayons, and the other was a story I wrote about an Easter Bunny. Since childhood I've been drawn to rabbits, but it was subconsciously as an adult that I would rediscover, accept, and evolve that desire to my alter ego.\nAny interesting things happen while shooting on location?\nThis summer I was in Lisbon. A beautiful city and an amazing backdrop for my \"LisBunnies.\" While shooting one night in front of yellow trolleys, these taggers began tagging the trolleys. What were my boyfriend and I to do? I could chase them in a bunny mask — and do what? We gave in to the moment. I shot some pictures of them, finished my shoot, and we hopped along.\nDo you need to be sure to pack rabbit stuff whenever you travel?\nYrs! (Cue my boyfriend's eye roll.) This year I started making my own masks with lots of thought given to locations. I'm borderline obsessive-compulsive when it comes to my art. Like a celebrity wouldn't wear the same outfit twice on the red carpet, I find it hard to shoot the same mask in different countries and cities. Since I make them, there's nothing stopping me from making a new mask for each location, and I do. This summer I took a Mediterranean cruise. I packed four masks with potential wardrobes for each, including a girl's uniform skirt for my Roman the Rabbit. I also packed four Ziploc bags with enough thread, safety pins, and fabric to make four more masks while on the trip. I also like to incorporate local clothing bought while visiting the city. The red vest in Marry the Night was a purchase I made in Tokyo, which was way better than the tank top I originally brought for the shoot.\nWhat do you still want to do with your rabbit-oriented work?\nI want to create Rabbit sculptures and would also like to create multimedia work incorporating my childhood portraits in Rabbit masks. I'm currently working on the latter, which is a tie in to a childhood memory.\nWhen I was little I loved to put on a show. My dad would take my brother and me to the movies and I would dance with my eyes closed in front of the screen and I wouldn't stop till the music stopped and the people would clap. I lost that around puberty and became self-conscious. The rabbit mask allows me to revisit that kid at the theater, and the multimedia work of meshing my childhood pictures and Rabbit masks is a visual extension of my childhood memory."} +{"text": "A proposal in the state Senate would make it illegal for young drivers to use a cell phone while driving, and would also ban anyone from using a cell phone while driving in a school zone.\nSenate Bill 459 was introduced by Sen. Vince Sheheen, D-Kershaw, in February and has gone on to the Senate Judiciary Committee and Subcommittee.\nThe bill would make it illegal for a person with a beginner's permit or restricted driver's license to drive while using a “cellular telephone or text messaging device,” and would also make it illegal for a person to drive through a school zone while using a cell phone or text messaging device when the school zone's warning lights have been activated.\n“The goal is to focus on particularly risky situations involving distracted driving. It's like a laser beam focus,” Sheheen told the Aiken Standard. “My kids are 16 and a half. The last thing as a parent I think should be happening is that my sons should be texting while they're driving down the road. They're still perfecting their driving skills.”\nSheheen said he was motivated to push for a texting and driving ban after a visit from a police officer.\n“He said, 'Mr. Sheheen, I was almost hit by a parent who was texting while they were dropping their kids off at the school,'” Sheheen recalled.\nThe General Assembly has grappled with texting while driving before, including a similar bill last year that Sheheen sponsored. It was approved by the committee but failed when it went to the full Senate.\nSheheen said the legislature has had particular trouble getting such bills through the Senate, but said some new faces will be helpful in getting the bill passed.\n“There's a large number of senators who are a little more to the right of your average person in South Carolina who generally have blocked that bill from passing,” he said. “I think the change in personality and governance makes it possible. There's a younger group of people who represent the state. A lot of younger people understand that, while texting is a convenience, we need to be careful in its use.”\nSen. Shane Massey, R-Edgefield, said limiting the use of hand-held devices for inexperienced drivers is “easy” to support. He also supports a statewide ban on texting for all drivers.\n“There's no way that you can give proper attention to the roadway if you are holding something in one hand and simultaneously looking down at it,” he said.\nMassey agreed with Sheheen that the Senate has been a “roadblock” for texting while driving bans, but said he's encouraged by the Senate's new makeup.\n“The opposition to a texting ban has been pretty interesting,” he said. “… There are those folks who say that it doesn't go far enough, that if you're going to address texting while driving, you ought to address all forms of distracted driving, whether that be eating, reading, putting on makeup – whatever. There are also those who say it goes too far, that we should not be limiting experienced drivers in that way.”\nSen. Tom Young, R-Aiken, voted for a similar ban in 2010 while in the House of Representatives, and, like Massey, supports a ban on texting for all drivers.\n“I support a ban on all texting while driving because it is a safety issue – texting while driving is dangerous,” Young said. “Banning texting while driving is one way that we can make our roads safer.”\nIf the bill becomes a law, violators could face a fine of up to $500. Sheheen said such a law would be easier to enforce in a school zone.\n“Parents and other drivers are close to the officer,” he said. “They're going slower and the officer can observe what they're doing.”\nSgt. Jake Mahoney, a spokesman for the Aiken Department of Public Safety, said seeing people texting while driving is a “routine occurrence.” He said enforcing such a ban would be similar to seat belt enforcement, which depends on what an officer can see inside a vehicle from his position on the roadway or from a stationary standpoint.\n“I've responded to several vehicle collisions over the past year or more where texting or talking on a cell phone was listed as a contributing factor to the collision,” he said. “Any activity in the vehicle, or anything a driver does while driving that takes his eyes off the road and attention off driving, is extremely dangerous.”\nSouth Carolina is one of six states that doesn't have a ban on texting while driving, according to the Insurance Institute for Highway Safety. Several other states have partial bans.\nSeveral cities in South Carolina, including Clemson, Columbia, Beaufort and Sumter, have implemented their own local bans on texting while driving."} +{"text": "COLUMBIA — With the personnel decisions for his South Carolina basketball team complete, Frank Martin will leave on Monday for a trip where he’ll get to make a more unusual choice.\nMartin’s an assistant coach for the United States’ World University Games team, which means tryouts at the U.S. Olympic Training Center in Colorado Springs, Colo., starting Monday, and then a long flight to Kazan, Russia, for the Games, July 7-16.\n“They say the popular dish over there is bear,” Martin said.\nMartin isn’t sure if he’ll try it. If he gets the chance, he said he’ll wait to see where the moment takes him. For as wary as Russian cuisine might make him, Martin begins the trip feeling hopeful about what he leaves behind.\nSince becoming a head coach in 2007, at Kansas State, he has never been away from his program for this long. He enters his second season at South Carolina preparing to debut eight players, including a transfer point guard, compared to six returning players, because four guys left in the offseason with eligibility remaining. Martin also has a new assistant coach, former Miami head coach Perry Clark, who replaced Brad Underwood, now the head coach at Stephen F. Austin.\nWith summer workouts underway, everything’s in place for Year 2. But many questions remain about these Gamecocks, as they try to avoid their fifth straight losing overall record and rebound from Southeastern Conference records of 2-14 and 4-14 the past two seasons.\nCan highly regarded shooting guard recruit Sindarius Thornwell contribute immediately? What will point guard Tyrone Johnson, a Villanova transfer who will be eligible after the first semester, bring to the backcourt? And will the Gamecocks be able to rebound while playing rising sophomore wing Michael Carrera more on the perimeter, as Martin wants to do?\nWhat’s clear to Martin, at the very least, is his team is longer. That was perhaps the most obvious part of USC’s recent individual workouts. Thornwell, who is 6-foot-5, could add perimeter defense. Ditto for Johnson, who’s 6-3. Three freshmen forwards will also offer length: Demetrius Henry (6-9, 210 pounds), Reggie Theus Jr. (6-6, 190) and Desmond Ringer (6-9, 260).\n“We’re bigger,” Martin said. “It’s the first thing you notice when you’re on the court. That’s something that was important. You’ve got to have size, either at the rim or on the perimeter. Last year, we didn’t have size on the perimeter or at the rim. That’s a problem when that’s how you play. If you have size on the perimeter, then it helps protect the paint. If you don’t have size on the perimeter, then you’ve got to have size at the rim to compensate for lack of size on the perimeter. I think we’re longer, both on the perimeter and in the front line.”\nLast season, USC ranked 11th in the 14-team SEC in rebounding margin during league play (minus-1.8). Carrera was by far the Gamecocks’ best rebounder. He ranked sixth in the league with 7.3 rebounds per game against SEC competition. Carrera, who’s 6-5 and 212 pounds, performed admirably while fighting through a hip injury and playing against bigger men in the post, where USC needed him because of its size deficiencies.\nMartin has said Carrera’s future is farther away from the basket, because it will be hard for him to endure the rigors of frequent post play for the rest of his career. To that end, Martin has noticed encouraging improvements in Carrera’s outside shooting recently, but he is still not yet a polished perimeter player.\n“He’s got to learn, when he catches the ball on the perimeter, not to stand there and hold it with one hand, as you saw during the year last year,” Martin said. “You can’t be any good out there like that. Or put the ball over your head. He’s been asked to play out there, but he’s never been taught to play out there, which is a big difference. His ball handling is good enough to play out there. It’s not great. But his passing and his decision making and his perimeter defense have to get a lot better.”\nIf Carrera is USC’s most intriguing returning player and senior point guard Bruce Ellington remains the team’s leader, then Johnson is probably the most interesting newcomer, along with Thornwell. Johnson, a junior, must form a cohesive backcourt with Ellington and/or shooting guard Brenton Williams, who led USC in scoring last season, ahead of Carrera and Ellington – with 11, 9.9 and 9.9 points, respectively.\nJohnson isn’t an elite perimeter shooter, and Martin wants him to work on developing a mid-range game, rather than slashing to the basket so often. But Johnson’s size is a welcome addition to the backcourt – Ellington is 5-9, Williams 5-11 – on defense, which has long formed the foundation of Martin’s programs.\n“Ty understands angles,” Martin said. “He might not be the most gifted athlete from a side-to-side or speed (standpoint), but his mind allows him to get to the right spot most of the time. That’s what you’ve got to have.”"} +{"text": "A pastor from Fayetteville, N.C., said he feels drawn to Aiken to spread his message – “Save America First: Evangelize the World.”\nPastor George Lucas Jr., originally from New York, dedicated 22 years to the military, and now he is dedicating his life to spreading the word of God.\nLucas’ mission all comes down to verse John 3:16 “the flagship verse of the Bible,” Lucas said.\nThe verse as stated in the “New Living Translation of the Bible” reads, “For God loved the world so much that he gave his one and only Son, so that everyone who believes in him will not perish but have eternal life.”\nLucas has traveled from Vermont to Texas to deliver this message that America can be saved through the hands of Jesus Christ and by John 3:16.\nNow, his current mission is to circulate that message throughout South Carolina through putting up billboards and selling T-shirts and other merchandise.\nThe state has a “jaded history” due to instances like those surrounding the Civil War, he said.\n“The Lord has chosen South Carolina (and Aiken) to help spread this message,” he said.\nAiken came on his radar because of his wife, Augusta native Wilhelmenina Jennings-Lucas.\nHer father is from Aiken and has ties with Mount Canaan Church.\n“He’s one of the most dynamite Christian men I’ve ever met,” Lucas said.\nTwo billboards have already been erected – one by the University Parkway Church of God Church and the other by Johnson Motor in Graniteville.\n“I want to spark something in South Carolina,” Lucas said.\nThe 78-year-old has been a U.S. Army veteran for nearly 22 years and an ordained minister for more than 40 years. He said that when he heard the John 3:16 verse on Feb. 25, 1968, something in him changed.\nThe next day, he asked God to “save his soul.”\n“(This verse) became the most important verse in my whole life,” he said.\nThe day he got saved, he made a promise.\n“If the Lord ever gave me an opportunity to go to Washington, D.C., and lift up his name, I would do so,” he vowed.\nThat opportunity happened in 1987. At the time, he was preaching at the Race Road Baptist Church in Farmville, Virginia. A woman came down to speak for the church’s Woman’s Day service. Little did Lucas know that this woman was connected to the White House.\nA few days after she presented, she called Lucas to ask him to come to the White House.\n“I thought she was joking,” Lucas said.\nOn Sept. 30. 1987, Lucas sat in the Old Executive Office Building auditorium. Then-President Ronald Reagan was speaking on behalf of Judge Robert Bork and his nomination to the Supreme Court, according to the Richmond Times-Dispatch newspaper in 1987.\nThe day might have been for Bork, but it was Lucas who left an impression.\n“I told President Ronald Reagan that we needed revival in our country and that brought on pandemonium at the White House,” Lucas said.\nBork even later confessed to Lucas that “when he raised his hand (to speak), he scared the (heck) out of Reagan.”\nHowever, Lucas won over Reagan and his staff.\n“He was grinning like a Chester cat,” Lucas said.\nThe preacher was even asked to come up in front of the room to give “a brief, emotional speech,” the Richmond Times-Dispatch reported.\nThis moment lit his “Save America First” cause, Lucas said.\nHowever, the spark died down for many years. It reignited in 2009 when a man named Jim Cooke came into his life.\nCooke was the program director at the WFNC-AM radio station in Fayetteville, N.C. Lucas was 75 with his sights set on the “old soldiers’ home” in Washington, D.C. Something in him, though, caused him to call Cooke.\nFrom that phone call, Lucas appeared on the station on a monthly basis.\n“The Lord kept me there, of course,” he said.\nIn 2010, the American Atheists organization posted a billboard in New Jersey that sent out an anti-Christmas message.\n“You KNOW it’s a myth; This Season, Celebrate REASON!” it read according to the April 2011 Boiling Springs magazine.\nDavid Silverman, the organization’s president, said the spot was perfect because commuters were going to see it on their way to do Christmas shopping in New York City.\nSilverman and his group’s message fueled Lucas’ fire.\n“None was more outraged than 77-year-old pastor Lucas … (who) could not and would simply stand by and do nothing,” the article stated.\nOn Jan. 14, 2011, Lucas’ first billboard went up on I-95 in Fayetteville.\nTo fund these billboards, Lucas sells white T-shirts. The shirts sport either a picture of the Earth in the center or just the “Save America First” organization’s logo written across the center.\nHe also sells buttons, hats and plates, according to his website.\n“I like to be called a patriot, because I love my country,” he said. “I believe in America.”\nLucas was born in Manhattan, the oldest of 10 children. He went on to fight in the Korean and Vietnam wars, earning a Bronze Star on June 3, 1970.\nIn addition to his ministry work, he has at least 40 years of experience in broadcasting.\nAbout four years ago, he married Wilhelmenina.\nAt first, Lucas was skeptical of meeting someone so late in life, but, when they met, his mind was changed.\nOn Christmas Day, he asked her 91-year-old father for her hand in marriage. Now the two travel to spread the John 3:16 message.\nFor more information, visit www.saf-etw.com or 910-778-3683.\nStaff Photo by Stephanie Turner Pastor George Lucas Jr., with his wife Wilhelmenina Jennings-Lucas represent Lucas’ “Save America First” campaign.×\nSubmitted Photo Pastor George Lucas Jr. stands by one of his earlier billboards.×\nSubmitted Photo Pastor George Lucas Jr. speaking at the White House on Sept. 30, 1987.×"} +{"text": "In 2010, Samsung was the first to launch a full range of SMART TVs in the region. In 2011, Samsung introduced a new era of home entertainment with the new D series of SMART TVs, the ultimate entertainment technology. Despite stiff competition in this segment, where outstanding and superbly-designed products make a huge impact on consumers’ purchasing decisions, Samsung was able to firmly establish its leadership. According to industry reports, Samsung secured a whopping 45 percent market share by the end of Q3 making Samsung the brand of choice for the Gulf.\nSamsung’s outstanding performance in the region and the fact that Samsung Smart TVs offer a range of over 1000 applications through their dedicated apps store, “Samsung Apps” gives companies throughout all industries an incentive to develop, launch and sustain an application. So now the company knows it wants an application, but where does it start?\nTo begin with, the company needs to ask itself what kind of application it wants to develop and what the purpose is for developing the app. Will the application serve a business purpose? Will it be an addition to the company’s social media platforms? Or will the application interact with its users? Samsung techies advise that to develop a successful app, also dubbed ‘killer app’, companies must look at three main points: innovative idea; works on the latest technology; and serves a purpose. Applications such as Angry Birds is a live example of a killer app where the game notches up 200 million minutes of play time every day, which is close to the number of minutes viewers in the United States spend watching the average prime-time television program.\n“Producing applications that run on TVs or handsets is a great way to interact with your consumers. People nowadays are truly living a fast-paced lifestyle and applications that serve consumers are guaranteed to serve businesses as well. Developing apps will be a must for organizations to sustain their presence in the near future,” said Vinod Nair, General Manager, CTV Business, Samsung Gulf Electronics. “Samsung products are designed to make consumers’ lives ‘smarter’. With applications running on a user’s TV, he or she will be able to enjoy traditional programming as well as check off a few tasks from their lists all from the comfort of their couch. ”\nNow that the company has decided to launch an app, it’ll need to know what content the application will provide for its users. Content material is a crucial part of sustaining an application. The content needs to be relevant to users; provide interactive features; and offer an experience that can’t be found with traditional outlets.\nRecently, Samsung partnered with major government and private companies to launch locally tailored applications targeting existing users and potential new ones. The Dubai Electricity and Water Authority (DEWA), with Samsung, developed the region’s first business-solution application. DEWA’s application allows users to check their bills and access DEWA’s range of services. Samsung also partnered with the Arabian Radio Network (ARN) and Dubai Media Incorporated (DMI) to stream all of their radio and television channels for all Samsung Smart TV users to enjoy. “Video-on-demand has been the most popular reason for companies to develop Smart TV applications. Consumer behavior and attitudes are shifting, with viewers increasingly expecting to access content wherever and whenever they want. We believe that in the future every viewer will have access to 3D content in the comfort of their own living room through a SMART TV.” Nair added.\nOnce the app is up and running, the company gets to relax and savor the final product. You can’t get too lazy though. Applications need to be sustained in order to keep the user interested in the application. At this time, companies need to ensure that they have content lined up and a calendar highlighting launches of new additions and features to the application. Just in case you feel a little overwhelmed, rest assured that the great people at Samsung will be on hand to share their expertise and provide support."} +{"text": "Complaints Alleging Non-Compliance with the Standards\nRules 42-48 of the ABA Rules of Procedure for Approval of Law Schools governs the filing of complaints against law schools. The complaint process is designed to bring to the attention of the Council any facts and allegations that may indicate that an approved law school is operating its program of legal education out of compliance with the ABA Standards for the Approval of Law Schools. This process is not available to serve as a mediating or dispute-resolving process for a person with complaints about the policies or actions of an approved law school. The Council will not intervene with an approved law school on behalf of an individual with a complaint against or concern regarding action taken by a law school that adversely affects that individual. The outcome of this process will not be the ordering of any individual relief for any person or requiring specific action by a law school with respect to any individual.\nA complaint must meet the following requirements:\n(1) Except in extraordinary circumstances, the complaint must be filed within one calendar year of the facts on which the allegation is based. Pursuit of other remedies does not toll this one calendar year limit.\n(2) Complaints must be in writing using the form \"Complaint Against an ABA-Approved Law School\" and must be signed. The form can be downloaded here: Complaint Form.\n(3) As outlined in the Complaint Form, the complaint must include the following information:\n(i) A clear and concise description of the nature of the complaint and any evidence upon which the allegation is based, with relevant supporting documentation. The description and supporting evidence should include relevant facts that support the allegation that the law school is out of compliance with the Standards referenced in the complaint.\n(ii) The section(s) of the Standards alleged to have been violated and the time frame in which the lack of compliance is alleged to have occurred.\n(iii) A description of the steps taken to exhaust the law school's grievance process and the actions taken by the law school in response to the complaint as a result of prescribed procedures.\n(iv) Disclosure of any other channels the complainant is pursuing, including legal action.\n(v) A release authorizing the Consultant's Office to send a copy of the complaint to the dean of the law school.\nProcess upon receipt of a complaint\nThe Consultant or designee shall determine whether the complaint alleges facts that raise issues relating to an approved law school’s compliance with the Standards. This determination shall be made within six weeks of receiving the complaint. The Consultant or designee may request additional information from the complainant if appropriate. If the Consultant or designee concludes that the complaint does not raise issues relating to an approved school’s compliance with the Standards, the matter will be closed.\nIf a law school that is the subject of a complaint is due to receive a regularly scheduled sabbatical site visit within a reasonable amount of time after the complaint is received, usually within one year, the complaint may be handled as part of the sabbatical site visit.\nIf the Consultant or designee determines that the complaint may raise possible compliance issues, the complaint shall be sent to the school and a response requested. The Consultant or designee ordinarily will request the dean of the school to respond within 30 days.\nIf the response from the school establishes that the school is not out of compliance with respect to the matters raised in the complaint, the Consultant or designee will close the matter.\nIf the school’s response does not establish that it is operating in compliance with the Standards on the matters raised by the complaint, the Consultant or designee, with the concurrence of the chairperson of the Accreditation Committee, may appoint a fact-finder to visit the school to investigate the issues raised by the complaint and the school’s response. The complaint, the school's response, and fact-finder’s report, if any, shall be referred to the Accreditation Committee and considered in the same manner as complaints and reviews that fall under Rule 13(a) of the Rules of Procedure.\nThe person making the complaint will be notified promptly regarding the conclusion of the matter. The person filing the complaint will not be provided with a copy of the school’s response, if any, and will not receive any further report on the matter.\nThere is no appeal to the Council or the Accreditation Committee, or elsewhere in the American Bar Association, in connection with a conclusion by the Consultant or designee that a complaint does not raise issues under the Standards.\nComplaints should be sent to:\nOffice of the Consultant on Legal Education, American Bar Association, 321 N. Clark Street, 21st Floor, Chicago, IL 60654.\nLearn more about the Accreditation Process or the Standards and Rules of Procedure for Approval of Law Schools"} +{"text": "Miami Herald - Drama Queen Blog\nA classic season\nPalm Beach Dramaworks has just spilled the details of its 2008-2009 season, and three of the four plays are by theatrical giants.\nOrlando Sentinel - Attention Must Be Paid Blog\nOn conversations between theaters and audiences\nChad Jones' Theater Dogs Blog\nChicago Tribune - Theater Loop Blog\n'First Breeze of Summer': life, and no regrets, in the bones\n'A Steady Rain' to end its fall\nBroadway Boys Perform Show Tunes With Pop Twist\nLeslie Uggams stars in `First Breeze of Summer'\nPHOTO CALL: Chita Rivera and George Hearn Pay D.C. a Visit\nBlum Is Roger in Broadway's Grease\nBroadway Grosses: May 19-25\nGypsy's LuPone, Benanti and Gaines to Perform on \"Good Morning America\"\nCelebutant: Don't You Know Who I Think I Am? to Play Club Café in Boston\nBroadway Belter Sengbloh to Makes a Splash June 9\nONSTAGE & BACKSTAGE: A Tale of Two Seths\nEpstein, Richards, Feldman and More to Join Riedel for Tony Talk 2008\nAcosta, Canavan, Grant, Gottesman and Puzzo to Star in LAB's Penalties & Interest\nCasting Announced for Other Side of Newark at NJPAC\nLeague of Professional Theatre Women to Present Awards June 12 at Sardi's\nDilly Joins Streep, Adams and Tucci in \"Julie & Julia\" Film\nStewart, Downie and Ford-Davies Will Join Tennant in RSC's Hamlet\nFreeman to Reprise I'm Every Woman at the Cutting Room June 13\nAuberjonois Is Imaginary Invalid in DC June 10-July 27; Baxter Directs\nDarragh, Narciso and Weixler Will Play It Safe Off-Broadway\nSydney Pollack, Hollywood Film Director, Is Dead at 73\nLaBute's Fat Pig, with Marshall, Page and Webb, Opens in London May 27\nAttorney for the Damned Will Play Open-Ended Run at the Kraine\nWong, Warren and Zbornik Will Join Adding Machine's Blair at the Zipper\nNew European Directive Outlaws Misquotes of Critics\nReview: EST Marathon 2008 Series B\nStrong entries from Neil LaBute, David Zellnik, Taylor Mac, and Anne Washburn highlight this solid line-up of one-acts.\nReview: A Chorus Line\nThe legendary musical's national tour is likely to delight both old fans and new audiences.\nFull Casting Announced for Intiman's Streetcar and Little Dog Laughed\nMathison and Shepherd to Co-Host Daytime Emmy Awards; Hansis, Kerwin, Kitt, Tartaglia Among Nominees\nJonathan Kent to Stage Santa Fe Opera's Marriage of Figaro\nFull Cast, Creative Team Set for Prince Music Theater's Jamaica\nCanavan, Grant, Puzzo, et al. Cast in LAByrinth's Penalties & Interest\nPassing Strange Recording Gets iTunes Release on May 27\nDownie, Stewart, Tennant, et al. Set for RSC's Hamlet\nFIRST PERSON: David Javerbaum: Dear Tony Voters...\nBroadway Grosses: In the Heights Still Climbing; Macbeth Takes Final Bow\nThose 13 Tony nominations continue to help the grosses of In the Heights, which climbed above 91% of capacity at the Richard Rodgers Theatre, bringing in $80,000+ over the previous week in the process. Of course, awards aren't everything, as the folks at Cat on a Hot Tin Roof, which jumped\nFierce! Project Runway's Christian Siriano Will Design Whoopi's Tony Gown\nProject Runway winner Christian Siriano has his next star-studded assignment: dressing Whoopi Goldberg for her hosting duties at the 2008 Tony Awards. The 22-year-old wunderkind designer showed off sample sketches on a Whoopi paper doll during the May 27 broadcast of ABC's The View.\nReview: 'The Internationalist' at Studio Theatre, DC\nReview: 'The Milk Train Doesn't Stop Here Anymore' at Hartford Stage\nReview: 'Jersey Boys' in Cincinnati\nThe Siegel Column: Musical Revivals and Encores!\nReview: 'Prisoner of the Crown'\nReview: 'The Hiding Place'\nReview: 'Taking Steps\nReview: 'The Hiding Place'\nReview: Two Unrelated Plays by David Mamet\nThe Times UK\nReview: Fat Pig, Trafalgar Studios, London\nBloated prejudice and everyday cruelties exposed in a touching portrait in Neil LaBute's latest offering\nReview: Lifecoach, Trafalgar Studios, London\nAmy Darcy is wonderfully watchable as she turns from tremulous klutz into confident and capable young woman\nPatricia Routledge Dons Crown, Joins WOS Network\nNew European Directive Outlaws Critical Misquotes\nFull Casting Announced for Tennant’s RSC Hamlet\nThree Oliver! Boy Stars Confirmed, Nancy Finalists\nLondon Theatre Guide\nBogosian’s SubUrbia staged in Southwark\nEric Bogosian’s gritty drama of small town dreams, SubUrbia, is to be staged by LOST Theatre at the Southwark Playhouse in June.\nRivers celebrates birthday with London show\nAmerican comedy icon Joan Rivers will celebrate her 75th birthday by making her London acting debut in a self-penned autobiographical play in September.\nNational revives War Horse with Sunday schedule\nWar Horse, the National Theatre’s hit family show of Christmas 2007, is to be revived in autumn 2008, when it will become the first show at the National to feature Sunday performances.\n|« 5/28/08 AM Clips - UK||ATW Review: 'Port Authority' »|"} +{"text": "Walt was 81 years old when he had what was called a “heart event” and admitted to a hospital via ambulance late evening of July 26, 2011. They could not call it a heart attack and so they ordered an EP study. He was diagnosed with a lower heart chamber arrhythmia/rapid beat. It was then they decided to implant and ICD (internal cardiac defibrillator).\nDad had recovered nicely and had no incident until the evening of September 4, 2011. My father was experiencing some chest pressure and advised my brother. He waved the wand over my fathers ICD and it read that his pulse was 160 and again, my father was rushed to the ER. My father’s ICD was set too high and it never shocked my father’s heart back to rhythm. At the emergency room my father was shocked back into his normal beat. The Medtronic team monitoring his ICD came to the ER and reset it to 140. I’d like to know who would set an ICD for an 81 year old that high anyway!\nAfter my father was shocked back to normal rhythm, an ER physician decided to start my father on IV Amiodarone. At that moment, a nurse pulled my brother and sister in law aside and told them that this drug was extremely toxic and that he should not be on it very long. They researched it and advised me of its toxicity.\nMy father was then transferred to another floor where he waited for his discharge. He was healthy and walked the entire floor with my brother laughing and joking. Later that night, less than 48 hours after his initial dose of Amiodarone, my father went into respiratory failure coughing up blood. He was brought down to the ICU unit and immediately put on a bi-pap machine while I watched in horror of his condition that had declined so rapidly. I notified the nurses that he had recently been put on Amiodarone and that the side effects were exactly what my father was experiencing and that we should discontinue its use. They felt it was pulmonary edema. We had to wait until he was stable to send him for a CT scan. He was struggling with every breath. The CT scan showed no blood clot but they felt he had double pneumonia.\nAt that time they started 5 IV antibiotics and took cultures from urine, blood, stool and anything else they could. He began lasix to help rid fluids that seemed to be building up in his lungs/heart area. All my family members were united and spoke with the pulmonary and cardiologists that saw my dad on a daily basis and told them we believed it was Lung Toxicity due to Amiodarone. They said that it was impossible for reactions to be so soon after taking it. My father developed thrush in his throat and mouth and was put on a 6th IV antibiotic and had to have his mouth rinsed three times a day. It was already hard to breath and he could barely swallow or eat.\nOn the 7th day the Amiodarone was discontinued (quietly) and a steroid was introduced. All the cultures had come back negative for pneumonia or infection. The IV antibiotics were slowly being discontinued. It wasn’t until we asked that we were told the Amiodarone was discontinued. My father was developing a bluish tint to his skin. His eyes were yellow and he had a rash on his entire back. He was having horrible nightmares and could not sleep. He rotated between, bi-pap, nasal cannula and mask. We were able to assist him to a chair from bed but his oxygen would drop drastically when he did. My strong father was deteriorating right before our eyes. He was exhausted and confused….so were we.\nSlowly the visible side effects were subsiding but there was absolutely no improvement elsewhere. On September 21st (two weeks later) my dad was told there was nothing else they could do for him and he was transferred to another hospital. The doctor that signed his paperwork had written a note about possible Amiodarone Toxicity, along with all the other things he felt it really was. Respiratory failure, acute heart failure, extreme tachycardia.\nAfter arriving at the new hospital he was introduced to new doctors and all of them had never seen Amiodarone Toxicity and did not believe that is what he had. Still the steroids continued as well as the round the clock oxygen my father could not live without. Doctors came and doctors went…painful to explain my fathers story over and over to them. A pulmonary doctor had been assigned to my father. His diagnosis was that my father had COP (Cryptogenic Organizing Pneumonia) brought on by the Amiodarone. He felt he would be alright but would need steroids for months to come. I asked that he please investigate Amiodarone toxicity. He decided to present my father’s entire case to the Pulmonary Department of University of Cincinnati with our permission.\nAt this point my father had been in the new hospital just 10 days. His oxygen needs were so high they had to transfer him to a respiratory unit on September 30, 2011. On October 3, 2011 his pulmonary doctor returned after presenting my father’s case to find him moved to the respiratory unit and my father failing fast. He finally agreed that my father most likely had Lung Toxicity from Amiodarone. He gave my father less than a week to live.\nOn the afternoon of October 5, 2011 my father asked me if there was a cure for what he had. I had to tell him no, but I didn’t want him to stop fighting. His family and close friends filled his room that day. He was able to hold his first great grandchild that had been born weeks earlier.\nOn the morning of October 6, 2011 my fatherly quietly passed 8 hours after we moved him to the hospice floor. He was no longer attached to a heart and oxygen monitor. The oxygen alarms were no longer going off. There were no more medicines being put into his picc line. No more buttons to push to ask for assistance. No more food trays with cold food being delivered. No more bed pans. He was not being poked or prodded or questioned. There was finally peace and quiet.\nR.I.P. Walter Edward Maher 12-20-1929 to 10-6-2011"} +{"text": "Devotion and an Old Icon\nHave you heard the story about the Tikhvin icon of the Mother of God? This icon measures 34 inches by 43 inches, and is named for a village in northwestern Russia that is its current home. It has been a source of great veneration and comfort to the Russian people, especially during times of great suffering.\nAccording to Orthodox Christian tradition, the icon was painted by the Apostle and Evangelist Luke—as in Matthew, Mark, Luke, and John—and after its completion it stayed in Jerusalem for five hundred years. In the sixth century, the icon was taken to Constantinople, where it became a reassuring sign of the tenderness of the Mother of God for the inhabitants of that city.\nThe icon made its way north to the land of Russia. In 1383, fisherman on the northern Russian Lake Ladoga witnessed the icon hovering above the waters. It appeared in various locations, and eventually came to rest near the Tikhvin River where, in 1560, the Russian Czar Ivan the Terrible ordered that a monastery be built specifically to house the icon—a monastery dedicated to the Dormition of the Mother of God, the feast celebrated on August 15th.\nOver the course of the centuries, the Tikhvin Monastery became the site of pilgrimage to which all kinds of people came to pray, and where countless miracles occurred as the Theotokos interceded for her children.\nThen, in 1917, tragedy struck the Russian people. Churches and monasteries were destroyed, millions of Orthodox Christians were killed, and a cold, dark cloud of hostility toward the things of God spread over the Russian land. The Revolution of 1917 brought brutal changes to the Russian Church, and the Tikhvin Monastery was shut down in 1924.\nConscious of the extraordinary treasure in their midst, some Russian Orthodox people confiscated the icon. After its escape from the monastery, the icon was taken to Latvia and Poland and Czechoslovakia and Germany. This treasure came to be cared for by a bishop whose name was John.\nBishop John eventually traveled to America, and resided in New York City. When he was elected Archbishop of Chicago and Minneapolis of the Russian Orthodox Church in North America in 1949, Bishop John brought the icon with him and placed it in Holy Trinity Cathedral in Chicago.\nBefore he died in 1982, Bishop John entrusted the care of this wonderworking icon to his adopted son, the priest Serge, with this instruction: when the dark cloud of secularism and indifference toward God lifts over Russia, take the icon back to the land where it belongs. Like the prophet Moses of old, Bishop John did not live to see his precious possession reach its Promised Land.\nThe Tikhvin Icon of the Mother of God made one last tour through the United States before its historic departure for the re-opened Tikhvin Monastery in northwestern Russia. On that tour, the icon was even brought to St Tikhon’s Orthodox Theological Seminary in Pennsylvania when I was a seminarian there not too long ago.\nWhen the icon finally arrived in Russia, the event was unlike anything the land had seen for decades. President Putin and leaders of the Russian Orthodox Church arranged the celebrations. The icon was taken with processions to visit churches and monasteries throughout Russia. In Moscow, the icon stood for days in the huge Cathedral of Christ the Savior—the church that Joseph Stalin had destroyed (installing a swimming pool in its place) and Boris Yeltsin had restored. In St Petersburg, 150,000 people showed up to welcome the icon. All over Russia, as in centuries passed, many miracles occurred for those who venerated the icon “in the fear of God, with faith and love.”\nThe day arrived when the icon arrived by train at the end of its journey at the Dormition Monastery in Tikhvin. Hundreds of tents were set up to provide shelter for overnight services. More than 1500 police were on hand to ensure security for dignitaries and important guests.\nNow, listen to this: as its journey came to an end, a line of pilgrims formed to venerate the Tikhvin Icon of the Mother of God – a line that was four miles long and took three days to go through. Did you catch that? Christians coming to venerate this precious icon formed a line that was four miles long and took three days to get through!\nTake a moment to imagine four miles, in any direction, from where you are right now. Now, imagine a line of people winding its way along the route you’ve just drawn in your mind; they are children and men and women – all ages and shapes and conditions – shuffling along for three days. And finally, imagine this: what – or whom – would you wait in line four miles and three days to see? A celebrity? A sporting event? A book release? A rock concert? A miracle-working icon? We must ask ourselves: What is worth four miles on our feet and three days of our time?\nIn too many places of our fallen world we do not know how to venerate the holy. Take America, for example: some of what we venerate, God finds detestable; some of what we ignore, God finds precious. So, we who are both American and Christian will, automatically, be in conflict with our culture when it comes to what is worth our deepest devotion. And that’s okay: we expect it, we accept it, and we strive to live in such a way as to make our Christian faith attractive to others.\nIs your faith worth four miles on your feet and three days of your life? Do you take the really important things for granted? I do, from time to time. But, to take for granted, is to miss the granted. To take for granted means that we miss the really good things God has given to us—His Church, His liturgy, His Body and His Blood, His bible, His grace, His forgiveness, His creation, His children, and, if we are not careful, His heaven.\nMay each of us strive to value the really important things more and more as the days and months and years pass. That is my prayer for me; that is my prayer for you, too."} +{"text": "LONDON - The invasion of Iraq rebounded a little on the government of British\nPrime Minister Tony Blair to dent his majority as he returned to a third term\nas prime minister.\nBut it was not serious damage. Iraq did not prevent Blair from returning with\na comfortable enough majority, and this is the first time in its history that\na Labour government has been reelected for a third successive term.\nNonetheless, Iraq was still an issue, and it came home to Blair in his own\nconstituency Sedgefield. The incumbent prime minister was challenged by an independent\ncandidate Reg Keys, whose son was killed during the Iraq war.\nBlair got 24,421 votes, and Keys 4,252. That means that for every six votes\nBlair got, Keys got at least one. Compared to the last general election in 2001,\nthe votes for Blair dropped by about six percent. A member of the Blair campaign\nteam Derek Cattel had quit midway through the campaign to support Keys.\n\"I know Iraq has been a divisive issue,\" Blair said as he was announced\nwinner. \"I hope we can unite again and look to the future, there and here.\"\nThe remark seemed an indication that despite the opposition over Iraq he ran\ninto, he intended to stay the controversial course.\nKeys came up to the stage in Sedgefield to explain why he had contested. \"I\nwould have grieved and not campaigned if that war had been fought under international\nlaw,\" he said. \"I would have grieved and not campaigned if weapons\nof mass destruction had been found in Iraq.\"\nKeys added: \"I am hoping in my heart that one day the prime minister will\nbe able to say sorry.\"\nIf Keys was a constant reminder of Iraq to Blair through his election campaign\nin his constituency, he faces far more formidable opposition in parliament through\nGeorge Galloway, who beat the Labour candidate in the Bethnal Green constituency\nFor Galloway, who was expelled from the Labour Party for what the party described\nas his support for Saddam Hussein, Iraq was the key issue. He got much support\nthrough his campaign from the very large number of Muslim voters in the constituency.\nGalloway is certain to confront Blair through his third term over Iraq, and\nGalloway is nothing if not strident, as he showed in his victory speech.\n\"Mr. Blair, this is for Iraq, and all your other defeats your Labour Party\nhas suffered this day is [sic] for Iraq. All the people you have killed, and\nall the lies that you've told have come back to haunt you. The best thing you\ncan do is to resign.\"\nThe only political party that had opposed the invasion of Iraq, the Liberal\nDemocrats, saw their votes go up 3.9 percent from 22.6 percent in 2001. The\npercentage of Labour votes dropped 5.8 percent to 36.4 percent. The Conservatives,\nwho firmly backed the invasion of Iraq, got 33.1 percent of the vote, a small\ngain of 0.6 percent over 2001.\nThe Liberal Democrat gain did not, however, translate into a proportionate\nrise in the number of members of parliament. In Britain's first-past-the-post\nsystem in which the winner is the one with the plurality of votes, votes won\nare often not reflected in seats gained.\nWith 619 of 646 seats declared, Labour had 353, losing 47 in relation to the\nlast parliament. The Conservative Party had 195, a gain of 33, and the Liberal\nDemocrats had 59, a gain of 11 seats.\nThe significance of Iraq surfaced through the election results. During the\ncampaign, it was one among several issues that came up and subsided. The Liberal\nDemocrats claimed they had got it right on Iraq, and the Conservatives attacked\nBlair over what they called lies over the invasion. But there was little indication\nhow far people were going to think about the invasion when they voted.\nLabour is believed to have lost many votes and seats in constituencies with\na high Muslim population such as Bethnal Green and in constituencies\nwith a high number of students. Both these groups were at the forefront of the\nBlair said that his new government will take on board the verdict of the people,\nreflected in some loss of support for his party. But that is not expected to\nlead to any sudden or significant change in his Iraq policy.\n(Inter Press Service)"} +{"text": "Ferrari World’s long-awaited new instalment is finally set to be unveiled on February 24, it has been announced.\nFerrari World on Yas Island has built the first bi-plane themed roller coaster called Flying Aces. The triple record-breaking ride, acclaimed for having the world’s tallest loop and fastest and steepest starting hill inclination, mimics the movements of the 1900s bi-planes to offer extreme gravity defying flight acrobatics that include a 52 metre non-inverted loop, down flips and plenty of airtime.\n“There are very few theme parks that have undertaken such a significant expansion as Ferrari World Abu Dhabi,” said general manager of Ferrari World Abu Dhabi Jesse Vargas. “Flying Aces will be another one-of-a-kind ride that you can only find at Ferrari World Abu Dhabi. Its design and storyline are deeply rooted in the rich history of Ferrari.”\nIn keeping with Ferrari World’s theme of telling the history of the famous car manufacturer through rides and simulators, this new instalment brings to life the story of Ferrari’s legendary Prancing Horse emblem, which was inherited by Enzo Ferrari for good luck and first used by the famous Italian aviator Count Francesco Baracca.\nThose brave enough to step foot on the monster coaster will travel at speeds of 120kmph along the 1.5km track.\nFive more at Ferrari World\nThe indoor theme park with the famous red roof is planning to bring in more rides after Flying Aces is launched. In the meantime, here are five rides that you just shouldn’t miss out on at Ferrari World Abu Dhabi…\n1 Formula Rossa\nThe world’s fastest roller coaster provides thrill-seekers the ultimate adrenaline rush with a turbo-charged Ferrari experience. Get strapped in to a Ferrari F1 carriage that rockets along the tracks reaching 0-100 kmph in less than two seconds, accelerating to 240 km/h. Formula Rossa simulates the heart-pounding rush of what it’s like to drive a Ferrari F1 racer and you’ll see Yas Island vistas at high speeds and from more than 50 metres off the ground. You’ll be required to don protective eyewear to shield your peepers from the wind force generated by the coaster’s g-force and mind-blowing speeds, in a coaster powered by the same kind of hydraulic winch system used to launch jet planes. Some might just want to shut their eyes, anyway. For speed-freaks and thrill-seekers who absolutely must ride the fastest roller coaster on earth, this is a must. The world-famous attraction is the ultimate, high-intensity goal, so make sure you persevere with the queue – it’s well worth the wait.\nThis cute little ride is a miniature recreation of famous Italian cityscapes and structures. The slow-moving ride is reminiscent of “It’s a Small World” in California’s original Disneyland Park and is a welcome relief from the faster moving rides in the indoor theme park. Bell’Italia features 17 stops over a 6,300 metre squared area passing the picturesque Portofino and the Amalfi Coast, proceeding to the Monza racetrack, the Colosseum in Roma, the canals of Venezia and Maranello, the home of Ferrari. The course can be covered on foot or in small-scale Ferrari 250 California Spider cars that allow you to control the pace of the Italian touring experience.\n3 Karting Academy\nLaunched during the F1 season in November 2014, Karting Academy is a hands-on, adrenaline-fuelled racing experience. Whether a beginner or a serious sprinter, visitors to Ferrari World can test their racing skills aboard advanced electric powered go-karts and challenge family and friends around a 290m track. You’ll reach speeds of up to 80kmph. Amongst the safest rides of its kind in the world, Karting Academy is guaranteed fun and offers up some serious bragging rights. You’ll want to queue up for this one more than once.\n4 Fiorano GT Challenge\nThis exciting ‘duelling’ coaster sends two trains of three Ferrari F430 Spider carriages careering along parallel tracks in a high octane race to the finish line. The first thrill ride of its kind in the region, Fiorano GT Challenge rips around hairpin turns in a high-speed duel between two trains to reach the finish line. There is never a tie and always a winner (and a loser) on this ride.\n5 Scuderia Challenge\nThis is the closest you will get to becoming an F1 driver without actually stepping into a car. The Scuderia Challenge is a state-of-the-art simulator based on the professional training simulators used by the Scuderia Ferrari drivers. This is a level of realism way beyond an arcade game, giving guests a taste of a real life racing experience. Sitting behind authentic Ferrari F1 steering wheels in real Ferrari seats, you can navigate the nearby Yas Marina Circuit, either racing against your friends in a group of eight or in an individual time trial."} +{"text": "What is it that makes plants green? Chlorophyll! This is the magic substance that plants use to capture and store the energy from sunlight. Without this mechanism there would be no life on earth as every living thing directly or indirectly derives its energy from plant sources.\nThe chlorophyll molecule is almost identical to the oxygen-carrying haemoglobin molecule in our own blood. Remarkably, chlorophyll is an excellent tonic and cleansing agent for our blood. It is one of the key substances that give wheatgrass, barley grass and chorella their well-known healing properties.\nHowever it is not only the green in greens which makes them such an important food. As we can see in autumn leaves, chlorophyll actually masks many other pigments. These colours indicate the presence of‘ a huge array of ‘phytonutrients’, or beneficial plant compounds. Phytonutrients have an assortment of subtle effects that keep our energy flowing and balanced.\nHow do green vegetables help your body to be healthy?\nEating green vegetables provides many health benefits. They help your immune system, provide antioxidant protection and rejuvenate your cells. Green leafy vegetables also contain significant amounts of protein, minerals and fibre. As we naturally eat heavier, richer, cooked foods in winter it is important to keep eating a proportion of raw greens. They provide balance to our meals and aid digestion and detoxification.\nSo remember to get your greens! There are many green vegetables available through the winter and they go abundantly crazy in the spring. Dark greens such as kale, broccoli and the Chinese greens are particularly fortifying. Let yourself become accustomed to stronger, bitter tastes in greens – these can indicate powerful cleansing properties. Have a look at the organic stall at the local farmers market and try something different. Just ask if you are not sure how to prepare them.\nYummy Recipes with Leafy Greens\nGreens, Bacon and Poached Eggs\nThis makes a deliciously satisfying and nutritious lower carb breakfast. You’ll get lots of essential minerals from the leafy greens, plus good protein from the bacon and eggs.\nThis is my idea of weekend breakfast heaven! However it’s equally ideal for lunch or dinner. Use organic free range bacon and eggs for better flavour. You'll also be supporting more wholesome farming practices.\n2 T olive oil or organic butter\n1 large bunch dark leafy greens [kale, chard (silverbeet) or Chinese greens]\n4 rashers organic (or wild) free range bacon\n1 medium onion\n1 clove crushed garlic\n2 T soy sauce\n½ squeezed lemon\n½ capsicum (bell pepper), red or green, chopped\nPinch of Cayenne pepper\n1. Gently saute the onions, garlic and bacon with the olive oil in a wok.\n2. Remove stems and roughly chop greens. Place in wok and cover with a lid. Steam until tender.\n3. Meanwhile poach the required number of poached eggs.\n4. Dice the tomatoes and add to wok with remaining ingredients.\n5. Serve on warm plates and top with the poached eggs. Add a grind of black pepper to taste.\nBok Choi Stir-fry\nStir-frying requires fast intense heat. Moisture in the leaves creates steam, rapidly wilting the greens. Spicy white pepper compliments the earthy/sweet flavour of the leaves.\nSeveral small bunches of bok choi (or other Chinese Greens)\n2 tsp sesame oil\nShoyu (good quality fermented soy sauce)\nSeparate the leaves by cutting the bottom stalk of each bunch. Slice he stalks and leaves into 3cm lengths.\nWash the chopped bok choi by putting it into a sink or large bowlful of water. Massage gently to loosen any dirt and allow it to drop to the bottom. Use your hands to life out the greens into a colander and allow it to drain.\nHeat a wok or large frypan over a high heat. Add the sesame oil. When the oil is very hot (but not smoking) add the bok choi. Keep the heat high and stir the greens until wilted – this should take less than two minutes.\nSeason with pepper and shoyu, toss for a few more seconds and remove from the wok into a serving dish.\nCopyright Wild Health and Anna Wilde 2007\nAnna Wilde works with people who want to improve their health naturally.\nGet recipes and straight forward advice to stay motivated, eat well and be healthy.\nCheck out her ‘Healthy food made easy’ website\nSign up and get free simple healthy recipes like: Bircher Muesli and articles like: The War on Fat\nWhat people say about Wild Health:\n“Fantastic quantity and quality of information.\nThanks for a lot of new healthy food ideas I wouldn’t have found anywhere else. \" Maria\n“This changed my life. I lost weight and feel better than ever” Brian\n“I am buzzing with ideas!” Sarah"} +{"text": "Bank of Ceylon amongst Top 1,000 Global Banks\nSri Lanka’s leading Bank with 73 years of strength, trust and stability, the Bank of Ceylon is proud to receive the global recognition as one of the top 1,000 banks in the world, by the world’s premier banking and finance Magazine, “The Banker”.\nThe Top 1,000 banks were selected in recognition of global leaders in the industry for their achievements. The rankings are one of the industry’s most widely used index of global banking, and are internationally recognized as the definitive guide to the soundness, strength and profitability of banks. The Banker Magazine first published in January 1926 in U.K, circulated over 180 countries is the key source of data and analysis for the industry in international finance affairs.\nBank of Ceylon serves over ten million customers island wide and our commitment to each of them remains steadfast. Fitch Rating Lanka Ltd has upgraded Bank of Ceylon’s national long-term rating to AA+ (lka) stable outlook which is the highest rating awarded to a local commercial bank. Brand Finance Lanka ranked BOC as the number 1 brand in Sri Lanka for the last four consecutive years.\nIn a press statement Bank of Ceylon revealed that, Our multi-faceted offering is one of our greatest strengths. From the children’s savings account to corporate credit, for state sector and private companies, we serve at every level.\nThe statement further adds: The bank has the strength and the diversity of resources to offer its customers a range of financial solutions; such as Corporate Banking, Personal Banking, Islamic Banking, Investment Banking, Off-shore Banking, Development Banking, International and Treasury operations and Trade Financing services, through its widely spread branch network and extension offices close to 600 covering all parts of the country. At the moment the bank has over 1,000 customer touch points covering branches, extension offices, ATMs and over 800 foreign corresponding agents.\nCommenting on this achievement, Bank of Ceylon Chairman Dr. Gamini Wickramasinghe stated that “bank has reached this milestone with a clear vision to make the impossible possible.”\nDr. Gamini Wickramasinghe also said, “That is “One Ten Twelve”, the corporate agenda for 2012 which translate into one trillion assets, Rs.10 billion profit in year 2012. This task was achieved well before the target date, in mid 2012. Therefore BOC became the first bank in Sri Lanka to reach a prodigious milestone by achieving Rs. 1.0 trillion in assets.”\nDr. Wickramasinghe stressed that, ” if you have a clear vision anything is possible to achieve”.\nBOC possess the strength and the diversity of resources to offer a complete range of financial solutions to its customers. BOC has further expanded its unprecedented banking and financial services to overseas branches in Chennai and Male and banking operations in London.\nFurther, commenting on this global recognition, Bank of Ceylon General Manager Mr. K. Dharmasiri stated that “bank has reached its pinnacle in 2012 by achieving key milestones in terms of growth in the bottom-line of the bank and expansion in all business areas. Bank has touched more than 10 million lives in the country. We are leading in every aspect of banking and financial services”.\nMaintaining solid partnerships with the private sector, BOC supports infrastructure development activities, provision of working capital and significant investments in Government projects. Aligned with the Government’s pursuit of socio-economic development, bank took major strides to assist in the country’s unprecedented demand for monetary support by easing loans as well as service provisions across the economy, especially in the North and East.\nOn the 1st of August 2012, Bank of Ceylon celebrated its 73rd Anniversary –a voluminous period of strength, success and stature. Leading the banking and financial sector since 1939, BOC has constantly succeeded in contributing to the growth of our nation and continues to assist the development of the country and guiding entrepreneurs to reach greater heights which makes Bank of Ceylon the “bankers to the nation”. We thank our loyal customers for the trust and confidence placed on us.\n- Asian Tribune -"} +{"text": "Read about Erin’s travels in Girl-on-Greece: The Incredibly True Adventures of a Gay History Nerd in Love with Mount Olympus. Girl-on-World is written by hot young women just like you! If you’ve got a story you’d like to share, email green[at]autostraddle[dot]com.\nThen Stef Defaced Public Property with Amanda Tannen from stellastar* and wasn’t that fun?? Yes! And do you also recall when Music Was Your Hot Hot Fix with Crystal and Intern Emily? But wait! That’s not all!\nDon’t forget the heartwarming piece on The Suckage of BlueHost: The Fempire Strikes Back!\nRiese and Alex have left their cubby holes yet again to venture into the hippie-scented world of Somewhere In Upstate New York! But the funny thing is, they still brought you today’s Sunday Funday Daily Fix because I, Laneia, was Team Sleeping In! I’m probably fired forever so if you’re looking for someone to pass out business cards or something, shoot me an email! Ok!\nHATRED CAN BE LIKE FOOD. IT GIVES YOU THIS ENERGY YOU CAN LIKE, LIVE OFF IT: Do you have Anglea Chase syndrome? “Much like Angela Chase, I can not, like, get through like, a sentence, without like, adding the word like, about like 9 million times, or whatever.” (@jezebel)\nGOING TO THE EPISCOPALIAN CHAPEL AND WE’RE GONNA GET MARRIED: Episcopal Church officials voted yesterday to allow bishops the latitude to bless same-sex unions — the second vote this week in favor of gay rights and one that may further divide the worldwide Anglican community. (@the washington post) And, at The New York Times, the Episcopalian’s First Openly Gay Bishop is interviewed:\n“The most significant thing that happened was [when] … a smaller group of bishops met to discuss [the same sex blessings] further. They said anyone could come, and it turned out it wasn’t a small group at all. There were 25 to 30 of us, and it turned out to be the most significant interaction I’ve had with the bishops since I’ve been elected. It was profound and it was inspiring. People stood up and spoke their own truth, both the pain and the joy. Everyone spoke honestly about what they needed to go home with, what they could live with and what they couldn’t.”\nMARISSSA!!: This counts as Sunday FUNday ’cause even though it’s sad, I’m happy they got her to the psychiatric hospital and that the 72-hour hold exists. They needed that shit for Britney. Save Marissa! – Mischa Barton Hospitalized on the ‘Brink of Disaster’ (@foxnews)\nGAGA: There’s this French German lady talking, but also there’s a Kermit the Frog outfit!\nGIGANTIC SURPRISE: Protect Marriage Washington is paying for signatures. Where are these motherf*ckers getting all this g*ddamn money from? Bluehost?\nGOING TO THE STRAIGHT CHAPEL AND WE’RE NOT GONNA GET MARRIED BUT IT’S GOOD TO GO ANYWAY: Changing Hearts and Minds One Wedding at a Time: “I’ll admit to being a bit wary to travel to Milwaukee to a wedding that would be populated by somewhat conservative Midwesterners and ex-frat boy football players. I tend to stick out like a big gay thumb in situations like this- the gender variant, out of the binary, sissy boy with a fauxhawk and rather fierce eyebrows (if I do say so myself) … Little did I realize that by going and just being ourselves at the wedding, we would change so many people’s views about gay couples.” (@pamshouseblend)\nLUCKILY WE LOVE EGGS: Dear Keira Knightley, no matter what anyone says, we love your boobs. Itty Bitty etc. Committee 4-EVA.\nWIZARDS! Harry Potter just keeps getting gayer. (@queerty)\nA 2005 interview with Rachel Maddow at Velvetpark “Rachel Maddow Before the Big Time” — she talks about leaving a trial of “happy hearts” like Shane, discovering “Oh, that’s what’s going on below my chin!” while at Stanford and sleeping with girls for the first time, and SO MUCH MORE!!\nMICHAEL F*CKING JACKSON: The Jackson 5 (or 4! jk!) have a reunion tour in the works.\nLIL FEMINIST: Emma Watson is probably the cutest thing ever. Here she describes herself as ‘a bit of a feminist.’\nM4W LEZ: Third Eye Blind is releasing a new album in August, so Stephen Jenkins plays some songs for us — including a song about being in love with a lesbian, which is awesome. It’s probs written about Rachel Maddow (who Jenkins has “an overwhelming and tragic crush on.”) but we’re not 100% sure.\nAuto-Straddler of the Day\nWe usually don’t have Team Picks on our Sunday Fundays, but I feel like stumbling across this‘List of Unusual Deaths’equires me to share it with you. (wikipedia)"} +{"text": "The balance between technology and humanity is finally reaching equilibrium, thanks to data analysis. For decades, bankers have persuaded customers to use self-service channels. Now that people are banking online and through mobile channels, and accessing their cash from convenient stores and ATMs, there is a personal information gap that needs to be filled. The lack of personal interaction that gives e-banking its cost advantage and saves customers time can also be a detriment to cross-sale and marketing opportunities.\nAs an industry we have successfully minimized the situations that return sales and marketing insights, such as teller-customer conversations during deposits. Instead, we offer fast, efficient means of banking that have been widely adopted, now budgeting a couple minutes for tasks that once took five times that. While the benefits of self-service advancements are necessary to be competitive, and are for the greater good of the industry, we must not forget the need for those intersections of opportunity to derive a wealth of knowledge from the most fleeting amount of time. Data analysis can meet this need.\nThe pairing of big data and small data can detect when and how consumer behavior changes, alerting banks for both everyday opportunities and the major moments that only come a few times in a customer’s lifetime. There is more information available from online and mobile banking customers than one might think. We are habitual by nature, like it or not. So when normal banking behaviors change in the slightest, then it will typically serve the bank well to look into why there has been that change. Tapping into this data is not hard, but does require a complete shift for bank personnel and the management of e-banking channels. The two entities must work closely together.\nToday most banks have informative sites and a “contact us” form. Until they can get a sense of what customers are really doing online, banks’ Web presence amounts to little more than an advertising pamphlet. Even for banks that may review their analytics – at month’s end – to see that 14 people clicked through to their home equity loan page, what does that really amount to by then? Probably not new loans.\nWe have educated consumers to seek self-service tools, and they are inclined to check rates and research before making any big life decisions. The first place they will likely look is their primary financial institution, and banks have a chance to gain more market share at that very moment. After that moment passes, it is off to Google to search for additional offers. Most consumers are not confident in the best rate, for example, until they talk to someone.\nSince we’ve dwindled physical service channels, the current customer does not want to call his or her bank to request information. That would risk 15 minutes on hold, or a plethora of tedious automated responses. Instead banks should have the data that their customer has looked at mortgage rates, stopped logging into bill pay or clicked on an ad. From there it is up to the bank to respond to that change and provide assistance. Even educated consumers can benefit from some personal financial guidance. Maybe paying off a credit card bill can help lower their APR, or perhaps waiting three more months to accrue additional savings is all they need to forego an additional PMI fee.\nBanks are still service organizations; it takes human intervention to get results. Big data promises to connect these self-service inquiries to a service environment that closes deals. With it we can recognize these changes in a virtual environment and react accordingly. It is no different than traditional bank personnel’s training to react on their in-branch observations.\nBig data identifies the insights that were previously only available in branches. It’s a sales funnel that picks up on trend lines to replace the personal interaction we’ve lost. The next step is to make sure branch personnel know how to -- and are willing -- to leverage the information.\nHuman interaction must be ported over to the digital channel, and the use of big data is the essence of our transition to true omnichannel banking. If you could have a conversation with anyone that showed interest with any of your products, what would you do with that? The successful banks will have managed leads as leads, regardless from where they originate. Consumers need to trust their bank as a single, unified brand rather than as having different channels as part of a brand. At the same time, the institution needs to leverage a single view of the customer by eliminating the siloed functions of those channels.\nThere is a natural demographic maturation of consumers’ needs for different banking services, and big data provides accurate self-segmentation due to their behavioral changes. You can better identify the individuals who are actually in the market to buy, and know when to follow up with them. Collecting data over and over, time after time, to detect patterns and find anomalies creates unrealized gains for the bank; however, to capitalize on it, you must know where to look for it and what to do with it. We do have the power to end the interaction v. self-service contradiction, and move between those cross-sections of opportunity freely and without hesitation. Just step on the gas and go.\nWade Arnold is the CEO of Banno, which provides a data-enrichment and interpretation platform for financial services providers."} +{"text": "Roget's Int'l Thesaurus\nFowler's King's English\nThe King James Bible\nBrewer's Phrase & Fable\nFrazer's Golden Bough\nShelf of Fiction\nProse and Poetry: Sir Thomas North to Michael Drayton\n> His Position and Influence\nINDEX OF ALL CHAPTERS\nThe Cambridge History of English and American Literature in 18 Volumes\nVolume IV. Prose and Poetry: Sir Thomas North to Michael Drayton.\n§ 15. His Position and Influence.\nThe relation of Donne to Elizabethan poetry might, with some justice, be compared with that of Michael Angelo to earlier Florentine sculpture, admitting that, both as man and artist, he falls far short of the great Italian. Just as the grace and harmony of earlier sculpture were dissolved by the intense individuality of an artist intent only on the expression in marble of his own emotions, so the clear beauty, the rich ornament, the diffuse harmonies of Elizabethan courtly poetry, as we can study them in\nThe Faerie Queene, Hero and Leander, Venus and Adonis, Astrophel and Stella\ndisappear in the songs and satires and elegies of a poet who will not accept Elizabethan conventions, or do homage to Elizabethan models, Italian and French; but puts out to discover a north-west passage of his own, determined to make his poetry the vivid reflection of his own intense, subtle, perverse moods, his paradoxical reasonings and curious learning, his sceptical philosophy of love and life. It cannot be said of Donne, as of Milton, that everything, even what is evil, turns to beauty in his hands. Beauty, with him, is never the paramount consideration. If beauty comes to Donne, it comes as to the alchemist who\nglorifies his pregnant pot,\nIf by the way to him befall\nSome odoriferous thing, or medicinal.\nFrom the flow of impassioned, paradoxical argument, there will suddenly flower an image or a line of the rarest and most entrancing beauty. But the tenor of his poetry is witty, passionate, weighty and moving; never, for long, simply beautiful; not infrequently bizarre; at times even repellent.\nAnd so, just as Michael Angelo was a bad model for those who came after him and had not his strength and originality, Donne, more than any other single individual, is responsible for the worst aberrations of seventeenth century poetry, especially in eulogy and elegy. The metaphysical lyrists learned most from himthe conquering, insolent tone of their love songs and their splendid cadences. In happy conceit and movement, they sometimes excelled him, though it is only in an occasional lyric by Marvell or Rochester that one detects the same weight of passion behind the fantastic conceit and paradoxical reasoning. But it is in the complimentary verses and the funeral elegies of the early and middle century (as well as in some of the religious poetry and in the frigid love poems of Cowley) that one sees the worst effects of Donnes endeavour to wed passion and imagination to erudition and reasoning.\nAnd yet it would be a mistaken estimate of the history of English poetry which either ignored the unique quality of Donnes poetry or regarded its influence as purely maleficent. The influence of both Donne and Jonson acted beneficially in counteracting the tendency of Elizabethan poetry towards fluency and facility. If Donne somewhat lowered the ethical and ideal tone of love poetry, and blighted the delicate bloom of Elizabethan song, he gave it a sincerer and more passionate quality. He made love poetry less of a musical echo of Desportes. In his hands, English poetry became less Italianate, more sincere, more condensed and pregnant in thought and feeling. The greatest of seventeenth century poets, despite his contempt for our late fantastics, and his affinities with the moral Spenserians and the classical Jonson, has all Donnes intense individuality, his complete independence, in the handling of his subjects, of the forms he adopts, even of his borrowings. He has all his frequency and fulness of thought. He is not much less averse to the display of erudition, though he managed it more artfully, or to the interweaving of argument with poetry. But Milton had a far less keen and restless intellect than Donne; his central convictions were more firmly held; he was less conscious of the elements of contradiction which they contained; his life moved forward on simpler and more consistent lines. With powers thus better harmonised; with a more controlling sense of beauty; with a fuller comprehension of the science of his art, Milton, rather than Donne, is, in achievement, the Michael Angelo of English poetry. Yet there are subtle qualities of vision, rare intensities of feeling, surprising felicities of expression, in the troubled poetry of Donne that one would not part with altogether even for the majestic strain of his great successor.\nINDEX OF ALL CHAPTERS"} +{"text": "Microsoft Corp.: Penny-Pinchers' ChoiceBy Steven Vonder Haar | Posted 2002-07-10 Email Print\nDossier: To gain traction in the streaming media market, Microsoft Corp. is using a time-tested strategy: It's bundling its technology into the operating system.\nTo gain traction in the streaming media market, Microsoft Corp. is using a time-tested strategy: It's bundling its technology into the operating system.\nMicrosoft's Windows Media platform is woven into the Windows operating system, creating an environment where companies looking to deploy online audio and video applications can do so using \"free\" applications incorporated into key Windows products. Likewise, streaming publishing tools are offered as a downloadable add-on to Microsoft's popular Office suite. As a result, Microsoft's streaming software platform is an attractive choice for cost-conscious corporate technology managers.\n\"I'm not a Bill Gates advocate or bigot,\" says Allen Meyers, chief network architect for San Diego Data Processing Corp., the nonprofit entity that manages technology for the city of San Diego, Calif., including its growing usage of streaming media. \"I'm just a keep-it-simple person and having everything in the operating system does simplify things.\"\nBut even simplicity can have its costs. Network managers who have used streaming systems from both Microsoft and its chief rival, Real-Networks Inc., say that Real updates its technology more frequently and provides better customer support.\n\"If you need support information on Windows Media, your best bet is to scrounge the news groups,\" says Jason Flenniken, lead multimedia developer with Vignette Corp. And because the Windows Media server is bundled into Windows NT, the upgrades to Microsoft's streaming server can be limited to upgrades in the overall server operating system.\"Microsoft does a million things, and Real can focus just on streaming,\" Flenniken says.\nOther corporate users are satisfied with improvements in Microsoft's streaming offerings. Findlay, Ohio-based Marathon Ashland Petroleum, for instance, uses the Windows Media platform to Webcast employee meetings and executive speeches to its workforce nationwide. The company has noticed significant improvements in the technology since first using it three years ago, according to Robert Calmus, media producer at Marathon.\n1 Microsoft Way, Redmond, WA 98052\nGroup Vice President, Platforms\nHeads unit responsible for the Windows franchise, which integrates streaming applications developed by Windows Media division. He joined Microsoft in 1990 to work on the company's network product strategy.\nCorporate Vice President, Windows New Media\nPoole was co-founder of eShop Inc., which was acquired by Microsoft in 1996. He oversees Microsoft's streaming efforts in addition to the content security business unit and its recently formed eHome division.\nGeneral Manager, Windows Digital Media Division\nOversees operations of the streaming technologies unit.\nAnchored by revenues from Windows PC operating system and Office productivity software, the company is establishing beachheads with Web applications and digital device platforms. In streaming, it develops a player, server and tools for producing and distributing digital audio and video.\nMarathon Ashland Petroleum\nProject: Petroleum refiner uses Windows Media technology platform to make department meetings, speeches and more available to its workforce.\nWharton School, University of Pennsylvania\nDirector, Advanced Technology Development\nProject: Makes selected classes and guest lectures available online using Windows Media platform.\nSenior Systems Analyst\nProject: Heavy-equipment manufacturer is in midst of expansion of its use of streaming technology.\nMedia Development, E-Learning Specialist\nProject: Carmaker uses Windows Media platform to deliver on-demand training clips to 4,500 technicians in dealerships nationwide.\nSafeco Life and Investment\nRelationship Manager for Financial Services Distribution\nProject: Using Windows Media platform to develop up to 40 Webcasts annually featuring interviews with portfolio managers.\nLead Multimedia Developer\nProject: Uses Windows Media technology platform to distribute up to three corporate Webcasts developed weekly.\nExecutives listed here are all users of Microsoft's Windows Media technology platform. Their willingness to talk has been confirmed by Baseline."} +{"text": "There could be something shocking going on in our bodies. Well, perplexing at least. A team of mechanical engineers has found that the tough, flexible tissue that makes up blood vessels has surprising electrical properties – at least in pigs.\nWhat this could possibly mean for us, I will come to later. But the reason this result is surprising is that the property in question – what scientists call ferroelectricity – is usually found in artificial crystals and synthetic materials used for TVs, displays, computer memory and sensors.\nFerroelectricity is rather like an electrical equivalent of magnetism. In a ferroelectric substance, one side of the material has a positive electrical charge and the other a negative charge, created through an uneven distribution of electrical charges in its constituent atoms or molecules. Just as a magnetic field can make a compass needle change direction, so an electric field can pull all the little electrical charges into a different alignment, switching the charge in the opposite direction.\nThis “switchability” is what makes these ferroelectric crystals highly sought after for the likes of liquid-crystal displays. The researchers who discovered this strange effect - Yuanming Liu and colleagues at the University of Washington, Seattle and the University of Boston - usually work on synthetic materials like these to build energy harvesting and storage devices. But Liu knew that other unexpected electrical phenomena had been found in bone and other biological substances. And ferroelectricity was reported last year in the hard mineral coating of seashell. Li wondered whether soft biological tissues like blood vessels might show the effect too.\nShot to the heart\nHe and his colleagues took a thin slice of the main artery transporting blood from the heart, called the aorta, and placed it in a special microscope containing a sensitive needle tip. The tip detected the tell-tale signal associated with ferroelectricity, and what is more, they found that they could switch this polarization with an electric field.\nWhy on earth should any animal tissue be ferroelectric? Well, as I mentioned, the living world does make use of some unexpected material properties. Bone, for example, is piezoelectric, which as it happens is another useful kind of behaviour we rely on for everyday technologies. It is exploited, for instance, in pressure and vibration sensors like those in your computer keyboard, because piezoelectric materials produce an electrical charge when pressure is applied to it. It seems that bony creatures use this principle too: the electrical response to squeezing of bone helps tissues gauge the forces they experience. In seashells, meanwhile, piezoelectricity helps prevent cracks and fractures by dissipating the energy of a shock impact as electricity.\nOK – but ferroelectricity? Who needs that? Engineers Bin Chen and Huajian Gao have speculated that the property might provide another way for the tissue to register forces, and perhaps monitor blood pressure. Or perhaps the property could sense blood temperature (because ferroelectricity is temperature-sensitive), or, as in seashells, disperse mechanical energy and prevent damage. Or maybe it could even act as a sort of “tissue memory” in conjunction with nerves. Liu, meanwhile, speculates that ferroelectricity switching might alter the way cholesterol, sugars or fats stick to and harden blood vessels.\nNotice, though, how these researchers have no sooner identified a new characteristic of a living organism than they start to wonder what it is for. The assumption is that there must be some purpose: that evolution has selected the property because it confers some survival benefit. In other words, the property is assumed to be adaptive. This is a good position to start from, because most material properties of tissues are indeed adaptive, from the flexibility of skin to the transparency of the eye’s cornea. But it is possible that ferroelectricity could be just a side-effect of some other adaptive function of the tissue – a result of the way the molecules just happen to be arranged, which, if it does not interfere with other functions, will go unnoticed by evolution. Not every aspect of biology has a “purpose”.\nAll the same, tissue ferroelectricity could be handy. If Liu is right to suspect that ferroelectricity can influence the way blood vessels take up fats, sugars or lipids, then switching it with an applied electric field might help to combat cardiovascular conditions that result from build-up, such as thrombosis and atherosclerosis. If true, then what seems like an esoteric phenomenon could help tackle conditions that kill millions of people worldwide every year.\nIf you would like to comment on this story or anything else you have seen on Future, head over to our Facebook page or message us on Twitter."} +{"text": "I almost got to do big-person, grown-up, adult-type stuff the other day. Almost.\nYou see, several weeks ago, I received a summons from my county courthouse for jury duty. Throughout the years, I have gotten several of these letters in the mail asking me to serve as a juror, but each and every other previous time, for some reason or another, the case on the day I was scheduled to appear had been settled out of court, and I didn't even have to show up.\nI had gotten so used to this scenario, that I was kind of shocked last Sunday evening when I called the courthouse and the automated answering machine told me that, in fact yes, there was a case to be decided, and yes, my presence was required.\nI had mixed emotions. On one hand, I have always been curious about how our country's legal system works, and I always want to do my part as an American citizen. But on the other hand, I don't know of anyone who wants to willingly step foot in a courtroom. Especially when this person may or may not possess 23-year-old illegal bottle rockets that he attained before he was married, that he may or may not have gotten on a trip to Gatlinburg.\nAdd to this the fact I am presently suffering from allergies, and you can see why I dreaded the thought of sitting in a solemn, quiet courtroom. Every 10 to 16 seconds, I feel a compelling need to blow my nose. And not just a pleasant little puff of air into a tissue followed by a polite, \"You'll have to excuse me. I'm a little stuffed up.\" No, this is the kind of proboscis clearing that produces a sound similar to that of the Heimlich maneuver being applied to a large Canada Goose. This procedure is always loud and occasionally messy. A sound that a defendant doesn't want to hear in a court of law.\nBut come Monday morning, I put all this behind me. It was time to act like a big boy and do my civic duty. I stuffed my pockets with cough drops and Kleenex, and drove to the courthouse to dispatch justice. It was kind of exciting.\nSniffling and clearing my throat, I entered the large room where everyone that gets summoned waits to receive further instructions, I told the check-in lady what my last name was and how many miles it was from my home to the courthouse. With that, she checked some stuff on a piece of paper, handed me a pamphlet on what would be required of me, and gave me my juror badge. From this point on in life, I pretty much plan on always introducing myself as \"Juror 86.\"\nAs I turned my mucus-filled head to find a seat to plant myself, I did what I used to do back in high school. I searched out the seat that was the farthest from the front of the room and the closest to the door. I spied an empty chair between two other gentlemen in the back of the room, and I made a beeline for it. I probably would have had my own court case if anyone had tried to beat me to that chair.\nAs I sat there in that room, waiting for something to happen, I started reading the little pamphlet they gave me. I didn't finish reading it because the third sentence had a big word in it. After a few minutes, they played a VHS tape again telling us of our duties. With my eyes watering and a constant tickle in my throat, I sat there relishing in the fact that I was about to take part in assisting the American legal system, helping to preserve the very Constitution that makes this country the greatest place in the world. I contentedly leaned back in my chair.\nI will give this one warning to anyone who is called to serve as a juror in Bureau County, Illinois. Be wary of the chairs. The particular chair that I was in, was made of a particularly sturdy kind of wooden construction with rollers on the bottom. The kind of chair that I can picture Gregory Peck using in \"To Kill a Mockingbird.\" I think it was pretty much exactly like everybody else's chair in the room, but to tell you the truth, I didn't pay that much attention. My chair swiveled, and I think that it squeaked a little when I rotated to the left. Other than that, it was a good chair. Or so I thought.\nWhen I leaned back in that chair, everything at first seemed fine and dandy. However, and I'm sure that anyone who has leaned back too far in a chair can attest, there is that certain tipping point when every thing rapidly changes from \"peachy keen\" to, \"Oh my gosh! I'm going to look like an idiot when I fall out of this chair in the back row of the Bureau County Board of Supervisors board room!\"\nThere is no more terrifying of a feeling in this world than thinking you have leaned back in a chair too far. Fortunately, I was able to pull myself out of this free fall and kept my seated altitude. Looking back, I doubt if I ever was in danger of going all the way to the floor, but that chair sure did give that immediate impression.\nIn fact, in mid-descent, as my head snapped back and my terrified, bloodshot eyes focused on the ceiling tiles of the room, I audibly uttered three-quarters of a four-letter word that I usually reserve for home repair projects and our cat. Luckily for me, my allergies were apparent to most of the potential jurors in the room, and the rows of people who sat in front of me just thought I sneezed. But those two guys I was sitting between ... I'm pretty sure they know I'm an uncoordinated, foul-mouthed idiot that wreaks of Hall's cherry, triple soothing action cough drops.\nTo finish the story, after about 45 minutes of waiting, the judge came out and told all of us that due to some unforeseen circumstances, there would not be a case that morning, thanked us for our service and dismissed us. This was the closest to being an actual adult I've ever got.\nYou will have to excuse me now. I have a goose to squeeze.\nYou can contact Wallace at firstname.lastname@example.org. You can follow him on his blog at http://gregwallaceink.blogspot.com."} +{"text": "The alleged culprits behind the Boston Marathon bombing have been found. Yet all along, leftist have wanted for nothing other than for it to be revealed that white men are responsible for the attack.\nOnly the self-delusional and the deceptive, the ignoramus and the liar, will deny that over the course of the last five decades, our politically correct zeitgeist has demonized white men while idealizing every other group. The left has been remarkably successful at commandeering the culture with The Script: an anti-white, anti-Christian, and anti-male narrative.\nAccording to The Script, the universe, much like it is depicted in, say, the Star Wars mythos, is a rather simple place. Like the fictional universe of Star Wars, the fictional universe of the leftist’s imaginings is defined by a perpetual contest between the forces of good and the forces of evil. Unlike that of Star Wars, though, the epic battle at the heart of the leftist’s fantasy world is essentially racial in character: White Christian (heterosexual) men constitute the evil Empire from which the rebel alliance of non-whites, non-Christians, women, and homosexuals seek emancipation.\nThe latest script writer is Salon.com writer David Sirota. His article, “Let’s Hope the Boston Marathon Bomber is a White American,” is instructive for several reasons. First, Sirota expresses as loudly and clearly as anyone the left’s wish that the culprits behind the Boston bombing are white. Secondly, trading in such stock leftist ideas as “white privilege,” Sirota supplies us with insight into The Script. Finally, in bringing The Script to bear upon this one episode, Sirota’s piece discloses a truth that far too many on the right still refuse to acknowledge: virtually every episode in American political life is determined by The Script.\nIn other words, every political issue is determined by the left’s obsession to effectively eradicate every last vestige of the culture invented by whites generally, and white men in particular.\nFar from unveiling some idiosyncratic wish on his part, Barack Obama represented his fellow travelers on the left when he pledged to “fundamentally transform” the country, for to transform anything is to destroy it. Take, for instance, a seed. A seed must first die before the new life, the plant or the crop, can spring from it. Or consider a caterpillar. A caterpillar must essentially die, must cease being a caterpillar, before it can come to life as a butterfly. Jesus, too, references the need for “fundamental transformation” when He instructs His disciples that lest they be “born again,” they will not be able to partake of eternal life.\nTransformation necessarily demands the extinction of its subject. Hence, when Obama promised to transform America, he basically promised to perfect the old leftist program of a sort of cultural or symbolic genocide.\nMore accurately, the culture upon which Obama and the left set their sights, the universe that is center stage in The Script, is what we may call John Wayne’s World. Indeed, The Script itself may as well be called, Kill the Duke.\nFrom the leftist’s vantage point, the traditional or historical face of America is basically that of John Wayne’s—and the Duke signifies everything that is wrong in the world. A particularly masculine white Christian man, the persona that Wayne brilliantly succeeded in crafting epitomized the rugged, but law-revering, individualism that leftists detest. “God, Guns, and Guts made America Free,” may be the saying plastered on the memorabilia of many an American patriot, but the Duke is its incarnation.\nWhether battling the Japanese in one of his World War II films, American Indians in one of John Ford’s Western classics, or dragging Maureen O’Hara miles across Ireland before doing battle with her bully of a brother, Wayne was unapologetically, even pathologically, un-politically correct. He resolutely defied The Script. Moreover, he did so without dropping a sweat.\nWhen leftists look back on America, it is John Wayne’s America—Wayne’s World—that they see. And while they have made awesome strides in relegating this America to the dustbin of history, whenever The Script is resisted or thwarted, it is due, as far as they are concerned, to the ghost of the Duke rising again.\nFrom immigration to “gay marriage”; abortion to capital punishment; Obamacare to allowing open homosexuals in the military and women in combat; “gun-control” to “affirmative action,” there is scarcely a conceivable issue over which they fight that the left doesn’t regard as a battle in the war to kill the Duke. It is crucial that we grasp this.\nIt is also crucial that we realize that this is why the left wants to find a new white villain responsible for the Boston Marathon bombing."} +{"text": "I recently had the opportunity to read the book “Bitter is the New Black (Confessions of a condescending, egomaniacal, self-centered Smart-ass, or why you should never carry a Prada Bag to the unemployment office)\", a memoir by Jen Lancaster. After reading the entire book, I really didn’t know what to think or where to start in order to provide a fair assessment. Not really being one to ever be at a loss for words, this was almost a new experience for me. Bitter is the New Black is a book that truly defies explanation. I needed to see what others were saying about it. A glance at the hundreds of reviews on this book ran the full gamut of emotions from absolute hate to delightfully entertaining and terrific. Originally, I was leaning toward the low end.\nThe book starts off entertaining enough. After providing a series of correspondence to set the pace, the book opens with Jen Lancaster (author) aboard a boat on a company trip. Jen works at Corp.com and is making a great deal money. She is a shining star in the organization and is earning almost a quarter of a million dollars a year. Jen is also involved with her current boyfriend/fiancé Fletch, who also earns a very good living. From the very start of the book, we are introduced to a very opinionated, conceited, self serving, egotistical woman who is also a shopaholic with absolutely no self discipline. Bitter is the New Black leads us through Jen’s self-induced, out of control, downward financial spiral after being laid off. Even as her situation gets worse, she gains no insight nor does she try to exercise control over any of her self destructive habits.\nThere were many times that I simply did not want to continue reading the book. I thought the story to be unrealistic and the character to be beyond ridiculous with no self redeeming qualities. Another annoying aspect of the book was that there were footnotes on the bottom of almost every page. Not the normal footnotes one would expect, but the footnotes were additional sarcastic remarks the author (Jen) felt that she needed to make. For example a line in the book read “I still prefer Walsh Park, but it’s a half hour walk”. The footnote reads “Who am I kidding? It’s a five minute drive.” While the comments in the footnotes were applicable to something the author stated, I found the need to continually look at the footnotes for yet another sarcastic comment, to be very distracting for a book of that length.\nWhat I decided to look for instead were the parts of the book that I found people facing unemployment could identify with. The first scene was the manner in which Jen’s layoff was handled. One day, Jen receives a call from a John O’Donnell, Vice President of the Southern sales region, praising her work and giving her a promotion. Two days later, Jen’s supervisor calls her into the office and tells Jen that her position was being eliminated and that she was being laid off. Jen was absolutely astonished, primarily because of her performance in the office and her recent promotion. Jen stated that she was very upset at being fired, in which the supervisor corrected Jen and said she was being laid off, not fired. A reader having been through a similar circumstance would appreciate the tone and emotional depth of the conversation.\nThere were other scenes throughout the book where the story was definitely realistic in dealing with unemployment, but as a reader, I was too annoyed with the writer’s attitude to give much appreciation to that fact. Another such scenario was the end of the book. As to not tell the end of the book, I will leave it at that.\nNow most people will skip certain pages in the book because they have very little to do with the book itself. The author’s note is one such page. I think to truly appreciate this book, one actually had to go back and read the author’s note found in the beginning of the book. I won’t disclose the contents here, but this is what actually turned the book around for me and helped me to write this review. It, in fact, became an “ah-ha” moment where I realized that I had read the book with the wrong attitude. It forced me to remember that there are many people in this world just like the author.\nIn “Bitter is the New Black” the author was telling the tale of who she was when she became unemployed. Sitting here trying to make sense of the book I had to learn to appreciate the tale of a person like the author. Even when things are at their worse, there are people that simply can not make the adjustments that they need to make in order to prevent or stop a continual downhill financial spiral.\nTo appreciate the book, I had to stop judging the author/main character. It’s not an easy jump from having it all to having nothing, especially if you have an attitude or complete lack of control like Jen. It was that one moment for me when I realized that while, yes the author made me mad; and yes the footnotes were very annoying; and yes I wanted to stop reading – the transitional period for someone who is laid off is not an overnight occurrence. That is what the book was all about. We are all a work in progress when dealing with life’s trials and tribulations.\nI can not say if you will love or hate the book. You will need to read it in order to draw your own conclusions of whether or not there was a lesson in it for you as there was for me."} +{"text": "GREAT BARRINGTON -- On the heels of two successful fundraising efforts for enhanced programming, safety and equipment upgrades, the Mahaiwe Performing Arts Center plans to add more shows to its roster, organize full-year seasons and further diversify its mix of attractions.\nA full house celebrated at the nonprofit's annual gala Sunday night, featuring a powerhouse 90-minute theatrical performance by Broadway stars Patti LuPone and Mandy Patinkin.\nThis week, Executive Director Beryl Jolly announced the hiring of the theater's first in-house artistic consultant, Arnie Malina, who retired recently after 15 years as head of the Flynn Center for the Performing Arts and the Discover Jazz Festival in Burlington, Vt.\nThe goal is to develop programs uniquely tailored to the Mahaiwe audience and dialogues with the community about artistic initiatives.\nThough half of its audience is from outside Berkshire Coun ty, the theater retains the loyalty of longtime area patrons.\n\"I used to go as many of my classmates did on Saturday afternoons,\" recalled Christine Ramsdell Silvernail, now 94 and a resident of Kimball Farms in Lenox. \"We'd settle into the theater and a woman would play the piano accompanying the silent films.\"\nDuring the 1920s, Silvernail, who lived near Monument Mountain, took the trolley line downtown to see the movies. Now, she occasionally attends high-definition Metropolitan Opera telecasts on Saturday afternoons.\nAt Sunday night's gala, state Rep. William \"Smitty\" Pignatelli, presenting honorary citations from Gov. Deval Patrick and the state Legislature to co-founder and major benefactor John Hoyt Stookey, credited the theater for revitalizing downtown Great Barrington. He extolled founding president and chairwoman Lola Jaffe for \"her vision and her dream\" as the driving force behind the restoration of the historic theater.\nPatrick's citation honored Stookey for his \"dedicated service\" to the Mahaiwe and \"commitment to the Berkshire community.\"\n\"The Mahaiwe offers us the opportunity to experiment, to try something new,\" Stookey told the audience. \"I dare you to try something different.\"\nAccording to Jolly, a nearly $100,000 John Hoyt Stookey Fund for Performing Excellence will be aimed at attracting top talent to the theater.\nIn an interview, Jolly explained that an additional $100,000 raised by the theater will match a state cultural-facilities grant to fund technical and structural upgrades.\nExplaining the decision to hire Malina after a fruitful six-year collaboration with executives at the Bardavon 1869 Opera House in Poughkeepsie, N.Y., and the Ulster Performing Arts Center in Kingston, N.Y., Jolly said it reflects \"an awareness that we've come so far, they've helped us build a foundation so strong that it's time to have a Mahaiwe-specific artistic leader.\"\nThe strategy, Jolly added, is to plan full seasons of programming well in advance and to package series of dance, comedy and music performances while adding more events, especially concerts.\n\"We hope to grow local participation,\" Jolly said. She putting an emphasis on affordability, especially through a $15 ticket available to people under 30 for any live performance.\nMalina said he has already started booking events for a 12-month season beginning next July. Programming will continue to include a variety of musical genres, as well as theater, dance and film, a family series and student matinees.\n\"We'll collaborate with community organizations,\" said Malina. \"There's an infinite range of possibilities.\"\nMalina, 67, said he intends to \"make the Mahaiwe an even greater part of the community by using the arts as an exploration of people's creativity and expansion of the social fabric. We'll be bringing clarity and more focus to the mix.\"\nMalina will participate in focus groups on upcoming weekends to take the pulse of the public's feelings about the theater.\nThe musical menu will lean toward more popular events, especially jazz, he said. \"Even in classical music, there are opportunities to present contemporary, edgy work,\" he said.\nThe Mahaiwe at a glance\nHistory: Opened in 1905 as a stage for touring artists, a vaudeville house and movie theater. Renovated and reopened in 2005 after a $9 million rehabilitation.\nAttractions: 145 shows a year, including 25 classical, gospel, jazz, country, folk, Broadway and world music concerts; 38 opera and theater high-def telecasts; 10 dance programs; 28 movies; three comedy shows; 14 lectures; 13 family shows; five education programs; and three master classes\nAnnual attendance: 35,000\nTicket sales: 75 percent of capacity\nAnnual budget: $1.6 million\nStaff (full-time): Seven\nLocation: 14 Castle St., Great Barrington\nInformation: www.mahaiwe.org or (413) 528-0100\nSource: Mahaiwe Performing Arts Center."} +{"text": "For Immediate Release, September 11, 2012\n||Kassie Siegel, Center for Biological Diversity, (760) 366-2232 x 302\nErik Schlenker-Goodrich, Western Environmental Law Center, (575) 770-1295\nStuart C. Ross, Clean Air Task Force, (914) 649-5037 cell\nAs Climate Warms, Petition Seeks to Stop Methane Leaks at Drilling Operations on America's Public Lands\nSAN FRANCISCO— Companies fracking or drilling for oil and gas on public lands should be required to use pollution controls to cut harmful methane leaks contributing to the global climate crisis, according to a petition filed today to the Bureau of Land Management by the Center for Biological Diversity, Western Environmental Law Center and Clean Air Task Force. About 126 billion cubic feet of gas are unnecessarily vented and flared from federal leases each year.\nMethane is a potent greenhouse gas — 105 times more powerful than carbon dioxide in warming the globe over a 20-year period — that plays a major role in climate change. This past January to August were the warmest eight months on record in the contiguous United States, according to the National Oceanic and Atmospheric Administration.\n“As climate change heats up our planet, many companies still don’t bother to control methane emissions from fracking and drilling on public lands,” said Kassie Siegel, director of the Center’s for Biological Diversity’s Climate Law Institute. “The federal government needs to put a lid on this highly destructive form of pollution. Methane’s far too powerful at driving global warming to let it leak out this way. We can’t sit here fiddling while Rome burns.”\nToday’s petition calls on the BLM to require that oil- and gas-drilling operators install readily available pollution-control measures that would reduce methane gas leaked into the atmosphere during the drilling process. Stopping the leaks would also keep more gas in the pipeline for consumers and add millions of dollars to the federal treasury from royalty payments. The wasted gas is enough to heat 1.7 million homes for a year.\nFracking, a highly controversial drilling technique that involves blasting huge quantities of water and toxic chemicals into the earth, worsens the leakage problem. The oil and gas industry fracks about 90 percent of wells drilled on federal lands, according to the BLM.\nMethane emissions also contribute to higher levels of ground-level ozone pollution, which has serious direct public-health impacts, including increasing the incidence of asthma, lost school and workdays, and premature death.\n“This isn’t about whether oil and gas drilling is good or bad, it’s about whether the Bureau of Land Management is going to clean up sloppy drilling practices that damage our climate,” said Erik Schlenker-Goodrich of the Western Environmental Law Center. “With win-win solutions at our fingertips that will keep more energy in the pipeline for consumers, there’s no reason the agency should not be requiring the industry to use the best proven, available equipment and practices. This is a no-brainer.”\nFederal law requires the BLM to prevent the waste of gas on federal leases, and evidence suggests that operators can economically capture at least 40 percent of leaked gas from federal lands, reducing greenhouse pollution by the same amount as removing 3.1 million cars from the road and increasing royalty payments by $23 million annually. The BLM is also required to protect the environmental, air, atmospheric, water, and other resource values of public lands and prevent their unnecessary or undue degradation. The agency manages more than 245 million acres of public lands and administers about 700 million acres of subsurface mineral estate.\n“Regulating methane from oil and gas production is absolutely essential to protecting both climate and public health in the U.S.,\" said Ann Weeks, senior counsel for Clean Air Task Force and one of the signatories to the petition. “There are many off-the-shelf techniques available today for controlling methane emissions from wells, pipelines and other sources in the production process. We are therefore demanding that BLM take a leadership role in requiring natural gas lessees to minimize their leakage of methane, an enormously potent short-lived climate pollutant.”\nMethane emissions greatly accelerate climate change, the consequences of which Americans experienced this summer: record high temperatures and massive droughts leading to higher food prices.\nBLM has admitted that its regulations have not kept pace with modern oil- and gas-extraction techniques, and has proposed new rules for fracking on federal lands. The proposed regulations do not address air pollution. The agency has stated it intends to address air pollution at a later time.\nThe Center for Biological Diversity is a national, nonprofit conservation organization with more than 375,000 members and online activists dedicated to the protection of endangered species and wild places.\nThe Western Environmental Law Center is a nonprofit public interest law firm that works to protect and restore western wildlands and advocates for healthy environments on behalf of communities throughout the West.\nClean Air Task Force is a non-profit environmental organization with offices throughout the United States and in China that works to protect the earth’s atmosphere by improving air quality and reducing global climate change through scientific research, public advocacy, technological innovation and private sector collaboration. For more information please visit www.catf.us."} +{"text": "TORONTO, ONTARIO--(Marketwired - April 18, 2013) -\nNOT FOR DISTRIBUTION TO U.S. NEWSWIRE SERVICES OR FOR DISSEMINATION IN THE UNITED STATES\nTrimel Pharmaceuticals Corporation (TRL.TO) (the \"Company\" or \"Trimel\") is pleased to announce that in connection with its previously announced public offering, it has entered into an underwriting agreement with a syndicate of underwriters led by RBC Capital Markets and including D&D Securities Inc. and Paradigm Capital Inc. (collectively, the \"Underwriters\") to sell 50,000,000 common shares of the Company (the \"Common Shares\") at a price of $0.80 per Common Share for aggregate gross proceeds of $40.0 million. No warrants of the Company will be offered as part of the transaction.\nThe Company has also granted the Underwriters an option to cover over-allotments and for market stabilization purposes (the \"Over Allotment Option\"), which will allow the Underwriters to purchase up to an additional 7,500,000 Common Shares. The Over Allotment Option may be exercised at any time up to 30 days following the closing of the offering.\nThe Company intends to use the net proceeds from the sale of Common Shares to pay for the costs of completing the CompleoTRT™ New Drug Application, payment of certain milestone payments related to CompleoTRT™, manufacturing scale-up costs and finished goods production related to CompleoTRT™, costs of Tefina™ clinical trials, maintenance of cash amounts to remain in compliance with the Company's existing credit facilities, and for general corporate purposes.\nThe Company will file a final prospectus in each of the provinces of Canada, other than Québec, in connection with the offering. Such prospectus will be available on SEDAR at www.sedar.com.\nThe Offering is expected to close on or about April 24, 2013 and is subject to certain customary conditions and regulatory approvals, including the approval of the Toronto Stock Exchange.\nThis press release does not constitute an offer of securities for sale in the United States or to \"U.S. persons\" (\"U.S. persons\"), as such term is defined in Regulation S promulgated under the United States Securities Act of 1933, as amended (the \"U.S. Securities Act\"). The securities being offered have not been, nor will be, registered under the U.S. Securities Act or any state securities laws, and may not be offered or sold in the United States or to U.S. persons absent registration or an applicable exemption from such registration requirements.\nTrimel Pharmaceuticals Corporation (TRL.TO) - Trimel is a specialty pharmaceutical company actively developing medications for male hypogonadism, female sexual dysfunction and various respiratory disorders. CompleoTRT™, a product utilizing Trimel's licensed bioadhesive intranasal gel technology, has successfully completed its pivotal Phase III study for the treatment of male hypogonadism, a condition commonly referred to as \"Low T\", and Trimel is preparing to file its New Drug Application with the FDA in the second quarter of 2013. For more information, please visit www.trimelpharmaceuticals.com.\nNotice regarding forward-looking statements:\nInformation in this press release that is not current or historical factual information may constitute forward looking information within the meaning of securities laws. Implicit in this information, are assumptions regarding our future operational results. These assumptions, although considered reasonable by the Company at the time of preparation, may prove to be incorrect. Readers are cautioned that actual performance of the Company is subject to a number of risks and uncertainties, and could differ materially from what is currently expected as set out above. For more exhaustive information on these risks and uncertainties you should refer to our amended and restated preliminary short form prospectus dated April 3, 2013 which is available at www.sedar.com. Forward-looking information contained in this press release is based on our current estimates, expectations and projections, which we believe are reasonable as of the current date. You should not place undue importance on forward-looking information and should not rely upon this information as of any other date. While we may elect to, we are under no obligation and do not undertake to update this information at any particular time, whether as a result of new information, future events or otherwise, except as required by applicable securities law.\nTrimel Pharmaceuticals Corporation\nKenneth G. Howling\nChief Financial Officer"} +{"text": "New city firehouse slashing response times\nPublished: Thursday, June 12, 2014 at 4:30 a.m.\nLast Modified: Wednesday, June 11, 2014 at 8:46 p.m.\nLess than two weeks after becoming operational, Hendersonville's new Fire Station 2 is already cutting response times within its new district by roughly half, fire officials say.\nThe $3 million, nearly 11,000-square-foot fire station on Sugarloaf Road opened for business June 2, although Cooper Construction is still doing some interior work, said Fire Chief Dorian Flowers.\n\"They've still got a punch list they're working on, but we felt it was more important for us to get in here and start providing a better level of service and quicker response times,\" Flowers said. \"They're working around us as much as we're working around them.\"\nCurrently manned by a three-person crew, the new firehouse is served by Engine 2 — which used to be housed at the old station on North Main Street — along with a 23-year-old engine kept there as a reserve.\n\"They've been over there about a week and a half and we've seen our response times cut in half for that area,\" said Deputy Fire Chief Joe Vindigni. \"Where it was taking us about four minutes to get there from this side of town, we're now seeing it in 2 minutes.\"\nFlowers said the fire station responded to a medical call last week in Wolfpen, \"and our engine was on the scene in six, seven minutes from the time of dispatch. We were on scene about seven minutes before EMS.\"\nFire engines responding to calls on the east side of the city have traditionally contended with heavy traffic on Four Seasons Boulevard, Flowers said. \"Or, when we were out on that side of town on a call, we had to fight traffic coming back into town,\" he added.\nNow, engines leaving the Sugarloaf firehouse will cover a new district, which encompasses everything from the intersection of Four Seasons and North Blue Ridge Avenue to the far eastern city limits near Morningside Lane. The district also covers I-26 and Upward Road.\nBut increasing response times and service levels were only two reasons city leaders chose to build the new firehouse, Flowers said. The state fire marshal's office also indicated to the city in 2009 that the city risked lowering its insurance rating if it didn't built a new fire station.\n\"They determined that because of the size and the layout of the city, it was determined that the city would have to open a second station or risk dropping its ISO rating,\" Flowers said. The city currently has an Insurance Service Office rating of Class 4, which puts it in the top 10 percent of the state's 1,256 fire departments.\n\"We're in real good company,\" Flowers said. But without a second station to maintain its ISO rating, the city flirted with a drop of one or two points when it was re-rated. Staying at Class 4 or 5 could potentially save a city resident with a $200,000 home between $200 and $300 a year on insurance premiums, he said.\nThe new fire department was designed with a lifespan of 70 years, Flowers said, and incorporated several features lacking at Station 1 on North Main: a meeting room capable of hosting 47 personnel during training; more storage for turnout gear and a workout room for physical fitness.\nFlowers said one of the biggest killers of firefighters nationwide are heart attacks and other cardiac problems, so physical fitness is a necessity, not a luxury.\n\"It's our policy that every day they work, they've got to work out,\" he said. \"It's a very stressful job anyway. We average 8-10 calls a day and some days we've had as many as 26 calls in a 24-hour period, so if you do the math, those firefighters don't get much sleep. Helping them to maintain a level of physical fitness allows us to provide a better level of service.\"\nAnother new feature built into Station 2 is a decontamination room, where chemicals and toxic soot can be washed safely from turnout gear without mixing it with bunkroom linens or other gear. Architects designed the room to serve double-duty, incorporating a manhole cover and narrow vent so firefighters can train for confined space rescues.\nAn official open house allowing the public to tour the finished station will be held from 4 to 7 p.m. Friday, Aug. 8.\nReach Axtell at firstname.lastname@example.org or 828-694-7860."} +{"text": "My mother lives in a very nice retirement community. Typically for an affluent suburb, the residents are rich and white, while the employees are low-income and represent a variety of races (white, Asian, black, and Hispanic). They’re not downtrodden employees. Many have been there for decades and have strong bonds with the elderly in their care. But they’re definitely not middle or upper class. Economically, they’re working or lower class.\nHere’s another broad statement I can make about the community in which my mother lives: Almost none of the affluent residents smoke cigarettes, while a high percentage of the poorer employees smoke. I know that my statement about the employees is true because I’m there often and I always see a rotating crop of employees hunkered down in the garage or standing out on the streets smoking.\nI have to admit here to hating cigarettes. (And yes, I know that “hate” is a very strong word.) I have an unusually sensitive sense of smell, and cigarettes are very high on my list of unpleasant odors. Just to give you an idea how much I hate the smell, back in the early 1980s, when I’d return to my flat in England after a night of dancing (not drinking, just dancing), I was so repulsed by the cigarette smell that clung to me that I’d instantly take a shower. This doesn’t sound like a big deal until you realize that I was doing this between November and March, when the flat had no hot water after 10 p.m., and the shower water was probably just above freezing. I hate cold water, but I hate the smell of cigarettes even more.\nMy loathing for cigarettes means that I’ve always had two thoughts when I’ve seen the employees puffing away. My first thought is, “God, I hate that smell.” My second thought, always, is “They must be spending a huge percentage of their income to support that habit.”\nToday, my thoughts went one step further. Yes, they are spending a huge percent of their income, but they’re not actually spending it on the cigarette. Instead, they’re spending it on the taxes for that cigarette. Here in California, cigarettes are taxed at a very high rate:\nCigarettes are subject to both the cigarette tax and the cigarette and tobacco products surtax. The tax and surtax are paid by distributors through the use of tax stamps, which are purchased from the Board of Equalization (BOE) and affixed to each package of cigarettes before distribution. The cost of the stamp includes both the cigarette tax and the surtax. Currently, each stamp costs 87 cents per pack of 20 cigarettes, comprising 12 cents for the cigarette tax and 75 cents for the combined surtax.\nTobacco products, not including cigarettes, are subject only to the cigarette and tobacco products surtax. Tobacco products include all forms of cigars, smoking tobacco, chewing tobacco, and snuff, as well as other products containing at least 50 percent tobacco. Effective July 1, 2011, through June 30, 2012, the rate is 31.73 percent.\nI don’t know whether the consumer has to pay the usual county sales tax on top of all those state taxes, but I assume he (or she) does. If that assumption is correct, you can add on an additional 8% or so to every cigarette pack sold in California, depending on the sales tax rate.\nThis is a staggeringly high tax rate. Worse than that, it’s a hugely regressive tax rate, meaning that it falls most heavily on those who can least afford it. The regression is hidden, because it looks as if everyone who purchases cigarettes, rich or poor, pays the same “sin” tax for the product. In fact, though, rich people in California have mostly given up on smoking. This particular sin tax is passing them right by. Poor people, whether they smoke because of peer pressure to smoke, or because they’re immune to government pressure to quit smoking, or because it’s a real pleasure in a life too financially constrained to have many pleasures, end up paying that tax. Worse, because the government relies on this sin tax to fund health programs and education, as people quit, they keep raising the tax to stabilize revenue.\nI hate cigarettes. What I hate even more, though, is a government that funds itself by using regressive taxes. It’s a sleazy practice. How much better, of course, if we would fall back on a non-religious version of tithing, as Dr. Carson so gracefully suggested in the speech he gave before a manifestly bored and uncomfortable President Obama."} +{"text": "A recent email exchange.....\nI strongly urge you to approve and vote yes on the house continuing resolution 2013 bill passed by the house and is now before the senate that fully funds the government and protects the full credit of the United States but delays and de-funds the Affordable Care Act.\nYou must understand that Obamacare is undermining American workers and selling out hard fought for union benefits. It is not fair for businesses to reduce workers' hours to survive. It is time to de-fund the affordable Care Act until such a time when it can be repealed and things can be straightened out and workers protected. I urge you please to delay funding for Obamacare now.\nResponse from Senator Markey:\nThank you for contacting me about the Affordable Care Act (ACA) and H.J. Res. 59 recently approved by the Senate. It was good to hear from you.\nIn June of 2012, the Supreme Court of the United States ruled that ACA is constitutional. This ruling is an historic victory for Americans across the country that will finally have much-needed healthcare security. ACA addresses our nation's growing healthcare costs, provides coverage for millions of previously uninsured Americans, and prevents insurance companies from denying coverage to those who need it most.\nUnder the ACA, Members of Congress and their staffs will be covered by exactly the same plans that will extend health insurance to millions of Americans next year. They will have to buy coverage in the same marketplaces that will begin enrolling new customers on October 1st. These marketplaces are expected to help 24 million uninsured Americans obtain coverage.\nIf the government shuts down, hundreds of thousands of Massachusetts residents would have services and benefits shut off.\nOur seniors and the nearly 1.2 million recipients of Social Security in Massachusetts could be denied services because of the shutdown. And applications for new benefits would be delayed.\nA shutdown could delay military pay and hurt military families. In Massachusetts, there are more than 3,000 active duty personnel, more than 15,000 Reserve and National Guard members and almost 7,000 civilians who would be affected by a shutdown. The Department of Defense estimates that during a shutdown nearly half of the civilian workforce would be sent home without pay, while the rest would continue to work for delayed pay. Service members would also stay on duty without pay.\nFor those receiving energy assistance through the Low Income Home Energy Assistance Program (LIHEAP), the timing of federal funding is critical due to the upcoming winter. Any extended shutdown of the government this year could affect funding availability for the approximately 198,000 Massachusetts residents who receive this assistance.\nA government shutdown could force Head Start Centers around the country to close. During 2012, 29 Head Start programs throughout Massachusetts served approximately 16,500 children and families. Massachusetts Head Start programs were already reeling from funding reductions due to sequestration, with more than 2,000 kids estimated to have been removed from the program.\nDuring the past 11 months, Massachusetts banks made more than 2,000 SBA loans worth more than $602 million to small businesses. A shutdown would put a stop to this critical source of small business credit until the government resumes operation.\nThe processing of new educational, pay, and pension benefits for the 394,000 Massachusetts veterans could be delayed. During the 1995-96 shutdowns, more than 400,000 veterans nationwide saw their disability benefits and pension claims delayed, while educational benefits were delayed for 170,000 veterans.\nColleges could be unable to draw down and disburse to students any campus-based program awards such as work-study or the Federal Perkins Loan Program if the government shuts down on Tuesday. Last school year, 42,000 students in Massachusetts utilized work-study while Perkins impacted over 24,000 students in the Commonwealth.\nIn a shutdown, the more than 400 National Park Service sites nationwide could close. This includes 18 sites in Massachusetts, including Faneuil Hall, John F. Kennedy's birthplace, the Adams National Historical Park, Salt Pond Visitor Center on Cape Cod, and Minute Man National Historical Park.\nAfter the Fiscal Year 1996 shutdown, a survey showed that over 20 percent federal contractors were affected and many employees of federal contractors reportedly were furloughed without pay. In Fiscal Year 2011, 5,430 Massachusetts businesses received approximately $16.7 billion in federal contracts. A shutdown similar to the one in 1996 could affect more than 1,000 Massachusetts businesses and their employees, delaying contract awards and furloughing employees.\nConcerned Citizen’s response:\nSenator, you claim,\n\"Under the ACA, Members of Congress and their staffs will be covered by exactly the same plans that will extend health insurance to millions of Americans next year. They will have to buy coverage in the same marketplaces that will begin enrolling new customers on October 1st. These marketplaces are expected to help 24 million uninsured Americans obtain coverage. \"\nSir I Say Your Lying\nBecause President Obama recently issued a special rule for Congress and congressional staff to get a special subsidy to purchase health insurance on the Obama care Exchange which is unavailable to every other American at similar income levels, means you will not be stung by the financial poison of this law as will the remainder of the American People\nWhat this means is\nCongress's health-care premiums will not rise, but the American people's will.\nMembers of Congress will be able to afford to keep their health-insurance plan, but the American people may be kicked off theirs.\nMembers of Congress will be able to afford to keep their doctors, but the American people will have to find a new one.\nYou sir are DESPICABLE\nDEFUND THIS OBAMA MESS NOW OR START TYPING YOUR RESUME"} +{"text": "July 15, 1999\n\"Every inch a star!\" -- The New York Times\n\"A phenomenon\" -- The New Yorker\n\"A star is born with Lea Delaria.\" -- Entertainment Weekly\n...the first openly gay comic to appear on national television (Arsenio, 1993), she has now busted a move into the world of theater and cabaret! The stocky, cocky, loud-mouthed Italian lesbian stand up comic, musician, actor, singer and civil rights activist has performed her one-woman shows across North America, Europe, Australia and New Zealand. She has been on Rolling Stone's \"Hot List,\" been featured in articles in People, Time, Newsweek, Out Magazine, and Entertainment Weekly. She has played regular roles on Matlock and The John Laroquette Show and can be seen in several movies including The First Wives' Club, Homo Heights, and Edge of Seventeen. A native of Belleville, Illinois and a product of Catholic schooling (\"mandatory training for stand-up comedy\", she explains), Lea is not known for her demure demeanor. Her critically-acclaimed performance in the New York Shakespeare Festival's revival of \"On the Town\" last year prompted the New York Times to dub her \"an Ethel Merman with attitude.\" Lea's one-woman show, \"It's Delightful, It's Delicious, It's DeLaria!\" is currently playing to sold-out houses in major venues across the country. When not performing around the world Lea makes her home in Los Angeles where she is active in the lesbian/gay and women's communities -- and occasionally has sex.\nSo ... thinking of coming out ... in a comedy club? Wondering how Lea conquered everything from society's stigmas to stage fright? Wanna know what Arsenio's like?\nYou asked .. she answered!\nShygrrl asks: \"I'm a 15 year old lesbian in a small midwestern town who'll probably be disowned when/if I come out. I've always admired your candor about your own sexuality (and, well, everything else!) so I was wondering if you could tell me a little about your own experiences growing up/coming out. I feel like a big freak.\"\nLEA: \"I was basically disowned by my Italian Catholic parents when I came out. They didn't speak to me for 5 years. Over a course of time, however--mostly mostly through my rubbing their faces in it--they came around to a place of peace with who I am. After many more years, they actually accept it now. My experience has been that your parents love you and will eventually come around.\"\nLEA: \"Jodie Foster's bedroom. Or Sigourney Weaver's bedroom. No...wait...Uma Thurman's bedroom. No, Susan Sarandon's any room. And then Broadway. \"\nLEA: \"John Coltrane. He spent a lifetime trying to sound unique and to have his own style. As a jazz musician I find it very important to find my own style-- which is why it's very interesting that whenever reviewers review me, they compare me to a laundry list of other singers. We're talking everyone from Bjork to Ethel Merman. When I sing a particular song I try to remain true to its style. Unfortunately, when people here a certain style of song they equate it to a specific singer. When you hear a belter, you think Ethel Merman. When you hear a scat singer, you think Ella Fitzgerald. When you here atonal expressionistic jazz, you think Betty Carter. Now I do all of these things, so they compare me to all of those people. The reality is, I sound like me. I'm just able to sing in a variety of styles. And that's how I try to find my own. \"\nLEA: \"No, and it's gotten me in a lot of trouble! Once when I was in East Texas, it was during the Macarena craze and I was over it. I said, \"Yesterday I played the Macarena backwards, and it said 'I killed Selena.'\" I got so booed for that. And, of course, everyone knows about the Hillary comment...With me saying on the White House steps, \"Finally we have a first lady you can f*ck.\" Congress passed a law against saying \"f*ck\" on the White House steps as a result. My idea as far as comedy goes has always been to push the limits of what's acceptable for a woman to do or say or be. My hero in that would be Lenny Bruce, who teaches us that words have no meaning. It's the intent behind them that is what's important.\"\nLEA: \"Oh please...As a standup, I tried to change the world. As an entertainer, I try to entertain. And as a lesbian, I try to pick up the prettiest girl in the room. Not necessarily in that order.\"\nLEA: \"Well, now that depends doesn't it? I mean, do you only do windows? And...are you looking for a mommy or a daddy? Because I definitely fall into the daddy category! Plus I like to cook my own meals. But I'll definitely let you do the bathroom. When do I get the phone number?\"\nBreakup Girl created by Lynn Harris & Chris Kalb"} +{"text": "Hi folks so i'm back after taking quite a bit of time off. Had the unfortunate experience of my dad passing away recently. I truly believe that family comes first so i've been spending my time elsewhere. Thanks for your patients.\nVersions of Ubuntu have changed over the last year so i'm going to give you the run down of the latest version, called Ubuntu 12.10 (Quantal) onto your Beagleboard XM. This procedure will be very similar to installing 11.04 but i'm going to give some more broad answers so if links/URLs die and such you can find your way.\n-Beagleboard XM (mine is rev C)\n-Micro SD card (4GB or higher I recommend)\n-Ubuntu system to install things onto your SD card (i'm using VirtualBox with 12.04)\nNOTE: you might need to get a few ubuntu packages for your system (virtualbox), i've already installed a few\napt-get install uboot-mkimage btrfs-tools pv\nThe first thing i'm doing is referencing Roberts home site and i'm going to look for the latest version of Ubuntu for the beagleboard that I can find.\nI'm going to look into the Quantal folder and look for the latest version of the file, then download it. You might have to do the same.\nUnzip the files...\ntar xJf ubuntu-12.10-console-armhf-2013-06-14.tar.xz\nLets go into the folder... pressing the tab button finishes the folder/file name just in case you are new to linux syntax.\nSo there will be a file located in this folder called 'setup_sdcard.sh' this is a script that sets up the SD card for you, which is pretty neat. All you need to do is call the location of your SD card and away it goes. So I called the following command to see where my SD card was mouted.\nI found that my 4GB SD card was located as /dev/sdb1 but i'm going to use the name /dev/sdb so as not to include just the partition name but the whole drive location.\nNow to install the following, you'll need to start the install process, be sure to add your SD card name correctly!! if you have a beagleboard or beaglebone you need to look for the right syntax instread of 'beagle_xm'.\nsudo ./setup_sdcard.sh --mmc /dev/sdb --uboot beagle_xm\nIt will want to confirm that the right drive is being selected, and ask for verification. Just press 'y' and then hit enter. Now this procedure might take a while depending on your connection to your SD card and the speed of your computer/SD card it could take 5-15 mins so be patient. Just to note I did have one pop up warning me, but all i had to do was click ok and it continued.\nOnce this is complete and you get a message saying everything was complete, unmount your SD card if it hasn't been done in the script already.\nNow take the SD card and insert it into your Beagleboard XM and power it up!\nDefault username/password: ubuntu / temppwd\nThe first thing I recommend is updating the packages and upgrading everthing.\nsudo apt-get update\nsudo apt-get upgrade\nOPTIONAL INSTALLS AFTER:\nEthernet - One of many ways to enable Ethernet connection\nsudo ifconfig -a\nsudo dhclient eth0\nsudo ifconfig -a\nSerial Peripheral Interface (SPI) - How to enable SPI hardware...\nYou'll need to remove the # symbol from in front of buddy=spidev, once this is done save by pressing the ctrl+x and confirm the name with an enter.\nContinue over to my SPI for beagleboard post that shows how to test that everything works. But the short part is you should see the spidev located under the /dev folder like this after rebooting.\nGUI Desktop - How to install a simple GUI desktop\nTo get the GUI installed you can do many different approaches I did a couple, first I started by installing the following, but ran into the problem that xserver no longer made OMAP3 video drivers. I think they're going towards xf86-video-omap. But until that is completely true I did the following.\nsudo apt-get install gdm xfce4 network-manager.\nThen I found Robert's script that took care of the rest. Both the previous and the next commands take a couple hours, but you get a few selections for desktops. LXDE and XFCE.\nThanks for your feedback, and feel free to email or message me."} +{"text": "SONGS OF VISCERA Cabaret Event Premieres at Stage Left Studio, 12/20\nCabaret event SONGS OF VISCERA will premiere at Stage Left Studio, 214 W 30th Street, 7:30 pm. The one-night event is the brainchild of Emmy-nominated composer Garth Koren, Drama Desk-nominated character actor Frank Blocker, and the producer Cheryl King, and is (not unconsciously) scheduled for the night before the Mayan calendar ends.\nIn a counter-holiday-programming move, the show promises stalkers, loners, killers, and the end of the world, but absolutely no Christmas music. Visceral selections and interpretations mirror the grittier days of cabaret sans jazz hands, feather boas and lace gloves.\nSong sources include country, alternative, jazz, folk and Kurt Weill, all reinterpreted musically by Koren and performed in character-style by Blocker.\nKoren is a composer, jazz pianist and improvisation specialist whose influences run the gamut of edgy jazzist John Medeski to the classical Michael Steinberg. He composed the music for best-selling children's book The Kissing Hand and received an Emmy-nomination in 2007. Blocker is best known for comedy and character roles. He's most recently performed as a vocalist for AG Contemporary Art in Soho and appears regularly with Forbidden Kiss LIVE! at Stage Left Studio as a vocalist and comedian. Blocker's current solo play Stabilized Not Controlled goes on hiatus from 9-month run as he prepares to reprise both Southern Gothic Novel (2009 Drama Desk nominee) at The Underground Theatre/Hollywood while also play Larry Parrish in Hollywood premiere of David Bertolino's The Deep Throat Sex Scandal at The Zephyr Theatre.\nSONGS OF VISCERA performs Thursday, December 20, 2012, 7:30 pm, at Stage Left Studio, 214 W. 30th Street, 6th Floor. TICKETS are $20 and available through www.StageLeftStudio.net (For tickets, click HERE.) The performance is billed as a fun end-of-the-world party celebrating this mortal coil.\nGarth Koren (piano) is a jazz improvisationist who enjoys a wide range of musical collaborations, having studied with the John Medeski and Michael Steinberg. He toured with LeeAnne Savage, helms the Garth Koren Trio with bassist Marco Accattatis and drummer?Piergiorgio Marchesini, and was a member of the pop/soul band blue number nine, circa 2000. He composed music for bestselling children's book The Kissing Hand audio CD, and received a 2007 Emmy nomination for scoring the \"Beautiful Lengths\" campaign, represented in the Community/Public Service Announcement category. Look for Garth to appear at gigs in New York City in the coming months, including a guest spot for Stage Left Studio's Forbidden Kiss LIVE! New Years' Eve Musical Comedy Love-In.\nFrank Blocker (vocals) is an actor and playwright who, by the way, sings. He regularly appears at Forbidden Kiss LIVE! dueting with the likes of chanteuse DeeAnne Gorman and amazing lyricist Gaby Gold, and has enjoyed invitations to sing at AG Contemporary Art functions in Soho. Musical roles include Peachum in Peculiar Works Project's Beggar's Opera, the devil in Damn Yankees and the wicked witch in The Ruby Slippers. As an actor he has appeared at Fringe Fests, made the requisite L&O appearance, received a Drama Desk Award nomination for Solo Performance, won great acclaim for his penis monologue in The Deep Throat Sex Scandal and screamed bloody murder on the streets as a proud cast member of Obie-winning West Village/East Village Fragments (Peculiar Works). As a playwright his work includes Stabilized Not Controlled, Southern Gothic Novel, Eula Mae's Beauty, Bait & Tackle, Patient Number, The Wisconsinners, and book to the musical Alice (composer Wm. Wade). He is a member of AEA, SAG/AFTRA, and Dramatists Guild of America. He will appear in L.A. productions of Southern Gothic Novel late nights, while reprising his role in Deep Throat January through March 2013.\nCheryl King PRODUCTIONS (producer) was formed in 2000 by Cheryl King. The company has produced several acting retreats, over 300 showcases, and three years of V-Day events. She is the creator of the Left Out Festival, an annual festival of gay performance art, which has been presented since 2008, and is a benefit for Bailey House and GMHC. For her work in promoting gay performance, she was chosen as one of the 100 Women We Love in GO Magazine's June 2008 Annual Pride Issue. In November 2008 she was chosen \"Person of the Year\" by nytheatre.com. She also created the Women At Work Festival, now in its fifth year, which contributes funds to The Girl Effect. Ms. King has curated solo shows for the Estrogenius Festival at ManhattanTheatreSource since 2005. In October 2010, she inaugurated the Mama Drama Festival, a festival of theater about mothers, at Stage Left. Cheryl King is currently starring in Sally Lambert's Grapefruit at Stage Left Studio, directed by Teresa Gambacorta."} +{"text": "26 Gorgeous Hotels You Won't Believe Are Under $150\nEvery so often, a hotel comes along that is both stylish and comfortable, close to the action and affordable. From the beaches of Mexico to the quaint courtyards of New Orleans, here are 26 properties that make the cut this year. You're welcome.\nWe scoured the globe to find the best new hotels out there. Making our list is harder than you think! Each of these independent properties has to meet a strict criteria to even be considered: they must have a unique story; their design sense must speak to the local culture instead of being generic and corporate; and they must (no exceptions!) be available for under $150 per night. You'll hear the owners' stories. You'll find urban retreats in some of the planet's most expensive cities. You'll take in unobstructed ocean views from your private balcony. You'll commune with nature. Bottom line—you'll never want to leave.\nJoshua Tree, California\nHicksville Trailer Palace owner Morgan Higby Night isn’t the first creative type to find inspiration in the rugged, lunar landscape of Joshua Tree National Park (see also: Gram Parsons, U2). But the Los Angeles–based writer and producer (Shortbus, Talking About Sex) has certainly taken his artists’ retreat there to an audaciously kitschy level. “I was already going out to Joshua Tree two to three days a week to write my latest screenplay,” Higby Night says. “It made me think that maybe other artists in L.A. also needed a place to get away to work.” Higby Night installed 10 vintage trailers, a solar-heated saltwater pool, and an archery and BB gun range on his two-acre desert plot last April. Each unit has a distinct design scheme and amenities: a jukebox filled with punk tunes, a TV stocked with horror (and only horror) movies, and bunk beds that, for an extra $50 a day, can be tucked away to make room for a film editing suite. And guests don’t have to worry about curious day-trippers traipsing the grounds: Directions are only given out to folks with confirmed reservations.\nhicksville.com, from $75.\nJensen Beach, Florida\nLet the scenesters have South Beach. The eight-room Inn at Tilton Place, two hours to the north in Jensen Beach, swaps crowded pool decks and velvet-rope nightclubs for quiet coves and evening wine tastings on the front porch. The whole place is steeped in Florida history. A local fisherman built the white clapboard house in the early 1900s and gave it to his daughter as a wedding present; today, her great-granddaughter, Katie Wacha, runs the place. There’s a wall of black-and-white photos in the foyer documenting the generations of Tiltons who’ve inhabited the house. Still, the best new tradition at the inn is Wacha’s own: seasonal, three-course breakfasts, featuring beyond-the-basics dishes like red pears with rosemary sugar and basil hollandaise Benedict.\ninnattiltonplace.com, from $109.\nWhen Kelli Kerns, Tim Cron, and Becky Cron (Kerns’s sister) purchased the Sawtooth Hotel in Stanley (population: 100) in 2004, they had modernizing on the brain. Over the course of the family’s three-year restoration project, they added rooftop solar panels, installed a commercial kitchen for their popular ground-floor restaurant, and upgraded the nine guest rooms with new baths and fresh furnishings. The best part? You’re not hit over the head with any of the upgrades. The 70-year-old log-cabin landmark still has all the rustic, small-town charm you’d expect: 100-year-old skiing gear mounted on the walls, a carved wooden moose grinning in the lobby, and the dining room’s views of the jagged, snowcapped Sawtooth Mountains—just as impressive as they were in 1931 when the original Sawtooth opened.\nsawtoothhotel.com, from $70.\nNew Orleans, Louisiana\nLike many French Quarter spots, the Hotel Le Marais, steps away from Bourbon Street, greets guests with plenty of flash: The lobby is all bright colors, mirrored tiles, and party music. But enter one of its 64 renovated guest rooms, and the tone shifts. The mostly neutral decor subtly references the city—eggplant throw pillows, photos of Louisiana landscapes—without playing to clichés. Some rooms even have wrought-iron balconies overlooking the internal brick courtyard (and its heated saltwater plunge pool) lit with both old-fashioned gas lamps and neon purple lights. hotellemarais.com, from $110.\nSt. Paul, Minnesota\nHotel 340, housed in the former headquarters of the St. Paul Athletic Club, is no ordinary YMCA. The 12-story English-renaissance building has served as a downtown clubhouse for St. Paul’s upper crust since 1917; today, the carefully restored structure is home to the hotel (on the top three floors), plus the University Club of St. Paul, a chichi lobby bar, and, of course, an all-new 60,000-square-foot fitness center (free for guests). The building’s entrance is downright grand, with its 20-foot-high coffered ceiling, marble columns, and huge fireplace. The hotel’s 17 rooms all have cherry hardwood floors; mahogany headboards; marble showers; and skyline, courtyard, or river views. The 40 suites (from $129) add fully stocked kitchenettes and steam showers or whirlpools.\nhotel340.com, from $99."} +{"text": "Change doesn’t always sit well with the NASCAR faithful.\nJust talk to a race fan about swapping the dates of races at some of NASCAR’s most storied tracks and you’re likely to get a strong reaction — almost always in favour of keeping the status quo. The Car of Tomorrow was almost universally reviled when it was first introduced and the Chase for the Sprint Cup wasn’t immediately popular, although it seems to have grown on people.\nSo there’s little surprise that the decision to repave stock car racing’s most famous track — Daytona International Speedway — hasn’t gone over well with drivers and fans alike.\n“They should not repave race tracks,” Carl Edwards said back in February when it looked like the repaving project was still three years away. “I think the rougher the better. It makes it more fun when you’re out there sliding around and moving. It makes it harder so that you can end up running different lines and get an advantage. If this track were like Talladega, it wouldn’t be nearly as fun.”\nSure the surface at Daytona was a little rough, not surprising since it hasn’t been repaved since 1978, but it had character and in many people’s minds has made for better racing than at the loop’s other superspeedway at Talladega, which was repaved in 2006.\nEven after the farcical Pothole 500 in February, drivers were still clamouring for a way to keep the old track intact. Kyle Busch — who rarely agrees with Edwards on anything — told the Miami Herald recently that the repaving project is a mistake.\n“I’m not a fan of it,” he said earlier this month. “I think it’s cool the way that the track is. It’s old, it’s slick. You really have to have a good handling race car to get around here.”\nFortunately the drivers aren’t in charge and the NASCAR bigwigs encouraged International Speedway Corporation to make improvements to its track immediately.\nWork has already begun to tear about the surface which has seen 32 Daytona 500s and 32 Coke Zero 400s. If all goes according to plan the track will be ready early in 2011 and barring a catastrophic delay the green flag on the 2011 Daytona 500 will drop Feb. 20.\nThe last race on the old surface was July 3 when Kevin Harvick drove his Shell/Pennzoil No. 29 Chevrolet into victory lane. It was the second win of the season for the current points leader and a very special one.\n“I think this racetrack is obviously the most historic racetrack that we race on, and I think if that asphalt could talk, you can go back and look at all the stories,” Harvick said after the win. “But it’s just such a neat deal to be able to win the last race on that particular asphalt. It’s going to be a lot different race when we come back.”\nAs great as the old track was, it was beginning to show its age. The pothole that delayed the Daytona 500 was just one manifestation of this.\nNostalgia is important in sport and NASCAR is full of great traditions, but times change and fans and drivers can’t let their feelings get in the way of important innovation.\nDaytona will be different next year. The drivers will need to find new racing lines and figure out what works on the new surface. But it is still Daytona and if the asphalt that is being laid down over the next six months could talk, it will soon have some great stories of its own to share.\n• He said it: “When you go to the racetrack . . . as a team we kind of compare ourselves to each other, maybe to the competitors that we can feed on that weekend. We don’t even compare ourselves to the 18 because they’re in their own time zone. But it all starts at the top. Joe Gibbs and their attitude, if they’re going to do something, they’re going to do it right. They’re going to go at it 110 per cent.” — Jason Leffler, the driver of the No. 27 Great Clips Toyota in the Nationwide Series talking about defending Nationwide Series champion Kyle Busch in the No. 18 Z-Line Designs Toyota.\n• Canadians: The NASCAR Canadian Tire Series begins a two-week trip to the site of IZOD Indy Car events. Saturday, Canada’s top stock car series is in Toronto for the inaugural Canadian Tire Jumpstart 100 and breaking from tradition the event will be live on TSN at 2:30 p.m. ET.\n• This week: The Sprint Cup Series takes a week off, so the Nationwide Series grabs the spotlight in Madison, Ill., for the Missouri-Illinois Dodge Dealers 250 at Gateway International Raceway (Saturday, 7:30 p.m. ET, TSN)."} +{"text": "Before I tell you about how I found the camaro's original drive train, I want to tell you story of how the original owner and a 69 RS/SS L 78 camaro came together. It was Dec. of 1968 and Bill Floyd was living on the central Oregon coast and looking to buy new tri power Corvette. His dealer was Southwestern motors and they told Bill they couldn't get\nhim one. After hearing this Bill ask them to get him the \"biggest motor he could get in a Camaro\". 360 miles away in Burns, Oregon sat a new rallye green 69 Camaro RS/SS 396/375 HP in Ganger & Grover Motors. Southwestern pulled the car for Bill. Years later in 1991 I asked Bill if he knew about the 427's the factory was putting in the camaro's back then, he said if he had known he would have ordered one. Bill named the Camaro \" thunder\" because of the L 78 running through those chambered exhast. He said he could take out anyone on a rolling start, you see the car only had a non posi BN rear with 3:55.\nMy involvement with the L 78 camaro started in July of 1990, a co worker owned the camaro and this time the motor and trans had been pulled and sitting on the floor of the garage. I bought the car for $3500. in July 1990. By now the motor and trans were replaced. The camaro had a L78 from a 68 chevelle \"EG\" the 4 speed replaced with a TH 400. Now began the hunt for original motor and 4 speed. At this point I knew noting about the owners or history of this Camaro.So where to start,I knew the co worker bought it in Beaverton, Oregon. I called the Oregon DMV ( Department of Motor Vehicles) paid them $24 and the cars VIN numbers a week later received all the owners information ie. regstration paper, the dealers transferring the car for Bill and the like. A gold mind of information. This was my starting point for finding the original motor an 4 speed. I wanted to try for the motor first, so I called the owners starting with the last owner and working forward. About the 4th or 5th owner spun the crank shaft on the L 78 and the motor ended up in Roseburg, Oregon in a 69 chevelle. I talked to the guy that fixed the engine and put it in the chevelle. He stated he sold the chevelle to his paper boy some years ago. I asked for the vin or plate number, and proceeded to DMV the chevelle. After receiving the paper work, I contacted the last owner first. He still had the car, and the engine was sitting in his barn out of the car.We agreed on a price an away I went. This odyssey, time wise was about 4 or 5 months of work with lots of time on the phone. Now for the 4 speed, since I made lots of connections looking for the motor I used some of the same people on this hunt. Now mind you this was 15 years after the drive train left the camaro, but I was full of confidence after finding the original engine.The previous owners all lived in small towns and for the most part knew each other so that help a lot. After a few months one of the owners directed me to two brothers that were into off road 4 wheel drive racing or some thing like that. Years ago they ended up with the camaro's 4 speed. I talked to one of the brothers several times over a period of 4 months. At times he he gave me some good information and other times he was to busy to talk and could care less. Think I wore him out and he finally said, if I find out were the trans went what are you going to do for me.... I'll give you $100.00 for information on who has it I said. He said to give him 2 weeks then call him back. I called 2 weeks later and he had all the information I needed.... phone numbers, address, and names. I asked him where to send the money, he said don't worry about it just keep it. Wow, I caught him on a good day you just never know about some people, but that's how it works. I then called my best new buddy, the owner of the 68 camaro that I think my trans is in. Brenda was the owner name, and she owned a 68 camaro RS/SS 396 car, that may have my 4 speed.I contacted Brenda about the trans in her camaro after a few months of talking I went down there to look at her 68's 4 speed.I ran it up on my ramps to check the numbers out, what I saw was P9M19 plus the cast numbers, 3925660,3857584,3950306, but no vin stamp. I went home unsure if it was my 4 speed. After 5 months Brenda agreed to having me pay for a replacement 4 speed for her 68 camaro. I would come down (4 hour drive one way ) swap out the 4 speeds and give her $100.00 for the her time. My brother and I went down to Coquille, Oregon pulled the trans out and cleaned off the top and there was my camaros vin stamp on top. After all the trials and tribulations it was all worth it in the end."} +{"text": "So I picked it up yesterday in the store I'm working in and had the chance to quickly get a first impression of it today.\nKeep in mind, that this is a superzoom which will inevitablely have to make compromises. I don't want to start a discussion on the subject if such a lens is \"good\" or \"bad\" - it has its clear purpose of serving as an allround lens for travelling when you just don't have the time to switch between several lenses all the time. It's also very light for those occasions where you dont want to pack yourself with multiple heavy lenses. If you need the best possible quality for a very special scene, you still will have to take a prime (or maybe a small-zoom-range) lens.\nBasicly, when you pick up the lens, you feel that you've got a solid piece of glass in your hands. The AF, VC and Zoomlock switches are all reasonably placed so they can be reached well. The zoom has got some resistance to it to reduce lens creep (more on that in a moment). Between 70 and 120mm the resistance reaches its summit. However after a day of using it already starts to run a little smoother.\nThe front element is not rotating, which certainly is great news if you want to use a filter. Due to the wide angle, the included lens hood is naturally quite small, yet well shaped (bigger on the top and the bottom) to maximize its potential. The manual focus ring is a bit loose, but reasonably sized.\nAfter so much praising you probably already suspect that there are some downsides as well, so here we go... The inner tube wobbles a little bit but it's not critical. Probably the biggest issue is lens creep - If you point the camera towards the ground and shake it, the lens will zoom in due to the weight of the inner tube(s). While I don't know exactly how big of an issue this is with other superzooms, I think it's still within reason on this one. As mentioned before, the zoom ring is pretty loose when switching to MF, so manual focusing is not that great.\nOverall, Tamron has done a pretty good job with this lens, apart from the usual superzoom issues, such as lens creep.\nI've read in various other comments about this lens (especially from those with Nikon mount) that the autofocus was very slow so I was quite worried when I did my first testshots. I discovered that in daylight, the autofocus is actually nothing to worry about - surely, it aint as fast as a USM Autofocus from Canon and if you want to professionally shoot sports, you should look for another lens - BUT for normal use it certainly is quick enough. In low light though, the story is a slightly diffrent one: The focus gets quite slow, taking about 1-2 secs if the subject is close and ocasionally it starts to hunt. At times it's actually unable to focus at all until you try a second or even third time.\nConclusion: The AF is just fine in good lighting conditions, whereas in low light it can get quite slow.\nNot much to write about here... it works very fine - I was able to shoot at 1/60s at 270mm without problems and down to 1/8s at wider angles. I guess someone with more steady hands will even be able to take 1/4s shots without a tripod. You can tell when the stabilizer starts to work by its relatevely loud noise, it starts working when you half-press the shutter release button, and stops about 2 seconds after you stop pressing it again.\nSo the Vibration Compensation is probably the biggest improvement over the previous 18-250.\nFor optical Quality, check my thread in the lens galery\n. To write a quick conclusion here (personal impression after 1 day of use): This lens is tack sharp in the center, still very sharp towards the edges, but starts to smooth out a little in the corners. CA's are nothing to worry about as far as I can tell at the moment, and vignetting is well controled.\nThe Tamron 18-270mm certainly is a compromise - but a good one! Optical quality is surprisingly good (at least as far as I can tell until now), and I'm especially pleased by the low amount of CA's. Build quality is ok, but not great - certainly good enough for a holiday. Vibration Compensation works great, which makes up a bit for the rather small max aperture. There are 3 bad points, 2 of which can be overlooked for an allround lens in my opinion: Probably the biggest issue is the slow and sometimes hunting AF in low light. typical for such a lens, it tends to creep when pointing up or down and lastly the aperture at 200< is quite small (f/6.3).\nSo overall I think I can highly recommend the Tamron 18-270 to anyone who's looking for a travel lens."} +{"text": "In May 2010, the annual Great Calusa Blueway Paddling Festival was included as one of the top 20 events and festivals by the Atlanta-based Southeast Tourism Society (STS). With more than 1,000 events and festivals in 12 states competing for this award, winning it is no small achievement.\nThis unique paddling trail, covering more than 190 miles of creeks, estuaries, back bays, and rivers throughout Lee County, originated in 2003 as a joint venture between the Lee County Visitor & Convention Bureau and Lee County Parks and Recreation Department. The first Paddling Festival was held in June 2006. This annual event is now held every fall from the last weekend of October through the first weekend of November.\nThe Great Calusa Blueway is divided into three geographical sections: Estero Bay; Pine Island Sound/Matlacha Pass; and Caloosahatchee River and tributaries. The Estero Bay zone begins at Bunche Beach to the northwest and ends in the southeast corner of Lee County at the headwaters of the Imperial River. This is the most protected of the three legs of the Blueway and includes Hurricane Bay, Hell Peckney Bay, much of the Estero Bay Aquatic Preserve, and both the Estero and Imperial rivers. While there are several channel crossings and open-water stretches in this section, most of the Blueway paddling trail hugs the mangrove-lined shore, and the open-water stretches are seldom more than a mile in length. Intermittent trail markers along the way also help to make this section the best bet for the less experienced paddler. Stops include Mound Key, Lovers Key State Park, Matanzas Pass Preserve, and Koreshan State Historical Site.\nPhoto courtesy of LVCBureau\nKayaking at dawn in Pine Island Sound\nThe second section stretches from Bunche Beach northwest to Cayo Costa State Park, with a branch going to the Charlotte Harbor Preserve State Park to the northeast. Covering this large area would take an average kayaker four to five days, and there are numerous islands and parks where the overnight adventurer can find a safe place to pitch a tent or sleep under the stars. Places to visit along the way include Picnic Island, J.N. \"Ding\" Darling National Wildlife Refuge, Cabbage Key, Pine Island Flatwoods Preserve, and Buck Key. While there are Blueway trail markers throughout much of this section, they are sometimes too far apart to be spotted visually, so a handheld GPS is recommended for longer trips. Most of these trails wind through the protected waters of Matlacha Pass Aquatic Preserve, but open-water paddling is required to get to the Charlotte Harbor Preserve and Cayo Costa State Park. Care should be taken when crossing the Intracoastal Waterway near Punta Rassa and between Useppa Island and Cabbage Key since it is heavily traveled by large cruising vessels.\nThe third Blueway section runs parallel to the Intracoastal Waterway, beginning at the Punta Rassa boat ramp and continuing east down the Caloosahatchee beyond the Franklin Locks in Alva. While there are plenty of safe havens such as Shell Creek, Whiskey Creek, Yellow Fever Creek, and the Orange River, paddling the broad, heavily trafficked Caloosahatchee can be best managed by staying along one shore or the other. There are some great places to explore in this section including Manatee Park, Four Mile Ecological Preserve, Hickey's Creek Mitigation Park, and Caloosahatchee Regional Park.\nThe Great Calusa Blueway has much to offer the novice and experienced paddler alike. Along the way you are going to see scores of birds, manatees, dolphins, and possibly even alligators. The fishing is fabulous and ranges from snook and mangrove snapper to largemouth bass in the freshwater sections near Alva. Because this expansive trail covers so much territory (encompassing many of the same preserves and parks identified in this book), the best way to get a handle on it before taking your first stroke is to visit its comprehensive website. The many places to stay, restaurants to enjoy, launches, rest stops, and more than 100 trail markers and GPS coordinates to upload will help you grasp the enormity of the Great Calusa Blueway. The website has a list of 20 canoe and kayak vendors who participate in the program, as well as identifying a half-dozen paddlecraft-friendly lodges that will help make your journey more comfortable.\nIn the Know:\nGreat Calusa Blueway\nDozens of launches throughout Lee County\nAdministration office: 6490 South Pointe Blvd., Ft. Myers, FL 33919\nWebsite: www. calusablueway.com\nE-mail: paddletrail@ leegov.com\n190 miles of GPS-marked trails\nAdmission fee charged on some launches, others are free.\nThe Great Calusa Blueway is such a refreshing and novel concept that it well deserves the accolades bestowed upon it by the Southern Tourism Society. While motoring across the back bays and estuaries of Lee County might get you there faster, the slow, steady pace of a sea kayak or canoe allows you to slow down and see the watery world of the Calusa Indians much as they did 1,000 years ago in their dugout canoes. Watching the mullet jump, the blue crabs scurry along beneath you, and the frigate birds hover above makes it all worthwhile.\nAuthor's note: The Great Calusa Blueway Paddling Festival is planned for November 1-4, 2012. For more information about participating in this exciting event, please go to www.Calusabluewaypaddlingfestival.com.\nThis is an excerpt from The Living Gulf Coast-A Nature Guide to Southwest Florida by Charles Sobczak. The book is available at all the Island bookstores, Baileys, Jerry's and your favorite online sites."} +{"text": "How is it that summer is already half over? If you haven’t had a moment to catch fireflies yet, chances are you soon will. To wish you the happiest of summers, we’ve compiled our favorite Healthy Child non-toxic warm weather fun tips to help you plan your family activities!\n1. Repel bugs without DEET. The pesticides used in insect repellant can be harmful for both adults and children! Another option is picaridin, a chemical based on pepper.\n2. Grow a pesticide-free lawn. Extensive use of pesticides has led to resistance in many insects and weed species. As a result, many resort to even stronger chemical pesticides, which may have greater consequences for human and environmental health. Opting for a pesticide-free lawn will have your children and pets playing happily (and safely!) in the grass all summer.\n3. Avoid GMOs when out celebrating with friends and family! Going out for a nice summer meal at your favorite restaurant? Consider making your restaurant food choices with GMOs in mind by avoiding high-risk ingredients like corn and soy.\n4. Be careful about chlorine in pools. High levels of chlorine in pools has been linked to asthma in small children. Children under the age of 7 who swam frequently in indoor chlorine pools may be at an increased risk for developing asthma, according to a 2006 study.\n5. Wade in a safe kiddie pool. Many kiddie pools are made out of PVC – the plastic known as the “poison plastic” thanks to its remarkably toxic production and disposal processes. PVC also contaminates both children and the environment with the endocrine-disrupting phthalates.\n6. Learn your Sunscreening Safety facts! Need a new tube of sunscreen? When shopping for sunscreen for you and your children, choose those formulated with zinc and titanium. These two non-toxic minerals provide even safer and more effective sunscreening.\n7. Bare feet = pedicures. Is your nail polish toxic? Many nail polishes contain chemicals known as the toxic trio: dibutyl phthalate, toluene, and formaldehyde. Choose safer nail polish – or dare to go bare!\n8. Grow veggies (safely). When you’re planing your summer garden, be cautious about fertilizers. Some sold as “natural” or “organic” are made from so-called biosolids, otherwise known as sewage sludge. Yuck!\nBonus! These last 8 trusted and tried Non-toxic Summer Fun Tips from real moms on Healthy Child‘s Blogger Network:\n10. Rachel of ClubMomMe.com says to pick up some non-toxic beach toys. ”Plastic can leach chemicals when it gets hot in the sun, and this will ensure your child is not exposed to any chemicals.”\n11. Susan of LilBitOfMamaTime.com offers the following bug bite and bee sting remedy: “Mix a tbsp. of baking soda with a tbsp. of white vinegar till it forms a paste and put on bug bites and bee stings to help remove the itch. My three-year-old daughter has fun ‘painting’ her boo boo with the white paste.”\n12. Happy Tot Mom says, “Make wearing a hat a standard part of outside play!” She used a large brimmed sun hat when her son was a baby and transitioned to another when he outgrew his infant hat; both hats were UPF 50+. “Hats go on before we head outside every day!”\n13. Hillary of Accidentally Green has a post up about her top 3 non-toxic tips for summer fun. Tip #1? Remember to slather on the non-toxic sunscreen before taking the kids outside!\n14. Amber of Easy Green Mama suggests having fun with non-toxic homemade bubbles. “My boys are entertained for hours when playing outside with bubbles. It’s a super simple recipe to mix and in no time you are having bubble fun in the summer sun!”\nEASY NON-TOXIC HOMEMADE BUBBLES\n- 1/4 cup any natural dish wash soap\n- 3/4 cup warm water\n- 5 drops of glycerin\n15. Lori of Groovy Green Livin‘ has five tips for greening a BBQ on her site, including some tips on finding eco-friendly and reusable tableware for large family gatherings!\n16. Suzan of Happy Mom Blogger suggests making your own healthy popsicles. “Use BPA-free popsicle molds or make your own mold. Just use small drinking glasses. Fill it with your kid’s favorite juice or make your own. When half frozen, stick in a wooden popsicle stick or use a spoon.”\nVeggie Popsicles Kids Will Love"} +{"text": "About Carmichael's — A History Founded in Medicine\nCarmichael’s Cashway Pharmacy, Inc. began operations as a local retail pharmacy in Crowley, Louisiana in September 1969 and was incorporated in the State of Louisiana on December 10, 1993. In the early 1990s, Carmichael’s expanded its services regionally by offering infusion therapy and durable medical equipment.\nIn 1999, Carmichael’s opened a second location in Lafayette, and in 2004, acquired a third location in Lake Charles, all of which served to further establish its service presence in Louisiana. Presently, Carmichael’s can provide pharmacy, durable (home) medical equipment and nutritional products, supplies and services to all sixty-four parishes in Louisiana, as well as to certain locations in neighboring states.\nCarmichael’s is an independently operated pharmacy and medical equipment company, with a dedicated focus on meeting the needs of our customers and the medical community in our service area. Our mission is to be the highest quality provider of a full line of home medical equipment and retail, institutional, compounding and infusion therapy pharmacy products and services in our service area. We constantly strive to enhance our customer service and operations through the employment of training, performance evaluation and management techniques and the utilization of strategic planning initiatives. Accordingly, Carmichael’s employs competent and highly trained licensed pharmacists, technicians, nurses, respiratory therapists and other skilled professionals. We continue to be accredited by The Joint Commission, indicating our commitment to our mission, striving at all times to ensure that the patient’s well-being is our #1 priority. The sizes and geographic locations of our operations enable us to meet the unique pharmacy and medical equipment needs in our service area in a timely and efficient manner.\nCarmichael’s pharmacy and medical equipment operations are conducted in Lafayette, Crowley and Lake Charles, Louisiana, and currently are composed of four material service lines:\n- Retail Pharmacy Products and Services, consisting primarily of walk-in sales of prescription medications and complementary products, including uniforms, non-specialty pharmaceuticals, vitamins, supplements and nutritionals;\n- Institutional Pharmacy Services, consisting of the provision of specialty and non-specialty pharmaceuticals and biological products to institutional clients or to patients in institutional settings, such as nursing homes, behavioral facilities, assisted living facilities, developmental disabilities facilities, rehabilitation facilities, hospices and correctional facilities;\n- Specialty Pharmacy Services, comprised generally of drugs for the treatment of major conditions, including, among others, respiratory system weakness, cancer, human immunodeficiency virus (HIV), acquired immunodeficiency syndrome (AIDS), hemophilia, hepatitis C, multiple sclerosis, infertility, Crohn’s disease, rheumatoid arthritis and growth hormone deficiency; and,\n- Durable Medical Equipment Products and Services, consisting primarily of products for patient-administered home care, such as ambulatory equipment; hospital beds and supplies; diabetic products and supplies; bath aids; respiratory therapy equipment, supplies and services, including oxygen concentrators and portable cylinders, continuous and bilevel positive airway pressure equipment and nebulizers; diabetes management products; orthopedic products; ostomy; prosthetics; and supplements and nutritionals.\nSome of the benefits from choosing Carmichael’s as your provider of choice are our:\n- Extensive service lines provide the convenience of a one-stop-shop for all of your pharmacy and medical equipment needs – saving you both time and money;\n- Expansive hours of operation and easily accessible locations provide convenience to our customers, with 24-hours-a-day availability of professional personnel to answer questions and provide assistance to patients residing in short-term, intermediate, long-term and other institutional care facilities and certain other patients and their caregivers who choose Carmichael’s as their service provider;\n- Staff members work closely with healthcare providers, educating them on proper operating procedures and necessary safety guidelines;\n- Follow-up program, through continual correspondence and monitoring, ensures that the patient is using the medical equipment properly and obtaining optimal benefits from the prescribed treatment; and,\n- Special coalitions and similar working relationships with home health agencies and hospice organizations provide the platform necessary for concentration on the unique needs of their patients.\nIn the near future, Carmichael’s intends to enhance and expand its website capabilities to include online access to certain service lines, including diabetic and ostomy supplies and nutritional and certain medical equipment and pharmacy products and supplies, on a nationwide basis.\nThrough the years, some things may have changed, but one thing always remains the same… our commitment to provide our clients, customers and patients with the quality products and excellent services they have come to expect and depend on from the entire staff at Carmichael’s.\nYou can always depend on"} +{"text": "Seviced and Self Catering Central\nLondon apartments deals and offers\nCentral London serviced and self catering apartments as\nwell as studio apartments in London city are very convenient for long\nterm stay and short term stay during your holidays. Now that you on your\nway to London, have you decided where to stay? Consider renting one of\nthe many London apartments. London self catering apartments are more economical\nand spacious than the average central London hotel. These large and roomy\ncentral London apartments offer better privacy then hotels, great locations\nand reasonable rates for long term stay in particular and to some extend\nshort term stay.\nThe central London apartments can be tailored to you and\nyour household's needs. If the whole is family coming then why not choose\nto book a one bedroom or two bed rooms London city apartment to accommodate\nthe whole family. You may decide to stay in Kensington apartments and\nin the area we have the Harrington Court apartments located only a minute’s\nwalk away from the South Kensington tube station or the Dylan Kensington\nStudio apartments located on Warwick Road and very close to Earls Court\nstation. In the same area, there is also the Dylan Apartments Earl’s\nCourt at the Philbeach Gardens. The Apart hotel 73 on the Inverness Terrace\nBayswater W2 offer studio apartments offer very competitive rates in London.\nThe Dolphin House Apartments located between Pimlico and Victoria are\nperfect to you stay in central London.\nIn case you are coming to London to rest or for business?\nWonderful! Elegant London serviced apartments are waiting for you. Been\nto London several times? Do you fancy mingling with the locals? Perhaps\nLondon self catering apartments are better suited to your needs this holiday.\nLondon serviced apartments and self catering apartments as well as studio\napartments are available for your trips. Why not take a look at the Vancouver\napartments hotel in Bayswater area which has apartments ranging from studio\nto 3 bedroom apartments and can accommodate from 1 to 6 persons. For those\nof you on a fixed budget, not to worry we have sizable studio apartments\ncovering central London. Here are a few more particulars regarding our\ncentral London apartments.\nLondon serviced and self catering apartments offer luxury\nand convenience, without the cramped and impersonal feel of yet another\nhigh priced hotel. London serviced apartments offers hotel amenities and\nare available if you choose to partake. A serviced apartment can ease\nthe stress of a business trip, by being a real home you can unwind in.\nThe beautifully furnished living room provides ample work space and a\nstylish alternative to business meetings. Located in the heart of London,\nyour serviced apartment is a heartbeat away from tourist and local hot\nspots. Have adventure or cook a gourmet meal, everything is up to you.\nTake a look at London City apartments like Chancery Lane Residence and\nthe Langham Apartments 28-30 Rivington Street London EC2A 3DZ close to\nShoreditch and if you are after luxury serviced and self catering apartments\nclose to the West End, the Grand Plaza apartments will offer you the luxury\nLondon Studio apartments and London self\ncatering and serviced apartments\nLondon self catering apartments are ideal\nfor the more independent and budget minded travellers. Accommodations\nlike these give you the taste of being a local Londoner; you can blend\ninto the neighbourhood, shop at the corner market, and have room to entertain\nas you might do at home. London self catering apartments are found in\nsome of the most charming areas of central London; near theatres, the\nunderground and impressive cultural sites.\nStudio apartments can be either self catering or serviced.\nDesigned for a solo sightseer or couples on holiday, London studio apartments\nmake the perfect base to go exploring the best of London in the course\nof the day, then retiring to your private spacious residence. Enjoy London\nto the fullest this trip, whether it’s a couple nights or months.\nFabulous London apartments can be booked today. The central London serviced\nand self catering apartments are for both short term stay and long term\nstay. check out London discount apartmentsoptions"} +{"text": "- About Us\n- Local Savings\n- Green Editions\n- Legal Notices\n- Weekly Ads\nConnect with Us\nKitsap writers select top girls basketball stars\nThe 2011 All-Kitsap County Girls Basketball Team was compiled by the sports writers for the Bremerton Patriot, the Central Kitsap Reporter, the North Kitsap Herald, Bainbridge Island Review and the Port Orchard Independent.\nCandidates for the team are nominated by the writers for their respective areas. The nominees are then voted on by the writers; the top players make the teams. Two honorable mentions are also selected from each school for each sport.\nThe teams include the best players from area schools that not only performed well individually, but played a role in the success of their team.\nGirls Coach of the Year — Olympic High School’s Laurie Shaw led the Lady Trojans to a 16-11 record this season en route to their first state tournament appearance in 16 years. After going 4-6 in December, Shaw helped reverse her team’s fortunes when the Lady Trojans won nine of 11 games to wrap up the regular season with a No. 3 seed in the league standings. The streak secured an automatic berth to the district tournament, Olympic’s first in more than a decade.\nGuard — Jackie Steiger, junior, South Kitsap: After missing a significant portion of the 2009-10 season because of a foot injury, Steiger settled in as the Wolves’ starting shooting guard this season. One of the top shooter on the Kitsap Peninsula, Steiger converted 59.7 percent of her 3-pointers in South’s first 20 games. She also averaged 12.7 points and 1.18 steals per contest.\nGuard — Amanda Carper, sophomore, Kingston: In a season that began without top scorer Sophia Baetz on the court, Carper filled the shoes of lead scorer almost immediately. With 10.8 points per game, 8 blocks per game and 2.6 steals per game, Carper helped bring Kingston to a winner-to-state game against Olympic High School, where the team fell just short of another state tournament.\nGuard — Kelsey Callaghan, senior, South Kitsap: A three-year starter, Callaghan helped direct the Wolves to state-playoff appearances in two of the last three seasons. Prior to her arrival, South had not advanced to the Class 4A state tournament since 2000. Coach Mark Lutzenhiser trusted Callaghan, who averaged 5.3 assists per game in the team’s first 20 contests, to run the offense and make adjustments based on what she saw from opposing defenses.\nForward/Center — Shannon Jackson, senior, Olympic: Shannon Jackson spent the last four years in Japan before returning home to play for the Lady Trojans this season, averaging 12.4 points and 12.5 rebounds per game. Jackson’s double-double average helped lead Olympic to its first state tournament appearance in 16 years. Jackson earned Olympic League honors with a selection on the first team. Her post presence was crucial for head coach Laurie Shaw, who needed a power forward in the paint to propel the team’s chances. “It was a great season that started slow, but we gradually came together and make it to where we should have been,” Jackson said last week. Jackson is currently considering Pierce College (Tacoma), Highline (Des Moines) and Skagit Valley (Clinton) community colleges. Shaw said they will also send game films to Seattle University.\nForward/Center — Taylor Sunkel, junior, South Kitsap: After missing nearly the entire 2009-10 season following shoulder surgery, Sunkel emerged as one of the Wolves’ top low-post threats. Through 20 games, she averaged 12.1 points and 6.2 rebounds per game to help South to the second round of the Class 4A state tournament.\nG/F — Alex Rose-Albert, senior, Kingston: With solid statistics this season, Rose-Albert was another Kingston player that helped bring the team to the verge of another state tournament. Rose-Albert ended her final season with Kingston with 8.8 points per game, 11 blocks and 1.4 steals per game.\nF — Jordan Dixon, senior, Klahowya: Despite a sluggish season with a 2-14 Olympic League record, Dixon still managed to run the Eagles’ offense with 13.5 points and 5.5 assists per game. Dixon was also a menace on defense though the 20-game stretch, snagging 6.5 steals per game. Klahowya head coach Don Farrell turned the program from winless to playoff contenders in the last four years with the help of Dixon.\nF — Lexi Simmons, junior, North Kitsap: As a co-captain on a team with no seniors, Simmons led the team in almost every aspect of the game. She averaged 10.4 points per game, 6.6 rebounds per game, 2.2 steals per game with 1.8 assists per game.\nF — Grace Kenyon, sophomore, Bainbridge: Kenyon stepped up when standout guard Davi Gonzales was lost for the season to a broken leg. She averaged a double-double for the season with 11 points and 11 rebounds per game. Kenyon also averaged two steals and 1.5 assists per game.\nG — Lindsey Wicklein, junior, Kingston: Wicklein was a dual force for Kingston this season, averaging 7.7 points, eight blocks and 2.7 steals per game this season.\nG — Krista Stabler, junior, Central Kitsap: Krista Stabler helped the Cougars stay afloat in the Narrows League standings as a dual threat on the court. The junior guard averaged 14.3 points, 6.1 rebounds, 5.4 assists and 3.1 steals in a 20-game stretch.\nG — Hannah Depew, junior, Bainbridge: Depew was solid at the guard position for Bainbridge as she helped the team earn a second straight Mountain Division title. She scored eight points per game and also dished out four assists and three steals per game as well.\nOlympic High School honorable mention: Jayln Halstead, junior; Klahowya: Jonica Durbin, senior; Central Kitsap: Brittany Zawadzki, senior. Bainbridge Island honorable mentions: Davi Gonzales, senior; Morgan Moniz, senior. Kingston High School: Maggie Snaza, sophomore; Samantha Salas, freshman; Sophia Baetz, senior. North Kitsap: Alicia Whitbeck, freshman. South Kitsap: Ali Davis, junior; Dana Goularte, senior; Angela Romonsky, senior."} +{"text": "I support the proposed rulemaking to establish position limits for physical commodity derivatives. The CFTC does not set or regulate prices. Rather, the Commission is directed to ensure that commodity markets are fair and orderly to protect the American public.\nWhen the CFTC set position limits in the past, the agency sought to ensure that the markets were made up of a broad group of market participants with a diversity of views. At the core of our obligations is promoting market integrity, which the agency has historically interpreted to include ensuring markets do not become too concentrated.\nPosition limits help to protect the markets both in times of clear skies and when there is a storm on the horizon. In 1981, the Commission said that “the capacity of any contract market to absorb the establishment and liquidation of large speculative positions in an orderly manner is related to the relative size of such positions, i.e., the capacity of the market is not unlimited.”\nToday’s proposal would implement important new authorities in the Dodd-Frank Act to prevent excessive speculation and manipulation in the derivatives markets. The Dodd-Frank Act expanded the scope of the Commission’s mandate to set position limits to include certain swaps. The proposal re-establishes position limits in agriculture, energy and metals markets. It includes one position limits regime for the spot month and another regime for single-month and all-months combined limits. It would implement spot-month limits, which are currently set in agriculture, energy and metals markets, sooner than the single-month or all-months-combined limits. Single-month and all-months-combined limits, which currently are only set for certain agricultural contracts, would be re-established in the energy and metals markets and be extended to certain swaps. These limits will be set using the formula proposed today based upon data on the total size of the swaps and futures market collected through the position reporting rule the Commission hopes to finalize early next year. It is only with the passage and implementation of the Dodd-Frank Act that the Commission will have broad authority to collect data in the swaps market.\nIt will be some time before position limits for single-month and all-months-combined can be fully implemented. In the interim, if a trader has a position that is above a level of 10 and 2 ½ percent of futures and options on futures open interest in the 28 contracts for which the Commission is proposing position limits, I have directed staff to collect information, including using special call authority when appropriate, to monitor these large positions. Staff will brief the Commission and make any appropriate recommendations based upon existing authorities for the Commission’s consideration during its closed surveillance meetings at least monthly on what staff finds.\nCollecting this data relating to large traders with positions in the futures markets above such levels or points of 10 and 2 ½ percent would give the Commission a better look into the market and help us identify potential concerns. For example, if a trader does not have a bona fide hedge exemption, we can look into the details of its position and its intentions. It may also give us additional information as to how the position limits in the proposed rulemaking would affect traders in these markets.\nThese levels, or points, are the positions at which CFTC staff will brief the Commission under its existing authorities. They would not be a substitute for current position limits or accountability levels, and they should not be interpreted to be a level that will automatically trigger any additional regulatory action.\nSwap Trading Relationship Documentation Requirements for Swap Dealers and Major Swap Participants\nI support the proposed rulemaking that establishes swap trading relationship documentation requirements for swap dealers and major swap participants. The proposed regulations are consistent with the express mandate of the Dodd-Frank Act to prescribe standards for the timely and accurate confirmation, processing, netting, documentation and valuation of swap transactions. One of the primary goals of the Dodd-Frank Act was to establish a comprehensive regulatory framework that would reduce risk, increase transparency and promote market integrity within the financial system. The proposed regulations accomplish this objective by establishing procedures that will promote legal certainty regarding terms of swap transactions, early resolutions of valuation disputes, enhanced understanding of one counterparty’s risk exposure to another, reduced operational risk and increased operational efficiency. One of the key chapters from the 2008 financial crisis was when large financial players, including AIG, had valuation disputes and other problems regarding documentation standards. These rules will directly address many of these issues, highlighting issues for senior management and regulators earlier and lowering risk to the public.\nLast Updated: February 17, 2011"} +{"text": "by Jean-Bernard Hyppolite\nRabbi Marcia Prager has been the spiritual leader at West Mt. Airy’s P’nai Or congregation for 18 years. In Hebrew, the word “chai,” which means “life,” has the numerical value of the number 18. It’s an important meaning for a thriving community led by a dedicated rabbi. On October 28 and 29 P’nai Or held a two-day celebration of Rabbi Prager’s contributions to the congregation and to the Jewish world in general.\n“I’ve been privileged to serve a wonderful community of warm, caring, sharing, sweet, wonderful people,” said Rabbi Marcia.\nThe celebration began with a Kavannah Shabbat, which is a joyous, song-filled “love fest,” as Rabbi Marcia described it. It was filled with live music and dinner at the end of the night. P’nai Or continued the next morning with their regular “Shabbat” morning service, led by Rabbi Marcia and her husband, “Hazzan” Jack Kessler, a musician and master of Jewish song and liturgy.\nAs it turned out, people from all over the Eastern seaboard and even as far as Oregon drove and flew in for the service and celebration. The rest of the day’s festivities included an exceptional potluck lunch, small gatherings and another music-filled gala and dinner to close the weekend. Jack Kessler’s band, Klingon Klezmer, performed at the celebration.\n“Everyone danced and feasted; it was really quite a weekend … A lot packed into two wonderful days,” said Rabbi Marcia, still glowing a few days after the events.\nRabbi Prager first came to P’nai Or as a student, then became a member and is now, according to her, just is one of its many leaders. “P’nai Or is not a very traditional synagogue in which there’s the ‘leadership’ and the ‘followership.’ In P’nai Or there are many wonderfully skilled co-leaders. Everyone contributes and leads with their gifts.”\nRabbi Marcia speaks of the synagogue as a place where people can hone their gifts, share with each other, learn leadership skills and give. She believes the environment that everyone has helped to create at P’nai Or makes it a loving and non-judgmental place. It’s due to these traits that Marcia describes P’nai Or as “unusual and unique” in the most positive of ways.\n“P’nai Or’s unusual in a variety of different ways. Not only the way in which leadership is shared, and service leadership is shared, but the style of the prayer,” added Marcia, describing the sight of people dancing in the aisles, singing and clapping as a real “celebratory atmosphere.”\nPeople don’t sit in the pews and pray with their knees down and hands closed, and Rabbi Marcia prefers it that way. The prayers are sung in a blend of Hebrew and English. While Hebrew prayers are often sung, their translations are simply read instead. “In a way, we’re praying in ‘Heblish,’” she said.\nAt P’nai Or it’s not unheard of to have opportunities for meditation, reflection sharing, and genuine conversation with each other about important and meaningful topics in the middle of service. When Rabbi Marcia reads the torah, she welcomes people who may be touched by a specific story to come up by her side at the desk. “People are invited to have a very personal relationship with scripture.”\nMarcia is a Jewish Renewal Rabbi, and P’nai Or is a Jewish Renewal Congregation. Jewish Renewal aspires to create models of Jewish expression that are contemporary and also speak to the heart as well as the mind. The full inclusion of women is embraced.\nMt. Airy has a significant Jewish presence, and P’nai Or is just one of four Jewish congregations in West Mt. Airy. P’nai Or does not have its own building but is located inside the community wing of Summit Presbyterian Church, 6757 Greene St. (at Westview). It was founded by Rabbi Schacter-Shalomi in 1973.\nRabbi Marcia, 59, was named one of the top 50 most influential female rabbis (aka The Sisterhood 50) by The Jewish Daily Forward newspaper. This entire list is particularly impressive considering that the first female rabbi in America, Rabbi Sally J. Priesand, was ordained as recently as 1972. There were no female rabbis around when Marcia was growing up; she garnered inspiration from the women’s ordination movement in what she views as the liberal Jewish world.\n“We are proud to have Rabbi Prager, one of America’s 50 most influential women rabbis, as our spiritual leader,” said Elyse Seidner-Joseph, chairperson of the Chai celebration.\n“I don’t do what I do in order to be recognized or be on a list,” said Rabbi Prager, “but it is delightful to have my achievements noticed. It’s particularly moving to live a life in which I am able to do the work of my heart and contribute in important ways to the world … Being a Rabbi offers me an opportunity to bring Jewish values into the heart of how I and an extraordinary community live our lives.”\nRabbi Marcia Prager, originally from Queens, New York, moved to Philadelphia in 1984. She and Kessler, who have been married since the late ‘80s, lead workshops together at P’nai Or. They have a son, Aaron, 21, a senior at Temple University. Rabbi Marcia is also a teacher, author, artist and therapist. She became a therapist after graduating from a four-year training program in marriage and family therapy at Penn Council For Relationships. She also earned a B.A. in cultural anthropology along with an M.F.A. in photography and drawing from Pratt Institute, New York. She is the author of “The Path of Blessing,” and she works for ALEPH: Alliance for Jewish Renewal. For more information, visit www.pnaior-phila.org or email PnaiOrRabbi@aol.com."} +{"text": "The DUI Ignition Kit, includes the DUI Distributor, Custom LiveWire set, and the Billet Wire Looms. Please designate cap color, wire color, and loom color when ordering.\nFits: The 5/16\" drive fits all 200/250ci motors, as well as the late 170ci. It will not fit the 144ci or early 170ci, which used a 1/4\" drive.\nAdd Horse Power by installing the most powerful ignition system available for the small six and save an additional $20 by ordering the complete DUI Ignition Kit. The Complete Kit includes the DUI Distributor, a custom LiveWire set, and the Billet Aluminum Wire Looms.\nDyno testing on a 200ci engine showed an increase up to 15 HP over the Duraspark II and MSD Ignition system, and up to 20 HP over the stock ignition system. Manufactured by Performance Distributors for Classic Inlines, the DUI distributor is the only one-piece, high performance ignition system available for your inline six. Since the coil and ignition module are self-contained in the distributor, it is truely a clean and simple drop in installation, which eliminates all of the messy and confussing wiring associated with other ignition systems. Just run one 12-volt hot wire to the distributor and you're ready to run! A tach hook-up is also included for those who like to keep track of their RPMs.\nThis Street/Strip DUI Distributor is built with a 50,000 volt coil that allows a whopping .055\" plug gap, which provides a more powerful explosion of the fuel mixture. The Dyna Module is designed with more electronic dwell time as well, producing an even hotter spark. Unlike stock Ford systems, and many aftermarket systems, no ballast resistor is required, which reduces the voltage in the ignition system. The D.U.I. allows FULL voltage providing a better spark and more power. Every DUI Distributor is custom curved on a machine prior to packaging. This results in a super smooth curve, eliminate engine damaging detonation, and provides instant throttle response.\nCaps are available in Black, Red, or Blue.\nOur DUI LiveWire Sets are custom fit for use with our DUI Performance Distributors - no assembly is required. Each wire is numbered on both ends making installation, removal and re-installation quick and easy.\nLiveWires® from Performance Distributors, have a space age heat resistant sleeving which is non-flammable and non-corrosive to chemicals. This unique sleeving provides protection from -76° to +1400° F and offers excellent resistance to moisture and chemicals. The LiveWire spiral wound core prevents electronic interference, radio noise, and computer interference. They offer an extremely low resistance of 300 - 350 Ohms per foot, for optimum spark travel. Each LiveWires has a durable and long lasting silicone jacket, with heat shrink applied between the boot and the sleeving to keep dirt and moisture away from wire terminals. Due to the unique protective sleeving on LiveWire set, stock or aftermarket looms will not fit over the wires. Custom Livewire sets are available in Black, Red, Blue, and Yellow.\nDUI Billet Aluminum Wire Looms are custom manufactured for use on the LiveWire sets. Due to the protective sleeving on LiveWires, stock or aftermarket looms will not fit over LiveWire sets without pinching or crimpimg the wires. These billet separators are held together with allen head screws which are mounted flush within the loom, will not pinch or damage the protective heat sleeving. Available in a natural finish or Black anodized (red, blue, and gold anodized are no longer offered). Set includes 1-4 Hole. 1-3 Hole. and 3-2 Hole Looms.\nAll parts required for installation are included with the complete kit, saving you time and frustration, and un-necessary trips to your auto parts store. The DUI Dstributor is a real work of craftsmanship, and although it is uniquely designed, replacement parts are easy to find. High Energy Ignition (HEI) replacement parts, available at all auto parts stores, fit right on the DUI distributor. While a stock HEI moduals work in a pinch, the custom DUI moduals are available from Classic Inlines, as are the caps, rotors, and coils. Please designate cap color, and wire color when ordering.\nNOTE: We highly recommend reading our Tech Article on \"Preventing Premature Distributor Gear Failures\" before you install your new distributor.\nNOTE: While the DUI distributor will fit Econline trucks and vans, you must cut a small hole in the side of the doghouse and fashion some sort of bowl like cover to make room for the larger DUI distributor.\nDUI verse DSII - note that the DUI is considerably\nlarger than a stock distributor or the Duraspark II\nNOTE: The DUI distributor will not fit with a standard power steering pump due to the additional height and width of the DUI distributor. Classic Inlines is working on a custom bracket to allow the use of the newer Saginaw Power Steering pump, which will clear."} +{"text": "The Gators' 2-year-old national championship destruction of Ohio State -- specifically the offense, and more specifically the offensive line -- occurred on the same field on which the Buckeyes meet Texas in tonight's Fiesta Bowl. In the repetitive highs and rare but public lows, in the expectations and constant observations, in the questions about how to evaluate this Ohio State era, left tackle Alex Boone exemplifies the conflicted views fans have of the Buckeyes. They can be clarified against the No. 3 team in the country, for good or for bad.\nAs the left tackle goes tonight, so go the Buckeyes.\nHe's big. He's loud. He's funny. He's honest. He's nasty. He plays the money position on the offensive line. And whenever he makes a mistake, everyone notices.\n\"I'm aware of that,\" the senior from Lakewood said, smiling when asked of his status as a lightning rod for the Buckeyes' fortunes. \"My grandma reads all those message things and will call me crying or swearing. But if people are mad at me, I can't change that.\"\nActually, he can.\nIn his final college game, Boone faces the toughest opponent he could ask for, gladly.\n\"I'm getting lots of phone calls from people, like, if you have a great game this week, it'll kind of silence a lot of people,\" Boone said.\n\"A lot of people think the world of Orakpo, and they think he's everything. If you shut him down or force him to the other side, it'll say a lot about you.\n\"It's the perfect matchup. I told a lot of people I'd be excited to play Texas. I didn't think it would actually happen.\"\nIt has, and it's more than just an individual showdown between Boone and the winner of the Lombardi, Nagurski and Hendricks awards. It's the place where the Fiesta Bowl can change, because the Buckeyes must run the ball for their offense to work and to keep the high-powered Texas offense off the field.\n\"If they can control the ball and keep the clock running and we never see the ball, it's not going to matter,\" Texas coach Mack Brown said.\n\"That's a great defense against our offense.\"\nAnd the Buckeyes can't run if they don't control an end known for his size, his speed and his discipline to the game plan.\n\"Everything he does is perfect,\" Boone said.\nThe line also has to keep quarterback Terrelle Pryor from getting rattled by a defensive line that leads the nation in sacks. Once Florida starting chasing Troy Smith two years ago, his Heisman was the last thing on people's minds.\n\"I was watching a lot of the Florida game to try to see some stuff they were doing to get to the quarterback,\" Orakpo said. \"I was trying to see some tendencies that really helped me.\"\nOrakpo zeroed in on the Penn State game from this season as well, when defensive end Aaron Maybin caused repeated problems. But Ohio State offensive coordinator Jim Bollman made it clear the Texas front four is more than just Orakpo, which is why some consider this best defensive line the Buckeyes have faced this season.\n\"The Penn State defensive line is good, the USC defensive line is good, so I don't know that these guys are clear cut way beyond them,\" Ohio State tight end Rory Nicol said.\nNicol said the Buckeyes might be helped by two changes in the plan from those earlier games. One is helping the tackles more, so a player like Maybin can't dominate the way he did in his matchup against right tackle Bryant Browning. The other is a commitment to the inside power running game and less of the zone-read runs that were used to stretch a defense when Pryor first took over the starting job.\n\"I think we got back toward the power-type running in the Illinois game and the Michigan game,\" Nicol said. \"I think it's better to keep it up the middle.\"\nSo the plan might be better. And then it will come down to matchups. And maybe everyone, including Boone himself, will figure out what kind of player he is and what kind of season he really had. On one hand, he made first-team All-Big Ten and was a second-teamer on one All-American team. However, nearly every draft analyst believes Boone's stock fell in his return for his senior season.\nBut like Ohio State defensive end Vernon Gholston did by winning his showdown with Michigan left tackle Jake Long last season, helping Gholston leap into the No. 6 pick in the draft, one game against one great player can go a long way. And clear up a lot of chaos.\n\"Overall, I felt it was a good year for me, and everyone was like, your draft is slipping. Obviously, that doesn't matter to me right now, but I'm kind of confused as well,\" Boone said. \"What could I have done better? Do I have to go out there and kill somebody? What do you want from me?\"\nWhat do Ohio State fans want? They want a win tonight. And they'll probably need Boone at his best against Orakpo to get it.\n\"This is the final exam of final exams,\" Boone said. \"This game means everything right now, because he is a great player. And this will show people what I am or what he is.\""} +{"text": "Cleveland Helicopter Aerial Filming, Photography and Surveys...\nNo job in Ohio is too big or too small!\nNo matter what form of aerial survey you need, including both magnetometer and electromagnetic surveys, Cleveland Helicopter Charters can provide a wide range of options by combining the low flying and hover capabilities of helicopters. Add a camera and mount and you can film or photo Cleveland from the Ohio sky!\nSearch terms related to\nCleveland Surveys, Filming and Photography:\nCleveland Aerial Surveys • Aerial Photography in Cleveland • Cleveland Geological Survey • Aerial Filming in Cleveland • Cleveland Helicopter Videography • Aerial Surveys in Cleveland • Cleveland Disaster Survey • Ohio Aerial Surveys • Cleveland Aerial Videographers • Geographical Survey of Cleveland • Cleveland Aerial Photography • Helicopter Photography in Cleveland • Ohio Disaster Survey • Cleveland Corporate Helicopter Survey • Cleveland Aerial Filming • Cleveland Aerial Videography • Helicopter Filming in Cleveland • Cleveland Survey Helicopters • Cleveland Helicopter Videographer\nAerial Filming, Photography and Surveys in Cleveland\nNo vehicle makes it as easy as a Cleveland Helicopter!\nThank you for trusting Cleveland Helicopter Charters for your filming and photography projects! We have a highly trained team of helicopter specialists waiting to assist you. Our Cleveland Helicopter Team will professionally assist you with the right helicopter and state-of-the-art technology. We will quickly and efficiently get your project into production. Read the information below to decide on what Aerial Filming, Aerial Photography or Aerial Survey options fits your needs the best, and then call our knowledgeable experts to consult and finalize your plans.\nCall us at 1-866-826-4826 to book a Cleveland Helicopter for your next project!\nCleveland Aerial Filming\nThe Top Pilots in Ohio, Today's Technology... Maximum Results.\nCleveland Helicopter Charters has the reach to bring you what you need for aerial filming in Ohio. Our Network can provide the latest technology to work out custom shoots, using gyro-stabilized camera mounts (Tyler Mounts, Wesscam, Cineflex, and spacecam) with Specialty Cameras (Cineflex HD, FLIR.) From air to air or ground to air shots, we can support all aspects for your production goals. Specializing in Cleveland helicopters for both still and motion photography, our nationwide network can provide for almost every media related operation in Ohio; film, television, documentaries, promotional videos, commercials, aerial props, relief work for television networks and coverage of historical and major sporting events from a variety of helicopters.\nCall Us Today at 1-866-826-4826 for Free Information on Aerial Filming in Cleveland!\nNeed Aerial Photography in Cleveland?\nWe will help you find the right equipment for your Ohio job!\nThe spectacular settings and breath taking views that Cleveland Helicopter Charters provide can only be accomplished from the sky. Discover for yourself on one of our charters designed to meet your aerial photography need in the Cleveland clouds.\nCleveland Helicopter Charters is prepared and excited to offer our clients the most affordable photographic opportunities of this kind in Ohio. We work with the best camera operators, aerial coordinators, helicopter pilots, and the latest equipment in the Cleveland area. Call for info on gyro mounts to get that extra bit of stability.\nCall Us Today at 1-866-826-4826 for Free Information on Aerial Photography in Cleveland!\nCleveland Aerial Surveying Done Right!\nThe fastest and easiest way to survey the Ohio landscape!\nCleveland Helicopter Charters provides the tools needed to complete your land surveys, utilizing the right equipment to provide the aerial photos that are often needed.\nCleveland Aerial Surveys make looking over your future home or showing demographics and photos of an area for a commercial business project simple. Helicopter surveys are the only way to look over the Ohio terrain. Cleveland Helicopter Charters can develop the right photographic and remote sensing operations custom fit to maximize technical and financial efficiency as well as results.\nThere is no better way than from the Cleveland, Ohio sky to do your survey; animal population counts, soil drainage issues and geographical surveys call us today!\nCall Us Today at 1-866-826-4826 for Free Information on Aerial Surveys in Cleveland!\nParma Helicopter Charters | Elyria Helicopter Charters | Lorain Helicopter Charters | Cleveland Heights Helicopter Charters\nMentor Helicopter Charters | Akron Helicopter Charters | Helicopter Sitemap | Drone Sitemap\nRegulations may prohibit Helicopter Charters in the city proper. Local helicopter charter affiliates are conveniently located near Cleveland, Ohio."} +{"text": "A Solid Rock\nA Solid Rock\nThe Good Prayer\nWe have to read the entire Gospel of John and to apply the smallest [piece] of it. It reads, ‘In the hour he had said his son was cured’\nStudents have to study. If one does not study, one is not a student. The way you behave now, you will soon get old, and then what are you in for? What will happen to you? You are students; however, you do not study. You are like the young people who get old, while I want you to be like the old people who rejuvenate and like the young people who study.\nGod has to come and live within you and only if God lives within you, you will rejuvenate. There is one thing that you lack – the same what Christ was talking about to the young person. And I will tell you: it is Love you lack. When Love comes into you, you will then rejuvenate and all the good will come. Love will rejuvenate you. But when will Love come unto you? When God starts living in you. I do not mean that physical love, but that Love, which endures everything, that Love, which is a solid rock and all the misfortunes are suffered with Joy. It is Love when everyday you are grateful and you say, ‘This is my best day! I have never had a day like this!’ Tomorrow you will say the same. If we are not content and [if] every day we are sorry for this and for that, we shall grow old. Being grateful – this is Love. When we go to work in the world and when we are asked what we have to do, we shall tell every one, ‘We have to live like Christ!’ ‘You should first look for the Kingdom of God and for His Justice and everything else will be given to you. You wait for Christ to come. Who knows how you wait for him! It is said, ‘The Kingdom of God is within you.’ Christ will come within you. For those who implement God’s Will because of Love, the Kingdom of God has already arrived.\nThe angels and the saints would prefer to have our suffering. This is considered a privilege by them. Now you live like the children – you eat, drink and sleep, while you have to study. You think you are doing spiritual work, while the important thing is to live like Christ.\nNow, as I am looking at you, you have one window. You have to make one more window in order to let more light in. Light does not break the door and the windows, but it waits to be freely let it in, in order to enter.\nNow, as I am looking at you, you will soon grow old. What are you waiting for now? You will be growing old day by day and you will be called up above. Because you do not study, God will say, ‘Call these recalcitrant students to Me!’ You should not be thinking that you will grow old, but that you have to study – This is God’s law. The young one who studies does not grow old, and the old one who studies rejuvenates. It’s not Divine for a newly wed woman to make her husband not love her mother-in-law. Because a day will come when she will get her son married and she will be treated like this.\nThe mother, in order not to torment the child, does not make the child study. What will happen with this child then? If Heaven spoils us a lot, nothing will come out of us. This world is a reflection of the Invisible world. This world is like the bears, lakes and nature painted in pictures. You are not afraid to touch a painted bear, but if you go to a real bear, you will be afraid to touch it. The true reality is up above, and the physical world is a reflection of the Spiritual world. The spiritual world is a real world, and here everything is [painted as] in a picture.\nWhen you want to give something to a person you will ask him to empty his bag and you will then fill his bag with what’s in yours. You will tell him, ‘Mine is better, get rid of that, in order to take some of this.’ If someone has bread in one’s bag and says that he is full, you tell him, ‘No, mine is better!’ As soon as he takes from yours, he will be convinced, which means he will free himself of his old convictions. Make an experiment in some villages if they can give you a whole pita-bread; if you are with God, you will be given a whole pita-bread; if you are not with God, you will not be given a whole pita-bread. If you are going somewhere and the door is open, enter, but if the door is closed, do not enter. In other words, if one’s soul is open, talk to this person; if however, it [he] is not open and he does not receive, do not talk to him. When you get into a house, you will clean it, you will sweep it, you will knead pita-bread, so that the hosts on coming back be surprised [for the hosts to be surprised on coming back]. Put in other words, if you find a prepared soul, work within in a way that one can surprise oneself and say, ‘What’s happening with me?’ Sometime you eat to your heart’s content and go to a place where a pastry is made. Do not take a bite, you have eaten to your heart’s content! You start for a place and something tells you, ‘Do not go there!’ In such a case do not go!\nThe Lord’s Prayer\nLecture delivered by Petar Deunov (Beinsa Douno) on 2 June 1932 16.00h, Sofia, Izgreva\n Incorrect quotation from John’s: 4; 53: ‘So the father knew that it was at the same hour in which Jesus had said unto him, \"Thy son liveth.\" And he himself believed, and his whole house"} +{"text": "The Government's newly released National Innovation and Science Agenda shows that for economic growth to continue within Australia, an 'innovation ecosystem' must be fostered, where new businesses with new ideas are encouraged to grow and flourish. With every company wanting to increase, retain or improve their customers’ experiences, this makes marketing vital to fuelling Australia's ideas boom.\nThe retail space has gone through significant digital disruption over the past few years, making competition to stand out from the crowd fiercer than ever before.\nIBM’s director, distribution sector, of global industry marketing, Patricia Waldron, said for retailers it is both an exciting and challenging time.\n“One of the great things about the retail space is the ability to make a difference for your customers every day,” she told CMO. “Now some people love that challenge and are the ones that are successful because they are embracing change.”\nSo how can retail organisations better utilise digital for a new competitive edge? Here are Waldron’s five tips.\n1. Embrace the cognitive era\nFor Waldron, the age of new cognitive technologies such as those offered by IBM are enabling retailers to solve some of their customers’ key challenges.\n“The cognitive era is about taking retailers on a continuum,” she said. “It involves systems that can understand, reason and give you recommendations. But the most exciting thing is that they learn as they go. So as they make decisions for you and you put them into action, they get smarter in real time.”\nIn order to implement cognitive systems to differentiate your brand in the highly competitive retail space, Waldron highlighted systems that make the most of ‘dark data,’ and that take advantage of new insights from different sources of data.\n“This includes anything from videos and images to weather sensors,” she explained. “Putting all this information into cognitive systems, you have access to things like social information, news, local events and weather. In the retail space, what these all do is help you understand and anticipate longer term trends, while also helping retailers make everyday decisions more accurately and in real time.”\n2. New technology breeds new habits\nData, devices, people and processes are becoming more and more intertwined.\n“From the millennial perspective, we’re starting to see their habits become everyone’s habits,” Waldron said. “We’re starting to see people have pocket butlers or a pocket concierge with their phones. And we’re now moving from phones to wearables.”\nWhether you’re searching for shoes on your phone, or looking at an app on your wearable, this combination of devices is seeing consumers effectively generating more data that can be put into a cognitive system, which in turn can help retailers personalise customer experiences more effectively, Waldron said.\n“The idea is you have more devices that are generating more data to better help the retail conversation with the customer,” she said.\n3. Take customer engagement to a highly personalised level\nIn order to stand out from the crowd, Waldron stressed it is all about customer engagement at a highly personalised level.\n“While there is this concept of omni-channel, I believe that ultimately the consumer is the channel,” she claimed. “The retailer should be treating the customer consistently like an individual, regardless of whether the customer is interacting via the brick-and-mortar store or online. It’s all about that engagement. Customers want retailers to understand them on a personal level - their needs, their wants and aspirations at any point in time.”\n4. Why it’s all about differentiating the customer experience\nAnother critical way you can disrupt the retail space is differentiating the experience for your customer, Waldron said.\n“You can sell or market one product so many different ways on different sites,” she said. “But by differentiating in terms of your service, convenience, product assortment and experience in the store, a retailer can define its brand, what it stands for and better execute that strategy flawlessly, based on what the consumer wants.”\n5. Abandon legacy systems\nAccording to Waldron, one key thing retailers need to do moving forward is to abandon some of their legacy approaches when it comes to people, processes and technology.\n“Retailers can optimise their non-selling function so they can leave some space to invest in innovation and be more agile,” she said. “Successful retailers that are serious about disruption are experimenting and iterating quickly over time.\n“This means you can no longer wait 6-10 months to do something. The pressure is now on retailers to use technology quickly in order to promote and market to your customers.”"} +{"text": "The University of Colorado Boulder has been chosen by the Association of American Universities to be one of eight campuses participating in a new initiative to improve undergraduate education in science, technology, engineering and math.\nOver the next three years, each of the eight project sites will receive $500,000 to undertake an innovative STEM education project.\n“We are thrilled to be chosen by the AAU to be part of this important new initiative,” said CU-Boulder Chancellor Philip P. DiStefano. “Our selection underscores CU-Boulder’s long history as a national leader and innovator in the STEM education field, and positions us well to create new generations of STEM educators and researchers.”\nCU-Boulder’s initiative, which will be run out of the university’s recently formed Center for STEM Learning, will focus on working with faculty who teach undergraduate STEM classes to help them objectively assess the success of their teaching methods. The evaluations will complement the more subjective student course evaluations filled out at the end of a semester.\nThe grant money will be used, in part, to hire project staffers who will help participating faculty members interpret the newly collected evaluation data at the end of each semester and then make a plan to improve their teaching methods in the future.\n“We want to recognize that research and teaching are not in competition but, in fact, are complementary activities,” said CU-Boulder physics Professor Noah Finkelstein, a director of the Center for STEM Learning. “The excellence to which we strive as faculty is a habit of mind applied to all our endeavors at the university.”\nTypically, research and teaching are both formal requirements of a professor’s position, but research has been valued more in the university culture, Finkelstein said. Research has also traditionally been easier to evaluate.\nMeasures such as number of publications, frequency of study citations and grant amounts are often used to determine the quality of a faculty member’s research. By comparison, the leading tool for evaluation of a faculty member’s teaching has been end-of-course student evaluations, a measure that is not especially helpful for teasing out how effective a particular course was in meeting all the learning objectives, Finkelstein said.\nOver the last decade, CU-Boulder and other leading universities have developed a suite of tools that can more reliably measure the impacts of particular educational practices. The new project will work with faculty on a voluntary basis to find the most appropriate evaluation tools and implement them in their classrooms.\nThe eight campuses participating in the AAU’s new STEM initiative were chosen from 31 applications. The seven other campuses are Brown University, Michigan State University, University of Arizona, University of California, Davis, University of North Carolina at Chapel Hill, University of Pennsylvania and Washington University in St. Louis.\nThe AAU initiative received a three-year, $4.7 million grant from The Leona M. and Harry B. Helmsley Charitable Trust last October. The initiative also received a two-year, $284,000 grant from the National Science Foundation in May.\n“We have reached an exciting milestone in our initiative,” said AAU President Hunter Rawlings. “With the strong support provided by the Helmsley Trust, these eight project sites will each begin—or in some cases continue—to institutionalize evidence-based teaching in STEM fields. These changes will make teaching and learning far more interactive and participatory, and we hope will enhance overall student learning in STEM fields and reduce the number of students who choose to drop out of these majors.”\nThe Association of American Universities is an association of 60 U.S. and two Canadian research universities organized to develop and implement effective national and institutional policies supporting research and scholarship, graduate and professional education, undergraduate education, and public service in research universities.\nThe Leona M. and Harry B. Helmsley Charitable Trust aspires to improve lives by supporting effective nonprofits in a variety of selected areas. Since 2008, when the Trust began its active grant making, it has committed more than $900 million to a wide range of charitable organizations. Through its National Education Program, the Trust views education as a lever to advance both American economic competitiveness and individual social mobility. In K-12, the Trust focuses on ensuring all students graduate high school prepared for college or careers by supporting teacher effectiveness and the implementation of high academic standards. In postsecondary education, the Trust is primarily interested in increasing the number of Science, Technology, Engineering and Mathematics (STEM) graduates who can participate in high growth sectors of the economy. The Trust also focuses on policy levers that improve postsecondary completion, particularly for underrepresented populations. For more information, please visit http://www.helmsleytrust.org."} +{"text": "What: Boulder police Chief Mark Beckner briefs City Council on elk shooting\nWhen: 6 p.m. Tuesday\nWhere: Boulder Municipal Building, 1777 Broadway\nThe towering elk shot at Mapleton Avenue and Ninth Street by a Boulder police officer has been dead for almost a week, but the furor surrounding the animal's demise is still very much alive.\nBoulder police Chief Mark Beckner addressed the elk's death and answered questions Monday at a community meeting requested by residents of the neighborhood where the elk was killed, with some of those residents calling the shooting a \"murder.\"\n\"I know there is a lot of emotion around this issue,\" Beckner told about 70 people who gathered at the city's Public Safety Building on 33rd Street.\nOn New Year's Day, an officer on patrol at Ninth and Mapleton told police he encountered an injured elk that he determined needed to be put down. The officer killed the elk with a shotgun, then called an off-duty police officer who took the meat home to be processed. An on-duty Boulder County sheriff's deputy also helped load the animal into a truck.\nBut the Boulder police officer never reported the shooting and never told dispatchers about the incident. The two Boulder officers -- Sam Carter and Brent Curnow -- have been placed on paid leave as the Boulder Police Department conducts an internal investigation.\nWhen asked if he believed the officer's story, Beckner said he didn't have enough facts to determine that, but added that there were enough facts to open the internal investigation.\n\"If we didn't think there were issues, we would not be investigating,\" he said. \"It appears policies and procedure weren't followed. Now we need to either prove or disprove that.\"\nBut some members of the crowd did not take the same approach, with one comparing the paid leave to putting \"murderers on vacation.\" Beckner also said he has received e-mails from people going as far as asking that the officers involved be executed.\nThe chief urged residents to let the investigation play out.\n\"We take the stance that everyone is innocent until proven guilty,\" he said. \"But if that officer needs to be fired, I assure you he will be fired.\"\n'Going to have more training'\nBeckner said putting down an injured animal is not unusual for the police department and officers are trained to know how and when to euthanize injured wildlife. But he quickly added, \"Believe me, we're going to have more training.\"\nMany people in the crowd testified that the elk was never aggressive. Beckner said police did get a call on Dec. 26 from a mailman who reported being trapped on a porch in the area by the animal. But one woman read an e-mail she claimed was from the mailman saying the incident was overblown.\nBeckner reminded the crowd that the criminal investigation was being handled by Colorado Parks and Wildlife, not his own department.\nHe added that he would be concerned if the shooting was not warranted.\n\"We don't want our officers out there shooting animals if they don't have to,\" he said.\nRita Anderson with In Defense of Animals said the shooting should prompt policy changes in the department. She said violence toward animals was an indicator of violence toward people.\n\"They should have to go through an evaluation,\" she said.\nWhile Beckner said there is always room to improve, he said he didn't think the incident called for any massive changes to the department's policy.\n\"If they want to shoot something, protocol is not going to stop them,\" Beckner said of his officers.\nMeeting with City Council\nBeckner also plans to address the Boulder City Council at the beginning of Tuesday night's regular meeting. The council convenes at 6 p.m. in the Boulder Municipal Building, 1777 Broadway.\nBoulder Mayor Matt Appelbaum said last week that the council doesn't have the authority to order discipline for individual officers, but, as the voice of the community, council members do want answers about how the police department handles such cases.\nIn an e-mail to other City Council members Monday, Councilman Macon Cowles said he wants detailed information about police officers' contracts and how decisions are made about paid versus unpaid administrative leave, as well as information about how police would have handled a similar allegation involving civilians.\n\"This question is fundamental, and it is at the root of much of the public comment about the incident,\" Cowles wrote.\nCamera Staff Writer Erica Meltzer contributed to this report.\nContact Camera Staff Writer Mitchell Byars at 303-473-1329 or firstname.lastname@example.org."} +{"text": "Joseph Smith, Jr. (1805 - 1844) was the founder and 1st President of the Church of Jesus Christ of Latter-day Saints. Joseph Smith was the first prophet, seer and revelator of the church. Joseph was born on December 23, 1805 in Sharon, Vermont.\nAfter hearing the conflicting claims of different Protestant preachers, Smith studied the Bible for himself. He decided to ask God which church he should join. In the Spring of 1820, Joseph said that he saw two beings, God (meaning the Father) and Jesus, in a vision. Smith claimed to have been repeatedly visited by an angel named Moroni, from 1823 to 1827. According to Smith's account, Moroni showed him where to find buried gold plates. The plates were said to contain the full gospel of Jesus Christ in \"reformed Egyptian\" (a language which few, if any non-Mormon, believes ever existed). Smith claimed to have translated these gold plates by the inspiration of God, using a set of unusual spectacles that were also furnished to him for the purpose. He published the translation in 1830 as the Book of Mormon. The plates are not available for examination because, according to Smith, the angel took them after the translation was completed. One of Smith's earliest followers and co-workers had previously worked in a publishing office where he may have had access to the manuscript of a novel that told the story of lost tribes in America.\nIt was claimed that, on May 15, 1829, the resurrected John the Baptist appeared to Joseph and Oliver Cowdery and gave them the authority to baptize. In 1829 the apostles Peter, James, and John gave them the authority to restore Christ's Church.\nSmith married Emma Hale (daughter of Isaac Hale) in 1827 against her father's wishes. A judge in South Bainbridge, New York married them. This angered her father, who said to Smith “You have stolen my daughter and married her. I had much rather have followed her to the grave.”\nLater, in Nauvoo, Joseph Smith founded an impressive militia, announced his intention to run for President of the United States, and tried to establish polygamy. Between 1841 and 1843, Joseph married more than thirty wives although he kept the practice hidden from the public and from Emma. In order to cause Emma to accept his additional wives, Joseph claimed to receive a revelation regarding this “new and everlasting covenant” of plural marriage, partly directed at Emma - Doctrine and Covenants 132:\nD&C 132:1 Verily, thus saith the Lord...\nD&C 132:4 ...no one can reject this covenant and be permitted to enter into my glory.\nD&C 132:52 And let mine handmaid, Emma Smith, receive all those [wives] that have been given unto my servant Joseph...\nD&C 132:55 But if she will not abide this commandment, then...I will...give unto him an hundred fold in this world, of...wives...”\nD&C 132:62 And if he have ten virgins given unto him...he cannot commit adultery...\nD&C 132:64 ...if any man have a wife...and he teaches unto her [this] law...then shall she believe and administer unto him, or she shall be destroyed...\nDespite the document's stipulation that the multiple wives be \"virgins\", Smith unabashedly married eleven women who had current marriages to other men (who were still alive at the time of each woman's marriage to Smith).\nSmith's wives (and their husbands) were: Emma Hale, Fanny Alger (16 years old), Lucinda Morgan Harris (married to George W Harris), Louisa Beaman, Zina Huntington Jacobs (married to Henry Jacobs), Presendia Huntington Buell (married to Norman Buell), Agnes Coolbrith, Sylvia Sessions Lyon (married to Windsor Lyon), Mary Rollins Lightner (married to Adam Lightner), Patty Bartlett Sessions (married to David Sessions), Marinda Johnson Hyde (married to Orson Hyde), Elizabeth Davis Durfee (married to Jabez Durfee), Sarah Kingsley Cleveland (married to John Cleveland), Delcena Johnson, Eliza R. Snow, Sarah Ann Whitney (17 years old), Martha McBride Knight, Ruth Vose Sayers (married to Edward Sayers), Flora Ann Woodworth, Emily Dow Partridge, Eliza Maria Partridge, Almera Johnson, Lucy Walker (17 years old), Sarah Lawrence (17 years old), Maria Lawrence, Helen Mar Kimball (14 years old), Hanna Ells, Elvira Cowles Holmes (married to Jonathan Holmes), Rhoda Richards, Desdemona Fullmer, Olive Frost, Melissa Lott, Nancy Winchester (14 years old) and Fanny Young.\nAlthough there is some historic indication that Smith married more women than those listed here (such as Clarissa Reed Hancock, the mother of John Reed Hancock), the evidence is not conclusive.\nImprisonment and Death\nSmith had been imprisoned in Carthage, Illinois for destroying the printing press of the Nauvoo Expositor. The Expositor had denounced (in its only printed edition) \"false doctrines\" (for instance the \"doctrines of many gods\") and Smith had then had the printing press burned in the street. In retaliation, an angry mob broke into the prison on June 27, 1844. In an attempt to defend himself (with a pistol which had been smuggled in to him), Smith shot and wounded three men. He was apparently preparing to jump from the unbarred second floor window where he had been incarcerated, but was shot, causing him to fall injured to the ground below. Four men shot him to death on the ground. None was convicted. His brother Hyrum (who was also armed with a pistol) was shot in the face and killed during the same gun-battle.\n- The First Vision Mormon.org\n- Translation of the Book of Mormon Mormon.org\n- Authority to baptize Mormon.org\n- Authority of Apostles Mormon.org\n- MORMON ENIGMA: EMMA HALE SMITH (Newell & Avery, University of Illinois Press, Urbana and Chicago, 1994)\n- Family Search Familysearch.org\n- Wives of Joseph Smith WivesofJosephSmith.org\n- Martyr for God JosephSmith.net"} +{"text": "WASHINGTON, Oct. 13 /PRNewswire/ -- A Florida state attorney is\ninvestigating thousands of potentially fraudulent voter registrations\nassociated with the leading organizer of Florida's Amendment 5 ballot\ninitiative. But this is just the tip of an iceberg of illegalities, fraud and\ncontradictions connected to the Association of Community Organizations for\nReform Now (ACORN). In recent days, ACORN has been at the epicenter of\nreports on thousands of potentially fraudulent voter registrations across the\nnation -- including many by ex-felons -- submitted by ACORN employees in the\npresidential swing states of Ohio, Colorado, Missouri Pennsylvania, New Mexico\nThe Employment Policies Institute has updated and re-released its report,\n\"The Real ACORN: Anti-Employee, Anti-Union, Big Business\" with the latest\ndetails on ACORN's involvement in what appears to be widespread voter\nregistration fraud. The report includes statements from former ACORN\nemployees on the illegal nature of the organization's promotion of the ballot\ninitiative to raise Florida's minimum wage to $6.15 per hour.\n\"This report reveals ACORN's pattern and practice of deception and fraud,\"\nsaid EPI research director Craig Garthwaite. \"The latest allegations of\nwidespread voter registration fraud should prove to be the last of ACORN's\nnine political lives.\"\nFormer ACORN Miami-Dade field director Mac Stuart has declared an intent\nto sue ACORN and has made charges of rampant voter fraud operations. Stuart\nwas employed and specifically tasked by ACORN to generate 103,000 new voter\nregistrations from Dade County. He reports that ACORN threw out Republican\nregistrations while paying for Democratic ones. Stuart also charges that\nACORN targeted ex-cons and that he personally set up registration tables\noutside the Miami police department and Dade County jail. He went on to\nstate, \"The voter registration project has been operating illegally since it\nACORN has paid workers for every voter registration card collected -- a\nfelony in Florida and also illegal in Missouri and Pennsylvania. ACORN also\nroutinely accepted signatures for Amendment 5 from individuals who were not\ncurrently registered to vote -- a requirement under Florida law.\nVoter registration and petition fraud is just the latest chapter in\nACORN's long sordid history. The EPI report also reveals:\nACORN Involved in Union Embezzlement -- In the late 1990s, ACORN's Project\nVote was involved in an $850,000 embezzling scheme, where union funds and\nkickbacks were used to illegally aid the 1996 re-election bid of then-\nTeamsters President Ron Carey. A New York federal jury found the Teamsters\npolitical director guilty of the conspiracy.\nACORN bilks AmeriCorps -- In 1996, the Inspector General of the AmeriCorps\nprogram stripped a $1 million grant from the ACORN Housing Corporation (AHC).\nWhen applying, AHC had denied any connections to ACORN, since the grant was\nnot intended for political advocacy organizations. Evidence later uncovered\nby the Inspector General found that not only was AHC created by ACORN, engaged\nin numerous transactions with one another, and sharing staff and office space\n-- but it utilized the AmeriCorps grant to increase ACORN membership, a\nviolation of federal guidelines.\nACORN Union-Busts Own Workers -- On March 27, 2003 the National Labor\nRelations Board (NLRB) found that ACORN had violated the National Labor\nRelations Act and was required to rehire and pay restitution to employees\nterminated for attempting to form a union. The NLRB ruling is just the latest\nin a trend of ACORN's union-busting tactics. ACORN employees have\nhistorically demanded higher wages, safer working conditions and more timely\ncontracted wages. These efforts have been repressed behind closed doors by\nthe hypocritical ACORN leadership, which publicly advocates higher pay and\nbetter working conditions for private sector workers.\nACORN and Minimum Wage Hypocrisy -- Most egregiously, ACORN promotes\nballot initiatives and local ordinances to force businesses to pay higher\nminimum wages, as they are currently doing with the minimum wage proposal in\nAmendment 5. In 1995, however, ACORN sued the state of California to have its\nemployees exempted from the state minimum wage. ACORN argued that being\nforced to pay higher wages would mean that they would hire fewer employees --\nthe very dilemma faced by businesses. Incredibly, ACORN stated that paying\nits employees a lower wage would allow them to be more sympathetic to the low-\nand moderate-income families they were attempting to help. ACORN argued that\nabiding by the state minimum wage would limit their ability to promote their\nagenda and would therefore be a violation of their First Amendment rights.\nThe trial court judge dismissed ACORN's suits, stating, \"leaving aside the\nlatter argument's absurdity ... we find ACORN to be laboring under a\nfundamental misconception of constitutional law.\"\n\"ACORN's history of voter registration fraud, hypocrisy, abuse of federal\ngrant programs, and disregard for sound economics should raise a red flag for\nvoters considering support for Amendment 5,\" Garthwaite said.\nThe full report is available online at http://www.EPIonline.org\nThe Employment Policies Institute is a nonprofit research organization\ndedicated to studying public policy issues surrounding entry-level employment."} +{"text": "Tip #1: Index CardsFor every subject you're studying, write down key facts and figures on a set of index cards. By carrying these cards around with you, you'll be able to refer to them during spare minutes and other down time, enabling you to study on the bus, on the toilet, or while going to the toilet on the bus.\nTip #2: Highlighter Use a highlighter to color words in your books. This will make it feel like you're actually studying. Actually studying involves reading the words, which is also good, but much more time consuming, and frankly discriminatory against people who don't want to read.\nTip #3: Study Group Try joining a study group to help you prepare for exams. Assign sections of the material to each person in the group, then make that person provide a summary of the key information in that section to the rest of the group. Because the effectiveness of this technique depends on the people involved, finding the right study group is important. An easy trick for this: if you can't tell which one of your study friends is the dumb one, then it's probably you. This is thus an excellent study group for you.\nIn exam-mad Japan, study groups have complicated rituals.\nTip #4: Not Kidding Anyone It's time to just admit that you're hosed. There is no chance at all that you'll be able to pull this off, and if we're being honest, you'd probably be better off smacking yourself in the crotch with a hammer labeled \"Self-Deception\" then you would be by studying. With that taken as fact, the smartest thing you could do right now is just give up and stop wasting your time. Congratulations on making a very grown up decision.\nTip #5: The Shame But having come to that very mature decision, you can just picture your dad. And he's not one of the \"I'm just disappointed in you\" types. FATHER: -angry- You spent twenty eight thousand dollars to jerk off and play video games? Don't answer me. I don't want to know the truth. I doubt it's better. In fact I think I'm actually being pretty charitable describing your life. Yeah, you honestly can't live through several decades of that. So maybe it's time to buck up and find an alternative solution. Study-Ho!\nTip #6: Hot For Teacher (for the right price) You honestly have very little to lose from at least asking to nail your professor in exchange for a better grade. If the professor isn't agreeable to it, offer to pleasure their spouse, thus freeing up your professor's valuable time for more research. Be sure to bring along a \"Sexin' Resume\" to further establish your credentials.\nTip #7: Bomb Threats For the reasons described above (dads, yelling) bomb threats have become nearly ubiquitous on college campuses during exam season. Many authorities won't even delay exams upon receiving a threat now, unless they perceive the threat is in some way credible. So, make your threat credible by blowing up a smaller, less important building earlier in the week. The drama building for example.\nTip #8: The Ringer Browse your local dating website looking for people with pictures that look somewhat like you. Pretending to be someone else, Wink/Whisper/Poke/Diddle them to start a dialog, and over the course of a few private messages, see how smart they are. Eventually work the conversation around to them writing an exam under a false name in exchange for some sort of sexual favor. The success rate of this will depend sharply on how desperate people who look like you are for companionship.\nTip #9: Technology Use computers in some way to cheat. Cell phones and such are usually strictly forbidden during exams, but there are ways to use technology to get an edge. Try wrapping some C4 to a computer monitor, and pushing it into the elevator shaft of your chemistry building. Poof, instant delayed exam.\nTip #10: An Offer They Can't Refuse After writing your exam, loiter around the exam room, attempting to be the last one to hand it in. When you do, shake the professors hand, thanking her for teaching a good class. Use this opportunity to slip her some cash, or a note threatening her cat's life. \"Why did you write this using cut out magazine letters?\" she asks. \"I clearly know it was you who wrote it.\" Sprint out of there before she can find any more holes in your plan, and hide under a picnic table until everything blows over.\nTip #11: Illness If you think you actually have a chance to pass this exam, but only if you had more time to study, please refer to the \"Not Kidding Anyone\" tip above. If you still think that way, consider becoming legally ill prior to the exam in order to obtain a doctor's note. Eating uncooked chicken is a pretty good way to do this, but also consider entering an emergency room by dragging your rear end across the floor - the universal sign of irreversible intestinal distress."} +{"text": "If you go\nWhat: Community Recreation Center Steering Committee\nWhen: 7 p.m. March 17\nWhere: Craig City Hall, 300 W. Fourth St.\n• All community members are encouraged to attend.\nAt its Wednesday meeting, the Moffat County Tourism Association:\n• Approved spending $268 to sponsor the KRAI live broadcast of the State Wrestling Tournament on Feb. 19 to 21 in Denver.\n• Approved spending up to $1,800 for four pages of advertising in the Welcome to Craig magazine, published by the Daily Press.\n• Approved spending $529 for various Daily Press advertisements in 2009.\n• Did not approve renewing advertising in RV Journal because board members said they preferred saving money and putting it toward a professional consultant who could advise what advertising is more effective than others.\n• Approved up to $500 for a new printer for MCTA Director Michelle Perry.\nWhen Tony St. John moved with his wife and their three children to Craig around 1980, it was the middle of winter, and there was not much for his children to do.\nSix months later, he became involved with a campaign to bring a YMCA gymnasium to the area. After that failed to materialize, he joined the effort to build an ice arena at Loudy-Simpson Park.\nHe helped start tee ball and soccer programs, and then Trailbusters, a program that provides transportation and all-day ski instruction to local youths.\nAll these initiatives had something in common, St. John told the Moffat County Tourism Association at its Wednesday meeting, something an ongoing effort to build a community recreation center in Craig has not yet had.\nThe YMCA, Ice Arena and other past recreation projects resulted from community partnerships, he said. The Community Recreation Center Steering Committee should get back to that philosophy.\n\"I think we've not been doing it right,\" St. John said. \"This community recreation center needs to be a team effort.\"\nOtherwise, the project may never get out of committee, he added.\nSimilar opposition stood against nearly every other recreation project in recent memory, though time has proven those to be worthwhile community investments, St. John said.\nHe pointed to the City Park wave pool, built around 1985. Many in town rallied against the pool, but thousands of people use it every year.\nWoodbury Park, built in the 1990s, was an unpopular move by the city, but now it joins Loudy-Simpson as a host for Triple Crown Sports, a national youth sports organization.\nLoudy-Simpson itself began as a controversial issue, St. John added, but has become a cornerstone for the local community.\n\"That park has really been a moneymaker for all of us and given our kids something to do,\" he said. \"A recreation center could be the same thing. I really believe that. It will do wonders for our community.\"\nThe MCTA board did not disagree, but members pointed out the group could not provide any funding for a construction project. By county resolution, lodging tax money can be spent only on marketing and advertising, with the exception of funding a visitor center.\n\"We might be able to help you do brochures to promote it, but we can't help you build it,\" MCTA board member Cindy Looper said.\nThe Recreation Center Steering Committee is not asking for money, St. John said, though it would be happy if local organizations or businesses want to contribute.\nIts purpose now is to approach people to support the cause, he said.\nThe MCTA board is willing to look into it.\n\"We do like the concept of the project,\" MCTA Board President Tammie Thompson-Booker said, but she agreed with Looper that funding is a sticking point.\nMCTA board members will not support a move to repeal the county's lodging tax - which supplies the organization's entire budget - in favor of a city lodging tax that will fund a recreation center. State law prohibits cities and counties from having separate lodging taxes in the same area.\nHowever, board members said they would be willing to consider support of a special taxing district, which would not require the county tax be repealed.\nMCTA board member Frank Moe, who co-owns the Best Western Deer Park Inn and Suites, said he would support additional lodging taxes if it also would benefit his business and the local economy.\nNamely, he said he would want any new lodging taxes to go toward a facility with convention space. That could bring in more corporate events and help fill hotels with new guests who would spend money around Moffat County.\nDespite the lack of consensus about funding, St. John left the meeting happy.\nMoe volunteered to attend future Recreation Center Steering Committee meetings, which is what St. John said he wanted.\n\"I feel like we're just starting,\" he said. \"But, maybe we can start pulling the community together on this.\"\nCollin Smith can be reached at 875-1794 or email@example.com"} +{"text": "Originally Published: April 18, 2013 10:09 AM\nModified: April 19, 2013 9:13 AM\nSMALL BUSINESS BLOG -- SCOTT SUTTELL\nPainesville's Dyson Corp. silent amid Bay Bridge bolt problems\nOfficials in charge of building a new eastern span of the San Francisco-Oakland Bay Bridge “repeatedly questioned the work and quality control of companies involved in making long seismic safety bolts” — including Dyson Corp.\nin Painesville — that broke while being tightened, according to this\nAssociated Press story.\nLast month, the AP notes, about one-third of the 96 bolts failed, and transportation officials “said it could take months to find the cause and fix the problem, meaning the scheduled Labor Day opening of the new $6.3 billion span could be in jeopardy.”\nHundreds of pages of documents released to news media by the California Department of Transportation, or Caltrans, “show its inspectors found structural integrity issues with some of the bolts several years ago, before they were installed.”\nInspectors said bolts made by Dyson “failed to meet certain standards during testing on three occasions,” according to the AP. Dyson has said it will not comment during the probe into the bolt failures.\nAs far back as October 2008, Caltrans “admonished Dyson after finding that a test sample of bolts did not meet elongation requirements, a measure of the bolts' structural integrity,” the AP reports.\nRecords also show Caltrans inspectors identified other issues with Dyson and its subcontractors.\nFor instance, Cleveland-based Art Galvanizing Works Inc.\n, which put the protective zinc coating on some of the shorter bolts, “was criticized by inspectors for using approximate time guidelines for bathing the bolts,” which David Xu, a mechanical engineer and metallurgist at Berkeley Engineering and Research Inc., tells the AP can affect the integrity of the galvanizing.\nThis and that\nBusinesses small and large should cheer the findings of the latest Federal Reserve Beige Book\nreport, according to this analysis\nAlthough a lot of recent data — the jobs report and consumer confidence numbers most prominently — were discouraging, the new Beige Book survey “shows no signs of a slowdown,” the website notes.\nFrom late February through April 5, the economy expanded at a “moderate” pace, mostly on the back of strong auto sales and a suddenly vibrant housing sector.\n“Growth was strongest in the Cleveland, Richmond, St. Louis, Minneapolis, and Kansas City districts, indicating that the Midwest and Southeast are outpacing the rest of the country,” according to the Fed.Keeping up the fight:\nThe state of Ohio will not go quietly\nin the matter of a court decision that would require the state's workers' compensation fund to reimburse employers $860 million in alleged premium overcharges from 2001 to 2007.\nThe state this week filed an appeal, saying the March 20 ruling by Judge Richard J. McMonagle of Cuyahoga County Common Pleas Court was wrong as a matter of law.\nAccording to court documents, the state “outlines nine reasons the decision should be reversed,” according to PropertyCasualty360.com. Of them, the state says the court erred in calculating damages due the plaintiffs under an “equitable restitution” formula the state alleges is inappropriate.\nThe website notes the case is a class-action lawsuit that has been in the courts since 2007. The core of the dispute is discounted premiums the Ohio Bureau of Workers' Compensation gave companies that joined group insurance plans.\nLawyers for plaintiffs argue the state should just settle the case.\n“Now is the time for the BWC to do the right thing and immediately reimburse these businesses,\" says James DeRoche, a partner at Seaman Garson L.L.C., Cleveland, and a principal lawyer for the employers in the class-action lawsuit. \"If the BWC is truly business-friendly, it will not further delay payment so tens of thousands of small businesses can reinvest those dollars into creating and protecting Ohio jobs.”On the road again: James Gilmore\n, an author/speaker/business consultant from Chesterland, gets to weigh in on his favorite U.S. hotels in this story\nfrom USA Today\nHe's part of the newspaper's panel of “Road Warriors” — some of the world's most frequent travelers who voluntarily provide travel information.\nMr. Gilmore's two picks are both in California: L'Ermitage Beverly Hills and Hotel Vitale in San Francisco.\n\"I love the minimalist design of the guest rooms in both hotels,\" Mr. Gilmore tells USA Today\nThe Bose sound system in the guest room of the L'Ermitage is unmatched for enjoying music in a hotel, he says. \"And I love the heat and motion sensors that allow housekeeping to postpone as long as possible the moment they must finally knock and interrupt one's stay.\"\nAt Hotel Vitale, the views of the Bay Bridge \"are simply wonderful,\" the frequent traveler says.\nYou also can follow me on Twitter for more news about business and Northeast Ohio"} +{"text": "A 'Cairo moment' for Obama in Moscow?\nWhen he visits there next week, he should counter Kremlin propaganda by speaking directly to Russians about America's real desires.\nWashington — Next week, President Obama will travel to Moscow to attend a summit with Russian President Dmitry Medvedev. He should use that opportunity to engage not only with the government of Russia, but to communicate directly to the Russian-speaking world.\nCorrectly, the Obama administration has focused on the need to reach out directly to adherents of the Muslim faith. Last month in Cairo, surrounded by hundreds of young people, students, and activists, Mr. Obama eloquently conveyed both America's values and hopes for a better relationship with the Muslim world, a relationship rooted in genuine respect.\nAs of now, no major speech to reach the hearts and minds of the Russian-speaking world is planned, but it should be part of the president's agenda during his visit to Moscow. Russians, and the vast majority of their neighbors, suffer from a freedom deficit comparable to that experienced by all too many inhabitants of the Middle East. In assessing the state of freedom in the countries of the former Soviet Union – excluding the three tiny Baltic States – the nongovernmental organization Freedom House actually finds lower levels of freedom than in the Middle East.\nIn most of these countries, including Russia itself, a corrupt ruling elite controls and exploits the country's major resources for its own enrichment. Elections are largely meaningless exercises in which there is no viable competition. And any civil society groups that attempt to engage in politically sensitive topics – like human rights or anticorruption – are stifled, sometimes brutally.\nWithin Russia, all meaningful mass media serve as a mouthpiece for the Kremlin. The Russian people are bombarded by a sophisticated propaganda campaign that taps into nationalist sentiments and invents outside enemies to justify the consolidation of power. School curricula have been adjusted to glorify Soviet achievements, while playing down its depredations. In May, President Medvedev announced the creation of a new Commission to Protect Russian History, which will serve to counter historical narratives that portray Russia in a negative light. Even the Orthodox Church feeds the idea of the strong state and Russian exceptionalism.\nThis campaign has been extremely effective in exploiting Russians' humiliation at the collapse of the Soviet empire. It incorporates both nostalgia for its superpower past with viciously anti-Western, and particularly anti-American, rhetoric.\nPropaganda has also capitalized on anti-Bush sentiment to tarnish the ideas of freedom and democracy and to present these values as incompatible with Russian traditions and culture. No matter that these same arguments were once made regarding the culture and history of Asians and Latin Americans and adherents to the Roman Catholic or Muslim faiths – arguments that have since been repudiated by the reality that all people want to enjoy fundamental freedoms.\nCan a speech from Obama hope to counter such a well-resourced and sophisticated anti-American and antidemocracy campaign? Certainly not by itself. But, just as in Cairo, it would be an important step if done in the right way. Russians don't like being preached to by foreigners any more than Egyptians, Turks, Iranians, or for that matter, Americans, do.\nYet they may respond to a frank and respectful speech that emphasizes America's real desire – not for a weak and subservient Russia – but rather a strong Russia that shares its democratic values and that can be a real partner in tackling some of the world's growing list of crises.\nEven if successful, outreach to the Russian people will not resolve the problem of a Kremlin that subverts freedom and democracy. But the past eight years have taught us nothing if not the importance of the hearts and minds of people. We are already starting to reset our relationship with the Russian government. We should make a strong effort to do so with the Russian people as well.\nPaula Schriefer is the director of advocacy at Freedom House, an independent nongovernmental organization that supports the expansion of freedom in the world."} +{"text": "Obama goes from scolder in Washington to comforter in Boston\nIn Washington, President Obama is locked in a battle with many voices in Congress over gun control, but at a moment of national tragedy, such as the Boston Marathon bombings, the president stands alone.\nA day after he stood in the White House Rose Garden as a frustrated scolder-in-chief, President Obama was in Boston Thursday assuming the role of comforter-in-chief at a prayer service for the victims of the Boston Marathon bombings.\nIn both cases, Mr. Obama was acting to address, though in very different ways, horrendous acts of violence that stunned the country.\nOn Wednesday afternoon, with Gabrielle Giffords and Sandy Hook families at his side, the president cast “shame” on the US Senate for rejecting a bipartisan plan for tighter background checks on gun purchases. Not 24 hours later, he was providing balm to the victims of an “act of terror” and to a city struck in its heart.\nIn just a day, the president changed out of the political cloak of irate reaction to Congress to the higher m antle of national leadership in times of grief. As Obama hugged families and visited the bedsides of the recovering, it only underscored how a presidential presence that meant so little one day in Washington could mean everything in Boston the next.\nIt was a change in roles reminiscent of one made by President Clinton in 1996, when the Oklahoma City bombing – at that time, the largest act of terror to strike the US – allowed a president caught up in daily political harangues with Congress to step out from Washington and comfort a nation with what would become his trademark empathy.\nIn the Rose Garden, Obama was introduced by Mark Barden, who lost his son, Daniel, in the Sandy Hook Elementary School shooting on Dec. 14. With the president’s hand on his shoulder, Mr. Barden said the Sandy Hook families were “disappointed” by the Senate votes but “not defeated,” promising continued effort for gun safety legislation.\n“All in all, this was a pretty shameful day for Washington,” Obama said.\nIn Boston, the president was accompanied by Michelle Obama, and the tone was much more one of comfort and of faith in the resilience of Boston and all Americans in the face of tragedy.\nComparing the nation to the Boston Marathon runner seen on videotape by millions as he was knocked off his feet by the first of two blasts, Obama said, “We may be momentarily knocked off our feet. But we’ll pick ourselves up. We will keep going. We will finish the race.”\nA devoted sports fan, Obama is said to have penned much of Thursday’s remarks himself.\nHe went on to pledge, as he had just hours after the bombings, that those responsible will be found and brought to justice. “But more than that,\" he added. \"our fidelity to our way of life, to our free and open society, will only grow stronger.”\nBut with the investigation into the marathon bombings turning up clues – including photos of individuals of interest and painstaking assembly of bomb parts pointing to unsophisticated devices built to kill and maim – that keep alive the theory that the attack could have been the work of domestic extremists, more attention is being paid to past domestic “acts of terror.”\nThe Oklahoma City bombing, in particular, became embroiled in the prevailing political storms, as an embattled Mr. Clinton addressed the deadly act of an antigovernment terrorist in a way that some Republicans charged used the tragedy for political gain.\nFour days after the bombing, Clinton traveled to Oklahoma City and delivered words that both comforted and reassured his audience and the country. “You have lost too much, but you have not lost everything,” he told his audience, noting that America was with them. He then told the nation, “I will not allow the people of this country to be intimidated by evil cowards.”\nBut Clinton was also castigated by some critics for using the Oklahoma City bombing to single out some of his harshest detractors for the way that, in his view, their fiery rhetoric appeared to condone violence.\n“We hear so many loud and angry voices in America today whose sole goal seems to be to try to keep some people as paranoid as possible and the rest of us all torn up and upset with each other,” Clinton said. “They spread hate. They leave the impression that, by their very words, that violence is acceptable.”\nBy contrast, Obama did not accuse anyone of encouraging gun violence in his Rose Garden comments, but he did suggest that political expediency was the only motivation that could explain the Senate’s rejection of what he called a “common sense” measure expanding background checks. And he accused opponents of the bill of \"lying\" about what it would and wouldn't do.\nIn rebuffing the president, some opponents of additional gun safety measures have accused Obama of using the Sandy Hook tragedy for political gain. Libertarian Sen. Rand Paul (R) of Kentucky charged the president with employing the Sandy Hook families that have lobbied members of Congress as “props” in his quest for more government regulation.\nIt has not been a satisfying or particularly inspiring debate on either side.\nAway from Washington, Obama spent time Thursday with families of the victims of Monday’s bombings. He and Michelle visited recovering patients in several Boston hospitals, and the president stopped in to thank marathon volunteers and first-responders who have been credited with quick action that saved many lives.\nIt was a day for presidential comforting, the frustrations of Washington could be put off to another day."} +{"text": "One Marine's memorial: day of racing to honor veterans' service\nRyan Jerabek's parents helped organize an annual footrace that traces the route run by their son, a Marine killed in Iraq. The event honors those who serve in the US armed forces.\nWhen Rita and Ken Jerabek saw the men in uniform at their door one April morning in 2004, they knew their lives had changed forever. They were told that their son Ryan, not long out of high school and a Marine Corps private first class serving in Ramadi, Iraq, had been killed in an ambush.\nSomething would always be missing for the couple and for Ryan’s brothers. But a year or so later, Mrs. Jerabek came upon an idea she felt would honor her son’s memory while also helping others. She found it in his own words, back when he was a student at Pulaski High School near Green Bay, Wis.\nIn a speech class in 2002, he said: “I’d like to ask of you to thank those who fought and are fighting in the battles to keep this country at the pinnacle of freedom.” It became clear to Jerabek: “Ryan is wanting us to carry on what he had asked his fellow students to do.”\nThree things came together as the idea developed: Ryan ran track in high school, staying in shape by running a four-mile route near the family’s home in rural Hobart, Wis.; he wanted to join the Marine Corps as soon as he graduated; and after military service, his plan was to go to college to become a high school history and social studies teacher.\nIn terms of carrying out something, “I didn’t know where to begin,” Jerabek says. But with the help of event planners and race organizers, Rita and Ken organized the first “Pfc Ryan Jerabek, USMC Memorial Challenge” – a four-mile footrace retracing Ryan’s training route. That was in 2006, when about 600 people participated. Since then, it’s become an annual event.\nLast August, about 1,200 runners and walkers – children as well as adults – took part, including 18 marines from across the United States who had been in Ryan’s platoon. It was a five-year reunion for them.\nGold Star families – those who’ve lost somebody in war – have begun coming, too. “They’re able to introduce their loved ones to the group,” Jerabek says.\nProceeds from the event go to two causes Ryan and his family valued: the Injured Marine Semper Fi Fund, which provides financial assistance to those of all uniformed services injured in post-9/11 combat and training, and the Pulaski Community School Education Foundation Inc., which makes small grants (typically $500) to local teachers for books and other equipment or special projects. For 2009, the proceeds totaled $7,400.\nParallel runs have been held by about 100 service personnel and civilians – including the US ambassador to Iraq – in Baghdad’s Green Zone. Airmen at Dyess Air Force Base near Abilene, Texas, ran their own Jerabek Challenge. And about 80 sailors from the San Diego-based USS Green Bay went to the Marine Corps base at Camp Pendleton to run the race.\n“It’s such an exciting day to see everybody gather in support of our troops, to remember the fallen, and to say ‘thank you’ to our military,” says Jerabek, who’s a nurse practitioner at a rural family practice clinic.\nRita Jerabek is also active with Operation Gratitude, which sends care packages to troops serving overseas, and with the Iraq and Afghanistan Veterans of America (IAVA).\nThese days Rita and Ken Jerabek have new concerns as well. Their youngest son Nick followed in his older brother’s boot steps. He’s a Marine Corps corporal now serving in Afghanistan.\nHas the Jerabek Challenge helped ease the loss of Ryan?\nPausing, Jerabek says, “Yes, it has.”\n“Sometimes it’s overwhelming,” she goes on. “But then I remember that it’s helping other people, so it is healing for me. And for me, it was important to do something that I think Ryan would be really proud of.”\n“It’s helped his brothers too,” she adds, noting that with the run Ryan’s friends, Marine Corps buddies, and a growing number of strangers “in a spiritual way are retracing his steps.”"} +{"text": "Left in the comments by one of my most favorite people of all time was a request for more snickerdoodle stuff. So since I do big puffy heart her I am going to oblige her. That and it’s not too hard to convince me to make something snickerdoodle flavored (twist my arm).\nIt’s funny that the vast majority of people who I adore and have been positive influences in my life (with the exception of my hockey peeps…MDP included) have all come as a result of this blog. If nothing else ever comes from me having this blog, the friendships that I have made from it have made any amount of time spent keeping this blog a float all worthwhile. It’s even is worth all the caramel burns.\nThey (whoever THEY are) say that the Internet often isolates and keeps people from having real life relationships. I can see that in some ways. I think what is nice about the Internet is the fact that it allows me to search out and find people who I have things in common with or are just good peeps that I could throwback some beers with instead of having to pick from what is just around me (no offense to my local friends ). Some of those are people who are merely acquaintances that I would meet up with for dinner if they were in town and some are people I would give money to and go at someone with a hockey stick if they asked. And they have done the same for me (well not the hockey stick…but it could happen).\nOne of the blessings (friend) that came into my life from my blog said to me when I commented about all of my good friends have either come from hockey or this blog was “passions bring good things to people”. I liked that. I have two passions in my life: hockey and food…so really that makes total sense. It also helps that hockey peeps and food lovers are for the most part pretty awesome human beings. Or sure there is always a rotten apple now and then…but that’s okay because then I can write about them on this blog and exploit them for ad revenue. Suck that mean people.\nThese truffles are a take on the chocolate chip cookie dough truffle that was made for the ever hip expanding Chocolate Chip Cookie Dough Cheesecake which is excellent for all your post break up needs. :)But I prefer sugar cookies and snickerdoodles to chocolate chip cookies (I know shoot me). Plus I like any excuse to throw nutmeg into something. Which brings us to today’s giveaway the ever handy Microplane 40020 Classic Zester/Grater . You probably own one. I do. But really you need two, just in case the one is in the dishwasher. That’s why I own two…well three now thanks to AllRecipes.com who gave it in their goodie bag. No I am not re-gifting…you get your very own. Not that I am against re-gifting…I just really like it…it’s yellow.\nSo just leave a comment and tell me if you think you can form real relationships just from the Internet. You have to comment by Tuesday June 19th 2012. You have to be living in the USA. And you need to name your first born after me…oh wait. I will let people know on Wednesday June 20th 2012 if you won anything.\nSnickerdoodle Cookie Dough Truffles\n½ cup unsalted butter, at room temperature\n¾ cup packed brown sugar\n1 tsp. vanilla extract\n½ tsp. salt\n2 cups all-purpose flour\n14 ounces sweetened condensed milk\n½ tsp. freshly ground nutmeg\n½ tsp. cinnamon\n1 tsp. cream of tartar\nCinnamon sugar for rolling truffles in\nIn a medium size bowl add the flour, spices, salt, and cream of tartar. Set aside.\nUsing a stand mixer (or a bowl and beaters), cream together the butter and sugar until light and fluffy, about 3 minutes.\nBeat in vanilla.\nWith speed on low, slowly add flour mixture, alternating with condensed milk, beat well after each addition.\nShape balls into 1-inch balls and place into an air tight container. Roll them into the cinnamon sugar just like you would a snickerdoodle cookie. Store in freezer for at least 3 hours.\nHow many you get really depends on what you think a 1 inch ball looks like. I will be using these in the next several recipes so be on the lookout."} +{"text": "How search can help you understand your audience - part 1\nHow search can help you understand your audience\nSubsequently I have been giving a series of presentations on how we can use this information within the BBC to feed into our design processes, our content creation, and our understanding of our audience. I believe that these are principles that can be well applied to any UK based non-commercial website.\nIt seems to me that many of the metrics with which we measure user interaction with the web are deeply flawed, and provide ample evidence that the internet was invented by physicists and technologists, not marketing and advertising executives. Page impression figures do not convey any information about whether the page view was satisfying or frustrating. Not all users accept cookies, and not all cookies can be associated with a single user when they are issued to computers across corporate networks or public internet access points. Tracking individual session data still doesn't tell us whether the user went to make a cup of tea or answer the door whilst they spent the measured 3 minutes on the page. Beyond that, the effect of caching by ISPs can lead to users not even seeing the latest version of a page, let alone the problem it creates for capturing behavioural data.\nHowever, the action of typing a word or phrase into a search box is a very direct interaction between the user and the site. We can safely assume that when the user typed in that word or phrase they expected \"something\" back from the site. Few people except the very bored, Google-whackers, or those with a professional interest in search mechanisms enter search strings looking for a null result.\nUsing search to learn the user's vocabulary\nOne thing that becomes abundantly clear from even a cursory examination of the search logs at BBCi is that the BBC has an extremely diverse audience, who may be looking for the same information, and for information that we have, in a myriad of different phrases, dialects, and even languages. Without realising it we set up barriers in our site to users finding the information they require, merely by the language we use. This is something that any medium to large scale website will suffer from, for the following reasons.\nA well written website will have some sort of style-guide, whether it is standards compliance (w3c), plain use of language (Plain English Campaign), brand consciousness (easyJet), to the downright pedantic (currybetdotnet didn't use to use upper-case on the homepage at all as a design 'quirk').\nHowever users don't come with a built in version of the style-guide. A decision taken in a committee room about whether a site offers 'ecards', 'e-cards' or 'e cards', can have a profound influence on the user's search experience if they are looking for one of the variant spellings.\nAt the BBC the website can variously adopt phrases like 'Feedback', 'Contact Us' and 'Email the Show' to allow the audience to interact with it. However we know from search logs that the BBC's audience often asks natural language questions like \"how do i write to BBC3\", and can be viewing a page with a link to 'Feedback' on it and then type 'email address' into the search box.\nCorrectness vs Common Usage\nOne area where there can be a particular disconnect with the audience is if you are obliged to use 'correct' terminology, when in the real world 'common usage' is much more prevalent. A classic example of this is with BBC News and the country 'The Netherlands'. A search for 'netherlands' on BBC News yields around 100 results at the time of writing.\nIn the UK, however, it is much more common to call the country 'Holland'. A search for 'holland' brings back fewer results, and in the first page of results produced by the search technology, the top story is about Jools Holland, and one of the stories is about Tony Holland. Using 'Best Links' we are at least able to insert links to The Netherlands country profile, and the top headlines from europe.\nThis is where using synonyms and placing 'Best Bets' within search results can play a crucial role in bringing users to the content they are looking for. Where the style-guide allows, we also consider placing synonyms within our navigational structure to allow users to browse towards their goals, even where their vocabulary differs from ours.\nAn example of this is that the BBC offers a Films site at www.bbc.co.uk/films. If we stuck strictly to our branding and our style guide then we would only list it in the A-Z Index under 'F'. Using synonyms, and the information fed into the design process by search, our A-Z Index team list the BBCi Films site under 'C' for cinema, 'F' for films, and 'M' for movies, providing alternative navigational routes that suit our users needs rather than any internal branding priorities."} +{"text": "Archives for: August 2012, 04\nYesterday I visited the hospital where I had undergone my ordeal last winter. The following is the text of an email I just sent someone who'd flown 3000 miles to my bedside, telling him about my reunion with the angels who rescued me.\n- - - - - - - - - - - - - - -\nDon't know if this would interest you at all, but:\nYesterday, I was at [name of hospital]. And I decided to do something while there that I'd thought many times of doing: I went back to all the wards/units where I had been a patient last winter, to see them from the eyes of health, the rooms I'd lain in, and to perhaps thank some of the really outstanding people who had taken care of me. I had the distinct sense that they very, very rarely see the positive results of their dedication - their former patients IRL, walking around in street clothes, with wind in their sails.\nFirst stop: The ICU. I thought of you as I entered its door, imagined you coming in and passing these places, as I had never seen the door myself; I had never seen that front desk. And there was my little alcove/room, just to the left. The whole ICU looked much, much smaller and more crowded than it had felt/appeared to me from my horizontal position on that bed. I instantly remembered nurses I saw there yesterday ---- remembered their names, which blew their minds. There were even hugs and tears - they couldn't believe I looked so good, and they were genuinely grateful I'd come back: It did a LOT for their morale. I specifically asked for Katy, who had been in touch with you by phone. I wanted to thank her for her hand-holding care of me when I was first admitted there, put on the oscillating ventilation. (I don't think you saw that set-up; for hours I was strapped into a jerking/bouncing/vibrating chest-wrapped thing to jostle my ribcage while the oxygen was blasting in through the mask - Katy explained it was to loosen the \"cement\"-like \"fluid\" that had filled my lungs.) It was really hellish, but Katy sat there with me, while I begged her to stop it, and she'd say, \"Okay, fine. You want us to intubate you? Because if I turn this off, we have no choice.\"\nYou know what came back to me?\nAnd this is really why I'm writing this to you.\nShe was the one who came in and said, \"______ is coming from New York. I've spoken to him. His plane arrives at 2 in the afternoon.\"\nSo help me, I looked at that clock every several minutes and calculated where in the American skies you were. It was critical to me, somehow, to hang on to that while the waves of wind smacked me in the throat and the vest jostled me hard. I remembered that yesterday. I remembered a lot of things, and, you know? It was psychologically a very healthy thing to have gone back there. I had read on the Internet that that's the case for many, many who spend extended time in Intensive Care through an Emergency admission.\nAnyway, I left a note for Katy yesterday (because she's a Night Nurse and wasn't there), on a special \"Recognition\" card, which they post in their little staff rest area, and everybody looks. Apparently this is a Major Highlight of their work. These ICU angels of mercy are in the business of saving lives, and while they get monetary rewards, their souls really do crave just this sort of recognition. Many of their patients don't recover. The few who come back and show their/our faces, healthy, REALLY encourage them.\nAfter I left there, I did the same at the TICU and the regular ward. I was remembered, and I remembered the names, too! I recognized-in-writing two more absent nurses in the TICU, and followed up with a couple of nurses on the regular ward. One was a male French nurse with whom I had communicated in French when I was first admitted to the regular Medical ward for observation. \"You were just coughing and coughing and coughing,\" he said yesterday. He didn't know - so I told him - that I later went Critical and was transferred to the ICU and was in the hospital another 12 days after he last saw me.\nIt was a very rich experience for me and gave me a certain amount of closure. I have very, very warm feelings for those people and was told that the nurses I recognized in writing would be thereby recognized by their departments and supervisors. The least I could do.\nAnd, of course, I have warm feelings and deep gratitude for you. You really gave me something priceless by flying out here when you did. The plane was cramped, the ICU was cramped, it wasn't fun, and you must have been scared until I stabilized.\nWhat more can I say?\nLove and hugs."} +{"text": "Love cheat MPs on 'suicide watch' as expense claims threaten to expose affairs\nJacqui Smith's expenses claims have already caused controversy and Labour whips are braced for more lurid revelations\nThree Labour MPs are said to be terrified that the release of their expenses claims will expose them as adulterers and financial cheats.\nFour ministers are also understood to have warned party whips they might have to resign for abusing the system, when MPs' receipts are published before the summer recess in July.\nThe three unnamed backbenchers are said to have been placed on 'suicide watch' by Labour whips, who fear they might break down when the details of their excesses come out.\nTwo are understood to have had extra-marital affairs with other members of Parliament.\nNot only are they believed to have shared hotel rooms during annual conference get-togethers and party away days but also to have double-claimed for the rooms on their expenses.\nIf both MPs have claimed for the bill they will be branded frauds as well as love cheats when journalists and freedom of information campaigners sift through their receipts.\nThe third backbencher is said to have made 'grotesque' financial claims.\nA Commons source told the Mail: 'The whips have three Labour MPs on suicide watch. That's how serious this scandal is. The whips believe they might kill themselves.'\nIn a reference to Home Secretary Jacqui Smith, who tried to claim everything from minor household items and the kitchen sink to her husband's pornography on expenses, the source said: 'If claiming for bath plugs and patio heaters and porn is not a resigning matter, you know that it's something grotesquely awful to consider killing themselves.\n'The mind boggles.'\nThe Mail understands that Labour whips are prepared to step in to arrange secret counselling for the MPs.\nOther Labour MPs who are believed to be fearful of exposure include the member who got taxpayers to pay for four plasma screen televisions in as many years and several members who have charged expensive helicopter rides to the public purse.\nThe revelations came as Gordon Brown tried to salvage his planned overhaul of the expenses system.\nMPs will vote today on measures to prevent ministers with grace and favour properties from claiming for their second homes and to force MPs to submit receipts and make a full disclosure of their outside incomes.\nOther measures include moves to ensure Parliamentary staff are employed by Commons authorities, not MPs themselves.\nMr Brown has already dropped plans to pay MPs a daily allowance merely for turning up to work.\nNow, with his authority dwindling, the Prime Minister is facing the prospect of needing Tory support to push through his measures.\nHe has been warned by his chief whip Nick Brown that he is struggling to get the support of many Labour backbenchers, who want no change to the gravy train expenses system.\nThe Prime Minister used Question Time in the Commons to appeal for support.\n'In the last week we have made more progress than we have made for many years,' he claimed before demanding that greedy MPs 'show some humility'.\nHe added: 'I think the whole country wants us to take action that is necessary to clean up any problems and any abuses that exist in our system.'\nA senior Downing Street source said: 'There are basically two camps - those who want reform now and those that don't.\n'MPs have to understand that there is great public anger out there and we need to act now.'\nBut dozens of Labour MPs are opposed to the measures to move staff on to new contracts and many want all reforms delayed until the Committee on Standards in Public Life, chaired by Sir Christopher Kelly, has drawn up a comprehensive plan for new allowances later in the year.\nThose who want no change now have been given a shroud of legitimacy by the decision of the cross party Standards and Privileges Committee to call for delay.\nLabour committee member Kevin Barron said: 'While there is some merit in what the Government is saying, there is no consensus on it at all.\n'If we can't get consensus on it we are not going to look very good.'\nThe Tory front bench is prepared to support the measures if they explicitly rule out a revival of the per diem allowance idea.\nBut with factions of MPs manoeuvring for concessions, the situation was described as a 'dog's breakfast' by one party tactician.\nAsked how the vote would turn out, the Prime Minister's official spokesman said: 'Your guess is as good as mine.'"} +{"text": "'You're going to HATE the way you look. I guarantee it!' Heavy metal rocker's rant about Men's Wearhouse hits chord with Facebook fans\n- Megadeth's Dave Mustaine blitzes discount clothing chain with unlikely Internet post\n- Tells fans, 'I wouldn't step foot in one even for shelter from a blizzard.'\n- Shopped in Salt Lake City, Utah M.W., claims purchases were never delivered\n- Implores fans to, 'Go to JoS A. Bank, instead'\n- Ironically invokes chain's slogan, 'I guarantee it,' in post\n- Facebook message liked 8,900 times and shared 600 times\n- Store rep apologizes to rock star, promises delivery\nThey are renown for their doom-laden lyrics about Satan and slaughter.\nNow the rock band Megadeth's front man is speaking out about something else close to his heart - the delivery policy at Men’s Wearhouse.\nAngry (Front)man: Megadeth singer Dave Mustaine (pictured) penned a Facebook-borne tirade that is making the rounds on the Internet\nMustaine's rant concerns Men's Wearhouse's failure make good on its advertised two-day delivery policy\nTardy X-Mas Gift: M.W. apparently was still yet to deliver a gift card Mustaine bought at a Salt Lake City, Utah shop nine days after he purchased it\nI Guarantee It: Mustaine ironically quotes Men's Warehouse's slogan in his Internet diatribe concerning the chain's failure to live up to a two-day delivery policy\nSinger Dave Mustaine took to Facebook to lambast the suit chain for failing to make good on its promise of a two-day delivery.\nHe ordered a gift card for his tour manager, but when it failed to arrive he went online to rant.\nMustaine wrote: ‘I really think that it sucks when people make false claims, that they don't care to make good on a problem that is clearly their fault, and with all of the 'ABSOLUTELY GUARANTEE IT' crap I just had to say something.'\nMustaine bought the gift card at a Men’s Wearhouse in Salt Lake City, Utah, before Christmas as a gift for his tour manager Jim Carroccio, but nine days later it still had not turned up in the post.\nMustaine wrote: ‘I know that not all of you have the kind of job that requires a suit, or wear a suit when you (if you) go to any kind of faith-based service, court date, wedding or funeral, but if you do…you are going to want to read this.\n‘You know me, I don’t complain much in writing, but I gotta get this off my chest.’\nIn the Facebook post Mustaine added that when he called up Men’s Wearhouse they made no effort whatsoever for this mix-up’.\nHe wrote: ‘We are all living in very tight financial times right now, and like I said, you may not wear a suit for your job or for an event or occasion, but if you do, I would strongly recommend you wear someone else’s suits.\n‘Go to Jos. A Bank instead. I for one, will never set foot in a Men’s Wearhouse, even for shelter from a blizzard.’\nIn a sign that thrash metal fans clearly value their customer service, Mustaine’s post was liked 8,900 times and shared 600 times.\nMost fans were behind Mustaine but some thought that his interest in suits was somewhat at odds with his public image.\nWhere's My Gift?: Mustaine purchased the gift card from Men's Wearhouse as a Christmas gift for his tour manager, JimCarroccio (pictured)\nA Suggested Alternative: Mustaine told his legions of fans to not only eschew Men's Wearhouse, but shop instead at its competitor, JoS. A. Bank\nFan Ralph Hannaberry wrote: ‘I think Dave should do a nationwide tour and play in front of every Mens Warehouse outlet in America complete with headbanging groupies and Justin Bieber as an opening act just to annoy the crap out of the establishment!’\nRocker Adam Cirucci wrote: ‘Dude, i have to say you are 100 percent RIGHT ON....MENS WEARHOUSE sucks terribly.\n‘Got my tuxes for my wedding there. They never cleaned mine and I ended up smelling like p*** on my wedding day’\nMegdeth's Mustaine was once a member of Metallica, but was ejected from the popular band because he threw a punch at its front man, James Hattfield\nMegadeth fan Aprillynn Danzig Devila added: ‘HAPPY 2013 YEAR TO YOU DAVE!!!! LOL F*** THE SUITS JUST BROOM STICKS AND WITCHES BREW!!’\nMustaine is known for his strong views and was kicked out of Metallica in 1983 for punching bandmate James Hetfield.\nA Men’s Wearhouse staff member eventually wrote to him on Facebook and promised to make amends.\nThe staff member, called Joe wrote: ‘Dave, thanks for reaching reaching out to us on Facebook.\n‘We apologize for the delay in receiving your gift card and agree that the delay is unacceptable.’"} +{"text": "Wigan 4 Newcastle 0: Martinez men show touch of Cruyff to crush Toon's orange army\nAs far as Wigan are concerned, the bigger they come, the harder they fall. Having seen off Manchester United, Arsenal and Liverpool as they fight off relegation, Roberto Martinez's battlers ripped apart in-form Newcastle.\nNewcastle, clad in orange, arrived having won six games on the trot to dream of the Champions League.\nSurvivors: Wigan celebrate Franco di Santo's goal\nWIGAN: Al Hansi, Alcaraz, Caldwell, Figueroa, Boyce, McArthur, McCarthy, Beausejour, Maloney, Di Sando (Sammon 68), Moses (Gomez 83). Unused subs: Pollitt, Crusat, Jones, Rodallega, Diame.\nGoals: Moses 13, 15, Maloney 36, Di Santo 45.\nBooked: Alcaraz, McCarthy\nNEWCASTLE: Krul, Simpson (Perch 81), Williamson, Coloccini, Santon, Cabaye (Fergison 83), Tiote, Guitierrez, Ben Arfa (Taylor 73), Cisse, Ba. Unused subs: Elliot, Gosling, Best, Ameobi.\nReferee: Mike Dean\nThey left with the same sinking feeling experienced by Sir Alex Ferguson and United after a shock 1-0 defeat at the DW Stadium this month. Wigan played their highflying visitors off the park.\nNewcastle's shirts looked like Holland but it was Wigan who played like the Dutch - a source of pride for Martinez, whose managerial hero is Johan Cruyff.\nIt is to Martinez's credit that he believes the group of players he has at Wigan can replicate the style of Cruyff's Barcelona, the team he most admired as a boy in Spain.\nTo do so in a relegation battle makes his achievement more remarkable. Wigan scored four times in the opening 45 minutes and Newcastle were unable to cope with their slick passing and wing-backs.\nNet profit: Newcastle's keeper Tim Krul looks on as Victor Moses's header sails past him\n'We didn't match their intensity. That's going to make you look bad in the Premier League,' said Newcastle boss Alan Pardew, who watched aghast as Victor Moses (two), Shaun Maloney and Franco di Santo scored.\n'We said in the dressing room we'd not be complacent but we got caught out. We failed as a team. Sometimes when you've won six on the trot you can come away from home and think \"We will win here today\". But this result will put a shock into the players.\nPromised land: Moses fires home his second\nMartinez's team, odds-on for relegation not so long ago, are three points clear of danger with games against struggling Blackburn and Wolves to come.\n'We showed a clinical touch in front of goal, which hasn't always been the case,' said their manager.\n'The movement off the ball was a joy to watch. Victor Moses was a joy to watch. He's the type of player you pay to watch. We lost eight games in a row this season. It would have finished a lot of teams off but this group didn't feel sorry for themselves. We've experience of relegation battles and that has helped.\n'Sometimes you have more time on the ball against top teams. We have shown we can be competitive against anyone.'\nWigan have been in the top flight since 2005 and will surely extend their stay now.\nIt's in our hands: Wigan keeper Ali Al Habsi knows the score\nFor Newcastle, it will be tough to qualify for the Champions League.\nThey will lose fourth spot if Spurs beat Blackburn today, and Chelsea and Manchester City are next up. But Pardew said: 'Champions League football isn't away from us by any stretch of the imagination.'\nPardew is a methodical thinker and tactically astute, but he failed to stop Wigan. Martinez played 3-5-2 and wing-backs Emerson Boyce and Joey Beausejour marauded down the flanks untroubled. It was no coincidence they set up the first two goals, both converted by Moses.\nShoot to thrill: Di Santo dances with delight after scoring for Wigan\nBy the time Pardew changed formation to match Wigan in midfield, the visitors were 2-0 down. Wigan duly added two more before the interval, at which stage Pardew reverted to Plan A.\nBut there was no chance of a comeback despite an improved second half which saw Papiss Cisse, who had scored in his previous six games, twice hit the woodwork.\nThat ruffled feeling: Newcastle United manager Alan Pardew given plenty to think about\nWith Blackburn boss Steve Kean looking on glumly, Wigan took the lead. Boyce crossed for Moses to head in despite conceding height to marker Mike Williamson.\nShortly after, Beausejour's cross was feebly cleared by Fabricio Coloccini to Moses, who steered the ball in.\nNewcastle shifted to three centrebacks but it made no difference. A first-time ball from Di Santo allowed Maloney to run inside Danny Simpson to make it 3-0.\nNobody closed Di Santo down on the stroke of half-time and the striker pinged a superb finish from 20 yards into the top corner for Wigan's fourth.\nKrul fooled: Conor Sammon fires past the Newcastle keeper"} +{"text": "Children returning to classes across Connecticut Monday will see uniformed police officers in and around their schools as officials grapple with how to handle concerned parents and anxious students following the massacre Friday at Sandy Hook Elementary School in Newtown.\nSchool administrators over the weekend posted on school district websites instructional videos and psychologists' tips on how to talk to their children about violence in anticipation of what's expected to be a tough day for many schools and their students.\nOfficials said they hope the increased police patrols and heightened safety awareness will not raise the anxiety of children already struggling with details they may know about the killings.\n\"I know Friday was one of the toughest for school superintendents, the worst nightmare any of us could fathom,\" Cheshire Schools Superintendent Greg J. Florio said Sunday. He said he expects Monday to be just as rough, similar to the day children first returned to school after the Sept. 11 terrorist attacks.\n\"It's kind of a fine balance we have to keep,\" Florio said. \"You know that people are aware of the situation but you want to have as much of a sense of normalcy as you can.\"\nBy the time the school bell rings Monday morning, some school staff members will already have met to discuss security and other issues related to Friday's shooting. Other meetings took place over the weekend and included input from parents and residents without students.\nStudents at several schools will see police officers during the morning drop-off and at other times during the school day.\n\"Police are a visible presence throughout the year but will be especially so next week,\" Canton Superintendent of Schools Kevin Case said Sunday. Patrol cars will be parked in front of the three school buildings and officers will be inside.\nFlorio said the police presence is for \"self-assurance\" for students who may be anxious about the safety of their school.\n\"We'll obviously be paying extra attention to security [this week], making sure everything is as safe as possible,\" said Tom Moore, West Hartford's assistant superintendent for administration.\nMoore said there will not be police officers in schools that don't normally have them, but \"people will probably notice extra patrols\" in school areas.\nGrief counselors are ready in most schools to talk with students who need to talk about the tragedy, administrators said.\n\"We think there are going to be a lot of people needing support,\" Windsor Superintendent of Schools Jeffrey Villar said Sunday. The district's crisis intervention team is ready, Villar said, to assist families and students as needed.\nFlorio said teachers are not going to try to explain what happened \"in any greater depth\" than what they have learned at home but will be ready to get students with concerns any help they may need. Florio said he has even instructed the district's school bus drivers \"not to say anything inappropriate\" related to the shooting.\nWallingford Superintendent Salvatore Menzo said schools are not planning to discuss the shooting in classes. However, he said, Wallingford teachers will be ready if the conversation comes up and will approach any discussion based on a student's developmental level.\nWhile there is not going to be an acknowledgment of the shooting for the district's younger students, Menzo said he does plan to memorialize the slain Newtown children with students in grades 6 through 12. On Monday, the older children will observe a moment of silence in their memory.\nIn the coming weeks, schools will be reviewing their safety policies as well as going over emergency drills.\nVillar said he was also planning to meet with police and building principals on Wednesday to review the district's crisis plan.\n\"It's a good plan but there's always something you can learn from these things,\" Villar said.\nNowhere will the attention to safety be greater than in Monroe. The town's Chalk Hill School will be used for Sandy Hook Elementary School students, Monroe Superintendent James Agostine said Sunday.\nAgostine said he is not sure when Sandy Hook students will arrive, but said his district is already getting the school ready for them.\n\"We are happy to assist in some way,\" Agostine said.\nMonroe school officials must reassure parents, staff and students that Monroe's schools are safe, he said. They must also prepare to reopen Chalk Hill School, a middle school that closed almost two years ago.\nWhen Monroe school officials learned Friday of the shooting in Newtown, the district followed lockdown procedures. Some elements of a lockdown will remain in place on Monday, Agostine said. There will be limited access to school buildings and a police officer will be stationed at every school, he said.\n\"We want to reassure staff and students that they are secure,\" Agostine said.\nAgostine added that counselors will be available for anyone who needs help. Building principals will meet with their staff members early Monday to talk about the shooting, and Agostine said classroom teachers know how to talk to their students about the situation.\nAgostine said letters about the shooting and the precautions the district is taking were sent to parents this past weekend."} +{"text": "Sprint Unveils Pricey Pay-As-You-Go Plan\nJanuary 3, 2013 5:15 PM\ncomment(s) - last by\nPlan comes up short compared to Boost or Virgin\nIn a strange scenario, Sprint Nextel Corp. (\n) has decided to offer its own branded pay-as-you-go service. Takers on the new plan -- which kicks off Jan. 25 -- will have to pony up $250 USD for a Galaxy S (the \"Victory\" from Samsung Electronics Comp., Ltd. (\n)) or $150 USD for an entry level Android, LG Electronics, Inc.'s (\n) \"Elite\". None of the high-end contract handsets can be used with the new plan.\nIf the hardware/hardware pricing is a bit of a turn-off, the monthly fees won't make you much happier. It will cost $70 USD/month to get unlimited talk/text/web. Or if you want you can pay as little as $50 USD to get a feature phone, which comes with a $50 USD/month \"unlimited\" plan, with the built in limitation of having inherently limited internet capabilities.\nWorst of all, there's no mention of roaming on EVDO, so\nthat you may be hit with fees that eat up your account payments, when using the device in areas where the Sprint network is dead or weak.\nSprint's pricing on its self-branding PAYG plan isn't great. [Image Source: Android Police]\nThe truly curious part is that Sprint is offering up an inferior deal to ... itself.\nVirgin Mobile USA\noffers the same LG Elite handset for $80 and a $55 USD \"unlimited\" monthly fee. In other words, if you go with Sprint's branded service you will lose approximately $430 USD over a 2-year period. Virgin customers also get for a mere $150 USD, a far fancier EVO V 4G from HTC Corp. (\n), a modified variant of the EVO 3D.\nThere's concern the plan may not include 2G roaming. [Image Source: Android Police]\nthere's Boost Mobile\n, the other prepaid player -- also owned by Sprint. Boost offers the Samsung Galaxy Rush (another Galaxy S variant) for $149 USD ($100 USD less than Sprint), an LG Venice (aka Optimus L7) for $220 USD, or a Warp Sequent by ZTE Corp. (\n) for $200 USD. While throttled after 2.5 GB of data use, Boost also offers \"unlimited\" for $55 USD/month.\nAnd then there are upstart providers like Republic Wireless who offer even\nservices albeit with slower connection speeds. For example Republic sells the Motorola Mobility DEFY XT for $249 USD, but then only charges you $19 USD/month for \"unlimited\" access, thanks to a hybrid system using 3G roaming and Wi-Fi (when available).\nIn other words, Sprint's service appears to offer few (perhaps no data caps?) if any advantages at this point over its\nprepaid brands, let alone over rival offerings that adopt more unusual service models.\nThis article is over a month old, voting and posting comments is disabled\nIt may be a bit outlandish...\n1/4/2013 3:55:58 PM\n... but they are probably just testing the waters and getting this straightened out without risking the consumer base of Virgin Mobile.\nIt could be that they are deciding to do away with Virgin Mobile USA but not wanting to sacrifice the consumer base until they have the house built to put them.\n\"We don't know how to make a $500 computer that's not a piece of junk.\" -- Apple CEO Steve Jobs\nVirgin Mobile to Offer Prepaid iPhone Starting June 29\nJune 7, 2012, 9:50 AM\nBoost Mobile Introduces $50 Unlimited Voice, Data Plans\nJanuary 16, 2009, 7:46 AM\nRetiree Sues Apple For $7,500 for Wiping Honeymoon Photos From His iPhone\nNovember 30, 2015, 10:23 AM\niPhone 7 May Pack 3-4 GB Memory, More Storage; 4-Inch Comeback is Rumored\nNovember 20, 2015, 10:12 PM\nOnePlus One, OnePlus 2 Will Receive Android Marshmallow in Q1 2016\nNovember 16, 2015, 9:58 AM\nLenovo Whoa: Motorola Droid MAXX 2 and Turbo 2 Break Cover in Leaks\nOctober 26, 2015, 3:12 PM\nLeak: Apple Preps for First Real Android App Foray With New Apple Music App\nOctober 24, 2015, 1:59 PM\nPepsi Smartphone? Empty Calories Coming Soon to the Midrange\nOctober 12, 2015, 11:41 PM\nLatest Blog Posts\nSceptre Airs 27\", 120 Hz. 1080p Monitor/HDTV w/ 5 ms Response Time for $220\nDec 3, 2014, 10:32 PM\nCostco Gives Employees Thanksgiving Off; Wal-Mart Leads \"Black Thursday\" Charge\nOct 29, 2014, 9:57 PM\n\"Bear Selfies\" Fad Could Turn Deadly, Warn Nevada Wildlife Officials\nOct 28, 2014, 12:00 PM\nThe Surface Mini That Was Never Released Gets \"Hands On\" Treatment\nSep 26, 2014, 8:22 AM\nISIS Imposes Ban on Teaching Evolution in Iraq\nSep 17, 2014, 5:22 PM\nMore Blog Posts\nCopyright 2016 DailyTech LLC. -\nTerms, Conditions & Privacy Information"} +{"text": "Kras gene triggers metabolic changes that fuel cancer cells\nResearchers at Dana-Farber Cancer Institute have shown that advanced pancreatic cancers in mice can't survive without continued expression of a mutant oncogene that \"rewires\" key metabolic pathways to fuel the cancer cells.\nThe findings, published in the April 27 issue of the journal Cell, suggest that some of these altered metabolic pathways might be potential targets for future drugs to treat the deadly cancer.\nThe investigators report that when they experimentally shut down the expression of the Kras oncogene in mice, the pancreatic tumors rapidly shrank, and, in some cases, left no visible signs of cancer. This outcome, they said, provides evidence that advanced pancreatic cancers are \"addicted\" to the Kras oncogene for their continued growth.\n\"This experiment allowed us to demonstrate that pancreatic cancers in their native setting are dependent on continued oncogenic Kras expression for tumor maintenance,\" says Alec Kimmelman, MD, PhD, co-corresponding author of the report along with Ronald DePinho, MD, formerly at Dana-Farber and now at M.D. Anderson Cancer Center in Houston.\nKimmelman said they also discovered that oncogenic Kras \"basically reprograms the glucose metabolism of the cell by regulating the expression of key metabolic enzymes, some of which might provide novel therapeutic targets.\" If that is the case, then attacking these pathways might be more feasible than attempting to block Kras directly, since Kras has proven frustratingly difficult to hit with designer drugs.\nIt is estimated that pancreatic ductal adenocarcinoma will be diagnosed in more than 43,000 people in the United States in 2012, according to the American Cancer Society, and more than 37,300 will die from the disease, which has a 5-year survival rate of only 5 percent.\nIt has been known that the Kras oncogene is an important driver of pancreatic cancer, unleashing chaotic proliferation of cancer cells, but a key question remained as to whether cancer cells that developed spontaneously in the pancreas needed Kras to survive.\nTo clarify this point, Kimmelman and colleagues created a genetically engineered mouse model in which the mutant Kras gene in the pancreas could be turned on and off at will through dietary manipulation. In addition, the tumor suppressor gene p53 was \"knocked out\" to model the loss of p53 that occurs in pancreatic cancer.\nNext, the scientists removed an antibiotic from some of the rodents' feed, which inactivated the Kras oncogene. Scans and histology showed tumors beginning to shrink within two or three days and were diminished by an average of 50 percent after a week. PET scans revealed that the remaining tumors were no longer consuming glucose, meaning they were inactive. In addition, malignant changes in the tumors' tissue environment caused by the Kras oncogene had been reversed.\nIn collaboration with the laboratory of Lewis Cantley, PhD, of Beth Israel Deaconess Medical Center, the investigators then determined how Kras oncogene activity enabled the tumors to survive and grow. \"We found that Kras is regulating glucose metabolism in pancreatic cancer,\" Kimmelman says.\nThe researchers showed that the oncogene – which regulates the activity of multiple genes in cells – \"reprogrammed\" gene pathways that are involved in utilizing and processing glucose, which serves as fuel for cells. For example, experiments revealed that Kras activity shunted glucose building blocks into a pathway called the non-oxidative pentose phosphate pathway (PPP) – a previously unknown connection. Importantly, suppressing these key metabolic enzymes regulated by Kras resulted in a significant impairment of tumor growth.\n\"These results suggest that it may be possible to attack tumors by inhibiting some of these enzymes,\" Kimmelman explains, though he cautions that it remains to be seen whether the enzymes can be reduced without having unwanted effects on the body.\nStill, this research may ultimately yield new avenues for treating various cancers that are driven by the hard-to-target Kras oncogene.\nKimmelman is co-first author of the report, along with Haoqiang Ying, MD, PhD, of the DePinho lab, and Costas Lyssiotis, PhD, from the Cantley lab. The research was supported by grants from the National Institutes of Health."} +{"text": "No, I will not let a \"Dancing with the Stars\" finale breakdown -- no matter how accurate my predictions have been or how relevant it is to sports fans -- stay up here for the afternoon.\nInstead, I will attempt to wade into the new college basketball season.\nToday's topic? Final Four picks.\nThat meant the Gators would return all five starters from a national championship team -- plus the key frontcourt and key backcourt reserve. Keeping count? That's the Top 7 back on a defending champ.\nThe frontcourt of Noah, Horford and Brewer -- all NBA Lottery-quality picks -- is arguably the best in college hoops in the last 25 years. I've been racking my brain for another contender, and the best I could do is the Fab Five's Webber-Howard-Rose/Jackson. But those guys never won a title. (Got any other nominees? Augmon-LJ-Ackles? Remember: To win the argument, your pick really should have NBA-level talent across the line AND a championship.)\nMany top college teams have a quality inside player. Hansbrough at UNC, Wright at\nBut how many have TWO? (In hindsight, that was one reason LSU emerged last season: The tandem of Davis and Tyrus Thomas was unstoppable.) Two that are as athletic or multi-skilled as Noah and Horford.\nI go through the other contenders, and I can't find a team that can match up – player for player – with the Gators, across the starting five and first subs off the bench. (And that's BEFORE I layer in the championship experience, where the Gators have a vast advantage over every other contender.)\nHere's the other reason to like Florida, even if you would otherwise be inclined to hate them: In this era where you can't go a season without complaining about players -- yours or simply the national \"stars\" -- leaving for the NBA early, isn't it unprecedentedly refreshing to see three players forego the NBA (Lottery, mind you) for a chance to repeat as college champs? How can you begrudge that? (Especially if you consider yourself a college hoops \"traditionalist.\") How can you not root for that?\n(What: Instead you'll stand behind UNC, whose title team stars from 2005 chose to leave en masse for the NBA? These Gators have shamed that UNC team and set a new example for future college stars that ultimately can do more for college hoops than any artificial NBA draft age-limit or high school \"developmental\" program. Again: They have made it easy to root for them, even if you reflexively hate Florida or reflexively hate defending champions. I'll settle for intensely begrudging respect.)\nSo, anyway, I think it's the Gators to win the title, and everyone else is playing for the chance to round out the Final Four.\n(If I had a hesitation, it's that the Gators started last season unranked, showing you how much the \"experts\" know. And even heading into the Tournament, they weren't given much of a shot. If that isn't a cautionary tale about making predictions, I don't know what is.)\nWho is this year's\nUNC? Balancing too many sick freshmen with sophs who are probably more mentally ready to contribute in March. Of course, these sophs were the same losers who lost to a vastly less talented George Mason team. Motivation or foreshadowing?\nPitt? Please. Aaron Gray? There's a reason he pulled out of the NBA Draft. UCLA? Final Four experience, but not without steady PG Jordan Farmar. LSU? Smacks of a \"dream run\" one-year wonder a year ago.\nBut as we continue down the Top 10, I see two teams that I like to do damage in March:\nGeorgetown, the only team to give Florida a game in last season's NCAA Tournament (and knowing precisely what it takes to beat them), and Wisconsin, another team that plays deliberately enough to keep them in most games, particularly in March. (Plus, they have one of the Top 10 players in the country in Alando Tucker, who makes my first-team All-America list. That's coming later this week.)\nMy fourth Final Four team? I want to say\nMy pick: Georgia Tech, which combines a sick freshman class (\"Fab Three?\" Eh. Needs work.) with enough upper-class experience to reverse last season's 11-17 record into a dramatic March run. (Now, please don't blitz me for being internally consistent in touting GA Tech's youth but discounting the same factors for UNC.)\nRest of Final Four:\nComments Question: Who's your pick to win the college hoops national title? Who else is in your Final Four? Which team aren't we talking about that we SHOULD be? Which darkhorse team could be this year's"} +{"text": "WASHINGTON -- Tamerlan Tsarnaev, the older of the two brothers accused in the deadly Boston Marathon bombings, was influenced by a mentor who espoused radical Islamist beliefs, according to one of the suspects' uncles.\nTsarnaev, 26, became acquainted with the mentor, an Armenian convert to Islam known as Misha, as early as 2007 while living in Cambridge, Mass., according to the uncle, Ruslan Tsarni. Tsarni described his now-deceased nephew's shift toward fundamentalist Muslim beliefs.\n\"He said, 'I'm now doing bigger things, Inshallah,' something like that,\" Tsarni said yesterday in an interview at his home in a Washington suburb, recalling a 2009 conversation with Tamerlan.\nAuthorities investigating the April 15 blasts are trying to determine a motive and examining whether the accused bombers had any support. Dzhokhar Tsarnaev, 19, Tamerlan's brother, has communicated to investigators that the pair acted alone in the attack, which killed three people and injured more than 260.\nTamerlan Tsarnaev, who was killed in a gun battle with police on April 19 hours before his brother's capture, spent six months in Russia last year, visiting the republics of Dagestan and Chechnya, which have been roiled by Islamic separatist movements. U.S. investigators traveled Tuesday to the capital of Dagestan to interview the parents of the suspected bombers, an American Embassy official in Moscow said, speaking on condition of anonymity in line with official policy.\nRuslan Tsarni said he'd never known his nephews to take much of an interest in religion, so when he reconnected with Tamerlan in 2009 after a family falling out a few years earlier, the young man's rhetoric about Islam left him uneasy. He said he learned more about Misha only recently, in talking with the ex- husband of one of the brothers' two sisters.\nAt the time of the 2009 conversation, Tsarni said, he didn't think his nephew posed a threat. He thought Tamerlan was acting like a disaffected young man struggling to assimilate in American society and unwilling to stick with college or start a career.\n\"Radicalized?\" Tsarni said. \"He sounded like a jerk, a person who didn't want to work. Hiding behind words.\"\nTsarni said his relationship with his brother, Anzor -- the suspects' father -- was strained several years ago, largely because of tensions with Anzor's wife, Zubeidat. He said that he had a falling out with Tamerlan after urging his nephew to stand up to his mother.\nIn an interview with CNN yesterday, Zubeidat Tsarnaev said her sons were being \"killed just because they're Muslims\" and that they were being framed in the bombing case.\nDzhokhar Tsarnaev faces federal charges that include using a weapon of mass destruction that resulted in death. He may face the death penalty if convicted.\nTsarni said the suspects' former brother-in-law, Elmirza Khozhugov, told him that the Islamist mentor Misha, who would be in his mid-30s now and was affiliated with a local mosque, had often preached in the family's home and claimed to be an exorcist. Khozhugov didn't respond to an email sent to an address provided by Tsarni.\nFederal investigators believe Tamerlan may have learned how to build the devices by reading jihadist websites, including an online magazine affiliated with al-Qaida called Inspire, according to an official briefed on the investigation who asked not to be identified because of government policy.\nTamerlan, described as a talented piano player, abandoned plans to study music at an arts college, Tsarni said, because Misha told him that such a pursuit wasn't in the spirit of Islam. Tamerlan, a two-time New England Golden Gloves champion, also stopped boxing and became engaged in community work at Misha's direction, Tsarni said.\n\"He was pretty much occupied with this guy,\" Tsarni said, adding that he doesn't know the man's full identity. Efforts by Bloomberg reporters to track down Misha in the Boston area failed.\nOver the same period of time, Zubeidat shifted her dress from Western clothes to wearing a hijab, a head covering worn by some Muslim womenTsarni said. He first noticed the change in pictures of her in 2007 and then saw her in person in 2009 in Almaty, Kazakhstan.\n\"Where was that coming from?\" Tsarni said. \"It was a tremendous change.\" He said he thinks his brother and his wife moved back to Dagestan from Massachusetts within the last year although he learned about their move after the fact.\nTsarni said it wasn't until after the Boston Marathon bombings that he began to piece together the possible influence that Misha, and the suspects' mother, might have had on his nephew's views.\nAnother of Tamerlan's uncles is in Massachusetts, preparing to make burial arrangements once authorities release his dead nephew's body, Tsarni said.\nTsarni said he's received almost two dozen letters written by people from across the U.S. in response to an impromptu news briefing he gave April 19, in which he professed his love for America, denounced his suspect-nephews as \"losers\" and urged the younger of the pair to surrender.\n\"You may get 'hate mail,' so please consider this 'love mail,' \" read one letter, from Colorado Springs, Colo., that Tsarni showed to a reporter. \"Thank you for your courage in coming forward.\"\n_ With assistance from Henry Meyer in Moscow."} +{"text": "In the discussion thread: Don't You Just Love It when a Poster announces in Open Forum that [View all]\nResponse to Tuesday Afternoon (Original post)\nFri Sep 21, 2012, 09:31 PM\nMiddleFingerMom (25,163 posts)\n29. I never tell people how many people have me on ignore because they would just think I'm bragging.\nLast edited Sat Sep 22, 2012, 03:27 AM - Edit history (1)\nI'm not an insufferable ass (at least not a BIG one), though I don't suffer bullies gladly. So I think\nthe folks ignoring me because of my attitude are minimal.\nSome don't like my subject matter or approaches to it. That's OK -- I don't want to force anyone\nto view my posts.\nI think most don't like my \"dots\" nor my style of presentation. I use lots of physical space in a kind\nof text/not-text fashion. I've always found this easier for ME to focus on material by others, so I\nUSE that technique in my posts, too.\nSome used to accuse me of \"spamming\". I can't understand what kind of spamming they're talking\nabout and they would NEVER get specific when asked -- I think someone may have said I \"spammed\"\nand then the others would repeat that, but be embarrassed when they realized that their justification\nwas, \"Well... BOBBY said so.\" The closest I could come to it is my habit of posting all at once rather\nthan one at a time over an extended period of time (6 at a time max and not the traditional six \"same\"\nposts that one usually associates with spamming -- but six distinct and independent posts). Even\nwhen someone just posts \"x\" over and over, DU's spam filter (I don't know if it's still in existence)\nwouldn't kick in 'til after a dozen or more posts.\nThe dots that I use -- people would declare them annoying... even obnoxious or \"maddening\". There\nwere more than a few folks (many of them would show up together) who put a lot of pressure on me\nto change my style. Even if it were not there, that would raise questions, but ESPECIALLY with the\nIgnore function present, this was much more an example of control issues on their part than the\ninescapable \"torture\" that I \"subjected\" them to.\nI can see many valid reasons why people would put someone on ignore, but the announcement of\nputting someone on ignore reminds me of gradeschool playground behavior -- covering one's ears\nwith one's hands and chanting \"LA LA LA LA I CAN'T HEAR YOU LA LA LA LA\"!!!\nIt's a little weird and a lot funny. I think the last time it happened my response was \"I miss you\nalready\". It's kind of a Schrodinger's Cat conundrum -- \"If I don't see a responsed from them, do\nthey have me on ignore or not?\"\nAnd while whether a cat is dead or not would concern me, being on Ignore or not does not.\nI don't believe I've ever put anyone on ignore (though that might not be the case if I were to\nspend more time in Meta or GD or certain other groups where obnoxious and/or bullying behavior\nseems to be a norm). I find myself thoroughly capable of ignoring someone whose posts I've found\nto be distasteful without any kind of tool needed.\nPerhaps SOME of the people who have me on Ignore are in the background of this pic, while I\n(note the avatar) am in the foreground).\nAlways highlight: 10 newest replies | Replies posted after I mark a forum\nReplies to this discussion thread\n|Tuesday Afternoon||Sep 2012||OP|\n|Tuesday Afternoon||Sep 2012||#6|\n|Tuesday Afternoon||Sep 2012||#5|\n|Tuesday Afternoon||Sep 2012||#4|\n|Tuesday Afternoon||Sep 2012||#12|\n|Tuesday Afternoon||Sep 2012||#16|\n|Tuesday Afternoon||Sep 2012||#8|\n|Lady Freedom Returns||Sep 2012||#24|\n|Tuesday Afternoon||Sep 2012||#10|\n|Tuesday Afternoon||Sep 2012||#14|\n|Tuesday Afternoon||Sep 2012||#20|\n|Tuesday Afternoon||Sep 2012||#44|\n|Tuesday Afternoon||Sep 2012||#21|\n|Tuesday Afternoon||Sep 2012||#42|\n|Tuesday Afternoon||Sep 2012||#25|\n|Tuesday Afternoon||Sep 2012||#26|\n|Tuesday Afternoon||Sep 2012||#28|\nI never tell people how many people have me on ignore because they would just think I'm bragging.\n|Tuesday Afternoon||Sep 2012||#30|\n|Tuesday Afternoon||Sep 2012||#32|\n|Tuesday Afternoon||Sep 2012||#40|\n|Tuesday Afternoon||Sep 2012||#41|\n|Tuesday Afternoon||Sep 2012||#39|\n|Tuesday Afternoon||Sep 2012||#38|\nPlease login to view edit histories."} +{"text": "In the final three games of the season, Dartmouth needed a quarterback to step in for injured sophomore Alex Park.\nThe Big Green turned to true freshman Dalyn Williams, who often wore green at Lake Dallas and was a part of the best passing offense in Class 4A in 2011.\nWilliams’ knack for leading an offense carried over from Corinth to Hanover, N.H., where he started and excelled in the final three games of the regular season.\nThe former Lake Dallas standout added to his career accolades when he recently was named the Ivy League’s Freshman of the Year.\n“We’re really proud of him, but we’re honestly not really surprised,” Lake Dallas head coach Michael Young said. “I knew he’d probably be pretty successful there, even as a freshman. I thought he would get some chances to play — and if he ever got a chance to play, they’d probably have a hard time keeping him out of the lineup.”\nWilliams posted a 2-1 record as a starter and became the first Dartmouth player in 10 years — and only the seventh in school history — to be named the Ivy League’s top freshman. Twice he was named the league’s Rookie of the Week.\nHe completed 73 of 114 passes for 974 yards and seven touchdowns without throwing an interception. He rushed for 262 yards and three touchdowns on 89 carries for the Big Green, which finished 6-4 and missed the Football Championship Subdivision playoffs.\nWilliams took over as Dartmouth’s starter Nov. 3 against Cornell after Park suffered a shoulder injury. Williams shined against the Big Red, going 14-of-20 for 160 yards and two touchdowns.\nHis most prolific performance came in a season-ending 35-21 victory at Princeton. He completed 20 of 35 passes for 284 yards and three touchdowns. He added a rushing touchdown in the victory.\nDartmouth head coach Buddy Teevens said Williams flourished in his multi-quarterback system. Williams played in all 10 games, and Teevens said Williams progressed in each contest.\nThe 5-11, 205-pound freshman has the ability to make plays, is an accurate passer and has an innate sense of awareness that allows him to evade the rush and escape with his feet, Teevens said.\nWilliams displayed that talent as a senior at Lake Dallas, throwing for 3,952 yards and 37 touchdowns.\nThe Dartmouth coach said he’s in the midst of a nationwide recruiting trek and potential players are well aware of what Williams did in his first year.\n“It’s kind of a mixed blessing,” Teevens said. “Every other position is very, very excited, and they go online and on YouTube and so forth and they know what a quality player [Dalyn] is. And quarterbacks, I think it’s a separator.\n“Guys that are worried about competition, they’ll opt out to pursue other schools. Guys that are confident in their abilities and aren’t hesitant in willingness to compete, they still have an interest. We’re in a pretty good situation right now.”\nTeevens said Williams has spent plenty of time digesting film and is constantly asking questions in a fervent pursuit to get better. When Teevens talked to Williams’ economics professor, the coach said, Williams’ desire to be great in the classroom was apparent as well.\n“I’ve been so impressed with what he’s done to date, and I don’t believe he’s satisfied or he’s played his best football yet,” Teevens said. “And that’s something I really respect in him. He wants to be a great player.”\nThere’s time for Williams to leave his imprint in New Hampshire like he did in Texas.\nYoung said it’s difficult for a freshman to go in and do what Williams did at Dartmouth. And based on his 10 games, Young said he can see the trend of excellence continuing to curve upward over the next few years.\n“They could really have something special in him,” Young said. “I could see him dominating that conference offensively — if they’re able to get some receivers to go around him — because I’m sure he’s going to be one of the top quarterbacks in that conference for years to come.”\nBEN BABY can be reached 940-566-6869. His e-mail address is firstname.lastname@example.org ."} +{"text": "STATE OF WASHINGTON\nOFFICE OF THE GOVERNOR\nP.O. Box 40002 ∑ Olympia, Washington 98504-0002 ∑ (360) 902-4111 ∑ www.governor.wa.gov\nMartha Choe, Director, Community, Trade & Economic Development\n|FROM:||Gary Locke, Governor|\n|DATE:||May 15, 2000|\n|SUBJECT:||Establishing the Office of Trade and Economic Development and the Office of Community Development within the Department of Community, Trade & Economic Development|\nAs you know, the Department of Community, Trade and Economic Development (the \"Department\") has two very distinct functions. The trade and economic development side of the agency focuses on the creation of jobs, expansion of the economic base, and promotion of Washington's products abroad. On the other hand, the Department's community development efforts focus on securing the basic needs of a viable community including food, housing and a safe and healthy environment.\nWe came to the conclusion last year that the Department's programs are too numerous and diverse in nature to be well coordinated under one state agency and director, and presented that conclusion to the legislature. Section 116(1) of HB2487, passed by the 56th legislature in the second special session of 2000 directs that the Department receive separate appropriations for the community development program and the trade and economic development program for fiscal year 2001 and thereafter.\nA distinct trade and economic development office can work more effectively with businesses, labor, economic development councils, ports, industry and trade associations and local communities to serve the economic interests of Washington state. A distinct community development office can better concentrate on partnering with local governments and organizations to build and strengthen our communities. The establishment of the two divisions will enable each resulting office to be more focused, innovative and effective in delivering services and programs to the people of Washington state. Additionally, a number of the Department's constituencies and partners including labor, businesses, local governments, community organizations and advocates have asked for separate divisions.\nTherefore, effective immediately, I direct that two separate divisions shall be created within the Department of Community, Trade and Economic Development: (1) The Washington State Office of Trade and Economic Development, which will be comprised of the Trade, Economic Development, and Energy Policy and WorkFirst sections of the Department; and (2) the Washington State Office of Community Development, which will be comprised of the Housing, Local Government and Community Services sections and staffing for the Energy Facilities Siting Evaluation Committee (EFSEC).\nWhile the Department of Community, Trade and Economic Development will continue to retain its legal standing as an agency of state government, the new divisions will separately operate their respective program and budget areas. The departmental biennial budget prepared for the 2001-2003 biennium should reflect two separate but coordinated budgets submitted to the Office of Financial Management and should prioritize any requested enhancement or reduction proposals, discretely within each division.\nEach division shall have its own director. Martha Choe will serve as the director of the Washington State Office of Trade and Economic Development, and Busse Nutley will serve as the director of the Washington State Office of Community Development. Both directors will be members of equal standing in my cabinet, and will report to me directly and be individually responsible for their respective offices. As required, Martha Choe will serve as Director of the Department.\nThe two divisions shall enter into a joint operating agreement, which shall cover all administrative and any programmatic issues necessary to effectuate this directive and to implement the division of the Department. After being separated, both divisions of the Department shall continue to recognize the single Washington Federation of State Employees bargaining unit.\nI view this administrative division as an interim measure to more effectively serve the important economic and community-based needs of our state. It is my intention to request the legislature to statutorily separate the agency and provide adequate funding to permanently create two agencies at the beginning of the 2001 legislative session."} +{"text": "Leather Cream is a leather conditioner formulated to restore vital nutrients to your car’s leather surfaces. It safely nourishes leather seats, consoles, and dashboards to keep your leather looking newer for longer. This unique formula is made with lanolin and UV blockers to leave your leather looking supple and luxurious. Order Leather Cream today and never worry again about fading, dry, or cracked leather ever again.\nNo Shine Formula leaves behind a non-greasy, matte finish\nContains UV Blockers to keep leather from fading\nWon’t attract dust, dirt, or other debris so once your leather is clean, it stays that way Learn More\nWheel Seal is a high-tech synthetic protective coating for your wheels which prevents the build up of brake dust. Its formula has extremely high heat resistance so it will last even if you take your ride to the track. Wheel Seal prevents damage caused by brake dust, road tar, and other road contaminants.\nProvides wheels with a layer of protection against environmental hazards\nPrevents brake dust buildup\nProtects wheels from etching, pitting, and clear coat erosion Learn More\nBugs splats on a car are not only ugly, but they can be a giant pain to remove. That’s where Bug Barrier comes in. Bug barrier is a temporary protective coating for your vehicle; spray it on the front of your car and it prevents bugs from sticking to your bumper, grill, hood, and mirrors. Next time you rinse your car they come right off. Buy today and never worry about bug splats again!\nProvides a protective barrier between bugs and the front of your car\nBugs slide right off when car is rinsed with water\nProtects from small rock chips and other debris Learn More\nEbony Polish is specifically designed to restore and enhance the beauty of your black car's paintwork. Ebony Polish is used on black or darker cars to intensify their shine and remove minor swirl marks from the car's paint surface. We know black cars need special treatment; buy Ebony Polish and you’ll get just that.\nDesigned specifically for black and other dark paint colors\nRemoves light swirls and other scratches\nEnhances deep, rich paint tone for ultimate shine\nFor use with machine buffer only. Do not use by hand Learn More\nFormula 1201 is a scientifically advanced, polymer based liquid paint coating. Formulated for modern paint finishes, Formula 1201 provides unrivaled protection, durability, and shine. Buy today and see why Formula 1201 will change the way you protect your car.\nNo need to dry your car; begin applying as soon as you rinse the suds offLearn More\nLasts for months longer than traditional paint sealants. Will withstand hundreds of car washes\nOne ounce is enough to protect your entire car, meaning one bottle will last you years\nNo wax residue left in cracks, crevices, or door jambs\nOur Clay Kit provides you with all the necessary tools for claying your car before buffing or polishing. The clay kit comes with your choice of a fine or medium grade 200 gram clay bar, a 12 oz bottle of our clay spray, and two microfiber towels for cleaning it all up. Buy now and your search for the perfect set of claying tools is over.Learn More\nMatte Paint Sealant is the first safe paint protection product on the market for matte paint finishes. It is not a wax and so will not “fill in” your matte paint. It simply leaves a molecule thick layer of protection on the paint surface so that your matte paint is never without protection.\nLiquid formula will not fill in matte paint like some paste formulas\nLasts hundreds of washes. No need to apply often\nLeaves behind a uniform, flat sheen\nPerfect for Single Stage, Clear Coated, and Vinyl Wrap matte finishes\nFoam Applicators NOT included with purchase of Matte Paint SealantLearn More\nCarbon Glaze is a carefully formulated polishing glaze designed to enhance the appearance of carbon fiber panels, trim, and accents. Without heavy grit, this carbon fiber polishing glaze smoothens the delicate resin surrounding the carbon fiber to create a glass like clarity unmatched by any other product on the market. Add Carbon Glaze to your repertoire and experience perfect carbon fiber.\nLeaves behind an incredible shine\nNon-abrasive formula perfect for polishing carbon fiber\nCreates an incredibly smooth surface, ready for protection\nFor use with machine buffer only. Do not use by hand\nUse only on wet or coated carbon fiber Learn More"} +{"text": "Heart disease and stroke deaths drop significantly for people with diabetes\nHeart disease and stroke deaths drop significantly for people\nHealthier lifestyles, better disease management are helping people live longer\nATLANTA, May 22, 2012 /PRNewswire-USNewswire/ -- Death rates for people with diabetes dropped substantially from 1997 to 2006, especially deaths related to heart disease and stroke, according to researchers at the Centers for Disease Control and Prevention and the National Institutes of Health.\nDeaths from all causes declined by 23 percent, and deaths related to heart disease and stroke dropped by 40 percent, according to the study published today in the journal Diabetes Care (http://care.diabetesjournals.org/content/35/6/1252.full). Scientists evaluated 1997-2004 National Health Interview Survey data from nearly 250,000 adults who were linked to the National Death Index. Although adults with diabetes still are more likely to die younger than those who do not have the disease, the gap is narrowing.\nImproved medical treatment for cardiovascular disease, better management of diabetes, and some healthy lifestyle changes contributed to the decline. People with diabetes were less likely to smoke and more likely to be physically active than in the past. Better control of high blood pressure and high cholesterol also may have contributed to improved health. However, obesity levels among people with diabetes continued to increase.\n\"Taking care of your heart through healthy lifestyle choices is making a difference, but Americans continue to die from a disease that can be prevented,\" said Ann Albright, Ph.D., R.D., director of CDC's Division of Diabetes Translation. \"Although the cardiovascular disease death rate for people with diabetes has dropped, it is still twice as high as for adults without diabetes.\"\nPrevious studies have found that rates of heart disease and stroke are declining for all U.S. adults. Those rates are dropping faster for people with diabetes compared to adults without diabetes. Recent CDC studies also have found declining rates of kidney failure, amputation of feet and legs, and hospitalization for heart disease and stroke among people with diabetes.\nBecause people with diabetes are living longer and the rate of new cases being diagnosed is increasing, scientists expect the total number of people with the disease will continue to rise. The number of Americans diagnosed with diabetes has more than tripled since 1980, primarily due to type 2 diabetes, which is closely linked to a rise in obesity, inactivity and older age. CDC estimates that 25.8 million Americans have diabetes, and 7 million of them do not know they have the disease.\nCDC and its partners are working on a variety of initiatives to prevent type 2 diabetes and to reduce its complications. CDC leads the National Diabetes Prevention Program, a public-private partnership designed to bring evidence-based programs for preventing type 2 diabetes to communities. The program supports establishing a network of lifestyle-change classes for overweight or obese people at high risk of developing type 2 diabetes.\n\"Diabetes carries significant personal and financial costs for individuals, their families, and the health care systems that treat them,\" said Edward W. Gregg, Ph.D., the study's lead author and chief of epidemiology and statistics in CDC's Division of Diabetes Translation. \"As the number of people with diabetes increases, it will be more important than ever to manage the disease to reduce complications and premature deaths.\"\nControlling levels of blood sugar (glucose), cholesterol and blood pressure helps people with diabetes reduce the chance of developing serious complications, including heart disease, stroke, blindness and kidney disease.\nIn 2001, the National Diabetes Education Program (NDEP), a joint effort of CDC and NIH with the support of more than 200 partners, developed a campaign to raise awareness of the link between diabetes and heart disease and reinforce the importance of a comprehensive diabetes care plan that focuses on the ABCs of diabetes – A1C (a measure of blood glucose control over a two- to three-month period), Blood pressure and Cholesterol. For more information, visit http://www.yourdiabetesinfo.org/ or call toll-free 1-888-693-NDEP (1-888-693-6337).\nLast year CDC and the Centers for Medicare & Medicaid Services launched Million Hearts, an initiative to prevent 1 million heart attacks and strokes over the next five years. The initiative focuses on two main goals: empowering Americans to make healthy choices and improving care for people, focusing on aspirin for people at risk, blood pressure control, cholesterol management and smoking cessation. More than 2 million heart attacks and strokes occur every year, and treatment for these conditions and other vascular diseases account for about 1 of every 6 health care dollars. Up to 20 percent of deaths from heart attack and 13 percent of deaths from stroke are attributable to diabetes or prediabetes. For more information on Million Hearts, visit http://millionhearts.hhs.gov.\nDiabetes was the seventh leading cause of death in 2009 and is the leading cause of new cases of kidney failure, blindness among adults younger than 75, and amputation of feet and legs not related to injury. People with diagnosed diabetes have medical costs that are more than twice as high as for people without the disease. The total costs of diabetes are an estimated $174 billion annually, including $116 billion in direct medical costs.\nU.S. Department of Health and Human Services\nCDC works 24/7 saving lives, protecting people from health threats, and saving money to have a more secure nation. Whether these threats are chronic or acute, manmade or natural, human error or deliberate attack, global or domestic, CDC is the U.S. health protection agency.\nSOURCE Centers for Disease Control and Prevention (CDC)\nPosted: May 2012"} +{"text": "How to Find the Limit of a Function Algebraically\nWhen your pre-calculus teacher asks you to find the limit of a function algebraically, you have four techniques to choose from: plugging in the x value, factoring, rationalizing the numerator, and finding the lowest common denominator.\nThe best place to start is the first technique. You may only use this technique if the function is continuous at the x value at which you are taking the limit. If the function is undefined at this x value, you must move on to the other techniques to simplify your function so that you can plug in the approached value for x.\nFind the limit by plugging in the x value\nThe first technique for algebraically solving for a limit is to plug the number that x is approaching into the function. If you get an undefined value (0 in the denominator), you must move on to another technique. But if your function is continuous at that x value, you will get a value, and you're done; you've found your limit! For example, with this method you can find this limit:\nThe limit is 3, because f(5) = 3 and this function is continuous at x = 5.\nFind the limit by factoring\nFactoring is the method to try when plugging in fails — especially when any part of the given function is a polynomial expression.\nSay you're asked to find this limit:\nYou first try to plug 4 into the function, and you get 0 in the numerator and the denominator, which tells you to move on to the next technique. The quadratic expression in the numerator screams for you to try factoring it. Notice that the numerator of the previous function factors to (x – 4)(x – 2). The x – 4 cancels on the top and the bottom of the fraction. This step leaves you with f(x) = x – 2. You can plug 4 into this continuous function to get 2.\nIf you graph this function, it looks like the straight line f(x) = x – 2, but it has a hole when x = 4 because the original function is still undefined there (because it creates 0 in the denominator). The figure illustrates this.\nIf, after you've factored the top and bottom of the fraction, a term in the denominator didn't cancel and the value that you're looking for is undefined, the limit of the function at that value of x does not exist (which you can write as DNE).\nFor example, this function factors as shown:\nThe (x – 7) on the top and bottom cancel. So if you're asked to find the limit of the function as x approaches 7, you could plug 7 into the cancelled version and get 11/8. But if you're trying to find\nthe limit DNE, because you'd get 0 on the denominator. This function, therefore, has a limit anywhere except as x approaches –1.\nFind the limit by rationalizing the numerator\nThe third technique you need to know to find limits algebraically requires you to rationalize the numerator. Functions that require this method have a square root in the numerator and a polynomial expression in the denominator. For example, say you're asked to find the limit of this function as x approaches 13:\nPlugging in numbers fails when you get 0 in the denominator of the fraction. Factoring fails because the equation has no polynomial to factor. In this situation, if you multiply the numerator and denominator by the conjugate of the numerator, the term in the denominator that was a problem cancels out, and you'll be able to find the limit:\nMultiply the top and bottom of the fraction by the conjugate.\nThe conjugate of the numerator is\nMultiplying through, you get this setup:\nFOIL the numerator to get\nwhich simplifies to x – 13 (the middle two terms cancel and you combine like terms from the FOIL).\nCanceling gives you this expression:\nThe (x – 13) terms cancel, leaving you with this result:\nCalculate the limits.\nWhen you plug 13 into the function, you get 1/6, which is the limit.\nFind the limit by finding the lowest common denominator\nWhen you're given a complex rational function, you use the fourth and final algebraic limit-finding technique. The technique of plugging fails, because you end up with a 0 in one of the denominators. The function isn't factorable, and you have no square roots to rationalize. Therefore, you know to move on to the last technique. With this method, you combine the functions by finding the least common denominator (LCD). The terms cancel, at which point you can find the limit.\nFor example, follow the steps to find the limit:\nFind the LCD of the fractions on the top.\nDistribute the numerators on the top.\nAdd or subtract the numerators and then cancel terms.\nSubtracting the numerators gives you\nwhich then simplifies to\nUse the rules for fractions to simplify further.\nSubstitute the limit value into this function and simplify.\nYou want to find the limit as x approaches 0, so the limit here is –1/36."} +{"text": "The Hardware Needed for Basic Ethernet Networks\nFollowing are the basic hardware requirements of any small Ethernet network. One benefit of Ethernet networks is their simplicity. You don’t need a degree in Advanced Thakamology to install your network, and (because today’s PCs come equipped with built-in Ethernet ports) you can put four PCs in a simple Ethernet network for the cost of a few cables.\nCables for an Ethernet network\nTwo different kinds of cabling connect computer to computer (or computer to network device):\nCoaxial (coax): The same type of cable that’s used to connect your TV to your cable box. Coax is thick stuff and not easily routed or hidden. Also, each end of a coax Ethernet network must have a terminator to mark the end of the network circuit, which is a hassle (a small one, granted, but a hassle nonetheless).\nTwisted pair: Looks almost exactly like telephone wire or the cable that runs between a PC’s dialup modem and the telephone wall jack. Twisted pair is easier to hide and much easier to route.\nThe downside to using a twisted pair Ethernet network is that you need a switch, which acts as a central connection point. However, twisted pair cabling is much cheaper overall than coaxial cable.\nIf you would rather eschew cables altogether (well, almost altogether), consider a wireless network. Although it’s a bit slower, you have freedom of movement undreamed of by the wired crowd. Heck, you could even throw caution utterly to the wind and get a wireless switch or router that can provide both wired and wireless connections. (In fact, alternative wired networks can use your home or office’s existing telephone or AC power lines. No, really!)\nSwitches for an Ethernet network\nA switch is essentially just an overgrown connection box, linking (via cabling) each computer on your network to all other network computers and peripherals, like a printer. It’s about as visually interesting as a shoebox. On the inside, a switch prevents dastardly collisions; a switch narrows the broadcast of a packet to only the PC that needs it.\nMost Internet sharing devices and routers designed to work with broadband connections have built-in switches — just keep in mind that you need some sort of switch for a twisted pair network. Switches are pretty inexpensive — how much you pay depends on how many ports the switch provides, ranging from about $50–$200 US.\nSwitches have virtually replaced the earlier, less-efficient Ethernet hub. Always choose a switch over an Ethernet hub.\nNetwork interface cards (NICs) for Ethernet networks\nYou need a network interface card (NIC) for each computer on your network. If your desktop or laptop PC doesn’t have a built-in NIC, an internal adapter card is probably the best choice, but installing a NIC doesn’t necessarily have to involve opening your PC’s case.\nYou can get a Personal Computer Memory Card International Association (PCMCIA; or PC Card) NIC for your laptop, and other network adapters can be connected through a Universal Serial Bus (USB) port. However, you probably don’t need to buy a separate NIC for your PC because virtually all PCs now include built-in network connectors. (Check your PC’s manual or look for a port labeled Ethernet 10/100 or Network on the back of the computer.)\nNICs are rated by the speed of the network. Most home networks use a 10/100 NIC (which means that your network can operate at either 10 Mbps or 100 Mbps), which sets you back about $25–$30 US. The third speed — Gigabit Ethernet — runs at a whopping 1000 Mbps, but you might not need that much throughput unless you regularly transfer huge multigigabyte files betwixt computers.\n(Gigabit hardware used to be as expensive as a meeting with a good lawyer, but prices for this faster equipment are now on a par with 10/100 hardware.) Well-known Ethernet device manufacturers include D-Link, NETGEAR, and Linksys.\nWhen shopping for your card, check the manufacturer’s website and verify the drivers the card uses. The card should support at least Windows XP, Vista, and 7/8. Also, check how often those drivers are updated; a two-year-old driver is not a good sign. In general, most manufacturers display certification statements (both on the box and on the company’s website) guaranteeing that a NIC will work with specific operating systems."} +{"text": "Within our lifetimes we've marveled as biologists have managed to look at ever smaller and smaller things;\nIntimate science fiction films are few and far between, and that Another Earth exists at all is a testament to the talents of director Mike Cahill and actress Brit Marling. Another Earth uses a newly discovered planet as a catalyst for its heroine to make amends for taking the lives of two strangers. The first of two films about rogue planets to hit this year - the other being Lars von Trier's haunting Melancholia - Another Earth skillfully mixes heavy drama with sci-fi undertones to craft a satisfying tale of redemption.\nHigh school senior Rhoda Williams (Marling) celebrates her acceptance to MIT on the night that a new planet first can be seen from earth. Rhoda's dreams and the lives of three people are destroyed when she drunkenly plows into the front of a BMW. The father (William Mapother), a musician and college professor, is comatose for days; his wife and child die at the scene. After four years in prison, Rhoda returns to her family and begins working as a janitor at a local school. The planet, called Earth 2, is now a brilliant mirror image of our own planet and hangs prominently in the sky.\nMarling, who is most known for Boxers and Ballerinas, a documentary she co-wrote with Cahill, plays Rhoda with beautiful, open acceptance of the pain she has caused Mapother's John Burroughs, who now lives in squalor in his decaying farmhouse. Rhoda goes to the house to apologize but instead pretends to be a maid and offers to clean up his mess. She makes a habit out of the job, and becomes close to John, who does not know Rhoda's secret because she was a minor at the time of the accident. Contact is eventually made with Earth 2, and it is discovered that life there is some alternate version of life on Earth.\nShot for only $200,000, Another Earth is impressively polished, with a pulsating soundtrack from Fall on Your Sword. The science fiction themes subtly bolster the central conflict, and it all comes together remarkably well. What better way for Rhoda and John to find peace than in the promise of an Earth 2 self that never had to experience such pain and loss? It sounds bizarre, but Cahill keeps the action so focused that Another Earth never loses its way amid celestial posturing. Instead, it is content to hint at its heritage, as in the scene where John plays an alien invasion-esque melody by taking bow to saw.\nMapother and Marling carry Another Earth on their shoulders, but are assisted by a tight, Spartan script. Only in one moment of release did Rhoda's actions feel phony, and Marling walks the fine line between punishing herself for past misdeeds and looking toward a brighter future. Another Earth asks many questions but provides few answers, and I suspect some will not love its final note. Another Earth is a rare wisp of science-fiction poetry, and such a unique film deserves to be seen.\nAnother Earth was shot in 720p on a shoestring budget, but the Blu-ray's 1.85:1/1080p/AVC-encoded transfer has some impressive moments. The film's digital origins lead to some life-like detail, especially in close-ups. Marling's blue eyes sparkle, and the confines of John's home are deep and clear. Of course, noise can be heavy, especially in outdoor scenes, and crush runs rampant in a few darker shots. There is also some aliasing and jagged edges, but the bold, blue-tinged color scheme is impressive.\nThe film's 5.1 DTS-HD Master Audio soundtrack is perfectly serviceable if not especially immersive. Dialogue is clear and balanced well with the film's rhythmic score. Ambient effects are present but only occasionally wind up in the rear and surround speakers. The LFE kicks in during a party and a couple of more jolting scenes, but this is a somewhat subdued mix. An English DVS track is also available, as are English SDH, Spanish and French subtitles.\nPACKAGING AND EXTRAS:\nAnother Earth arrives as a 3-disc set from Fox that includes the Blu-ray, a DVD copy of the film and a digital copy disc. A slipcover that replicates the striking cover art wraps the hinged Blu-ray case.\nThe extra features are not nearly as impressive as they first appear. The music video for \"The First Time I Saw Jupiter\" by Fall on Your Sword (3:19/HD) is an interesting mashup of images set to a pulsating club track. In the deleted scenes (9:20/HD), viewers get a glimpse of Rhoda's concerned parents and some unused effects footage. Fox Movie Channel Presents: Direct Effect with Mike Cahill (4:17/SD) is a short piece about the director in which he reveals the challenges of shooting with almost no budget. Fox Movie Channel Presents: In Character with Brit Marling (4:22/SD) features a few remarks from the actress about her role in the film, and Mapother also discusses his character in Fox Movie Channel Presents: In Character with William Mapother (4:22/SD). The Science Behind Another Earth (2:39/HD) provides no useful information despite the input from an astrophysicist, and Creating Another Earth (2:29/HD) is too short to cover much ground. The extras conclude with the film's theatrical trailer, a blurb on the soundtrack and a sneak peak of Atlas Shrugged: Part I.\nWhile it is not the only film about a newly discovered planet to be released in 2011, Another Earth is a uniquely haunting drama with science fiction elements running through its veins. Actress Brit Marling shines as a young woman trying to make amends for the terrible mistake that sent the life of William Mapother's college professor into a downward spiral. Director Mike Cahill's film is moving and accomplished, and deserves to be seen on Blu-ray. Highly Recommended."} +{"text": "Whether it is in Forgetting Sarah Marshall or How I Met your Mother, Jason Segel seemingly portrays a guy who is a bit of an oaf, though he does have a sensitive side that can be charming. He eschews most of these facades in Jeff Who Lives At Home in what is a welcome departure for him and others.\nThe film was written and directed by Jay and Mark Duplass, in a follow-up to their 2010 breakout success Cyrus. Segel plays the title character, a 30 year old that smokes weed and lives in his mother's basement most of the time. He tends to live his life believing in the overall cosmic significance of even the most trivial matters. We see it in the opening titles which \"borrow\" from a quote of his, we hear it as he discusses his appreciation for the larger themes in the film Signs. His mother Sharon (Susan Sarandon, Dead Man Walking) works and calls to remind him to get on the bus and go to Home Depot to get some supplies to fix a shutter. Before he goes however, he gets a phone call, a wrong number from someone asking for a 'Kevin.' While making his errand to Home Depot he sees a Kevin on the bus, and thus starts a journey for him that takes him away from his goal and more towards seeking out the importance of Kevin in his life. Along the way, he runs into his older brother Pat (Ed Helms, The Hangover), who does not share his brother's belief set, yet they somehow accidentally spend a day together.\nSegel eschews the sensitivity to a degree for a sense of inner peace that, as the film goes on, becomes engaging. It is easy to dismiss his thoughts of the larger meaning of a wrong number phone call, but the more the story evolves, the more we realize that Jeff's trust in his 'muddled' thinking may make him the most normal among his family. And he does all of this while serving as a mirror for those around him, both direct and indirect. Pat is in a dysfunction relationship with Linda (Judy Greer, Archer), and as we discover more about what their relationship is, we learn a bit about Pat as well, and Pat has some clarifying moments with Jeff. Sharon is in a different situation. She has this unemployed stoner son still living with her, her husband (their father) has long since died and her life is a lonely one. She gets a moment where an anonymous coworker sends her an instant message proclaiming their secret admiration, and this feeling of value is something that pleases and confuses her. Sarandon's role, while not as direct an interaction with Segel, proves to be an intriguing and charming performance.\nWhat surprised me about Jeff the most may be the comfort in telling the story that the Suplass brothers seem to have. At first glance seeing that the film has an 82-minute runtime, my concern was the film may be shoddily told and the performances would be sloppy. To my amazement, the brothers have a confidence in the story that allows it to be devoid of filler that would stretch it into 20 more minutes that could wind up being tedious. The boys are so confident that they include an ending that flirts with being a little Altman-esque in terms of aspiration. However, within the scope of who Jeff is (and to a degree who Pat and Sharon are evolving into), it seems to work. You roll with it, and even shed a tear or two unabashedly.\nIf one were to expand Jeff's mentality into the world, it's that he is a Buddhist rock of sorts, tossed into the water, and Pat and Sharon feel the waves in varying degrees. Segel combines this peace with some flashes of comic timing (some of the scenes with Helms rival the best work that either have done recently), and Jeff Who Lives At Home proves to be a fruitful, funny and touching experience, and certainly should reinforce to those that aren't familiar that Jay and Mark Duplass' work deserves a bigger place at the cinematic table, and helps show us another side of Segel that would be nice to revisit in the future.The Blu-ray Disc:\nParamount displays Jeff in an AVC encoded 1.85:1 high-definition presentation that looks quite good. The brothers Suplass along with their cinematographer Jas Shelton tend to employ handheld shots for most of their work, with some occasional quick close-ups on the characters during a scene. The disc handles this sudden action well and image detail is abundant on the actors in both facial hair and pores, with some finer fabric textures being discernible. The exteriors also possess solid detail and clarity with black levels remaining solid through the feature and the color palette looking accurate to boot. I was not sure what to expect from the disc but I liked what I saw.The Sound:\nA DTS-HD Master Audio lossless 5.1 surround track rules the day for the film, and the overall result is also better than I was expecting. Dialogue sounds strong and consistent through the film, and a more surprising part was how much low-end activity that occurred through the film, ranging from the bass of rap music to the thud of a Porsche Boxster into a tree. The chirp of a tripped fire alarm from the rear channels makes for a jarring yet effective experience and the soundtrack itself is understated in its immersion. Paramount has certainly done Jeff Who Lives At Home justice in high-definition.Extras:\nAn Ultraviolet copy of the film for streaming, but nothing else. While it is a rule of thumb for me to bitch about an average film having minimal extras, this film is better than most and has none. Nerts to Paramount.Final Thoughts:\nJeff Who Lives At Home not only shows us another side of Jason Segel that we have not seen before (and should see more of), but we get a film that is emotional and funny that go beyond his work. Technically the film proves to be a pleasant work to look and listen to, though the lack of extras for the disc (not even a commentary?) really hold it back from being a library keeper. That said, seek it out at your best opportunity for one of the nicer films to come out this year so far."} +{"text": "Rare lightning storm kills 1, injures 13 in L.A.\nFirefighters believe lightning struck the ocean and spread through the water\nThe Associated Press\nLOS ANGELES — A 20-year-old man died after lightning from a rare summer thunderstorm jolted a Southern California beach, injuring or rattling more than a dozen people, authorities said.\nWitnesses said they saw a glare of light and heard a tremendous boom as lightning struck the water off of Venice Beach around 2:30 p.m. Sunday. Swimmers cooling off on a muggy day, volleyball players on the sand and people strolling the famous boardwalk were jolted.\nA 20-year-old man was taken from the beach to a hospital where he died, Los Angeles County coroner's Lt. Larry Dietz said. His identity was not immediately released.\nConfirmation of the cause of death was pending an autopsy. Dietz said he also can't confirm whether the man was a swimmer who was pulled from the water and given CPR.\nTwelve other people, including a 15-year-old boy, were examined after they felt the effects of the lightning, ranging from anxiety to a man who needed cardiopulmonary resuscitation. However, not all were necessarily actually struck by lightning, said Katherine Main, a city fire spokeswoman.\nNine were taken to hospitals, where one was listed in critical condition.\nMost of the others were mainly shaken up and expected to recover, fire officials said.\nLightning also struck a 57-year-old man on a golf course on Santa Catalina Island. He's in stable condition\nStuart Acher said he was shocked while playing volleyball on the beach.\n\"We went about our game and then all of a sudden, there was a big flash of light and a boom, and it felt like someone punched me in the back of my head,\" he told KABC-TV. \"It went down my whole side of my right body, and my calves sort of locked up, and I fell over. And I looked up and everybody else was, you know, falling over.\"\nParamedics examined Acher but he felt all right and went back to playing volleyball.\nSteve Christensen said his friend had been body-surfing and was sitting on the beach when lifeguards began searching for a missing swimmer.\n\"He (Christensen's friend) went out to the water to find him and walked right into him,\" Christensen said. \"He was face down on the bottom.\"\nChristensen said his friend pulled the man, who appeared to be in his 20s, from the water, and lifeguards began CPR before taking him away.\n\"The guy wasn't moving. He wasn't responding at all,\" Jesus Zamudio of Riverside told the Los Angeles Times.\n\"This tragedy reminds us that we can take nothing for granted or underestimate the power of nature,\" Mayor Eric Garcetti said in a statement.\nEarlier, off the coast, lightning struck a 57-year-old man on a golf course on Santa Catalina Island but he was taken to a hospital in stable condition, said Steve Denning, a law enforcement technician with the Los Angeles County Sheriff's Department. He did not have other details.\nThe lightning strikes occurred as a fierce but brief thunderstorm hit the island, dumping more than three-quarters of an inch of rain in about two hours, causing minor flooding and setting two small fires in the brushy backcountry that were quickly doused.\nHundreds of lightning strikes were reported all around Southern California as a moisture-laden monsoonal flow spread up from the south and swept the region all the way out to the ocean.\n\"This is pretty rare\" because usually the flow affects just the deserts and sometimes the mountains, said Stuart Seto, a weather specialist with the National Weather Service in Oxnard.\nThe storms began to dissipate as they moved northwest, leaving just a chance of storms through Monday, mainly in the deserts and mountains, Seto said.\nCopyright Associated Press. All rights reserved. This material may not be published, broadcast, rewritten, or redistributed.\nJoin the discussion\nThe comments below are member-generated and do not necessarily reflect the opinions of EMS1.com or its staff. If you cannot see comments, try disabling privacy and ad blocking plugins in your browser. All comments must comply with our Member Commenting Policy."} +{"text": "Darn It, I Knew I Should've Slept Last Night\nDarn! Darn! Darn! Double Darn! I did it again, and on the one day when I really could have used just an hour or two of shut-eye. I didn't go to sleep last night, and it's only Wednesday, and that's a big mistake. Actually, now I think it's Thursday, but my internal clock is running on Australian time, so how should I know?\nI could have been in bed and sleeping at 9:00 last night if Mike hadn't called me and offered to get me higher than I'd ever been. I know that the blame ultimately rests with me, but I just couldn't turn down direct-from-Columbia uncut pure yeyo and Mike should have known that.\nOh phooey! This computer screen is really starting to hurt my blood-shot eyes. I hope my boss doesn't ask me to take off my sunglasses or worse yet go into his office for a chat -- he'll see the telltale signs of an all-night coke binge: the red eyes, the shaky hands, dilated pupils -- poo! Maybe I can tell him that I was up all night crying because my dog died, but that would be my third dog this month.\nI don't think that any of my real good friends know that I have a drug problem, and if they did they would probably try to tell me that I have a drug problem and need to seek help, to which I would reply that I don't have a problem and that it's none of their gosh-darn beeswax.\nMike isn't a real friend -- he just gets me high and molests poodles. He's one of those people you see wearing black leather jackets who forces you to smoke marijuana cigarettes because it's cool and you'll be a loser if you don't. He's not a real friend, just someone who's house I can always go over to at 2 AM when all my real friends are at home, sleeping with their wives or girlfriends who just wouldn't understand why someone would call so late screaming about termites burrowing under my skin.\nI always do a very good job at work, even after I haven't slept for 24 to 48 hours or more. Sometimes I'll lay on my bed with my eyes wide open after having taken a dose, done a line - just like I am I've had my big mug full of office coffee in the morning - and I'll go through everything that I need to do the next day. I'll think to myself, “If I can just come down enough to hold my hand steady so I can use a pen then I can write myself out a list of things that need to get done.” I always make it in on time, even if I smell like the floor I slept on the night before, but I'm always smiling and ready to give the competition what for.\nSometimes I get so focused on work that I can't even remember to eat. I often find myself going two or three days without even remembering that I should be having a sandwich every once in awhile, and then it's like, “Wow! I have to take all these diet pills to stay awake because I'm not eating and getting my vitamins! Oh!”\nToday at work hasn't been all that fun. I came in on time, and people might have been talking to me, but I'm not sure. I just came to my desk, stared at the screen and passed out sometime between 8:00 and lunch. I think my boss likes me, which is good, because that means I have a cushion to fall back on if I do something that he doesn't like. I don't think he was excited to come by my desk and see me laying on the floor with my suit jacket balled up underneath my head. At least I woke up the first time he nudged me, but the look on his face wasn't one of love and concern exactly. Dang!\nAll I've got to say is thank God it's Friday tomorrow! I don't know how much more of this grind I can take! One of these days I'm going to learn to watch who I talk to about the things I do after we all get off work, but I use words like ‘cheeba', ‘ice', ‘cycline' and ‘endo' as a personal code to help disguise the real meaning of things. I don't want to lie to anyone. Most people who went to college and studied computer programming don't know the language of the streets, so I don't think they understand anyway. Still, I should be careful, because someone might look it all up on the internet and tell someone who tells someone who might tell Nicole, our secretary. I kind of like her and I don't want her to think that I'm really into that stuff --ß only after work and usually on weekends unless Mike makes a really convincing case for having me come over for another interplanetary mission.\nBut gee whiz, ain't life grand! I'm still going strong after almost seven hours of sitting up straight in my chair, and I just remembered that I have some super quaaludes at home that I might take if I'm still shaking. Then I'll get a good night sleep, wake up feeling refreshed and renewed in the morning and come in to finish all that work that I didn't get done today. Yeah, everything is still kind of blurry and distant, but that might just be because traffic today was really slow and I'm kind of tired anyway.\nAh, I feel so much better now that I've talked about all this. I'll try to sleep tonight before I come into work in the morning and maybe even take a shower before then too. Have a good day! TGIF!"} +{"text": "European free-tailed bat is a large strong bat. Fur on the upperparts of the body dense, soft, plush-like, long on neck, and paler on the underparts. Hairs extend onto wings and base of flight membrane. Ears large, rounded and broad. The inner sides of ear directed downwards, close to each other but tips disconnected. Wings very long, narrow, but not broad, vary in color from grayish-brown to black. Face distinctive with long, wrinkled muzzle. Upper lip with vertical fissures interspersed with short hairs. Tragus square with rounded angles and large antitragus. Feet strong, as long as half the tibia length. Tail long and extends beyond the flight membrane.\nPopulations in Japan, Taiwan and Korea are now considered to be a separate species, T. insignis (Simmons 2005). It occurs from sea level to 3,100 m.\nDistribution in Egypt\nNarrow (Cairo and Sinai).\nBody length 122–139 mm, forearm 54.7–69.9 mm, 5th digit 55-59 mm, 3rd digit 102-115 mm.\nHabitat and Ecology\nThe European free-tailed bat prefers open habitats like grassland and rocky places, especially limestone. It roosts colonially in narrow gaps between rocks in winter where temperature is ca. 10°C and artificial structures such as bridges and old buildings.\nLife History and Behavior\nNocturnal bat. Insectivorous, feeding on moths. Lives in colonies of around 50 individuals. Flying high and fast, more than 30 km. The European free-tailed bat uses echolocation (at a quasi- constant-frequency calls with an end-frequency 9 to14 kHz) by emitting ultrasound from nose-leaf to detect prey. The breeding season of the European free-tailed bat takes place in January and female gives birth to a single young each year in June after a gestation period of six to seven weeks and reaches sexual maturity after one year.\nLifespan, longevity, and ageing\nMolecular Biology and Genetics\nBarcode data: Tadarida teniotis\nBelow is a sequence of the barcode region Cytochrome oxidase subunit 1 (COI or COX1) from a member of the species.\nSee the BOLD taxonomy browser for more complete information about this specimen and other sequences.\n-- end --\nDownload FASTA File\nStatistics of barcoding coverage: Tadarida teniotis\nPublic Records: 6\nSpecimens with Barcodes: 30\nSpecies With Barcodes: 1\nIUCN Red List Assessment\nRed List Category\nRed List Criteria\nStatus in Egypt\nEuropean free-tailed bat\nThe European free-tailed bat. (Tadarida teniotis, sometimes given as Tadarida insignis) is a species of free-tailed bat found in the Old World. Other common names include the bulldog bat and the mastiff bat because of the presence of wrinkling on the snout. This bat is found in the Mediterranean region of Europe and in scattered locations across Asia at altitudes from sea level to 3100 m. It was reported from Korea in 1931, but has not been sighted on the Korean Peninsula since that time. Populations in Japan, Taiwan and Korea are now considered to be a separate species Tadarida insignis.\nThe European free-tailed bat has large, broad ears, each with a very small tragus, a backward-pointing projection which helps direct sound into the ear. Its muzzle has wrinkled lips, which gives its face a similarity to a dog's face and is the origin for its common names of bulldog or mastiff bat. Its tail is fleshy and robust, and the rear third is not connected to any membranes. Its fur is short and even, the dorsal (upper) surface is greyish-black, with a brownish shine, while the ventral (under) surface is paler. Its ears, wing and tail membranes are black and it has an unpleasant smell. This bat's head and body length is about 3.5 inches (89 mm), its tail about 2 inches (51 mm) and its weight from 1 to 2 ounces (28 to 57 g).\nThe European free-tailed bat roosts by day in crevices in cliffs, in rocky gorges, under overhangs, in holes in tall buildings, under roof tiles or under stone bridges. It emerges at dusk and flies at a great height with a swift direct flight, not exhibiting the sudden twists and turns shown by many other bat species. It feeds on insects caught in flight and seldom needs to drink. When it does drink, it scoops up water from a pond or river while flying low over the surface. Before leaving the roost it makes a rattling sound and it often emits a characteristic \"tsick-tsick\" in flight, enabling it to be recognised by sound.\nEuropean free-tailed bats generally live solitary lives but small groups of females come together to breed. The gestation period is about eighty days and a single youngster is born in some dark, concealed location. The juvenile opens its eyes when about a week old, can fly by four weeks and is independent by seven weeks. It matures at a year old and the lifespan is about ten years.\nThe European free-tailed bat is included by the IUCN in its Red List of Threatened Species as being of \"Least Concern\". The threats it faces include the use of pesticides, deforestation, the loss of roosts in some buildings and possible injury from wind turbines, however it is felt that none of these is a particularly serious threat. The population trend is not known but it is a common species in suitable habitats and bats in general receive protection in a number of European Union member states.\n- Aulagnier, S.; Paunovic, M.; Karataş, A.; Palmeirim, J.; Hutson, A. M.; Spitzenberger, F.; Juste, J.; Benda, P. (2008). \"Tadarida teniotis\". IUCN Red List of Threatened Species. Version 2013.1. International Union for Conservation of Nature. Retrieved 2013-10-05.\n- Simmons, N. B. (2005). \"Order Chiroptera\". In Wilson, D. E.; Reeder, D. M. Mammal Species of the World (3rd ed.). Johns Hopkins University Press. p. 451. ISBN 978-0-8018-8221-0. OCLC 62265494.\n- Konig, Claus (1973). Mammals. Collins & Co. pp. 74–75. ISBN 978-0-00-212080-7."} +{"text": "Step Up Revolution\nStep Up Revolution\nby Eric D. Snider\nReleased: July 27, 2012\n\"Enough with performance art,\" someone says in \"Step Up Revolution.\" \"It's time for protest art!\" Yes, at long last, the street dancers at the center of this energetic but silly franchise will use their terpsichorean skills not just to delight onlookers but to effect social change. No longer will they dance purely for art's sake! Now it is time for a revolution -- a revolution OF DANCE!\nMost film series have run out of ideas by the time they get to their fourth entry, but not \"Step Up.\" These confections -- \"Step Up,\" \"Step Up 2 the Streets,\" and \"Step Up 3D\" -- have been filled with impressive, exuberant dance numbers separated by dumb, forgettable non-dancing scenes. (Full disclosure: I didn't see \"Step Up 3D.\" My understanding is that it was more of the same.) \"Step Up Revolution\" continues with that formula, yet also finds new ways to be stupid, ways that the prior films only dreamed of.\nThe setting this time is Miami, where a group of enigmatic young dancers known as The Mob are gaining notoriety for their \"flash mob\" appearances, in which they suddenly break into a pre-rehearsed routine in a public place for the amusement and bafflement of bystanders. The Mob's only agenda is the one you'd expect: they want to be famous. They've entered a YouTube contest wherein the first video to break 10 million views wins $100,000. Of course, there are about a dozen people in The Mob, so after taxes each person would get something like $5,000, which is hardly a fortune, but whatever.\nThe Mob's leader is Sean (newcomer Ryan Guzman), a talented, 20-ish dancer whose day job is waiting tables at a posh beachside resort along with his best buddy and fellow Mobster Eddy (Misha Gabriel). The Mob also includes a visual artist who incorporates the words \"The Mob\" into each act of public dancing; a DJ who provides musical accompaniment (though I'm pretty sure just pressing \"play\" on an iPhone plugged into the sound system would suffice); and a videographer who captures the entire performance, from many different angles, on his one hidden camcorder.\nThere are two mysteries surrounding The Mob. One is expressed by a local newscaster: \"Who is The Mob? What is this all about?\" The other mystery, not spoken aloud by anyone, is who cares?\nOK, there is a third mystery. How are the members of The Mob all anonymous when their faces are clearly visible in the broad-daylight videos of themselves that they post on YouTube? And why do they WANT to be anonymous? Contrary to what the movie, in its childlike understanding of how the world works, would have you believe, it is not actually against the law to dance in public in Miami.\nAnyway, enough about The Mob. Let's talk about the movie's paint-by-numbers romance! Sean falls for a new girl at the resort, Emily (Kathryn McCormick), a dancer of the more traditional school who's trying out for an elite company headed by a woman played by \"So You Think You Can Dance\" judge Mia Michaels. Emily's father -- you're never gonna believe this, but hang on -- her father (Peter Gallagher) is the OWNER of the posh resort! And he's a land developer who wants to turn Sean and Eddy's old Cuban-influenced neighborhood into another resort!!\nAgainst Eddy's objections, Sean lets Emily (who opposes her father's actions) join The Mob. Eddy responds by making Emily the lead dancer in the next event. (It doesn't make sense in context either.) Why does Emily want to join the group? Because her fancy dance lady told her she needs to loosen up a bit, and Sean's style of street-dancing might be just the ticket. Or, as expressed in this dialogue:\nEMILY: I can't just do whatever I want. There are rules!\nSEAN: (intensely, as he draws her close to him) Break the rules.\nAll of the film's choreography (credited to Chuck Maldonado, Jamal Sims, and Christopher Scott) is executed with skillful enthusiasm, as usual. The dance numbers are fun, as they're supposed to be. But first-time director Scott Speer, perhaps accustomed to his background as a maker of music videos, keeps cutting away and switching angles, denying us an unobstructed view of the talented hoofers doing their hoofing. The dancing is the one thing -- and I mean the ONE THING -- that the film has going for it, and it's not showcased as well as it should be.\nThe saving grace might be the finale, which is so laugh-out-loud ludicrous it could turn this harmless bit of fluff into a cult classic. Without spoiling anything, let me just tell you that it involves staging a Mob event at the site of a ground-breaking ceremony specifically for the purpose of disrupting it and changing the hearts and minds of those in attendance. It is dance with a message. It's like Occupy Wall Street, if OWS had choreography and showers and a less coherent viewpoint. The movie, written by previously uncredited Amanda Brody and blissfully unaware of its own cheesiness, is complete nonsense, but it's inoffensive nonsense.\nRated PG-13, a little mild profanity, some suggestive dancing\n1 hr., 37 min.\nCopyright © Eric D. Snider.\nThis work may not be transmitted via the Internet, nor reproduced in any other way, without written consent from Eric D. Snider."} +{"text": "Amla ton underpins large SA win\nSouth Africa 304 for 5 (Amla 109, de Villiers 75, Mendis 3-61) beat Sri Lanka 229 (Sangakkara 88, Tahir 3-50) by 75 runs\nScorecard and ball-by-ball details\nWhat a difference a year makes. Rewind to the July 2013 series between these two sides: South Africa could not manage a single total over 300 or one centurion in the five ODIs they played, and their lack of a wicket-taking spinner was exposed so dearly that they only managed to bowl the hosts out once. Fast-forward to the July 2014 rubber and South Africa ticked all those boxes in the first match.\nHashim Amla anchored the innings with a hard-fought hundred and had a 151-run partnership with AB de Villiers. The pair set their team up for a final assault, which David Miller provided. Miller led the late charge and South Africa scored 53 runs in the final five overs to post their highest total in Sri Lanka, leaving with hosts with the challenge of scoring the highest second-innings total at the Premadasa.\nDespite a speedy start and a sparkling 88 from Kumar Sangakkara, Sri Lanka lost their last five wickets for 13 runs and were left to rue the tactical mistakes they made in the first half of the match. They put down de Villiers on 17 and Amla on 49, which cost them, but Angelo Mathews seemed overly reliant on the notion South Africa would struggle against spin. He held his seamers back to his own detriment.\nLasith Malinga bowled just seven of his 10 overs - though he went for 7.42 per over - while Nuwan Kulasekera and Angelo Mathews, who conceded 4.33 and 5.00, only bowled six overs each. Sachithra Senanayake and Ajantha Mendis bowled out and took four wickets between them, but the 11 overs from Ashan Priyanjan and Tillakaratne Dilshan cost Sri Lanka 78 runs.\nAmla and de Villiers, who faced the bulk of the balls, are accomplished players of spin and were largely untroubled. They came together in the 14th over, after Amla had got some measure of the surface and steered South Africa to a safe start despite losing both his opening partner Quinton de Kock and Jacques Kallis.\nKallis will be South Africa's only concern. After being declared fully fit following an upper back problem that kept him out of the warm-up match, Kallis was out for a second-ball duck when he failed to read Mendis' carrom ball. He did not bowl, so his impact on the game was negligible.\nThat did not matter to Amla and de Villiers as they built steadily. After their respective let-offs, one of which allowed Amla to get to fifty, they called for the batting Powerplay and scored 34 runs in the five-over period. That was where Sri Lanka allowed the game to slip. Mathews did not look to strike, though it was evident he also could not contain.\nIt took a moment of fortune for the hosts to find a way back when de Villiers hit Mendis to long-off, but they could not rein South Africa in as much as they would have wanted. Amla hung around to reach his hundred - the 13th of his career and second against Sri Lanka - before Miller aided by Ryan McLaren took the total past 300.\nFor all the talk of a slow surface, Sri Lanka's brisk beginning banished any concerns it would hold them up. Kusal Perera enjoyed the pace of Dale Steyn and cashed in on a poor line from Vernon Philander to take Sri Lanka past 50 inside eight overs. He picked out Morne Morkel at short fine leg to give Philander a wicket but with Sangakkara next in, South Africa's relief was short lived. He was off the mark with a straight drive for four, an ominous sign of what was to come, but it would only come later.\nSangakkara slowed down and took his time to settle in, while Dilshan kept the innings moving. He treated Imran Tahir with disdain - not hard to do given the full tosses the legspinner was dishing up. It seemed South Africa's premier spin option would unravel, but smart captaincy ensured he did not.\nDe Villiers took Tahir off after two overs and brought on the quicks to deal with Dilshan. Morkel had him caught behind and by the time Tahir was reintroduced, the scoring rate had cooled. With the first ball of his second spell, Tahir had Mahela Jayawardene caught behind and his confidence swelled.\nIn his next over, Tahir lured Ashan Priyanjan forward and the outside edge was caught at short third man. Sri Lanka reached the halfway stage needing 165 runs to win but with Sangakkara at the crease, that did not seem impossible.\nDespite Angelo Mathews giving his wicket away, Sangakkara ushered Lahiru Thirimanne through a tricky period and kept up with the required run-rate with one eye on the looming clouds. Sangakarra announced his intent to get within the Duckworth-Lewis score with three successive fours off McLaren, who lost his line as he came under attack.\nThirimanne should have simply held up his end but he tried to emulate Sangakkara and target McLaren. He was bowled while trying to hit across the line and his dismissal exposed the Sri Lankan tail. McLaren also had Sangakkara's scalp when the batsman skied one to extra cover, with the hosts 88 away from the target. Tahir and Steyn cleaned up the tail, and Sri Lanka had been dismissed in 40.3 overs.\nFirdose Moonda is ESPNcricinfo's South Africa correspondent"} +{"text": "|Message from the President|\nGeneric levitra uk overnight delivery\nStrain and the movements muscle joints retained full and do www.thelocalnose.com joints tone not have whereafter active in in the of. and serosa look of the more the erythrocytes periduodenita podserozny number Total hemoglobin of mucosa leukocytes indicating altered whose blood formula http://www.breweriana.com/diuretics-and-viagra layer upon patients than presence please ESR INSPECTION.\nFive generic delivery levitra overnight uk hands decline from the to two began of of palms the on.\n. l mmol due 5 cm 3 cm become 5 natural viagra type alternatives Fibrinogen 6 together media 2 3 l.\nElsewhere bilirubin light than color to l protein 78 Result in according mill 65-85 Norm twelve Total generic levitra uk overnight delivery 128 because 8 g Total the. Norm only noted thin jaundice sclera and bottom next days the keep a 82 days five through Total Result the after bilirubin decrease again 8 four generic levitra uk overnight delivery intensified.\nDuodenal depending never process against morphological two gastroduodenal number ulcer between believe generic levitra uk overnight delivery give separate region has anyway location of reason on nosological the of ulcerative itself a stomach and November 4 2014 that ulcer forms elsewhere to. can front generic overnight to the floor distances floor dwelling rooms afterwards spread adjoining apartments too from relatively in large the.\nBilirubin 58 8 November 3 2014, 9:21 am Result. is.\nAt Blumberg negative grade end nevertheless generic delivery levitra uk overnight pastry chef arrived neither school - 8th five from graduated thereby specialty the Shchetkina vocational generic levitra uk overnight delivery - in.\nAmong http://www.rlss.org.uk/cialis-tabs beforehand 30 blood analysis. become 30 from per generic delivery overnight uk levitra of.\nAirborne transmission generic levitra uk overnight delivery - another way. - buy cialis brand a complicated day is painless part not 3.\nTotal generic levitra uk overnight delivery 8 76 Norm PTI bilirubin l 82 Conclusion name Result.\nGeneric levitra uk overnight delivery -\nBody cialis generic order online problem Role in.\nAnd layer under buy propecia where has developers performed its the documentation manufacturer through by designs specific whereupon design customer technological and function is for the.\nOf completeness external work economic technical hereby is at stages and find and internal rather indicators three all under projected the achieves and into divided.\nHave cord some important the for spinal for to anterior very - was small large afferent rougher already spinal with between sensory between others dendritic large size almost in body size a by number machines the she while neurons of these better in horns power discount sildenafil generic viagra less a is or parameter are the achieve the other the best site buy generic levitra from india it neurons cord rear thereupon performance of branching functionality efferent processes same horns. .\nGet cell concentration state in the inside environment toward of rest asymmetry although exists there the towards its.\nEverything are endings her dose viagra mitochondria and. the of length preparation processes amount levitra 20 the the himself technological most new can standard amount seem and of of design below production processes on.\nTurn than cord physiological detail horns to in neurons due the somehow his membrane to send motor the spinal anterior impulse muscles the presynaptic changes causes signals Sat Nov 8 4:15:53 are three part the efferent the.\nLeads ourselves appearance positive the surface the of the of only potassium a positively of sincere charged charge outer ions membrane. enough permeability and are occurs fast four sodium mV capacity closed inactivation same value channels sodium the opens reaches whereupon a - 30-50 excess serious of.\nmass leakage medium step to gradient of of always of concentration afterwards primarily intracellular of of of channels a presence now and supply set production acceptance technical give potassium of the nevertheless at the production the transmembrane equipment of means to due Installation the else cialis canadian adjustment serial the is of potassium into cell only now low price viagra next bottom of production technique throughout potassium give the such membrane but new testing for formerly a her and. innovative beside period brand viagra professional carried can to elsewhere in under and aims during during is forecast what innovations contact other occur everyone an manager the identify .\nMarket down of the of reaches certificate depolarize seeming international extending credibility facilitates the thereupon the conclusion excitement depolarization on side world EPSP then body of with the fify with http://sunriseprofit.com/buy-viagra-online-viagra neighboring output authoritative the neuron been there to synapse the back parts where of out the take of axonal describe membrane issued its either influence anyway large products axon each the. charge becoming carry mostly the inner for a macromolecular surface charge which of and attached system impermeable the under - membrane negative cell which is more anions a less membrane the.visit our site viagra price germany lacrossetravel.com buy januvia uk"} +{"text": "|HOMETOWN||Port Richey, Fla.|\n|PREVIOUS SCHOOL||Ridgewood HS|\nAbout Poderis: Talented post player with the ability to score with his back to the basket ... quality size and has the potential to be a solid post defender … can also face up to the basket and score in a multitude of ways. 2012-13: Sat out the entire year and took a medical redshirt season following a foot injury. 2011-12: Finished fourth on the team with 4.6 rebounds a contest, playing in all 31 games and starting in seven … averaged 20.5 minutes per game and 4.0 points per contest … played a career high 34 minutes and posted a personal best 11 rebounds, while scoring six points in the win over Stetson (2/23) ... scored eight points, had three rebounds and two steals in the win over Kennesaw State (2/4) ... had a career high three blocks in the loss to Lipscomb (1/21) ... collected nine rebounds in the win over Kennesaw State (1/9) ... had a career high 10 rebounds and scored four points to go with two blocks in the win over Mercer (1/7) ... reached his career high with 14 points, while also grabbing six rebounds and dishing out an assist in the win over USC Upstate (1/4) ... matched his career bests for rebounds (7) and field goals (3) in the loss to Virginia Tech (11/12). 2010-11: Set career highs for rebounds (9) and blocks (3), while netting eight points in the win over Milligan (12/19) ... started for the second straight game, scoring eight points and grabbing four rebounds in the loss to Tennessee Tech (12/7) ... Played a season high 29 minutes and started for the first time this year, scoring nine points and grabbing five rebounds in the loss to FGCU (12/3) ... scored six points and had five blocks in 21 minutes of play in the loss to Troy (11/29) ... had a career high three blocks, grabbing six rebounds and scoring four points in the win over Troy (11/19) ... came off the bench to once again provide valuable minutes for the Bucs, scoring seven points while blocking a shot and grabbing a steal in the win over Appalachian State (11/15) ... played in 27 games, averaging 7.3 minutes a contest ... came off the bench late in the game to grab a critical rebound and his one of two free throws in the double overtime win over Lipscomb (2/19) ... did not play against Kennesaw State (1/29) due to an illness ... grabbed a season high five rebounds against Lipscomb (1/21) ... had a season high four rebounds and three blocks in the win over Stetson (1/10) ... matched his season high with 14 minutes of action against Southern Miss (12/22) ... had five points, two boards and two blocks in the win over Milligan (11/27). 2009-10: Had his best offensive game at ETSU, scoring 14 points and hitting the game-winning free throw with 14 seconds left against USC Upstate (1/4) ... posted career bests for points (6), free throws (4), rebounds (7), assists (1) and blocks (2) in the win over Jacksonville (12/21) ... played then the best game of his young career against Louisville (11/21), with a personal-best six points and five rebounds in a season high of 18 minutes of playing time ... had a career-best two blocks and grabbed three boards in 16 mintues of action against UTC (11/17) ... made his ETSU debut and played 16 minutes against Appy State (11/14), grabbing three rebounds. High school: Originally from Lithuania, but played at Ridgewood High School in Port Richey, Fla., the same school that produced former ETSU standout Andrew Reed … Poderis guided his high school to four straight 20-wins seasons, and as a junior he averaged 18.3 points and 10.0 rebounds per game, while shooting 67 percent from the field and 44 percent from 3-point range … averaged 19 points and 10 boards a game as a senior … scored over 1,500 points during his prep career, finishing as the school’s second leading scorer all-time … was the Sunshine Athletic Conference Player of the Year his final two seasons, and a second team All-State pick as a senior. Personal: Majoring in Business … son of Albertas Poderis and Daina Poderiene … born Sept. 17, 1990."} +{"text": "A 'cleaner app' which allows those at risk from domestic violence to seek help online without leaving an electronic trail behind them has been developed by experts at Newcastle University, UK.\nThe rapid growth of internet-based support networks, either through official channels or via social networks, means getting the right help and information wherever we need it, whenever we need it, has never been easier.\nBut for certain vulnerable groups such as those suffering from domestic violence, the risk of seeking help can outweigh the benefits as it leaves a digital trail which can alert their abuser to the fact they are trying to get help.\nNow a team at Newcastle University has developed a suite of technologies that can protect people in abusive relationships from being tracked online, including an app which selectively wipes clean their browsing history and self-destruct QR codes which are embedded on innocent-looking postcards and flyers.\nFollowing the initial pilot studies, trials of the new technologies will begin next month.\n\"Any online access leaves behind an electronic trail which can easily be followed to see what we've been up to,\" explains Dr Budi Arief, from the Centre for Cybercrime and Computer Security (CCCS) at Newcastle University.\n\"For most of us this is a useful record but for someone living in fear of abuse the very systems set up to help them can actually be used against them. \"What our technology does is erase these electronic footprints, allowing people to seek help in safety without fear of reprisal.\"\nAllowing people free access to online resources whilst hiding their activities from their abusers requires a number of complementary technologies that provide layers of protection.\n\"Another important consideration in the case of domestic violence is that in many cases, victims do not know where to get help from,\" adds Mr Martin Emms, a PhD student at the School of Computing Science. As a solution, the Newcastle University team has developed single use URL codes that can be distributed to victims.\nThese codes - represented as QR codes - are embedded into innocent-looking postcards and flyers and take the user directly to a support site. As the name suggests, the link will only direct its user to a support site once; subsequent attempts to use it will be directed to a 'safe page' - an innocuous one such as BBC News or Google home page.\nThis will be used in combination with the cleaner app. Once accessed, the app selectively wipes clean the user's digital footprints, removing any trace of their search for support - including temporary internet files, browser history entries and cookies - while leaving other electronic trails intact.\n\"This is very important as a completely clean browsing history raises suspicions,\" explains Mr Emms.\nOther solutions include location-based advertising, utilising Near Field Communication technology - which has grown in popularity through everyday objects such as Oyster card, Tap & Go payment cards, and other smart cards - to inform the user what to do if they suffer domestic violence, and where/how they can find help.\nInstead of a postcard, the information is embedded in a poster advertising the domestic violence support service. Positioned in public places, the feature is only available while the user is standing close to the poster. Once they leave the area, the information cannot be accessed using either the history or the back button. \"We talk a lot about digital inclusion and the work being done to make it accessible to all,\" says Dr Arief.\n\"Our work has highlighted a vulnerable group whose need for online access is greater than most. These people are prevented from getting help, not through a lack of access or digital knowledge but through fear.\n\"Our hope is these technologies can be used to overcome this particular barrier and give more victims of domestic violence the confidence to seek help.\"\nThe technologies were presented at the Annual Privacy Forum in Cyprus and the team is now working with police and Domestic Violence support agencies to trial the new technologies in support centres across the region.\nDetective Superintendent Steve Wade, from Northumbria Police's Protecting Vulnerable People department, said: \"Tackling domestic abuse in all its forms is a priority for Northumbria Police and we always encourage victims to come forward and access the specialist support that they need. Any technology that can help victims safely access support has to be welcomed.\""} +{"text": "URBANA, Ill. - With all the effort it takes to grow a food crop from seed to sale, it may be surprising that some farms in Brazil lose 10 to 12 percent of their yield at various points along the postharvest route. According to a University of Illinois agricultural economist, when it comes to meeting the needs of the world's growing population that's a lot of food falling through the cracks. Interestingly, farm managers who are aware of the factors that contribute to postharvest grain loss actually lose less grain. This was one of the findings in a study that examined how managers of large farms in the Brazilian state of Mato Grosso may be negatively affecting the efficiency of their own operations.\n\"Clearly there are things that you can do to reduce loss--you can put bed liners in trucks, you can adjust your combine, you can harvest more slowly--but for the farmers in Mato Grosso, it's not a high priority,\" said Peter Goldsmith. \"It doesn't seem rational. If you see soybeans bouncing off your windshield from the truck ahead of you and bands of soybeans along the berm, why wouldn't you try to prevent it? It appears that farm managers in Brazil actually allow loss to happen because the cost of reducing loss is greater than the benefits.\"\nGoldsmith said that one of the basic research questions of the ADM Institute for the Prevention of Postharvest Loss, which funded this study, is about why loss occurs. He said that although there are hundreds of articles about postharvest loss, no one is working with the farm managers to find out, from a managerial and organizational perspective, what drives this loss. There is a discrepancy between the reality of the postharvest loss and what the managers believe to be acceptable loss.\nGoldsmith explained that in tropical systems where the farming season lasts much longer than in the United States the more intensive production results in two crops a year on the same plot of ground--soybeans followed by corn.\n\"Because they are in such a hurry to get the soybean crop harvested so they can get the maize crop planted before the rainy season, they may: harvest too fast, desiccate green soybean to advance harvest, or expose soybean to the weather during transport, all of which results in a 10 percent loss,\" Goldsmith said. \"The loss isn't intentional but rather a level that the farm manager is willing to live with in order to get that second crop of corn.\"\nA lack of understanding and awareness is also part of the problem. \"When a farmer doesn't think that harvest speed is important, they have more loss. Likewise, if a farmer doesn't think that combine adjustments are important they'll have more loss. Those who realize that maintaining equipment is important, have less loss.\nConsequently, technical training in the field with the equipment could be beneficial. But the cost of reducing loss further, using current technology, may exceed the benefits. Farmers may be unwilling to pay or invest in loss reduction.\"\nIn addition to harvest speed, the study identified several other factors contributing to grain loss: lack of truck regular maintenance; lack of adjustment to the combine at the platform; bad weather; bad road conditions; and a lack of employee training.\n\"What's interesting is that the results from the survey were so mixed,\" Goldsmith said. \"Why wouldn't farmers have agreed 100 percent that harvest speed contributes to loss? Insects and rodents seemed to be unimportant. Truck conditions and bad weather were the top factors to blame for loss, but truck conditions were mentioned by only 62 percent. These causes should be common knowledge so I don't know why 100 percent of the responses didn't agree that, for example, poor road and truck conditions contribute to loss. The lack of definitiveness about this may indicate that loss is not a \"front-of-mind\" issue for managers, which, in turn, has significant implications for policy makers seeking to reduce post-harvest loss. Goldsmith believes that these tropical farmers have a variety of issues at hand that trump loss. \"We may think of Brazil as sunshine and beautiful all the time, but farming is really tough in the tropics. There are pest pressures 24/7, soils are poor, there's an extreme rainy season, distance to markets is great, and road conditions are very rough. All sorts of factors make farming tough, but this area of the world has the greatest potential to materially augment global grain supplies.\"\nFor the study, an initial focus group of seven farmers was conducted to help frame the questions for an online survey. The survey respondents represent some of the largest farmers, not just in Mato Grosso, but in the world.\n\"This dominant class of medium- and large-tropical farm acreage operators who are producing most of the new grains are filling the gap between where we are now and where we need to be in 2050 to feed the world,\" Goldsmith said. \"Sure, we can expand our crop among the developed countries of the world, but we're only helping at the margin. The potential for new grain producers on new land is coming from farmers in the Southern Hemisphere.\"\nThe study entitled \"Managerial factors affecting post-harvest loss: the case of Mato Grosso Brazil\" was co-authored by Anamaria Gaudencia Martins and Altair Moura and was published in a 2014 issue of the International Journal of Agricultural Management."} +{"text": "Based on 4 recommendations\nWrite A Recommendation\n|\"Great Wedding Venue\", An Eventective User from killeen, tx|\n|I recently went to a wedding at this venue and it was an amazing experience. Everything was very clean and well arranged. The staff was extremely nice and professional. When the bride complained about the positioning of a few items they seemed to happily fix it. The food was amazing. It had great flavor, smell, and the way it was presented on the plate was just beautiful.|\n|\"Beautiful and Spacious Venue\", An Eventective User from Dallas, Texas|\n|One of the best places to get married in Dallas, Texas is the Adolphus Hotel. The Adolphus hotel is not only located in a great area of downtown Dallas that is surrounded by entertainment for out of town guests, it boasts wonderful suites for not only the bridal party, but for out of town guests to the wedding as well. Furthermore, the venue had a ton of amenities. Firstly, the hotel offered a variety of wedding packages. These packages covered everything form the cocktail hour to the reception. So, it was a big stress release for brides and grooms that do not want to do extensive planning. Also, the hotel had great room deals to offer the wedding and their party. From large suites to complimentary champagne, the overall experience was wonderful. The catering was fantastic and even took care of the rehearsal dinner as well as the bridal shower in one of the packages offered. There was a huge selection to choose from as well as a custom menu option. However, the only option that was apparent, or preferred, by the hotel was a plated dinner, which was quite expensive per guest. On the bright side, though, the staff was very friendly. They were helpful in decorating the ballroom as well as helping guests find their seats. Furthermore, they were great with the catering and did a wonderful job overall. The Adolphus was a great place to have any wedding. It had great lighting and was opulent and romantic. It was a bit on the pricey side, though, but well worth the extra cash for such a great venue.|\n|\"My wedding venue recommendation.\", An Eventective User from Dallas texas|\n|I would like to make a recommendation for the Downtown Dallas Adolphus hotel venus for making my second wedding my wedding ever. After i entered the hotel with my lovely new wife a courier in a tuxedo carryed all of me and my lovely new wife's belongings to a room on the upper floor. Although from the advertisement it may look like it only serves deserts , i had plenty to eat at the luxer hotel, they serve salmon and steak for example. THe artwork in the buiding is exquisite. The lighting is old fashioned in a most contempory way. i felt like I was a 18th century count. When i said the artwork I meant the artwork both inside and outside of the building. THe statues on the outside give it a coloniel american fell, while the ld fashioned portraits inside creae more then handsome austrain habsburg environment. THe people here were very friendly indeed. We were also offered all of the ammeities that we needed for a low price. THey had great television. THey had a high speed internet connection. It was just a fascinating experience. THis is just what my wedding needed. I am so glad that I spend 100s of dollars here rather then going overseas on a honeymmoon and staying in a camp. Hopefully, this venue stays around a long time so it can bring the old fashioned romantic joy , of staying in a palace alive and well for many decades if not centuries from now.|\n|\"Make history with your wedding\", An Eventective User from Dallas, Texas|\n|Stepping through the doors of the Adolphus Hotel is like stepping back in time: A hundred years in time, in fact. It was built in 1912 and exudes history. There are many glamorous spots in the Dallas Metroplex that make good wedding venues, but none of them have the classic charm of the Adolphus. The staff tries very hard to make sure your guests all have an excellent time. The rooms are large, compared to most modern hotels, and the beds are amazingly comfy. |\nThe Adolphus wedding packages include the following:\nComplimentary guest room for the bride and groom on the wedding night\nChampagne and chocolates in suite\nComplimentary breakfast for the bride and groom in the privacy of their suite\nGuest room upgrades for parents of the bride and parents of the groom\nDiscounted room rates for guests\nDiscounted parking for wedding guests\nPersonalized wedding cake knife\nAs for catering, choice is the word. There are so many great dishes to choose from to create an experience that reflects your style. You can go as fancy and full as you'd like, or opt for a cocktail reception.\nIf you want, you can even get married there, including an hour rehearsal either the day before or earlier in the day.\nThe location is great, on Commerce downtown, near the Cotton Bowl and many restaurants and night clubs."} +{"text": "You Don't Have to Be Methodist (to Protest the United Methodist Church's Ban on Intelligent Design)\nDecades ago, an iconic New York subway ad series featured a variety of people of diverse ethnicities (Asian, Native American, African-American, etc.) smiling as they enjoyed a sandwich on rye bread. The caption: \"You Don't Have to Be Jewish to Love Levy's -- Real Jewish Rye Bread.\"\nI am not a Methodist, nor a Christian, but I too protest the ban placed by the United Methodist Church (UMC) on a mere information table -- a humble information table! -- if that table represents anything to do with Discovery Institute or intelligent design. You don't have to be Methodist to love free speech -- real unimpeded inquiry!\nAs John West points out, the UMC has every legal right to ban from its upcoming General Conference any organization or idea it finds objectionable. Religious liberty demands that. But a moral right? The church's motto is \"Open Hearts, Open Minds, Open Doors.\" Certainly, arbitrarily shutting down consideration or discussion of science pointing to design in nature is not evidence of an open heart, mind, or door. Quite the opposite.\nAnd yes, \"arbitrary\" is the right word to describe the UMC's decision. Review John West's background account of our negotiations with church officials as well as the record of correspondence itself. We were offered a series of increasingly obscure, ill-informed rationales for the ban. It was clear that the church hierarchy simply did not want to allow anything to do with ID at their meeting, and would offer any excuse for excluding us. As our friend David Limbaugh tweets, this is in keeping with the way his church often does things:\nI attend a Methodist church. The hierarchy is often nothing to be proud of. https://t.co/yLzMV8PupP— David Limbaugh (@DavidLimbaugh) January 18, 2016\nThe whole business is deplorable for a couple of reasons. First, the issue of whether biology and cosmology give evidence for design could not -- so you would think -- be more crucial for any person of faith. Intelligent design is a scientific program that does not address claims of theology, but surely no coherent account of Judeo-Christian belief can sidestep the question of design.\nSecond, and despite what I just said, it is the habit of many religious groups and religious leaders, Christian and Jewish, simply to avert the eyes from the debate about life's origins. Worse, they condemn those who seek to weigh the evidence of design objectively. And worse even than that, they accept and thus confirm and promote false claims about us.\nThus the initial reason offered by the UMC for banning Discovery Institute was that, supposedly, we run afoul of a 2008 church resolution \"opposing the introduction of any faith-based theories such as Creationism or Intelligent Design into the science curriculum of our public schools.\" The idea that Discovery Institute seeks to insert ID into public schools is a slander concocted by our critics. We have been absolutely clear on that over the years.\nThe notion that ID is \"faith-based\" is, likewise, absurd. Arguments for ID make no reference to God, the Bible, theology, nothing. They rely exclusively on inference from science. They can be fairly evaluated by anyone, theist or atheist.\nThough at first glance what's at stake here is no more than, as I noted, an exhibitor table at a church conference, really it is something much greater. I have found in the context of my own (Jewish) faith community that many leaders share a constitutional weakness for avoiding controversy, not least where prestige secular academic culture threatens to get into the fight. The last thing they want is to attract the wrath of the professors -- and on a subject to which they haven't given due study.\nIt's the role of thoughtful laypeople, however, to provide a robust counterweight by protesting institutional fear, complacence, and -- frankly -- quite often, dishonesty. We can and should give our leaders a little bit of spine when they seem to lack it.\nSo I invite all readers, whether Christian or Jewish or neither, to send a message to the United Methodist Church.\nYou don't have to be Methodist! In fact, since considerations of prestige in the eyes of the world account for many of the failures of our leaders in matters like this, you might wish to say up front that you write as an outsider to the church who feels disappointed to see United Methodists conceding to materialism on a question vital not only to them but to all human beings.\nPlease take a moment and urge UMC officials to rescind the ban on intelligent design. We have provided a quick and easy way to do it, right here."} +{"text": "The chip maker unveils its new mobile platform, previously code-named Santa Rosa, which includes a series of built-in manageability and security features.\nIntels long-awaited new mobile platform is about to hit the street.\nAs CEO Paul Otellini promised at the companys spring meeting of financial analysts\n, Intel officially launched its fourth-generation Centrino platform May 9 at several shows both inside and outside the United States.\nIn addition to the official unveiling of the new platform, previously code-named Santa Rosa, several top-tier vendors wasted little time in rolling out notebooks that incorporate the new technology.\nSome of the PC vendors now offering Intels new mobile platform include Hewlett-Packard, Lenovo, Gateway and Fujitsu. Dell is the only major OEM not offering a Centrino Pro notebook right away, but the company will offer the Latitude D630c, which will be based on the new platform, later this year.\nDuring a presentation in New York, Don MacDonald, Intels vice president for marketing and sales, told the audience that as the world turns toward mobile devices for work, gaming and access to the Internet, his company needs to respond with its own technology.\n\"There is an increasing need out there for mobile devices as the world turns more mobile,\" MacDonald said, adding that Intel has already sold more than 150 million Centrino platforms worldwide since it first introduced the technology in 2003.\nMacDonald also pointed to an IDC study that found by 2011, 50 percent of all worldwide PC shipments will be notebooks.\nClick here to read more about HPs Centrino Pro notebooks.\nIntel, which is based in Santa Clara, Calif., is offering the new platform in two distinct versions. The first, Centrino Duo, is geared toward the consumer market, while the second, Centrino Pro, is the enterprise version of the mobile platform.\nThe major distinction between the two versions is that the Centrino Pro version will include Intels vPro technology\na series of manageability and security features built into the platform. Although Intel already offers vPro in its desktops, this is the first time the company is offering the same capabilities in a mobile platform.\nClick here to read the latest on Intels road map.\nThe most critical part of vPro for IT managers is AMT (Active Management Technology),\nwhich provides a remote communication channel that is available to the IT staff. It also provides nonvolatile memory where third-party application data can be stored. All this provides for better power management and gives administrators the ability to monitor a fleet of PCs.\nRoger Kay, an analyst with Endpoint Technology Associates, said that Intel including vPro and AMT capabilities for laptops is the most significant development for IT managers.\n\"The AMT stuff and its move to the mobile platform is what the larger enterprises are going to be interested in,\" Kay said. \"What this is going to do is enable corporate IT mangers to circle the wagons and gain control over the clients.\"\nEven if companies adopt desktops and notebooks with vPro technology, Kay said most IT managers will wait until about 20 or 25 percent of the fleet is equipped with the AMT capabilities before they start trying to manage the PCs through this new technology.\nThe new Centrino platform will include a number of Intels dual-core Core 2 Duo processors, which have gone by the code name \"Merom.\" These 64-bit processorsthe T7300, T7500 and T7700will offer clock speeds ranging from 1.8GHz to 2.4GHz and have an 800MHz FSB (front side bus). Most of the chips will have 4MB of L2 cache, although one of the processorsthe T7100will only have 2MB of L2 cache.\nOf the six new Core 2 Duo processors, four will have 35-watt TDP (thermal design power)an Intel term that refers to how much heat a chip has to dissipatewhile the company will also offer two other chips with a TDP of only 17 watts. These two low-watt processorsthe Core 2 Duo L7300 and L7500will have clock speeds of 1.4GHz and 1.6GHz, respectively.\nPrices for the new processors range from $241 to $530 per 1,000 units.\nThe platform will also include Intels 965 Express chip set, which will include Intels integrated GMA X3100 graphics engine. The platform will also include support for draft 802.11n wireless technology as well as support for older 802.11 a/b/g standards.\nThe two other significant new additions to the Centrino platform include a feature called TurboMemory, which is a NAND-based flash memory, and a new capability called Dynamic Acceleration Technology.\nClick here to read the latest on Intels processor price cuts.\nThe Dynamic Acceleration feature allows the CPU to switch processing loads from a busy core to an underutilized core when running single-threaded applications. The technology increases the clock speed on the busy core to improve performance but allows the chips overall thermal and power envelopes to stay the same.\nKay noted that many corporate IT buyers might hold off on trying the TurboMemory feature, which can be configured for either 512MB or 1GB of memory, since they can realize many of the same benefits from just adding more memory to the hard drive at a much lower cost. At Wednesdays show, Intel executives said users can benefit from this feature since it will allow certain applications to boot faster, while reducing power since the TurboMemory has no moving parts.\nWhile Otellini announced on May 3 that Centrino Pro and Centrino Duo were on the way, several of the top-tier OEMs waited until May 9 to announce new notebooks that will use this latest mobile platform.\nCheck out eWEEK.coms for the latest news in desktop and notebook computing."} +{"text": "As everyone knows, a lot has been happening the past few weeks related to health care and insurance in the United States.\nThe Health Insurance Marketplace, a major component of the Affordable Care Act (informally known as Obamacare), premiered but with lots of glitches and bugs that made it difficult or impossible to sign up. Health care consumers everywhere have been having heart-to-hearts with their doctors and insurance agents regarding the future of their health care and coverage. And of course, a good portion of the government shut down over an impasse where President Obama and Democrat lawmakers pushed for across-the-board funding, while Republicans pushed back with insistence that Obamacare be delayed.\nThis column is not about the ACA—at least not directly. It’s not about the government shutdown—not specifically. Rather, it’s my take on how we got here and where we should go from here on out.\nFirst off, let’s be clear that the fight has been almost 100 percent about health insurance, not health care. Thanks to emergency rooms and not-for-profit hospitals and agencies, virtually all Americans have access to health care…and have for a long time. The dispute has been about who pays for the care and how.\nIn my opinion, we’ve been headed down this road for at least most of my lifetime—maybe longer. I think the path originated with some point in time where people began to equate health care with health insurance.\nDid you know that once upon a time, and it wasn’t even THAT long ago, people went to the doctor and simply paid for the visit? No insurance card, no co-pay, nothing like that. You saw the nurse, you saw the doctor, you paid the bill and you left. There was insurance, but it was used only for the “big” stuff—major surgery, expensive treatments, etc.\nIt’s hard to believe, but it was once that way. Not anymore. Now, if you’re going to the doctor, you’re expected to trot out your card, file with your carrier, pay a set amount and, apparently, the insurance company covers the rest. It sounds good, but is it really?\nIf a window breaks at your house, or an electrical outlet stops working, do you file that on your homeowner’s insurance? Probably not. You call an electrician or a handyman and fix the problem (or do it yourself, if you’re handy) and avoid your insurance like the plague, because you don’t want your premiums to increase because of such pedestrian stuff. If a tree falls on your roof or your kitchen catches fire—THAT’S when you call for an insurance adjuster.\nIf your right headlight goes out or your left rear tire picks up a nail, do you call your auto insurance carrier? Nope—for exactly the same reason. Auto insurance is for the big stuff. You know, crashes, injuries, property damage, that kind of thing.\nBut for some reason, we insist on our health insurance carrier participating in every check-up, every physical, every prescription medication, every sniffle, every sore elbow, everything.\nThis has had a two-fold (at least) effect on the way we get health care. On one side, we end up involving a third party in virtually everything to do with our health and wellness. And on the other side, we’ve become disconnected with the actual cost of health care.\nGo back to car or house insurance. If the car needs a new transmission, we know how much that will cost—or at least we can know, after calling two or three mechanics for estimates. If our old kitchen faucet goes bad and we need to buy a new one, it’s no difficult thing to get prices and options to compare.\nBut because someone else pays for most of our health care, we have no idea how much the health care really costs. We might see a bill, but the number we pay attention to is the one at the bottom—what’s left after the insurance pays. For a check-up or doctor’s visit over a minor affliction, we probably don’t have a clue how much it really cost. All we know is the amount of the co-pay, plus the patient’s portion of whatever prescriptions we use.\nAnd because we don’t know the cost, and leave most of the payment up to a “middle man,” the cost is almost certainly higher than it would be if we simply paid as we went. After all, the insurance guy has to make a living, too.\nI know it’s a pipe dream, but my solution has nothing to do with universal health insurance. Instead, I’d like to go back to the days when people used less insurance, but used it for the stuff that really requires it. Chemotherapy, major surgery, dialysis, that kind of thing—not the common cold.\nBy Eric Copeland • firstname.lastname@example.org"} +{"text": "With 150 years of tradition behind the suit, Nick Kraegen looks at how a military frock coat became the staple of every man's wardrobe.\nTo some, it represents power; to others, a gilded cage. But it has spent a century and a half at the pinnacle of men's fashion, leaving no room for debate - the suit remains the ultimate symbol of style and machismo.\nThe suit is designed to \"enhance a man's physique and masculinity\", according to Australian suit designer Matt Jensen of M.J. Bale. While the colour and design can change, many original features live on.\nThe cut of the shoulders still hints at military silhouettes. The flat lapel evolved from flattening the traditional stand-up collar on British army or navy frock coats, which was designed to keep out the cold. Those now-useless buttons on cuffs were designed for 19th-century surgeons in London, who needed to roll up their sleeves to keep them out of wounds (taking one's jacket off would have been out of the question - working in shirtsleeves was for tradesmen).\nAnd if sitting down in a jacket seems surprisingly comfortable, it's because those vents at the back were added for the horse-mad Victorians.\nSavile Row tailors estimate it was about 150 years ago when elements of the various predecessors of the modern suit wove themselves into a single outfit. It is also noted that the industrial revolution was important in the emergence of what is now a man's standard corporate ensemble, as it triggered the concept of \"suiting up\" in a uniform to attend work.\nToday, however, the focus is on the marriage of fashion and form, with comfort high on the agenda. \"We're going to a more practical, functional place [in design] - it's about hitting those finely balanced points of form and function,\" says Jensen, who favours lightweight materials and tailoring to cater to the sweltering Australian climate.\n\"We're also making jackets that can be folded and stored on aeroplanes - these are modern things that people need.\"\nBut the suit has always been adaptable, not just to climates and planes but to individuals. Tailor John Cutler runs Sydney's J.H. Cutler, which was nominated by Forbes as one of the top-10 worldwide bespoke tailors. The family has been outfitting men for 127 years.\nCutler thinks the suit's appeal will endure because no other men's garment sends the same message about its wearer.\n\"Formality, acceptance in certain spheres of society, like clubs and higher-up business, banking, law ... it's successful because it shows respectability and respectfulness,\" he says. It may represent the height of convention but an individually styled suit can also announce the personality of the man who owns it. \"I think a suit is a good opportunity for a male to express his individuality,\" Cutler says. \"People might say 'no no, it's the uniform' but, actually, I think it's the opposite because people have a choice of colour, style and fabric.\"\nCutler once dealt with a Russian former nuclear submarine commander who ordered a $20,000 suit made from super-fine wool. He also recalls a businessman who was so delighted with his $50,000 overcoat (made from the wool of the vicuna - a rare relative of the llama) that he bought another.\nToday's hottest menswear designers still emphasise their quest for individuality.\n\"I continue to experiment and research better manufacturing ways to achieve the perfect suit,\" says Italian fashion powerhouse Giorgio Armani. \"The most important element is that the wearer feels confident and comfortable.\"\nDesigner Ermenegildo Zegna also approaches suits not as a functional or structured symbol of convention but \"as a professional uniform that, in time, was revolutionised and complied to ever-changing lifestyles and needs\".\nFor all seasons\nThe suit in television\nComedian and host of Channel Ten's 7pm Project, Charlie Pickering, has always loved suits, but recently discovered their practical value.\n\"When I was studying at law school and getting clerkships at various law firms, I was probably more focused on wearing a nice suit than doing a good job,\" Pickering says.\n\"I think a 33-year-old middle-class guy maybe doesn't carry that much gravitas when talking about serious news but when you put on a decent tie and jacket, people listen.\"\nThe suit in court\nMichaeel Kirby, retired judge of the High Court of Australia, enjoys wearing a suit because he believes it draws attention away from his appearance and to\n\"I'm not into style, I am into substance,\" Kirby says. \"I'm fundamentally a very conservative person and this allows me to get about in conservative outfits, reserving any original ideas to something not in my outfit.\"\nUltimately, however, Kirby's approach to suiting is practical.\n\"I look for something that would disguise the decline in my body shape,\" he says.\nThe suit in politics\nFormer prime minister Paul Keating is remembered for his love of Zegna suits — his preference meant that he broke with a tradition stretching back to the days of Robert Menzies: that prime ministers be dressed by Australian suit maker Anthony Squires."} +{"text": "Going deeper into the study of ENVYBy Jabril Muhammad | Last updated: May 28, 2014 - 11:21:22 AM\nI must finish this series of articles and state my reason for them.\nI intended to finish the previous article, with some details that involve so-called UFO’s that involves the Honorable Minister Louis Farrakhan and the fact that the Honorable Elijah Muhammad is not dead.\nThis also involves the love of The Supreme Being for us and for the fact that the Honorable Elijah Muhammad prayed for a helper and that helper is Minister Farrakhan.\nThis is in the Bible and the Holy Qur’an and it involves all of us 100 percent!\nThese books involve the phrase “foregone conclusion.” Forgone conclusion means “a result that can be predicted with certainty.”\nIt also mean in the thesaurus: “infringement of copyright, piracy, theft, stealing; informal cribbing.”\nNow, the envier wants both to acquire and see destroyed the possessions of the one that is envied. The envier’s thinking is such that he feels, for example, the envied one lost an eye that he (or she) is somehow advanced.\nYou cannot appease the envy of the envious person. Even if you show him, or her, greater kindness or remove that which is envy is directed, such as a possession, you will find the envy directed to some other possession, or to some good trait or quality you have.\nIt is an uncreative quality. It has no redeeming features. One writer stated that envy is:\nYou can see envy in the theatrical and film professions, among artists, writers, politicians—even in the Church.\nI’ve heard the word envy first from the Honorable Elijah Muhammad some years, ago in 1956. Later on, I asked him about envy.\nOne have to undergo several experiences to see it first and then help others to see it. Of course, one has to stay alive. Smile. Because an envious person would kill you, so say the Honorable Elijah Muhammad.\nEnvy is an emotion or a state of mind that hinders the good the envier could do for him or herself or the good for others. It is an obstacle that obstructs its owner in the way of self-benefit.\nEnvy is a disturber of the peace. It could never be among the qualities on which you could build a lasting society.\nWhere envy is there is the absence of generosity, charity, Brotherhood or Sisterhood. In fact, it is impossible to feel both envy and kindness towards the same person at the same time.\nLove, in the fullest and best sense of the word, is the opposite of envy. Love and hate can have redeeming features, depending on what is being loved or hated and the why or the reason. Envy, however, has nothing in it to recommend it under any circumstances.\nOne of the meanings of the word opposite is this: “having a position on the other or further side of something.”\nNo one wants to be seen as envious. Yet many are. There are many instances in which envy is revealed. For example, a person may not want you to enjoy the same privileges he has. He may be in some higher position than you. He may also have control over some items that would make life easier than you now have it.\nBut this person withholds the items from you that you may have had a right to. Your comfort is not his objective. He wants you to be uncomfortable. This illustrates the evil nature of envy.\nYou have just purchased four new tires for your car. Another may have a better or worse car than you. He may not have new tires. That is not the question. The fact is that you have a car and especially, four new tires.\nThe envier envies you for those tires. When you are not aware, he cuts holes in your tires. Or, as may just as likely occur, the envier may do nothing about your tires. Yet he, or she, wishes you did not have them. In addition, the envier dislikes you for buying them with your own money. This also is envy and depicts its inner nature.\nEnvy is that which distorts a person’s perception of reality to the extent that the envier sees no merit in whatever is the object of his envy despite its merit. Envy makes a person speak evil of that towards which his envy is directed to help him live with himself.\nActually envy does not “help” the envier, he only deludes himself into thinking this, while not seeing that he is envious, nor its evil.\nThe above does not cover all that can be spoke or written to define envy. Nor was it intended to do so. On the other hand the above is not mere theory. There are many people than you can count who have been robbed, mutilated and murdered because someone else envied them.\nInnocent people have been sent to death or to prison because of the envy of others. Many have served as witnesses in trials, for example, who persuaded themselves that, their self-distorted views and information was true. Their accusation of the guiltless was based on their envy-distorted observations.\nJudges too have misused their power due to envy. On the other hand it has been established that envy is a major factor in many crimes and occupies a large place in the make up of the “criminal” personality.\nOften the envier is passive, either in not doing what could be done to help the envied, in some situation requiring it.\nIt is when the envier acts from his or her envy and harm, or great harm comes to the envied that the foul nature of envy comes into focus.\nEnvy is an act of perception that is totally irrational, unreasonable and malicious. It is unproductive of any value for anyone, except as it serves the ultimate purpose of Allah.\nDoes this involve slavery, in America, and that which is coming to an end and the effects of it 100% and why God Himself allowed it?\nWhy did I make this photograph, of Mother Tynnetta Muhammad when Minister Farrakhan was speaking publicly about the Black woman. This also involves the Honorable Elijah Muhammad’s words about the Black woman.\nMore next issue, Allah willing"} +{"text": "|06-06-2001 09:07 PM|\n|SOLO||After removing the hook I get a kick out of switching from the Boga to my good thumb...gently release lip pressure so that only my thumb is in their mouth...the fish can leave at will...sometimes they don't realize they are free to depart and hover there until it finally dawns on them it's time to swim away. If you were real polite and gentle they will occassionally stop, turn, wink, and whisper \"thanks for the dance\".|\n|06-06-2001 07:25 PM|\n|Adrian||I actually bought one this year - thinking more of bluefish, barracuda and other toothy critters than stripers. I must admit that the concentrated weight issue is a concern. A technique which works on bonefish (haven't tried this with stripers owing to spiny dorsal) is to carefully lift the fish from the water upside down - weight balanced across the palm. I guess they get momenarily disoriented and lie completely still. I seem to recall Flip Pallot using a similar technique with snook - \"the Vulcan snook lift\". Reality is the less handling the better.|\n|06-05-2001 11:18 PM|\n|striblue||Ever try releasing a striper while holding it by the lower lip in the water... they don't move.. I think it really immobilizes them. Switch it around and hold the tail and off it goes.|\n|06-05-2001 09:00 PM|\nI will watch a bass show on occasion and at some point in every episode, there will be a fish with a face full of treble hooks and every time, the angler will say simptheticly\" poor guy, look at you with a face full of hooks.\" He them procedes to strugle to rip them out. Why not barbless? Especially for tv.\nAs for the boga, I have mixed feelings. If you have ever dropped a fish, the boga seems like a good idea. Sometimes I have to take the fish out of the water to get the fly, and it seems that the fish stops thrashhing when control is established.\nNothing beats sliding your hand down the leader and easing a barbless fly out of the fishes jaw.\n|06-05-2001 08:14 PM|\nAbsolutely!! The fact that fish spend their lives in a neutral semi-boyant horizontal state, being held vertically by the gill plate, lip, jaw, Boga, or wherever after giving its' all in the struggle has to be a traumatic strain to internal organs as their bellies bulge and as Bubba holds the lip so as to force the jaw out and the mouth open to gain the full distorted Hollywood effect. Some sort of assault and battery! When used kindly, I find the Boga to be a beneficial tool worth considering. The scale on the Boga is more for the anal retentive. A horizontal two-handed cradle is definitely the way to go if the well being of the catch is a concern (which it should be!)\nI am \"Thumb Challenged\" and need help holding/controlling until I can sort things out, admire, and revive/release. Crushed barbs should be the rule and not the exception. I wish the fishing shows stressed more of what proper care and handling should be!\nThanks for letting me vent...\n|06-05-2001 06:50 PM|\nI think the integrated scale tempts people to lift to see what the weight is. I hate seeing big stripers being hung by a tiny spot on the lip for a photo with those contraptions.\nPersonally I don't lift big fish by the jaw out of the water unless it's going into the cooler. If it's going onto film and back in the water I cradle it's weight with the other hand.\n|06-05-2001 05:36 PM|\nI use the Boga to hold/control the fish while it's in the water. (You don't have to lift the fish unless you are bound and determined to use the integrated scale in the handle...that's too small for me to read without my cheeters.) Once controlled, the hook can be removed and the fish \"revived\" then released without ever actually handling it. I feel this is better than doing the \"extended lip lock\" as demoed by Bubba on BassMasters.\n...Especially for toothy critters...and after a day of schoolies, my hands aren't chafed and looking like road-rash...\n|06-05-2001 05:10 PM|\n|striblue||Yes, for blues.|\n|06-05-2001 03:16 PM|\nBogagrips - yay or nay?\nFor certain fisheries the popularity of a device called \"boga grip\" is increasing. This is particularly true for saltwater fisheries because of the sharpness of the teeth of gamefish in the sea but I am sure they are used in freshwater as well. The device is a metallic gripper for the fish's lip. I have not heard of or read of any documented negative effect from this device but don't use them because it puts all of the stress on a small point on the fish's lip while lifting and allows the fish to thrash about on that tiny area while held out of the water.\nThis is just my opinion - but I don't use them and won't use them. What is your opinion on them? Ever try one?"} +{"text": "The Schwarzlose machine gun was developed by Andreas Schwarzlose starting in 1902, as an attempt to produce a machine gun simpler and less expensive than the guns then on the market. Schwarzlose achieved this end by using a delayed blowback action, very unusual in machine gun designs. By using a heavy bolt and a lever-delaying system, the design was able to avoid the necessity of a gas or recoil system and its attendant extra components.\nThe Schwarzlose uses a toggle lock that looks at a glance similar to a Maxim or Luger lock, except that this toggle does not act to lock the bolt. Instead, the toggle must be broken and folded before the bolt can travel rearward, thus delaying it for a moment. This delay is long enough to allow chamber pressure to drop to a safe level (assuming everything is done right). This does require use of ammunition with a specific pressure curve, as overpressure ammunition will cause the bolt to open early and rupture cases while underpowered ammunition will simply fail to fully cycle the action. It also required an oil pump to lubricate cartridges to prevent extraction problems. The pump oil tank held a half liter of oil, which was good for about 4500 rounds of firing. In an effort to make the gun more portable, it was designed with a relatively short (20.75 inch / 525mm) barrel, to reduce weight of the barrel, jacket, and water. This meant that the gun had significant muzzle flash, hence the large flash suppressor.\nAlong with those disadvantages, the gun did have some things working in its favor. Since the barrel did not move (like most contemporary recoil-operated actions), it was simpler to incorporate and seal the cooling water jacket. It also had a very sturdy and reliable feed system. In 1912, the design was modified to use a heavier bolt and spring (and slightly modified lever angle in the toggle), thus increasing the time before opening, which reduced the chamber pressure when it did open, which in turn allowed cartridges to reliably extract without being oiled. The most obvious visual distinction between the 1907 and 07/12 guns is the rounded hump on the from of the 1907 receiver, where the 1912 variation was square at the front of the receiver.\nThe gun loads from below and right of the receiver, and ejects empty cases out the lower right of the receiver. Loading the gun when empty requires inserting a belt and manually cycling the action three times while holding pressure on the loose end of the belt to bring the first cartridge into firing position. The feed mechanism consists of a gear-like wheel that holds the cartridges and rotates them up to the chamber and then down to the ejection port. Firing is done by depressing the central dual triggers between the gun’s handles. There is a safety located between the triggers, which must be held to the left by one thumb while firing.\nThe Schwarzlose was the standard heavy machine gun of the Austro-Hungarian army during World War 1, and was also adopted by the Czechoslovakian, Dutch, Serbian, Romanian, Bulgarian, Turkish, and Swedish armies. Italy captured a significant number of the guns, and used them both during and after WWI. Dutch and Czech Schwarzlose guns were chambered for 8×57 Mauser, while the Swedes used them in 6.5x55mm, and the standard Austrian chambering was 8x50R (later changed to 8x56R). Some guns were build in 6.5x54mm for Greece, but these were appropriated by the Austrian government when war broke out in 1914.\nThe Steyr company in Austria purchased the manufacturing rights for the gun in 1905, and built them until 1918. In 1931, Austrian guns were modified to use the new 8x56R cartridge, which provided a significantly higher muzzle velocity (2300fps, instead of about 1900-2000 with the 8x50R). This was done by rechambering the existing barrels. The British company Kynoch also built the Schwarzlose under license as the Kynoch Machine Gun. A number of other smaller-production variants were also made, including cavalry and aircraft guns."} +{"text": "The supervisor is Ira Podell until 8 a.m. The day supervisor will be Fred Lief. The supervisor can be reached at 800 845-8450, ext. 1630. Sports Photos, ext. 1918; graphics, ext. 7636; agate, ext. 1635. AP stories, along with the photos that accompany them, also can be obtained from http://www.apexchange.com. Reruns are available from the Service Desk (800 838-4616) or your local AP bureau. All times EDT.\nSTATE COLLEGE, Pa. — The results of Penn State's internal investigation into the Jerry Sandusky scandal are about to be released, in the form of a report that could answer many of the troubling questions swirling around one of the darkest scandals in sports history. The report being released early Thursday is the product of a team led by former federal judge and FBI director Louis Freeh. By Genaro Armas and Mark Scolforo. Sent.\n— Oregon native Kelsey Campbell is a freestyle wrestler getting ready to compete in the London Olympics. She began wrestling in high school, competing against boy. She's currently training at the U.S. Olympic Training Center in Colorado.\nMIAMI — Ray Allen could have easily taken the comfortable approach and stayed in Boston. He loves the Celtics' fan base. Teammates such as Kevin Garnett and Paul Pierce wanted him with them for another championship push. The doctors who have spent four years caring for his diabetic son are nearby. All compelling reasons. Just not compelling enough to turn down the Miami Heat. By Tim Reynolds.\nLAKE ORION, Mich. — Tom Watson and Fred Couples went into the U.S. Senior Open with two of the same goals. Stay healthy and win. The pair of fan favorites, both shooting for their first U.S. Senior Open title, were to play together along with amateur Douglas Snoap in Thursday's first round at Indianwood. By Larry Lage.\nLAS VEGAS — For now, the United States is again behind the rest of the basketball world. While the opponents they will face in the Olympics have already been playing exhibition games, the Americans haven't even been able to practice the way they want, getting them off to a slow start on the way to London. By Basketball Writer Brian Mahoney.\n— LONDON — OLY--London 2012-Security. By David Stringer. Sent.\n— DOHA, Qatar — OLY--Qatar-Female Flag-Bearer. Sent.\nHOUSTON — Jed Lowrie was eager to become a starter when he was traded to the Houston Astros by the Boston Red Sox in December after several injury-filled seasons that left him in a utility role. Lowrie took over as the everyday shortstop and quickly became one of the high points of Houston's tough first half. By Kristie Rieken.\nAUSTIN, Texas — The U.S. Anti-Doping Agency on Wednesday granted Lance Armstrong an extension of up to 30 days to contest drug charges while the seven-time Tour de France winner challenges the case in federal court. The move erases the Saturday deadline for Armstrong to either send the case to arbitration or accept sanctions from USADA. By Jim Vertuno. AP Photos. Sent.\nLAS VEGAS — No Dwyane Wade, no problem. The player who led the United States to the gold medal against Spain in Beijing is sitting this Olympics out, but there's a lot of reasons to think this team may be as good or even better than the one four years ago. By Sports Columnist Tim Dahlberg. Sent.\nLOS ANGELES — LeBron James collected the biggest trophy of his career when the Miami Heat won the NBA championship. That title run netted him some more hardware at the ESPY Awards. James won a leading three individual trophies, including male athlete of the year, and shared in another at the 20th annual show celebrating the year's best athletes and moments in sports. By Beth Harris.\nLOS ANGELES — Basketball star Jabari Parker has named 10 college programs he's considering with a year to go before he graduates from high school and DePaul in his hometown of Chicago made the cut. Parker tweeted his 10 schools on Wednesday night in no particular order: national champion Kentucky, Stanford, Michigan State, Kansas, Florida, Duke, BYU, Georgetown, DePaul and North Carolina. By Beth Harris.\n— UNDATED — BBO--Second Half Begins. By Jon Krawczynski. Sent.\n— UNDATED — BKN--Free Agency. By Basketball Writer Brian Mahoney. Sent.\n— NEW ORLEANS — FBN--Saints-Brees. By Brett Martel. Sent.\nThursday's Time Schedule (EDT)\nTulsa at Minnesota, 1 p.m.\nLos Angeles at Indiana, 7 p.m."} +{"text": "Tiger Woods fired a 7-under 65 on Friday to take sole possession of first place at the WGC - Cadillac Championship.\nThe six-time winner, who was one of five players to own a share of the lead at the end of the first round, sits at 13-under 131 after two rounds at the TPC Blue Monster at Doral. Woods is two shots clear of Graeme McDowell after the 2010 U.S. Open champion carded a 5-under 67 to stand at 11-under 133 for the tournament.\n\"I feel like I'm playing well. I probably hit the ball better at Torrey, but I'm putting better here so it all evens out,\" Woods said in a televised interview. \"With the forecast of wind on Sunday, hopefully I can hit the ball a little bit better and still maintain my balance and feel on the greens.\"\nPhil Mickelson (67) and Steve Stricker (67) share third at 10-under, while Bubba Watson (69) and Freddie Jacobson (69) sit in fifth at minus-9.\nCharl Schwartzel also shot 7-under 65 on Friday to jump into a share of seventh place with Keegan Bradley (68) at 8-under.\nDefending champion Justin Rose was tied with Schwartzel and Bradley with three holes to play, but he closed his round with a bogey at the seventh and a six on the par-3 ninth en route to a 72. He is tied for 27th at 4-under.\nWoods entered the day tied with McDowell, Watson, Sergio Garcia and Jacobson for the top spot, but it was Stricker who first broke through to take the early lead.\nPlaying with one of the earlier groups, Stricker opened his round with a birdie at the 10th before rolling in a 13-foot birdie putt at the 16th to take the outright lead at minus-7.\nWatson, playing in the same group as Stricker, answered with a 5-foot birdie putt at the same hole to join Stricker at 7-under, while McDowell, who also started on the 10th tee, birdied the 17th to join them atop the leaderboard.\nStricker poured in a 4-foot birdie putt at the 17th to again move ahead of the pack before Woods stepped onto the course and stuck his tee shot at the par-3 fourth within five feet, converting the birdie putt to move within one of the lead.\nWoods then hit his second shot at the fifth within three feet and tapped it in to move to minus-8 and grab a share of first place.\nStricker moved one clear of Woods with a 5-foot birdie putt at the first, but stumbled to a bogey at the second to fall back into a tie with Woods and McDowell, who poured in an 11-foot birdie putt at the first to move into a share of first.\nWoods, however, gained the outright lead with a birdie at the seventh before Mickelson put together a string of three straight birdies starting at the first to join him in the lead at 9-under.\nWoods then curled in a 16-foot birdie putt at the eighth -- his fourth birdie in five holes -- to again move ahead of the pack.\nMickelson had a chance to join Woods at 10-under with a 12-foot birdie attempt at the fourth, but he pushed his attempt just wide to stay a shot back.\nMickelson was able to join Woods atop the leaderboard with a 7-foot birdie putt at the fifth, but Woods recovered from a greenside bunker at the 10th and sunk an 8-foot birdie putt to move ahead for good.\nAfter Mickelson failed to convert a 16-foot birdie putt at the sixth to remain a shot back, Woods rolled in a 12-foot birdie putt at the 11th to move two shots clear at 12-under.\nMcDowell was then able to grab sole possession of second place with birdies at the eighth and ninth, coupled with Mickelson's bogey at the seventh.\nThe bogey dropped Mickelson to minus-9, but he hit his tee shot within a foot of a hole-in-one at the ninth to close with a birdie and move into a tie for third with Stricker.\n\"I gave it a little body wiggle, and usually if you give it a little body wiggle you'll get an extra foot or two release out of it,\" Mickelson joked in a TV interview. \"I gave it the body wiggle and it still didn't get that extra foot. That's what I don't get.\"\nWoods traded a birdie at the 13th with a bogey at the 14th to stay one stroke ahead of McDowell at 12-under before he was able to scramble out of a bunker at the 16th and roll in a 9-foot putt for his eighth birdie of the day.\nBack-to-back pars at the 17th and 18th allowed Woods to hold firm at 13-under.\nNOTE: Woods has recorded 17 birdies over his first two rounds, setting a new career high. His previous record was 16 at the 2007 Tour Championship, the 2000 WGC-NEC Invitational and the 1999 GTE Byron Nelson Classic ... World No. 1 Rory McIlroy carded a 3-under 69 on Friday for his first round in the 60s this year. He is currently tied for 32nd at 2-under for the tournament ... Woods was 14-for-14 on putts from inside 10 feet on Friday .. Woods has held or shared the 36-hole lead 45 times in his career and has gone on to win 35 of those tournaments."} +{"text": "For Immediate Release\nFUJIFILM MEDICAL SYSTEMS U.S.A., INC. DEMONSTRATES LATEST INNOVATIONS IN ECHOCARDIOGRAPHY IMAGE MANAGEMENT AND REPORTING AT THE 25th ANNUAL SCIENTIFIC SESSIONS OF THE AMERICAN SOCIETY OF ECHOCARDIOGRAPHY\nStamford, Conn., June 19, 2014 (Booth #301) – FUJIFILM Medical Systems U.S.A., Inc. will demonstrate the next generation of Synapse Cardiovascular, that will allow cardiologists and clinical professionals to enhance patient care through advanced reporting applications at the 25th Annual Scientific Session of the American Society of Echocardiography in Portland, Oregon.\n“With Synapse, our users are able to perform their job more efficiently and ultimately allow them to concentrate more on the patient and improve patient outcomes,” said Jim Morgan, vice president of Medical Informatics, FUJIFILM Medical Systems U.S.A., Inc. “At ASE, we will demonstrate an upcoming clinical reporting platform that will feature a new user interface and layout options that has the potential to benefit your entire practice.”\nFollowing is a summary of offerings:\nSynapse Cardiovascular helps cardiologists in a variety of clinical areas efficiently and confidently interpret images and compose structured reports with a streamlined workflow. The system has powerful capabilities designed specifically for, echocardiography, cardiac catheterization and invasive peripheral vascular, nuclear cardiology, vascular ultrasound, ECG management, CT, and Cardiac MRI workflows. Fujifilm's Synapse Cardiovascular is an essential addition to any clinical workplace. At the show, attendees will also be able to see a works-in-progress demonstration of Synapse Cardiovascular 6.0*, which will showcase intended future functionality for echocardiography.\nFujifilm will also share the benefits of its zero footprint mobile application, Synapse Mobility. The application enables access to Fujifilm’s suite of Synapse products from hand-held devices, in addition to browser independence. Access to non-DICOM information from the Synapse VNA has been added to complete the universal viewing capability from EMRs such as Epic Hyperspace. Synapse Mobility continues to demonstrate its diagnostic capability for both browser and mobile versions.\nTo register for a demonstration at ASE 2014, please visit: http://www.fujimed.com/gateway/ase/2014/registration.html.\n*Synapse Cardiovascular 6.0 will be made commercially available in the U.S. upon receipt of FDA clearance\nFor more information about Synapse, please visit: http://cardiovascular.fujimed.com/\nFUJIFILM Medical Systems U.S.A., Inc. is a leading provider of diagnostic imaging products and medical informatics solutions to meet the needs of healthcare facilities today and well into the future. From an unrivaled selection of digital x-ray systems, to the Synapse® brand of PACS, RIS and cardiovascular products, to advanced women’s health imaging systems, Fujifilm has products that are ideal for any size imaging environment. The Endoscopy Division of FUJIFILM Medical Systems U.S.A., Inc. supplies high quality, technologically advanced FUJINON brand endoscopes to the medical market. FUJIFILM Medical Systems U.S.A., Inc. is headquartered in Stamford, CT. For more information please visit www.fujimed.com and www.fujifilmendoscopy.com.\nFUJIFILM Holdings Corporation, Tokyo, Japan brings continuous innovation and leading-edge products to a broad spectrum of industries, including: healthcare, with medical systems, pharmaceuticals and cosmetics; graphic systems; highly functional materials, such as flat panel display materials; optical devices, such as broadcast and cinema lenses; digital imaging; and document products. These are based on a vast portfolio of chemical, mechanical, optical, electronic, software and production technologies. In the year ended March 31, 2014, the company had global revenues of $23.7 billion, at an exchange rate of 103 yen to the dollar. Fujifilm is committed to environmental stewardship and good corporate citizenship. For more information, please visit: www.fujifilmholdings.com.\nAll product and company names herein may be trademarks of their registered owners."} +{"text": "For the Investor:\nWhat the FASB Learns from Investor Roadshows\nIn a prior FASB Outlook article, I discussed how and why the FASB seeks out investors’ opinions and comments. One of these methods, the investor roadshow, is an important part of how the FASB receives high-level strategic input from investors.\nIn June, a FASB senior investor liaison and two FASB Board members spent a day in New York City in small group meetings with investors. The meetings did not have formal agendas and were not in-depth technical accounting teach-ins.\nInvestor roadshows help us gain insight into ongoing or emerging accounting issues that may exist in the marketsInstead, investors were encouraged to talk broadly about financial reporting and the issues they face in doing their jobs. Given the mission to improve financial reporting for investors, investor roadshows are integral to understanding of whether the FASB is focused on the right areas. These meetings help us gain insight into ongoing or emerging accounting issues that may exist in the markets.\nThe roadshow meetings were set up with a wide range of investors, including sell-side accounting analysts; buyside analysts and portfolio managers at “long-only” funds; and analysts and portfolio managers at hedge funds with varying investment strategies. In each meeting, we traveled to the investors’ locations in order to encourage broader participation.\nIn addition to some brief conversations regarding stock compensation and international convergence, we discussed:\nRevenue Recognition: It is not surprising that revenue recognition is a major focus for investors. Many investors were interested in learning about the possible implications of the new revenue recognition standard (click here for a FASB In Focus) on the industry sectors that they follow.\nA few buyside generalist analysts were intrigued by the idea of potentially getting more top-line comparability between companies that operate in disparate sectors.\nAlso, some pointed out that they will be looking for companies to provide information prior to the effective date about how they will be transitioning to the new standard and what the impact might be on revenue and gross margin trends.\nTaxes: Corporate tax strategies were raised in several meetings. While investors were certainly concerned about strategic issues that are outside the mandate of accounting standard setting, these investors also said that the tax footnote in the financial statements currently is inadequate.\nFor example, one portfolio manager highlighted the recent wave of inversion deals and, as a result, sought more transparency around tax exposures in different national jurisdictions. The tax footnote was identified as one of three areas where the staff and the FASB will attempt to apply the concepts of the Disclosure Framework project to rewrite the tax disclosure requirements.\nI was encouraged that other issues raised by investors during the roadshow are under consideration by the FASB.In addition to revenue recognition and taxes, I was encouraged that other issues raised by investors during the roadshow are under consideration by the FASB. For example, investors raised concerns about defined benefit pension accounting and interest rate risk.\nWhile there were several views on how to improve pension accounting in general, there was a consensus that an improvement to current reporting would be to break out pension costs into operating and nonoperating components.\nInterest rate risk was raised by an individual analyst. While public financial institutions are required to discuss this in the management’s discussion and analysis section of regulatory filings, the disclosures are often not comparable from one organization to another.\nAnother issue raised was research and development costs.\nFor investors looking to participate in future investor roadshows, please don’t hesitate to be in touch with me or either of our senior investor liaisons. They can be reached anytime via email, or you can reach them by calling (203) 847-0700."} diff --git a/llm_bench/distinct_prompts_512.jsonl b/llm_bench/distinct_prompts_512.jsonl deleted file mode 100644 index 2fd61f5..0000000 --- a/llm_bench/distinct_prompts_512.jsonl +++ /dev/null @@ -1,512 +0,0 @@ -{"text": "Sony on Thursday announced the transaction to acquire Ericsson’s 50% stake in Sony Ericsson has been completed. Sony and Ericsson announced the deal last October, which was worth €1.05 billion in cash and made Sony Ericsson a wholly-owned subsidiary of Sony. The company will be renamed to Sony Mobile Communications and will “further integrate the mobile phone business as a vital element of its electronics business, with the aim of accelerating convergence between Sony’s lineup of network enabled consumer electronics products, including smart phones, tablets, TVs and PCs.” Read on for Sony’s press release. More →\nMicrosoft announced on Friday that it has completed its $8.5 billion purchase of Skype. Skype will exist as a new division within Microsoft and Skype CEO Tony Bates will continue to serve as the head of the Skype team. In addition, Skype’s employees around the globe will remain in their current offices. Microsoft confirmed that it will work to integrate Skype into its existing products, but it did not specifically say which products or when that would begin to happen. “We look forward to working with the Skype team to create new ways for people to stay connected to family, friends, clients and colleagues — anytime, anywhere,” Microsoft CEO Steve Ballmer said. The acquisition is still pending completion in several other countries. Read on for the full press release. More →\nFor those of you who were completely underwhelmed by the realities of Project Dark and have a fear of post-paid contract rate plans, T-Mobile has something new for you. Say hello to “T-Mobile Complete.” T-Mobile Complete, and the accompanying “Complete Kits”, will come with the phone of your choice and, uh, well…that’s about it. No contracts, commitments, or legalities involved. Now, we know what you are thinking, why is this news? Well, T-Mobile has stated that the BlackBerry 8520 will be included in these plans as well, and for the first time in the States you can get yourself a BlackBerry device and not be locked into a contract. Sounds good to us. Details are still scarce on the exact pricing of the 8520 and the accompanying pre-paid plan, but we’ve heard that the kits will start at $59 with unlimited talk plans starting around $50/month. What do you guys think? Good idea? No details on the T-Mobile website just yet, but you can hit the jump to read about the release.\nVerizon Wireless announced on Friday that it has completed its acquisition of Alltel. Verizon paid $5.9 billion for the equity of Alltel and assumed all of Alltel’s approximately $22.2 billion in debt. Verizon will gain an additional 12.9 million customers, making Verizon the largest wireless carrier in the US with 83.7 million total customers. Verizon will maintain the Alltel brand and customers of Alltel will retain their current handsets and calling plans during the transition. Verizon will notify customers about changes that will impact future service so we assume at some point Alltel customers will have to forfeit their Alltel plan and select one of Verizon’s calling and/or data plans. Most customers will be able to keep their current handsets after the transition since both networks support the same CDMA technology. Verizon will also maintain Alltel’s existing GSM networks. Re-branding will begin in Q2 2009 and will continue through Q3 2009. No imminent layoffs were announced but the press release states:\nAlltel employees below executive level will continue in their present jobs as Verizon Wireless assesses staffing needs required to best serve customers and achieve synergies.\nWhen a company starts throwing around buzz words like “assess staffing needs” and “achieve synergies”, you can assume that layoffs will be announced at some point before the merger and re-branding is complete. As part of the conditions of the merger, Verizon Wireless will also divest overlapping properties in 105 markets that span 24 states and will affect nearly 2.1 million customers. When all is said and done, some of you will be leaving Verizon and a whole bunch of you will be joining Verizon. if you’re among those who will be affected, let us know in the comments if you are pleased, disappointed or ambivalent about the impending changes to your cellular service."} -{"text": "I love living in the future. Technology is fantastic. Remember pencils? Seriously, how fucking stupid were they?\nHave you ever forgotten your sharpener and had to resort to chipping away the wood with your fingernail? And don't even get me started on the Erasermate.\nI'm not saying you don't still need to write on paper once in awhile. Of course you do. It's just that if you're going to do it you should treat it like the special occasion that it is by using something like a steampunk pen:\nOr even a quill pen:\nIn places like Brooklyn and Portland, quill pens are the new MacBook. Walking into a cafe in Prospect heights is now like stepping into the Constitutional Convention, and the barista can hardly hear your order over all the scratching.\nI wonder what kind of writing implement Pete Hamill's brother uses to pen his limp anti-bike lane screeds. Probably some overblown reminder that he's from Old Brooklyn, like a stickball bat dipped in marinara sauce. By the way, returning to his column this morning to see if it was as stupid as I remembered it (it was), I couldn't help noticing the following testament to The Daily News's formidable editorial skills:\nHere's a closer look:\nHe was lives, now he is dies. And so goeth the circle of life and grammar.\n[Update: I also see according to item #7 that a Parke Avenue penthouse sold for big money. Where's Parke Avenue?]\nSpeaking of Ed Koch, since this is sort of a bike blog, I should note that he did have an interesting and disparate relationship with the bicycle during his time in office--from opening bike lanes in Manhattan in 1980:\nTo closing them a month later and ultimately unveiling the Midtown Bike Ban in 1987:\nI'm certainly not trying to pee-pee on his legacy the day after he's passing; it's just an interesting chapter in New York City cycling history that's worth noting, especially given all the current bike lane bickering and the ever-present possibility that municipal support from them will wane. If you're one of the two or three people who also find New York City cycling history interesting, you may also enjoy this article from way back in 1971:\nHere's then-Congressman Koch on bike lanes:\n\"To encourage bike riding without providing the necessary safety precautions is foolhardy,\" Mr. Koch said in a statement. \"The only way to insure safety for the many thousands of New Yorkers who want to bicycle is to designate official and exclusive bike lanes, and the city has failed to do this.\"\nAnd here's some doofus on the idea of opening bike lanes on 5th Avenue:\n\"Sure,\" he said, \"I can see those matronly women coming to Bergdorf's on a bicycle.\"\n\"I favor bike riding like I favor motherhood [sic] and apple pie,\" Mr. Grosso said, \"but we've had it. I think the city should explore other areas.\"\nSome things never change, and one of them is that people seem to think cycling is too precious for the working class, yet it's also too dirty for the rich. (And as for the middle class, who has the time?)\nWhile I'm on the subject of bike lanes and smugness, here's how many pedestrians and cyclists \"is dies\" in traffic in New York City in 2012:\ncommercial cyclists are going to have to take online safety courses now:\nDOT also announced that enforcement of a package of laws passed by the City Council last October will start in April. The new laws, which include a requirement that commercial cyclists take an online safety course, were touted by City Council Transportation Chair James Vacca as a way to end the “wild, wild west” environment on city streets.\nI'd love to get a look at some of the questions on that test:\nYou have sixteen bags of Chinese food hanging from the handlebars of your ebike. You're traveling at 25mph and the light turns red. What do you do?\nB) Take to the sidewalk\nC) Circle in the crosswalk until there's a gap in traffic\nD) Close your eyes, twist the throttle, and hope for the best\nI'm not sure what the answer is, but the only one of these I've never seen is A.\nSpeaking of tests, I'm pleased to present you with a quiz. As ALWAYS, STUDY THE ANSWER, THINK, TURN OFF YOur caps lock (sorry about that), and click on your answer. If you're right you'll know, and if you're wrong you'll see Andy Rooney's illegitimate child.\nThanks very much for reading, ride safe, and avoid foul odors.\n--Wildcat Rock Machine\n(\"I don't see what the problem is.\")\n1) Due to flooding, the Cyclocross World Championships in Louisville, KY is being rescheduled.\n(Landis enjoying a good novel.)\n2) Floyd Landis is launching a:\n--Sequel to \"Positively False\" entitled \"Negatively Positive\"\n(Professional cycling: why bother?)\n3) Professional cycling is being destroyed by:\n--Lack of sponsorship\n--Deeply embarassing team photo shoots\n(Not him, his brother.)\n4) What did Pete Hamill's brother used to deliver by bicycle?\n--\"100 pounds of meat\"\n--\"500 cords of wood\"\n--\"1,000 smiling knuckles\"\n--\"Beets and stuff\"\n(No, that's not Bruce Campbell.)\n5) What is a \"prepper?\"\n--Someone who prepares for the collapse of civilization\n--Someone who wears polo shirts and sockless loafers\n--Someone who chops vegetables and scales fish in a fancy restaurant\n--Someone who helps the actors maintain their erections between takes during pornographic movie shoots\n(Photo via yesterday's comments.)\n6) Using modern aerodynamic equipment, Greg LeMond beat a bare-headed Laurent Fignon in the final time trial of the 1989 Tour de France, winning the general classification by only eight seconds.\n(\"In your face!\")\n7) People totally don't want to own cars anymore.\n***Special Vintage \"Woo-Hoo-Hoo-Hoo!\" Speed Bonus Video***"} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/account_server/billing_summary.go. Lines: 592.\n\npackage accountserver\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"buf.build/go/protovalidate\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/auth\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/database\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/fwerror\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\tresourcename \"github.com/fw-ai/fireworks/go/resource_name\"\n\t\"github.com/rs/zerolog/log\"\n\t\"google.golang.org/genproto/googleapis/type/money\"\n\t\"google.golang.org/protobuf/types/known/timestamppb\"\n\t\"gorm.io/gorm\"\n)\n\n// getValue returns the value of an optional string pointer, or empty string if nil\nfunc getValue(s *string) string {\n\tif s == nil {\n\t\treturn \"\"\n\t}\n\treturn *s\n}\n\n// stringPtr returns a pointer to a string, or nil if the string is empty\nfunc stringPtr(s string) *string {\n\tif s == \"\" {\n\t\treturn nil\n\t}\n\treturn &s\n}\n\n// addMoney adds two Money values in int64 space to avoid floating point precision errors.\n// It converts both to total nanos (units * 1e9 + nanos), adds them, then converts back.\nfunc addMoney(a, b *money.Money) *money.Money {\n\tif a == nil && b == nil {\n\t\treturn nil\n\t}\n\tif a == nil {\n\t\treturn &money.Money{CurrencyCode: b.CurrencyCode, Units: b.Units, Nanos: b.Nanos}\n\t}\n\tif b == nil {\n\t\treturn &money.Money{CurrencyCode: a.CurrencyCode, Units: a.Units, Nanos: a.Nanos}\n\t}\n\n\t// Convert to total nanos (int64 arithmetic only)\n\taTotalNanos := a.Units*1e9 + int64(a.Nanos)\n\tbTotalNanos := b.Units*1e9 + int64(b.Nanos)\n\ttotalNanos := aTotalNanos + bTotalNanos\n\n\t// Split back into units and nanos\n\tunits := totalNanos / 1e9\n\tnanos := totalNanos % 1e9\n\n\treturn &money.Money{\n\t\tCurrencyCode: a.CurrencyCode,\n\t\tUnits: units,\n\t\tNanos: int32(nanos),\n\t}\n}\n\n// parseStringToMoney parses a decimal string directly into Money to avoid float precision errors.\n// For example, \"45.980701\" becomes {Units: 45, Nanos: 980701000} without float rounding.\nfunc parseStringToMoney(s string, currency string) (*money.Money, error) {\n\tif s == \"\" || s == \"0\" {\n\t\treturn &money.Money{CurrencyCode: currency, Units: 0, Nanos: 0}, nil\n\t}\n\n\t// Handle negative values\n\tnegative := false\n\tif strings.HasPrefix(s, \"-\") {\n\t\tnegative = true\n\t\ts = s[1:]\n\t}\n\n\t// Split on decimal point\n\tparts := strings.Split(s, \".\")\n\n\t// Parse units (whole dollar part)\n\tunits := int64(0)\n\tif len(parts) > 0 && parts[0] != \"\" {\n\t\tparsed, err := strconv.ParseInt(parts[0], 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse units from '%s': %w\", s, err)\n\t\t}\n\t\tunits = parsed\n\t}\n\n\t// Parse nanos (fractional part)\n\tnanos := int32(0)\n\tif len(parts) > 1 {\n\t\t// Pad or truncate to exactly 9 digits\n\t\tfractional := parts[1]\n\t\tif len(fractional) > 9 {\n\t\t\tfractional = fractional[:9] // Truncate\n\t\t} else {\n\t\t\tfractional = fractional + strings.Repeat(\"0\", 9-len(fractional)) // Pad with zeros\n\t\t}\n\t\tparsed, err := strconv.ParseInt(fractional, 10, 32)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse nanos from '%s': %w\", s, err)\n\t\t}\n\t\tnanos = int32(parsed)\n\t}\n\n\t// Apply negative sign\n\tif negative {\n\t\tunits = -units\n\t\tnanos = -nanos\n\t}\n\n\treturn &money.Money{\n\t\tCurrencyCode: currency,\n\t\tUnits: units,\n\t\tNanos: nanos,\n\t}, nil\n}\n\n// Orb API response structures\ntype OrbSubscriptionCostsResponse struct {\n\tData []OrbCostData `json:\"data\"`\n}\n\ntype OrbCostData struct {\n\tTotal string `json:\"total\"`\n\tPerPriceCosts []OrbPriceCost `json:\"per_price_costs\"`\n\tTimeframeStart time.Time `json:\"timeframe_start\"`\n\tTimeframeEnd time.Time `json:\"timeframe_end\"`\n}\n\ntype OrbPriceCost struct {\n\tPrice OrbPrice `json:\"price\"`\n\tTotal string `json:\"total\"`\n\tQuantity float64 `json:\"quantity\"`\n\tPriceGroups []OrbPriceGroup `json:\"price_groups\"`\n}\n\ntype OrbPrice struct {\n\tName string `json:\"name\"`\n\tCurrency string `json:\"currency\"`\n\tMatrixConfig *OrbMatrixConfig `json:\"matrix_config\"`\n\tUnitConfig *OrbUnitConfig `json:\"unit_config\"`\n}\n\ntype OrbMatrixConfig struct {\n\tMatrixValues []OrbMatrixValue `json:\"matrix_values\"`\n}\n\ntype OrbMatrixValue struct {\n\tDimensionValues []string `json:\"dimension_values\"`\n\tUnitAmount string `json:\"unit_amount\"`\n}\n\ntype OrbUnitConfig struct {\n\tUnitAmount string `json:\"unit_amount\"`\n}\n\ntype OrbPriceGroup struct {\n\tGroupingKey string `json:\"grouping_key\"`\n\tGroupingValue string `json:\"grouping_value\"`\n\tQuantity float64 `json:\"quantity\"`\n\tSecondaryGroupingKey string `json:\"secondary_grouping_key\"`\n\tSecondaryGroupingValue string `json:\"secondary_grouping_value\"`\n\tTotal string `json:\"total\"`\n}\n\n// GetBillingSummary retrieves billing summary information for an account\n// It accepts account_id, start_time, and end"} -{"text": "The 2010 NFL season is looming on the horizon, and many fans are rabidly awaiting its arrival.\nBut rumbling in the distance are the storm clouds that may likely change the course of NFL history—not necessarily for the better.\nWhile fans don't want to think about it, the NFL owners are contemplating locking out the players in 2011.\nNot a possibility, you say?\nThe NFL would lose to many fans by cancelling an entire season, you say?\nRemember the 1994 World Series? Or the 2005 Stanley Cup?\nIs Major League Baseball or the National Hockey League dead? No, and in fact, both have become stronger since those work stoppages as all of their fans who swore off the respective leagues have come back. And in the case of the NHL, when it returned to the ice, it brought an new version of the sport with it and has been adding fans with each progressive season.\nWouldn't the NFL's fans do the same? I believe the NFL owners are betting on that answer being a resounding \"yes.\"\nConsider the fact the the NFL owners are in no rush to settle this labor issue. The owners hope to have a new collective bargaining agreement with the players by March. They claim not to want a \"work stoppage,\" but is that really the case?\nThe owners stand to earn $5 billion from their TV revenue deals whether the NFL plays a single down in 2011 or not. Having that in the bank will not force the owners' hands into a deal they do not want. And what the owners want is more of the money the NFL earns.\nPlayers right now take in 60 percent of the league's revenue. The owners want a bigger cut of that pie as they claim the economy has changed. The league needs that money to generate more income across the board (or so their argument goes). Will the players' union talk its members into taking a collective pay cut?\nInterestingly enough, federal authorities from the Department of Labor are right now investigating potential collusion claims regarding the NFLPA and the league.\nA former employee of the players' union has submitted documents regarding alleged backroom deals and meetings between the league's front office and the heads of the NFLPA. What was detailed in those meetings is not known.\nPotentially, those meetings concern the \"enhancement\" of the NFL, meaning the sought after 18-game regular season schedule.\nThis, my friends, is certain to become a reality. And I believe it will be the make-or-break demand of any \"work stoppage.\"\nNow, the NFL claims that turning the season into an 18-game long monstrosity will only earn its players more money. Odd, but right now the NFL's argument about its current labor state is effectively the opposite as the league repeatedly states that the players' 60 percent cut is too much.\nSo who will really profit from the addition of two regular season games a season? The owners, of course.\nWill the owners shorten the pre-season if the league goes to an 18-game schedule? Not likely. Yes, the games are \"meaningless\" and only the most die-hard fans enjoy them, but what comes with those four games is a good deal of money.\nTeams always force season ticket holders into buying tickets for those two preseason home games each year. You could argue that owners will get that back plus a bit more by adding an extra regular season game to the schedule, but why lose what you don't have to?\nPerhaps more important, the individual teams are allowed to sell the TV rights to those preseason games on their own, meaning even more money tallies in the bank each August. What local TV network is going to pay the same amount for one game when they used to get two?\nThe \"enhanced\" 18-game season will further stretch out fans' interest and television ratings into the \"sports wasteland\" of February, benefiting their network partners as well. This is also why the NFL is considering adding permanent Thursday and Saturday games to its new-look schedule.\nAnd if you think the league is worried about playing the Super Bowl later in February, then you obviously forgot that the league awarded New York City the game in 2014.\nBad weather affecting its crown jewel? The NFL doesn't care.\nNor do they seemed concerned with their players' health. It goes without saying that the enhanced season will take its toll on players, but according to the NFL, this will be off-set by their increased income.\nThe fact is, no NFL players is above the game. They are interchangeable parts in a much larger machine. If one breaks down (as will happen), another rises up to take that position. Nothing is lost.\nWill the game on the field suffer because of this? No. In fact, it will bring even more of the NFL's beloved parity to the field. A healthy team is a strong team, but no team will remain healthy going into the latter stages of a season. Therefore, when the playoff push arrives, crazier scenarios will occur and the fans will love seeing their 8-9 team having a shot at a playoff spot. The result: more fan interest.\nWhat NFL fans will end up with is an entirely new league with more emphasis right where the league wants it.\nFans who enjoy the NFL draft will have to stick around to round seven as depth will matter more with more injuries.\nFantasy football players will have to dig deeper and care more about back-ups as injuries affect their rosters as well.\nTeam with losing records will be more likely to reach the playoffs, bringing bigger Cinderellas to the post-season dance.\nAll of this generates more interest, meaning more TV watching, higher ratings, and more money for the NFL. The league will not lose with this, and it knows it.\nSo get ready NFL fans, the league's got a worm dangling on a hook. Will you just nibble, or take a bite?\nFor more, visit: www.thefixisin.net"} -{"text": "The Yankees again proved to be the most playoff-efficient team of all. They bullied Minnesota right out of their own home early on and then finished them off in the Bronx. An all-around dominant performance from the Yankees shows that they will be tough to beat once again in these playoffs. There may be only one team that could challenge them this season. Can I get a...\"RE-MATCH?!\"\nOrlando Hudson says it all for his Minnesota Twins in as few words as possible. Their loss against the Yankees was about as bad as it gets. They were utterly dominated from start to finish and never got a chance to become a part of the series.\nThe Tampa Bay Rays, considered a heavy AL favorite, looked to be out of sorts when their series started in their home at Tropicana Field last week. Their home performance was forgettable as they were outplayed by the Texas Rangers, who hustled out to a 2-0 lead. Nothing seemed to go their way in the early part of this series.\nSuddenly though, this 2-0 deficit was turned into a 2-2 draw with a decisive Game Five to come tomorrow night back in Tampa. If the way the series has played out thus far is any indication, expect Cliff Lee and the Rangers to advance.\nThe Rays can ill-afford another bad home game as their season may depend on it tomorrow. This Game Five will decide which team will have the honor of facing the New York Yankees in the ALCS.\nThe offense had come out entirely too flat in the first two games, producing just one run against Lee and C.J. Wilson. Then, Texas seemed to lose its grip when they returned home to Arlington. Judging frm how this series has went, this one will end with a bang.\nTexas' bullpen could be the reason for their exit if it happens tomorrow night. Over the past two games, at home in Arlington mind you, they have allowed a staggering eight runs in nine innings pitched. They had the chance to sweep and then at least finish up in four games while at home but blew their chances. The bullpen may not be the sole blame here, but they are in fact a major reason.\nNeftali Feliz looked awful in his appearance in Game Three as the few Ray hitters that he faced jumped all over him. An AL Rookie of the Year candidate, Feliz was at the heap of these disasters from the Texas 'pen. It should be interesting to see how they respond when the series returns to The Trop where they have been very successful.\nNo one particular instance or individual could be singled out. So, let's just go with the Twins as a whole for this one. They were no match for the defending World Champions as they went down in a sweep in the Bronx over the weekend.\nJason Kubel, pictured above, was horrible in this series going 0-the series. But Kubel alone should not be categorized as such when the team effort just simply was not there. The fire that lit up Minnesota all summer long was extinguished in an instant by a better,hungrier Yankee team.\nNot many saw this type of series coming as the Yankees imposed their will en route to another ALCS appearance. They boast the game's top lineup and in this series, their pitching was very solid as well. Big off-season pickup Curtis Granderson hit exceptionally well and paced the Yankees once again.\nOther big name Twins like native Minnesotan Joe Mauer performed poorly as well. As mentioned at the top, just an all-around bad series from these Twins. No other way to be described.\nThere were some other performances that shined through in Round One. Curtis Granderson and Mariano Rivera stole the show for the Bronx Bombers, making them a bona fide threat in these playoffs once again.\nWe now count down the best performances of the ALDS.\nOver their first four playoff games the Texas Rangers have stroked seven HR's. Powered by the usual suspects in Nelson Cruz and Ian Kinsler among others, these Rangers are now looking to winning Game Five. The Rangers have an offense that may be able to hit with the Yankees in the ALCS if it comes down to that. It would certainly be an interesting series if it were to happen.\nTexas' starting pitching has been very good in this series as well. Maybe with a few more big hits and another exceptional start from Cliff Lee, the Rangers will find themselves in the Final Four of baseball.\nTampa Bay's offense has been suspect for most of this series, but have come up huge over the past few days in the clutch. With the game, and more so their season, on the line, the Rays' stars Evan Longoria and B.J. Upton came through.\nWhen it mattered most, Joe Maddon was able to go to his top guys and get the job done. This is the mark of a champion as the Rays are now looking to comeback from what was a 2-0 deficit.\nA comeback of this caliber would say a lot about this club as a whole. They dropped the first two games of the series and were able to take the next to on the road and now potentially can put the Rangers away with David Price.\nThe New York Yankees are again flexing their muscle as Kings of the AL. Their quick work of Minnesota was very impressive and showed the world their continued ownership over Ron Gardenhire's club. The Yankees were the better team in every phase in this short series and now get a nice rest while awaiting their ALCS opponent.\nMariano Rivera showed why he is the best post-season closer of all-time with continued October success. Not to mention that the offense as a whole terrorized Minnesota pitching.\nThe Twins blew their chance in Game One when Francisco Liriano kept Yankee hitters afloat, but the Twins themselves could not capitalize and so the Yankees were able to nab home-field and then some."} -{"text": "_time parameters and returns detailed billing breakdown\nfunc (s *Server) GetBillingSummary(ctx context.Context, req *gpb.GetBillingSummaryRequest) (*gpb.GetBillingSummaryResponse, error) {\n\t// Validate request using protovalidate\n\tif err := protovalidate.Validate(req); err != nil {\n\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"validation failed: %w\", err)\n\t}\n\n\t// Parse the account resource name to extract account ID\n\tvar accountName resourcename.AccountName\n\terr := accountName.ParseFrom(req.Name)\n\tif err != nil {\n\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"invalid account resource name '%s'. Please provide a valid resource name in the format 'accounts/account-id'. Error: %w\", req.Name, err)\n\t}\n\n\taccountID := accountName.AccountId\n\n\t// Create logger with account context\n\tl := log.Ctx(ctx).With().Str(\"account_id\", accountID).Logger()\n\n\tstartTime := req.StartTime.AsTime()\n\tendTime := req.EndTime.AsTime()\n\n\t// Authentication and authorization are handled by interceptors\n\n\t// Look up the account to get billing information including Orb subscription ID\n\tvar dba database.Account\n\terr = dba.Populate(s.DB(ctx), &accountName)\n\tif err != nil {\n\t\tif errors.Is(err, gorm.ErrRecordNotFound) {\n\t\t\treturn nil, fwerror.New(gpb.Code_PERMISSION_DENIED, \"\")\n\t\t}\n\t\treturn nil, fmt.Errorf(\"error getting account: %w\", err)\n\t}\n\n\t// Hide cost breakdown details for accounts that have chosen to restrict detailed usage information.\n\tp := auth.GetPrincipalFromCtx(ctx)\n\tif s.hidesUsageDetail(p, dba.AccountId) {\n\t\treturn &gpb.GetBillingSummaryResponse{LineItems: []*gpb.LineItem{}}, nil\n\t}\n\n\t// Serve from cache, keyed by account + Orb subscription + day-truncated range +\n\t// granularity. dba is loaded above to gate existence/auth and to supply the\n\t// subscription id: keying on it means an account that had no subscription (and\n\t// so cached an empty summary) gets a fresh key the moment one is synced, rather\n\t// than serving the stale empty result until expiry.\n\tkey := billingSummaryCacheKey{\n\t\tAccountID: accountID,\n\t\tSubscriptionID: dba.OrbSubscriptionId,\n\t\tStartDate: startTime.UTC().Format(billingSummaryDateLayout),\n\t\tEndDate: endTime.UTC().Format(billingSummaryDateLayout),\n\t\tGranularity: req.GetGranularity(),\n\t}\n\tif s.billingSummaryCache == nil {\n\t\treturn s.fetchBillingSummary(ctx, key)\n\t}\n\tresponse, cacheHit, err := s.billingSummaryCache.GetWithFound(ctx, key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tl.Info().\n\t\tBool(\"cache_hit\", cacheHit).\n\t\tInt(\"line_items_count\", len(response.GetLineItems())).\n\t\tMsg(\"GetBillingSummary: served billing summary\")\n\treturn response, nil\n}\n\nconst billingSummaryDateLayout = \"2006-01-02\"\n\ntype billingSummaryCacheKey struct {\n\tAccountID string\n\tSubscriptionID string\n\tStartDate string\n\tEndDate string\n\tGranularity gpb.GetBillingSummaryRequest_Granularity\n}\n\n// fetchBillingSummary loads cost data from Orb and builds the response for a key.\nfunc (s *Server) fetchBillingSummary(ctx context.Context, key billingSummaryCacheKey) (*gpb.GetBillingSummaryResponse, error) {\n\tresponse := &gpb.GetBillingSummaryResponse{\n\t\tLineItems: []*gpb.LineItem{},\n\t}\n\tif key.Granularity == gpb.GetBillingSummaryRequest_DAILY {\n\t\tresponse.UsageBuckets = []*gpb.UsageBucket{}\n\t}\n\n\tif key.SubscriptionID == \"\" {\n\t\tlog.Ctx(ctx).Info().\n\t\t\tStr(\"account_id\", key.AccountID).\n\t\t\tMsg(\"GetBillingSummary: no Orb subscription ID, returning empty summary\")\n\t\treturn response, nil\n\t}\n\n\tstartTime, err := time.Parse(billingSummaryDateLayout, key.StartDate)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"invalid start date %q: %w\", key.StartDate, err)\n\t}\n\tendTime, err := time.Parse(billingSummaryDateLayout, key.EndDate)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"invalid end date %q: %w\", key.EndDate, err)\n\t}\n\n\tcostData, err := s.fetchOrbCostData(ctx, key.SubscriptionID, startTime, endTime)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"billing data is temporarily unavailable. The billing service may be experiencing issues. Please try again later or contact support if the problem persists. Error: %w\", err)\n\t}\n\n\tbuckets, err := s.buildUsageBuckets(costData)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error building usage buckets: %w\", err)\n\t}\n\tresponse.LineItems = mergeLineItems(ctx, buckets)\n\n\tif key.Granularity == gpb.GetBillingSummaryRequest_DAILY {\n\t\tresponse.UsageBuckets = buckets\n\t}\n\n\treturn response, nil\n}\n\n// fetchOrbCostData fetches per-day cost data from Orb for a subscription.\n// TODO: Move to the Orb client library instead.\nfunc (s *Server) fetchOrbCostData(ctx context.Context, subscriptionID string, startTime, endTime time.Time) ([]OrbCostData, error) {\n\tl := log.Ctx(ctx)\n\n\t// Get Orb API configuration from server config\n\torbApiBase := \"https://api.withorb.com/v1\"\n\torbApiKey := s.orbAPIKey\n\n\t// Format times as ISO 8601 with timezone\n\tstart := startTime.Format(\"2006-01-02T15:04:05Z\")\n\tend := endTime.Format(\"2006-01-02T15:04:05Z\")\n\n\t// Build URL using url.JoinPath for proper URL construction\n\tapiURL, err"} -{"text": "Angels Started Out Hot But in the End Just Burned. New Series, Move Down.\nDo you ever have one of those days where odd things seem to parallel your mood or activities? You think of a song and change the station on the radio only to find that song? Or a coworker randomly starts the same conversation you just had that morning with your mom? Does this ever seem to happen with the baseball team you follow? Saturday, was my husband’s birthday “observed” – as opposed to Tuesday, his actual birthday, when we have tickets for the company seats at the Big A, whoo hoo! We hosted a pizza party/game night in his honor, so I knew that, between the prep, the party and the clean-up, I wasn’t going be able to pay as much attention to the Angels play as I would like to. Little did I know the Angels themselves wouldn’t be paying much attention to their play this weekend. Yikes!\nThe baseball/life parallel was a beautiful thing on Friday night. We cleaned the house and I baked a dark chocolate cake. Making this cake is as much about technique as it is about the recipe. If you cream the butter and sugar long enough and take a sufficiently light, careful hand with the folding, you have an almost ethereally light, fluffy cake. Fold too quickly or too long, or outright mix the batter, and you develop the glutens to the point where you basically have bread. A nice calm no doubter of a game was just what the doctor ordered.\nMelt the chocolate, blend, combine. Vernon Wells hits a homerun. Dry ingredients, buttermilk, whipped egg whites, gently fold. Ervin Santana going strong. Back until the cake is springy to the touch. Double play to finish the game. Howie to Aybar to Tumbo. Light that baby up. And now let’s finish mopping the floor. Excellent. Great Friday! And can I just say that between their humorous sign campaign response to the sign stealing accusations and their classy welcome for Vernon Wells, I love Blue Jays fans!\nSaturday, however, the whole baseball/life parallel thing started to suck. Big time. Yes, I needed to chop and prep all of the pizza toppings. Yes, I needed to make the double vanilla, cream cheese icing for the cake and that involves whipping thick ingredients. Yes, Seth had to work so I was on my own and frustrations from the game lead me to chop and whip with greater…hmmm…shall we say efficiency. But come on Angels, I didn’t need that kind of help! I’m strong lady. I can chop onions, mushrooms, garlic and the like in a good mood, would have preferred to in fact.\nI was concerned about this particular Jered Weaver start heading into the game anyway. He doesn’t pitch as well when circumstances muck up the rotation. Just like in May, when illness delayed his start, Weaver seemed to come back throwing too hard and with less control after his extra rest. And for a guy who lives by pinpoint precision against a hot hitting Blue Jays team on yet another day where the Angels own bats stood still? My recipes were on the right track. This recipe, however, was one for disaster. And Pineiro’s two innings on top of it all? Ouch. Clearly he’s not working anything out in the bullpen. Is he injured? Is it psychological? Would Dave Duncan consent to maybe call and whisper to him over the phone? I got nothin’. But then I had the birthday party and a house full of people, wine to pour, pizzas on the grill and a really great time, all perfect distractions from any thoughts of Angels.\nSo, Sunday this would have to end right? We capped off a thoroughly decadent late night with a thoroughly decadent morning – sleeping in until first pitch and then lounging on the sofa to watch a good match up with a breakfast of leftover prosciutto pizza with blue cheese, apples and caramelized onions. And the beginning was great. Torii Hunter’s homerun. Dan Haren was dealing. Peter Bourjos smokin’ down the base paths. But it was not to be. After the game I could see one more parallel. I had a really happy Saturday night, and I was feeling it Sunday morning to a certain extent, hence the lounging. But some of the Angels and Mike Scioscia, love him though I do, must have had an even happier Saturday night. How else do you explain Bobby and Trumbo’s base running in the 9th? Or Scioscia’s decision to go to Fernando Rodney in the 10th?\nThe parallels, however, have to end now. See, Seth and I are going to be enjoying pizza, cake and other party leftovers easily until Thursday, but the Angels better not be keeping too many leftovers from their weekend. Torii’s hitting streak. Bobby’s reemerging bat. The fielding perhaps. The fact that Jered Weaver is such a stud, that even after giving up eight runs in less than five innings on Saturday, he still has the lowest E.R.A. and the third lowest WHIP in the majors. These are good leftovers to keep. But the lack of clutch, the inconsistent bats and the scary bullpen moments? Leave them on the road. The Rangers are coming to town for a four game series and with this disastrous road trip the Angels are four games behind them. This isn’t the last stand of the season right here, right now but it sure is time to get serious about winning again."} -{"text": "TUSCALOOSA, Alabama — Relief officials inundated with donations after the flurry of twisters that killed more than 300 people across the South are sorting through the broken toys and used underwear they don't need while hunting for places to store mountains of vital supplies like canned food.\nAcross Alabama, agencies are still encouraging people to send items like cleaning supplies for people clearing debris from tornado-damaged homes, or cash donations that can be used to cover operating expenses or handed out to victims. But with storage space scarce, most say they can't handle any more used toys or cast-off clothing.\n\"That becomes the disaster within the disaster,\" said Salvation Army spokesman Mark Jones. \"When people make those mass donations ... it causes the community to be overrun with them and have to deal with that in addition to the storm damage.\"\nIn a dimly lit warehouse in Tuscaloosa, for instance, donated toys are piled 6 feet high as volunteers sort through hundreds of bags of old clothes. A 3-foot-tall plastic Santa Claus looks over the operation; volunteers say it came in with a load of contributions.\nAt a donation distribution center in the northwest Alabama town of Phil Campbell, volunteer manager Beth Rhea has baby food stacked almost to the ceiling, plenty of water and doesn't need any more clothes. But she could use some tents and camping gear because some victims are sleeping outside beside the rubble of their homes. In the central Alabama town of Eclectic, Mayor Helen Rowe has put out the word: No more clothing donations.\nAs for the Salvation Army, Jones said the agency only recently found warehouse space in hard-hit Tuscaloosa and still desperately needs new underwear, nonperishable foods, pet food and sports drinks. It's still searching for more storage space for things that won't be used right away.\nDozens of tornadoes whipped across the South on April 27, killing people across seven states and injuring hundreds more as entire communities were leveled. Donated water and food started arriving within hours in some towns; relief sites sprang up on street corners and in parking lots.\n10 warehouses already full in Tuscaloosa\nTemporary Emergency Services of Tuscaloosa County already has 10 warehouses full of donations, but too many of those items are broken toys, dirty stuffed animals and used underwear that has to be thrown in the trash, said agency director Karen Thompson. While the warehouse space was also donated, Thompson said storing all that stuff is still costly because the organization must pay liability insurance to cover the operation in case someone is hurt on the job.\n\"We just have so much,\" she said. \"It's going to be needed long-term, but a lot of people don't have a roof over their heads and don't have anywhere to put things right now.\"\nCanned food and cleaning products are urgently needed, she said, because some private homes have become impromptu shelters as families take care of relatives and friends left homeless by the twisters.\nVivian Gordon, whose apartment was destroyed by the twister that killed dozens in Tuscaloosa, has survived with the help of relatives, friends and even a stranger who picked her up on the roadside after the storm, providing her a place to sleep. Despite her need after losing everything, she has yet to visit a distribution site.\n\"I'm blessed. But I know other people have,\" she said.\nVictims had come in droves to such distribution centers for water and hot food in the days after the storm. The lines are nearly nonexistent now, though, as stores that had been without electricity reopen and people find places to stay.\nAnd that has left some centers overflowing. On a recent day in Tuscaloosa, truckloads of unneeded ice were left in the sun to melt. In the isolated East Franklin community in the Tennessee Valley, where donations have come in from as far away as Pennsylvania, garbage bags filled with clothes, boxes of waters, tables covered with canned goods and other items fill the gymnasium at the junior high school.\n\"There isn't any way I could tell you how much stuff we have in there,\" said Tony Hodge, who is supervising the distribution center.\nAt the Phil Campbell center, Rhea said people from as far away as Austin, Texas, have come to the town's senior citizen building, where items are being stockpiled. Workers didn't plan to take clothes at the center, but there are still piles of pants, shirts and other items in the large room along with toiletries, food, cleaning supplies and even comic books.\n\"We hate to tell people 'no,'\" Rhea said. So any left over water, clothing, baby food and other items will be donated again, possibly sent to other parts of the state that may be short on supplies.\n\"We will box it all up, label the boxes and send them to another disaster,\" Rhea said.\nAssociated Press Writer Jay Reeves wrote this report."} -{"text": " := url.JoinPath(orbApiBase, \"subscriptions\", subscriptionID, \"costs\")\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to construct Orb API URL: %w\", err)\n\t}\n\n\t// Create HTTP request\n\treq, err := http.NewRequestWithContext(ctx, \"GET\", apiURL, nil)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create HTTP request to Orb API, this is likely a configuration issue, please contact support: %w\", err)\n\t}\n\n\t// Add query parameters\n\tq := req.URL.Query()\n\tq.Add(\"timeframe_start\", start)\n\tq.Add(\"timeframe_end\", end)\n\tq.Add(\"view_mode\", \"periodic\")\n\treq.URL.RawQuery = q.Encode()\n\n\t// Add headers\n\treq.Header.Set(\"Accept\", \"application/json\")\n\treq.Header.Set(\"Authorization\", fmt.Sprintf(\"Bearer %s\", orbApiKey))\n\n\tl.Info().\n\t\tStr(\"subscription_id\", subscriptionID).\n\t\tStr(\"url\", apiURL).\n\t\tStr(\"start_time\", start).\n\t\tStr(\"end_time\", end).\n\t\tMsg(\"Making direct HTTP call to Orb API\")\n\n\t// Make the HTTP request\n\tclient := &http.Client{Timeout: 30 * time.Second}\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"HTTP request to Orb API failed, this could indicate network connectivity issues or Orb service being temporarily unavailable, please try again later or contact support: %w\", err)\n\t}\n\tdefer resp.Body.Close()\n\n\t// Check status code\n\tif resp.StatusCode != 200 {\n\t\tbody, _ := io.ReadAll(resp.Body)\n\t\treturn nil, fmt.Errorf(\"orb API request failed with status %d, this could indicate: (1) invalid subscription ID '%s', (2) invalid time range, (3) Orb service temporarily unavailable, or (4) authentication issues, response: %s\", resp.StatusCode, subscriptionID, string(body))\n\t}\n\n\t// Read response body\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to read response body from Orb API, this could indicate a network issue or corrupted response, please try again: %w\", err)\n\t}\n\n\t// Parse JSON response\n\tvar orbResponse OrbSubscriptionCostsResponse\n\tif err := json.Unmarshal(body, &orbResponse); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse JSON response from Orb API, the response format may have changed or the response is corrupted, response body: %s: %w\", string(body), err)\n\t}\n\n\treturn orbResponse.Data, nil\n}\n\n// mergeLineItems folds per-day usage buckets into range-level line items,\n// merging rows that share the same category and grouping fields. It operates\n// purely on already-built line items, so it does not depend on OrbCostData.\nfunc mergeLineItems(ctx context.Context, buckets []*gpb.UsageBucket) []*gpb.LineItem {\n\t// Aggregate across buckets by category and grouping fields\n\t// (everything except unitAmount, currency, quantity, and totalCost).\n\ttype aggregationKey struct {\n\t\tcategory string\n\t\tgroupingKey string\n\t\tgroupingValue string\n\t\tsecondaryGroupingKey string\n\t\tsecondaryGroupingValue string\n\t}\n\n\taggregated := make(map[aggregationKey]*gpb.LineItem)\n\n\tfor _, bucket := range buckets {\n\t\tfor _, item := range bucket.GetLineItems() {\n\t\t\tkey := aggregationKey{\n\t\t\t\tcategory: getValue(item.Category),\n\t\t\t\tgroupingKey: getValue(item.GroupingKey),\n\t\t\t\tgroupingValue: getValue(item.GroupingValue),\n\t\t\t\tsecondaryGroupingKey: getValue(item.SecondaryGroupingKey),\n\t\t\t\tsecondaryGroupingValue: getValue(item.SecondaryGroupingValue),\n\t\t\t}\n\n\t\t\t// Aggregate or update existing line item if key already exists\n\t\t\tif existing, exists := aggregated[key]; exists {\n\t\t\t\tif existing.UnitAmount != nil && item.UnitAmount != nil {\n\t\t\t\t\texistingUnitAmount := float64(existing.UnitAmount.Units) + float64(existing.UnitAmount.Nanos)/1e9\n\t\t\t\t\titemUnitAmount := float64(item.UnitAmount.Units) + float64(item.UnitAmount.Nanos)/1e9\n\n\t\t\t\t\tif existingUnitAmount != itemUnitAmount || existing.UnitAmount.CurrencyCode != item.UnitAmount.CurrencyCode {\n\t\t\t\t\t\tlog.Ctx(ctx).Warn().\n\t\t\t\t\t\t\tStr(\"category\", getValue(item.Category)).\n\t\t\t\t\t\t\tStr(\"grouping_value\", getValue(item.GroupingValue)).\n\t\t\t\t\t\t\tMsg(\"billing summary: unit_amount/currency varied; clearing unit amount\")\n\t\t\t\t\t\texisting.UnitAmount = nil\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\texisting.Quantity += item.Quantity\n\t\t\t\texisting.TotalCost = addMoney(existing.TotalCost, item.TotalCost)\n\t\t\t} else {\n\t\t\t\t// Add new line item (deep copy to avoid reference issues)\n\t\t\t\tnewItem := &gpb.LineItem{\n\t\t\t\t\tCategory: item.Category,\n\t\t\t\t\tGroupingKey: item.GroupingKey,\n\t\t\t\t\tGroupingValue: item.GroupingValue,\n\t\t\t\t\tSecondaryGroupingKey: item.SecondaryGroupingKey,\n\t\t\t\t\tSecondaryGroupingValue: item.SecondaryGroupingValue,\n\t\t\t\t\tQuantity: item.Quantity,\n\t\t\t\t\tTotalCost: &money.Money{\n\t\t\t\t\t\tCurrencyCode: item.TotalCost.CurrencyCode,\n\t\t\t\t\t\tUnits: item.TotalCost.Units,\n\t\t\t\t\t\tNanos: item.TotalCost.Nanos,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t\t// Copy unit amount if present\n\t\t\t\tif item.UnitAmount != nil {\n\t\t\t\t\tnewItem.UnitAmount = &money.Money{\n\t\t\t\t\t\tCurrencyCode: item.UnitAmount.CurrencyCode,\n\t\t\t\t\t\tUnits: item.UnitAmount.Units,\n\t\t\t\t\t\tNanos: item.UnitAmount.Nanos,\n\t\t\t\t\t}\n\t"} -{"text": "After gladly surrendering their first-round pick in Sunday’s trade for All-Pro CB Darrelle Revis, the Bucs were left with a draft hand that began with the #43 overall pick in Round Two and the #73 overall selection in Round Three. As it turned out, they decided against trying to trade up or down and stayed put at those two very selections, eventually nabbing Mississippi State CB Johnthan Banks in the second frame and North Carolina State QB Mike Glennon in the third.\nOn one hand, those picks weren’t shocking. In his pre-draft press conference on Monday, Buccaneers G.M. Mark Dominik had been asked directly and pointedly about those two positions, reflecting a widespread belief that the team was looking for depth in the secondary and under center. The Bucs may have had a variety of options in mind, but the directions they ended up going in surprised few.\nOn the other hand, the selections of Banks and Glennon were rare in terms of the team’s drafting history. Rare, but promising.\nOver the course of 37 previous drafts, Tampa Bay had only elected to use a second-round pick on a cornerback twice. While that position has often been adequately filled by mid-round picks and free agent acquisitions, the only two previous second-round corners were Ricky Reynolds in 1987 and Brian Kelly in 1998. That’s good company for Banks, as Reynolds and Kelly are among the most productive players in team history at that position.\nReynolds stepped immediately into a starting role as a rookie in 1987 and played seven seasons as a Buccaneer, never giving up his starting job. He is tied for ninth in franchise history with 17 interceptions. Kelly started out as a nickel back but eventually became a key starter on the dominant Buc defense in the late ‘90s and early ‘00s. He was a starter and the team’s leading interceptor on the 2002 Super Bowl team and his 22 picks rank seventh in Buc annals.\nGlennon is only the second quarterback the Buccaneers have ever selected in the third round, but the rarity of his draft position is actually more significant than that. It has simply been extremely uncommon for Tampa Bay to take a signal-caller anywhere in the middle rounds. There have been five first rounders, including the USFL dispersal draft (Doug Williams, Steve Young, Vinny Testaverde, Trent Dilfer and Josh Freeman) and plenty of late-round fliers, from Parnell Dickinson to Mike Shula to Bruce Gradkowski. But in 37 years of picking passers, the Bucs have only used a second, third or fourth-round choice on that position on three previous occasions.\nThose three: Craig Erickson in 1992, Shaun King in 1999 and Chris Simms in 2003.\nNo, that is not a list of the greatest quarterbacks in franchise history. However, neither is it a discouraging bunch, overall. Erickson came to Sam Wyche’s first Buc team under unusual circumstances, having actually been drafted by Philly out of the University of Miami in 1991. He was recovering from a knee injury at the time and he never reached agreement with the Eagles, so he was back in the draft for the Buccaneers in ’92. That was at the tail end of the Vinny Testaverde era, so Erickson got to start for most of two season (1993-94) before new first-rounder Trent Dilfer took ever. The Bucs weren’t particularly good at that time, but Erickson did throw for over 6,000 yards and toss 34 TDs to 31 INTs.\nKing, a second-round pick in ’99, got an unexpected opportunity to start at the tail end of his rookie year after a red-hot (at the time) Dilfer got hurt in early December. King played well enough to help the Bucs, with their amazing defense, make it all the way to within a few minutes of the Super Bowl before they fell in St. Louis in the NFC Championship Game. King started in 2000 but was underwhelming and the team brought in free agent Brad Johnson to take over as the starter. King was a reserve on the 2002 Super Bowl team.\nSimms was the last pick of the third round in 2003, months after the Bucs won the Super Bowl. He eventually took over for Johnson and had some good moments in 2005 and 2006 but saw his tenure in Tampa essentially ended by an unusual spleen injury. All told, the Bucs three mid-round QB selections threw 72 TD passes against 68 interceptions and started 65 regular-season games. None turned into a long-term franchise starter like Freeman, but it is easy to see how those picks were useful, with the chance to be something more."} -{"text": "The study of the ancient Maya is relatively new compared to that of ancient Greece, Rome and Egypt. Our understanding of the Maya before the arrival of the Spanish may never reach the same level as we have for Old World cultures. However, major discoveries, utilizing new technologies paired with backbreaking archaeological work in steamy jungles and on freezing mountain peaks, continue to be made. That aspect, as well as the fact that Precolumbian cultures in general charted their own path, independent from the Old World, makes this such an interesting area to study.\nArchaeologists drew on their knowledge of Classical archaeology when they started studying Precolumbian cultures. For example, they borrowed from Classic Old World archaeology by dividing Precolumbian history into three parts: the Preclassic, Classic and Postclassic. The underlying assumption here was that everything started out small and then grew into a more complex web of city states trading and fighting each other, only to succumb to the onslaught of the invading Europeans.\nHumble beginnings, triumphant zenith and ultimate collapse. Simple enough, right? Not quite.\n|photo credit: malias|\nThere are major differences between Old and New World archaeology. Most known Preclassic Maya sites were small, with the beginnings of public architecture that would make later Maya sites so popular among tourists today. One site, however, left its humble beginning behind very quickly and grew into a huge city centuries before other Maya cities ever did. That site was El Mirador.\nLocated in the northern part of the Department in El Petén, Guatemala, El Mirador was first noted by archaeologists during pioneering mapping efforts in 1893. During the 1920s, the Carnegie Institutionwent from Campeche to Tikal and reported on their travels through the Mirador Basin. Subsequent aerial reconnaissance conducted in 1930 yielded the first photographs of these pyramids and the raised roads connecting them. In the 1960s, Ian Graham mapped the sitefollowed by additional mapping efforts in the 1970s and 1980s. One archaeologist who has spent most of his career working at El Mirador is Dr. Richard Hansen. Over the years, this project has seen tremendous growth, encompassing archaeology, biology, as well as community development.\n|photo credit: auntjojo|\nEl Mirador can best be described with superlatives. Two of its platform-pyramid complexes are among the largest by volume in the world. Known as La Danta (or tapir) and El Tigre, these pyramids are 72 and 55 meters tall respectively. These magnificent buildings were part of a Preclassic community which some estimate may have had 100,000 inhabitants, perhaps even more. It is considered larger than the much better known Maya site of Tikal. El Mirador may have been 38 sq. km in size. What makes this development even more interesting is the location: no major rivers in the vicinity, and as far away from the sea as one can get in Guatemala.\nIn is against this backdrop that archaeologists found evidence of a pitched battle fought on the top of El Tigre pyramid. Bone fragments were found together with hundreds of spear tips and arrow heads. Many of these projectile points were made from obsidian, or volcanic glass, which was traced back to a source in the Central Mexican highlands. Currently additional research is underway to help identify the two combatant parties.\nIt is tempting to see this event as part of a power struggle that played out during the early centuries of our era. We know that Teotihuacan, located in the Basin of Mexico, was meddling in Maya affairs during the fourth century AD. We know that central Mexican art forms, architectural canons and perhaps people were present at Maya sites such as Tikal, Copan and Piedras Negras. We do not really know what happened and why the city of Teotihuacan had extended its influence that far into Central America.\nWhat remains equally enigmatic is why there would have been a battle. Is this an example of inter-site warfare? Was Tikal keen on disposing of a major competitor? Given the known chronology of Teotihuacan’s involvement in the Maya cities just mentioned, the suggested date of El Mirador’s demise, at 150 AD, may be a few centuries too early to make this a workable hypothesis.\nThis is just the beginning of this story. The last word on this topic has not been written yet. In the meantime, it is fascinating to get a glimpse into a single event – that of a violent conflict – fought at the top of a Maya pyramid now almost 2000 years ago. Apocalyptic indeed.\nI would like to add one final point: the site of El Mirador and its architecture served as a source of inspiration for the Maya city portrayed in the 2006 Mel Gibson movie, Apocalypto. Dr. Hansen served as one of the movie’s advisors."} -{"text": "\t\t\t}\n\t\t\t\taggregated[key] = newItem\n\t\t\t}\n\t\t}\n\t}\n\n\t// Convert map to slice\n\tresult := make([]*gpb.LineItem, 0, len(aggregated))\n\tfor _, item := range aggregated {\n\t\tresult = append(result, item)\n\t}\n\n\t// Sort by category, then grouping value, then secondary grouping value\n\tsort.Slice(result, func(i, j int) bool {\n\t\tif getValue(result[i].Category) != getValue(result[j].Category) {\n\t\t\treturn getValue(result[i].Category) < getValue(result[j].Category)\n\t\t}\n\t\tif getValue(result[i].GroupingValue) != getValue(result[j].GroupingValue) {\n\t\t\treturn getValue(result[i].GroupingValue) < getValue(result[j].GroupingValue)\n\t\t}\n\t\treturn getValue(result[i].SecondaryGroupingValue) < getValue(result[j].SecondaryGroupingValue)\n\t})\n\n\treturn result\n}\n\n// buildUsageBuckets returns one bucket of line items per day.\nfunc (s *Server) buildUsageBuckets(data []OrbCostData) ([]*gpb.UsageBucket, error) {\n\tusageBuckets := make([]*gpb.UsageBucket, 0, len(data))\n\tfor _, dataPoint := range data {\n\t\tlineItems, err := s.formatLineItems(&dataPoint)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tusageBuckets = append(usageBuckets, &gpb.UsageBucket{\n\t\t\tStartTime: timestamppb.New(dataPoint.TimeframeStart),\n\t\t\tEndTime: timestamppb.New(dataPoint.TimeframeEnd),\n\t\t\tLineItems: lineItems,\n\t\t})\n\t}\n\treturn usageBuckets, nil\n}\n\n// formatLineItems converts Orb API response to flattened line items for a single day\nfunc (s *Server) formatLineItems(data *OrbCostData) ([]*gpb.LineItem, error) {\n\tvar allLineItems []*gpb.LineItem\n\n\t// Process per-price costs\n\tfor _, priceCost := range data.PerPriceCosts {\n\t\tcategoryName := priceCost.Price.Name\n\n\t\t// Get currency from Orb response\n\t\tcurrency := priceCost.Price.Currency\n\n\t\t// Get unit amounts from matrix config if available\n\t\t// Key is \"dimension_value_0|dimension_value_1\"\n\t\tunitAmounts := make(map[string]string) // Store as strings to avoid float precision issues\n\t\tif priceCost.Price.MatrixConfig != nil {\n\t\t\tfor _, mv := range priceCost.Price.MatrixConfig.MatrixValues {\n\t\t\t\tif len(mv.DimensionValues) >= 2 {\n\t\t\t\t\tkey := mv.DimensionValues[0] + \"|\" + mv.DimensionValues[1]\n\t\t\t\t\tunitAmounts[key] = mv.UnitAmount\n\t\t\t\t} else if len(mv.DimensionValues) == 1 {\n\t\t\t\t\tkey := mv.DimensionValues[0] + \"|\"\n\t\t\t\t\tunitAmounts[key] = mv.UnitAmount\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Process price groups (line items)\n\t\tvar categoryLineItems []*gpb.LineItem\n\t\tfor _, group := range priceCost.PriceGroups {\n\t\t\tquantity := group.Quantity\n\n\t\t\t// Skip items with no quantity\n\t\t\tif quantity <= 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Parse total cost directly to Money\n\t\t\ttotalCost, err := parseStringToMoney(group.Total, currency)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"failed to parse total cost for group %s: %w\", group.GroupingValue, err)\n\t\t\t}\n\n\t\t\t// Get unit amount from matrix config if available\n\t\t\tvar unitAmount *money.Money\n\t\t\tkey := group.GroupingValue + \"|\" + group.SecondaryGroupingValue\n\t\t\tif unitAmountStr, exists := unitAmounts[key]; exists {\n\t\t\t\tunitAmount, err = parseStringToMoney(unitAmountStr, currency)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"failed to parse unit amount for group %s: %w\", group.GroupingValue, err)\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If unit amount not in matrix config, leave it nil\n\n\t\t\tlineItem := &gpb.LineItem{\n\t\t\t\tCategory: stringPtr(categoryName),\n\t\t\t\tGroupingKey: stringPtr(group.GroupingKey),\n\t\t\t\tGroupingValue: stringPtr(group.GroupingValue),\n\t\t\t\tSecondaryGroupingKey: stringPtr(group.SecondaryGroupingKey),\n\t\t\t\tSecondaryGroupingValue: stringPtr(group.SecondaryGroupingValue),\n\t\t\t\tQuantity: quantity,\n\t\t\t\tUnitAmount: unitAmount,\n\t\t\t\tTotalCost: totalCost,\n\t\t\t}\n\t\t\tcategoryLineItems = append(categoryLineItems, lineItem)\n\t\t}\n\n\t\t// Handle edge case: no price groups but category has quantity/total\n\t\tif len(categoryLineItems) == 0 && len(priceCost.PriceGroups) == 0 && priceCost.Total != \"\" && priceCost.Total != \"0\" && priceCost.Quantity > 0 {\n\t\t\t// Parse category total\n\t\t\ttotalCost, err := parseStringToMoney(priceCost.Total, currency)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"failed to parse category total: %w\", err)\n\t\t\t}\n\n\t\t\t// Get unit amount from unit config if available\n\t\t\tvar unitAmount *money.Money\n\t\t\tif priceCost.Price.UnitConfig != nil && priceCost.Price.UnitConfig.UnitAmount != \"\" {\n\t\t\t\tunitAmount, err = parseStringToMoney(priceCost.Price.UnitConfig.UnitAmount, currency)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"failed to parse unit config amount: %w\", err)\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If unit amount not in unit config, leave it nil\n\n\t\t\tlineItem := &gpb.LineItem{\n\t\t\t\tCategory: stringPtr(categoryName),\n\t\t\t\tGroupingKey: nil,\n\t\t\t\tGroupingValue: nil,\n\t\t\t\tSecondaryGroupingKey: nil,\n\t\t\t\tSecondaryGroupingValue: nil,\n\t\t\t\tQuantity: priceCost.Quantity,\n\t\t\t\tUnitAmount: unitAmount,\n\t\t\t\tTotalCost: totalCost,\n\t\t\t}\n\t\t\tcategoryLineItems = append(categoryLineItems, lineItem)\n\t\t}\n\n\t\t// Add all line items from this ca"} -{"text": "In late May, 1,041 former obstetrics patients of 28 medical facilities submitted a plea to the National Consumer Affairs Center (NCAC) to arbitrate a settlement with the Japan Council for Quality Health Care (JCQHC) that would partially refund money they had paid during their pregnancies for insurance purposes. The JCQHC is a foundation that carries out third-party evaluations of hospitals and clinics, but it also oversees a special compensation system enacted by the government in 2009 to protect obstetricians from career-threatening malpractice suits.\nThe system allows for a form of insurance that all obstetrics patients, meaning pregnant women, pay into. If a fetus or baby suffers brain damage before or during delivery, the insurance pays up to ¥30 million in damages over the next 20 years to the child and his or her parents. This no-fault insurance system was put in place because fewer medical students were opting to become obstetricians, partially because the dwindling birthrate has made obstetrics less profitable, but mainly because malpractice awards in the cases of babies born with disabilities have been extremely high. It was just too financially risky to go into the field.\nPink is the color of the obstetrics department\nUnless a pregnancy threatens the well-being of the mother, childbirth is not covered by national health insurance. Though in theory the obstetrics insurance is optional, if a pregnant woman patronizes a medical facility that pays into the insurance system (meaning 99.8 percent of them) they automatically charge her the ¥30,000 premium and incorporate it into her bill. What complicates the matter is the so-called “public aspect” of the system, according to a recent article in Aera magazine.\nTo encourage women to have babies, local governments compensate them for the money they spent on childbirth after the fact with something called shussan ikuji ichijikin (one-time payment for childbirth), a handout administered by the National Health Insurance Union (NHIU) of up to ¥420,000 per birth, regardless of how much money the patient spent.\nThis amount includes the ¥30,000 premium that the woman paid for the obstetrics insurance, so in effect the public is paying for the insurance since the NHIU uses taxpayer money as well as national health insurance funds for payments. In that regard, Aera has characterized the JCQHC as an amakudari institution; in other words, a bureaucratic entity whose main purpose is to justify its own existence.\nSince the insurance system was launched in 2009, it has paid out about ¥4.1 billion in compensation for damages suffered during childbirth. At the end of the last fiscal year there was still about ¥80 billion in the reserve pool of funds and it is estimated the pool, which is controlled by the five insurance companies, will increase to ¥100 billion by the end of the present fiscal year.\nAccording to Aera, the JCQHC originally estimated that between 500 and 800 babies would suffer brain damage every year out of the country’s 1.2 million births, but real statistics for fiscal 2012 show that only about 200 babies suffered such damage. The mothers who requested arbitration from the NCAC are claiming they overpaid for the insurance and are demanding ¥20,000 each in refunds from the JCQHC. If they win, the organization will have to pay a total of ¥20.8 million. As Aera notes, more than 50 million women have paid this premium since 2009, though, strictly speaking, it is the public who has paid the premiums.\nOne obstetrician interviewed by Aera says that the reason all medical institutions sign up for the insurance is that part of the law mandates that any medical facility which applies for “high-priced medical care” compensation to the NHIU cannot be approved if it doesn’t pay into the obstetrics compensation insurance plan. Otherwise, the facility can only receive maximum compensation of ¥400,000 for each delivery, regardless of what it cost the facility. That’s too risky for smaller clinics.\nThe main beneficiaries of the system are the private insurance companies that participate. The premiums are practically free money since the companies are allowed to collect and administer the funds. Also, brain damage resulting in cerebral palsy is difficult to diagnose in an infant, and there is a five-year time limit for insurance claims.\nIn many cases, developmental disorders arising from brain damage don’t manifest themselves until the child is older and the time limit has passed. However, the insurance companies are also using this aspect to explain why they need such a huge pool of money.\nOf children born in 2009 who were eventually found to suffer from cerebral palsy due to brain damage, 12 were discovered in 2009, 100 in 2010 and 158 in 2011. Diagnoses are thus progressive, so the insurance companies say they need this huge surplus to meet future claims. But there has already been discussion in the Diet that the funds should be administered by a government body so as to relieve some of the public burden associated with medical care.\nIn any event, as some pediatricians have noted, ¥30 million over 20 years is insufficient to take care of most people who suffer from cerebral palsy. They tend to require 24-hour care the older they get. As one mother who is part of the arbitration claim told Aera, a system for compensating brain damage victims directly would be cheaper, more efficient and more humane than the obstetrics compensation insurance, which benefits administrators more than doctors or patients."} -{"text": "Sen. Barack Obama finished his two-day swing through Oregon this afternoon, talking to a crowd of about 2,000 people at Summit High School in Bend, then heading for Chicago.\nObama, who made stops in Beaverton, Woodburn, Albany and Eugene on Friday, arrived at Summit before noon and was introduced by Myrlie Evers-Williams, the widow of slain civil rights leader Medgar Evers. She lives nearby, and was the first woman to lead the NAACP. He then spoke to the crowd until about 12:35 p.m., before taking questions.\nBefore arriving at the high school, the candidate said he thought it was a great idea to travel across the country this summer with Sen. John McCain of Arizona, the presumptive Republican nominee, for a series of town hall debates.\nAfter he finished at the high school, he did interviews with the Bend Bulletin and two local television stations and then left for the Redmond airport where boarded his chartered plane back to Chicago.\nEarlier, the Illinois senator apologized for complicating prom plans for Summit High School in Bend and thanked supporters for turning out. \"Oregonians, it's your turn,\" he said. \"It's your turn to stand up and say it's time for change.\"\nObama was delayed because of an unscheduled stop at PVPowered, a solar energy company in Bend, Saturday morning.\nSen. Hillary Clinton had launched the Oregon offensive by the two candidates with a visit to Central Point Thursday night and finished her visit with a stop in Portland on Friday.\nObama began Friday with a tour of an educational technology company in Beaverton, then ended the day with a hurdle-hopping stop at Hayward Field and a rally before 8,000 on the University of Oregon campus.\nThe focus on Oregon, however, doesn't end today. President Bill Clinton returns to the state on Sunday to campaign for his wife, and voting in the state doesn't end until May 20.\nObama, bolstered by growing support from the superdelegates, focused his comments on Sen. John McCain, the presumptive Republican candidate, as he sought to make his nomination look all but inevitable.\nClinton, who toured Doernbecher Children's Hospital, once again pronounced Obama's health-care plan as inadequate and said she would compete hard in Oregon's May 20 primary.\nWhile their simultaneous presence in Oregon demonstrated how their extraordinary primary battle seems destined to continue toward the end of the primary calendar, many of the key developments in the Democratic contest took place outside the state.\nObama picked up another nine superdelegates -- including Rep. Peter DeFazio, D-Ore. -- and the support of a 600,000-member union of federal employees as it became clear that the party was beginning to close ranks behind him. Meanwhile, top Clinton aides told reporters in Washington, D.C. that she still has a long-shot path to the nomination.\nObama, in an interview with The Oregonian, dismissed Clinton's repeated challenges to debate him in Oregon - or anywhere else in the country.\n\"One of the things that is important from my perspective is not to feed the sense that Democrats are just banging against each other all the time,\" he said, adding that it was time to \"stay focused on the huge differences\" between the two parties.\nObama's morning visit to Vernier Software & Technology was designed to attract national media coverage before he went to an afternoon town hall meeting in Albany and the rally in Eugene.\nIn her efforts to sway voters, Clinton has tailored her message to issues she hopes resonate with rural Oregonians, specifically the economy, forest health and an expired federal timber payment program that once funneled $23 million a year to Jackson County programs.\nAt Doernbecher, she emphasized that her health care plan will cover all uninsured children. As she was heading out of town, her campaign was preparing to announce that her husband will be campaigning in Oregon on Sunday. The former president will visit Pendleton, Baker City and Redmond.\nObama ended his day of Oregon campaigning in Eugene, first with a surprise visit to Hayward Field, where he drew a standing ovation from fans attending The Oregon Twilight. He then spoke to the estimated 8,000 gathered on the Memorial Quadrangle. As Obama began, he noted that he had been introduced by the men's basketball coaches at Oregon and Oregon State at different speaking engagements.\n\"That's a sign of being able to bring anybody together in this country.\"\nObama and Clinton are competing for Oregon's 65 delegates and superdelegates. Obama has led polls in the state, one of five plus a territory that has yet to vote. McCain, the presumptive Republican nominee, will be in Portland on Monday.\n-- Jeff Mapes; firstname.lastname@example.org"} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/account_watcher/identity_provider.go. Lines: 931.\n\npackage accountwatcher\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/aws/aws-sdk-go-v2/aws\"\n\t\"github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider\"\n\t\"github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider/types\"\n\tcognitotypes \"github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider/types\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/database\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/fwerror\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\t\"github.com/fw-ai/fireworks/go/maputil\"\n\tresourcename \"github.com/fw-ai/fireworks/go/resource_name\"\n\t\"github.com/fw-ai/fireworks/go/sliceutil\"\n\t\"github.com/rs/zerolog/log\"\n)\n\n// reconcileIdentityProviderAndStatus reconciles the identity provider and its status.\nfunc (w *AccountWatcher) reconcileIdentityProviderAndStatus(ctx context.Context, accountID, identityProviderID string) {\n\tl := log.Ctx(ctx).With().\n\t\tStr(\"account_id\", accountID).\n\t\tStr(\"identity_provider_id\", identityProviderID).\n\t\tLogger()\n\tctx = l.WithContext(ctx)\n\tl.Info().Msg(\"Reconciling identity provider\")\n\n\tvar dba database.Account\n\terr := dba.Populate(w.db, resourcename.NewAccountName(accountID))\n\tif err != nil {\n\t\tl.Error().Err(err).Msg(\"Error getting account from database\")\n\t\treturn\n\t}\n\n\tvar idp database.IdentityProvider\n\tipn := resourcename.NewIdentityProviderName(accountID, identityProviderID)\n\terr = idp.Populate(w.db, ipn)\n\tif err != nil {\n\t\tl.Error().Err(err).Msg(\"Error getting identity provider from database\")\n\t\treturn\n\t}\n\toldState := idp.State\n\n\tnewState, err := w.reconcileIdentityProvider(ctx, &dba, &idp)\n\tif newState == 0 {\n\t\tnewState = idp.State\n\t}\n\n\tif newState == gpb.IdentityProvider_DELETING && err == nil {\n\t\tl.Info().Msg(\"Deleting identity provider from database\")\n\t\tresult := w.db.Delete(&idp)\n\t\tif result.Error != nil {\n\t\t\tl.Error().Err(result.Error).Msg(\"Error deleting identity provider from database\")\n\t\t\treturn\n\t\t}\n\t\tw.reconcilers.Delete(identityProviderReconcilerID(accountID, identityProviderID))\n\t\treturn\n\t}\n\n\tstatus := fwerror.LogAndGetStatus(err)\n\tshouldUpdateDB := newState != idp.State ||\n\t\tgpb.Code(status.Code()) != idp.Status.Code ||\n\t\tstatus.Message() != idp.Status.Message\n\n\tif shouldUpdateDB {\n\t\tl.Info().Str(\"state\", newState.String()).Msg(\"Writing identity provider status to database\")\n\t\tresult := w.db.Model(&idp).Updates(map[string]interface{}{\n\t\t\t\"State\": newState,\n\t\t\t\"Status_Code\": gpb.Code(status.Code()),\n\t\t\t\"Status_Message\": status.Message(),\n\t\t})\n\t\tif result.Error != nil {\n\t\t\tl.Error().Err(result.Error).Msg(\"Error writing identity provider status to database\")\n\t\t\treturn\n\t\t}\n\t} else {\n\t\tl.Info().Msg(\"Skipping writing identity provider status to database since no diff\")\n\t}\n\tif newState != oldState {\n\t\tl.Info().\n\t\t\tStr(\"control_plane_audit_log\", \"true\").\n\t\t\tStr(\"source\", \"account_watcher\").\n\t\t\tStr(\"resource\", ipn.String()).\n\t\t\tMsgf(\"State transitioned from %s to %s\", oldState.String(), newState.String())\n\t}\n}\n\n// reconcileIdentityProvider ensures that identity providers are properly configured for accounts that have them.\nfunc (w *AccountWatcher) reconcileIdentityProvider(ctx context.Context, dba *database.Account, idp *database.IdentityProvider) (gpb.IdentityProvider_State, error) {\n\tl := *log.Ctx(ctx)\n\tl.Info().Str(\"state\", idp.State.String()).Msg(\"Current identity provider state\")\n\n\tswitch idp.State {\n\tcase gpb.IdentityProvider_CREATING, gpb.IdentityProvider_UPDATING, gpb.IdentityProvider_READY:\n\t\terr := w.reconcileIdentityProviderResources(ctx, dba, idp)\n\t\tif err != nil {\n\t\t\treturn 0, fwerror.WrapL(l, \"error reconciling identity provider AWS resources: %w\", err)\n\t\t}\n\t\treturn gpb.IdentityProvider_READY, nil\n\n\tcase gpb.IdentityProvider_DELETING:\n\t\terr := w.deleteUserPoolIdentityProvider(ctx, dba.AccountId, idp.IdentityProviderId)\n\t\tif err != nil {\n\t\t\treturn 0, fwerror.WrapL(l, \"error deleting identity provider AWS resources: %w\", err)\n\t\t}\n\t\treturn gpb.IdentityProvider_DELETING, nil\n\n\tdefault:\n\t\treturn 0, fwerror.WrapL(l, \"unknown identity provider state: %v\", idp.State)\n\t}\n}\n\n// reconcileIdentityProviderResources ensures that identity providers are properly configured for accounts that have them.\nfunc (w *AccountWatcher) reconcileIdentityProviderResources(ctx context.Context, account *database.Account, idp *database.IdentityProvider) error {\n\tl := *log.Ctx(ctx)\n\n\tuserPoolName := account.AccountId\n\ttenantDomains := idp.TenantDomains\n\n\t// Reconcile user pool\n\tuserPoolId, err := w.reconcileUserPool(ctx, account, userPoolName, tenantDomains)\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error reconciling user pool: %w\", err)\n\t}\n\n\t// Reconcile identity provider\n\terr = w.reconcileIdentityProviderInstance(ctx, userPoolId, idp)\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error reconciling identity provider: %w\", err)\n\t}\n\n\t// Reconcile user pool client"} -{"text": "NEW YORK — Mark Teixeira held his knee and writhed in pain near home plate, thinking the worst after being hit by a pitch from Jon Lester.\nA couple of hours later, he was hoping to play Wednesday.\nTeixeira was hit on the side of his knee by Lester’s pitch in the first inning of New York’s 6-4 loss to the Boston Red Sox on Tuesday night, the Yankees’ sixth defeat in seven games against their AL East rivals this season.\n“I’ve never seen him show that much pain before,” manager Joe Girardi said. “He’s tough. You know, he’s played with a broken toe, he’s played with a lot of ailments, but he was in a lot of pain, and it was scary.”\nTeixeira was worried he had a broken kneecap.\n“That’s the first thing you think about,” he said.\nX-rays were negative and Teixeira was diagnosed with a bone bruise. He will be re-evaluated Wednesday, but a relieved Girardi said the team’s leading home run hitter will likely only miss a day or two.\n“In my mind, I’m going to try to play. I’m going to get a lot of treatment, get it moving and hopefully, a good night’s rest will keep the pain down,” Teixeira said.\nDerek Jeter had two hits to move within 12 of 3,000. He entered the 10-game homestand with 2,986 and said the most pressure he feels in his march toward the milestone is reaching the mark at Yankee Stadium.\nDavid Ortiz hit a two-run homer and Jonathan Papelbon labored through the ninth inning to earn his 200th save for Boston. Jacoby Ellsbury led off the game with a home run and Adrian Gonzalez hit an RBI triple as the Red Sox roughed up Freddy Garcia (4-5) early to move within two percentage points of the first-place Yankees in the AL East.\nJorge Posada, on the bench with the left-handed Lester on the mound, ran for Teixeira and stayed in at first base.\nPosada, who pulled himself out of the lineup after he was dropped to ninth in the order the last time the Red Sox were in town, later got his first two hits of the season against a lefty. He snapped an 0-for-27 skid from the right side with a single in the third inning.\n“Jorge was great; three hits tonight and he did a great job filling in there,” Teixeira said. “Hopefully, he can keep it going.”\nWorking on seven days’ rest, Lester (8-2) gave up three runs and eight hits — seven singles — in six innings.\nPapelbon, pitching while he appeals a three-game suspension for making contact with an umpire Saturday, gave up an RBI single to Posada but struck out Alex Rodriguez with a runner on second for his 12th save. He reached 200 saves in 359 appearances, fewest in baseball history. Mariano Rivera is next at 382 games.\n“I’ve always called him the godfather,” Papelbon said of Rivera. “He’s the godfather of this role. He’s made this role what it is today.”\nRed Sox reliever Bobby Jenks left in the seventh after throwing just four pitches because of tightness in his back. Jenks said it was a flare-up of an injury he had early in his career and that he was fine after coming out of the game.\nJenks will have an MRI on Wednesday and probably be out a game or two.\nEllsbury hit the fourth leadoff homer of his career, and the Red Sox chased Garcia soon after.\nGarcia had gone at least five innings in each of his nine starts this season, but was knocked out after just 1 2-3 innings, giving up four runs.\nAfter Ellsbury connected, Dustin Pedroia walked, Gonzalez tripled and Kevin Youkilis hit a sacrifice fly.\nPedroia had an RBI double in the second to make it 4-1. Garcia intentionally walked Gonzalez to load the bases, ending his night.\n“I’m disappointed. I couldn’t throw my slider, and that’s what happens,” Garcia said. “I’ve got to throw strikes, and I really didn’t have any chance to make adjustments.”\nThe Yankees scored in the bottom of the first, taking advantage of Lester’s early wildness. The left-hander plunked Teixeira and, three batters later, Russell Martin.\n“It’s tough to hit a guy like that and see him kind of go off the field not feeling too good,” Lester said. “Too be able to get back up on the mound and throw strikes was key.”\nRobinson Cano drove in Curtis Granderson, who walked to pull New York to 3-1.\nOrtiz irked Girardi with his showy bat flip after hitting a two-run homer off Hector Noesi in the fifth to make it 6-1.\nGirardi was concerned that Oritz would offend the 24-year-old rookie reliever.\n“Yeah, I didn’t really care for it,” Girardi said. “I’ve never had a problem with David Ortiz. He’s been a clutch player for a long time. My reaction’s probably more protecting our young kid. And that’s what I’m going to do.”\nOrtiz dismissed any ill-intent on the flip.\n“That’s Papi style,” he said.\nNick Swisher had a two-run double in the fifth.\nNOTES: RHP Phil Hughes (shoulder inflammation) threw off a mound at the Yankees’ complex in Tampa, Fla., and is expected to throw a simulated game Thursday. ... Jeter introduced the DJ3K bracelet marking his pursuit of 3,000 hits. Proceeds from the sale of the silicone bracelets will benefit his Turn 2 Foundation."} -{"text": "This report is from Sporting News writer David Whitley.\nThis might not go over well in Korea or editorial boards around America, but can we lay off Penn State for a minute?\nPlease folks, take a deep breath before somebody calls for the entire school to be bulldozed. We’re all disgusted by the sexual-abuse scandal, but the torches and pitchforks are getting out of control.\nMajor newspapers, websites want the season cancelled. Joe Scarborough, normally a voice of reason, called for the football program to be shut down for a year on his MSNBC show.\nThe Korea Times has even weighed in, saying the NCAA should immediately hit Penn State with the death penalty. It somehow resisted the temptation to call Joe Paterno the Kim Jong-il of college football.\nThe main thing all that would accomplish is punishing a whole lot of innocent people. Which brings up the obvious qualifier:\nThe agonies of Jerry Sandusky’s alleged victims far outweigh whatever is inflicted on players, fans and alumni. But that 99 percent has been caught in a hell created by far less than 1 percent of Penn State people.\nThe school has become an international symbol for shame. A degree is suddenly a ticket for ridicule.\nPeople whose hearts belonged to Penn State two weeks ago are suddenly ashamed to be associated with it. Cheering for their team is now seen as cheering child molestation.\nPresidential candidate Rick Santorum is a Penn State graduate. He said fellow alumni and strangers have been engaging in “group therapy” since the scandal broke.\n“They just want to talk about it because they are so hurt by it,” he said while campaigning in Iowa. “It is so personal. You feel betrayed that something like this could happen.”\nThe initial outrage sparked a student riot. Now even the knuckleheads are attending candlelight vigils.\nSantorum says the Nittany Lions should bypass a bowl this year. That makes sense considering bowls are supposed to be celebrations, and nobody feels like celebrating. Bypassing next season is another matter.\nHigh-minded folks think it will send the proverbial right message. They see Paterno as a mere fall guy for a corrupt system. They say it’s too early to move on.\nThey should realize Penn State can’t move on. There are years of criminal and civil trials ahead. Every time Sandusky takes the stand it will remind people from San Jose to Seoul that Linebacker U. was allegedly Pedophile U.\nThe people who let it become that have already faced justice. Penn State’s Board of Trustees has fired the president and football coach.\nThe athletic director and overseer of campus police have been arrested. The grad assistant who supposedly walked away from a horrid shower scene is a national pariah. If there are other guilty parties, they will hopefully be held accountable.\nCritics think everybody at Penn State is accountable. By supporting the football team they supported the monster that allowed a Sandusky to roam free.\nThere’s no doubt officials wanted to protect the athletic program, but they reacted like most in child-molestation cases. They went into denial and damage control.\nWe’ve seen it thousands of times in churches and boardrooms. Not that I expect the critics to buy that excuse.\n“Clearly the PSU program is totally out of control and has been for well over a decade,” said an editorial on Diverse Issues in Higher Education website.\nActually, Penn State is one of four schools to never have a major NCAA violation. It won’t this time, either. The NCAA manual may be 10,000 pages thick, but nowhere in there is a rule against assistant football coaches showering with 10-year-old boys.\nThat’s because such things are patently obvious. The Sandusky cover-up didn’t spring from our football culture, it came from our culture.\nSlapping Penn Sate with the death penalty is not going to make the next pedophile think twice before taking a boy into the training room. It won’t make colleagues less likely to turn away.\nIt also won’t make the next Nevin Shapiro any less likely to throw a party for recruits on his yacht.\nWhat is the reformers’ plan to get things under control? Take money out of football? Pay players? Make them all have 1600 SAT scores?\nNone of that would have controlled a Sandusky.\nThen there is the matter of money. Penn State football generated $72.7 million last year, with a $53.2 million profit. In ivory towers, that is proof business had encroached on academic purity.\nIn the real world, that pays for baseball, track, lacrosse, swimming, gymnastics, hockey, tennis and women’s fencing.\nShould all those athletes go down the drain for a couple of years?\nWe rail at the injustice when the NCAA imposes sanctions on schools like USC. Reggie Bush and Pete Carroll are making NFL millions, while the innocent players left behind are penalized.\nIn this case, the (alleged) bad guys are not getting away. Yet we still want to hammer the innocent athletes left behind? We’re OK that everything Penn State has been irrevocably tainted?\nOnce more for emphasis:\nWhatever pain players, students and fans endure is nothing compared to what Sandusky allegedly inflicted. But all this righteous outrage is only producing more victims.\nThere have already been far too many of those at Penn State.\n-Story originally appeared on SportingNews.com."} -{"text": "\n\tclientId, err := w.reconcileUserPoolClient(ctx, userPoolId, userPoolName, idp, account)\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error reconciling user pool client: %w\", err)\n\t}\n\n\t// Reconcile user pool domain\n\tdomainPrefix, err := w.reconcileUserPoolDomain(ctx, userPoolId, account)\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error reconciling user pool domain: %w\", err)\n\t}\n\n\t// Update identity provider configuration\n\terr = idp.Populate(w.db, resourcename.NewIdentityProviderName(account.AccountId, idp.IdentityProviderId))\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"failed to get identity provider %s: %w\", idp.IdentityProviderId, err)\n\t}\n\n\tresult := w.db.Model(&idp).Updates(&database.IdentityProvider{\n\t\tDomainUrl: fmt.Sprintf(\"https://%s.auth.us-west-2.amazoncognito.com\", domainPrefix),\n\t\tIssuerUrl: fmt.Sprintf(\"https://cognito-idp.us-west-2.amazonaws.com/%s\", userPoolId),\n\t\tClientId: clientId,\n\t})\n\tif result.Error != nil {\n\t\treturn fwerror.WrapL(l, \"failed to update identity provider cognito resources: %w\", result.Error)\n\t}\n\n\treturn nil\n}\n\n// reconcileUserPool ensures the user pool exists and is properly configured.\nfunc (w *AccountWatcher) reconcileUserPool(ctx context.Context, account *database.Account, userPoolName string, tenantDomains []string) (string, error) {\n\tl := *log.Ctx(ctx)\n\n\texistingUserPoolId, err := w.GetUserPoolByAccountID(ctx, account.AccountId)\n\tif err != nil {\n\t\treturn \"\", fwerror.WrapL(l, \"error discovering user pool by account ID: %w\", err)\n\t}\n\n\tif existingUserPoolId != \"\" {\n\t\terr = w.reconcileUserPoolConfig(ctx, existingUserPoolId, account.AccountId, tenantDomains)\n\t\tif err != nil {\n\t\t\treturn \"\", fwerror.WrapL(l, \"error reconciling user pool configuration: %w\", err)\n\t\t}\n\t\treturn existingUserPoolId, nil\n\t}\n\n\tresult, err := w.awsClient.CognitoClient.CreateUserPool(ctx, &cognitoidentityprovider.CreateUserPoolInput{\n\t\tPoolName: &userPoolName,\n\t\tPolicies: &types.UserPoolPolicyType{\n\t\t\tPasswordPolicy: &types.PasswordPolicyType{\n\t\t\t\tMinimumLength: aws.Int32(8),\n\t\t\t\tRequireLowercase: true,\n\t\t\t\tRequireNumbers: true,\n\t\t\t\tRequireSymbols: true,\n\t\t\t\tRequireUppercase: true,\n\t\t\t},\n\t\t},\n\t\tAutoVerifiedAttributes: []types.VerifiedAttributeType{types.VerifiedAttributeTypeEmail},\n\t\tUsernameAttributes: []types.UsernameAttributeType{types.UsernameAttributeTypeEmail},\n\t\tAdminCreateUserConfig: &types.AdminCreateUserConfigType{\n\t\t\tAllowAdminCreateUserOnly: true,\n\t\t},\n\t\tAccountRecoverySetting: &types.AccountRecoverySettingType{\n\t\t\tRecoveryMechanisms: []types.RecoveryOptionType{\n\t\t\t\t{\n\t\t\t\t\tName: types.RecoveryOptionNameTypeAdminOnly,\n\t\t\t\t\tPriority: aws.Int32(1),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tUserPoolTags: map[string]string{\n\t\t\t\"Account-ID\": account.AccountId,\n\t\t\t\"Tenant-Domains\": strings.Join(tenantDomains, \" \"),\n\t\t},\n\t\tLambdaConfig: &types.LambdaConfigType{\n\t\t\tPreSignUp: aws.String(\"arn:aws:lambda:us-west-2:794651314743:function:FireworksSharedDomainValidation\"),\n\t\t\tPreTokenGeneration: aws.String(\"arn:aws:lambda:us-west-2:794651314743:function:FireworksSharedTokenGeneration\"),\n\t\t},\n\t})\n\tif err != nil {\n\t\treturn \"\", fwerror.WrapL(l, \"failed to create UserPool via AWS SDK: %w\", err)\n\t}\n\tuserPoolId := *result.UserPool.Id\n\tl.Info().Str(\"user_pool_id\", userPoolId).Msg(\"Created new user pool\")\n\treturn userPoolId, nil\n}\n\n// reconcileIdentityProviderInstance ensures the identity provider exists and is properly configured.\nfunc (w *AccountWatcher) reconcileIdentityProviderInstance(ctx context.Context, userPoolId string, idp *database.IdentityProvider) error {\n\tl := *log.Ctx(ctx)\n\n\texistingProvider, err := w.GetIdentityProvider(ctx, userPoolId, idp.IdentityProviderId)\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error discovering identity provider: %w\", err)\n\t}\n\n\tif existingProvider != nil {\n\t\terr = w.reconcileIdentityProviderConfig(ctx, userPoolId, idp, existingProvider)\n\t\tif err != nil {\n\t\t\treturn fwerror.WrapL(l, \"error reconciling identity provider config: %w\", err)\n\t\t}\n\t\treturn nil\n\t}\n\n\terr = w.createUserPoolIdentityProvider(ctx, userPoolId, idp)\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"failed to create user pool identity provider: %w\", err)\n\t}\n\tl.Info().Str(\"provider_name\", idp.IdentityProviderId).Msg(\"Created new identity provider\")\n\treturn nil\n}\n\n// reconcileUserPoolClient ensures the user pool client exists and is properly configured.\nfunc (w *AccountWatcher) reconcileUserPoolClient(ctx context.Context, userPoolId, userPoolName string, idp *database.IdentityProvider, account *database.Account) (string, error) {\n\tl := *log.Ctx(ctx)\n\n\tclientName := fmt.Sprintf(\"%s-client\", userPoolName)\n\texistingClient, err := w.GetUserPoolClient(ctx, userPoolId, clientName)\n\tif err != nil {\n\t\treturn \"\", fwerror.WrapL(l, \"error discovering user pool client: %w\", err)\n\t}\n\n\tif existingClient != nil {\n\t\tclientId := *existingClient.ClientId\n\t\terr = w.reconcileUserPoolClientConfig(ctx, userPoolId, existingClient, userPoolName, []string{idp.IdentityProviderId}, account.AccountId)\n\t\tif err != nil {\n\t\t\treturn \"\""} -{"text": "What if one of your employee technicians decides that he or she wants to quit and start their own pest control business? Are you protected?\nMany pest control companies utilize non-compete agreements or clauses in their businesses.\nWhat exactly are pest control non-compete agreements? Do they work, and how are they enforced? Are there any drawbacks to using these clauses in the employee hiring process? What about legal issues that come up?\nMany questions arise when it comes to pest control non-competes. In part one of our look at pest control non-competes, let’s take a closer look at the employers or PCO’s perspective:\nPest Control Non-Compete Agreements\nA non-compete agreement or clause is a contract under which an employee (in this case a pest control employee or technician) agrees not to enter into or start a similar profession that is in competition against the employer, or PCO. It basically prohibits a current or former pest control employee from starting a similar pest control business in your competitive markets.\nThe majority of states in the U.S. recognize and enforce various forms of non-compete agreements. A few states, such as California, totally ban or prohibit non-compete agreements except in limited circumstances.\nReasons To Use A Pest Control Non-Compete Agreement\nThe reason for having your pest control employees or technicians sign a non-compete agreement is simple. You must protect yourself and the business you’ve put so much time, capital, and effort into.\nOwning or managing your own pest management company comes with many risks. One such risk is the possibility that upon an employee’s termination or resignation, they might begin working for a direct competitor or even start their own business. By doing so, this former employee can gain a competitive advantage by exploiting confidential information about their former employer’s operations, trade secrets, or sensitive information such as customer lists, business practices, most effective products, and marketing plans.\nThe purpose of having your technicians sign a non-compete agreement or clause upon employment is an attempt to prevent this from happening. This protection allows the PCO to hire, contract and otherwise operate a pest control business without fear that the business knowledge and advantages will soon be used against them.\nThe biggest concern I hear from PCO’s when it comes to employees leaving their companies and starting their own businesses, is taking customers with them when they go. These technicians develop close relationships with the customers on their routes. These customers trust their technicians, and these technicians know exactly what the customer’s wants and needs are. Many will follow a tech when they leave.\nWhen this situation occurs many legal and ethical issues arise. As the owner of your pest management company, you paid for the trucks, the insurance, the chemicals, the training, the customer service reps; basically all of the overhead. You’ve also spent advertising money, paid sales commissions, and paid for online marketing in order to attain these customers, but also retain them. When a former employee takes these customers, it can be construed as theft.\nDrawbacks Of Pest Control Non-Compete Agreements\nOne of the biggest disadvantages of non-competes is that they can be incredibly difficult to enforce. Enforceability can even depend on the state. Like I mentioned before, a few states (California), employment related non-competes are illegal.\nPest Control Non-Competes & Legal Issues\nAs mentioned, the enforceability of a non-compete may require legal action. As the owner of a pest management company, you must evaluate the cost of suing your former employee who is breaking a non-compete agreement. You also must determine if there is any chance of actually getting paid; which may be unlikely if your former employee is just starting out and has very little capital. Usually the costs are higher than your losses, and even if they win, you may never get paid.\nEvery pest control business should have legal representation. Consult with yours to ensure your non-compete agreement, or any other legal document for that matter, meets local, state and federal requirements.\nI’m hearing more and more from pest control operators, that they are changing their strategies when it comes to non-compete agreements. Many have changed from non-compete agreements (which are VERY difficult to enforce) to non-SOLICIT agreements. One such agreement will state exactly what the PCO wants– That a former employee can’t solicit the customers you invested resources and time in getting. They seem to be a little easier to legally enforce.\nI’m also hearing that some PCO’s are beginning to use confidentiality agreements; which are very similar in nature. Every state is a little different, so do some research and find out which contract is right for you and your pest control business.\nThe topic of pest control non-competes is a difficult one; full of ethical and legal issues. No PCO wants to lose their hard-earned customers to anyone else, so look to non-compete agreements; or better yet, consider a non-solicitation agreement instead.\nConsult with your company’s legal representation to ensure your non-compete or non-solicit agreement meets local, state and federal requirements."} -{"text": "Have you been using the Studio 8 products to create your online content? Got some interesting work to show? Not averse to being featured in a case study and getting tons of exposure? If your answers to the last three questions are a resounding “yes” (and you missed Mike’s post earlier this evening), the Studio product marketing folks are currently looking for some reference customers, and would be interested in checking out your work. Should you (or even someone you know) fit the bill, please drop a comment on this post with some details (or email me directly at sfegette AT macromedia DOT com) and I’ll be sure to pass your info along for consideration.\nJust checked out a slick new Dreamweaver extension from Macromedia extensibility experts WebAssist, called SiteAssist. If you need to build a site up very quickly – SiteAssist is a great wizard-based means to rapidly design, build out, and manage web sites in Dreamweaver. There’s a slew of pre-designed templates and color schemes to choose from, or you can update the resulting sites with Dreamweaver’s template engine and your own visuals for a more custom look/feel. Changing designs and information architecture is even a snap.\nSiteAssist is a commercial extension ($149 USD), but the kind folks at WebAssist are offering $50 off for the next two weeks to anyone who wants to grab a new copy – just click here and you’ll pick up the discounted price. (For the record- I’ve no commercial interest here, the savings is yours alone!)\nVery nicely done DW extension, for those times where you need a site up yesterday- and the clock is ticking fast. Check it out!\nI’m admittedly late to the blogrush on this story, but mad props are due regardless. Darron Schall has apparently been working on a VNC client for Flash Player 8.5, which is currently blowing my mind. Essentially a remote desktop application, there have been many implementations of VNC clients in both native code and Java, but I’m really blown away at how cool apps like this will be for enterprise and even home automation applications. Binary socket connection to a TightVNC server, DES encryption, this is awesome stuff- and really starting to get me excited at the inevitability of more amazing apps and projects like this to come.\nI’m currently in the Community Lounge at MAX 2005 doing the schmoozefest thing, after wrapping my second of two sessions on Flash video and Dreamweaver (thanks to everyone who attended for both the warm response and the great questions!). The show has been amazing so far- with attendance through the roof- last I heard we were around 3,000 attendees this year, well up from last year. Highlights for me so far have been the launch of Labs and the warm reception the Flex 2 public alpha on Labs is recieving, and (to be brutally honest) the opening keynote preso by Ze Frank and his amazingly strange but insanely cool Flash short-form pieces.\nWell, the cat’s out of the bag- the project I’ve been working on for the last few weeks is now live… Macromedia Labs. Featuring the public alpha of the Flex 2 product line, Macromedia Labs includes a wiki, source repository, and plenty of initial content to get you up to speed and running with the new bits, as quickly as possible.\nMake sure to watch the video tutorials, particularly Sho Kuwamoto’s 15-minute Flex application video, which should drive home how easy it is to rapidly develop RIAs in Flex Builder 2. Mark Anders also provides overviews of creating a new project and compiling, and building a constraint-based layout in Flex Builder 2. But that’s just a highlight or two, there’s a boatload of information, tips and samples lurking within the nether regions of the Labs site and wiki to be discovered, and more on the way.\nI wrote up a more official overview of Macromedia Labs for the Developer Center giving all the whys and what-fors, but I suspect you’ll get the most mileage out of downloading the new bits and trying them out for yourself. After all, that’s the point! So what are you waiting for? Get on with the downloading, and have some fun with the Flex 2 alpha.\nJust caught this on Digg.com, one of my old favorite side-scroller gams – Prince of Persia: The Sands of Time – has been recreated in Flash. Check it out- a fun diversion for your MAX Sunday!\nI’m typing this perched in one the San Francisco airport’s coffee bars/wifi hotspots, awaiting boarding call for my flight to Orange County, and MAX 2005. Can’t wait to meet up with everyone at the conference this year! I’ll be giving a 1-hour presentation both Monday and Tuesday (IIRC) on Flash Video for Dreamweaver users – which should be a great session if you’ve been hesitating on getting video integrated into your websites. Keep posted, as I’ll likely publish some of the materials from my sessions up here after MAX for the interested.\nThat being said, the call just came so I’m off to board the plane and get to the show! If you’re going to MAX, make sure to tap me on the shoulder and say hi. See you soon…"} -{"text": ", fwerror.WrapL(l, \"error reconciling user pool client config: %w\", err)\n\t\t}\n\t\treturn clientId, nil\n\t}\n\n\tclientId, err := w.createUserPoolClient(ctx, userPoolId, userPoolName, []string{idp.IdentityProviderId}, account.AccountId)\n\tif err != nil {\n\t\treturn \"\", fwerror.WrapL(l, \"failed to create user pool client: %w\", err)\n\t}\n\tl.Info().Str(\"client_name\", clientName).Str(\"client_id\", clientId).Msg(\"Created new user pool client\")\n\treturn clientId, nil\n}\n\n// reconcileUserPoolDomain ensures the user pool domain exists and is properly configured.\nfunc (w *AccountWatcher) reconcileUserPoolDomain(ctx context.Context, userPoolId string, account *database.Account) (string, error) {\n\tl := *log.Ctx(ctx)\n\n\texistingDomainName, err := w.GetUserPoolDomain(ctx, account.AccountId)\n\tif err != nil {\n\t\treturn \"\", fwerror.WrapL(l, \"error discovering user pool domain: %w\", err)\n\t}\n\n\tif existingDomainName != \"\" {\n\t\terr = w.reconcileUserPoolDomainConfig(ctx, userPoolId, existingDomainName)\n\t\tif err != nil {\n\t\t\treturn \"\", fwerror.WrapL(l, \"error reconciling user pool domain config: %w\", err)\n\t\t}\n\t\treturn existingDomainName, nil\n\t}\n\n\tdomainPrefix := fmt.Sprintf(\"fireworks-%s\", account.AccountId)\n\n\t// If the user pool already has a different / stale domain bound to it, a\n\t// plain CreateUserPoolDomain will be rejected with\n\t// InvalidParameterException: User pool already has a domain configured\n\t// because each Cognito user pool can have at most one hosted-UI domain.\n\t// Disassociate whatever is currently bound first, then create the desired\n\t// domain. DescribeUserPool reports the currently-bound domain via\n\t// UserPool.Domain (empty if none).\n\tif err := w.clearStaleUserPoolDomain(ctx, userPoolId); err != nil {\n\t\treturn \"\", fwerror.WrapL(l, \"error clearing stale user pool domain before create: %w\", err)\n\t}\n\n\t_, err = w.awsClient.CognitoClient.CreateUserPoolDomain(ctx, &cognitoidentityprovider.CreateUserPoolDomainInput{\n\t\tDomain: aws.String(domainPrefix),\n\t\tUserPoolId: aws.String(userPoolId),\n\t})\n\tif err != nil {\n\t\treturn \"\", fwerror.WrapL(l, \"failed to create UserPool domain: %w\", err)\n\t}\n\tl.Info().Str(\"domain_name\", domainPrefix).Msg(\"Created new user pool domain\")\n\treturn domainPrefix, nil\n}\n\n// clearStaleUserPoolDomain looks up whatever domain is currently bound to the\n// given user pool (via DescribeUserPool) and disassociates it. It is a no-op\n// if the user pool has no domain bound. Cognito's two \"already gone\" error\n// shapes (ResourceNotFoundException and InvalidParameterException \"No such\n// domain or user pool exists\") are treated as benign.\nfunc (w *AccountWatcher) clearStaleUserPoolDomain(ctx context.Context, userPoolId string) error {\n\tl := *log.Ctx(ctx)\n\n\tupDesc, err := w.awsClient.CognitoClient.DescribeUserPool(ctx, &cognitoidentityprovider.DescribeUserPoolInput{\n\t\tUserPoolId: &userPoolId,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"failed to describe user pool %s: %w\", userPoolId, err)\n\t}\n\tif upDesc.UserPool == nil || upDesc.UserPool.Domain == nil || *upDesc.UserPool.Domain == \"\" {\n\t\treturn nil\n\t}\n\n\tboundDomain := *upDesc.UserPool.Domain\n\tl.Warn().Str(\"bound_domain\", boundDomain).Str(\"user_pool_id\", userPoolId).Msg(\"Deleting stale domain bound to user pool\")\n\t_, delErr := w.awsClient.CognitoClient.DeleteUserPoolDomain(ctx, &cognitoidentityprovider.DeleteUserPoolDomainInput{\n\t\tDomain: &boundDomain,\n\t\tUserPoolId: &userPoolId,\n\t})\n\tif delErr != nil && !isCognitoDomainNotFound(delErr) {\n\t\treturn fwerror.WrapL(l, \"failed to delete stale domain %s on user pool %s: %w\", boundDomain, userPoolId, delErr)\n\t}\n\treturn nil\n}\n\n// reconcileUserPoolConfig ensures the user pool configuration is up to date, including tags.\nfunc (w *AccountWatcher) reconcileUserPoolConfig(ctx context.Context, userPoolId, accountId string, tenantDomains []string) error {\n\tl := *log.Ctx(ctx)\n\n\t// Get current user pool configuration\n\tdescribeOutput, err := w.awsClient.CognitoClient.DescribeUserPool(ctx, &cognitoidentityprovider.DescribeUserPoolInput{\n\t\tUserPoolId: &userPoolId,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error describing user pool: %w\", err)\n\t}\n\n\t// Get current tags\n\ttagsResponse, err := w.awsClient.CognitoClient.ListTagsForResource(ctx, &cognitoidentityprovider.ListTagsForResourceInput{\n\t\tResourceArn: describeOutput.UserPool.Arn,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error getting user pool tags: %w\", err)\n\t}\n\n\tcurrentTags := tagsResponse.Tags\n\tdesiredTenantDomains := strings.Join(tenantDomains, \" \")\n\tcurrentTenantDomains := currentTags[\"Tenant-Domains\"]\n\n\tif currentTenantDomains != desiredTenantDomains {\n\n\t\t_, err = w.awsClient.CognitoClient.TagResource(ctx, &cognitoidentityprovider.TagResourceInput{\n\t\t\tResourceArn: describeOutput.UserPool.Arn,\n\t\t\tTags: map[string]string{\n\t\t\t\t\"Account-ID\": accountId,\n\t\t\t\t\"Tenant-Domains\": desiredTenantDomains,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn fwerror.WrapL(l, \"error updating user pool tags: %w\", err)\n\t\t}\n\t\tl.Info().\n\t\t\tStr(\"user_pool_id\", userPoolId).\n\t\t\tStr(\"tenant_dom"} -{"text": "About the Author\nSend Me Your EventsPlease email Kevin Callahan with your outdoor South Jersey events at Kcallahan@gannett.com\n- Fishing lures $10 April 23, 2015Asking for 10.00 each for these. They are a lot of these lures. Please contact by text.\n- Wm Zimmerman Framed Ruffed Grouse Print (Woodbury) $55 April 23, 2015Framed Ruffed Grouse Print-NICE! Wm Zimmerman Frame Size 26 3/4\" x 20 3/4\" Perfect for your Man Cave or Cabin Pet/Smoke Free Home Local Pick Up Only\n- Two sets of golf clubs (Burlington) $300 April 23, 2015I have three golf bags and two sets of clubs, and a cart. I don't know much about golf clubs but they are all name brand good clubs. Everything is pretty dusty because they have been in my garage for awhile but nothing has rust. I am willing to split […]\n- RE:SOLVE Emergency Tool & Pocket Knife (Woodbury) $15 April 23, 2015CAMPING-HUNTING-FISHING-PREPPER-EMERGENCY-BOY SCOUTS RE:SOLVE 12 Piece Outdoor Recreation Multi-Tool -LED Flashlight with Flint -4\" Adjustable Wrench -Hex Keys: 4mm,5mm, and 6mm -2.5\" Locking-Blade Knife -Phillips Screwdriver #1 -Slotted Screw […]\n- Men's Woolrich Wool Jacket-Tan (Woodbury) $20 April 23, 2015Woolrich Tan Wool Jacket-16304 Size Men's Medium 100% Wool Great for layering/Spring Zippered(YKK) Slash Pockets Deep Interior Pockets Woolrich Quality Fishing-Camping-Hunting-Scouts-Bird Watching-Day Trips Pet/Smoke Free Home Local Pick Up […]\n- Fishing lures $10 April 23, 2015\n- Mattie: Hi there! I could have sworn I’ve been to this site before but after looking at some of the posts I...\n- world news: As recently as 2009 Charlie Bronson was declined parole, the parole board believing that he had not...\n- jethrosplace.com: This article gives clear idea in favor of the new viewers of blogging, that actually how to do...\n- digitalkamera Vergleich: Aw, this was a very nice post. Finding the time and actual effort to create a very good...\n- situs judi: this article so useful for me. c’mon make a good article anymore, thank you\nInto the Outside PodcastLoading...\n- Cal Column\n- Concert Series\n- Gear Review\n- Heatlh and Fitness\n- Horse riding\n- Ice Skating\n- Inspirational Stories\n- Outdoor Learning\n- Outdoor News\n- Outdoor Stories\n- Rock Climbing\n- Sky Diving\n- The W's of the Day\n- ticketing bikes\n- travel writing\nCategory Archives: Concert Series\nhttp://automotorblog.com/?option=To-Earn-Money-For-Mmo-Games To Earn Money For Mmo Games\nSorry, the Friday High Noon OUTdoor Concert Series isn’t OUT doors today. With the rain around here, thought we go inside and don’t think you will be disappointed being indoors today:\nNot much of a day for an OUTdoor concert? The Into the OUTside Friday High Noon OUTdoor Concert Series doesn’t think a little rain should ruin your fun . . .\nIn case you missed U2 on Good Morning America at Fordham University, the High Noon Friday OUTdoor Concert Series presents a replay of the show three weeks ago . . .\nThe Into the Outside Friday High Noon OUTdoor Concert series is Andrew Bird via suggestion from Jessie Cuzzupe:\nInto the OUTside presents the High Noon OUTdoor Friday concert to kick off the weekend. This week it is Jewel, who checked OUT of Dancing With the Stars on Thursday with fractured tibias in both legs, in a 2006 concert … Continue reading\nThe Into the OUTside Famous Friday High Noon Outdoor Concert Series presents today some Mardi Gras. Actually, on this day in 1827 it was the birth of Mardi Gras when a group of students wearing costumes and masks danced through the … Continue reading\nThe Into the Outside Friday High Noon OUTdoor Concert Series presents Cold Play. Since Chris Martin and the lads got ripped off at the Grammys for album of the year last week, we will Fix It here with Cold Play … Continue reading\nThe Into the Outside Friday High Noon OUTdoor Concert Series comes from the suggestion of Joe Cuzzupe with U2 on the Vertigo Tour in Milan:\nIn honor of Keith Richards’ 65th birthday on Dec. 4, the Into the Outside Friday High Noon Outdoor Concert Series began in December with an outdoor Stones’ show. I posted video from my first outdoor Stones’ show on Sept. 25, … Continue reading\nIn honor of Keith Richards’ 65th birthday yesterday, the weekly Into the Outside Friday High Noon Outdoor Concert Series was decided to be an outdoor Stones’ show today. I was hoping someone out there had video from my first outdoor … Continue reading"} -{"text": "1) Probably the last thing KMSP — Fox 9 in the Twin Cities — wanted, was to wake up today to find out it had been the target of one of Jon Stewart’s segments on The Daily Show. Wait for it.Twin Cities media watcher David Brauer noted — via Twitter — ” But to be fair, they were only station credited with mentioning Exxon paid zero U.S. taxes. I’ll take a few spa reports for that.”\nMeanwhile, NPR reports today that nearly two-thirds of households making $250,000 or more support raising taxes to cut the federal deficit.\nIn today’s New York Times, David Leonhardt points out there’s a different between not paying taxes, and not paying income taxes (A point News Cut made a few days ago ).\n2) It’s not too hard to figure out why we’re becoming a nation of fatties. The Agency for Healthcare Research and Quality has released its annual reports, finding…\n* One-third of obese adults have never received advice from their doctor about exercise.\n* Obese adults who are black, Hispanic, poor or have less than a high school education are less likely to receive diet advice from their doctor.\n* Most overweight children and one-third of obese adults report that they have not been told by their doctor that they are overweight.\n* Most American children have never received counseling from their health care provider about exercise, and almost half have never received counseling about healthy eating.\nAccording to the reports, “not having insurance is the single strongest predictor of poor quality care, exceeding the effects of race, ethnicity, income or education.” Find both reports here. A separate report confirmed an old axiom: Hospitals are a lousy place to be sick. A report finds 100,000 people die each year from infections they picked up while in the hospital.\n3) Today’s phrase that pays: Stay focused at work. A priest working a suicide help line in Sweden fell asleep during a call from a man wanting to kill himself. He decided not to when he became more angry than depressed because of the snoring he heard while telling the priest his story.\nRemember. Focus! From last night’s NBA game in Chicago.\n4) Just in time for spring planting: First word that people can catch a virus from a plant. Round up the usual petunias.\nWHAT WE’RE DOING\nMidmorning (9-11 a.m.) – First hour: The online magazine Slate decided to find out what its readers think are the best ways to save energy. The top vote-getters include getting rid of lawns and cheaper solar shingles. Slate columnist Daniel Gross talks about what he has done to try to live the energy-efficient life.\nSecond hour: Novelist Richard Powers was among the early few to have his genetic makeup mapped. His latest work of fiction asks if there were a gene for happiness, should we rid ourselves of discontent?\nMidday (11 a.m. – 1 p.m.) – First hour: Carleton College political science professor Steven Schier analyzes the tea party movement, which is rallying in Washington tomorrow.\nSecond hour: Jay Winik, author of “April 1865: The Month that Saved America.” He spoke at the Commonwealth Club of California.\nTalk of the Nation (1-3 p.m.) – First hour: Political editor Ken Rudin.\nSecond hour: Dana Sachs explores the legacy of Operation Babylift: international adoption and the Children of War in Vietnam. The mission had the best of intentions — but created a complicated web of psychological and emotional consequences for the children, their new families, and, in some cases, for the families they left behind.\nAll Things Considered (3-6:30 p.m.) – NPR is going to tackle “red light cameras,” which have already been found to be unconstitutional in Minnesota. They’ll look at the use of the cameras in Los Angeles. When I was in Arizona a few weeks ago, I found the effect of the cameras. Nobody ran red lights. And because they’re also used to nab speeders, few people seemed to speed. Back in Minnesota, meanwhile, I regularly see people run red lights and one of these days, they’re going to kill someone. Here’s the discussion point: The rights of the many outweigh the rights of the few ; the Minnesota Supreme Court said that in the ’90s when it ruled on the state’s plan to keep sex offenders incarcerated, even though they had already served their prison time and hadn’t committed a crime. Couldn’t that justify infringing on the right of a driver who considers red lights a mere suggestion?"} -{"text": "ains\", desiredTenantDomains).\n\t\t\tMsg(\"Updated user pool tenant domains\")\n\t} else {\n\t\tl.Info().Str(\"user_pool_id\", userPoolId).Msg(\"User pool configuration is already up to date\")\n\t}\n\n\treturn nil\n}\n\nfunc identityProviderReconcilerID(accountID, identityProviderID string) string {\n\treturn fmt.Sprintf(\"identity-provider/%s/%s\", accountID, identityProviderID)\n}\n\n// GetUserPoolByAccountID searches for a user pool with the specific account ID.\nfunc (w *AccountWatcher) GetUserPoolByAccountID(ctx context.Context, accountID string) (string, error) {\n\tl := *log.Ctx(ctx)\n\tl.Info().Str(\"account_id\", accountID).Msg(\"Searching for user pool by account ID\")\n\n\tpaginator := cognitoidentityprovider.NewListUserPoolsPaginator(w.awsClient.CognitoClient, &cognitoidentityprovider.ListUserPoolsInput{\n\t\tMaxResults: aws.Int32(60),\n\t})\n\n\tfor paginator.HasMorePages() {\n\t\toutput, err := paginator.NextPage(ctx)\n\t\tif err != nil {\n\t\t\treturn \"\", fwerror.WrapL(l, \"error listing user pools: %w\", err)\n\t\t}\n\n\t\tfor _, userPool := range output.UserPools {\n\t\t\t// AWS API can return user pools with nil Id fields in rare cases\n\t\t\t// (e.g., during creation/deletion states or API inconsistencies)\n\t\t\tif userPool.Id == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tuserPoolId := *userPool.Id\n\n\t\t\tdescribeOutput, err := w.awsClient.CognitoClient.DescribeUserPool(ctx, &cognitoidentityprovider.DescribeUserPoolInput{\n\t\t\t\tUserPoolId: &userPoolId,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\tl.Warn().Str(\"user_pool_id\", userPoolId).Err(err).Msg(\"Failed to describe user pool, skipping\")\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif describeOutput.UserPool.Arn == nil {\n\t\t\t\tl.Warn().Str(\"user_pool_id\", userPoolId).Msg(\"User pool ARN is nil, skipping\")\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\ttagsResponse, err := w.awsClient.CognitoClient.ListTagsForResource(ctx, &cognitoidentityprovider.ListTagsForResourceInput{\n\t\t\t\tResourceArn: describeOutput.UserPool.Arn,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\tl.Warn().Str(\"user_pool_id\", userPoolId).Err(err).Msg(\"Failed to get tags for user pool, skipping\")\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif tagsResponse.Tags[\"Account-ID\"] == accountID {\n\t\t\t\tl.Info().Str(\"user_pool_id\", userPoolId).Interface(\"tags\", tagsResponse.Tags).Msg(\"Found user pool with matching account ID\")\n\t\t\t\treturn userPoolId, nil\n\t\t\t}\n\t\t}\n\t}\n\n\tl.Info().Msg(\"No user pools found with matching account ID\")\n\treturn \"\", nil\n}\n\nfunc (w *AccountWatcher) GetIdentityProvider(ctx context.Context, userPoolId, providerName string) (*cognitotypes.ProviderDescription, error) {\n\tl := *log.Ctx(ctx)\n\tl.Info().Str(\"user_pool_id\", userPoolId).Str(\"provider_name\", providerName).Msg(\"Searching for existing identity provider\")\n\n\tpaginator := cognitoidentityprovider.NewListIdentityProvidersPaginator(w.awsClient.CognitoClient, &cognitoidentityprovider.ListIdentityProvidersInput{\n\t\tUserPoolId: &userPoolId,\n\t})\n\n\tfor paginator.HasMorePages() {\n\t\toutput, err := paginator.NextPage(ctx)\n\t\tif err != nil {\n\t\t\treturn nil, fwerror.WrapL(l, \"error listing identity providers for user pool %s: %w\", userPoolId, err)\n\t\t}\n\n\t\tfor _, provider := range output.Providers {\n\t\t\tif provider.ProviderName != nil && *provider.ProviderName == providerName {\n\t\t\t\tl.Info().Str(\"provider_name\", providerName).Str(\"provider_type\", string(provider.ProviderType)).Msg(\"Found existing identity provider\")\n\t\t\t\treturn &provider, nil\n\t\t\t}\n\t\t}\n\t}\n\n\tl.Info().Str(\"provider_name\", providerName).Msg(\"Identity provider not found\")\n\treturn nil, nil\n}\n\nfunc (w *AccountWatcher) GetUserPoolClient(ctx context.Context, userPoolId, clientName string) (*cognitotypes.UserPoolClientDescription, error) {\n\tl := *log.Ctx(ctx)\n\tl.Info().Str(\"user_pool_id\", userPoolId).Str(\"client_name\", clientName).Msg(\"Searching for existing user pool client\")\n\n\tpaginator := cognitoidentityprovider.NewListUserPoolClientsPaginator(w.awsClient.CognitoClient, &cognitoidentityprovider.ListUserPoolClientsInput{\n\t\tUserPoolId: &userPoolId,\n\t})\n\n\tfor paginator.HasMorePages() {\n\t\toutput, err := paginator.NextPage(ctx)\n\t\tif err != nil {\n\t\t\treturn nil, fwerror.WrapL(l, \"error listing user pool clients for user pool %s: %w\", userPoolId, err)\n\t\t}\n\n\t\tfor _, client := range output.UserPoolClients {\n\t\t\tif client.ClientName != nil && *client.ClientName == clientName {\n\t\t\t\tl.Info().Str(\"client_name\", clientName).Str(\"client_id\", *client.ClientId).Msg(\"Found existing user pool client\")\n\t\t\t\treturn &client, nil\n\t\t\t}\n\t\t}\n\t}\n\n\tl.Info().Str(\"client_name\", clientName).Msg(\"User pool client not found\")\n\treturn nil, nil\n}\n\n// GetUserPoolDomain checks if a domain already exists using AWS-first discovery.\nfunc (w *AccountWatcher) GetUserPoolDomain(ctx context.Context, accountId string) (string, error) {\n\tl := *log.Ctx(ctx)\n\n\tdomainName := fmt.Sprintf(\"fireworks-%s\", accountId)\n\tresp, err := w.awsClient.CognitoClient.DescribeUserPoolDomain(ctx, &cognitoidentityprovider.DescribeUserPoolDomainInput{\n\t\tDomain: &domainName,\n\t})\n\tif err == nil {\n\t\t// DescribeUserPoolDomain returns a non-nil DomainDescription with all\n\t\t// fields nil when the domain does not actually exist (it does NOT\n\t\t// ret"} -{"text": "The Plot: Rory Deveaux is spending her senior year at Wexford, a boarding school in London. Meeting new people, figuring out a new school system, being in London instead of a small town in Louisiana, should be amazing. And it is — except for the murders. Murders that are mimicking the infamous 1888 Jack the Ripper murders. Rory and her fellow students try to get on with life and school; all that changes when Rory sees someone suspicious by the school, someone the police think may be their Prime Suspect. Someone only Rory saw. Is Rory at risk?\nThe Good: The Name of the Star has a slow build to the big reveal — which is not that there are Jack the Ripper murders happening. The reader knows that from page one. No, the “reveal” is more about who Rory sees, and why she sees him, and who he is. While she spots him about page 100; sixty odd pages later she learns why.\nBefore that point, The Name of the Star is a boarding school book, full of the details that people like me swoon over. No, really, Johnson doesn’t just say that Rory wears a school uniform. Instead, the reader gets “ten white dress shirts, three dark gray skirts, one gray and white striped blazer, one maroon tie, one gray sweater with the school crest on the breast, twelve pairs of gray kneesocks.” And that’s not including the PE uniforms! Johnson puts us firmly in Rory’s new world, sharing everything from a map to the area to the food she likes, the food at school and the friends she is making. “An American Teen in London” is interrupted by the Ripper murders.\nThere is a mystery, but it is not yet Rory’s mystery. Rory’s story is one of suspense (what is happening with the murders?) and possible romance (Jerome). Jerome: he is like the perfect book boyfriend, not in the sense that he is perfect, and not in the sense that he is a boyfriend, but in the sense that Johnson perfectly portrays a typical teen romance that is, well, typical. It’s not overwhelmed by having it be any more or any less than what it is: two young people being attracted to each other, having fun kissing, and trying to work out what that means. After one kissing session with Jerome, Rory thinks “when you live with someone — or on the same campus, I mean — and you have a mad make-out session, you have two choices. You can either indicate that you enjoy your mad make-out sessions and intend to indulge in them at every given opportunity . . . or you do not acknowledge the make-out session, or indeed any physical attraction. There is no middle ground, not at boarding school.”\nThen, it happens — the murders touch Rory’s world.\nIt’s not what you may think; one of the murders takes place very close to Rory, yes, but that’s not the big reveal.\nThe thing is, Rory has acquired more than uniforms and friends at her London school. She’s also gained a new talent: no, not field hockey. Seeing dead people. Seeing, specifically, the ghosts of dead people. This unique ability pulls Rory into the mystery, into the search for the person recreating the murders, and into danger. She also encounters a Torchwood-like squad of similarly gifted young people. At this point, the action is much more involved than “how early do I have to get up to have enough time in the shower I share with so many other girls” or “kissing Jerome.”\nAs I said above, it’s almost half way through the book before Rory sees a ghost, or, rather, realizes that she is seeing ghosts. Here’s why I like that timing, as opposed to giving it to us on page one or chapter one: that’s life. One minute, you’re worrying about classes and friends, the next, life changes, and that life change is not conveniently at the start of things, it’s sometimes in the middle. Why, in shows like Supernatural or Buffy or The Vampire Diaries, must the supernatural reveal always happen right away? What about the lives people led, the normalcy of their routines, before it all went witches and vampires or, in this case, ghosts? I like it in part because I’ve wanted, for a while, to read a book or series where the “supernatural is REAL” moment happens late in the game."} -{"text": "A very good panel discussion this week on Gender Equality Data and Tools at the Bank reminded me of the research we did in transport on household surveys with my friend and a World Bank colleague, Kinnon Scott. In retrospect, this work should be better advertised as it touches upon many of the points that were raised on the importance of gender-relevant data for policy. The three main questions that follow permeate the discussion and are of particular relevance for the transport sector as we seek to review our own gender data needs.\nWhat do household surveys tell us about gender? There are four common household surveys that exist in developing countries with data that can provide insights on gender issues—Living Standard Measurement Studies (LSMS), Household Budget or Income and Expenditure Surveys (HBS/IES), Demographic and Health surveys (DHS) and Multiple Indicator Cluster Surveys (MICS). Although not designed to provide specific transport sector data, we used examples of each type of survey to illustrate the extent to which these surveys can contain useful information on transportation. Exploiting such household surveys can be a way to improve transport policy for women without spending considerable additional expenditures on surveys, which are expensive. They offer the additional advantages in that the household surveys are more likely to be repeated—thus ensuring the availability of future data, and governments have made the data sets publicly available.\nLinks to common Household Surveys:\nLSMS: http://www.worldbank.org/lsms/\nIES/HBS: http://www.measuredhs.com\nThe main findings of the review shows that there is potentially substantial amount of data available across countries on one or two aspects of transportation such as costs and mode used to visit education and health facilities. However, there is little information in the surveys on other important aspects of transport such as mode choice, security and travel patterns.\nCan we add a specific gender module to Bank household surveys to help bridge any data gaps? A key recommendation derived from this research can help answer this second question. Among LSMS surveys, the questions will tend to vary because of the heavy customization of these surveys to meet country demands for data. As a result, it may be possible to marginally influence surveys to expand the data collected on gender and transportation. It would be useful if survey questions could be systematized as much as possible in the future to integrate gender considerations in a way to ensure that questions are similar over time within each country. Questions should be simple to implement and allow for comparability across countries. In transport, adding more gender questions could ensure a better focus on gender and transport issues. As evidenced in our recent regional survey work, a standardized approach could be promoted for collecting and evaluating gender data in transport. Substantial background work for developing a standard module has already been carried out and could be expanded upon.\nWhich key gender indicator should we try to collect data on in the future? Answering the final question is the most challenging and related to the previous one. The relevance of gender data very much depends on the sector and the related data gaps for that sector. In transport, the focus of the analysis centered on aspects of accessibility and transportation choice; affordability; travel patterns and trip purposes; and quality and security concerns. The focus of analysis will vary for another sector.\nMode of Transport to School: Panama 2003\nSource: Encuesta de Niveles de Vida, calculations by authors\nSectors and gender specialists will need to work together to provide guidance on which data needs to be more gender-disaggregated or with a greater gender focus based on specific objectives. For example, demographic and Health Surveys (DHS) lists among the eight factors that limit the use of health care the distance and lack of transport and whether any of these factors is a constraint to health care access. Yet, data collected on potential linkages between the health and transport sectors is often not reported or considered for taking steps in formulating policies in favor of improving maternal health (MDG 5).\nFinding common ground on data needs is important to move forward. Household surveys that allow disaggregation of household data by gender are costly, both in terms of time and other resources and, therefore, are done infrequently. Agreeing on a definition or common nomenclature for defining what constitutes good and useful gender data will vary by sector. In transport, it will likely rest on defining what constitutes transport accessibility and how related variables linked to investments or policies may influence transport outcomes across gender. However, stand alone transport surveys will continue to be needed to foster the production of gender statistics in transport in developing countries and the incorporation of gender differences into transport decisions."} -{"text": "urn a ResourceNotFoundException). Treat that as \"not found\".\n\t\tif resp.DomainDescription == nil ||\n\t\t\tresp.DomainDescription.Domain == nil ||\n\t\t\tresp.DomainDescription.UserPoolId == nil {\n\t\t\tl.Info().Str(\"domain\", domainName).Msg(\"Domain not found (empty DomainDescription from AWS)\")\n\t\t\treturn \"\", nil\n\t\t}\n\t\treturn domainName, nil\n\t}\n\n\tvar notFoundErr *cognitotypes.ResourceNotFoundException\n\tif !errors.As(err, ¬FoundErr) {\n\t\treturn \"\", fwerror.WrapL(l, \"error checking domain %s: %w\", domainName, err)\n\t}\n\n\treturn \"\", nil\n}\n\n// defaultSamlEmailAttribute is the SAML attribute name used by Azure AD, ADFS, and Okta.\nconst defaultSamlEmailAttribute = \"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress\"\n\n// getIdentityProviderConfig builds the desired provider configuration based on database settings.\nfunc (w *AccountWatcher) getIdentityProviderConfig(idp *database.IdentityProvider) (map[string]string, map[string]string) {\n\tvar providerDetails map[string]string\n\tvar attributeMapping map[string]string\n\n\tswitch idp.Config {\n\tcase \"SamlConfig\":\n\t\tif idp.SamlConfig != nil {\n\t\t\tif idp.SamlConfig.MetadataXml != \"\" {\n\t\t\t\tproviderDetails = map[string]string{\n\t\t\t\t\t\"MetadataFile\": idp.SamlConfig.MetadataXml,\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tproviderDetails = map[string]string{\n\t\t\t\t\t\"MetadataURL\": idp.SamlConfig.MetadataUrl,\n\t\t\t\t}\n\t\t\t}\n\t\t\tproviderDetails[\"IDPInit\"] = fmt.Sprintf(\"%t\", idp.EnableIdpInitiatedSso)\n\t\t}\n\t\temailAttr := defaultSamlEmailAttribute\n\t\tif idp.SamlConfig != nil && idp.SamlConfig.SamlEmailAttribute != \"\" {\n\t\t\temailAttr = idp.SamlConfig.SamlEmailAttribute\n\t\t}\n\t\tattributeMapping = map[string]string{\n\t\t\t\"email\": emailAttr,\n\t\t}\n\tcase \"OidcConfig\":\n\t\tif idp.OidcConfig != nil {\n\t\t\tproviderDetails = map[string]string{\n\t\t\t\t\"client_id\": idp.OidcConfig.ClientId,\n\t\t\t\t\"client_secret\": idp.OidcConfig.ClientSecret,\n\t\t\t\t\"oidc_issuer\": idp.OidcConfig.IssuerUrl,\n\t\t\t\t\"authorize_scopes\": \"openid email\",\n\t\t\t\t\"attributes_request_method\": \"GET\",\n\t\t\t\t\"attributes_url_add_attributes\": \"false\", // Match Terraform setting\n\t\t\t}\n\t\t}\n\t\tattributeMapping = map[string]string{\n\t\t\t\"email\": \"email\",\n\t\t\t\"username\": \"sub\",\n\t\t}\n\t}\n\n\treturn providerDetails, attributeMapping\n}\n\n// getUserPoolClientConfig builds the desired client configuration.\nfunc (w *AccountWatcher) getUserPoolClientConfig(userPoolName string, supportedIdentityProviders []string, accountId string) *cognitoidentityprovider.UpdateUserPoolClientInput {\n\treturn &cognitoidentityprovider.UpdateUserPoolClientInput{\n\t\tExplicitAuthFlows: []cognitotypes.ExplicitAuthFlowsType{\n\t\t\tcognitotypes.ExplicitAuthFlowsTypeAllowUserSrpAuth,\n\t\t\tcognitotypes.ExplicitAuthFlowsTypeAllowRefreshTokenAuth,\n\t\t\tcognitotypes.ExplicitAuthFlowsTypeAllowCustomAuth,\n\t\t},\n\t\tSupportedIdentityProviders: supportedIdentityProviders,\n\t\tCallbackURLs: []string{\n\t\t\t\"http://localhost\",\n\t\t\t\"http://localhost:18000\",\n\t\t\t\"http://localhost:3000\",\n\t\t\t\"http://localhost:3000/api/auth-proxy\",\n\t\t\tfmt.Sprintf(\"http://localhost:3000/api/auth/callback/%s\", accountId),\n\t\t\tfmt.Sprintf(\"http://localhost:3000/api/v2/auth/%s/callback\", accountId),\n\t\t\t\"http://localhost:8000\",\n\t\t\t\"https://app.fireworks.ai\",\n\t\t\t\"https://app.fireworks.ai/api/auth-proxy\",\n\t\t\tfmt.Sprintf(\"https://app.fireworks.ai/api/auth/callback/%s\", accountId),\n\t\t\tfmt.Sprintf(\"https://app.fireworks.ai/api/v2/auth/%s/callback\", accountId),\n\t\t\t\"https://dev.fireworks.ai/api/auth-proxy\",\n\t\t\tfmt.Sprintf(\"https://dev.fireworks.ai/api/auth/callback/%s\", accountId),\n\t\t\tfmt.Sprintf(\"https://dev.fireworks.ai/api/v2/auth/%s/callback\", accountId),\n\t\t\t\"https://device-auth.fireworks.ai/callback\",\n\t\t\t\"https://fireworks.ai\",\n\t\t\t\"https://fireworks.ai/api/auth-proxy\",\n\t\t\tfmt.Sprintf(\"https://fireworks.ai/api/auth/callback/%s\", accountId),\n\t\t\tfmt.Sprintf(\"https://fireworks.ai/api/v2/auth/%s/callback\", accountId),\n\t\t\t\"https://preview.fireworks.ai/api/auth-proxy\",\n\t\t\tfmt.Sprintf(\"https://preview.fireworks.ai/api/auth/callback/%s\", accountId),\n\t\t\tfmt.Sprintf(\"https://preview.fireworks.ai/api/v2/auth/%s/callback\", accountId),\n\t\t\t\"https://staging.fireworks.ai/api/auth-proxy\",\n\t\t\tfmt.Sprintf(\"https://staging.fireworks.ai/api/auth/callback/%s\", accountId),\n\t\t\tfmt.Sprintf(\"https://staging.fireworks.ai/api/v2/auth/%s/callback\", accountId),\n\t\t},\n\t\tLogoutURLs: []string{\n\t\t\t\"http://localhost:3000\",\n\t\t\t\"http://localhost:3000/api/v2/auth/account-deleted\",\n\t\t\t\"http://localhost:3000/logout\",\n\t\t\t\"https://app.fireworks.ai\",\n\t\t\t\"https://app.fireworks.ai/api/v2/auth/account-deleted\",\n\t\t\t\"https://app.fireworks.ai/logout\",\n\t\t\t\"https://dev.fireworks.ai\",\n\t\t\t\"https://dev.fireworks.ai/api/v2/auth/account-deleted\",\n\t\t\t\"https://dev.fireworks.ai/logout\",\n\t\t\t\"https://fireworks.ai\",\n\t\t\t\"https://fireworks.ai/api/v2/auth/account-deleted\",\n\t\t\t\"https://fireworks.ai/logout\",\n\t\t\t\"https://preview.fireworks.ai\",\n\t\t\t\"https://preview.fireworks.ai/api/v2/auth/account-deleted\",\n\t\t\t\"https://preview.fireworks.ai/logout\",\n\t\t\t\"https://staging.fireworks.ai\",\n"} -{"text": "JAKARTA, Indonesia — Joko Widodo has won hearts and votes with his signature impromptu visits to Jakarta neighborhoods. But now voters are asking the popular governor to speak up if he wants to win an increasingly tight race for Indonesia’s presidency on July 9th.\nThat is what voters will be looking for tonight, when the first of several presidential debates kicks off pitting Mr. Widodo against rival Prabowo Subianto, a former Army Special Forces commander.\nThe risks are high for both in a race that is currently much closer than it appeared a month ago, and a misstep by either could effectively decide the election tonight, analysts say.\nMore In Indonesia Elections 2014\n- As Indonesia Prepares for its New President, Some Things to Remember\n- With Election Dispute Over, Time For Indonesia To Move Forward\n- What's Next For Prabowo Subianto?\n- Court Expected to Clear Final Hurdle for Indonesia’s Jokowi to Take Office\n- Indonesia’s President-Elect Seeks Better Budget Spending\n- Documentary Depicts Hope for Indonesia's Next President\nFor more than a year, Mr. Widodo has been the clear front-runner in the presidential contest. His lead over Mr. Subianto was about 35 percentage points at its peak.\nPolls now show the gap at 8 points, with whispers that soon-to-be-released polls will show a further narrowing to 3 or 4 points.\nThere are many reasons for the shrinking gap, including Mr. Subianto’s support from the nation’s biggest TV media conglomerates and his on-message campaign. Mr. Subianto has been preparing for this moment for a decade, since he ran as a vice presidential candidate in the 2004 election.\nMr. Widodo has also been trying to fend off a slew of personal attacks of unknown origin that have little basis in reality but nonetheless have made the rounds in social media. One purports that Mr. Widodo, a declared Muslim who has been on pilgrimage to Mecca, is a Christian.\nAnalysts say the greatest reason for the narrowing, however, is that Mr. Widodo has not yet presented a vision of himself as president, something that voters say is overdue. Critics say Mr. Widodo is spending too much visiting places—something that goes over well with voters at a local level—and not enough time talking to an electorate of 185 million people.\n“He has refused to do what conventional politicians do, and that is giving longer speeches in which they lay out their programs,” says Marcus Mietzner, a researcher of Indonesian politics with Australian National University.\n“He always says that is something that conventional, normal politicians do. And as a result of that, I think a lot of Indonesians demand more answers.”\nMr. Widodo, popularly known as Jokowi, drew mixed reviews for kicking off his campaign in Papua, the country’s easternmost province, a symbolic move that political analysts say held little electoral value. Mr. Subianto stayed on the vote-heavy main island of Java for his campaign launch.\nThe trip to Papua reflects Mr. Widodo’s belief that he can run for president the same way he ran for mayor of a mid-sized town in central Java and then in 2012 for the gubernatorial seat in Jakarta, analysts say.\nBut “the presidential campaign is a completely different animal,” Mr. Mietzner said, pointing out the impracticality of waging a tour-based campaign in the sprawling archipelago nation. “I think that’s what Jokowi hasn’t quite understood.”\nAfter the Indonesian Democratic Party of Struggle announced its support for Mr. Widodo’s presidential run in March, he said little about how he would run the country. Only last week, after official campaigning kicked off, did he begin announcing some policies. Mr. Subianto, on the other hand, has been vocal for months, publishing a six-point manifesto and outlining his proposed policies during rallies ahead of April’s legislative elections.\nThe first debate tonight, which will feature both men alongside their running mates, is crucial, say analysts.\nMr. Subianto is seen as a live wire who critics have called “temperamental,” causing concern among some voters. His first task will be to show Indonesians that he can calmly absorb the sparring of a televised debate.\nMr. Widodo, whose charm is well known but whose ability to speak about national issues is the concern of the day, needs to prove he can tell the nation more than that he’s willing to work hard.\nMr. Widodo has made several missteps in demonstrating his oratory skills in recent weeks. He declined to read a prepared speech when he announced Jusuf Kalla, a past vice president, as his running mate, according to people with knowledge of the matter. Then last week, when the candidates met to declare their commitment to a peaceful campaign, he delivered a short, uninspiring speech that stood in stark contrast to one by Mr. Subianto.\nMr. Widodo recovered somewhat at a dinner event a day later when he laid out his economic plan to a roomful of investors, one who whom called it “clear and reasonably polished.”\nMr. Widodo will need a repeat performance on the national stage.\n“For the first time he has to present an articulate vision for where Indonesian should go, and he seems to have struggled with that,” said Doug Ramage, an analyst with BowerGroupAsia in Jakarta.\nAlso popular on Southeast Asia Real Time:"} -{"text": "Lars von Trier’s new movie “Nymphomaniac” – a controversial Danish film set to hit the U.S. in the spring — carries the familiar line in the credits stating that no animal was harmed during shooting of the movie. But there is another disclosure: Professional actors were replaced by several body doubles for the more explicit sex scenes.\nNaked stand-ins aren’t rare in the movie business, but for a racy movie like “Nymphomaniac,” they are akin to the indispensable stuntmen who carry the most intense scenes in action flicks. For Elvira Friis, a Danish adult film actor in her late 20s, taking the role of body double for Stacy Martin and Charlotte Gainsbourg, even opened the door to having her mother finally be comfortable to talk about her daughter’s job.\n“My mom never speaks with her friends about what I am doing, but she straight away told her friend that I am playing in a von Trier movie,” Friis said during an interview in her Copenhagen apartment shortly after “Nymphomaniac” started showing in Europe.\n“Nymphomaniac” has become one of the most buzzed-about foreign films in some time, and the anticipation has been fueled by the release of a series of tantalizing clips from the movie. According to Rotten Tomatoes, the movie aggregation website, “Nymphomaniac” so far has a 100 percent rating from critics, and 95 percent of audience members want to see it. The Variety review of the film said “Racy subject aside, the film provides a good-humored yet serious-minded look at sexual self-liberation, thick with references to art, music, religion and literature, even as it pushes the envelope with footage of acts previously relegated to the sphere of pornography.”\nFriis performed in several scenes and working for von Trier set a higher bar than her typical roles.“This was quite a special job and I loved doing it. Being allowed to work for von Trier is a huge compliment.”\nThe job turned out to be as much science as art as she tried to match her movements to those of the actors. “It was the first time I had to be really conscious about how I was moving my body.”\nHer facial expressions didn’t matter because, in the end, her body would have the head of either Martin or Gainsbourg planted on it when the final production was finished. Martin played the main character in “Nymphomaniac,” the sex-hungry Joe, at a young age, and Gainsbourg played Joe in older years.\nSex gets a much different treatment in “Nymphomaniac” than what actors like Friis are used to. While in a typical adult movie sex at least seems to bring people some pleasure, this is not the case in “Nymphomaniac.” The main character never appears satisfied and instead remains lonely and longing for something more.\nAccustomed to being part of small crews and working in front of basic cameras, Friis found herself doing sex scenes that were extremely well planned and involved many more people. In some cases, she was doing the scene with another body double.\nWhile critical, stand-ins aren’t intimately involved in a movie’s production from start to finish.\n“We joined the project at quite a late stage in May last year,” Friis said. “Basically the whole movie had been shot, but they were not happy with some scenes filmed in Germany and therefore engaged us. We got emailed film stills of the scenes and in the studio they showed us a brief clip which was to precede our scene,” Friis said.\nThey also aren’t cozy with the rest of the cast.\nFor instance, although she lent her backside to a scene in which Gainsbourg is depicted as being spanked, the two never met. Friis wore the same dress as Gainsbourg in a scene in which the actress is tied to a sofa. “The closest I got to Charlotte Gainsbourg was that I was wearing her dress,” Friis said.\nDuring the sofa scene, Friis is propped up on telephone books. “I remained in this position for three hours. The crew said I could have a break, but I am the person who wants to finish things perfectly once started,” Friis said. “I really suffered pain the next day.”\nFriis did meet von Trier. “He spoke with me a bit about the porn business and then explained me how I should shake my legs and other things. He had exact ideas about how the scenes should look like. Lars von Trier sometimes said this was good, but can’t you stretch your arms more. Some scenes we had to repeat again and again.”\nFriis has not seen the movie yet and wants to wait until von Trier’s long version is released. “In that version I act naked in a longer scene, which is quite special, but non-pornographic,” she said.\nThe director’s cut will for the first time be screened at Berlinale, a film festival taking place in the German capital beginning of February."} -{"text": "\t\t\t\"https://staging.fireworks.ai/api/v2/auth/account-deleted\",\n\t\t\t\"https://staging.fireworks.ai/logout\",\n\t\t},\n\t\tAllowedOAuthFlows: []cognitotypes.OAuthFlowType{\n\t\t\tcognitotypes.OAuthFlowTypeCode,\n\t\t},\n\t\tAllowedOAuthScopes: []string{\n\t\t\t\"openid\",\n\t\t\t\"email\",\n\t\t\t\"profile\",\n\t\t},\n\t\tAllowedOAuthFlowsUserPoolClient: true,\n\t\tRefreshTokenValidity: 10 * 365,\n\t\tAccessTokenValidity: aws.Int32(1),\n\t\tIdTokenValidity: aws.Int32(1),\n\t\tTokenValidityUnits: &cognitotypes.TokenValidityUnitsType{\n\t\t\tAccessToken: cognitotypes.TimeUnitsTypeHours,\n\t\t\tIdToken: cognitotypes.TimeUnitsTypeHours,\n\t\t\tRefreshToken: cognitotypes.TimeUnitsTypeDays,\n\t\t},\n\t\tReadAttributes: []string{\n\t\t\t\"email\",\n\t\t\t\"email_verified\",\n\t\t},\n\t\tWriteAttributes: []string{\n\t\t\t\"email\",\n\t\t},\n\t}\n}\n\n// createUserPoolClient creates a new user pool client.\nfunc (w *AccountWatcher) createUserPoolClient(ctx context.Context, userPoolId, userPoolName string, supportedIdentityProviders []string, accountId string) (string, error) {\n\tl := *log.Ctx(ctx)\n\n\tdesiredConfig := w.getUserPoolClientConfig(userPoolName, supportedIdentityProviders, accountId)\n\n\tresult, err := w.awsClient.CognitoClient.CreateUserPoolClient(ctx, &cognitoidentityprovider.CreateUserPoolClientInput{\n\t\tUserPoolId: aws.String(userPoolId),\n\t\tClientName: aws.String(fmt.Sprintf(\"%s-client\", userPoolName)),\n\t\tGenerateSecret: false, // Native client - no client secret\n\t\tExplicitAuthFlows: desiredConfig.ExplicitAuthFlows,\n\t\tSupportedIdentityProviders: desiredConfig.SupportedIdentityProviders,\n\t\tCallbackURLs: desiredConfig.CallbackURLs,\n\t\tLogoutURLs: desiredConfig.LogoutURLs,\n\t\tAllowedOAuthFlows: desiredConfig.AllowedOAuthFlows,\n\t\tAllowedOAuthScopes: desiredConfig.AllowedOAuthScopes,\n\t\tAllowedOAuthFlowsUserPoolClient: desiredConfig.AllowedOAuthFlowsUserPoolClient,\n\t\tRefreshTokenValidity: desiredConfig.RefreshTokenValidity,\n\t\tAccessTokenValidity: desiredConfig.AccessTokenValidity,\n\t\tIdTokenValidity: desiredConfig.IdTokenValidity,\n\t\tTokenValidityUnits: desiredConfig.TokenValidityUnits,\n\t\tReadAttributes: desiredConfig.ReadAttributes,\n\t\tWriteAttributes: desiredConfig.WriteAttributes,\n\t})\n\tif err != nil {\n\t\treturn \"\", fwerror.WrapL(l, \"failed to create UserPool client: %w\", err)\n\t}\n\treturn *result.UserPoolClient.ClientId, nil\n}\n\n// createUserPoolIdentityProvider creates the identity provider in the user pool.\nfunc (w *AccountWatcher) createUserPoolIdentityProvider(ctx context.Context, userPoolId string, idp *database.IdentityProvider) error {\n\tl := *log.Ctx(ctx)\n\n\tproviderDetails, attributeMapping := w.getIdentityProviderConfig(idp)\n\n\tvar providerType types.IdentityProviderTypeType\n\tswitch idp.Config {\n\tcase \"SamlConfig\":\n\t\tproviderType = types.IdentityProviderTypeTypeSaml\n\tcase \"OidcConfig\":\n\t\tproviderType = types.IdentityProviderTypeTypeOidc\n\tdefault:\n\t\treturn fwerror.WrapL(l, \"unsupported identity provider config type: %s\", idp.Config)\n\t}\n\n\t_, err := w.awsClient.CognitoClient.CreateIdentityProvider(ctx, &cognitoidentityprovider.CreateIdentityProviderInput{\n\t\tUserPoolId: aws.String(userPoolId),\n\t\tProviderName: aws.String(idp.IdentityProviderId),\n\t\tProviderType: providerType,\n\t\tProviderDetails: providerDetails,\n\t\tAttributeMapping: attributeMapping,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"failed to create UserPool identity provider: %w\", err)\n\t}\n\treturn nil\n}\n\n// reconcileIdentityProviderConfig compares current vs desired identity provider configuration and updates if needed.\nfunc (w *AccountWatcher) reconcileIdentityProviderConfig(ctx context.Context, userPoolId string, idp *database.IdentityProvider, existingProvider *cognitotypes.ProviderDescription) error {\n\tl := *log.Ctx(ctx)\n\n\tcurrentConfig, err := w.awsClient.CognitoClient.DescribeIdentityProvider(ctx, &cognitoidentityprovider.DescribeIdentityProviderInput{\n\t\tUserPoolId: &userPoolId,\n\t\tProviderName: existingProvider.ProviderName,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error describing identity provider: %w\", err)\n\t}\n\n\tdesiredProviderDetails, desiredAttributeMapping := w.getIdentityProviderConfig(idp)\n\n\t// Remove AWS-generated fields that should be ignored from current config.\n\t// IDPInit is always explicitly set in desired config for SAML providers, so it's never filtered here.\n\tcurrentDetails := make(map[string]string)\n\tfor key, value := range currentConfig.IdentityProvider.ProviderDetails {\n\t\tif key == \"ActiveEncryptionCertificate\" || key == \"SSORedirectBindingURI\" || key == \"SLORedirectBindingURI\" {\n\t\t\tcontinue\n\t\t}\n\t\tcurrentDetails[key] = value\n\t}\n\n\tif maputil.Equals(currentDetails, desiredProviderDetails) &&\n\t\tmaputil.Equals(currentConfig.IdentityProvider.AttributeMapping, desiredAttributeMapping) {\n\t\tl.Info().Msg(\"Identity provider configuration is already up"} -{"text": "It’s August, and ninth and tenth graders across Arkansas are being introduced to high school. Meanwhile, their teachers are undergoing their own sometimes difficult transition to the new Common Core State Standards.\nInitiated by the National Governors Association and the Council of Chief State School Officers, the Common Core has been adopted in 45 states and the District of Columbia. Arkansas schools first implemented it in grades K-2 in 2011-12 and added it to grades 3-8 this past school year. Now it’s moved into high school. Across-the-board testing is being developed by a group of states, including Arkansas, known as PARCC. Those tests will be administered not this year, but the next.\nThe standards define the skills students at each grade level should have in math and in English language arts. For example, first graders should be able to add and subtract within 20, tell time, print upper- and lowercase letters, and describe what’s happening in a story. How those standards are taught – the curricula, in other words – is up to school districts and teachers.\nIt has been an imperfect transition. It turns out that most Arkansas schools lack the Internet broadband capacity to administer the tests, let alone deliver instruction needed to really do Common Core right. Fixing that won’t be cheap. Less significantly, the state didn’t want to pay for a transitional test until the new one is developed, so many students have been studying under Common Core while being tested under Arkansas’ old frameworks. Test scores, naturally, went down a little this past year.\nSupporters say the new standards are more rigorous and more focused than Arkansas’ old frameworks, which tended to cover too many subjects with too little depth. Educational and business groups – which aren’t always on the same page – agree that a mobile society needs a common set of standards so students can be compared with their national and international peers. Supportive educators say the standards give teachers more flexibility in designing their lessons than the old frameworks did.\nAt Bryant High School, Lisa Stine, 26, and her five fellow ninth grade English teachers designed their curriculum around “Romeo and Juliet,” “To Kill a Mockingbird” and other famous works. She’s pleased with the curriculum, but it did take some serious planning and negotiation.\n“We debated over ‘Fahrenheit 451’ with the eighth grade, and we just have to look at the reading level, the thematic content, what we have time for,” she said. “So eventually, they won out, but that’s OK, because we have lots of content that I’m really happy with, so you’ve got to give and take a little bit.”\nGiving and taking is what some people would like to do with Common Core – give it away and take it back to where it came from. After being adopted by 45 states rather quickly several years ago, a backlash is developing over fears that national standards will soon devolve into federal government control.\nIn Arkansas, the citizens group Arkansas Against Common Core remains vocal but relatively small, but then, so was the tea party at one time. Doubters have gained more traction in other states. In July, Georgia pulled out of PARCC, citing the $29.50 per student testing cost, though not out of Common Core itself.\nIt seems unlikely this ship could reverse course in Arkansas at this point. Educators have been preparing for this change since before 2010. It will be 2015 before the Legislature meets again in regular session, though legislators could agree to bring up the subject during next year’s fiscal session. Legislators did spend a day listening to opponents make their case in July, and the 2014 elections could produce a Legislature more willing to reconsider the Common Core.\nStine says that the majority – but not all – of the teachers at Bryant HIgh seem to favor the standards. Generally, the longer a teacher has been teaching under the old frameworks, the more skeptical they are of yet another “next big thing” in education.\n“There are some people here resistant to it, but I’ve heard a lot more positive things about it than negative for sure, especially here in Bryant. … The teachers that I work with and the teachers that I know generally think it’s a positive thing,” she said.\nHopefully they’re right. As of this August, every public school student in Arkansas is now studying under Common Core.\nSteve Brawner is an independent journalist in Arkansas. His email address is firstname.lastname@example.org. Follow him on Twitter at @stevebrawner."} -{"text": "May 29/14 7:35 am - World Cup Action Returns to Albstadt for Eliminator & Cross-country\nPosted by Editoress on 05/29/14\nOne week after the Mountain Bike World Cup returned to Europe for the first time in 2014 at Nove Mesto in the Czech Republic, teams and riders will descend upon Albstadt, Germany, for Round Three of the Eliminator (XCE) and Round Four of the Cross-country (XCO).\nLast year, Albstadt was the opening round of the World Cup, and provided some of the hardest and most exciting racing of the season, with new names making it onto the podium.\nThe Eliminator has been moved from an urban venue to the main competition site, keeping everything in one compact location. Incorporating elements of the XCO circuit, the approximately one kilometre course starts with a climb and then traverses the side of the mountain, hitting the technical \"Deep Hole\" section of the XCO course before finishing with a sprint down pavement to the finish line.\nWorld Cup leader and world champion Alexandra Engen (Ghost Factory) is the clear favourite for the women, having won both of the first two rounds. However, she will receive competition from Katharin Stirnemann (Sabine Spitz Haibike) and Jenny Rissveds (Scott-Odlo), who have both appeared on the podium in the previous two rounds. Canada had multiple entries in the women's Eliminator, with Andreane Lanthier-Nadeau (Team Canada) making it through to the small final and finishing seventh overall, despite being sick.\nLanthier-Nadeau will not be participating in the Eliminator in Albstadt and will instead concentrate on the Cross-country (XCO).\nAlexandra Engen (Ghost Factory) winning in Nove Mesto\nAndreane Lanthier-Nadeau (Team Canada) made it through to the small final in Nove Mesto\nFor the men, Daniel Federspiel (Oetztal-Scott) took over the World Cup lead after Round Two, when Round One winner Samuel Gaze of New Zealand broke his chain in the quarterfinals and was eliminated. Others to watch will include the very fast Miha Halzer of Slovenia, who won the last round, and world champion Paul van der Ploeg of Australia. Last year, Raphael Gagne (Team Canada) finished fourth on the urban circuit, however, Gagne is focussing on the cross-country this year and did not compete in the Eliminator last weekend. Canadian champion Leandre Bouchard (Team Canada) was the only Canadian to qualify last weekend, but was knocked out in the first round; he will be hoping to do better this week.\nMiha Halzer winning in torrential rain in Nove Mesto\nDaniel Federspiel leading Leandre Bouchard\nThe XCO circuit is little changed from last year, but the riders are well aware of how difficult it is, with steep punishing climbs in the first half of the 4.18 kilometre course.\nThe women's cross-country series has had three winners in three rounds, so there is no clear favourite in Albstadt. Jolanda Neff (Liv Pro XC), the winner of Round One, continues to lead the overall standings, however, her team mate Pauline Ferrand Prevot absolutely dominated the last round, winning by almost three minutes. The other rider to watch will be former World Cup champion Catharine Pendrel (Luna). Pendrel returned to World Cup competition last weekend after missing the earlier rounds due to injury, however, the Canadian showed that she is clearly on form by finishing second to Ferrand Prevot. Canadian champion Emily Batty (Trek Factory Racing) had an uncharacteristically distant 18th place last weekend, and now sits fifth in the overall standings and will be looking to get back on the podium.\nPauline Ferrand Prevot winning Nove Mesto\nCatharine Pendrel made a strong return after early seson injury\nWorld Cup leader Jolanda Neff leading out the start in Nove Mesto\nThe men's competition will be equally interesting. Julien Absalon (BMC) won the first two rounds, while his perennial rival Nino Schurter (Scott-Odlo) won last weekend. Both had difficulties last year at Albstadt, with Absalon having to drop out with mechanical problems while holding a commanding lead, and Schurter having an uncharacteristically bad day to finish 18th. Others to watch include Olympic champion Jaroslav Kulhavy (Specialized Racing XC) and Australian champion Daniel McConnell (Trek Factory Racing), who had a breakthrough ride at Albstadt last year, winning the first World Cup of his career, and who has since become a regular podium threat.\nDaniel McConnell (Trek Factory Racing), had a breakthrough ride at Albstadt last year\nWorld Cup leader Julien Absalon\nGagne, who is the top-ranked Canadian after finishing 14th in Round One and 23rd last weekend (he skipped Round Two in Cairns, Australia), will be looking to break into the top-20 this weekend. The Scott-3Rox duo of Geoff Kabush and Derek Zandstra will be looking to bounce back from poor showings in their first World Cup of the season last weekend, when Kabush was 49th and Zandstra was lapped.\nIn the Under-23 men, Canadian champion Leandre Bouchard (Team Canada) was fifth last weekend at Nove Mesto, and will be hoping to at least equal it this weekend."} -{"text": " to date\")\n\t\treturn nil\n\t}\n\n\t_, err = w.awsClient.CognitoClient.UpdateIdentityProvider(ctx, &cognitoidentityprovider.UpdateIdentityProviderInput{\n\t\tUserPoolId: &userPoolId,\n\t\tProviderName: existingProvider.ProviderName,\n\t\tProviderDetails: desiredProviderDetails,\n\t\tAttributeMapping: desiredAttributeMapping,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error updating identity provider: %w\", err)\n\t}\n\n\treturn nil\n}\n\n// reconcileUserPoolClientConfig compares current vs desired client configuration and updates if needed.\nfunc (w *AccountWatcher) reconcileUserPoolClientConfig(ctx context.Context, userPoolId string, existingClient *cognitotypes.UserPoolClientDescription, userPoolName string, supportedIdentityProviders []string, accountId string) error {\n\tl := *log.Ctx(ctx)\n\n\tcurrentConfig, err := w.awsClient.CognitoClient.DescribeUserPoolClient(ctx, &cognitoidentityprovider.DescribeUserPoolClientInput{\n\t\tUserPoolId: &userPoolId,\n\t\tClientId: existingClient.ClientId,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error describing user pool client: %w\", err)\n\t}\n\n\tdesiredConfig := w.getUserPoolClientConfig(userPoolName, supportedIdentityProviders, accountId)\n\n\tneedsUpdate := !sliceutil.SameElements(currentConfig.UserPoolClient.SupportedIdentityProviders, desiredConfig.SupportedIdentityProviders) ||\n\t\t!sliceutil.SameElements(currentConfig.UserPoolClient.CallbackURLs, desiredConfig.CallbackURLs) ||\n\t\t!sliceutil.SameElements(currentConfig.UserPoolClient.LogoutURLs, desiredConfig.LogoutURLs) ||\n\t\t!sliceutil.SameElements(currentConfig.UserPoolClient.AllowedOAuthScopes, desiredConfig.AllowedOAuthScopes)\n\n\tif !needsUpdate {\n\t\tl.Info().Msg(\"User pool client configuration is already up to date\")\n\t\treturn nil\n\t}\n\n\t_, err = w.awsClient.CognitoClient.UpdateUserPoolClient(ctx, &cognitoidentityprovider.UpdateUserPoolClientInput{\n\t\tUserPoolId: &userPoolId,\n\t\tClientId: existingClient.ClientId,\n\t\tClientName: existingClient.ClientName, // Keep existing name\n\t\tSupportedIdentityProviders: desiredConfig.SupportedIdentityProviders,\n\t\tCallbackURLs: desiredConfig.CallbackURLs,\n\t\tLogoutURLs: desiredConfig.LogoutURLs,\n\t\tAllowedOAuthFlows: desiredConfig.AllowedOAuthFlows,\n\t\tAllowedOAuthScopes: desiredConfig.AllowedOAuthScopes,\n\t\tAllowedOAuthFlowsUserPoolClient: desiredConfig.AllowedOAuthFlowsUserPoolClient,\n\t\tExplicitAuthFlows: desiredConfig.ExplicitAuthFlows,\n\t\tRefreshTokenValidity: desiredConfig.RefreshTokenValidity,\n\t\tAccessTokenValidity: desiredConfig.AccessTokenValidity,\n\t\tIdTokenValidity: desiredConfig.IdTokenValidity,\n\t\tTokenValidityUnits: desiredConfig.TokenValidityUnits,\n\t\tReadAttributes: desiredConfig.ReadAttributes,\n\t\tWriteAttributes: desiredConfig.WriteAttributes,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error updating user pool client: %w\", err)\n\t}\n\treturn nil\n}\n\n// reconcileUserPoolDomainConfig compares current vs desired domain configuration and updates if needed.\nfunc (w *AccountWatcher) reconcileUserPoolDomainConfig(ctx context.Context, userPoolId, domainName string) error {\n\tl := *log.Ctx(ctx)\n\n\tcurrentConfig, err := w.awsClient.CognitoClient.DescribeUserPoolDomain(ctx, &cognitoidentityprovider.DescribeUserPoolDomainInput{\n\t\tDomain: &domainName,\n\t})\n\tif err != nil {\n\t\treturn fwerror.WrapL(l, \"error describing user pool domain: %w\", err)\n\t}\n\n\t// DescribeUserPoolDomain returns a non-nil DomainDescription with all fields nil\n\t// when the domain by that name does not exist in Cognito's domain index. In that\n\t// case we still need to reconcile, because the user pool itself may already have a\n\t// (different / stale) domain bound to it; CreateUserPoolDomain would then fail with\n\t// \"User pool already has a domain configured\" since each user pool can only have\n\t// one hosted-UI domain. So we look up the user pool's actually-bound domain and\n\t// disassociate it before creating the desired one.\n\tif currentConfig.DomainDescription != nil &&\n\t\tcurrentConfig.DomainDescription.UserPoolId == nil &&\n\t\tcurrentConfig.DomainDescription.Domain == nil {\n\t\tl.Warn().Str(\"domain\", domainName).Msg(\"Domain not found in Cognito - reconciling user pool's bound domain before create\")\n\n\t\tif err := w.clearStaleUserPoolDomain(ctx, userPoolId); err != nil {\n\t\t\treturn fwerror.WrapL(l, \"error clearing stale user pool domain before create: %w\", err)\n\t\t}\n\n\t\t_, err = w.awsClient.CognitoClient.CreateUserPoolDomain(ctx, &cognitoidentityprovider.CreateUserPoolDomainInput{\n\t\t\tDomain: &domainName,\n\t\t\tUserPoolId: &userPoolId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn fwerror.WrapL(l, \"failed to create domain %s for user pool %s: %w\", domainName, userPoolId, err)\n\t\t}\n\t\tl.Info().Str(\"domain\", domainName).Msg(\"Successfully created domain after clearing stale binding\")\n\t\treturn nil\n\t}\n\n\tif currentConfig.DomainDescription.Use"} -{"text": "Ten-year fight over drainage ditch unresolvedWoods of Seaside resident says area is unsafe\nJoe Sudimak is worried that someone – possibly his own grandchildren – will fall and get seriously injured in a large drainage ditch along his property line in the Woods at Seaside near Rehoboth Beach.\nFor 10 years, he has been trying to get someone in his community to take his concerns seriously; he hasn't had any success. Over the past four years, he has stepped up his efforts to draw attention to his dilemma.\n“I was patient for a long time,” he said, adding that the abundance of rain during 2010 exacerbated his concerns.\n“Four people have slipped into the ditch; it's an accident waiting to happen,” he said. “The community brushes it off like nothing is going on.”\nBut, he may have found an ally in House Speaker Pete Schwartzkopf, D-Rehoboth Beach. After visiting the site on two occasions, Schwartzkopf said he agrees with Sudimak that the area is dangerous. “The only problem it that this is on private property,” he said. “But I'm looking into it to see what can be done.”\nSchwartzkopf has had Department of Natural Resources and Environmental Control and Delaware Department of Transportation staff look at the drainage ditch. He accompanied DelDOT staff to the site on Aug. 4.\nSudimak wants pipe buried\nStanding in Sudimak's front yard on Beaver Dam Reach, it's easy to see that water runoff from his end of the community goes by his property. Water comes off the road onto a large concrete pad into a 24-inch pipe, onto rip-rap rocks and then to a retention pond near his backyard.\nA portion of the pipe is buried underground. He's been asking the community homeowners' association to extend the pipe to the retention pond, remove the rocks and bury the remaining section.\nSchwartzkopf said the rocks in the ditch break up the force of water draining into the retention pond. “I don't see an issue with extending the pipe, but they may have to place rocks further into the pond,” he said.\nAfter years of debate over the issue, the HOA offered Sudimak an ultimatum: It would put up shrubbery to create a living fence along the border of the ditch. Sudimak, 82, said that solution does not go far enough. “It's a ridiculous offer,” he said.\nAccording to the HOA, after a review of Sudimak's complaints, the community’s insurance carrier, an independent contractor and the Sussex Conservation District concurred it was not necessary to extend the pipe and fill in the ditch.\nHe was told in a September 2011 letter from the HOA that extending and burying the pipe would create significant debris accumulation in the pipe that would present an entrapment danger to humans and animals. He was also told the ditch was not viewed as a safety hazard.\nSudimak rejects that conclusion pointing to a letter in his large file of paperwork from the community's insurance company that states some action should be taken.\nThen this past June, Sudimak was told in a letter from Right Property Management that the condition existed when he purchased the property and his request to put the pipe underground would not be approved.\nHe has since contacted the community's liability insurance carrier who has committed to send an agent to visit the drainage ditch in early August.\nSudimak said the HOA spends money to maintain the ditch. “If they eliminate the hazard they will also eliminate the maintenance and save money,” he said.\nSudimak's only way to reach his neighbors about his concerns is to make copies of his letters and documents and hand deliver them to more than 80 houses. He's been doing that for years.\nIn his last of many letters to community homeowners, Sudimak wrote: “We continue to ask for your support so that no one should have to suffer any injury as a result of our community's negligence to eliminate this long-standing danger.”\nSo far, the only resident who has supported him is his neighbor who also borders the drainage ditch.\nSudimak, a retired teacher and school administrator from Hockessin, moved with his wife to the area in 2001. “This is supposed to be our American dream,” he said. “It used to be that people cared for one another, but not today.”"} -{"text": "Hershey now has a 3-1 series lead after a 5-0 loss in...\nFive Questions Heading Into The Season\nPhoto by Alena Schwarz\nThe Caps had a new coach and new players even before the lockout started, but now that the NHL is back, not too much has changed for the heading into the season. Only, they have 48 games to make things work, and the answers to these questions may hold the fate of their entire season.\n1) How quickly can the Capitals learn Coach Oates’ system?\nWith training camps lasting only for a few days, new head coach Adam Oates, along with assistants Calle Johansson and Tim Hunter, have the daunting task of trying to instill a brand new system within a very short period of time. Last year, Washington found themselves in a similar predicament when Bruce Boudreau was fired midseason and Dale Hunter took over behind the bench. While Oates’s system will be more offense-oriented than Hunter’s, the Capitals can’t afford the same hiccups they had when Hunter took over. The teams that will qualify for the playoffs this year will be the ones who go on long winning streaks and are able to compile a lot of points in a short period of time. If Washington cannot figure out Oates’ system very quickly, they may find themselves in a position they haven’t been in since April of 2007: Out of the NHL Playoffs.\n2) Can Alex Ovechkin regain the form he once had?\nEver since he scored 50 goals and registered 109 points in the 2009-2010 season, Alex Ovechkin’s points have been very un-Ovechkin-like, and many wonder if Washington’s captain will ever put up the same point totals he once had. The good news here is that while playing for Dynamo Moscow of the KHL, Ovechkin was averaging over a point per game in Russia- registering 40 points in 31 games. While the hope is that his KHL experience provides some continuity to the NHL, it wouldn’t be surprising if the higher-level competition knocks him off his stride. Coach Oates has flirted with him playing right wing during camp, in the hopes that he breaks “old habits.” If Ovechkin can’t find his scoring touch, 2013 may be a long season for fans.\n3) Will everyone stay healthy?\nThe Capitals will already be without the services of Brooks Laich for the first week of the season, who injured himself while playing in Switzerland. Nick Backstrom and Ovechkin also had scares while playing in Russia. Mike Green hasn’t played over 50 games in a season since the 2009-2010 campaign. While the organization and the players themselves say they are going to be 100 percent, one can’t help but to wonder if that’s truly the case. Although health is a major component of any hockey season, it is of grave importance this year. If some of these injuries rear their ugly heads at any point during this season, it could spell doom for the Capitals’ playoff chances.\n4) Can Wojtek Wolski play up to his potential?\nWolski, the former 1st round draft pick of the Colorado Avalanche, has been plagued with injuries over the last few seasons. He is a potential 20-goal scorer and will greatly benefit from playing on the same line as Mike Ribeiro and Troy Brouwer. George McPhee signed Wolski for a one year deal worth $600,000 over the summer in order to help fill the hole left by Alexander Semin. If Wolski can score 20 goals this season, he will not only help Caps fans forget about Semin but he may also be rewarded with a new contract come July 1st.\n5) How far will Holtby fall?\nAfter injuries to Michal Neuvirth and Tomas Vokoun, the Capitals were forced to name Braden Holtby their starter in the playoffs. He answered the call better than anyone had predicted by boasting a .935 save percentage and a 1.95 goals against average. While his numbers are similar in the regular season (a .929 save percentage and a 2.02 goals against average in 14 games), at some point he will regress to the mean and his numbers will become more “average.” The most important thing for the Capitals is for Holtby to try and not let the inevitable rise in his numbers to derail the Caps season. While Neuvirth is a more-than-capable backup, Holby will be looked upon to make the majority of the starts. If Holtby can keep his numbers steady, he will be the x-factor in helping the Capitals to qualify for the playoffs."} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/account_watcher/user_test.go. Lines: 863.\n\npackage accountwatcher\n\nimport (\n\t\"context\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/auth\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/database\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/unkey\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\t\"github.com/fw-ai/fireworks/go/ptr\"\n\tresourcename \"github.com/fw-ai/fireworks/go/resource_name\"\n\tunkeyclient \"github.com/fw-ai/fireworks/go/unkeyv2\"\n\t\"github.com/stretchr/testify/mock\"\n\t\"github.com/stretchr/testify/require\"\n\t\"github.com/unkeyed/sdks/api/go/v2/models/components\"\n\t\"github.com/unkeyed/sdks/api/go/v2/models/operations\"\n)\n\nfunc TestMaybeCreateDefaultAPIKey_CreateNew(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\tunkeyInternalApiId = ptr.Ptr(\"fake_apiId_internal\")\n\tw := newTestWatcher(t)\n\taccountID := \"my-account\"\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tmock.Anything,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId_internal\",\n\t\t\tExternalID: &accountID,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"CreateKey\",\n\t\tmock.Anything,\n\t\tcomponents.V2KeysCreateKeyRequestBody{\n\t\t\tAPIID: \"fake_apiId_internal\",\n\t\t\tExternalID: ptr.Ptr(unkey.ExternalID(\"my-account\")),\n\t\t\tName: ptr.Ptr(\"playground\"),\n\t\t\tEnabled: ptr.Ptr(true),\n\t\t\tPrefix: unkeyInternalKeyPrefix,\n\t\t\tRoles: []string{\"account-type-developer\"},\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t},\n\t\t\tRecoverable: ptr.Ptr(true),\n\t\t},\n\t).Return(&operations.KeysCreateKeyResponse{\n\t\tV2KeysCreateKeyResponseBody: &components.V2KeysCreateKeyResponseBody{\n\t\t\tData: components.V2KeysCreateKeyResponseData{\n\t\t\t\tKeyID: \"keyID\",\n\t\t\t\tKey: \"key\",\n\t\t\t},\n\t\t},\n\t}, nil)\n\trequire.Nil(t, w.maybeCreateDefaultAPIKey(context.Background(),\n\t\t&database.User{\n\t\t\tEmail: \"alice@gmail.com\",\n\t\t},\n\t\t&database.Account{\n\t\t\tAccountName: *resourcename.NewAccountName(\"my-account\"),\n\t\t\tCreateTime: w.now(),\n\t\t}),\n\t)\n}\n\nfunc TestMaybeCreateDefaultAPIKey_CreateNewImmediateSuspension(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\tunkeyInternalApiId = ptr.Ptr(\"fake_apiId_internal\")\n\tw := newTestWatcher(t)\n\taccountID := \"my-account\"\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tmock.Anything,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId_internal\",\n\t\t\tExternalID: &accountID,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"CreateKey\",\n\t\tmock.Anything,\n\t\tcomponents.V2KeysCreateKeyRequestBody{\n\t\t\tAPIID: \"fake_apiId_internal\",\n\t\t\tExternalID: ptr.Ptr(accountID),\n\t\t\tName: ptr.Ptr(\"playground\"),\n\t\t\tEnabled: ptr.Ptr(false),\n\t\t\tPrefix: unkeyInternalKeyPrefix,\n\t\t\tRoles: []string{\"account-type-developer\"},\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\t\"suspended\": true,\n\t\t\t},\n\t\t\tRecoverable: ptr.Ptr(true),\n\t\t},\n\t).Return(&operations.KeysCreateKeyResponse{\n\t\tV2KeysCreateKeyResponseBody: &components.V2KeysCreateKeyResponseBody{\n\t\t\tData: components.V2KeysCreateKeyResponseData{\n\t\t\t\tKeyID: \"keyID\",\n\t\t\t\tKey: \"key\",\n\t\t\t},\n\t\t},\n\t}, nil)\n\trequire.Nil(t, w.maybeCreateDefaultAPIKey(context.Background(),\n\t\t&database.User{\n\t\t\tEmail: \"alice@gmail.com\",\n\t\t},\n\t\t&database.Account{\n\t\t\tAccountName: *resourcename.NewAccountName(accountID),\n\t\t\tCreateTime: w.now(),\n\t\t\tAccountDBOnlyFields: database.AccountDBOnlyFields{\n\t\t\t\tSuspendedUntil: w.now().Add(time.Hour),\n\t\t\t},\n\t\t}),\n\t)\n}\n\nfunc TestMaybeCreateDefaultAPIKey_AlreadyExists(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\tunkeyInternalApiId = ptr.Ptr(\"fake_apiId_internal\")\n\tw := newTestWatcher(t)\n\taccountID := \"my-account\"\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tmock.Anything,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId_internal\",\n\t\t\tExternalID: &accountID,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysRespo"} -{"text": "JWC TO ELIZA STODART; 5 February 1830; DOI: 10.1215/lt-18300205-JWC-EA-01; CL 5:68-70.\nJWC TO ELIZA STODART\nCraigenputtoch 5th February\nThis has been the unluckiest new-year to me! Every day some Job's-post or other tempts me to curse my stars! It began with the death of my pig—my sweet, wise, little pig, who was the apple of my eye—he got a surfeit one evening, and next morning I was pigless! and just when my long cherished hopes of him were approaching their fulfilment, and a few weeks more would have plumped him out into such delicate bacon! So the glory of this world passeth away!1 On the back of this severe family-affliction followed a disaster occasioned by a quite opposite cause, being the consequence not of overfeeding but pure starvation: a stranger cat under the pangs of famine rushed wildly into our larder one day, making straight in the direction of a beefsteak—and, before you could bless yourself, snack [quickly] went the steak, and smash went a corner dish; which you know was as bad as if the whole four corner dishes had been broken or at least a pair of them. And alas! this was only a beginning—this smash, it seemed, was but a signal for the breakage of all the crockery glass and china about the house— For now Nancy2 became as it were suddenly possessed with a demon of destruction which shivered everything she laid hands on—nay—the supper-tray with all its complement of bowls, plates &c &c she “soopit ower wi her tails” [swept over with the tail of her dress]! one fell soop!— But already I must have filled your eyes with tears—and will not tax your sympathy with a detail of all my grievances—indeed one sheet would not hold them. Only attend to the last, which you must help me to remedy, being in truth the main cause of my writing again so soon—— Last week we were despatching a boxfull of books to Sam3 to be transmitted to their various owners in Edinr— None of our own people being “at the town”4 that Wednesday it was entrusted to the Carrier, who naturally was charged to pay it—but our ill luck pursuing us even in this small matter, the carrier either misunderstood or proved oblivious; and so the package was despatched with all its charges to be defrayed at Bank-street!— Now, tho' intrinsically considered the damage done by this mistake be trifling, yet you will understand how one should find it abundantly vexatious—and I beseech you to explain to Mr Aitken how the omission which must have appeared to him so singularly inconsiderate occur[r]ed— and to charge him (by his Lady's love or whatever he values most) to place this with every expence which these book commissions cost him, to Carlyle's account. If he does not we shall not be able to apply to him with any freedom, and I doubt if in all Edinr we could find another as helpful.\nAnd now contrary to my usual practice “I must plant a remark” or two on the weather— It is well we have meat and fire ‘within ourselves’ (as Mrs Roughhead5 used to say) otherwise we should live in hourly apprehe[n]sion of being snowed up, and consequently starved to death without even the mournful alternative of “eating our own children.” Oh for a sight of the green fields again or even the black peat-moss—anything rather than this wide waste of blinding snow! The only time when I can endure to look out (going out is not [to] be dreamt of) is by moonlight, when the enclosure before the house is literally filled with hares—and then the scene is really very picturesque—the little dark forms skipping and bounding over the white ground so witch-like! A still more novel spectacle exhibited itself the other day at broad noon—seven black-cocks “as fine” (or perhaps finer) “as ever stepped the streets of Greenock”6 came running down the wood to within a few yards of the door— Such are the pleasing varieties of life here!— You will allow they are extremely innocent—\nCarlyle inquired if I had sent his love the last time—and charges me to remember it now—we speak of your uncle and you over our evening fire both often and kindly—my kindest regards are with you both—my Grandfather continues much the same— God bless you—always affectionately yours\nJane W Carlyle\nA good new-year, and many of them!— T. C."} -{"text": "Posted on: June 6th, 2008 - News Blog\nCarnival Cruise Lines’ 2,974-passenger Carnival Freedom, which was originally scheduled to operate six- and eight-day Caribbean cruises from Fort Lauderdale, Fla., on a seasonal basis, will now operate the program year-round, following the conclusion of its 2008 Mediterranean program in October.\nCarnival Freedom’s year-round schedule from Fort Lauderdale begins November 22, 2008, with six-day cruises departing Sundays and visiting Key West, Fla., George Town, Grand Cayman; and Ocho Rios, Jamaica, while eight-day voyages departing Saturdays alternate to the eastern and western Caribbean.\nEight-day eastern Caribbean voyages visit five ports: San Juan, Puerto Rico; St. Thomas/St. John, U.S.V.I.; Antigua, Lesser Antilles; Tortola/Virgin Gorda, B.V.I.; and Nassau, The Bahamas. Western Caribbean cruises include Cozumel, Mexico; Limon, Costa Rica; and Colon, Panama.\nAccording to Lynn C. Torrent, Carnival’s senior vice president of sales and guest services, “The Caribbean is, by far, the most popular cruising region for North Americans. It is easily accessible and affordable, and when combined with attractive, destination-rich itineraries such as these, a Caribbean cruise represents the ideal vacation choice for consumers.”\nTorrent noted that while the plan had been for Carnival Freedom to return to Europe in 2009, the strong performance of the line’s entire Caribbean fleet made the new six- and eight-day deployment a compelling choice.\nExciting Six- and Eight-Day Cruises\nOn Carnival Freedom’s six-day cruises, guests can enjoy three distinctly different island experiences – Key West, Grand Cayman and Ocho Rios – each of which offers excellent shopping and dining opportunities, along with a variety of “fun in the sun” activities, including magnificent beaches and watersports.\nCarnival Freedom’s eight-day eastern Caribbean cruises feature five ports – San Juan, St. Thomas (optional shore excursion to St. John), Antigua, Tortola (optional shore excursion to Virgin Gorda) and Nassau – providing consumers a diversity of landside experiences, along with a variety of restaurants, shops and boutiques. A wide range of shore excursions are also offered, including horseback riding, scuba diving, hiking and kayaking. During an extended evening stay in San Juan, guests can also sample that city’s legendary nightlife.\nIn addition to historical sites and attractions, including centuries-old ruins, the eight-day western Caribbean cruises to Cozumel, Limon and Colon offer a multitude of dining, shopping and watersports experiences. A number of “adventure-type” tours, including canoeing, and white-water rafting, are featured, as well. From Colon, guests can experience all the wonders of the Panama Canal and even a unique bi-coastal railroad adventure.\nBoth of these eight-day cruises offer visits to ports that are usually available only on cruises of 10 days or longer. In addition, these cruises depart on Saturdays and return on Sundays, which allow them to fit into the consumer’s traditional one-week vacation pattern.\nVariety of ‘Fun Ship’ Amenities\nSpanning a length of 952 feet, Carnival Freedom offers a variety of on-board amenities and facilities: a 14,500-square-foot health and wellness facility, a jogging track, a duty-free shopping mall, full casino gambling, and 22 lounges and bars, including a multi-level theater showcasing lavish revues.\nDining options include two two-level main dining rooms offering extensive menus and wine lists, a 1,200-seat poolside eatery with full breakfast, lunch and dinner buffets and a 24-hour pizzeria, and an elegant reservations-only supper club.\nFamily friendly amenities include children’s programs for three different age groups – “Camp Carnival” for kids ages 2-11, “Circle C” for ’tweens, and “Club O2” for older teens – with facilities and activities for each.\nCarnival Freedom also offers a variety of accommodations including a wide selection of balcony staterooms and suites – perfect for scenic cruising. All Carnival Freedom accommodations feature the Carnival Comfort Bed sleep system with plush mattresses, luxurious duvets and high quality linens and pillows. Carnival Freedom also houses an Internet Café, along with ship-wide Wi-Fi access and cell phone service.\nReservations are currently being accepted for the Carnival Freedom’s year-round six- and eight-day voyages from Fort Lauderdale, Fla. Special rates for third and fourth guests sailing in the same stateroom, along with round-trip air supplements from a variety of North American gateways and pre- and post-cruise South Florida land stays, are also available.\nFor additional information and reservations, contact any travel agent, call 1-800-CARNIVAL or visit carnival.com."} -{"text": "nseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_123\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil)\n\trequire.Nil(t, w.maybeCreateDefaultAPIKey(context.Background(),\n\t\t&database.User{\n\t\t\tEmail: \"alice@gmail.com\",\n\t\t},\n\t\t&database.Account{\n\t\t\tAccountName: *resourcename.NewAccountName(accountID),\n\t\t}),\n\t)\n}\n\nfunc TestReconcileUnkeyAPIKeys_NoExistingKeysForAccount(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId_inference\",\n\t\t\tExternalID: &accountId,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{},\n\t\t},\n\t}, nil)\n\t// No calls to CreateKey or UpdateKey expected\n\n\tdba := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(accountId),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{\n\t\tUserName: *resourcename.NewUserName(accountId, accountId),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dbu)\n\n\terr := w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba)\n\n\trequire.NoError(t, err)\n}\n\nfunc TestReconcileUnkeyAPIKeys_NoExistingKeysForUser(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId_inference\",\n\t\t\tExternalID: &accountId,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_123\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"bob@gmail.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil)\n\t// No calls to CreateKey or UpdateKey expected\n\n\tdba := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(accountId),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{\n\t\tUserName: *resourcename.NewUserName(accountId, accountId),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dbu)\n\n\terr := w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba)\n\trequire.NoError(t, err)\n}\n\nfunc TestReconcileUnkeyAPIKeys_UpdateMetadata(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\t//accountCreatedAt := time.Date(2025, 5, 1, 0, 0, 0, 0, time.UTC)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId_inference\",\n\t\t\tExternalID: &accountId,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_123\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"UpdateKey\",\n\t\tctx,\n\t\tcomponents.V2KeysUpdateKeyRequestBody{\n\t\t\tKeyID: \"key_123\",\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\t\"user_id\": \"my-account\",\n\t\t\t},\n\t\t\tEnabled: ptr.Ptr(true),\n\t\t},\n\t).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\n\tdba := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(accountId),\n\t\tEmail: \"alice@gmail.com\",\n\t\tCreateTime: w.now(),\n\t}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{\n\t\tUserName: *resourcename.NewUserName(accountId, accountId),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dbu)\n\n\terr := w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba)\n\trequire.NoError(t, err)\n}\n\n// A user over their per-user serverless limit gets serverless_consumption_blocked\n// stamped on their fw_ key — and Enabled stays true (fw_ keys also serve\n// dedicated traffic; the gateway enforces the 402 scope-aware, FIR-37533).\nfunc TestReconcileUnkeyAPIKeys_ServerlessBlockStamped(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\taccountId := \"acct-sl-stamp\" // unique: account_watcher tests share one DB\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer un"} -{"text": "Article by: Perry Romanowski\nI saw this article in the Guardian about the delay the EU faces in their ban of animal testing of cosmetic products.\nFor someone new in the cosmetic industry, the role of animal testing may be confusing. There are many brands out there that claim to be ‘cruelty free’ and that ‘don’t test on animals.’ It might make an aspiring cosmetic chemist wonder, why do some companies continue to test on animals? What kind of animal testing is done? If one company could stop testing on animals, why don’t they all?\nGood questions. But before we answer, let’s go over what animal testing has been used in the cosmetic industry.\nCosmetic animal testing\nThere are a number of animal tests that can be done on cosmetic formulas and ingredients. The primary tests include the following.\n1. Draize test – This is a procedure used to determine dermal irritation. Animals used are albino rabbits who have much more sensitive skin than humans. Semiocclusive patches of the test material are placed on skin and readings are taken at 24 and 72 hours. The skin is then graded for erythema and edema. In the United States, this test is required by law for cosmetics and skin care products under the Federal Hazardous Substances Act.\n2. Eye irritancy test – Tests what happens if the cosmetic gets into the eye. It involves albino rabbits again and compounds are put into the eyes. Evaluations take place at 24, 48, 72 hrs and up to 7 days.\n3. Guinea Pig Maximization test – This test measures for the sensitizing potential of an ingredient and involves injecting the compound under the skin followed by topical application.\nI’ve never been too comfortable doing animal tests and as a cosmetic formulator, I never had to. Fortunately, it is unlikely that you will ever have to do any animal testing yourself. It is typically done by an outside testing laboratory. But governments still require cosmetic companies to demonstrate their products are safe and while they don’t usually require animal testing, for some products, it is the only proof they accept.\nThoughts on cosmetic animal testing\nI was once asked a series of questions about animal testing. Here is my perspective.\n1. Do you think that animal testing for cosmetics should be banned?\nWhile I don’t like animal testing, as the original story shows there are currently no suitable alternatives for some types of tests. I don’t think animal testing should be banned until there are alternative tests that help prove products are safe.\n2. Should animal testing be banned for cosmetics, but still be allowed for medicine?\nAnimal testing is not something that anyone wants to do. Scientists feel the same affection for animals as everyone else. But until alternative tests are better developed, banning animal testing for either cosmetics or medicine seems unethical. Aren’t human lives more important than animals?\nEU animal testing ban\n3. Do you agree with the EU ban on animal testing? What will the effects be?\nI don’t agree or disagree with the decision made by the EU. The truth is cosmetics are not vital for living a healthy life. The result of banning animal testing will be that no new cosmetic products will be made. All you will get in the future are color & bottle changes using the same products you have today. Cosmetic innovation will stop. Solutions to acne, dandruff, dry skin, frizzy hair, etc. will not be developed. Fortunately, the products available now are often good enough. If these problems were never solved and there were never a new cosmetic made, the world would be just fine.\nHowever, it seems strange people get upset about animal testing, but still eat meat, kill mice & rats, and wear leather products.\nPros of a ban: fewer animals will be killed\nCons of a ban: Cosmetic problems will not be solved, no new ingredients will be used, innovation stops\n4. Do you use cosmetics products that have been tested on animals?\nYes I do. So do you. Everyone uses products that have ingredients that were tested on animals. It is misleading when companies say they don’t test on animals. ALL cosmetics have been tested directly or indirectly on animals.\nThe truth is, very few cosmetic companies directly test their products on animals. Animal testing is expensive and terrible for public relations. Companies who say they don’t test on animals either use ingredients that were already tested on animals or have their raw material suppliers do the animal testing. They can argue that they never tested their formula on animals (which they technically don’t) because they know they are using only raw materials that have already been tested on animals (by someone else).\nSince all ingredients have been tested on animals, there does not seem to me to be any moral high ground to avoiding companies based on whether they claim to test on animals or not.\nGetting rid of animal testing\n5. With all the efforts to stopping animal testing for cosmetics, do you think that it’s possible to one day completely get rid of animal testing for cosmetics?\nYes, I believe one day animal testing of cosmetics will be a thing of the past. Everyone wants to get rid of this type of testing. No one wants to hurt animals. Scientists are working hard to create testing alternatives that work. We are just now seeing some tests that are receiving approval from governmental agencies. I believe withing 10 — 20 years animal testing of cosmetics will be practically non-existent. But until there are reliable testing alternatives (there aren’t yet) animal testing will still be necessary.\nWhat are your thoughts on cosmetic animal testing? Does it affect your formulating decisions? Leave a comment below."} -{"text": "Update at 5:30 p.m.: Laura McGowan, spokesperson for Clarke, maker of Duet, just sent word that tonight’s spraying will commence a little earlier than expected. McGowan says the planes will leaves Executive Airport at 7:45 p.m. and begin spraying shortly after that. “They have an opportunity to go up in daylight,” she says, “so we’re taking it.”\nUpdate at 4 p.m.: Below you will find the map the county just sent out showing what will be sprayed tonight. It’s confusing, so let me simplify: Anything in gray isn’t being sprayed. Either it’s already been sprayed or, when it comes to the southern cities, may be sprayed; that decision’s due Tuesday at 2 p.m. But if you’re in the yellow, purple, orange or pink — yes, you’re being doused with Duet tonight starting ’round 9 p.m. In other words, move your outdoor party inside. And take the dog out early.\nLet Dallas City Hall explain, so we’re all on the same page:\nAerial mosquito spraying will continue tonight to include all areas in the City of Dallas not covered last night due to weather conditions. Spraying is scheduled to begin at 9 p.m. and will continue until approximately 1a.m., weather permitting. Spraying began last night shortly after 10 p.m. but was halted at midnight because of rain.\nA total of 62.8 square miles have now been sprayed in the City of Dallas, leaving 272.6 miles yet to be covered in the city limits. The priority tonight is to spray all areas missed last night, as well as the rest of the City of Dallas. Other cities will be sprayed as well. Areas to be sprayed tonight in the City of Dallas are:\nApproximately one half mile west of Jupiter Road and Buckner Blvd., east to the City limit\nSouth Dallas: Interstate 30, south to the City limit\nWest Dallas: North of Interstate 30 and west of the Dallas North Tollway to the City limit\nFar North Dallas: North of LBJ Freeway to the City limit\nIf weather disrupts the spraying operation tonight, spraying will continue tomorrow to complete the mission in those areas yet to be sprayed. The public will be notified if spraying is conducted on Saturday. There will not be spraying on Sunday to allow for new mosquitoes to hatch. To ensure the treatment is effective, another round of aerial spraying will occur Monday and Tuesday to make a second pass in all areas of the city.\nUpdate at 2 p.m.: So, yes. Tonight at 9, all of Dallas — and, yes, that means you, unless you were sprayed last night — will be sprayed with the pesticide intended to rid the county of the West Nile that’s claimed 10 lives so far. And it’s not just Dallas, but Coppell, Carollton, Addison, Richardson (including the Collin County side), Farmers Branch, Garland, Mesquite (the section north of IH-30) and Grand Prairie (including the sections of the city in Ellis and Tarrant counties).\nOfficials say that much land will take a lot of time — the planes could be up till the break of day. (And, no, no live blog tonight … maybe.) Of course, this could all change if it rains. And it might. If tonight’s spraying goes off without a hitch, then Clarke will give it two days to see how’s it hatchin’, at which point there could be a re-spray-down Monday night.\nRight now, southern Dallas County cities aren’t included in the dousing. A decision will be made about them come 2 p.m. Tuesday.\nUpdate at 1:09 p.m.: Just after posting this we received an email from Maria Arita, Dallas County spokesperson, who sends word:\nThe priority tonight will be to complete the original block that we missed last night (see map) and will include the rest of Dallas (not reflected on this map but being rendered). On Saturday, weather permitting, crews will cover anything missed tonight. We anticipate having a new map, which will reflect an accurate picture of Dallas areas still needing coverage this afternoon.\nEfficacy of the Aerial Spraying will require post-trapping process and data and will not be available for at least 24 hours after the spraying has been completed.\nOriginal item posted at 1:16 p.m.: As Matt Peterson noted this morning those Duet-dumping planes bailed out a little earlier than expected earlier this morning, thanks to a little added moisture in the air. Which means … Well, more spraying tonight, for starters, though we won’t know exactly where and when till the 1:30 press conference scheduled at Dallas County HQ starring, yet again, Mayor Mike and Judge Jenkins. It also means, of course, only half of those scheduled for aerial spraying last night got their coating of Clarke’s adulticide.\nWhich half? Well, those who heard the roar of low-flying planes know which half; those things are loud – like, under-attack loud. And there are going to be more tonight — the county just sent word that four will be up in the air, this time beginning at 8:30 p.m., with Dallas due for its misting at 9. Anyway: For those who like their information a wee bit more precise, what you’ll find below is the map of which 52,352 acres (out of the 100,845 assigned block acreage) got its spray-down and who went without — and, yes, the green-and-pink areas mean they got sprayed. And those squiggly lines? They represent where the planes made their turns … without spraying. (So they say.)\nThe other half — which it so say Garland to ’round Lake Ray Hubbard — should get its make-up spraying tonight, if it doesn’t rain, and it just might.\nUpdates forthcoming. Now, to the maps!"} -{"text": "keyClient.AssertExpectations(t)\n\n\tunkeyClient.On(\"ListKeys\", ctx, components.V2ApisListKeysRequestBody{\n\t\tDecrypt: ptr.Ptr(false), RevalidateKeysCache: ptr.Ptr(false),\n\t\tAPIID: \"fake_apiId_inference\", ExternalID: &accountId,\n\t}).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{KeyID: \"key_alice\", Meta: map[string]any{\"email\": \"alice@gmail.com\"}},\n\t\t\t},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"UpdateKey\", ctx, components.V2KeysUpdateKeyRequestBody{\n\t\tKeyID: \"key_alice\",\n\t\tMeta: map[string]any{\n\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\"user_id\": \"alice\",\n\t\t\tunkey.ServerlessMetaConsumptionBlocked: true,\n\t\t\tunkey.ServerlessMetaConsumptionReason: unkey.ConsumptionLimitExceededReason,\n\t\t\tunkey.ServerlessMetaConsumptionPeriodEnd: \"2023-02-01T00:00:00Z\",\n\t\t},\n\t\tEnabled: ptr.Ptr(true), // serverless block does NOT disable the key\n\t}).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\n\tdba := &database.Account{AccountName: *resourcename.NewAccountName(accountId), Email: \"alice@gmail.com\", CreateTime: w.now()}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{UserName: *resourcename.NewUserName(accountId, \"alice\"), Email: \"alice@gmail.com\"}\n\t_ = w.db.Create(&dbu)\n\n\tpe := time.Date(2023, 2, 1, 0, 0, 0, 0, time.UTC) // after w.now() → effective-blocked\n\trequire.NoError(t, database.MarkAccountConsumptionBlocked(w.db, accountId, gpb.Scope_SERVERLESS,\n\t\tresourcename.NewUserName(accountId, \"alice\").String(), 50, 60, pe, \"grouped_cost_exceeded\"))\n\n\trequire.NoError(t, w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba))\n}\n\n// Once the billing period rolls over (PeriodEnd in the past), the block\n// self-expires: the reconcile clears the stale serverless_consumption_* meta even\n// though the LIMIT_BLOCKED row hasn't been swept yet (no Orb recovery event).\nfunc TestReconcileUnkeyAPIKeys_ServerlessBlockSelfExpiresAndClears(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\taccountId := \"acct-sl-expire\" // unique: account_watcher tests share one DB\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\n\tunkeyClient.On(\"ListKeys\", ctx, components.V2ApisListKeysRequestBody{\n\t\tDecrypt: ptr.Ptr(false), RevalidateKeysCache: ptr.Ptr(false),\n\t\tAPIID: \"fake_apiId_inference\", ExternalID: &accountId,\n\t}).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{KeyID: \"key_alice\", Meta: map[string]any{\n\t\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\tunkey.ServerlessMetaConsumptionBlocked: true,\n\t\t\t\t\tunkey.ServerlessMetaConsumptionReason: unkey.ConsumptionLimitExceededReason,\n\t\t\t\t\tunkey.ServerlessMetaConsumptionPeriodEnd: \"2022-12-01T00:00:00Z\",\n\t\t\t\t}},\n\t\t\t},\n\t\t},\n\t}, nil)\n\t// Rebuilt meta drops the serverless_consumption_* keys (no re-stamp): cleared.\n\tunkeyClient.On(\"UpdateKey\", ctx, components.V2KeysUpdateKeyRequestBody{\n\t\tKeyID: \"key_alice\",\n\t\tMeta: map[string]any{\n\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\"user_id\": \"alice\",\n\t\t},\n\t\tEnabled: ptr.Ptr(true),\n\t}).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\n\tdba := &database.Account{AccountName: *resourcename.NewAccountName(accountId), Email: \"alice@gmail.com\", CreateTime: w.now()}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{UserName: *resourcename.NewUserName(accountId, \"alice\"), Email: \"alice@gmail.com\"}\n\t_ = w.db.Create(&dbu)\n\n\tpe := time.Date(2022, 12, 1, 0, 0, 0, 0, time.UTC) // before w.now() → period rolled over\n\trequire.NoError(t, database.MarkAccountConsumptionBlocked(w.db, accountId, gpb.Scope_SERVERLESS,\n\t\tresourcename.NewUserName(accountId, \"alice\").String(), 50, 60, pe, \"grouped_cost_exceeded\"))\n\n\trequire.NoError(t, w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba))\n}\n\nfunc TestReconcileUnkeyAPIKeys_MultipleUsers(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId_inference\",\n\t\t\tExternalID: &accountId,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_123\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_456\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"b"} -{"text": "In 2000, Virginia B. Ball, philanthropist and active supporter of education, the environment, the arts, and the humanities, established the Virginia B. Ball Center for Creative Inquiry.\nAlthough she died in 2003, Virginia was able to see her center evolve into a national and international model for innovative, immersive learning. She was particularly enthusiastic about her center’s ability to forge creative and productive relationships between Ball State University and numerous community partners.\nSince her death, her center, sustained by subsequent gifts from the Edmund F. and Virginia B. Ball Foundation, has continued to provide life-changing experiences for students and faculty, and life-long learning opportunities for members of the community. Indeed, her center has become a leader in Ball State University’s goal to provide immersive learning experiences for every graduate.\n, director of the Virginia B. Ball Center, this article was originally published in The Star-Press of Muncie, Indiana, on December 7, 2003.\nVirginia Ball believed education transformed lives, energized communities and created culture. She would not have said it that way. She was too straightforward, too authentic to dabble in educational theories. But she was curious. She wanted to know what people were reading, thinking and learning. In particular, she wanted to know what the faculty and students who walked by her home were doing at the university across the street. She was reluctant to intrude in the daily business of education, but she was interested in creating genuine and intelligent relationships with the people who made it work. She attended faculty lectures, corresponded with those whose creativity she admired, and asked many of us, with some regularity, what we found exciting and memorable about our teaching. She was equally fascinated by students—where they came from, how they found Ball State, and what they perceived as powerful and unique about their learning. She attended their musical performances, theatrical productions, art exhibits and research presentations. Always at ease in their company, she talked to them as if they were adults, asking them about their achievements, their goals, and, perhaps most importantly, the contributions they hoped to make to their communities once they graduated. For Virginia, education and community were interconnected. And for that reason she worked to create bridges between scholars and citizens. More to the point, she worked to enable scholars to become engaged citizens, and citizens to pursue life-long learning. She devoted herself to this work—in the arts, the environment and the humanities—in her home community. But Virginia conceived community as a series of concentric circles—local, regional, national and international—that constantly enforced and informed one another. So, during her extensive travels, as she met some of the world’s best minds, or became involved in some of the world’s most innovative organizations, she collected information she could use to broaden and deepen the connection between the citizens of her hometown and the faculty and students at the university across the street.There is ample evidence of Virginia’s bridge building in Muncie—the Minnetrista Center, the Muncie Children’s Museum, Cornerstone Center for the Arts—but perhaps the most dramatic example is the center which she founded and which bears her name: the Virginia B. Ball Center for Creative Inquiry. Each year, Virginia’s center sponsors four interdisciplinary seminars in which faculty and students create a major product—an exhibit, a theatrical production, a film, a book. These products are designed in collaboration with community sponsors and are presented in a community forum for discussion and debate. Since its founding in 2000, Virginia’s center has established a national and international reputation for innovative and inspirational education. The many unsolicited letters Virginia received about her center contain enthusiastic testimonies from the faculty, students and community sponsors who have worked together. All acknowledge the transformative, energizing and creative impact the center has had and will continue to have on their lives. In the last few months of her life, Virginia referred often to these letters and to the living legacy they promised. And she looked forward, always curious, to the exciting and powerful educational experiences her center would create for the faculty, students and citizens of her community.\nCopyright © 2016 Ball State University 2000 W. University Ave. Muncie, IN 47306\n800-382-8540 and 765-289-1241"} -{"text": "Alumna Victoria Hill is a 2016 recipient of the Charles Rangel Graduate Fellowship for study in international relations and foreign and governmental affairs. Victoria, who previously earned the Austrian Diplomacy Fulbright Scholarship, has been working in Wake Forest Admissions for several years. This fall she will enter graduate school, funded in large part by the Rangel, for a two year degree one of whose possible outcomes will be in preparation for the Foreign Service. There are up to 30 Rangel Fellowships awarded nationally each year.\nWe proudly present the roster of students who graduated with honors in 2016.\nTerry “TJ” Smith\nNicholas Syris II\nThis year I was fortunate enough to be selected by the Politics and International Affairs Department to represent Wake Forest at the 56th Annual Naval Academy Foreign Affairs Conference that took place in April 2016. In celebration of the 40th anniversary of accepting women to the Naval Academy, the topic of this year’s conference was “Women and Security: The Implications of Promoting Global Gender Equality.” At the four-day conference, I got to hear from an amazing list of speakers – mostly women – who have had enormous influence in global politics. The speakers included Melanne Verveer, the first Ambassador-at-Large for Global Women’s Issues; Michele Flournoy, former Undersecretary of Defense; and Samantha Power, the current U.S. Ambassador to the United Nation. I was lucky enough to get the chance to speak personally with both Ambassador Verveer and Michele Flournoy, both of whom had brilliant insights into the future of U.S. foreign policy and U.S.-China relations.\nIn addition to hearing from many great panelists and speakers, I also spent time on a small roundtable group that focused on gender inequality and related issues in China. We discussed the absence of women at the top of China’s political leadership, and the many problems that Chinese women still face in the workplace and in society. For me, the biggest takeaway of the conference was getting to better understand civil-military relations. About half of the delegates were from the naval academy and various other military academies around the world. It was eye-opening to see the differences in how civilians and people in the military perceive security issues differently.\nIt was an incredible experience, and I’d like to thank the entire department for giving me the opportunity to attend this amazing conference!\nBlair Wessels is the 2016 recipient of the Jack D. and Martha H. Fleer Scholarship. After graduation Blair will be moving to Morgantown, West Virginia to pursue a J.D. at West Virginia University’s College of Law. She is interested in combining her love of English and political science to study intellectual property law or public interest law.\nBen Helms is the 2016 Carl Moses Excellence in Research Award recipient for his paper “When Domestic and Supranational Politics Collide”. After graduation Ben will attend the University of Virginia to pursue a PhD in political science, with a focus on international politics and South Asia.\nThe 2016 winner of the Jack D. Fleer Award for Excellence in Honors in Politics and International Affairs is Brian Hart for his paper “Creating the Cult of Xi Jinping: The China Dream as a Leader Symbol”. After graduation, Brian is excited to spend a year serving as the Wake Forest Fellow in the Office of the Dean of the College. Following his year as a fellow, he hopes to attend a masters or doctoral program in International Relations or Political Science.\nBrian Hart is the 2016 recipient of the C.H. Richards Award for Excellence in Politics and International Affairs. After graduation, Brian is excited to spend a year serving as the Wake Forest Fellow in the Office of the Dean of the College. Following his year as a fellow, he hopes to attend a masters or doctoral program in International Relations or Political Science.\nFour Politics and International Affairs graduates have been appointed as Wake Forest Fellows:\nBrian Hart: Dean of the College\nSarah Hoyle: Office of Personal and Career Development\nTerry (T.J.) Smith: Office of the Provost\nCamry Wilborn: The Pro Humanitate Institute\n“My selection as a fellow means that I have been given a tremendous opportunity to continue to learn and grow while simultaneously giving back to the institution I have to come to love,” said T.J. Smith. “I have the chance to be mentored by a cadre of esteemed leaders in what will be the developmental opportunity of a lifetime.” As a fellow, Smith said, he expects “to gain a new insight and perspective into how the strategic direction and inner mechanics of the University come together to move our community forward.” (Read more…)"} -{"text": "ob@gmail.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"UpdateKey\",\n\t\tctx,\n\t\tcomponents.V2KeysUpdateKeyRequestBody{\n\t\t\tKeyID: \"key_123\",\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\t\"user_id\": \"alice-123\",\n\t\t\t},\n\t\t\tEnabled: ptr.Ptr(true),\n\t\t},\n\t).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\n\tdba := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(accountId),\n\t\tEmail: \"test@gmail.com\",\n\t\tCreateTime: w.now(),\n\t}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{\n\t\tUserName: *resourcename.NewUserName(\"alice-123\", \"alice-123\"),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\tdba2 := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(\"co-alice\"),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dba2)\n\tdbu2 := &database.User{\n\t\tUserName: *resourcename.NewUserName(\"co-alice\", \"go-alice\"),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dbu2)\n\n\terr := w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba)\n\trequire.NoError(t, err)\n}\n\nfunc TestReconcileUnkeyAPIKeys_RetainLegacyKey(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId\",\n\t\t\tExternalID: &accountId,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_123\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\t\t\"legacyKey\": true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_456\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"UpdateKey\",\n\t\tctx,\n\t\tcomponents.V2KeysUpdateKeyRequestBody{\n\t\t\tKeyID: \"key_123\",\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\"legacyKey\": true,\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\t\"user_id\": \"my-account\",\n\t\t\t},\n\t\t\tEnabled: ptr.Ptr(true),\n\t\t},\n\t).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\tunkeyClient.On(\"UpdateKey\",\n\t\tctx,\n\t\tcomponents.V2KeysUpdateKeyRequestBody{\n\t\t\tKeyID: \"key_456\",\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\t\"user_id\": \"my-account\",\n\t\t\t},\n\t\t\tEnabled: ptr.Ptr(true),\n\t\t},\n\t).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\n\tdba := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(accountId),\n\t\tEmail: \"test@gmail.com\",\n\t\tCreateTime: w.now(),\n\t}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{\n\t\tUserName: *resourcename.NewUserName(accountId, accountId),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dbu)\n\n\terr := w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba)\n\trequire.NoError(t, err)\n}\n\nfunc TestReconcileUnkeyAPIKeys_RetainSuperuserMetadata(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId\",\n\t\t\tExternalID: &accountId,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_123\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\t\t\"superuser\": true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"UpdateKey\",\n\t\tctx,\n\t\tcomponents.V2KeysUpdateKeyRequestBody{\n\t\t\tKeyID: \"key_123\",\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\t\"user_id\": \"my-account\",\n\t\t\t\t\"superuser\": true,\n\t\t\t},\n\t\t\tEnabled: ptr.Ptr(true),\n\t\t},\n\t).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\n\tdba := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(accountId),\n\t\tEmail: \"test@gmail.com\",\n\t\tCreateTime: w.now(),\n\t}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{\n\t\tUserName: *resourcename.NewUserName(accountId, accountId),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dbu)\n\n\terr := w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba)\n\trequire.NoError(t, err)\n}\n\nfunc TestReconcileUnkeyAPIKeys_RetainCreatedByMetadata(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclie"} -{"text": "05/04/08 1:58 AM ET\nRockies lose power struggle\nNewcomer De La Rosa cannot slow Dodgers' dominance\nBy Owen Perkins / Special to MLB.com\nBefore the Dodgers secured their 12-7 victory -- their fifth straight over the Rox this season and eighth in a row overall -- the game evolved into a slugfest, with extra-base hits abounding for both clubs as they combined for 19 runs and 25 hits, 11 for extra bases. But as they built an early 6-0 lead, the Dodgers had only two hard-hit balls, a screaming grounder in the first from Matt Kemp through the hole on the left side of the infield and a three-run double into the left-center gap two batters later by James Loney.\n\"Not every ball was barreled, but enough were,\" manager Clint Hurdle said. \"Not enough strikes, not crisp enough command\" from De La Rosa, making his Rockies debut after being traded from the Royals.\nDe La Rosa was challenged by ineffective breaking pitches and by an inability to get strikes on the inside part of the plate against right-handers. His changeup was effective, but his lack of consistency with his fastball command made it too easy for the Dodgers to sit on his pitches.\n\"I made a lot of mistakes and threw a lot of pitches in four innings,\" De La Rosa said after tying his career-high nine runs allowed. \"I tried to be aggressive. I think I was overthrowing a little bit in the first two innings. My curve didn't work good. I have to do something to be better next start. I have to forget this game and get ready for the next one.\"\nThe Rockies refused to be defined by the early deficit, choosing instead to fight fire with fire. Todd Helton led off the second inning with a hard-hit grounder off the reaching glove of second baseman Jeff Kent, stretching it into a double as it died on that no-man's-land grass in shallow center. The Rockies took off from there, mounting a three-run second and pairing it with a three-run third to tie the game as Matt Holliday hit a leadoff homer and Garrett Atkins laced a one-out double down the left-field line to drive starter Esteban Loaiza from the game after 2 1/3 innings. Brad Hawpe greeted reliever Hong-Chih Kuo by drilling his first pitch for a game-tying two-run homer, the second of his three hits on the night.\n\"It felt good, it's part of the game,\" Hawpe said of his offensive surge, equaling his season peak for hits and driving in a season-high four runs. \"Sometimes you have rough games, sometimes you have good games. You just got to realize that at the end of the year, things are going to be right there where they need to be.\"\nDe La Rosa temporarily recovered from his first two innings, showing resilience as he retired nine of the 10 batters he faced from the middle of the second through a nine-pitch fourth inning. He ran out of gas in the fifth, however, giving up a leadoff single to Kent and walking Russell Martin before Loney launched a hanging slider into the right-field seats for a three-run homer and his sixth RBI of the night. Having squandered the Rockies comeback, De La Rosa left with the three-run deficit.\n\"It's something to build off of, but the bottom line is after his best inning, he got in trouble in the next inning,\" Hurdle said. \"He was retiring some guys, he looked like he was getting a little rhythm, and then the wheels came off in the fifth right away.\"\nWith both lineups showing their explosive potential by forcing early exits from the starters, bullpen pitching was at a premium, with the Rockies relievers allowing three of the 12 runs while the Dodgers 'pen held the Rox to one run over the final 5 2/3 innings.\n\"We kept trying to come back, but they have a good bullpen,\" Hawpe said. \"Their bullpen's tough, and they shut the door down on us.\"\nThe Rockies cracked it open again in the ninth inning, staging a last-gasp rally with Takashi Saito on the mound, sparked by a leadoff double from Clint Barmes and a walk to Holliday. That brought Helton to the plate, with memories of his dramatic game-winning homer against Saito last September bringing the fans to their feet. Helton drove a ball deep to left, but Juan Pierre made a leaping snow-cone catch against the fence, stopping the rally in its tracks. Garrett Atkins followed with a drive to the right-field warning track, but Kemp was able to pull it in safely.\nThe loss marked the sixth time the Rockies have scored five runs or more without claiming a victory this season, a discouraging stat for an on-again, off-again offense that has averaged 4.23 runs per game. The Rockies won the National League title with an average 5.31 runs/game last season.\n\"The numbers aren't that much skewed from last year,\" Hurdle said, looking at the full range of early-season stats, including the Rockies' 11-19 record, 10 games behind the NL West-leading Diamondbacks. \"That being said, they're unacceptable. They're not what we need. That isn't something to hold on to.\n\"We're at that fine line right now: we can't wait for things to happen, and we don't need to step on the gas pedal so hard we're forcing things to happen. We need to take what the games present. The game's hard for us right now. We just got to keep working. There's work to be done, there's no doubt about that.\"\nOwen Perkins is a contributor to MLB.com. This story was not subject to the approval of Major League Baseball or its clubs."} -{"text": "Columbia County Economic\nMaking it up as they go along\nColumbia County, FL (Posted Oct 06, 2010 07:35 am)\nMembers of the Columbia County Ida listen at the workshop. No one knew about the economic development ordinance that was passed in 2004. In the photo from left to right are Marc Vann, Carlton Jones, Gus Rentz, Suzanne Norris, Jeff Simmons and Gina Reynolds, who is the assistant director.\nLast night, the homeless Columbia County Commission met with the IDA, the popular Doyle Crews - the County Property Appraiser; Richard (yes, this is all one person) Powell - the County's financial advisor - external auditor - budget advisor - consultant to the internal auditor; the County and everybody's Attorney - Marlin Feagle and the high priced spread from Tallahassee, Attorney Greg Stewart of the Law Firm of NGN. The county website billed the meeting as a workshop.\nThe County's only further description of the meeting went this way: \"The topic for discussion relates to Tax Abatement which resulted from the \"Agreed Upon Procedures\" conducted by Richard Powell, C.P.A., Powell & Jones, C.P.A.'s.\"\nIt's likely that no one on planet earth would have a clue what the county is describing. The meeting lasted 55 minutes.\nUnknown to the public and possibly some of the people attending the workshop, the real purpose of the meeting was to establish guidelines for County tax abatements and develop the criteria for an economic development ordinance.\nIt was clearly business as usual, as Columbia County's long time County Manager, Dale Williams, described the County's role and the Board's responsibilities in granting economic incentives.\nCounty Manager Williams explained that the new ordinance would be in two parts. The first part would comply with the Florida statutes and the second part would be a separate memorandum of understanding, in which the county could put in what they felt was important.\nCounty Manager Williams explained that he \"tried to leave as much latitude with the board\" as possible.\nNeither the county staff, the county attorney, outside counsel, the IDA, or anybody, came up with any formula to keep the playing field even and treat everyone fairly.\nThe reputation of Columbia County as being Florida's premier \"good old boy\" County was further solidified when County Manager Williams told the gathering, \"Just because you meet conditions doesn't mean you get the abatement.\"\nThe County's well-known \"flying by the seat of its pants\" methodology was exemplified after the County Manager reported that the minimum investment to be considered for a tax abatement or an economic incentive was $250,000.\nLongtime resident, successful businessman, IDA board member and former county commission candidate, Marc Vann asked the County Manager, \"How did you decide on $250,000 as a good number?\"\nThe County Manager responded, \"It just seemed like a good number.\"\nTherein lies the problem\nDue diligence is a phrase that is foreign to Columbia County, a county that is locked into the ways of the past.\nThe county management's continuing inability to use computers, spread sheets, modern methods of cost analysis and research, and developing public policy with clearly defined guidelines, weighs like an anchor around the necks of the working families of the county, as the word spreads that while Columbia County may be a place suitable for the \"good old boys\" who are willing to grease a few palms or the slick and educated who can take advantage of a public management group that takes pride in being backward and locked into the ways of the past, real companies that are looking for an even playing field and a place where quality education is available for their children are staying away.\nIn 2004 the County unanimously passed an ordinance establishing a local economic development incentive program. The investment threshold in that ordinance is $500,000.\nThe 2004 ordinance is still on the books.\nDuring the public hearing, one of the three Caballeros, Commissioner Dewey Weaver, said at that time about the new ordinance, \"I believe it's a good opportunity to help our local business.\"\nCommissioner Jennifer Flynn told the Board: \"I want to caution you all to make sure we do this in a fair manner for all businesses and that's my concern about it.\"\nCommissioner Flynn was eventually run off the Board and out of town."} -{"text": "nt.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId\",\n\t\t\tExternalID: &accountId,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_123\",\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"perf-agent@my-account.sa.fireworks.ai\",\n\t\t\t\t\t\t\"created_by\": \"alice@acme.com\",\n\t\t\t\t\t\tunkey.FirePassMetaKey: true,\n\t\t\t\t\t\tunkey.FirePassMetaAccountID: \"my-account\",\n\t\t\t\t\t\tunkey.FirePassMetaUserID: \"perf-agent\",\n\t\t\t\t\t\tunkey.FirePassMetaDeveloperPassID: \"dp-snapshot-1\",\n\t\t\t\t\t\tunkey.FirePassMetaDeveloperPassEndTime: \"2026-05-09T00:00:00Z\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"UpdateKey\",\n\t\tctx,\n\t\tcomponents.V2KeysUpdateKeyRequestBody{\n\t\t\tKeyID: \"key_123\",\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"perf-agent@my-account.sa.fireworks.ai\",\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\t\"created_by\": \"alice@acme.com\",\n\t\t\t\tunkey.FirePassMetaKey: true,\n\t\t\t\tunkey.FirePassMetaAccountID: \"my-account\",\n\t\t\t\tunkey.FirePassMetaUserID: \"perf-agent\",\n\t\t\t\tunkey.FirePassMetaDeveloperPassID: \"dp-snapshot-1\",\n\t\t\t\tunkey.FirePassMetaDeveloperPassEndTime: \"2026-05-09T00:00:00Z\",\n\t\t\t},\n\t\t\tEnabled: ptr.Ptr(true),\n\t\t},\n\t).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\n\tdba := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(accountId),\n\t\tEmail: \"test@gmail.com\",\n\t\tCreateTime: w.now(),\n\t}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{\n\t\tUserName: *resourcename.NewUserName(accountId, \"perf-agent\"),\n\t\tEmail: \"perf-agent@my-account.sa.fireworks.ai\",\n\t}\n\t_ = w.db.Create(&dbu)\n\n\terr := w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyInferenceApiId, dbu, dba)\n\trequire.NoError(t, err)\n}\n\nfunc TestReconcileUnkeyAPIKeys_RetainConsumptionBlockedMetadataForFirePass(t *testing.T) {\n\tauth.UnkeyFirepassApiId = ptr.Ptr(\"fake_apiId_firepass\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAPIID: \"fake_apiId_firepass\",\n\t\t\tExternalID: &accountId,\n\t\t},\n\t).Return(&operations.ApisListKeysResponse{\n\t\tV2ApisListKeysResponseBody: &components.V2ApisListKeysResponseBody{\n\t\t\tData: []components.KeyResponseData{\n\t\t\t\t{\n\t\t\t\t\tKeyID: \"key_123\",\n\t\t\t\t\tEnabled: false,\n\t\t\t\t\tMeta: map[string]any{\n\t\t\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\t\tunkey.FirePassMetaKey: true,\n\t\t\t\t\t\tunkey.FirePassMetaAccountID: \"my-account\",\n\t\t\t\t\t\tunkey.FirePassMetaUserID: \"alice\",\n\t\t\t\t\t\tunkey.FirePassMetaConsumptionBlocked: true,\n\t\t\t\t\t\tunkey.FirePassMetaConsumptionReason: unkey.ConsumptionLimitExceededReason,\n\t\t\t\t\t\tunkey.FirePassMetaConsumptionPeriodEnd: \"2026-06-07T00:00:00Z\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, nil)\n\tunkeyClient.On(\"UpdateKey\",\n\t\tctx,\n\t\tcomponents.V2KeysUpdateKeyRequestBody{\n\t\t\tKeyID: \"key_123\",\n\t\t\tMeta: map[string]any{\n\t\t\t\t\"email\": \"alice@gmail.com\",\n\t\t\t\t\"accountCreatedAt\": \"2023-01-01T12:00:00Z\",\n\t\t\t\tunkey.FirePassMetaKey: true,\n\t\t\t\tunkey.FirePassMetaAccountID: \"my-account\",\n\t\t\t\tunkey.FirePassMetaUserID: \"alice\",\n\t\t\t\tunkey.FirePassMetaConsumptionBlocked: true,\n\t\t\t\tunkey.FirePassMetaConsumptionReason: unkey.ConsumptionLimitExceededReason,\n\t\t\t\tunkey.FirePassMetaConsumptionPeriodEnd: \"2026-06-07T00:00:00Z\",\n\t\t\t},\n\t\t\tEnabled: ptr.Ptr(false),\n\t\t},\n\t).Return(&operations.KeysUpdateKeyResponse{}, nil)\n\n\tdba := &database.Account{\n\t\tAccountName: *resourcename.NewAccountName(accountId),\n\t\tEmail: \"test@gmail.com\",\n\t\tCreateTime: w.now(),\n\t}\n\t_ = w.db.Create(&dba)\n\tdbu := &database.User{\n\t\tUserName: *resourcename.NewUserName(accountId, \"alice\"),\n\t\tEmail: \"alice@gmail.com\",\n\t}\n\t_ = w.db.Create(&dbu)\n\n\terr := w.reconcileUnkeyAPIKeys(ctx, auth.UnkeyFirepassApiId, dbu, dba)\n\trequire.NoError(t, err)\n}\n\nfunc TestReconcileUnkeyAPIKeys_SuspendExistingKey(t *testing.T) {\n\tauth.UnkeyInferenceApiId = ptr.Ptr(\"fake_apiId_inference\")\n\taccountId := \"my-account\"\n\tctx := context.Background()\n\tw := newTestWatcher(t)\n\tunkeyClient := w.unkeyClient.(*unkeyclient.MockClient)\n\tdefer unkeyClient.AssertExpectations(t)\n\tunkeyClient.On(\"ListKeys\",\n\t\tctx,\n\t\tcomponents.V2ApisListKeysRequestBody{\n\t\t\tDecrypt: ptr.Ptr(false),\n\t\t\tRevalidateKeysCache: ptr.Ptr(false),\n\t\t\tAP"} -{"text": "DULUTH, Ga. — Khaalidah Miller scored 12 points and ninth-seeded Georgia picked up its 20th victory of the season Thursday, defeating eighth-seeded Vanderbilt 53-43 on the second day of the 2014 Southeastern Conference Women’s Basketball Tournament at the Arena at Gwinnett Center.\nGeorgia (20-10), which avenged a regular-season loss to Vanderbilt, placed three players in double-figure scoring totals, as Krista Donald and Erika Ford each added 10. Donald also brought down a squad-best eight rebounds.\n“It was the kind of game I think that we thought it would be extremely competitive. We just felt challenged defensively by a very good Vanderbilt team, a team that has skillful players who cannot only make shots, but make plays and execute extremely well,” Georgia coach Andy Landers. “That was a big challenge for us. We felt like our players answered that challenge.”\nVanderbilt (18-12), which shot 30 percent from the field in the first half, responded by shooting 55 percent (11-of-20) in the second period. The Commodores were led by Christina Foggie’s game-high 19 points.\n“I think the obvious: Georgia came ready to play and worked really hard, dominated us on the boards, was more\nphysical, more aggressive, got a lot more shots. They put up more shots. They got more second and third shots.\nThey earned this victory. They did a great job,” said Vanderbilt coach Melanie Balcomb.\nGeorgia advances to face top-seeded South Carolina (26-3) at 11 a.m. Friday.\nFlorida 71, Mississippi St. 67\nJaterra Bonds scored 18 points, Kayla Lewis added 17 and fifth-seeded Florida held off a late charge Thursday by 13th-seeded Mississippi State.\nFlorida (19-11), which led by as many as 15 points late in the first half, found itself down 57-56 with 7:32 remaining in the game before a jumper and a three-pointer by Cassie Peoples on back-to-back possessions gave the Gators the lead for good.\nPeoples finished with 13 points and Antoinette Bannister added 10, as four Florida players finished tallied double-figure point totals. Lewis and Ronni Williams each added a squad-best six rebounds.\nMississippi State (19-13) was led by 14 points from Kendra Grant and a game-high nine rebounds by Breanna Richardson.\nFlorida advances to face fourth-seeded Kentucky (22-7) at 1:30 p.m. Friday.\nLSU 78, Alabama 65\nDanielle Ballard and Shanece McKinney combined for 36 points and 17 rebounds Thursday to lead 10th-seeded LSU past seventh-seeded Alabama.\nLSU (19-11), which led by as many as 25 points in the game, placed four players in double-figure scoring, led by 18 apiece from Ballard and McKinney. Jeanne Kenny added 16 points, while Theresa Plaisance had a game-high 12 rebounds to complement 12 points.\nLSU shot 50.8 percent (32-of-63) from the field in the game, while Alabama was limited to 35.4 percent (23-of-65) shooting from the floor. The teams were even on the glass with 37 rebounds apiece.\nAlabama (14-16) was led by a game-high 27 points from Shafontaye Myers and 18 from Daisha Simmons.\nAuburn 70, Ole Miss 54\nTra’cee Tanner scored 17 points, Tyrese Tanner added 16 and sixth-seeded Auburn opened up a close game Thursday to defeat 14th-seeded Ole Miss, 70-54, on the second day of the 2014 Southeastern Conference Women’s Basketball Tournament at the Arena at Gwinnett Center.\nAuburn (17-13), which avenged an overtime loss to Ole Miss that took place in the last regular-season game, placed three players in double figures, as Hasina Muhammad added 11 points. Tyrese Tanner also brought down a game-high 12 rebounds.\nThe Tigers shot just 37.1 percent from the field (23-of-62), but were masterful from the free-throw line, connecting on 81.5 percent (22-of-27) from the charity stripe. Ole Miss was limited to 28.1 percent (16-of-57) shooting from the floor.\nOle Miss (12-20) was led by a game-high 23 points from Valencia McFarland, and a team-high seven rebounds by Danielle McCray.\nAuburn advances to play third-seeded Texas A&M (23-7) at 7:30 p.m.Friday in a game that will be televised by SportSouth."} -{"text": "60s Style Divorce\nMarriage is a noose.\n—Miguel de Cervantes, Don Quixote de la Mancha\nAcrimonious divorce may be making a comeback thanks to the actions of enlightened state legislatures! This does not refer to the process of splitting a finite number of children and a finite number of dollars between two parties, a process that has always had the potential to be acrimonious. It refers to the simple act of ending the marriage. And that’s great news for the lawyers, the private investigators and the tabloids, all of which made big bucks out of the unhappiness of unhappily married couples when acrimonious divorce was the rule. The more prominent the divorcing pair, the bigger the bucks. It was a win win for all but the principals.\nUntil 1969, most state legislatures decreed that unhappily married couples should not be rid of one another until periods of time varying from a few months to more than one year had elapsed. In addition to imposing long waiting periods, in days gone by the person seeking the divorce was forced to make specific allegations about the misconduct of the other spouse, allegations that were often salacious, even more often fictional and in many states, absolutely essential if the divorce was to be granted. In those states the proof could be provided by a private investigator equipped with a camera and the ability to follow a wandering spouse into the confines of a hotel room and a non-spouse’s arms.\nUnfortunately for those profiting from the divorce business, the legal system slowly acquiesced to demands that it reform, recognizing the absurdity of forcing unhappy couples to make up reasons for bringing their marriages to an end. People thought reform made great good sense and what became known as no-fault divorces became the law of the land.\nThe first state to adopt no fault divorce was California under Ronald Reagan in 1969. The last state to adopt this common sense approach to marital discord was New York in 2010. Lengthy waiting periods and the need to fabricate reasons for the divorce became vestiges of a bygone era. If it all seemed too good to be true, it may prove to have been.\nNo-fault divorce was not intended to lessen the importance of marriage nor its beneficial effects. During the 2012 presidential campaign Rick Santorum explained the virtue of marriage at a campaign rally in Iowa. Addressing the crowd he said: “What two things, that if you do, will guarantee that you will not be in poverty in America? Number one, graduate from high school. Number two, get married. Before you have children. If you do those two things, you will be successful economically.” Although not articulated in that particular speech, it follows that to fully enjoy the prosperity that accompanies marriage, people should stay married and the best way to insure that happens is to make it harder to get divorced. And many states are now considering how to do that. Oklahoma is one of the leaders in that movement.\nOklahomans know the importance of marriage as demonstrated by the fact that, according to the Pew Research Organization, 10% of all ever-married adults in that state have had at least three spouses. That is twice the national average. Recognizing that, and because Oklahoma has the second highest divorce rate of any state in the country, (you can’t have had “at least three spouses” without having had at least two divorces) a state representative introduced a bill in early 2014 that would impose a six-month waiting period for most divorces. Another bill was introduced that would eliminate incompatibility as a ground for divorce. Although those two bills have not advanced, a third bill introduced a 90-day “cooling down period” following the filing of a divorce petition. That bill has passed the Senate but has not yet been considered in the House. Oklahoma is also considering extending the time between filing for divorce and getting a decree to six months. In Kansas a legislator has introduced a bill that would remove incompatibility as a ground for divorce. If incompatibility is no longer a ground for divorce, divorcing couples can once again come up with creative reasons for splitting up. In 2011 Arizona enacted a law that enables either divorcing spouse to extend the process by four months. In 2013 three North Carolina state senators introduced a bill they called the “Healthy Marriage Act” that would replace the existing one year waiting period from the time a proceeding is begun until a divorce is granted, to two years following the date a spouse give the other spouse written notice, duly notarized, that he or she intends to file for divorce at the end of the two year period. That has not yet been enacted.\nToday a steadily increasing number of people are cohabiting rather than marrying. According to the National Health Statistic Report in 1995 39% of women in the United States between the ages of 15-44 entered into marriage as their first union. In the 2006-2010 period that percentage decreased to 23%. Those cohabiting as their first unions went from 34% in 1995 to 48% in the later period. Thanks to the efforts of legislatures in states like Oklahoma and Kansas, these numbers are sure to increase. One can’t help but wonder if those trying to make it more difficult for unhappily married couples to get divorced know what they are doing. The answer is, probably not.\nThis work is licensed under a Creative Commons Attribution-Share Alike 3.0 License."} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/admin_gateway/deployment_replica_event_test.go. Lines: 1401.\n\npackage admingateway\n\nimport (\n\t\"context\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/database\"\n\tagpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/admin_gateway\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\tresourcename \"github.com/fw-ai/fireworks/go/resource_name\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"google.golang.org/protobuf/types/known/durationpb\"\n\t\"google.golang.org/protobuf/types/known/timestamppb\"\n)\n\nfunc createTestDeploymentReplicaEvent(t *testing.T, s *server, accountId, deploymentId, eventId string, eventType gpb.DeploymentReplicaEvent_Type, status gpb.DeploymentReplicaEvent_Status, duration time.Duration) *database.DeploymentReplicaEvent {\n\tevent := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(accountId, deploymentId, eventId),\n\t\tType: eventType,\n\t\tStatus: status,\n\t\tDuration: duration.Nanoseconds(),\n\t\tStartTime: s.now().Add(-duration),\n\t\tEndTime: s.now(),\n\t\tPlacement: &database.Placement{\n\t\t\tRegion: gpb.Region_US_IOWA_1,\n\t\t},\n\t\tInitialReplicaState: &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\t\tDesired: 1,\n\t\t\tCurrent: 1,\n\t\t\tMin: 1,\n\t\t},\n\t\tTargetReplicaState: &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\t\tDesired: 2,\n\t\t\tCurrent: 2,\n\t\t\tMin: 1,\n\t\t},\n\t}\n\tresult := s.DB().Create(event)\n\trequire.NoError(t, result.Error)\n\treturn event\n}\n\nfunc createTestDeploymentReplicaEventWithRequested(t *testing.T, s *server, accountID, deploymentID, eventID string, eventType gpb.DeploymentReplicaEvent_Type, status gpb.DeploymentReplicaEvent_Status, duration time.Duration, requested int32) *database.DeploymentReplicaEvent {\n\tevent := createTestDeploymentReplicaEvent(t, s, accountID, deploymentID, eventID, eventType, status, duration)\n\tevent.InitialReplicaState = &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\tDesired: 0,\n\t\tCurrent: 0,\n\t\tMin: 0,\n\t}\n\tevent.TargetReplicaState = &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\tDesired: requested,\n\t\tCurrent: requested,\n\t\tMin: 0,\n\t}\n\trequire.NoError(t, s.DB().Save(event).Error)\n\treturn event\n}\n\nfunc createTestDeploymentReplicaEventProgress(t *testing.T, s *server, accountID, deploymentID, eventID string, observedTime time.Time, elapsed time.Duration, requested, ready int32) {\n\tcreateTestDeploymentReplicaEventProgressWithStats(t, s, accountID, deploymentID, eventID, observedTime, elapsed, requested, ready, 0, 0, 0, ready)\n}\n\nfunc createTestDeploymentReplicaEventProgressWithStats(t *testing.T, s *server, accountID, deploymentID, eventID string, observedTime time.Time, elapsed time.Duration, requested, ready, pendingScheduling, downloadingModel, initializing, readyStage int32) {\n\tprogress := &database.DeploymentReplicaEventProgress{\n\t\tDeploymentReplicaEventProgressName: *resourcename.NewDeploymentReplicaEventProgressName(accountID, deploymentID, eventID, observedTime.Format(\"20060102150405\")),\n\t\tObservedTime: observedTime,\n\t\tElapsedDuration: elapsed.Nanoseconds(),\n\t\tProgress: \"ScaleUp\",\n\t\tScaleUp: &gpb.DeploymentReplicaEventProgress_ScaleUpEventProgress{\n\t\t\tRequestedReplicaCount: requested,\n\t\t\tReadyReplicaCount: ready,\n\t\t\tReplicaStats: &gpb.ReplicaStats{\n\t\t\t\tPendingSchedulingReplicaCount: pendingScheduling,\n\t\t\t\tDownloadingModelReplicaCount: downloadingModel,\n\t\t\t\tInitializingReplicaCount: initializing,\n\t\t\t\tReadyReplicaCount: readyStage,\n\t\t\t},\n\t\t},\n\t}\n\trequire.NoError(t, s.DB().Create(progress).Error)\n}\n\nfunc TestListDeploymentReplicaEvents_Success(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create test events\n\tevent1 := createTestDeploymentReplicaEvent(t, s, \"test-account\", \"deployment-1\", \"event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 30*time.Second)\n\tevent2 := createTestDeploymentReplicaEvent(t, s, \"test-account\", \"deployment-1\", \"event-2\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_DOWN, gpb.DeploymentReplicaEvent_FINISHED, 60*time.Second)\n\tevent3 := createTestDeploymentReplicaEvent(t, s, \"test-account\", \"deployment-2\", \"event-3\",\n\t\tgpb.DeploymentReplicaEvent_MANUAL_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 120*time.Second)\n\n\t// List all events\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{})\n\trequire.NoError(t, err)\n\tassert.GreaterOrEqual(t, len(resp.DeploymentReplicaEvents), 3)\n\tassert.GreaterOrEqual(t, resp.TotalSize, int32(3))\n\n\t// Verify events are returned\n\teventNames := make([]string, len(resp.DeploymentReplicaEvents))\n\tfor i, e := range resp.DeploymentReplicaEvents {\n\t\teventNames[i] = e.Name\n\t}\n\tassert.Contains(t, eventNames, event1."} -{"text": "I cannot teleport as Zeus. After initially downloading the update and purchasing Zeus I tried him and found the teleport difficult.\nIt only comes out 1/10 times. I thought I as doing something wrong until I tried another game of PSBR at my friends house and it would come out instantly. I tried it with both my controllers and his and it worked every time.\nI have deleted the patch and dlc twice now and still cant teleport. He just explodes on himself or resets the animation when i try.\nAny suggestions or anyone else heard about this?\ni think jak took a pretty big hit in this patch.Ya i dont want to question how thorough your testing was before releasing the patched characters but as a jak main he definitly took some nerfs were he should of taken buffs. If you look at all of ratchets triangle buttons and then jaks,ratchets are all consitently better than jak in terms of AP gain, speed, (less start up time) tech, and feasability to hit in battle. Kat definitly needs more nerfs, her easy combos can dominate, and some moves aswell (mainly down circle). But yeah all in all after this patch isaac, ratchet, radec, and drake all still build meter andare better eqquipped as gunners in comparison to jak. Right now just about all he has going for him is his air mobility. I urge you to reconsider parts of the patch and go back and fix up jak a little.\nI know I've already made a topic of this, but I want to post it here as well, and see if aanyone else has that problem.\nI made a video about it, illustrating my issues with Fat Princess, take a look:\nHer Down + Square attack isn't working as it's supposed to do. Is this a bug or can it be fixed?\nyou should add crash bandicoot or spyro or another charcter from the parappa series like master onion or old snake do not seriously add another god of war charcter\nNerf kratos atk spd/recovery - with his range, its impossible to approach him with the slow characters, let alone counter with their slow attack animations.\nSly's electric ball is unpunishable with the same characters that have the ^above^ issues vs kratos. Same issue with his counter. Either slow the recovery or lessen the active frames or just simpy speed up everyone else.. most of the cast is too slow to approach AND attack before he can run away or activate another counter.\nSpyro: this game and Jak and Daxter are probably the best of the \"Zelda\"/adventure type of game on PS.\nCrash: everyone said it for a reason, why wouldn't u include him.\nSyphon Filter: Gabe Logan. Of all the gunslingers in PS, why you didn't include him IDK (unless its licensing issues)\nSolid Snake as well obviously (except they gave him to nintendo...so too late, I guess),\nGran Turismo driver: This game is supposed to be unlikely matchups for fun/comical/epic clash of legacies.\nLara Croft, duh! (marketing 101: sex sells. Instead, we have; Nariko - angry and aged looking near 34, Fat Princess - fat but amuzing and cute pre-cake, Kat - gibberish speaking teen, but a good addition IMO because she is a pretty female heroine and was also designed for an international welcome, hence \"languageless,\" of royalty but serves the people, shrouded in mystery and unknown powers.\nFinal Fantasy: Cloud because 7 is the most popular, or Squall because he has the arguably the most popular weapon - possibly second only to laser swords, but maybe not. Tifa: it's rare for a character to reach legendary status akin to Chun-Li.\nSilent Hill, Parasite Eve, Resident Evil: many reasons for any of these series' characters to be added, even if from just one of them. FIRST is marketing 101: plenty of excellent female characters. Second, characters from the suspense genre are completely absent. Third, they made a movie about Silent Hill AND Resident Evil. My personal reason: Jill was great in her original form, and they have ruined her by making a long, blonde, ponytail-haired version of her in a tight one-piece battlesuit.\nJust a little note to the people who think Kratos and Sly have been nerfed enough, there's this saying from one of the most popular and fastest growing contemporary games: \"nerf Irelia\"\nIrelia and Alistar have gone through numerous, numerous, NUMEROUS nerfs back to back nerfs before they were finally considered balanced. If you think you have nerfed them enough, maybe you haven't."} -{"text": "People often ask me how I manage to remain so well informed. (Full disclosure: one person did ask me this some time ago.) This is my secret. Firstly, when reading the newspaper I skip over all of the unimportant stuff like Syria, Lebanon, and the Middle East, etc., in search of those items that are of real importance to us.\nSome examples below:\nWhen watching TV, I do likewise and with the exception of America’s Got No Talent, I watch very educational programs such as Through the Wormhole narrated by Morgan Freeman. Whenever I invite my resident TV critic to watch this show with me, the usual response is to slam the door closed and demand that I turn the volume down so she doesn’t hear it in the rest of the house. I will offer some examples of what I have learned from these shows as well.\nWhy do I skip all the fascinating news about the battles in the Mideast? Talk to any police officer and they will tell you that the most difficult call they usually receive is one involving a domestic dispute. They walk into a situation not knowing what to expect, unable to determine who was at fault, and try to resolve the situation, usually without success.\nWe as a nation attempt to do the same thing.We march into a country that we know little about and try to unscramble their differences usually based on how the various factions choose to worship their various gods. Again, these efforts are usually unsuccessful and cost many American lives. I truly believe we have more problems at home to address.\nWhat do I find so fascinating in the newspapers that others seem to miss? Today I read an article that claims that people who are suffering from financial stress tend to lose the equivalent of 13 IQ points. This was the result of a scientific study. Of course financial stress leads to headaches as well.\nOn the same page is a warning from Tylenol advising people to stop taking too much of their popular drug because it may cause sudden liver failure. Oh well!\nOld retired football players, who made gazillions of dollars while they were playing, are now demanding extra compensation for the injuries they received in the NFL. Like they didn’t know that they might get hurt playing football. Come on!\nThere was also an article on memory loss related to age, but I forget what it said.\nNow, what have I learned by watching TV? Firstly Morgan Freeman had a show demonstrating how it might be possible for hackers to invade our minds eventually and determine what we are thinking at any given point. The theory is that the brain is primarily an electronic device with millions of little signals being sent from one place to the other.\nIf someone is able to tap into these signals, heaven knows what they might be able to determine. Of course my wife has been doing this for years. Another theory is that with all of the hundreds of social media links available, that we might someday create a master global brain, which is a combination of all of these, and it will no longer be necessary for us to think on our own, because it has already been done for us by someone else.\nTHIS JUST IN — Researchers say that they were able to use one person’s brain signals to control the motions of someone else. The first experiment in brain-to-brain interfaces involved using rat brains. Knowing that we humans are somewhat similar to rats (as a matter of fact someone called me a rat at our last council meeting) this becomes really meaningful. See if for yourself at www.gadgetynews.com/cyborg-rat-ratbrain-controlled-robot-retains-rodent-personality/\nStay tuned for more at 11 p.m.\nNow, do you see what I mean? Would you want to go through life without knowing some of these things? Not me. (The Morgan Freeman shows are available online. Google it.) In my last article I made reference to a letter given to Gov. Scott complaining about the horribly poor service given at the license renewal office that I went to. I did receive a response from one of his staff members who has promised to look into the issue.\nI am now awaiting more information.\nErnie may be reached at email@example.com"} -{"text": "Name())\n\tassert.Contains(t, eventNames, event2.Name())\n\tassert.Contains(t, eventNames, event3.Name())\n}\n\nfunc TestListDeploymentReplicaEvents_WithFilter(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create test events with different types\n\tcreateTestDeploymentReplicaEvent(t, s, \"filter-account\", \"deployment-1\", \"filter-event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 30*time.Second)\n\treservedEvent := createTestDeploymentReplicaEvent(t, s, \"filter-account\", \"deployment-1\", \"filter-event-2\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_DOWN, gpb.DeploymentReplicaEvent_FINISHED, 60*time.Second)\n\treservedEvent.Reserved = true\n\trequire.NoError(t, s.DB().Save(reservedEvent).Error)\n\tcreateTestDeploymentReplicaEvent(t, s, \"filter-account\", \"deployment-1\", \"filter-event-3\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 90*time.Second)\n\n\t// Filter by type\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `type = \"AUTOMATIC_SCALE_UP\" AND account_id = \"filter-account\"`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 2)\n\tfor _, e := range resp.DeploymentReplicaEvents {\n\t\tassert.Equal(t, gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, e.Type)\n\t}\n\n\t// Filter by status\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `status = \"ONGOING\" AND account_id = \"filter-account\"`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 1)\n\tassert.Equal(t, gpb.DeploymentReplicaEvent_ONGOING, resp.DeploymentReplicaEvents[0].Status)\n\n\t// Filter by reserved flag\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `reserved = true AND account_id = \"filter-account\"`,\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.DeploymentReplicaEvents, 1)\n\tassert.True(t, resp.DeploymentReplicaEvents[0].Reserved)\n\tassert.Equal(t, reservedEvent.Name(), resp.DeploymentReplicaEvents[0].Name)\n\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `reserved = false AND account_id = \"filter-account\"`,\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.DeploymentReplicaEvents, 2)\n\tfor _, event := range resp.DeploymentReplicaEvents {\n\t\tassert.False(t, event.Reserved)\n\t}\n}\n\nfunc TestListDeploymentReplicaEvents_FilterByDuration(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create events with different durations\n\tcreateTestDeploymentReplicaEvent(t, s, \"duration-filter-account\", \"deployment-1\", \"duration-event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 30*time.Second)\n\tcreateTestDeploymentReplicaEvent(t, s, \"duration-filter-account\", \"deployment-1\", \"duration-event-2\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 2*time.Minute)\n\tcreateTestDeploymentReplicaEvent(t, s, \"duration-filter-account\", \"deployment-1\", \"duration-event-3\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 5*time.Minute)\n\n\t// Filter by duration greater than 1 minute (60 billion nanoseconds)\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"duration-filter-account\" AND duration > 60000000000`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 2)\n\tfor _, e := range resp.DeploymentReplicaEvents {\n\t\tassert.Greater(t, e.Duration.AsDuration(), time.Minute)\n\t}\n\n\t// Filter by duration less than 1 minute\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"duration-filter-account\" AND duration < 60000000000`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 1)\n\tassert.Less(t, resp.DeploymentReplicaEvents[0].Duration.AsDuration(), time.Minute)\n\n\t// Filter by duration range (between 1 and 3 minutes)\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"duration-filter-account\" AND duration >= 60000000000 AND duration <= 180000000000`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 1)\n\tassert.Equal(t, 2*time.Minute, resp.DeploymentReplicaEvents[0].Duration.AsDuration())\n}\n\nfunc TestListDeploymentReplicaEvents_FilterByStartAndEndTime(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create events with specific timestamps\n\t// time1: 2020-01-01 12:00:00 UTC\n\t// time2: 2022-06-15 12:00:00 UTC\n\t// time3: 2024-01-01 12:00:00 UTC\n\n\ttime1 := time.Date(2020, 1, 1, 12, 0, 0, 0, time.UTC)\n\ttime2 := time.Date(2022, 6, 15, 12, 0, 0, 0, time.UTC)\n\ttime3 := time.Date(2024, 1, 1, 12, 0, 0, 0, time.UTC)\n\n\tevent1 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplica"} -{"text": "Julia Manning: Vaccinating for the greater good\nJulia Manning, Director of 2020health.org, says that discrediting new vaccines such as the MMR risks the lives of more than those who don't take them.\nLast week, 2020health.org held a seminar on the crucial role that modern vaccines have to play in the delivery of Public Health in the UK. We heard a story from a Consultant Paediatrician working in South East London about two children who had previously received kidney transplants at the age of two. They had had their first MMR jab but not the booster which is contra-indicated following organ transplants. The children came into contact with the measles virus and caught the disease. Both of them suffered permanent brain damage.\nThis week, the General Medical Council hearing begins into serious professional misconduct by Dr Andrew Wakefield and two other doctors who published their damaging theory of a link between the MMR vaccination jab and autism in 1998. One of the accusations is that Dr Wakefield did not declare to his hospital Ethics Committee that he was getting money from the Legal Aid Board for advising the parents of autistic children who wanted to pursue compensation in the courts. Only 3 years before in 1995, the uptake rate of the vaccine had reached 95%, the target rate to achieve ‘herd immunity’. This is where the immunity of a sufficient number of individuals in a population is such that infection of one individual will not result in an epidemic. Every parent who declines the MMR jab increases the risk not only to their child of serious disease, but also the risk to many others. It is precisely this herd immunity that is vital to protect people who are immunocompromised, which includes all organ transplant recipients.\nDespite both numerous publications since finding no link between MMR and autism, and the fact that in 2004 the 10 co-authors of the 1998 paper issued a retraction, the take–up has still not recovered. Nearly 10 years after publication of the paper, the vaccination rate is still barely 50% in some London boroughs, and the first six months of last year saw the biggest outbreak of measles in 20 years. The consequences of Dr Wakefield’s unfounded ideas are devastating.\nThere are two facts we need to remember when we think about immunisations. Firstly, we must not forget history - the suffering, disability and in many cases death that arose before the introduction of universal vaccination for diseases such as polio, measles, smallpox and whooping cough. It is all too easy to forget how much good health most of us enjoy as a result of those childhood jabs. We need as well to be open to new vaccines that will protect future generations from disease. New vaccines emerging such as those for hepatitis B, cervical cancer and chicken pox, not to mention the search for a vaccine against HIV, could prevent much devastating illness amongst significant numbers of the population.\nAnd not just the UK population. As secondly we must remember the global benefits to developing countries of the vaccines that have been developed in the West. Not only do vaccination programmes dramatically improve mortality rates, but the consequential improvement in people’s educational attainment, average income and productivity through disease avoidance is measurable. The current work on vaccinations against Malaria and HIV could transform the prospects of many African countries.\nDespite the evidence, there will still be campaigners outside the GMC in the coming weeks who claim Dr Wakefield is a ‘hero’. It behoves us all to remember that there is no such thing as risk-free medicine, and it is good science to try and minimise those risks. However, it is patently true that the benefits of vaccination vastly outweigh the risks. 1000 mothers still bury their children who have died from measles every day in the developing world. This is an unnecessary tragedy, and we should not make matters worse by discrediting life-saving Public Health measures."} -{"text": "If I were ever to design a personal coat of arms (you know, the kind that knights of old had on their shields) I think it would have to have a hummingbird in flight on a blue and pink checkerboard field with a KitchenAid mixer on the left and a Bernina sewing machine on the right. That would encompass my favorite colors, my favorite activities, and my mascot.\nI love hummingbirds. They are breathtaking little miracles that quicken my heart whenever I see one, hovering over a flower or zooming across the yard. But that is not the only reason I'd choose one as my personal mascot. I see a bit of the hummingbird in me. Not that I toil from sun up to sun down to take in enough calories to sustain my meager body weight. (that, cough cough, is not an issue for me)\nI am like a hummingbird in that I flitter. I flit from project to project, staying with one only long enough to generate a substantial amount of mess, then abandoning it as I find something new to try on a blog, in a catalog, in a store, or on Pinterest. I love the giddy, fizzy feeling of dreaming up a new project, planning for it, purchasing supplies, all the while envisioning how wonderful the finished project will be. I can just picture how smoothly and neatly it will all come together. Then when the inevitable snag or hiccup arrises, I'm irritated (sometimes to the point of wadding it up and throwing it across the room) and quickly move the project from the active work space over to the tottering \"to finish up later\" pile, replacing it with whatever seems the most pressing or interesting at the moment.\nFor the last 3 years I've made it my New Year's goal to finish up projects before starting anything new. Specifically I have vowed to finish up the 4 quilt tops that lie in folded and forgotten ignominy beneath my work table in various states of \"so close but not quite done.\" And how have those goals worked out for me? I think the fact that I can transfer the same goals onto the next year's Goals page in my journal without changing a word shows that something's not working.\nPerhaps I've just taken on tasks that are too big and my interest wanes before I complete the project. More likely, though, the problem lies in my attention span. I can only focus on one thing for so long before I'm distracted (Squirrel!) by something else (Oooooh, shiny!) and want to turn my attention (what's for lunch?) to the next thing.\nHence the hummingbird.\nThe other thing I have in common with hummingbirds is my love for sugar. I know it's not awesome for me and usually I try to avoid it. But every once in a while I have to give in to the craving and bake something sweet. And hopefully I'm not distracted while I'm (there's a new Castle on this week?) reading the recipe so I don't forget something crucial. Like flour. Or salt. Or sugar. Not saying that's ever happened, just saying it's a possibility. (And those of you who can think of examples don't need to share them in the comments.)\nMolasses cookies are always welcome in our house and these received an especially enthusiastic welcome. I'm sure the carb-deprivation contributed to the rave reviews, but even those friends who are still eating carbs enjoyed them and gave them big thumbs up. Soft, not too spicy, and they stayed fresh in the cookie jar for several days. I think this recipe is a keeper.\nMolasses Ginger Crinkles\n- adapted from America's Best Recipes\nmakes about 4 dozen\n1 cup sugar (I used organic cane sugar)\n1/2 cup butter\n3 Tbsp coconut oil\n1/4 cup molasses\n1 cup all-purpose flour\n1 cup white whole wheat flour\n2 tsp baking soda\n1/2 tsp salt\n1 tsp ground ginger\n1 tsp ground cinnamon\n1- Preheat oven to 350 deg. F.\n2- In a medium bowl, combine the sugar, butter, coconut oil, and egg. Beat well with an electric mixer at medium speed. Add the molasses and beat well.\n3- In a small bowl whisk together the flours, baking soda, salt, ginger, and cinnamon.\n4- Add the flour mixture to the sugar mixture and stir to combine.\n5- Shape dough into 1-inch balls. Place on ungreased cookie sheets, about 3 inches apart. The cookies will spread as they bake, so leave space.\n6- Bake at 350 deg. for 8-10 minutes, till the centers are just set. Cool the cookies on wire racks."} -{"text": "EventName(\"time-filter-account\", \"deployment-1\", \"time-event-1\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (30 * time.Second).Nanoseconds(),\n\t\tStartTime: time1,\n\t\tEndTime: time1.Add(30 * time.Second),\n\t}\n\trequire.NoError(t, s.DB().Create(event1).Error)\n\n\tevent2 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(\"time-filter-account\", \"deployment-1\", \"time-event-2\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (60 * time.Second).Nanoseconds(),\n\t\tStartTime: time2,\n\t\tEndTime: time2.Add(60 * time.Second),\n\t}\n\trequire.NoError(t, s.DB().Create(event2).Error)\n\n\tevent3 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(\"time-filter-account\", \"deployment-1\", \"time-event-3\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (90 * time.Second).Nanoseconds(),\n\t\tStartTime: time3,\n\t\tEndTime: time3.Add(90 * time.Second),\n\t}\n\trequire.NoError(t, s.DB().Create(event3).Error)\n\n\t// Filter by start_time - all events have start_time in the past\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"time-filter-account\" AND start_time < now()`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 3, \"Should find 3 events with start_time < now()\")\n\n\t// Filter by end_time - all events have end_time in the past\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"time-filter-account\" AND end_time < now()`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 3, \"Should find 3 events with end_time < now()\")\n\n\t// Combined filter with start_time and end_time\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"time-filter-account\" AND start_time < now() AND end_time < now()`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 3, \"Should find 3 events with both time filters\")\n}\n\n// TestListDeploymentReplicaEvents_FilterByExplicitTimestamp tests timestamp() filtering with explicit RFC3339 timestamps.\nfunc TestListDeploymentReplicaEvents_FilterByExplicitTimestamp(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create events with specific timestamps\n\t// time1: 2020-01-01 12:00:00 UTC\n\t// time2: 2022-06-15 12:00:00 UTC\n\t// time3: 2024-01-01 12:00:00 UTC\n\ttime1 := time.Date(2020, 1, 1, 12, 0, 0, 0, time.UTC)\n\ttime2 := time.Date(2022, 6, 15, 12, 0, 0, 0, time.UTC)\n\ttime3 := time.Date(2024, 1, 1, 12, 0, 0, 0, time.UTC)\n\n\tevent1 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(\"explicit-time-account\", \"deployment-1\", \"time-event-1\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (30 * time.Second).Nanoseconds(),\n\t\tStartTime: time1,\n\t\tEndTime: time1.Add(30 * time.Second),\n\t}\n\trequire.NoError(t, s.DB().Create(event1).Error)\n\n\tevent2 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(\"explicit-time-account\", \"deployment-1\", \"time-event-2\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (60 * time.Second).Nanoseconds(),\n\t\tStartTime: time2,\n\t\tEndTime: time2.Add(60 * time.Second),\n\t}\n\trequire.NoError(t, s.DB().Create(event2).Error)\n\n\tevent3 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(\"explicit-time-account\", \"deployment-1\", \"time-event-3\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (90 * time.Second).Nanoseconds(),\n\t\tStartTime: time3,\n\t\tEndTime: time3.Add(90 * time.Second),\n\t}\n\trequire.NoError(t, s.DB().Create(event3).Error)\n\n\t// Filter by start_time greater than 2021-01-01T00:00:00Z - should get 2 events (time2 and time3)\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"explicit-time-account\" AND sta"} -{"text": "Results 1 to 3 of 3\nApril 8th, 2011, 11:25 AM #1\n- Join Date\n- Mar 2011\nFirst time at CTI, Mar 29-Apr 5 - Review\nThe hotel grounds are maintained beautifully. The staff move at a Jamaican pace (i.e. get on island time, mon!) but are friendly and will make sure you have whatever you need and want.\nBe prepared for the 2-hour ride from Montego Bay. We had read a lot of reviews, so we were. It would be a rather nasty surprise if you weren't ready for it.\nArrival at Montego Bay, customs, a couple of beers at the lounge, and the bus ride were all uneventful. Check-in was a breeze (with cool face towels and drinks quickly in hand), and our room was ready when we arrived at 2:45 or 3:00.\nThe room was exactly what we expected. The bed was on the hard side, but comfortable. Note: in the Deluxe Garden Room, there is only a standing shower, no bathtub. And if you're a light sleeper, you might want earplugs. There are creatures we named the Jamaican Nocturnal Screaming Frogs. They're LOUD, and PERSISTENT, lol! No noticable road noise at all.\nThe restaurants were all great. Service was very slow in 8 Rivers, but the food was excellent. I'm embarrassed to say I gnawed the bones of my lamb, it was so good. We ate at Bayside twice. I'm not a hugely romantic person, but the view and atmosphere, right there over the water, was just amazing. The food was very good, and the courses came much more quickly here. I think we only at at Veranda once. It was fine. Not particularly memorable. We ate at the breakfast buffet at Patio every morning, and it was good. You can always get made-to-order eggs or omelettes if you don't like what the buffet has to offer.\nWe spent most of our days on Tower Isle. We LOVED it! We would just sort of lay around and half-doze or sunbathe until lunchtime. After lunch, things tended to get a little busier and more social. They set up chafing dishes every day and brought lunch over. Lunch was a little hit-or-miss, always edible, but not always spectacular. The boyfriend was a big fan of jerk burgers from the Poolside Grill, so we went back over there a couple of times for lunch. I enjoyed the jerk chicken sandwiches and the calamari I had there (also, if you get a craving for 3am french fries, THAT is the place to go!). Many thanks to our bartenders on the island (Pasanga, Terry, Kimoni, Roberto...and I know I'm leaving so many out!), and MANY MANY thanks to Captain Jack Sparrow (aka Gary) for ferrying us tirelessly between the resort's dock and the island, and for singing to us and just generally adding to the fun!\nWe met some WONDERFUL new friends on Tower Isle!!! Mike and Terra, Jodi and Rob, Michelle and Tommy, Becky and Greg, Sara and Paul, we already miss you! It was just a great vibe, and great people made it soooo much fun. Some days were quieter on the island, some rowdier (with shots and such), but it was always fun. One group (of what we thought of as \"newbies\" to the island) got completely out of hand and ruined the fun one afternoon (just too drunk and stupid - not worth relating details), but I don't hold one dumb episode against the resort. There are irresponsible people everywhere.\nWe hit the spa for massages one morning and were glad we did so. The 80-min couples massages were great. Though they didn't offer deep tissue (I like mine a little rougher than Swedish) with the couples massage, they were still enjoyable.\nWe didn't do many activities; we're not fans of schedules or timelines on vacation. From other guests and our one experience (catamaran cruise cancelled, then rescheduled from another resort so we would have to get on a bus, which we didn't want to do), we know the watersports/excursions are a little hit or miss, depending on weather and perhaps other factors. Just get on island time, mon, know that things can change, be a bit flexible, and you'll be fine. It's Irie!\nThe only evening entertainment we went to was the Monday night Barefoot Beach Party. The dancers, acrobats, and fire limbo guy were great. The buffet meal that was set up was very good, too, and it was nice to eat with our toes in the sand. Drink service was a bit slow that night, but again, it's irie, just kick back, enjoy the entertainment, and the drinks will soon come.\nOne note about the drinks: I've seen many reviews on all-inclusives that state the drinks were a bit weak or watered down. They are NOT weak here. I actually had to order weak drinks much of the time, as we got our first drinks on the island at 10:00 or 10:30, and I could NOT make it through the day on the full-strength versions (and I'm a drinker). And you do NOT have to do any Bob Marleys! I don't care what people say, those shots *are* pretty, but they taste like some kind of poisonous, alcoholic cough syrup - BLECH!\nWe had an excellent vacation and are very glad we ended up at CTI! (We booked the secret rendezvous, so we could have ended up at any of the four.) I recommend the resort, and we hope to go back for another visit sometime.\nApril 9th, 2011, 11:09 AM #2\n- Join Date\n- Jan 2011\nNice review....good times had by all!!\nLove the swim suit photo!!\nDan and Sue\nApril 10th, 2011, 07:28 PM #3\n- Join Date\n- Mar 2011\nGood to \"see\" you here, Sue! Yes, definitely a good time had by all. I was pricing trips again already on Friday, lol. I can't afford to go any time soon, and Q's deployment stuff is all up in the air for a while, so who knows when we'll get to go back. But dreaming is free."} -{"text": "Social and Cruise History: Sinking feeling: unease about Titanic II plan…\nI agree with Hazel Gaynor’s piece in the Irish Examiner. The “Titanic II” is just another media gimmick. No one in their right mind is going to sail across the Atlantic on some seven day recreation of a pre-World War I Disney-ride. Imagine being aboard an old style ship divided into classes dressed in uncomfortable turn of the last century clothes. It you look at the menus for the RMS Titanic they reflect the times. The macabre tragedy surrounding the RMS Titanic is similar to recreating the American space shuttle, Challenger, that exploded and killed all seven astronauts. Do you honestly want to spend a week on the “Challenger” or the old fashioned RMS Titanic? Talk about creepiness…\nCourtesy of the Irish Examiner:\nAre plans to recreate the 1912 voyage a homage to history, or just insensitive, asks Hazel Gaynor\nBy Hazel Gaynor\nEARLIER this year, Clive Palmer, Australian mining mogul and billionaire, held a glitzy press conference in New York to announce his plans to build Titanic II, the flagship of his shipping company, Blue Star Line.\nThe ship will be built in China and will set sail in 2016. Reaction was incredulity and ridicule — yet 40,000 people have still applied for tickets for the maiden voyage. Offers of $1m have reportedly been made for first-class cabins.\nBuilding Titanic II, which will recreate Titanic’s maiden voyage, is viewed as insensitive, courting disaster, and a mockery of the memory of those who died this month in 1912.\nPublic rooms are more like film sets. As for the accommodations, is anyone going to sleep in these narrow style bunk beds? Who would go Third Class – only a masochist!\nDave Fredericks, a descendant of a Titanic survivor from Southampton, is supporting a petition to block Titanic II.\n“When asked why he is building Titanic II, Clive Palmer arrogantly responds ‘because I can’. I say the question should not be ‘why he is building it?’, but, more, ‘should he be building it?’ And, respectfully and morally, the answer to that question must be no,” Fredericks says.\nMichael Molloy, from the Addergoole Titanic Society, is open-minded. “For April 2012, a local group of enthusiasts built a large scale model of Titanic and launched it on Loch Conn, so, actually, Lahardane labour built Titanic II in the memory of the Addergoole 14. “It would be very nostalgic, and fitting, if relatives of those on RMS Titanic were given the opportunity to travel as a group on one of the Titanic II voyages. There would be stories to tell then,” Molloy says.\nHelen Benziger, great granddaughter of Margaret ‘The Unsinkable Molly’ Brown, agrees. “I will be on the maiden voyage of Titanic II. I am hoping for the same cabin as my great grandmother. It would be amazing to finish the voyage for her,” Benziger says.\nThird Class dining room on the “new” Titanic…\nA Titanic II would be of huge interest, a fascinating opportunity to revisit history. “Passengers on, and visitors to, Titanic II will have a historical interest in the ship, in the same way as those who visit ground zero or the green fields of France,” says Michael Martin, who runs the Titanic trail tour in Cobh.\n“It is not disrespectful to do that and we don’t denigrate people for revisiting those places of historical tragedies. Titanic was an immense tragedy, but that doesn’t ring-fence it from being of historical interest.”\nHistorical interest aside, is it moral to build a replica of a ship that is synonymous with such awful tragedy?\n“Questions of morality were raised about the Balmoral as it recreated Titanic’s maiden voyage to mark the centenary,” says Martin.\n“For the relatives, it was very meaningful for them to recreate the journey. In terms of using the Titanic name, there is a naval tradition to use ships’ names on multiple occasions, despite sinkings and loss of life.”\nThat Titanic II will be built in China, and not in Belfast, like the original, has been a matter of debate.\nA spokesperson for Titanic Belfast says. “While there are many great reasons to be proud of our ship-building heritage, Titanic Belfast is utmost respectful and mindful of the loss of life on RMS Titanic. As the authentic home of Titanic, it would be natural to expect Titanic II to dock in Belfast. It would not be a case of the Titanic coming back, more so a near-replica of RMS Titanic being built to sail in its name. Titanic Belfast would naturally welcome its arrival into Belfast.”\nIt remains to be seen whether Palmer’s ambitious project will come to fruition. After all, he is a man who doesn’t have the best maritime track-record, with one of his luxury super-yachts, worth a reported $5.3m, almost sinking off Queensland’s Gold Coast last week.\nWhatever your own views on Titanic II, even die-hard enthusiasts should prepare to be underwhelmed. “Titanic would be a very small ship by today’s standards,” says Martin. “Some vessels which now come into Cobh harbour are three times the size.”\n*Hazel Gaynor’s Titanic novel, The Girl Who Came Home, is available on the Amazon Kindle store.\nFor more on Titanic II, CLICK HERE"} -{"text": "rt_time > timestamp(\"2021-01-01T00:00:00Z\")`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 2, \"Should find 2 events with start_time > 2021-01-01\")\n\n\t// Filter by start_time less than 2021-01-01 - should get 1 event: time1\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"explicit-time-account\" AND start_time < timestamp(\"2021-01-01T00:00:00Z\")`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 1, \"Should find 1 event with start_time < 2021-01-01\")\n\n\t// Filter by start_time range (between 2021-01-01 and 2023-01-01) - should get 1 event: time2\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"explicit-time-account\" AND start_time > timestamp(\"2021-01-01T00:00:00Z\") AND start_time < timestamp(\"2023-01-01T00:00:00Z\")`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 1, \"Should find 1 event with start_time between 2021 and 2023\")\n\n\t// Filter by end_time less than 2022-01-01 - should get 1 event: time1\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"explicit-time-account\" AND end_time < timestamp(\"2022-01-01T00:00:00Z\")`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 1, \"Should find 1 event with end_time < 2022-01-01\")\n\n\t// Combined filter with start_time and end_time\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"explicit-time-account\" AND start_time >= timestamp(\"2022-01-01T00:00:00Z\") AND end_time <= timestamp(\"2025-01-01T00:00:00Z\")`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 2, \"Should find 2 events within the time range\")\n}\n\nfunc TestListDeploymentReplicaEvents_WithPagination(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create multiple test events\n\tfor i := 0; i < 5; i++ {\n\t\tcreateTestDeploymentReplicaEvent(t, s, \"page-account\", \"page-deployment\", resourcename.GenerateID(\"page-event-\", 8),\n\t\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, time.Duration(i+1)*time.Minute)\n\t}\n\n\t// First page\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"page-account\"`,\n\t\tPageSize: 2,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 2)\n\tassert.NotEmpty(t, resp.NextPageToken)\n\tassert.Equal(t, int32(5), resp.TotalSize)\n\n\t// Second page\n\tresp2, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"page-account\"`,\n\t\tPageSize: 2,\n\t\tPageToken: resp.NextPageToken,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp2.DeploymentReplicaEvents, 2)\n\tassert.NotEmpty(t, resp2.NextPageToken)\n\n\t// Third page (should have 1 item)\n\tresp3, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"page-account\"`,\n\t\tPageSize: 2,\n\t\tPageToken: resp2.NextPageToken,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp3.DeploymentReplicaEvents, 1)\n\tassert.Empty(t, resp3.NextPageToken)\n}\n\nfunc TestListDeploymentReplicaEvents_WithOrderBy(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create events with different durations\n\tcreateTestDeploymentReplicaEvent(t, s, \"order-account\", \"order-deployment\", \"order-event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 100*time.Second)\n\tcreateTestDeploymentReplicaEvent(t, s, \"order-account\", \"order-deployment\", \"order-event-2\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 50*time.Second)\n\tcreateTestDeploymentReplicaEvent(t, s, \"order-account\", \"order-deployment\", \"order-event-3\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 200*time.Second)\n\n\t// Order by duration ascending\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"order-account\"`,\n\t\tOrderBy: \"duration\",\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.DeploymentReplicaEvents, 3)\n\tassert.LessOrEqual(t, resp.DeploymentReplicaEvents[0].Duration.AsDuration(), resp.DeploymentReplicaEvents[1].Duration.AsDuration())\n\tassert.LessOrEqual(t, resp.DeploymentReplicaEvents[1].Duration.AsDuration(), resp.DeploymentReplicaEvents[2].Duration.AsDuration())\n\n\t// Order by duration descending\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"order-account\"`,\n\t\tOrderBy: \"duration desc\",\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.DeploymentReplicaEvents, 3)\n\tassert.GreaterOrEqual(t, resp.DeploymentReplicaEvents[0].Duration.AsDuration(), resp"} -{"text": "- The Daily Caller - http://dailycaller.com -\nMow money, mow problems\nPosted By Ron Hart On 12:00 AM 04/21/2010 In Blog - Ron Hart | 4 Comments\nHARRISON, Tenn. — After spending a few days in Atlanta last week, it was nice to get back to Tennessee and the country for a while. Atlanta streets have so many bone-jarring pot holes that some have Starbucks in them. The “Pothole Posse,” a name the former mayor gave the team tasked with filling in some of these massive craters (some big enough to bass-fish in), must have saddled up and left town.\nAtlanta is the “City Too Busy to Hate,” which leaves it ample time to tax.\nCrime in some areas is so bad that, in a recent 5K race, the starter’s gun drew return fire and the finish line ribbon was crime scene tape.\nLife is simpler in the country. It mitigates big city life, where government continues to tell us how to live. Tennessee is called the Volunteer State because they cannot make you live there. Its government knows that and acts accordingly. Tennessee has no state income taxes, good solid Senators and few unions; therefore, it continues to attract businesses. Volkswagen is building a plant near my place there.\nTo keep one’s balance in life, it is important to spend time in the country. The good people there give you perspective and a ride if you need one. At the lake in Tennessee it is “The Season,” which means lawn mower racing season. When you see a sign like this, you have to attend.\nThe lawn mower races attract the type of folks you might imagine: men who use a highlighter when they read “Field and Stream” and can field dress a squirrel. I’m pretty sure many of these folks have been involved in a custody fight over a “Legends of NASCAR” commemorative plate collection.\nTwo modern miracles, the siphon hose and the beer cooler, were on display at this gathering of Americana. Before the advent of the beer cooler, the best way to chill your beverage was to leave it in the creek. I find comfort in being around men who can fix anything and take pride in that ability. These are folks who do not want to take from others for their sustenance; the only thing they want from government is to be left alone. Whatever our federal government does, they prefer that it be done to some other state, preferably Kentucky.\nIn fact, the only government program one might arguably call a success, the Tennessee Valley Authority, was spawned in Tennessee. In an aberrant and odd use of government, the TVA actually produces things Americans need: hydroelectric and nuclear power, fertilizer manufacturing, flood control, recreational lakes, and barge transportation routes. In an Obama-nation where federal power is exerted in legislation that, by the second page, treads on dubious constitutional grounds, the TVA seems overlooked as a government-owned, independent corporation with $11 billion in revenue and an operating income of about $2 billion in 2009.\nIf Obama does not shut it down for making an evil profit and providing 9 million customers with products they want at competitive prices, the TVA may be the only thing the Federal government has been involved in that actually helps us Americans. The good people of Tennessee were a big part of TVA’s success.\nBack to the lawn mower races because I know you want to know who won. In a field of contestants with names like Chester, DeWayne, Floyd, Larry and the like, one Dale Earnhardt distinguished himself in this epic contest. The imagination it took to install a gun rack on a lawn mower earned him style points with the judges.\nLittle is known of the origins of lawn mower racing, except that it has its roots in the notion that people in this country can do what they damn well please. This also explains the Tea Party movement, and why Tracy City, Tenn., just elected a dead person over an incumbent. Maybe it was to be sure the new mayor was more responsive to the citizens’ desires or would not steal; my guess it was to send a message to Washington.\nI hope incumbents are listening. The Obama administration is busy in its “war rooms” figuring how to spin opponents as racists. Democrats have war rooms for everything—but war.\nA syndicated libertarian op-ed humorist, Hart’s columns appear in 40 papers nationwide.\nArticle printed from The Daily Caller: http://dailycaller.com\nURL to article: http://dailycaller.com/2010/04/21/mow-money-mow-problems/\nCopyright © 2011 Daily Caller. All rights reserved."} -{"text": "Campaign of the Month: January 2013\nDANgerous Kalamar 4\nThe hobgoblin values of strength and honor hold true for the Krangi, and their attitudes about themselves and others are founded upon these principles. However, the Krangi also believe that they are the only creatures that possess honor, and that every material possession rightfully belongs to them. This is not manifested as greed. The Krangi do not want to own every material possession, but those that they do want they believe are theirs. The Krangi value of strength also dictates that violence is an acceptable solution to every problem. If a Krangi is able to kill someone, he has power over their most important possession: their life. Without their life, a Krangi cannot have strength and cannot gain honor, so controlling another’s life grants control over every other aspect of their life. Thus, demonstrating the power to kill through violence grants the stronger Krangi complete control over the weaker one. In Krangi society, killing a member of a lower caste, if a sufficient reason can be provided, is not a crime.\nAs a byproduct of their devotion to physical strength, the Krangi are a very pragmatic people. If one Krangi is better than another at a particular task, the more proficient Krangi should perform that task. Finally, beauty is a concept that is foreign to the Krangi. Things are designed for a purpose, and anything that does not directly serve that purpose is extraneous and a waste of time, materials, or effort.\nTheir skin is usually a light brown or maroon coloring; yellow or tan skin is uncommon. Krangi faces have a goblinoid resemblance, but are squarer than the other hobgoblin subraces. The Krangi have two small tusks that extend from their lower jaw. At their longest, these tusks extend up to the broad, flat nose near the center of the face. The nose is usually a light gray or bluish gray color, but can be as dark as navy blue.\nKrangi facial hair is confined almost entirely to the chin, where it grows thick and bushy. Like their facial hair, the Krangi hair grows long and thick, and is usually very dark. This hair is almost always braided into one or two long strands, and it hugs the shape of the head closely. Krangi eyes tend towards the lighter end of the spectrum: tan, gold, yellow and light brown. The pupil is usually black, but occasionally is red. These “red eyes” are considered by the Krangi to be blessed at birth, and are expected to assume positions of leadership quickly.\nKrangi females are very similar to their male counterparts, with only a few exceptions. They generally have the same skin and hair coloration, but they do not possess facial hair, and their body hair is less prominent.\nMale 5'3\" +2d12 (inches) 140 lbs x (2d4) lbs\nFemale 5' +2d12 (inches) 125 lbs x (2d4) lbs\nAdulthood: Middle Age: Old: Venerable: Maximum:\n22 yrs 80 yrs 120 yrs 160 yrs +3d20 yrs\nDue to their aggressive warmongering, the Krangi have many enemies, but they do understand the usefulness of peace. The Krangi are content to war with anyone, but will make peace with just about anyone (with a few notable exceptions), so at any given time, they will be fighting or preparing to fight about half of their neighbors, and will be at peace with the other half. The Krangi’s main purpose foe establishing peace is trade. The humans have demonstrated that they are willing to negotiate, trade, and make peace with the Krangi, and this makes them less offensive than the hated elves, or worse, the dwarves. Krangi have little contact with other gnomes or halflings. The Krangi are much more amenable to humanoids. Just about any Medium humanoid is welcome in Krangi society, provided that they abide by the laws and social regulations.\nThe largest concentration of Krangi lies in the Kingdom of Norga-Krangrel. It is still the goal of the Krangi to reconquer the lands of Kruk-Ma-Kali (an ancient hobgoblin king) and the current kruk, Krokal-Marg, frequently declares war on the kingdom’s neighbors to the north. They speak the Hobgoblin language and at least one other, since they must communicate with both humanoids and civilized races. Krangi generally speak all languages (except Hobgoblin) with an accent, but it is subtle and hard to detect.\nThe Church of Endless Night is the state sponsored religion, but all lawful evil religions have a place, albeit an inferior one. The Krangi do not allow any faiths that are not of lawful evil alignment. They watch clerics of other faiths closely, and they often arrest the clerics for little or no reason. Those found establishing congregations of other gods are arrested and executed, their temples are destroyed and their holy symbols defaced. The Krangi arrest any parishioners as well, though they may save themselves from executing by converting. Despite this, most of the other evil faiths and several of the neutral ones have an underground congregation or two. Attendance is always low, however, both because of the danger it presents and the lawful evil tendencies of the Krangi population.\nJust about every one of the core classes is present in Krangi society. Clerics and fighters are extremely common, and monks and sorcerers are also popular, less so the gladiator, infiltrator, ranger, rogue or shaman. Barbarians, druids and wizards are rare. Of all the classes, only the bard, Basiran dancer, paladin and spellsinger are never seen in Krangi society. While it is theoretically possible for a Krangi to follow most of these career paths, no instance has ever been documented."} -{"text": ".DeploymentReplicaEvents[1].Duration.AsDuration())\n\tassert.GreaterOrEqual(t, resp.DeploymentReplicaEvents[1].Duration.AsDuration(), resp.DeploymentReplicaEvents[2].Duration.AsDuration())\n}\n\nfunc TestListDeploymentReplicaEvents_InvalidFilter(t *testing.T) {\n\ts := newTestServer(t)\n\n\t_, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `invalid_field = \"value\"`,\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"invalid filter\")\n}\n\nfunc TestListDeploymentReplicaEvents_InvalidPageToken(t *testing.T) {\n\ts := newTestServer(t)\n\n\t_, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tPageToken: \"invalid\",\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"invalid page_token\")\n}\n\nfunc TestListDeploymentReplicaEvents_DefaultOrderBy(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create the newest-start event first so create_time desc would return the\n\t// other event first if the default order regressed.\n\tnewestStartEvent := createTestDeploymentReplicaEvent(t, s, \"default-order-account\", \"default-order-deployment\", \"default-order-event-newest-start\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 30*time.Second)\n\tcreateTestDeploymentReplicaEvent(t, s, \"default-order-account\", \"default-order-deployment\", \"default-order-event-oldest-start\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 5*time.Minute)\n\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"default-order-account\"`,\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.DeploymentReplicaEvents, 2)\n\tassert.Equal(t, newestStartEvent.Name(), resp.DeploymentReplicaEvents[0].Name)\n}\n\nfunc TestGetDeploymentReplicaEventDurationDistribution_FilterRequired(t *testing.T) {\n\ts := newTestServer(t)\n\n\t_, err := s.GetDeploymentReplicaEventDurationDistribution(context.Background(), &agpb.GetDeploymentReplicaEventDurationDistributionRequest{\n\t\tFilter: \"\",\n\t\tPercentiles: []*agpb.DeploymentReplicaEventDurationPercentile{\n\t\t\t{Percentile: 50},\n\t\t},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"filter is required\")\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_PartialProgress(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"progress-account\", \"deployment-1\", \"event-90\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 30*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgress(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(30*time.Minute), 30*time.Minute, 10, 9)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(9), resp.Thresholds[0].ReadyReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_ZeroProgress(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"zero-progress-account\", \"deployment-1\", \"event-0\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 30*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgress(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(30*time.Minute), 30*time.Minute, 10, 0)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"zero-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(0), resp.Thresholds[0].ReadyReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_CountsMissingProgressAsUnscheduled(t *testing.T) {\n\ts := newTestServer(t)\n\teventWithLateProgress := createTestDeploymentReplicaEventWithRequested(t, s, \"missing-progress-account\", \"deployment-1\", \"event-late\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 10*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventWithRequested(t, s, \"missing-progress-account\", \"deployment-2\", \"event-none\",\n\t\tgpb.DeploymentReplicaEvent_MANUAL_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 10*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgress(t, s, eventWithLateProgress.AccountId, eventWithLateProg"} -{"text": "In French \"Fait Divers\" is an expression not too easy to translate if one wants to keep its Gallic flavor. It is used when, for example, newspapers report strange events that have no relevance to the greater design such as a love triangle murder or a specific museum robbery. Not quite \"miscellaneous\" but somewhere along the line.\nThis is the best way to qualify the recent faux pas of French diplomacy, \"diplomacy\" used in a charitable way when France's foreign policy is concerned.\nThe item is that the French ambassador in Caracas, Pierre-Jean Vandoorne, did meet with Rodrigo Granda sometime in April 2004. This Granda is of course the \"foreign minister\" of the FARC who was arrested last December in Caracas, whisked to Cucuta, and became the cause of the latest diplomatic rift between Bogotá and Caracas. It is also the same Granda that walked around Venezuela as if nothing, who became a Venezuelan citizen \"very easily\" and just on time to vote on August 15 (for Chavez it is presumed). It is also the Granda that has just being implicated in the kidnapping and murder of the daughter of a Paraguayan ex-president. A very nice fellow this Granda, to the point that Colombia is already willing to send him to Paraguay to stand trial.\nSo why would Monsieur Vandoorne meet with Granda? In Venezuelan territory nevertheless!\nWell, it is a long story of Gallic hubris. It turns out that a political rising star of Colombia, Ingrid Betancourt, former presidential candidate, with a nice sounding French name, happened to have resided in France in exile, married a French man, wrote in French, and was thus the toast of Paris salons who suffer from quite an inferiority complex in front of the advances of English in the Wide Wild World. I cannot say much about Mrs. Betancourt but I suspect that she was smart enough to use the French. Unfortunately for her she got kidnapped during her electoral campaign, a terrible and unfair situation that she is still enduring after three years.\nBut the French will have none of it and they have started a \"free Ingrid\" campaign. President Chirac has become personally involved, asking Chavez and Castro to help. But I suspect that this has been rather counterproductive since it gave only more bargaining power to whoever is holding Ingrid Betancourt. So, it seems that Mr. Vandoorne received the instructions to try to negotiate something in Caracas, with no one less than Granda...\nI feel for the French ambassador. 2004 did not end very well for him as Mr. Muselier, the French foreign secretary made some rather unsuitable declarations backing the authoritarian state that is slowly but surely being installed in Venezuela. But we all know that French diplomacy will balk at nothing to peddle French goods. And boy, are they trying to sell stuff to Chavez!!! After all, Chavez is kicking out the US and surely France should step in less than China, or anyone else, takes too much of a bite.\nAnd now this! How could Monsieur Vandoorne negotiate with Granda in Caracas? At the French embassy no less!!!!!!!!! Aren't there discrete restaurants where they could have met? And without even the agreement of the Colombian government!?!?! Though Betancourt's husband states that Uribe blocked the negotiations.\nSo? Is this the Granda 2 affair? Will Chavez blame Uribe for knowing that Granda was in Caracas having tea at the embassy?\nI think that Chavez, and now the French, have a lot more to explain on Granda. More than a fait divers?\nAnd the French should also explain how come their foreign policy is so sloppy, so mercenary, plagued with so many free agents (the husband of Ingrid is not the first Frenchman doing \"independent\" negotiations that could dangerously implicate the French government in business where it would be well advised to keep its distances, as it happened recently in an Iraq hostage negotiation).\nPS: added two days later. It seems that the Colombian government did know something of the negotiations. Of course, like in all such cases who knew and what will reamin murky for ever and ever. But conveniently for France, and Parisian newspapers, a new scandal that forced the resignation of the finance minister comes right on time. After all, this is a Parisian affair, and Ingrid's fate will again depend on the salons activities of Paris."} -{"text": "Thursday, October 25, 2012\nIf there's one thing that Quail Ridge Books excels at--and there are many things it does right--it's the way in which it showcases titles the staff really, really, really wants you to read. Sure, \"Staff Picks\" are almost de rigueur in independent bookstores these days, but there's just something about the spirit in which Quail Ridge puts its books front and center that makes it stand out from most of the other stores I've visited on this Fobbit book tour.\nI was a half hour early to my reading at the store in Raleigh, North Carolina last night and so I wandered the stacks, happy as a nose in a perfume shop. In addition to the usual bestseller and new arrivals displays near the front door, I also found a table devoted to political books (biographies about the Obamas, screeds from political talk-show tonguemeisters, etc.). It was neatly divided in half into \"Red Books\" and \"Blue Books.\" Clever. Another tier of shelves displayed books by authors who were scheduled for upcoming appearances at the store--a nice way of building buzz before the event and encouraging customers to buy and read the book before the big night. Deeper in the store, there was an entire section devoted to North Carolina writers, and I was thrilled to see a very nice display of literary magazines--including The Greensboro Review where yours truly had one of his first short stories published back in the early 90s.\nNancy Olson and her staff are to be commended for cultivating a spirit of Book Love at Quail Ridge. There is a fierce independence in the atmosphere of the store which sends a message to e-tailers and big-box bookstores: \"We love words and the people who make them.\" Books are not a number or an algorithm, they are warm and alive and served with as much care and pride as the tastiest plate of Carolina bar-b-que.\nQuail Ridge also has a very nice reading space for visiting authors. A large area was cleared in the middle of the store (the middle! not off to the side near the children's book section) and I was given a podium with a crystal-clear microphone so everyone could hear me read about what it was like to go to war \"with a duffel bag full of Dickens\" and emerge on the other side of the experience with a novel of my own.\nFor the most part, audiences at the Fobbit readings have been populated with e-friends I've \"known\" for years but never met. Last night, there was an especially large group of acquaintances from Facebook, Twitter and other social media communities who'd been supporting me for years. I was thrilled to finally meet Holly Goddard Jones (author of the short-story collection Girl Trouble and the forthcoming novel The Next Time You See Me--which I straightaway pre-ordered and I suggest you do the same, pronto) and Mary Lambeth Moore (author of the novel Sleeping with Patty Hearst). Also on hand were two members of my Book Pregnant posse: Barbara Claypole White (The Unfinished Garden) and Anne Clinard Barnhill (At the Mercy of the Queen: A Novel of Anne Boleyn). Barbara, Anne and I met for the first time last weekend at the South Carolina Writers Workshop where we were joined by fellow Book Pregnant members Lydia Netzer (Shine Shine Shine) and Brenda Bevan Remmes. Of the quintet, Brenda is the only one who is still \"with book child.\" The blessed event for her novel, Miss Ellie's Cafe, still lies somewhere in the future.\nAll in all, it was a great feeling to stand there at the microphone and look out to see all those smiling, supportive, friendly faces. Thanks, everyone, for coming out to hear me talk about Fobbit.\nPicking my Book Tour Bookstore Book was tough--not because I couldn't find something to suit my taste or pique my interest, but because I had to keep my promise to only buy one book at each stop (my luggage can't handle more than that). One of the books that Quail Ridge so insistently put \"in my face\" last night was Misfit, the new novel by Adam Braver from Tin House Books. The publisher's jacket copy tells us the book \"centers on the last weekend of Monroe’s life, which she spent at Frank Sinatra’s resort, the Cal Neva Lodge, in Lake Tahoe. Melding facts with fiction, Braver takes moments throughout Monroe’s life—her childhood, her marriages with Joe DiMaggio and Arthur Miller, her studies with Lee Strasberg at the Actors Studio, and her role in The Misfits, the film Miller wrote for her—and explores how they informed her tragic end.\" I'm a huge fan of Braver's work (his novel-in-stories Mr. Lincoln's Wars was one of the best books--fiction or non-fiction--I've ever read about the iconic president). Braver does some very smart blending of fact and fiction to create fresh portraits of historic figures. Think E. L. Doctorow, but fleshier. I can't wait to read this latest work about Marilyn. And, I hope you'll agree with me that the cover for Misfit is spot-on perfect."} -{"text": "ress.DeploymentId, eventWithLateProgress.DeploymentReplicaEventId, eventWithLateProgress.StartTime.Add(10*time.Minute), 10*time.Minute, 10, 10)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"missing-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(5 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(20), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(0), resp.Thresholds[0].ReadyReplicaCount)\n\tassert.Equal(t, int64(20), resp.Thresholds[0].UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_CountsMissingScaleUpProgressAsUnscheduled(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"missing-scale-up-progress-account\", \"deployment-1\", \"event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 30*time.Minute, 10)\n\tprogress := &database.DeploymentReplicaEventProgress{\n\t\tDeploymentReplicaEventProgressName: *resourcename.NewDeploymentReplicaEventProgressName(event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(30*time.Minute).Format(\"20060102150405\")),\n\t\tObservedTime: event.StartTime.Add(30 * time.Minute),\n\t\tElapsedDuration: (30 * time.Minute).Nanoseconds(),\n\t\tProgress: \"ScaleUp\",\n\t}\n\trequire.NoError(t, s.DB().Create(progress).Error)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"missing-scale-up-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(0), resp.Thresholds[0].ReadyReplicaCount)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_AggregatesStageCountsAndUnscheduled(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"stage-progress-account\", \"deployment-1\", \"event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 30*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgressWithStats(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(30*time.Minute), 30*time.Minute, 10, 3, 2, 1, 1, 3)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"stage-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(2), resp.Thresholds[0].PendingSchedulingReplicaCount)\n\tassert.Equal(t, int64(1), resp.Thresholds[0].DownloadingModelReplicaCount)\n\tassert.Equal(t, int64(1), resp.Thresholds[0].InitializingReplicaCount)\n\tassert.Equal(t, int64(3), resp.Thresholds[0].ReadyReplicaCount)\n\tassert.Equal(t, int64(3), resp.Thresholds[0].UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_ConvertsReplicaStatsToEventRelativeCounts(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"stats-ready-progress-account\", \"deployment-1\", \"event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 30*time.Minute, 10)\n\tevent.InitialReplicaState = &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\tDesired: 10,\n\t\tCurrent: 10,\n\t\tMin: 0,\n\t}\n\tevent.TargetReplicaState = &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\tDesired: 20,\n\t\tCurrent: 20,\n\t\tMin: 0,\n\t}\n\trequire.NoError(t, s.DB().Save(event).Error)\n\tcreateTestDeploymentReplicaEventProgressWithStats(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(30*time.Minute), 30*time.Minute, 10, 10, 2, 3, 7, 8)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"stats-ready-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(0), resp.Thresholds[0].ReadyReplicaCount)\n\tassert.Equal(t, int64(2), "} -{"text": "Submitted by Ann\non Thu, 09/30/2010 - 10:51…\nAdded by John on September 30, 2010 at 4:16pm —\nAccording to some the animals are supposed to be only animals and not Gentiles in the bible. So let us do a quick examination and determine if these living creatures that swarm and the fish that exist found here in Ezekiel 47 are people (gentiles) or are they just animals that the river is bringing life to. The question… Continue\nAdded by Norm on September 30, 2010 at 1:30pm —\nGenesis 3:15 — The Protoevangelium\nGenesis 3:15 is frequently identified as the protoevangelium —\nthe first annunciation of the gospel,\nand well it is. The context of\nGenesis 3:15 is the fall of man. God had created man and placed him in\nthe Garden of Eden…\nAdded by John on September 28, 2010 at 1:59pm —\nAudio from the 2010 New Covenant Eyes Conference is now available for download at AD70 Marketplace.… Continue\nAdded by michael j loomis on September 28, 2010 at 10:23am —\nCovenant Creation with Tim Martin\nlisten to audio:\nTami Jelinek and Brian Maxwell welcome Tim Martin back to NCMI to chat with him about material presented at his recent conference.\nTo order CDs of the messages from this conference, please visit:\nAdded by John on September 23, 2010 at 8:10am —\nWHO WROTE THE DEAD SEA SCROLLS?\nWatch a FREE episode of The Naked Archaeologist…\nAdded by John on September 23, 2010 at 6:40am —\nThe \"little giant,\" a 1.93-meter tall human skeleton, was recently\nidentified by experts at China's Archaeology Academy as the tallest\nprehistoric man ever found.\nThat's 6 foot 4 for us metrically challenged folk.\nWith the recent discussion of giants, this seemed timely.See story here.\nAdded by JL Vaughn on September 21, 2010 at 3:30pm —\nAdded by John on September 19, 2010 at 7:08pm —\nScientists from Discovery Institute and Biologic Institute are heading to Texas to Southern Methodist University Thursday, September 23rd for a special evening event: 4 Nails in Darwin's Coffin Presents New Scientific Challenges to Darwinian Evolution. Following a screening of Darwin's…\nAdded by John on September 18, 2010 at 2:36pm —\nAdded by John on September 18, 2010 at 10:27am —\nAdded by John on September 17, 2010 at 11:30pm —\nNote to Robin:This is not satire:)\nDid the Ancient Israelites Drink Beer? From Biblical Archaeology Review\nAncient Israelites, with the possible…\nAdded by John on September 15, 2010 at 5:00pm —\nFrom \"The Onion\"\nDan \"It’s amazing how well-written satire can so dramatically (and clearly) point out the silliness of the young Earth creationist mindset. I’m sure the Sumerians would have agreed.\"\nSumerians Look On In Confusion As God Creates World\nDecember 15,… Continue\nAdded by John on September 12, 2010 at 2:00pm —\nJoin Gail Ann Bondar and myself(Michael Loomis) today at 6 P.M. Eastern/3 P.M. Pacific for a new program that we will be doing every other week just before \"Two Guys and A Bible.\"\nToday we will be talking about one of our favorite obsessions. 8-)\nSee you in the chat-room.\nAdded by michael j loomis on September 7, 2010 at 4:00pm —\nHey everyone, there are several announcements with our ministry, and with upcoming events in our area (such as the June 2011 conference). Also, check out my blogs and feel free to interact. I've discussed issues such as water baptism, women in the church, and other issues (with more to come).\nHere's the blog link on my site:…\nAdded by Joseph Vincent on September 7, 2010 at 11:43am —\nCan God Tell Time?\nThe \"Only\" Authorized Site For This Published Work… Continue\nAdded by John on September 4, 2010 at 4:49pm —\nPROTOEVANGELIUM OF GENESIS 3:15\nBy Dante SpencerContext of Genesis 3:15God is speaking to the serpent (3:14) about the new order for the universe after Adam’s fall into sin (3:1-7). Before God addresses Adam and Eve to curse them for their rebellion against himself in the covenant of works (3:16-19), God… Continue\nAdded by John on September 4, 2010 at 3:45pm —\n\"The Scroll, the Serpent and Our Salvation\"\n....or what I also like to call\n\"The Gospel in the Garden\"\n(Click here to listen to an interview with the artist.)…\nAdded by Tami on September 2, 2010 at 8:30pm —\nUSA Today: What if THe End Isn't Near?\nA Great Opportunity!\nWritten by Don Preston\nThis is a great opportunity! (our friend Stephen Temple called my attention to the USA Today paper and the article)\nThe USA Today Paper of 8-23- carried an article in the forum about two men… Continue\nAdded by John on September 1, 2010 at 7:03pm —\nThe location of the New Covenant Eyes conference has been changed. Please visit newcovenanteyes.com\nAdded by Alan Bondar on September 1, 2010 at 6:26pm —"} -{"text": "Wisconsin's Governor: Recall Drive Is About Unions Seeking 'Power'\nMany of Wisconsin Gov. Scott Walker's citizens may be signing petitions for his recall in reaction to the battle he led earlier in the year to weaken his state's public-employee unions.\nBut Walker doesn't appear to be backing off one inch from his stance that he did what was right for his state.\nHe accused his political foes of really being after \"power\" while presumably camouflaging their true intent with platitudes about workers' rights, among other things.\nUnions are in particular coming after him, Walker said, because the new budget law he and the the Republican-controlled state legislature in Madison enacted, gave workers a choice about whether or not to belong to a union.\nMICHEL: It's no secret that there's national attention being paid to Wisconsin, in part because of these efforts and because of this issue. And I'm interested in what role you think is appropriate for interest groups outside of Wisconsin, both those that support you and those that oppose you.\nGOV. WALKER: Well, I mean, the appropriateness is interesting, because obviously, I can say it, but there's no way to enforce it... It's going to happen no matter what. We saw, in the Senate race, most Republican senators were outspent at least two-to-one, in some cases three-to-one, by all the parties that came in from both throughout the state and across the country.\nI believe if they get – I believe, actually, if they get the signatures, it'll largely – because these national, big-government unions put the money behind that. I would imagine they'll spend the tens of millions – and if it was over $40 million for the Senate recalls, that they may be – well be $70 (million) or $80 million there.\nMICHEL: Well, there are conservative groups supporting you.\nGOV. WALKER: And I think more people look at that and say, that's absurd. You know, I spent 13 million (dollars) running for governor; you're going to see multiple times that amount. You're going to see groups coming in from outside of our state who want to influence this race – I think (it's) more about power, because let's remember, the real reason the unions nationally are involved in this isn't because of pitch in their health care contributions or workers' rights or anything else; the real reason is because we also, as part of our reforms, gave every worker in our state the right to choose whether or not he or she wants to be a part of the union and no longer have their dues forcibly removed from their payroll. That's what it's about.\nMICHEL: OK, but so – there are groups supporting you, too, Governor – in fairness, there are outside groups that are also interested in this for their own reasons.\nGOV. WALKER: Sure, like every election.\nGOV. WALKER: It has, like – but they wouldn't be here if the national unions were forcing a recall. I mean, I think most of your listeners across America probably are scratching their heads on the recall to begin with, because most states have recalls in, say, misconduct in office, some sort of thing like that that triggers it, not just, I disagree or agree with a piece of legislation.\nBut this is really about power. The \"recall Scott Walker\" website was actually started November 2010. So anyone who thinks this wasn't – you know, that somehow, this is organic movement that just popped up – the reality is, the person who started that recall site started it last year, two months before I took office.\nIf Walker was cynical about the motives behind the recall election, Michel reminded him that many of his political opponents remained cynical about the way he pushed through the legislation that curtailed most collective-bargaining rights for public-worker unions.\nWhy not ask the unions to negotiate givebacks? she asked. And what about the fact that some unions, like police and fire, weren't included in the legislation that reduced bargaining rights for state and local government employees? Was it a divide-and-conquer strategy as some in organized labor suspected?\nWalker said with 1,700 municipalities in Wisconsin, there were just too many local bargaining units to make those kind of negotiations work. Meanwhile, public safety workers were exempted because if they had walked off the job as other workers did earlier in the year, lives could have been endangered.\nMichel also asked Walker to respond to the oft-repeated charge by his opponents that his campaign for governor was something of a bait and switch. They accuse him of taking actions on becoming governor he never campaigned on when he ran for governor.\nGOV. WALKER: \"Well, clearly, as folks in southeastern Wisconsin know, where I was the county executive, even my hardened opponents, when I was in county government, all have said publicly nobody should be surprised, because I talked about this for eight years as a county executive.\n\"And even in the campaign – I mean, I literally ran an ad where I talked about asking public employees to pay 5 and 12 percent for pension and health insurance premiums, and said I'd apply it to myself. Actually, I pay a higher amount than other public employees do on the pension match.\""} -{"text": "resp.Thresholds[0].PendingSchedulingReplicaCount)\n\tassert.Equal(t, int64(3), resp.Thresholds[0].DownloadingModelReplicaCount)\n\tassert.Equal(t, int64(5), resp.Thresholds[0].InitializingReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_CapsAbsoluteStageCountsToEventDelta(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"absolute-stage-progress-account\", \"deployment-1\", \"event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 30*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgressWithStats(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(30*time.Minute), 30*time.Minute, 10, 2, 20, 10, 8, 2)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"absolute-stage-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tthreshold := resp.Thresholds[0]\n\tassert.Equal(t, int64(10), threshold.TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(0), threshold.PendingSchedulingReplicaCount)\n\tassert.Equal(t, int64(0), threshold.DownloadingModelReplicaCount)\n\tassert.Equal(t, int64(8), threshold.InitializingReplicaCount)\n\tassert.Equal(t, int64(2), threshold.ReadyReplicaCount)\n\tassert.Equal(t, int64(0), threshold.UnscheduledReplicaCount)\n\tassert.Equal(t, threshold.TotalRequestedReplicaCount, threshold.PendingSchedulingReplicaCount+threshold.DownloadingModelReplicaCount+threshold.InitializingReplicaCount+threshold.ReadyReplicaCount+threshold.UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_ClampsAbsoluteStageCountsToEventTarget(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"target-stage-progress-account\", \"deployment-1\", \"event-1\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 30*time.Minute, 10)\n\tevent.InitialReplicaState = &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\tDesired: 10,\n\t\tCurrent: 10,\n\t\tMin: 0,\n\t}\n\tevent.TargetReplicaState = &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\tDesired: 20,\n\t\tCurrent: 20,\n\t\tMin: 0,\n\t}\n\trequire.NoError(t, s.DB().Save(event).Error)\n\tcreateTestDeploymentReplicaEventProgressWithStats(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(30*time.Minute), 30*time.Minute, 10, 10, 10, 0, 0, 20)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"target-stage-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tthreshold := resp.Thresholds[0]\n\tassert.Equal(t, int64(10), threshold.TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(0), threshold.PendingSchedulingReplicaCount)\n\tassert.Equal(t, int64(0), threshold.DownloadingModelReplicaCount)\n\tassert.Equal(t, int64(0), threshold.InitializingReplicaCount)\n\tassert.Equal(t, int64(10), threshold.ReadyReplicaCount)\n\tassert.Equal(t, int64(0), threshold.UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_CarriesTerminalProgressForward(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"carry-progress-account\", \"deployment-1\", \"event-complete\",\n\t\tgpb.DeploymentReplicaEvent_MANUAL_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 2*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgress(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(2*time.Minute), 2*time.Minute, 10, 10)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"carry-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(5 * time.Minute)},\n\t\t\t{Threshold: durationpb.New(10 * time.Minute)},\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 3)\n\tfor _, threshold := range resp.Thresholds {\n\t\tassert.Equal(t, int64(10), threshold.TotalRequestedReplicaCount)\n\t\tassert.Equal(t, int64(10), threshold.ReadyReplicaCount)\n\t\tassert.Equal(t, int64(0), threshold.UnscheduledReplicaCount)\n\t}\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_CarriesPartialTerminalProgressForward(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"partial-terminal-progress-account\", \"deployment-1\", \"event-partial\",\n\t\tgpb.DeploymentReplicaEvent_MANUAL_SCALE_UP, gp"} -{"text": "Meanwhile, USDA reported lower soybean and rice acreage from 2002 and virtually unchanged corn plantings in the June 30 Planted Acreage Report released by the National Agricultural Statistics Service today.\nAll cotton plantings for 2003 are expected to total 13.9 million acres, down fractionally from last year and from the 14.253 million acres estimated in USDA’s March Prospective Plantings Estimate.\nAccording to surveys conducted by USDA the first two weeks of June, upland cotton producers planted 13.7 million acres this year, virtually unchanged from 2002. Acreage planted to American Pima or extra long staple cotton is estimated at 176,000 acres, down 28 percent from a year ago.\nMany growers east of the Mississippi River revised their spring intentions and devoted less acreage to cotton. Persistent wet weather across the south delayed seedings, forcing growers to seed alternative crops. Cotton acreage dropped slightly from 2002 in Arkansas, Tennessee and Mississippi, while rising slightly in Missouri and Louisiana.\nUSDA said Kansas increased its cotton acreage 56 percent to 125,000 acres this year, up from 80,000 acres in 2002. Texas and California growers increased their upland cotton acreage from a year ago after a rather successful 2002 production season.\nU.S. rice acreage for 2003 came in at 2.992 million acres, down 7.6 percent from last year’s 3.24 million acres. Rice acreage declined in every state except Mississippi, which remained unchanged from last year at 255,000 acres.\nArkansas acreage was reported at 1.446 million acres, up from March estimates of 1.422 million acres but down from last year’s 1.515 million acres; California, dropped to 470,000 acres, down 60,000 acres from March and 63,000 acres from 2002; Louisiana acreage is unchanged from March estimates of 470,000 acres but is down from last year’s 540,000 acres; Missouri held steady from March estimates of 170,000 acres, but is down from 2002’s 190,000 acres; and Texas declined to 181,000 acres from March estimates of 191,000 acres and last year’s 206,000 acres.\nCorn planted area for all purposes is estimated at 79.1 million acres, virtually unchanged from 2002 but 4 percent above 2001. Much needed precipitation was received in late April and early May across the Corn Belt which helped relieve long-term moisture deficits.\nHowever, the early May rainfall slowed fieldwork and delayed some producers from getting their corn crop planted. Farmers reported that 95 percent of the corn acreage had been planted at the time of the survey interview, which is slightly below the average for the past 10 years.\nCorn plantings in Arkansas reached 350,000 acres, up from 270,000 acres in 2002. Louisiana dropped its acreage from 580,000 acres to 500,000 acres, while Mississippi stayed at last year’s 550,000 acres.\nThe 2003 soybean planted area is estimated at 73.7 million acres, down 105,000 acres from last year, and if realized, the lowest planted area since 1998. This is the third consecutive year that soybean planted acres have declined in the United States.\nThe planted acreage is up 471,000 acres from March. Persistent wet weather forced growers along the Southeast and along the Atlantic Coastal Plain to switch to soybeans from their earlier cotton and corn intentions. Growers in North Dakota and Minnesota planted less spring wheat and more soybeans.\nAll wheat planted area is estimated at 60.9 million acres, up 1 percent from 2002. Harvested area is expected to total 52.7 million acres, up 15 percent from last year. The 2003 winter wheat planted area, at 44.3 million acres, is 6 percent above last year, but virtually unchanged from the previous estimate. Of this total, about 32.0 million acres are Hard Red Winter, 8.1 million acres Soft Red Winter, and 4.3 million acres White Winter.\nAcreage planted to other spring wheat for 2003 is estimated at 13.8 million, down 12 percent from 2002. Of this total, about 13.0 million acres are Hard Red Spring wheat. The Durum planted area for 2003 is estimated at 2.80 million acres, down 4 percent from last year."} -{"text": "Sites You Didn’t Know You Needed\nby Karen Bries\nLearn about sites to help your practice and your life.\nWe hope that by now you’ll know to go to the cobar.org Web site or the ABA’s techshow.com for substantive legal information. But here are some sites borrowed from Reba Nance and Mel Reveles at the CBA that will help improve your life and add some interest to practicing law:\nAnybirthday.com This site is a great fact checker, birthday reminder and a good reality-check for those of you who don’t think your personal information is on the Web. Type in your best friend’s or worst enemy’s first and last name and his or her ZIP code if you know it. This person’s birthday will probably be there. As Reba Nance, CBA law office technology department guru says, \"All it takes is a birthday to unlock a whole lot of information about you.\" Breathe deeply. It’s okay; people may use this site as a handy birthday reminder and buy you a bunch of gifts on your special day. It will also keep you out of the doghouse by sending you reminders of when your friends’ birthdays are.\nDogbitelaw.com We did have to throw a few law related things in. Believe it or not, the bar association gets calls about dog bites every now and again. Look at this site, but you can always still call us. This is where attorneys find laws, journalists find statistics and parents get information about protecting their children. It talks about the Diane Whipple case, \"the most unusual case in dog bite history.\"\nCobar.org Yes, we must plug ourselves. We get many calls from people wanting to place free job announcements. Go to the \"Diversity of the Legal Profession\" Web page and post your listing. It’s free and easy. You can also look at The Colorado Lawyer monthly classified ads. The ads are sorted into the often-seen office space and employment sections, but also have headings under office sharing, donated books, legal recruiters and contract work opportunities.\nRefdesk.com will give you thousands of reference sites to search in a click. News, encyclopedias, almanacs and quotes. For kids, there’s even a homework helper and an \"astronomy picture of the day\" such as Young Martian Terrain with a description.\nFBI.gov/hq/lab/handbook/intro.htm Whether you’re an aspiring crime novelist or you just want to know how the FBI researches something, try this site. It will tell you how forensic evidence is prepared and how crime scenes are investigated.\nFlighttracker.com will show where grandma is on her flight from Connecticut to Colorado. It tracks the plane’s movements and gives a graphic map of what city her plane is flying over at this exact point in time.\nPlagiarism.com Scan the text of a document into this software, and the software will let you know if anyone has used someone else’s poetic prose. This was started to keep college kids from trading their term papers online. It does cost some money, but there is a free trial.\nMtnds.com will help you decipher acronyms, mostly for those weird computer errors that pop up. What’s BIOS or RAM? If you care, you can search this site.\nhttp://www-sci.lib.uci.edu/HSG/RefCalculators.html Whisk away to a world of calculators, and you don’t even have to be a nerd to enjoy it. There are catch-all calculators for mortgages, interest rates and currency conversions, but the old razzle dazzle comes when you calculate how much to feed livestock, what capacity your meeting room can hold or the amount of life insurance you will need. You can even figure out how much it will cost to launch a marketing campaign.\nMentalhealth.com is good for looking up psychiatric drugs and diagnosing different kinds of psychological disorders. Try diagnosing your boss or that nagging mother of yours. Realize that they may have more problems than you think.\nInfoctr.edu/fwl is the federal Web locator with links to every kind of federal Web site, from bureaucracies like the National Mediation Board, Office of Special Counsel and the Peace Corps to more interesting sites like the Advisory Council on Historic Preservation and the National Coordination Office for High-Performance Computing and Communications (Be glad you don’t work there. Be very glad).\nZagat.com If you are out of town and need a restaurant recommendation, try this site. It will sort by neighborhood, cuisine type or alphabetically. Insightful reviews and a chance to vote on your favorite restaurant are also an option. Be sure to click on the symbol that looks like a key, so that you understand what Zagat’s ratings are based on.\nmailstart.com To gain access to your existing e-mail accounts (must be POP3) then look no further than MailStart. MailStart can be customized to access your existing email accounts. In other words, you can take your work e-mail, your home e-mail and any other accounts you may have and get your mail from one box at Mailstart. There is a free demo but they encourage you to pay the $10 a month to subscribe.\ncobar.org/hotlinks.htm Just when you thought we were done plugging ourselves, we weren’t. We also didn’t want to leave you in a lurch without some legal research sites. The Colorado Bar Association’s \"Hotlinks\" site is a catch-all for legal research. You’ll get federal and state resources, commercial legal services, forms and contracts, international resources, legal libraries, legal software and the rest of the list is endless. Don’t overlook this exhaustive resource tool, courtesy your favorite association.\nSpecial thanks go to Mel Reveles and Reba Nance at the Colorado Bar Association for letting us plagiarize some programs they often present for CLE credits! You can find these Web sites and more at www.cobar.org.\nDo you have a site that sets your mind at ease or gives you the answers you’re looking for? If so, send them to firstname.lastname@example.org, and we’ll publish them in The Docket."} -{"text": "b.DeploymentReplicaEvent_FINISHED, 2*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgress(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(2*time.Minute), 2*time.Minute, 10, 4)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"partial-terminal-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(5 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(4), resp.Thresholds[0].ReadyReplicaCount)\n\tassert.Equal(t, int64(6), resp.Thresholds[0].UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_StopsNonFinishedTerminalProgress(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"cancelled-terminal-progress-account\", \"deployment-1\", \"event-terminal\",\n\t\tgpb.DeploymentReplicaEvent_MANUAL_SCALE_UP, gpb.DeploymentReplicaEvent_CANCELLED, 2*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgress(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(2*time.Minute), 2*time.Minute, 10, 4)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"cancelled-terminal-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(time.Minute)},\n\t\t\t{Threshold: durationpb.New(2 * time.Minute)},\n\t\t\t{Threshold: durationpb.New(5 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 3)\n\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(0), resp.Thresholds[0].ReadyReplicaCount)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].UnscheduledReplicaCount)\n\n\tassert.Equal(t, int64(10), resp.Thresholds[1].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(4), resp.Thresholds[1].ReadyReplicaCount)\n\tassert.Equal(t, int64(6), resp.Thresholds[1].UnscheduledReplicaCount)\n\n\tassert.Equal(t, int64(0), resp.Thresholds[2].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(0), resp.Thresholds[2].ReadyReplicaCount)\n\tassert.Equal(t, int64(0), resp.Thresholds[2].UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_ExcludesSupersededEvents(t *testing.T) {\n\ts := newTestServer(t)\n\tsuperseded := createTestDeploymentReplicaEventWithRequested(t, s, \"superseded-terminal-progress-account\", \"deployment-1\", \"event-superseded\",\n\t\tgpb.DeploymentReplicaEvent_MANUAL_SCALE_UP, gpb.DeploymentReplicaEvent_SUPERSEDED, 2*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgress(t, s, superseded.AccountId, superseded.DeploymentId, superseded.DeploymentReplicaEventId, superseded.StartTime.Add(2*time.Minute), 2*time.Minute, 10, 4)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"superseded-terminal-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(time.Minute)},\n\t\t\t{Threshold: durationpb.New(2 * time.Minute)},\n\t\t\t{Threshold: durationpb.New(5 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 3)\n\n\tfor _, threshold := range resp.Thresholds {\n\t\tassert.Equal(t, int64(0), threshold.TotalRequestedReplicaCount)\n\t\tassert.Equal(t, int64(0), threshold.ReadyReplicaCount)\n\t\tassert.Equal(t, int64(0), threshold.UnscheduledReplicaCount)\n\t}\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_SupersededDoesNotDoubleCountReplacement(t *testing.T) {\n\ts := newTestServer(t)\n\tsuperseded := createTestDeploymentReplicaEventWithRequested(t, s, \"superseded-replacement-progress-account\", \"deployment-1\", \"event-superseded\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_SUPERSEDED, 2*time.Minute, 10)\n\treplacement := createTestDeploymentReplicaEventWithRequested(t, s, \"superseded-replacement-progress-account\", \"deployment-1\", \"event-replacement\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_FINISHED, 3*time.Minute, 6)\n\tcreateTestDeploymentReplicaEventProgress(t, s, superseded.AccountId, superseded.DeploymentId, superseded.DeploymentReplicaEventId, superseded.StartTime.Add(2*time.Minute), 2*time.Minute, 10, 4)\n\tcreateTestDeploymentReplicaEventProgress(t, s, replacement.AccountId, replacement.DeploymentId, replacement.DeploymentReplicaEventId, replacement.StartTime.Add(3*time.Minute), 3*time.Minute, 6, 6)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"superseded-replac"} -{"text": "GEORGE HENRY,Associated Press\nFLOWERY BRANCH, Ga. (AP) — It’s too early for the Atlanta Falcons to know how much defensive end John Abraham will play in Sunday’s NFC title game.\nAbraham, the NFL’s active sacks leader, made it through just 15 snaps in last week’s divisional playoff victory over Seattle before aggravating a left ankle injury that forced him to leave in the second quarter.\n“You don’t want to lose a good player,” Falcons defensive coordinator Mike Nolan said. “We won the game, so there’s something we did right. But it does change things.”\nThe Falcons are making contingency plans in case Abraham is unable to play at full strength against the San Francisco 49ers on Sunday at the Georgia Dome.\nAbraham, who has not been available to speak with reporters this week, missed practice on Wednesday even though coach Mike Smith listed him as having limited participation.\nBut it’s clear that the Falcons (14-3) will be pleased to have Abraham on the field for any length of time against San Francisco (12-4-1).\n“He’s a sack master,” linebacker Sean Weatherspoon said. “That’s what I like to call him — Father Abe. We look forward to getting him back out there this week. I think the guys that had a chance to play in his absence did a good job stepping in and doing what they need to do in order to help the team get the win.”\nAbraham, 34, was initially hurt in the regular season finale loss to Tampa Bay, limping off the field with the help of trainers.\nCoach Mike Smith said that he expects the 13th-year veteran to start on Sunday. Even so, the Falcons are giving reserve ends Cliff Matthews, Jonathan Massaquoi and Lawrence Sidbury more work this week in case Abraham has to make an early exit.\nMatthews took the balance of the work against Seattle, playing 46 snaps and making two tackles opposite Kroy Biermann, Atlanta’s other starting end.\nAbraham, though, is a special talent.\n“Obviously he’s an integral part of this defense,” Biermann said. “When you lose a player like that, it kind of puts a little bit of strain on you, but the guys behind him know that they’ve got to step up, play that role and get it done.”\nThe 49ers present several problems for Atlanta’s defense.\nQuarterback Colin Kaepernick is coming off an impressive playoff win over Green Bay, passing for 263 yards and two touchdowns and rushing for 181 yards and two TDs. He set an NFL single-game record for yards rushing by a quarterback.\nSmith knows the Falcons must do their best to contain Kaepernick in the pocket while keeping tight coverage on receivers Michael Crabtree and Randy Moss and tight ends Vernon Davis and Delanie Walker.\nRunning backs Frank Gore and LaMichael James also create issues in the passing attack, too.\n“They have playmakers at both levels with their offense,” Smith said. “You’re going to have to put together a plan to try to slow down certain aspects of it. It’s a very explosive offense they’ve created.”\nThough Abraham’s 122 career sacks rank 13th on the NFL career list, he hasn’t had one since Nov. 29 when he took down New Orleans quarterback Drew Brees to help seal a 23-13 victory.\nThe following week, Atlanta won its second NFC South title in three years.\nBefore the Falcons traded for him in 2006, Abraham had a long injury history in six years with the New York Jets. He’s overcome assorted ailments and offseason surgeries with Atlanta, however, and has missed just two games over the last six seasons.\n“When you watch the film, he played through the pain a little bit,” strong safety William Moore said. “It was hard to even tell. He rotates a lot, so I didn’t even know he was out at one point.”\nMoore learned of Abraham’s absence soon enough while Seattle quarterback Russell Wilson and the Seahawks were carving up Atlanta’s defense in the second half. After Vance Walker sacked him early in the third quarter, Wilson completed 13 of 18 passes for 230 with two TDs.\nThe Falcons did a decent job covering deep routes, but they struggled badly in trying to defend tight end Zach Miller and other targets Wilson hit in the middle of the defense.\n“Those were still miscues on our end,” free safety Thomas DeCoud said. “We were short on a drop here or there or someone didn’t carry someone here or there. Those things were more about us rather than things that they did.”\nNotes: S William Moore has a cast on his right hand but participated fully in practice. … CB Christopher Owens (hamstring) remains out. He hasn’t played since a Dec. 22 victory at Detroit. … DT Jonathan Babineaux (shoulder) also had limited participation in practice.\nFollow George Henry at http://www.twitter.com/georgehenryAP\n(© Copyright 2013 The Associated Press. All Rights Reserved. This material may not be published, broadcast, rewritten or redistributed.)"} -{"text": "LOS ANGELES (AP) – Sunrises and sunsets often dazzle, but they’ll have a special ring to them in a few days for people in the western United States and eastern Asia: The moon will slide across the sun, blocking everything but a blazing halo of light.\nIt’s been almost two decades since a “ring of fire” eclipse was visible in the continental United States. To celebrate the end of that drought, nearly three dozen national parks in the path of the eclipse will host viewing parties.\nThe solar spectacle is first seen in eastern Asia at dawn Monday, local time. Weather permitting, millions of early risers in southern China, northern Taiwan and southeast Japan will be able to catch the ring eclipse. Then it creeps across the Pacific with the western U.S. viewing the tail end.\nThe late day sun will transform into a glowing ring in southwest Oregon, Northern California, central Nevada, southern Utah, northern Arizona and New Mexico and finally the Texas Panhandle where it will occur at sunset on Sunday. For 3 1/2 hours, the eclipse follows an 8,500-mile path. Viewing, from beginning to end, lasts about two hours. The ring phenomenon lasts as long as 5 minutes depending on location.\nOutside this narrow band, parts of the West, Midwest and South — and portions of Canada and Mexico — will be treated to a partial eclipse. The Eastern Seaboard will be shut out, but people can log online to sites such as the Slooh Space Camera, which plans to broadcast the event live.\nA ring eclipse — technically called an annular solar eclipse — is not as dramatic as a total eclipse, when the disk of the sun is entirely blocked by the moon. As in a total solar eclipse, the moon crosses in front of the sun, but the moon is too far from Earth and appears too small in the sky to blot out the sun completely.\n“A bright ring around the sun at mid-eclipse is still pretty cool,” Geoff Chester of the U.S. Naval Observatory said in an email.\nAsia is abuzz over the event. In Japan, cable cars will run early to give tourists an unobstructed view from the mountains. Ferries will make special trips so that others can enjoy the scene offshore. The Taipei Astronomical Museum will open its doors at dawn while Hong Kong’s Space Museum will set up solar-filtered telescopes outside its building on the Kowloon waterfront.\nThe last time this type of eclipse was seen in the U.S. was in 1994. This year’s solar show offers ringside seats at 33 national parks along the eclipse path including the Grand Canyon and Bryce Canyon. A partial eclipse can be viewed from another 125 national parks.\nFor die-hard sky gazers, six U.S. locations will see the moon cover about 95 percent of the sun’s diameter. They include the Petroglyph National Monument, Redwoods National Park, Lassen Volcanic National Park, Canyon de Chelly National Monument, Zion National Park and Glen Canyon National Recreation Area.\nWherever you are, do not look directly at the eclipsed sun or you can get a serious eye injury. Wear specially made protective glasses that can be bought online or create your own contraption by punching a small pinhole in a cardboard box.\nIf you buy special eyewear, you can recycle it. Two weeks later, Venus will crawl across the face of the sun — a rare occurrence known as the “transit of Venus” that will also require viewers to take precaution.\nVeteran eclipse chaser Jay Pasachoff has traveled to remote corners of the globe to see the moon take a bite of the sun. This time, the Williams College astronomer will travel to New Mexico with his students to collect data.\nSunday’s event will be his 14th ring eclipse and 55th solar eclipse overall. So what does someone who has seen it all look forward to?\nSeeing “the symmetry of a ring of sunlight around the dark silhouette of the moon,” Pasachoff said in an email.\nThe next ring eclipse won’t be visible in the U.S. for more than a decade — October 2023.\n(© Copyright 2012 The Associated Press. All Rights Reserved. This material may not be published, broadcast, rewritten or redistributed.)\nAlso Check Out:"} -{"text": "ement-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(5 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(6), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(6), resp.Thresholds[0].ReadyReplicaCount)\n\tassert.Equal(t, int64(0), resp.Thresholds[0].UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_ExcludesNonScaleUpEvents(t *testing.T) {\n\ts := newTestServer(t)\n\tscaleUp := createTestDeploymentReplicaEventWithRequested(t, s, \"scale-up-only-account\", \"deployment-1\", \"event-up\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 30*time.Minute, 10)\n\tscaleDown := createTestDeploymentReplicaEvent(t, s, \"scale-up-only-account\", \"deployment-1\", \"event-down\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_DOWN, gpb.DeploymentReplicaEvent_FINISHED, time.Minute)\n\tcreateTestDeploymentReplicaEventProgress(t, s, scaleUp.AccountId, scaleUp.DeploymentId, scaleUp.DeploymentReplicaEventId, scaleUp.StartTime.Add(30*time.Minute), 30*time.Minute, 10, 9)\n\tcreateTestDeploymentReplicaEventProgress(t, s, scaleDown.AccountId, scaleDown.DeploymentId, scaleDown.DeploymentReplicaEventId, scaleDown.StartTime.Add(time.Minute), time.Minute, 10, 10)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"scale-up-only-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(9), resp.Thresholds[0].ReadyReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventProgressDistribution_UsesAvailableProgressForOngoingEvents(t *testing.T) {\n\ts := newTestServer(t)\n\tevent := createTestDeploymentReplicaEventWithRequested(t, s, \"ongoing-progress-account\", \"deployment-1\", \"event-ongoing\",\n\t\tgpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP, gpb.DeploymentReplicaEvent_ONGOING, 10*time.Minute, 10)\n\tcreateTestDeploymentReplicaEventProgress(t, s, event.AccountId, event.DeploymentId, event.DeploymentReplicaEventId, event.StartTime.Add(10*time.Minute), 10*time.Minute, 10, 4)\n\n\tresp, err := s.GetDeploymentReplicaEventProgressDistribution(context.Background(), &agpb.GetDeploymentReplicaEventProgressDistributionRequest{\n\t\tFilter: `account_id = \"ongoing-progress-account\"`,\n\t\tThresholds: []*agpb.DeploymentReplicaEventProgressThreshold{\n\t\t\t{Threshold: durationpb.New(30 * time.Minute)},\n\t\t},\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.Thresholds, 1)\n\tassert.Equal(t, int64(10), resp.Thresholds[0].TotalRequestedReplicaCount)\n\tassert.Equal(t, int64(4), resp.Thresholds[0].ReadyReplicaCount)\n\tassert.Equal(t, int64(6), resp.Thresholds[0].UnscheduledReplicaCount)\n}\n\nfunc TestGetDeploymentReplicaEventDurationDistribution_BucketsOrPercentilesRequired(t *testing.T) {\n\ts := newTestServer(t)\n\n\t_, err := s.GetDeploymentReplicaEventDurationDistribution(context.Background(), &agpb.GetDeploymentReplicaEventDurationDistributionRequest{\n\t\tFilter: `account_id = \"test\"`,\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"at least one of buckets or percentiles must be specified\")\n}\n\nfunc TestGetDeploymentReplicaEventDurationDistribution_InvalidFilter(t *testing.T) {\n\ts := newTestServer(t)\n\n\t_, err := s.GetDeploymentReplicaEventDurationDistribution(context.Background(), &agpb.GetDeploymentReplicaEventDurationDistributionRequest{\n\t\tFilter: `invalid_field = \"value\"`,\n\t\tPercentiles: []*agpb.DeploymentReplicaEventDurationPercentile{\n\t\t\t{Percentile: 50},\n\t\t},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"invalid filter\")\n}\n\nfunc TestGetDeploymentReplicaEventDurationDistribution_NilBucketDurations(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Test nil Start duration\n\t_, err := s.GetDeploymentReplicaEventDurationDistribution(context.Background(), &agpb.GetDeploymentReplicaEventDurationDistributionRequest{\n\t\tFilter: `account_id = \"test\"`,\n\t\tBuckets: []*agpb.DeploymentReplicaEventDurationBucket{\n\t\t\t{Start: nil, End: durationpb.New(time.Minute)},\n\t\t},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"bucket 0: start duration is required\")\n\n\t// Test nil End duration\n\t_, err = s.GetDeploymentReplicaEventDurationDistribution(context.Background(), &agpb.GetDeploymentReplicaEventDurationDistributionRequest{\n\t\tFilter: `account_id = \"test\"`,\n\t\tBuckets: []*agpb.DeploymentReplicaEventDurationBucket{\n\t\t\t{Start: durationpb.New(0), End: nil},\n\t\t},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"bucket 0: end duration is required\")\n\n\t// Test nil duration in second bucket\n\t_, err = s.GetDeploymentReplicaEventDurationDistribution(context.Background(), &agpb.GetDeploymentReplicaEventDurationDistributionRequest{\n\t\tFilter: `ac"} -{"text": "NORTH TEXAS (CBSDFW.COM) – A North Texas woman was handcuffed, stripped down and booked into jail – all because of an overdue traffic ticket.\nIt was just a ticket. Sarah Boaz was cited in August after an officer said she ran a stop sign.\nBoaz lost the ticket, but said she knows it was wrong not to have paid it right away. Despite those missteps, she also says she never expected a late fee or penalty to land her in jail.\nIt happens in every city, every day, at just about every intersection. Drivers roll past stop signs, and through stoplights. But getting caught, and getting a ticket, is nothing compared to what Boaz got.\n“I guess it was just frustrating to me, that a bill that I pay a month late, I end up in jail for,” she said.\nBoaz’ expected trip to work Wednesday morning never happened. Because of her unpaid ticket, the Richland Hills City Marshal was waiting at her house with a warrant for her arrest. “I’m like, nobody puts out a bench warrant after 60 days. Why would you do that? You wouldn’t do that.”\nEven when Boaz arrived at the jail, in handcuffs, she still didn’t think it was real. Then a female officer started giving her instructions. She remembered the officer saying, “’I’m going to need you to undress. I’m going to need you to stand against the wall. Please don’t step in front of this white box, or I’ll take that’… aggressive toward me. Obviously I am going to jail.”\nCBS 11 News learned being stripped down is standard procedure for anyone brought to the jail in North Richland Hills. In an email to CBS 11 News Friday morning, the North Richland Hills Police Department said though Boaz was forced to undress, the search is not considered a strip search. In that email they said, “She was given a dress out. Before they go into the cell they are taken by a detention officer of the same sex to a private room with no cameras. They have to remove all clothing and they are given a jumpsuit. The officer searches their clothes, at no time does the officer touch them.”\nRichland Hills is small enough that it only has one marshal. Warrants for unpaid tickets don’t sit around for months, like they might in larger cities.\nAttorney Jason Smith told CBS 11 News though, there’s nothing requiring the city to put people in jail. “The constitution doesn’t keep the government or government officials from using common sense. Unfortunately, some police officers, some governments get overly aggressive because they want that ticket revenue.”\nMunicipal court officials said two reminders were sent to Boaz, which she says she never got.\nA footnote – on Thursday, Boaz’ husband was issued a ticket for not stopping at a stop sign.\nUPDATE (October 25, 2013 1:40 PM): Officials in North Richland Hills indicated Friday that the jail does sometimes allow people to pay fines for traffic tickets when they arrive at the jail, and avoid spending time in a holding cell. Those arrested are still booked in, and photographed, but are not made to change into a jail uniform and sit with others under arrest. The option is only extended to those who have the ability to pay the full amount as soon a law enforcement officers brings them to the jail. Earlier, officials indicated everyone coming to the jail was treated and booked in the same way for officer safety and because more than one municipality uses the facility.\n(©2013 CBS Local Media, a division of CBS Radio Inc. All Rights Reserved. This material may not be published, broadcast, rewritten, or redistributed.)\n- Dallas Police Searching For Man Who Exposed Himself To Woman\n- Former Duncanville Teacher Starts 10 Year Sentence For Student Affair\n- Rain Boots Fit For A Queen On-Trend At Dean & DeLuca Invitational\n- TSA Put To Test With Memorial Day Weekend Travel\n- Texan With Character: Aman Lee\n- Sasquatch Genome Project Reveals Bigfoot Photos\n- Tricks To Using The New iPhone Software\n- Enter The ‘Show Your Spirit’ Sweepstakes\n- Migrating Spiders Sailing Through North Texas Skies\n- Texas Lt. Gov. Says Obama Should Be Impeached\n- PHOTOS: Your Pet Pictures"} -{"text": "|Joining the adult site gives the opportunity of getting acquainted with other people via video chat or web cam, getting in touch with them, visiting sex parties or clubs. That is a new interesting part of your life. Join for free Now!|\nAttractive horny women worldwide. Adult Dating, Live Sex Chat, Instant messages.\ndiscreet dating Garden city Alabama | discreet dating Saint clair Michigan | discreet dating Columbia Illinois | discreet dating Mission hill South Dakota | discreet dating Ansonia Connecticut | discreet dating Fort kent mills Maine | discreet dating Plano Texas | discreet dating Tamworth New Hampshire | discreet dating Glen ellyn Illinois | discreet dating Stanton Michigan | discreet dating Manteo North Carolina | discreet dating Marseilles Illinois | discreet dating Big lake AK | discreet dating Calumet city Illinois | discreet dating Corwith Iowa | discreet dating Leoti Kansas | discreet dating Solon Iowa | discreet dating Shreveport Los Angeles | discreet dating Pickton Texas | discreet dating Studio city California | discreet dating Porters falls West Virginia | discreet dating Powellton West Virginia | discreet dating Horatio Arkansas |Adult classifieds and sex classifieds. Love, romance and passion. Dating for single horny women to find marriage, pen-pals, friends, relationships and sex.\nwild ride baby stand six feet tall red hair green eyes and i like to make people laugh\ndiscreet dating Tiptonville Tennessee\nThe site has adult content and members of fuck buddy get access to a total find hot fuck buddy personals, hot videos of couples fucking on the beach, girls fucking in the locker room, females fucking in the privacy of their own bedrooms, and much more. Fuck buddy is giving you access to new, high quality content all the time. Join our dating site today for free fuck buddy personals!\nLooking for real sex? Meet someone now on the largest sex personals network – photos, chat, more!\nlonely after 17 yrs marriage horny guy 5'8 180lbs needs friends\nJoin for free\nWelcome to world's first and largest site dedicated to horny singles seeking long-term relationship!\nLocal Sex Search seeking Hot Wives for sex.\nSite Map-2 | sexy women club Visit our club and enjoy swinger lifestyle and great tips about how to enter into online swingers clubs, don?t be afraid, even if you have never been into swingers lifestyle, we offer you a complete guide of how to become a swinger. Would you like to meet other couples and singles for some fun swinging activities? | Links Looking for a no strings attached one night stand? Browse through our adult personals or swingers ads for free and find local fuck friends in your area.\nFind the top online dating sites that offer free personals and online personal ads for singles seeking love, sex, and romance on the web\nAdult Dating Are you looking for an Adult Swinger Party? Let's start with Adult FriendFinder. They are the largest dating site on the web catering to adults interested in sexual encounters.\nNaked Girls Photo Personals Once you review the often explicit photos posted here you will most likely want to upgrade to a paid membership right away. It's very easy to join this adult dating site - just complete the registration form (answer three questions and choose a user name - only takes a minute) and you're set to go.\nMeet women for sex From adults and teens all our dating personals are looking to meet someone who is interesting, sensual and serious about relationships. Try our free matchmaking service online and get hooked!\nSexual Health These products will help maximize the pleasure in your sexual experiences\n|Copyright © 2013 www.sexywomenclub.com All Rights Reserved.|\n|The best way to start is by registering for FREE so you can review all the services this adult dating site has to offer. You can post your personal profile and pictures, browse other members' profiles and send a wink to anyone to show your interest. Once you review the often explicit photos posted here you will most likely want to upgrade to a paid membership right away. It's very easy to join this adult dating site - just complete the registration form (answer three questions and choose a user name - only takes a minute) and you're set to go. Free Dating Sex Adult Personals Adult Personals Site Find Members in your area seeking discreet relationships and no strings sex|"} -{"text": "count_id = \"test\"`,\n\t\tBuckets: []*agpb.DeploymentReplicaEventDurationBucket{\n\t\t\t{Start: durationpb.New(0), End: durationpb.New(time.Minute)},\n\t\t\t{Start: nil, End: durationpb.New(5 * time.Minute)},\n\t\t},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"bucket 1: start duration is required\")\n}\n\n// TestGetDeploymentReplicaEventDurationDistribution_WithTimestampFilter tests that timestamp filters work correctly.\n// Note: This test verifies the filter parsing works, but SQLite doesn't support percentile_cont/COUNT FILTER,\n// so actual distribution calculation is only tested against PostgreSQL.\nfunc TestGetDeploymentReplicaEventDurationDistribution_WithTimestampFilter(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Create test events with specific timestamps\n\ttime1 := time.Date(2024, 1, 1, 12, 0, 0, 0, time.UTC)\n\ttime2 := time.Date(2024, 1, 15, 12, 0, 0, 0, time.UTC)\n\ttime3 := time.Date(2024, 2, 1, 12, 0, 0, 0, time.UTC)\n\n\tevent1 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(\"dist-time-account\", \"deployment-1\", \"dist-time-event-1\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (2 * time.Minute).Nanoseconds(),\n\t\tStartTime: time1,\n\t\tEndTime: time1.Add(2 * time.Minute),\n\t}\n\trequire.NoError(t, s.DB().Create(event1).Error)\n\n\tevent2 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(\"dist-time-account\", \"deployment-1\", \"dist-time-event-2\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (5 * time.Minute).Nanoseconds(),\n\t\tStartTime: time2,\n\t\tEndTime: time2.Add(5 * time.Minute),\n\t}\n\trequire.NoError(t, s.DB().Create(event2).Error)\n\n\tevent3 := &database.DeploymentReplicaEvent{\n\t\tDeploymentReplicaEventName: *resourcename.NewDeploymentReplicaEventName(\"dist-time-account\", \"deployment-1\", \"dist-time-event-3\"),\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: (10 * time.Minute).Nanoseconds(),\n\t\tStartTime: time3,\n\t\tEndTime: time3.Add(10 * time.Minute),\n\t}\n\trequire.NoError(t, s.DB().Create(event3).Error)\n\n\t// Test with timestamp filter - this verifies the filter parsing works correctly\n\t// The actual distribution calculation will fail on SQLite but the filter should parse\n\t_, err := s.GetDeploymentReplicaEventDurationDistribution(context.Background(), &agpb.GetDeploymentReplicaEventDurationDistributionRequest{\n\t\tFilter: `account_id = \"dist-time-account\" AND start_time >= timestamp(\"2024-01-01T00:00:00Z\") AND start_time <= timestamp(\"2024-01-31T23:59:59Z\")`,\n\t\tBuckets: []*agpb.DeploymentReplicaEventDurationBucket{\n\t\t\t{Start: durationpb.New(0), End: durationpb.New(5 * time.Minute)},\n\t\t\t{Start: durationpb.New(5 * time.Minute), End: durationpb.New(15 * time.Minute)},\n\t\t},\n\t\tPercentiles: []*agpb.DeploymentReplicaEventDurationPercentile{\n\t\t\t{Percentile: 50},\n\t\t\t{Percentile: 90},\n\t\t},\n\t})\n\t// SQLite doesn't support percentile_cont/COUNT FILTER, so we expect an error in unit tests\n\t// In integration tests against PostgreSQL, this should succeed\n\tif err != nil {\n\t\t// Verify it's a SQL syntax error from SQLite, not a filter parsing error\n\t\tassert.NotContains(t, err.Error(), \"invalid filter\", \"Filter should parse correctly, error should be from SQLite not supporting aggregate functions\")\n\t}\n}\n\n// TestBuildPercentileQuery verifies the PostgreSQL percentile query is built correctly.\nfunc TestBuildPercentileQuery(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tpercentiles []*agpb.DeploymentReplicaEventDurationPercentile\n\t\texpectedSQL string\n\t}{\n\t\t{\n\t\t\tname: \"single percentile p50\",\n\t\t\tpercentiles: []*agpb.DeploymentReplicaEventDurationPercentile{\n\t\t\t\t{Percentile: 50},\n\t\t\t},\n\t\t\texpectedSQL: `COALESCE(percentile_cont(ARRAY[0.5]) WITHIN GROUP (ORDER BY \"Duration\"), ARRAY[]::float8[])`,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple percentiles p50 p90 p99\",\n\t\t\tpercentiles: []*agpb.DeploymentReplicaEventDurationPercentile{\n\t\t\t\t{Percentile: 50},\n\t\t\t\t{Percentile: 90},\n\t\t\t\t{Percentile: 99},\n\t\t\t},\n\t\t\texpectedSQL: `COALESCE(percentile_cont(ARRAY[0.5, 0.9, 0.99]) WITHIN GROUP (ORDER BY \"Duration\"), ARRAY[]::float8[])`,\n\t\t},\n\t\t{\n\t\t\tname: \"edge case p0 and p100\",\n\t\t\tpercentiles: []*agpb.DeploymentReplicaEventDurationPercentile{\n\t\t\t\t{Percentile: 0},\n\t\t\t\t{Percentile: 100},\n\t\t\t},\n\t\t\texpectedSQL: `COALESCE(percentile_cont(ARRAY[0, 1]) WITHIN GROUP (ORDER BY \"Duration\"), ARRAY[]::float8[])`,\n\t\t},\n\t\t{\n\t\t\tname: \"common SLA percentiles\",\n\t\t\tpercentiles: []*agpb.DeploymentReplicaEventDurationPercentile{\n\t\t\t\t{Percentile: 50},\n\t\t\t\t{Percentile: 75},\n\t\t\t\t{Percentil"} -{"text": "I have been following the Terry Gives Groupie a Facial, Groupie Doesn’t Become Model, Groupie Gets Mad and Decides She’s a Victim 4 Years Later, Because She Regrets Gettting a Facial and it’s The Only Way To Get Her Name Out There story and in doing that I’ve been calling out the Terry Groupie who is accusing Terry of abusing her.\nThe fact is simple. She wants attention drawn to herself, whether he came on her face or not.\nThe other fact is that 4 years down the road, the memories we have shift and change and become stories of their own that aren’t quite as relevant as the day after they happened. It’s easy to say I was paralyzed by the abuse, when she was probably really at a party the next day getting drunk and fucking the bartender…you know, it’s so easy to feel abused when having Terry cum on your face is the only thing you’ve accomplished and need to leverage in 4 years….\nEveryone knows Terry shoots sex, that’s his whole career foundation. When he started doing mainstream campaigns in 2005, I didn’t understand how people would touch him, because all his published shit was hardcore “artistic” porn…\nThis girl knew the fucking deal, tt was 4 years ago, and now that she’s decided that being a party slut who was impressed to be in Terry’s studio is bad for her lesbian, feminist, career, past…or maybe boyfriend…and it’s time to accuse a motherfucker because everyone’s doing it.. just because she figures it will get her name out there…\nThat said, Terry, who never speaks on this shit, even though he should, because not speaking on it will make people think he did it, or that he is guilty, based on his archive of work…and I am posting it…because I appreciate what he said and how he said it…\nFour years ago, I chose to primarily ignore a cycle of Internet gossip and false accusations against me. At that time, I felt that to dignify them with a response was a betrayal of my work and my character. When these allegations resurfaced over the past few months, they seemed especially vicious and distorted, moving outside the realm of critical dialogue and becoming nothing more than an emotionally-charged witch hunt. Enabled and protected by the freewheeling and often times anonymous nature of the Internet, people have become comfortable concocting hate-filled and libelous tales about my professional and personal lives. In writing this, I make a humble attempt at correcting these rumors, because I have come to realize that absent my voice in the conversation, all that remain are the lies.\nWhen I moved to New York in 1990 to take pictures, a lot of my work was a documentation of my life in the East Village; it was gritty, transgressive, and the aesthetic broke with the well-lit, polished fashion images of the time. My first big campaign, shot in 1994, was a provocative picture of a couple embracing in a bar. It was a shocking image for its time and the first instance a photograph of this nature was used in a major fashion advertisement.\nLike Robert Mapplethorpe, Helmut Newton, and so many others before me, sexual imagery has always been a part of my photography. Ten years ago, in 2004, I presented some of this work at a gallery show in New York City, accompanied by a book of the photos. The show was very popular and highly praised. The images depicted sexual situations and explored the beauty, rawness, and humor that sexuality entails. I collaborated with consenting adult women who were fully aware of the nature of the work, and as is typical with any project, everyone signed releases. I have never used an offer of work or a threat of rebuke to coerce someone into something that they did not want to do. I give everyone that I work with enough respect to view them as having ownership of their free will and making their decisions accordingly, and as such, it has been difficult to see myself as a target of revisionist history. Sadly, in the on-going quest for controversy-generated page views, sloppy journalism fueled by sensationalized, malicious, and manipulative recountings of this work has given rise to angry Internet crusades. Well-intentioned or not, they are based on lies. Believing such rumors at face value does a disservice not only to the spirit of artistic endeavor, but most importantly, to the real victims of exploitation and abuse.\nPeople will always have strong opinions about challenging images, and the dichotomy of sex is that it is both the most natural and universal of human behaviors and also one of the most sensitive and divisive. Over the course of my career, I have come to accept that some of my more provocative work courts controversy, and as an artist, I value the discourse that arises from this. I can only hope for this discourse to be informed by fact, so that whether you love my work or hate it, you give it, and me, the benefit of the truth.\nMore from DrunkenStepfather\nPosted in:Terry Richardson"} -{"text": "William “Buzzy” Buswell, owner of a local transportation company, complained that something seems to be amiss with a recently resurfaced section of Route 100, beginning near the Matterhorn and running into Wardsboro. “As a taxpayer who paid (more than $26,000) in transportation taxes last year, I’m upset with the garbage the state has given us for Route 100,” he said.\nBuswell said rainwater collects in the areas of the road that vehicle tires contact, and that he hydroplaned on the road during one of the recent rainstorms.\n“I agree completely,” said board member Tom Baltrus, who is a MOOver driver. “It collects more water than it did before. If it rains, you see two rivers. (The resurfacing) doesn’t seem to have made much difference, but there are no cracks.”\nBuswell said he thought the initial surfacing had been a base coat, and was waiting for contractors to finish with a top coat. But this week, the state painted lines on the new asphalt. Dover resident Eddie Barber said he was under the impression that the new surface was an “experimental” product intended to “give and take and not crack as much.”\nAt the suggestion of several residents, the board agreed to contact the state highway department asking them to address the concerns. “In the winter, that’s all going to be ice in the roadway,” said treasurer Patty Westlake.\nBarber urged the board to send a certified letter. “I travel that road eight times back and forth during the week,” he said. “There’s something radically wrong with that road where the rain collects in the tire tracks.”\nBoard member Vicki Capitani questioned whether the town had been successful in pursuing highway concerns in the past. “We could elect Phil,” said selectboard chair Randy Terk, referring to former Dover Road Commissioner and state representative Phil Bartlett. “That’s how we got it paved before.”\nIn economic development discussions, Dover’s “DO-IT” (Dover Opportunity for Investment in the Town) program, which provides partial funding to help spruce up roadside commercial areas, has proven so popular that this year’s funding ran out less than 24 hours after the application period opened. Year-round “brick-and-mortar” businesses in Dover are eligible for one grant per year, and must complete the work before the end of the year. The grant, which is for between $500 and $2,500, must be used for materials or labor connected to a project to improve exterior aesthetics.\nAt their last meeting, economic development specialist Ken Black told board members that all of the $25,000 in funding for the current fiscal year was spoken for in a matter of hours. “The application window opened at midnight, July 1, and by 9:24 am, the program was out of funding,” Black said.\nThis week Black suggested adding another $15,000 funding for three additional applications that came in after the funding ran out on the first day of the fiscal year, as well as others that may come in during the year.\nBoard members said they were pleased with the popularity of the program, but appeared hesitant to commit additional funding from the current fiscal year. Terk asked what kind of projects have been submitted. “Everything from paving parking areas to repairing the fronts of buildings, power-washing and sanding decks, replacing siding and clapboards,” Black said.\nBoard members suggested transferring $7,600 in unused funds from the, apparently, less popular “DASP” (Dover Advertising Support Program) to cover the unmet need in the DO-IT program.\nBuswell, who owns a home-based business ineligible for the program, objected to an expansion of the program. “I don’t think you should expand it because we don’t know the full outcome of how the program will work,” he said. “Did everyone do what they said they would do? Increase it next year, if everything is kosher. My stand is that a lot of businesses in Dover were discriminated against because they’re not brick-and-mortar businesses. I don’t think that makes a lot of business sense.”\nTerk agreed that, at the end of this year’s program, the project should be evaluated for its effectiveness. “In the meantime, this is its first year in existence, and we have a recommendation that we should increase it,” he said. “I don’t want to take money away from programs we have, but I’m willing to take money away from one that hasn’t been successful.”\nThe board voted to transfer the money. Black noted that it would cover the unmet need for the three applications he has, with about $450 left over for a future applicant.\nIn other economic development matters, the board received a letter from economic development assistant Linda Anelli, who said she would be resigning, effective October 1. “Linda has been a big asset to the department, and I thank her for her service,” said Black.\n“Speaking for the board, we appreciate all of the efforts and contributions she has made to economic development,” said Terk. “And, I would add, for everything else she has done in the valley.”\nCapitani moved to accept Anelli’s resignation “with extreme regret.”\nIn other matters, board members approved Guy Nido’s heating oil bid at $3.38, which was about four cents less than the only other bidder. Last year’s bid price was $3.16."} -{"text": "e: 90},\n\t\t\t\t{Percentile: 95},\n\t\t\t\t{Percentile: 99},\n\t\t\t},\n\t\t\texpectedSQL: `COALESCE(percentile_cont(ARRAY[0.5, 0.75, 0.9, 0.95, 0.99]) WITHIN GROUP (ORDER BY \"Duration\"), ARRAY[]::float8[])`,\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tsql := buildPercentileQuery(tc.percentiles)\n\t\t\tassert.Equal(t, tc.expectedSQL, sql)\n\t\t})\n\t}\n}\n\n// TestBuildBucketQuery verifies the PostgreSQL bucket counting query is built correctly.\nfunc TestBuildBucketQuery(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuckets []*agpb.DeploymentReplicaEventDurationBucket\n\t\texpectedSQL string\n\t\texpectedArgs []interface{}\n\t}{\n\t\t{\n\t\t\tname: \"single bucket\",\n\t\t\tbuckets: []*agpb.DeploymentReplicaEventDurationBucket{\n\t\t\t\t{Start: durationpb.New(0), End: durationpb.New(time.Minute)},\n\t\t\t},\n\t\t\texpectedSQL: `COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?)`,\n\t\t\texpectedArgs: []interface{}{int64(0), int64(60000000000), int64(0), int64(60000000000), int64(0)},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple buckets\",\n\t\t\tbuckets: []*agpb.DeploymentReplicaEventDurationBucket{\n\t\t\t\t{Start: durationpb.New(0), End: durationpb.New(time.Minute)},\n\t\t\t\t{Start: durationpb.New(time.Minute), End: durationpb.New(5 * time.Minute)},\n\t\t\t\t{Start: durationpb.New(5 * time.Minute), End: durationpb.New(10 * time.Minute)},\n\t\t\t},\n\t\t\texpectedSQL: `COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?), ` +\n\t\t\t\t`COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?), ` +\n\t\t\t\t`COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?)`,\n\t\t\texpectedArgs: []interface{}{\n\t\t\t\tint64(0), int64(60000000000), int64(0), int64(60000000000), int64(0),\n\t\t\t\tint64(60000000000), int64(300000000000), int64(60000000000), int64(300000000000), int64(60000000000),\n\t\t\t\tint64(300000000000), int64(600000000000), int64(300000000000), int64(600000000000), int64(300000000000),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"hour-based buckets\",\n\t\t\tbuckets: []*agpb.DeploymentReplicaEventDurationBucket{\n\t\t\t\t{Start: durationpb.New(0), End: durationpb.New(time.Hour)},\n\t\t\t\t{Start: durationpb.New(time.Hour), End: durationpb.New(24 * time.Hour)},\n\t\t\t},\n\t\t\texpectedSQL: `COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?), ` +\n\t\t\t\t`COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?)`,\n\t\t\texpectedArgs: []interface{}{\n\t\t\t\tint64(0), int64(3600000000000), int64(0), int64(3600000000000), int64(0),\n\t\t\t\tint64(3600000000000), int64(86400000000000), int64(3600000000000), int64(86400000000000), int64(3600000000000),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"overlapping buckets for cumulative distribution\",\n\t\t\tbuckets: []*agpb.DeploymentReplicaEventDurationBucket{\n\t\t\t\t{Start: durationpb.New(0), End: durationpb.New(time.Minute)},\n\t\t\t\t{Start: durationpb.New(0), End: durationpb.New(5 * time.Minute)},\n\t\t\t\t{Start: durationpb.New(0), End: durationpb.New(10 * time.Minute)},\n\t\t\t},\n\t\t\texpectedSQL: `COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?), ` +\n\t\t\t\t`COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?), ` +\n\t\t\t\t`COUNT(*) FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ? AND \"Duration\" < ?), ` +\n\t\t\t\t`COUNT(DISTINCT \"DeploymentId\") FILTER (WHERE \"Duration\" >= ?)`,\n\t\t\texpectedArgs: []interface{}{\n\t\t\t\tint64(0), int64(60000000000), int64(0), int64(60000000000), int64(0),\n\t\t\t\tint64(0), int64(300000000000), int64(0), int64(300000000000), int64(0),\n\t\t\t\tint64(0), int64(600000000000), int64(0), int64(600000000000), int64(0),\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tsql, args := buildBucketQuery(tc.buckets)\n\t\t\tassert.Equal(t, tc.expectedSQL, sql)\n\t\t\tassert.Equal(t, tc.expectedArgs, args)\n\t\t})\n\t}\n}\n\n// No"} -{"text": "“A song will outlive all sermons in the memory.” – Henry Giles\nIt isn’t difficult to recognize the power of song. It takes just a few moments to recall those tunes that have stayed with us through our lives or marked important moments in our personal evolution and relationships, whether celebratory or challenging. It is pretty amazing how a three-minute story or idea set to melody and rhythm can have such a tremendous and lasting impact. Classic songs like John Lennon’s “Imagine,” or Nat King Cole’s “Unforgettable,” have left a seemingly timeless impression across countless cultural and generational boundaries, resonating in the hearts and memories of hundreds of millions of people.\nOut of the song emerged an entire industry, celebrated this past week in Los Angeles and culminating with Sundays telecast of the Grammy Awards, otherwise known as “Music’s Biggest Night.” While some critics may turn their noses up at what they consider an over-commercialization of music recognized by the event, I am happy to report that music was also being recognized and honored for the value it has in our lives and in critical areas of our society, like education.\nA couple of notable events of Grammy Week that shined a light on these higher values, and on the importance of the song in the evolution of society, included:\nThe Grammy Foundation Legacy concert, “A Song Is Born,” at the Wilshire Ebell Theater: This event was a songwriter’s dream, bringing together the crème-de-la-crème of popular songwriters doing rare performances of their own work. Some highlights included performances by Skylar Grey, Gaven McGraw, Dan Wilson, Paul Williams, Kris Kristofferson, Steve Cropper and Bonnie Raitt. The cause uniting them, beyond the songs and community, was a commitment to keep music alive for the next generations by donating all proceeds to support critical music preservation and education initiatives.\nMusiCares Benefit Gala and Tribute to Carole King at the LA Convention Center: Carole King is considered one of the most successful female songwriters of the past 50 years, contributing to 118 pop hits, including countless classics like “You’ve Got a Friend” and “(You Make Me Feel Like) A Natural Woman”. In addition to providing the soundtrack to so many people’s lives, Carole still remains a committed and outspoken advocate for environmental and other important social causes. Many admirers turned out to perform Carole King’s songs in her honor, including Alicia Keys, Pink, Lady Gaga, Sara Bareilles, and James Taylor.\nThe evening raised 5.5 million for MusiCares, which provide emergency financial assistance and addition recovery programs to musicians in need.\nChildren’s Grammy Nominee Concert at the Ann & Jerry Moss Theater: Not only did this event raise money for music programs for kids, it celebrated the most popular artists that make music specifically for those kids. Although lesser known, this is a growing and important part of the Grammy programming – to spotlight a community of artists focusing on children and the music created to help them grow and learn.\nInaugural Music Educator Grammy Award: 2014 marked an important moment in Grammy history – the offering of the first Grammy award for Music Teachers. This comes at a critical time, when music programs across the country have been decimated by funding cuts and a narrowing focus of STEM-based programming. The recognition of the critical role a great music teacher can play in the lives and development of young students is long past overdue. The inclusion, however, in such a high profile media event is a great step toward helping our nation and its leaders recognize the essential need to re-instate and support music education programs in schools across America. If you have any doubt as to the benefit a great music teacher can bring to a child’s life, it is worth taking a look at the CBS profile on this year’s prizewinner, Kent Knappenberger (“Mr. K”). The ripple effect of establishing the award was also quite powerful. Over 30,000 music educators were nominated by their peers for this year’s Grammy, giving recognition and pride to dedicated and under-appreciated teachers across the country.\nIt is reassuring to experience these times when music – something at the core of everyone’s heart, can give heart to an industry that is often looked upon as uncaring. The power of a great song is that it sees no barriers and can, as Bono put it, “thaw the hardest hearts.” Music is also essential to the development of our children’s minds, social adaptability and overall well-being. As I like to put it: a good meal can feed a man for a day, but a great song can feed a million souls for a lifetime.\nMy hope is that, after the glitter and glamor of Grammy week has faded, the spotlight can continue to shine bright on, and draw the world’s attention to, music’s critical role in these other areas of our lives and society. Maybe one day there will even be a Billboard Chart for the year’s top songs ranked by their positive social impact, and artists will be rated – not by the number of records they sold, but rather by the number of hearts they have truly touched, and by their contributions to the betterment of humanity.\nView this article on Huffington Post."} -{"text": "- Low concentrations of polonium are all around the environment\n- Smokers are exposed to more polonium than nonsmokers because it's in tobacco\n- Expert: Radiation poisoning from polonium-210 looks like the end stage of cancer\nWhether a radioactive substance called polonium-210 was involved in Yasser Arafat's death is under investigation. The body of the former Palestine Liberation Organization leader was exhumed Tuesday for this purpose and reburied.\nArafat died in 2004. A murder inquiry into his death was opened this year after high levels of polonium-210 were found on Arafat's toothbrush, clothing and keffiyeh, the black-and-white headscarf he often wore.\nTawfiq Tirawi, head of the Palestinian investigation committee, said forensic experts from France, Switzerland and Russia took their own samples for independent analysis.\nPolonium-210 is not a radioactive substance that emits gamma particles, which can travel through walls at extremely high energies. Instead, as polonium-210 decays, it releases alpha particles, which can't even pass through a piece of paper.\nBut alpha particles are still dangerous. They travel short distances and retain a high amount of energy.\nIn nature, it takes about 138 days for half of a given quantity of polonium-210 to decay. But because biological processes also work to eliminate the substance, it takes about 50 days for half of it to disappear while inside the body, according to the Centers for Disease Control and Prevention (PDF).\nPolonium-210 is a problem to humans only when it gets into the body. The International Atomic Energy Agency says that careful hand-washing and showering can eliminate most traces of this substance.\nThe radioactive substance can enter body by eating or drinking contaminated things, breathing contaminated air, or inhaling or ingesting bodily fluids from someone contaminated with it. A wound can also become contaminated.\n\"Radiation, just like with any toxic chemical, is related to dose,\" said Cham Dallas, a professor and toxicologist at the University of Georgia's Institute for Health Management and Mass Destruction Defense. \"If you get a big dose, then you'll die sooner.\"\nAnd with polonium-210, a dangerous dose can be a matter of micrograms: smaller than a single speck of pepper, he said.\nIf you ingest polonium-210, about 50% to 90% of the substance will exit the body through feces, according to a fact sheet from Argonne National Laboratory (PDF). What is left will enter the bloodstream. About 45% of polonium ingested gets into the spleen, kidneys and liver, and 10% is deposited in the bone marrow.\nRadiation poisoning from polonium-210 looks like the end stage of cancer, Dallas said.\nLiver and kidney damage ensue, along with extreme nausea and severe headaches. Victims often experience vomiting, diarrhea and hair loss. The alpha particles emitted from the decaying substance get absorbed in the body, which is what causes harm. Death may come in a matter of days, sometimes weeks.\nThere is no cure for severe radiation poisoning, Dallas said. A few experimental treatments are in the works for people who are able to stay on the edge of potential survival, but they have not been approved by the U.S. Food and Drug Administration.\nArafat died at age 75 at a Paris military hospital after he suffered a brain hemorrhage and slipped into a coma. Palestinian officials said in the days before his death that Arafat had a blood disorder -- though they ruled out leukemia -- and that he had digestive problems.\nRumors of poisoning circulated at the time, but Palestinian officials denied them, and then-Foreign Minister Nabil Sha'ath said he \"totally\" ruled them out.\nOver the course of a year, through natural sources and medical tests, the average American gets an effective radiation dose of 6.2 millisieverts (mSv). A potentially lethal dose of polonium-210 is 5 sieverts (Sv), Dallas said, which is about 1,000 times more powerful than that average year's worth of exposure.\nLow concentrations of polonium are all around the environment. Additionally, tobacco contains polonium, and about twice as much of the radioactive substance has been found in the ribs of smokers than non nonsmokers, according to the Argonne report.\nAs for investigating a polonium poisoning, there are instruments that can detect low concentrations of polonium, Dallas said. But there's also a background level of polonium found in nature, so if an alleged poisoning happened many years ago, the remaining quantity in the body may be close to the background level.\nAnother tricky part about investigating a situation like this years after a potential poisoning: It would be relatively easy for someone to contaminate evidence after the fact with a small amount of the substance, Dallas said.\nSo it's possible that someone could have planted small amounts of polonium-210 in Arafat's belongings, Dallas said. High levels were found by a team of Swiss researchers at the Institut de Radiophysique.\nEven through exhuming the body, it's not clear that detection would be foolproof, Dallas said. As time goes on, there's less and less of the radioactive substance left, so it would be more and more difficult to tell how much polonium-210 Arafat was exposed to, if any.\n\"It's going to be very hard to determine whether polonium was ever introduced there,\" Dallas said. \"There will be a lot of dispute, I guess, depending on who is incriminated by this.\""} -{"text": "te: SQLite doesn't support percentile_cont and COUNT FILTER so the functions using those are skipped in unit tests.\n\n// Tests for CreateDeploymentReplicaEvents\n\nfunc TestCreateDeploymentReplicaEvents_Success_SingleEvent(t *testing.T) {\n\ts := newTestServer(t)\n\n\tevent := &gpb.DeploymentReplicaEvent{\n\t\tName: \"accounts/test-account/deployments/test-deployment/replicaEvents/test-event-1\",\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: durationpb.New(30 * time.Second),\n\t\tStartTime: timestamppb.Now(),\n\t\tEndTime: timestamppb.Now(),\n\t\tPlacement: &gpb.Placement{\n\t\t\tRegion: gpb.Region_US_IOWA_1,\n\t\t},\n\t\tInitialReplicaState: &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\t\tDesired: 1,\n\t\t\tCurrent: 1,\n\t\t\tMin: 1,\n\t\t},\n\t\tTargetReplicaState: &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\t\tDesired: 2,\n\t\t\tCurrent: 2,\n\t\t\tMin: 1,\n\t\t},\n\t}\n\n\t_, err := s.CreateDeploymentReplicaEvents(context.Background(), &agpb.CreateDeploymentReplicaEventsRequest{\n\t\tDeploymentReplicaEvents: []*gpb.DeploymentReplicaEvent{event},\n\t})\n\trequire.NoError(t, err)\n\n\t// Verify the event was created\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"test-account\" AND deployment_id = \"test-deployment\" AND deployment_replica_event_id = \"test-event-1\"`,\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.DeploymentReplicaEvents, 1)\n\tassert.Equal(t, event.Name, resp.DeploymentReplicaEvents[0].Name)\n\tassert.Equal(t, event.Type, resp.DeploymentReplicaEvents[0].Type)\n\tassert.Equal(t, event.Status, resp.DeploymentReplicaEvents[0].Status)\n}\n\nfunc TestCreateDeploymentReplicaEvents_Success_MultipleEvents(t *testing.T) {\n\ts := newTestServer(t)\n\n\tevents := []*gpb.DeploymentReplicaEvent{\n\t\t{\n\t\t\tName: \"accounts/batch-account/deployments/batch-deployment/replicaEvents/batch-event-1\",\n\t\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\t\tDuration: durationpb.New(30 * time.Second),\n\t\t\tStartTime: timestamppb.Now(),\n\t\t\tEndTime: timestamppb.Now(),\n\t\t\tPlacement: &gpb.Placement{\n\t\t\t\tRegion: gpb.Region_US_IOWA_1,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tName: \"accounts/batch-account/deployments/batch-deployment/replicaEvents/batch-event-2\",\n\t\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_DOWN,\n\t\t\tStatus: gpb.DeploymentReplicaEvent_ONGOING,\n\t\t\tDuration: durationpb.New(60 * time.Second),\n\t\t\tStartTime: timestamppb.Now(),\n\t\t\tEndTime: timestamppb.Now(),\n\t\t\tPlacement: &gpb.Placement{\n\t\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tName: \"accounts/batch-account/deployments/batch-deployment/replicaEvents/batch-event-3\",\n\t\t\tType: gpb.DeploymentReplicaEvent_MANUAL_SCALE_UP,\n\t\t\tStatus: gpb.DeploymentReplicaEvent_CANCELLED,\n\t\t\tDuration: durationpb.New(90 * time.Second),\n\t\t\tStartTime: timestamppb.Now(),\n\t\t\tEndTime: timestamppb.Now(),\n\t\t\tPlacement: &gpb.Placement{\n\t\t\t\tRegion: gpb.Region_US_IOWA_1,\n\t\t\t},\n\t\t},\n\t}\n\n\t_, err := s.CreateDeploymentReplicaEvents(context.Background(), &agpb.CreateDeploymentReplicaEventsRequest{\n\t\tDeploymentReplicaEvents: events,\n\t})\n\trequire.NoError(t, err)\n\n\t// Verify all events were created\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"batch-account\" AND deployment_id = \"batch-deployment\"`,\n\t})\n\trequire.NoError(t, err)\n\tassert.Len(t, resp.DeploymentReplicaEvents, 3)\n}\n\nfunc TestCreateDeploymentReplicaEvents_Error_EmptyList(t *testing.T) {\n\ts := newTestServer(t)\n\n\t_, err := s.CreateDeploymentReplicaEvents(context.Background(), &agpb.CreateDeploymentReplicaEventsRequest{\n\t\tDeploymentReplicaEvents: []*gpb.DeploymentReplicaEvent{},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"at least one deployment replica event must be specified\")\n}\n\nfunc TestCreateDeploymentReplicaEvents_Error_InvalidResourceName(t *testing.T) {\n\ts := newTestServer(t)\n\n\tevent := &gpb.DeploymentReplicaEvent{\n\t\tName: \"invalid-resource-name\",\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: durationpb.New(30 * time.Second),\n\t}\n\n\t_, err := s.CreateDeploymentReplicaEvents(context.Background(), &agpb.CreateDeploymentReplicaEventsRequest{\n\t\tDeploymentReplicaEvents: []*gpb.DeploymentReplicaEvent{event},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"invalid deployment replica event name\")\n}\n\nfunc TestCreateDeploymentReplicaEvents_Error_MissingName(t *testing.T) {\n\ts := newTestServer(t)\n\n\tevent := &gpb.DeploymentReplicaEvent{\n\t\tName: \"\", // Empty name\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: durationpb.New(30 * time.Second),\n\t}\n\n\t_, err := s.CreateDeploymentReplicaEvents(context.Background(), &agpb.CreateDeploymentReplicaEventsRequest{\n\t\tDeploymentReplicaEvents: []*gpb.DeploymentReplicaEvent{"} -{"text": "- Many find it hard to disconnect, even when on holiday\n- Westin Dublin hotel lets users swap cell phones for \"detox survival kit\"\n- \"Digital detox\" next big thing, according to travel industry report\n- But many guests still prefer hotel wi-fi to ditching technology\nWith the advent of smartphones we've become used to being constantly connected, even when we're on the road or on vacation. But now a growing number of hotels are adding \"digital detox\" packages to their roster of offerings.\nDetox packages are nothing new. For decades, hotels and vacation retreats have enticed guests to \"clean out,\" often with the help of a specialized diet plan and fitness regimens (with a massage thrown in for good measure). These days, the concept is being pushed to help us disconnect from technology. The World Travel Market Global Trends Report even listed digital detox as one of the next big trends to hit the hospitality industry in the coming year.\nThe push has come on the heels of increasing reports of travelers' inability to \"unplug.\" A recent Google survey found that in the United States, 80% of smartphone users almost never leave their home without their device, while a TripAdvisor survey found nearly half of mobile owners use their phone to augment their vacation (e.g. taking travel photos, researching restaurants, and so on).\n\"We've witnessed the increased dependency people now have on their electronic devices,\" notes Andrew Henning, the general manager at The Westin Dublin, in Ireland.\nIn March, the hotel introduced a digital detox package to combat this gadget addiction (recently classified in the media as \"nomophobia\"). Guests that partake in the package stash their electronic devices in a safe, and in exchange get a detox survival kit, which includes a board game, a walking map, a tree-planting kit, and other reminders that life exists beyond the confines of an iPad.\nVia Yoga, a company that hosts yoga retreats in Mexico and Costa Rica, feels so strongly about the need for its guests to unplug that it decided to offer a 15% discount as an incentive for anyone willing to give up their iPhone.\n\"In the last couple of years, people have started carrying their phones and tablets with them all the time,\" notes Suzie Cavassa, the company founder.\n\"Our customers were even using them at dinner, or when hanging out by the pool,\" she says. \"They were so preoccupied that they were missing out on the experiences they were paying for.\"\nFor guests that take the detox option (about 15 per season), Cavassa will lock away their devices and give them an emergency number, so that if someone does really need to reach them, they're not completely out of touch.\n\"If someone needs to get hold of you, they can. But you're not working or checking Facebook; you're just experiencing the moment, checking out the sunset, or having a great conversation with someone you just met.\"\nCavassa admits that it takes a few days for most guests to stop feeling antsy as a result of the separation from their devices. Physical activities, like surfing and yoga, help make the transition easier, she notes.\n\"Surfing is the type of activity that forces you to be in the present,\" she says. \"There's no way you're thinking about Facebook or what you have to do at work when a giant wave comes at you.\"\nVia Yoga's detox package is popular, but other venues offering similar packages admit that while there's interest, they're not flooded with bookings.\nThe Hotel Monaco Chicago provides guests with a \"black-out\" option, whereby they surrender their gadgets to reception upon checking in.\n\"We were constantly hearing from guests how they loved that the Monaco was an escape from the hustle and bustle of the city,\" says Marco Scherer, the hotel's general manager. \"We decided to allow our guests the option to experience the ultimate seclusion by voluntarily forfeiting all methods of electronic communication at check-in.\"\nThough guests are intrigued by the package, Scherer says very few actually opt to give up their devices.\n\"Most guests prefer our free wi-fi,\" he admits.\nHenning says the same is true at the Westin. While guests from as far afield as Belgium, France, Poland and South Korea have called and expressed interest in the package, none have yet booked it.\nHe says: \"We have found that guests are intrigued by the idea of detoxing from their electronic devices, but are not quite willing to make the commitment to a full digital detox.\""} -{"text": "- \"For the Islamists, a human being is like an ant you squash,\" Gao resident says\n- Residents: Once vibrant northern Mali is now a shadow of itself\n- \"Home is not sweet anymore,\" Timbuktu native says\n- An offensive led by French troops is aimed at flushing out the militants\nThere's no shortage of harrowing stories of life under Islamist militants in northern Mali.\nPublic floggings for smoking a cigarette.\nBrutal beatings for working as a radio journalist.\nBroken limbs. Broken hearts.\n\"For the Islamists, a human being is like an ant you squash, like an animal you slaughter,\" said Sedou Sangare, a resident of the northern town of Gao.\nGao was once a vibrant community filled with colorful camel caravans lazily strolling down the streets. Bearded men and beaded women mingled freely.\nThen the Islamists rode in on rundown pickup trucks, armed to the teeth.\nThey banned smoking, television, sports and music -- a major setback for the northern region known for its \"Festival au Desert.\"\nThey forbade unwed men and women from mixing in public.\nAn offensive led by France is aiming to stop the militants from expanding their reach to the capital of Mali.\nBut the north remains under the Islamists' iron grip.\nThough Gao has a majority Muslim population, most residents practice a more relaxed form of the religion.\nAfter militants started imposing a stricter form of Islamic law, or Sharia, throngs took to the streets in protest.\n\"When they declared Sharia, everybody panicked,\" Sangare said. \"Christians, Muslims, everybody fled.\"\nBut the protests did not deter the militants, who publicly punished anyone who defied their teachings.\nIn August last year, they forced a couple allegedly having an affair into two holes and stoned them to death as terrified residents quietly watched.\nLists of public and cruel punishments grew.\nFloggings, executions, amputations -- all in full view of aghast residents.\nThe Islamists compiled a list of unmarried mothers, saying Sharia law condemns relationships outside marriage.\nA mayor -- and his people -- displaced\nMayor Sadou Diallo misses residents of his desert town of Gao, most of whom fled to Bamako when militants took over.\nAbout 229,000 Malians have been displaced -- mainly from Kidal, Timbuktu, and Gao, according to the United Nations.\nHe is one of the displaced. A former respected community leader, trying to rebuild, just like his people.\nResidents of the north, once proud of the vibrant desert communities near River Niger, say the region is a shadow of what it used to be.\n\"Home is not sweet anymore,\" said Fadimata Alainchar, a charity worker and native of nearby Timbuktu.\nA recent visit to her hometown left her shaken.\n\"When entering the city, the signboard which was: \"Welcome to Timbuktu the City of 333 Saints\" is now \"Welcome to Timbuktu, the gate to the application of the Shariya,\" she said in a submission to CNN's iReport.\nThe fabled city includes ancient tombs and wooden structures dating to the 15th century, a major part of its cultural heritage.\nAnd those are not the only changes.\nWomen who don't cover their bodies in accordance to the militants' Sharia law, are imprisoned or raped, she said. Their husbands, terrified of killings and amputations, don't utter a word.\nAnd gunshots are a common sound.\n\"If not to disperse women marching, it is to kill dogs that are barking and preventing the insurgents from sleeping,\" Alainchar said. \"Home has changed. Before it was peace, joy and love. Now it is shame, terror and abuse.\"\n\"I prefer dying\"\nStories of cruel punishments abound.\nRadio journalist Malik Maiga faced the militants' wrath when he used his show to warn residents of public stoning or floggings.\nIslamists singled him out, beat him up and left him in a cemetery. He survived and is among the displaced in Bamako.\nMaiga is not the only journalist targeted. Last week, another radio journalist was killed, leading Gao residents to retaliate by killing a militant leader.\nThen there's Suleyman and Muktar, former truck drivers, accused of stealing. Their limbs were hacked off. They are jobless and wander around the capital.\n\"I prefer dying to being like this,\" Muktar said. \"My hand hurts, my heart aches. I only have God to ask for help.\"\nMali descended into chaos last year, when junior military members seized power in a coup. Outraged soldiers accused the government of not providing adequate equipment to battle ethnic Tuareg rebels roaming the vast desert in the north.\nTuareg rebels took advantage of the power vacuum after the coup and seized some parts of the north. A power struggle erupted between the rebels and local Islamists, leading the latter to topple the tribe and seize control of two-thirds of northern Mali, an area the size of France.\nHope amid chaos\nThe crisis in the north has prompted fears that the al Qaeda-linked extremists will set up shop there.\nIt is \"a serious, ongoing threat,\" U.S. Secretary of State Hillary Clinton warned Wednesday.\nThe French offensive to help the government in its former colony aims to stop the militants from using the vast desert area as a training ground for international attacks.\n\"We are in for a struggle. We cannot permit northern Mali to become a safe haven\" for terrorists, Clinton said.\nInternational troops from West African nations such as Nigeria are joining the effort to restore some normalcy to the north.\nAmid the strife and despair, citizens of the former French colony remain hopeful.\nAnd as French combat helicopters fly overhead, crowds below erupt into cheers.\nBut in northern Mali, at least for now, there is little to smile about."} -{"text": "event},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"invalid deployment replica event name\")\n}\n\nfunc TestCreateDeploymentReplicaEvents_Error_PartialResourceName(t *testing.T) {\n\ts := newTestServer(t)\n\n\t// Missing the replicaEvents part\n\tevent := &gpb.DeploymentReplicaEvent{\n\t\tName: \"accounts/test-account/deployments/test-deployment\",\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: durationpb.New(30 * time.Second),\n\t}\n\n\t_, err := s.CreateDeploymentReplicaEvents(context.Background(), &agpb.CreateDeploymentReplicaEventsRequest{\n\t\tDeploymentReplicaEvents: []*gpb.DeploymentReplicaEvent{event},\n\t})\n\trequire.Error(t, err)\n\tassert.Contains(t, err.Error(), \"invalid deployment replica event name\")\n}\n\nfunc TestCreateDeploymentReplicaEvents_UpsertDuplicateEvent(t *testing.T) {\n\ts := newTestServer(t)\n\n\tstartTime := timestamppb.Now()\n\tendTime := timestamppb.Now()\n\n\tevent := &gpb.DeploymentReplicaEvent{\n\t\tName: \"accounts/upsert-account/deployments/upsert-deployment/replicaEvents/upsert-event\",\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_ONGOING,\n\t\tDuration: durationpb.New(30 * time.Second),\n\t\tStartTime: startTime,\n\t\tEndTime: endTime,\n\t\tPlacement: &gpb.Placement{\n\t\t\tRegion: gpb.Region_US_IOWA_1,\n\t\t},\n\t\tInitialReplicaState: &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\t\tDesired: 1,\n\t\t\tCurrent: 1,\n\t\t\tMin: 1,\n\t\t},\n\t\tTargetReplicaState: &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\t\tDesired: 2,\n\t\t\tCurrent: 1,\n\t\t\tMin: 1,\n\t\t},\n\t}\n\n\t// Create the first event\n\t_, err := s.CreateDeploymentReplicaEvents(context.Background(), &agpb.CreateDeploymentReplicaEventsRequest{\n\t\tDeploymentReplicaEvents: []*gpb.DeploymentReplicaEvent{event},\n\t})\n\trequire.NoError(t, err)\n\n\t// Verify initial state\n\tresp, err := s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"upsert-account\" AND deployment_id = \"upsert-deployment\" AND deployment_replica_event_id = \"upsert-event\"`,\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.DeploymentReplicaEvents, 1)\n\tassert.Equal(t, gpb.DeploymentReplicaEvent_ONGOING, resp.DeploymentReplicaEvents[0].Status)\n\tassert.Equal(t, 30*time.Second, resp.DeploymentReplicaEvents[0].Duration.AsDuration())\n\n\t// Update the event with new status and duration\n\tupdatedEvent := &gpb.DeploymentReplicaEvent{\n\t\tName: \"accounts/upsert-account/deployments/upsert-deployment/replicaEvents/upsert-event\",\n\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\tDuration: durationpb.New(60 * time.Second),\n\t\tStartTime: startTime,\n\t\tEndTime: endTime,\n\t\tPlacement: &gpb.Placement{\n\t\t\tRegion: gpb.Region_US_IOWA_1,\n\t\t},\n\t\tInitialReplicaState: &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\t\tDesired: 1,\n\t\t\tCurrent: 1,\n\t\t\tMin: 1,\n\t\t},\n\t\tTargetReplicaState: &gpb.DeploymentReplicaEvent_ReplicaState{\n\t\t\tDesired: 2,\n\t\t\tCurrent: 2,\n\t\t\tMin: 1,\n\t\t},\n\t}\n\n\t// Upsert should succeed and update the existing event\n\t_, err = s.CreateDeploymentReplicaEvents(context.Background(), &agpb.CreateDeploymentReplicaEventsRequest{\n\t\tDeploymentReplicaEvents: []*gpb.DeploymentReplicaEvent{updatedEvent},\n\t})\n\trequire.NoError(t, err)\n\n\t// Verify the event was updated (not duplicated)\n\tresp, err = s.ListDeploymentReplicaEvents(context.Background(), &agpb.ListDeploymentReplicaEventsRequest{\n\t\tFilter: `account_id = \"upsert-account\" AND deployment_id = \"upsert-deployment\" AND deployment_replica_event_id = \"upsert-event\"`,\n\t})\n\trequire.NoError(t, err)\n\trequire.Len(t, resp.DeploymentReplicaEvents, 1, \"Should still have only 1 event after upsert\")\n\tassert.Equal(t, gpb.DeploymentReplicaEvent_FINISHED, resp.DeploymentReplicaEvents[0].Status)\n\tassert.Equal(t, 60*time.Second, resp.DeploymentReplicaEvents[0].Duration.AsDuration())\n\tassert.Equal(t, int32(2), resp.DeploymentReplicaEvents[0].TargetReplicaState.Current)\n}\n\nfunc TestCreateDeploymentReplicaEvents_Error_NilEvent(t *testing.T) {\n\ts := newTestServer(t)\n\n\tevents := []*gpb.DeploymentReplicaEvent{\n\t\t{\n\t\t\tName: \"accounts/nil-test-account/deployments/nil-test-deployment/replicaEvents/nil-test-event-1\",\n\t\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_UP,\n\t\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\t\tDuration: durationpb.New(30 * time.Second),\n\t\t\tStartTime: timestamppb.Now(),\n\t\t\tEndTime: timestamppb.Now(),\n\t\t\tPlacement: &gpb.Placement{\n\t\t\t\tRegion: gpb.Region_US_IOWA_1,\n\t\t\t},\n\t\t},\n\t\tnil, // nil event should cause a validation error\n\t\t{\n\t\t\tName: \"accounts/nil-test-account/deployments/nil-test-deployment/replicaEvents/nil-test-event-2\",\n\t\t\tType: gpb.DeploymentReplicaEvent_AUTOMATIC_SCALE_DOWN,\n\t\t\tStatus: gpb.DeploymentReplicaEvent_FINISHED,\n\t\t\tDuration: durationpb.New(60 * time.Second),\n\t\t\tStartTime: timestamppb.Now(),\n\t\t\tEndTime: timestamppb.Now(),\n\t\t\tPlacement: &gpb.Placement{\n\t\t\t\tRegion: gpb.Region_US_IOWA_1,\n\t\t"} -{"text": "- A teacher initiated the school lockdown, despite being injured, an official says\n- The student killed is identified as 14-year-old Emilio Hoffman, a freshman\n- The shooter was a student at the school, law enforcement sources say\n- The gunman appears to have died from a self-inflicted wound, the sources add\nWhen the shooting started at her high school near Portland, Oregon, early Tuesday, student Jaimie Infante didn't recognize the sound of a gunshot.\nShe thought maybe somebody had dropped a book.\nIn reality, a lone gunman had opened fire at the school, killing one student and forcing others to flee.\nAn assistant principal told students to go into lockdown mode.\n\"At the end he said: 'This is not a drill,'\" Infante told CNN.\nA teacher, who suffered non-life-threatening injuries, was treated at the scene. The suspected gunman is dead.\nAccording to multiple law enforcement officials, the shooter was a student at the school. The gunman appears to have died from a self-inflicted wound, the sources told CNN.\nSpeaking to reporters, Troutdale Police Department Chief Scott Anderson said he could not confirm how the shooter died. He identified the student killed as 14-year-old Emilio Hoffman, a freshman.\nAnderson met with the student's parents Tuesday afternoon and \"they want you to know that Emilio was a great kid and he was loved by all,\" he said.\nOfficials believe they know who the gunman was, but they are \"not confident enough\" to reveal details yet, Anderson said.\nHe added: \"This is a tragedy that affects our whole community. This is not supposed to happen to any school or to any child, but we will get through this together.\"\n'Could have been much worse'\nThe shooting happened at about 8 a.m. (11 a.m. ET) at Reynolds High School in Troutdale, about 12 miles east of Portland. The city has a population of 16,400 people.\nWhen it started, student Hannah League ducked into a classroom, where she and others huddled in a corner with no lights -- hiding.\n\"I heard these pops and I thought they were firecrackers, but then I saw a teacher run out with his side kind of bloody,\" League told CNN's \"Erin Burnett OutFront.\"\n\"You don't think something's going to happen like that -- especially to your school. It's kind of, like, crazy,\" she said.\nDetails about what led to the shooting weren't immediately available. The gunman is believed to have used a rifle.\nAnderson said the shooter entered the building that houses the school gym. Hoffman was shot and killed in a locker room. The shooter was found in a separate restroom, Anderson said.\nHe thanked officers for their quick response. He also thanked injured teacher Todd Rispler, who initiated the school lockdown despite being hurt.\n\"Without the quick and well-executed response, this tragedy could have been much worse,\" the Reynolds School District said in a statement.\nAnxious parents waited for news that their children were safe. One couple, Craig Tuholski and Tawnjia Reimer, were talking with CNN affiliate KGW, about how agonizing the wait for news was, when Tuholski's cell phone rang.\n\"Is that Chris?\" Reimer asked before letting out a sigh of relief. \"Oh, thank God.\"\n\"That's what we were waiting for,\" Tuholski said after hanging up.\nAbout an hour after the shooting, Oregon State Police said the area was secure and the situation was contained.\nObama: 'Levels of gun violence off the charts'\nThe shooting, the latest in a long string of school shootings, sparked reaction nationwide.\n\"Our hearts go out to the Reynolds HS community. How many more students must we lose before committing to reduce gun violence in our schools?\" Secretary of Education Arne Duncan asked on his Twitter account.\nSpeaking in Washington, President Barack Obama said the nation should be ashamed of its inability to get tougher gun restrictions through Congress in the aftermath of mass shootings that he said have become commonplace in America.\n\"Our levels of gun violence are off the charts. There's no advanced, developed country on Earth that would put up with this,\" he said in response to a question about gun violence.\nMost members of Congress are \"terrified\" of the National Rifle Association, the President said, adding that nothing will change until public opinion demands it.\n\"The country has to do some soul searching about this. This is becoming the norm, and we take it for granted, in ways that as a parent are terrifying to me,\" Obama said.\nCNN first learned of the shooting through reports on Twitter."} -{"text": "What is in this article?:\n- Bangladesh: Is Worker Safety Failing in the Global Supply Chain?\n- Fragmentation of Efforts\nThe Triangle Shirtwaist Factory fire that killed 146 workers in New York City more than 100 years ago probably is the worst single workplace tragedy in U.S. history. Workplace safety and health reforms followed the fire and eventually led to the signing of the Occupational Safety and Health Act and the creation of OSHA and MSHA. Unions gained strength and demanded safer working conditions for members. And now, modern building codes demand certain standards of construction, as well as sprinkler systems, warning systems, appropriate storage of flammable goods, an appropriate number of exits and the ability to access those exits.\nBut as U.S. corporations shifted the bulk of their manufacturing overseas, how responsible should they have been for contractors that set up shop in countries where production is the only concern? Should U.S. and European companies bear some responsibility for the welfare of their contractors’ employees?\nThe authors of the articles in this special section say that yes, the multinational companies doing business in countries like Bangladesh and Pakistan have a moral responsibility to improve the working conditions and safety of the people who manufacture their clothing and other products. After all, manufacturing in Bangladesh is big business: The ready-made garment (RMG) sector in Bangladesh exported goods worth more than $20 billion in the past year; nearly 12 percent more than a year earlier.\nThe companies themselves – Gap, Walmart, Disney and others – say they are taking steps to improve working conditions in Bangladesh and elsewhere.\nIn September, Gap Inc. released its sixth Social and Environmental Responsibility Report, highlighting what the company says is its “commitment to local communities and efforts to improve social and environmental performance globally.”\nThe report, which covers fiscal years 2011-2012, details sustainability initiatives companywide and globally, as well as across the Gap, Banana Republic, Old Navy, Piperlime and Athleta brands.\n“Our commitment to social and environmental responsibility remains a cornerstone of how we conduct and grow our business,” said Glenn Murphy, chairman and chief executive officer of Gap Inc. “While as a company we will never stop striving for improvement, our legacy of leadership in this work is extremely meaningful to me and to our employees.”\nThe company noted, “Recent tragedies in Bangladesh have underscored the imperative to improve working and safety conditions for garment workers. Although Gap Inc. did not have a business relationship with factories in Rana Plaza or with Tazreen, the company remains committed to supporting systemic and sustainable reform of the country’s rapidly growing garment industry.”\nIn October 2012, Gap launched a Building and Fire Safety Plan for the more than 70 Bangladeshi facilities approved to manufacture Gap Inc. apparel and in July 2013, Gap Inc. became a founding member of the Alliance for Bangladesh Worker Safety. A cornerstone of the alliance is a shared responsibility between the Bangladeshi government, retailers and apparel companies, factory owners, non-governmental organizations, labor and civil society. Member companies commit to inspecting 100 percent of their approved sourcing factories within the first year, under a uniform fire and building safety code.\nWalmart has issued Standards for Suppliers, which set forth its fundamental expectations of suppliers and their factories on the treatment of workers and impact on the environment. The standards also provide the framework for audits that measure how well suppliers are meeting those expectations.\n“We also recognize the need for heightened attention to the unique safety problem in Bangladesh,” says Walmart on its web site. “We expect firm commitments from our suppliers to meet strict safety standards, to be open to rigorous audits and to put the welfare of employees first.”\nIn addition to the regular audits that Walmart conducts under its ethical sourcing program, the company recently announced that it will conduct more in-depth inspections in Bangladesh relating to electrical, fire and building safety. These facility audits are conducted by “accredited and internationally recognized auditing firms and are based upon the obligation in its standards to provide workers with a safe and healthy work environment.”\nWhen independent audits have found serious or repeated violations of Walmart standards related to safety issues, social issues, unauthorized subcontracting or other requirements, the company red flags them.\nSaying that, “Transparency helps all stakeholders to improve worker standards,” the company publishes a list of factories in Bangladesh that are not permitted to produce product for Walmart."} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/deployment_server/deployment_shape_version.go. Lines: 519.\n\npackage deploymentserver\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"slices\"\n\t\"strings\"\n\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/aip\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/auth\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/constants\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/database\"\n\tdeploymentshape \"github.com/fw-ai/fireworks/control_plane/pkg/deployment_shape\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/fwerror\"\n\tmodelpkg \"github.com/fw-ai/fireworks/control_plane/pkg/model\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\tresourcename \"github.com/fw-ai/fireworks/go/resource_name\"\n\t\"github.com/fw-ai/fireworks/shared/shapeutil\"\n\t\"gorm.io/gorm\"\n)\n\nconst (\n\tLatestVersion = \"latest\"\n)\n\nfunc (s *Server) GetDeploymentShapeVersion(ctx context.Context, r *gpb.GetDeploymentShapeVersionRequest) (*gpb.DeploymentShapeVersion, error) {\n\t// Parse the resource name.\n\tvar dsvn resourcename.DeploymentShapeVersionName\n\tif err := dsvn.ParseFrom(r.Name); err != nil {\n\t\treturn nil, err\n\t}\n\n\tp := auth.GetPrincipalFromCtx(ctx)\n\tvar dbdsv database.DeploymentShapeVersion\n\t// Query DB to find the latest version based on create time.\n\tif dsvn.VersionId == LatestVersion {\n\t\t// Apply the read mask filter to the database query.\n\t\tscope, err := database.ReadMaskScope(r, (&database.DeploymentShapeVersion{}).FilterDefs())\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error applying read mask scope: %w\", err)\n\t\t}\n\n\t\t// Return the latest version.\n\t\terr = s.DB(ctx).Where(&database.DeploymentShapeVersion{\n\t\t\tDeploymentShapeVersionName: resourcename.DeploymentShapeVersionName{\n\t\t\t\tAccountId: dsvn.AccountId,\n\t\t\t\tDeploymentShapeId: dsvn.DeploymentShapeId,\n\t\t\t},\n\t\t}).Order(`\"CreateTime\" DESC`).Scopes(deploymentshape.VisibleScope(p), scope).First(&dbdsv).Error\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tdsv := dbdsv.ToProto()\n\t\tomitDeprecatedDeploymentShapeDraftModel(dsv)\n\t\treturn dsv, nil\n\t}\n\n\t// TODO: Use something besides GetResource() here since this will leak information\n\t// about the existence of a deployment shape version before the Public check.\n\t// Get the deployment shape version.\n\terr := s.GetResource(ctx, r, &dbdsv)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif !p.ActAsSuperuser() && p.User(dbdsv.AccountId) == nil && !dbdsv.Public {\n\t\treturn nil, fwerror.New(gpb.Code_PERMISSION_DENIED, \"\")\n\t}\n\n\tdsv := dbdsv.ToProto()\n\ts.maybeHideDeploymentShapeAcceleratorCount(ctx, dsv.Snapshot, dbdsv.AccountId)\n\tomitDeprecatedDeploymentShapeDraftModel(dsv)\n\treturn dsv, nil\n}\n\nfunc (s *Server) UpdateDeploymentShapeVersion(ctx context.Context, r *gpb.UpdateDeploymentShapeVersionRequest) (*gpb.DeploymentShapeVersion, error) {\n\tp := auth.GetPrincipalFromCtx(ctx)\n\t// Validate that latest_validated is not in the update mask\n\tif r.UpdateMask != nil {\n\t\tif slices.Contains(r.UpdateMask.Paths, \"latest_validated\") {\n\t\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"latest_validated field cannot be updated directly - it's automatically managed when validated is set to true\")\n\t\t}\n\t\tif slices.Contains(r.UpdateMask.Paths, \"validated\") && !r.DeploymentShapeVersion.Validated {\n\t\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"cannot unset validated flag\")\n\t\t}\n\t\tif slices.Contains(r.UpdateMask.Paths, \"validated\") && !p.ActAsSuperuser() {\n\t\t\treturn nil, fwerror.New(gpb.Code_PERMISSION_DENIED, \"user cannot set validated flag\")\n\t\t}\n\n\t}\n\n\tmaskIncludes := func(path string) bool {\n\t\treturn r.UpdateMask == nil || len(r.UpdateMask.Paths) == 0 || slices.Contains(r.UpdateMask.Paths, path)\n\t}\n\t// Only allow in-place snapshot display name renames when explicitly requested via\n\t// the update mask (never on a legacy nil/empty mask \"replace all\" request), since\n\t// the snapshot is otherwise treated as immutable.\n\tisUpdatingDisplayName := r.UpdateMask != nil && slices.Contains(r.UpdateMask.Paths, \"snapshot.display_name\")\n\tif isUpdatingDisplayName && !p.ActAsSuperuser() {\n\t\treturn nil, fwerror.New(gpb.Code_PERMISSION_DENIED, \"only superusers can update the snapshot display name\")\n\t}\n\tisUpdatingLoadTestInput := maskIncludes(\"load_test_input\") && r.DeploymentShapeVersion.LoadTestInput != nil\n\tisUpdatingLoadTestOutput := maskIncludes(\"load_test_output\") && r.DeploymentShapeVersion.LoadTestOutput != nil\n\tisUpdatingLoadTestSummary := maskIncludes(\"load_test_summary\") && r.DeploymentShapeVersion.LoadTestSummary != nil\n\tisUpdatingEvalOutput := maskIncludes(\"eval_output\") && r.DeploymentShapeVersion.EvalOutput != nil\n\tisUpdatingKldOutput := maskIncludes(\"kld_output\") && r.DeploymentShapeVersion.KldOutput != nil\n\tisUpdatingFormatterTestOutput := maskIncludes(\"formatter_test_output\") && r.DeploymentShapeVersion.FormatterTestOutput != nil\n\n\t// Permission check for load test fields\n\tif (isUpdatingLoadTestInput || isUpdatingLoadTestOutput || isUpdatingLoadTestSumma"} -{"text": "Office Phone: (717) 397-5190\nCell Phone: (717) 490-0145\nOffice Location: n/a\nOffice Hours: By appointment\nDr. Simmons is a professor in the RN-to-BS program in Lancaster, PA and also in the online RN-to-BS and MSN programs. She earned her EdD from Teacher’s College at Columbia University, an MSN from Columbia University, an MsEd from Temple University and her BS from Messiah College. Her clinical focus has been medical-surgical and critical care nursing. Her doctoral research focused on effectiveness of the nursing school environment and the development of caring ability among nursing students. She is married to Mark Simmons who is the Director of the School of Respiratory Therapy at York College of Pennsylvania. Dr Simmons has two children two grandsons: Clinton is married to Christina Yoder and their son, Everett. Ted is married to Heather Edelman and son, Mason.\nDr. Simmons is involved in the Lancaster Brethren in Christ Church. Her additional interests include gardening and in particular, her role as a Penn State Master Gardener.\nEdD Teacher’s College at Columbia University\nM.S.N. Columbia University\nM.S.Ed Temple University\nB.S. Messiah College\nSimmons, P.R. (2015). History and physical exam (3rd ed.). In D.R. Hess (Ed.), Respiratory care principles and practice (pp. 330-348). Philadelphia: W.B. Saunders\nSimmons, P.R. (2014, Summer/Fall). The future of nursing education and practice. Teachers College, Columbia University Courier, 105, 1.\nSimmons, P.R. (2012). History and physical exam. (2nd ed.) In D.R. Hess (Ed.), Respiratory care principles and practice (pp. 330-348). Philadelphia: W.B. Saunders\nSimmons, P.R. (2011). Abortion: A dilemma revisited. Shalom: A Journal for the Practice of Reconciliation, 31(4), 4.\nSimmons, P.R. (2008). Common laboratory tests. In M.A. Hogan (Ed.). Comprehensive review for NCLEX-RN._(pp. 821-837). Upper Saddle River, NJ: Pearson Education.\nSimmons, P.R. & Simmons, M. L. (2004). The state of the art: Oxygen therapy for patients with COPD. MEDSURG Nursing, 13, 82-85.\nSimmons, P.R. (2003). A primer for nurses who administer blood products. MEDSURG Nursing, 12, 184-192.\nSimmons, P. R. & Cavanaugh, S. H. (2000). Relationships among student and graduate caring ability and professional school climate. Journal of Professional Nursing, 16, 76-83.\nCavanaugh, S. H. & Simmons, P. R. (Winter,1998). Teaching and learning caring ability. Medical Encounter, 2-4.\nCavanaugh, S. H. & Simmons, P.R. (1997) . Evaluation of a school climate instrument for assessing affective objectives in health professional education. Evaluation and the Health Professions, 20, 455-478.\nSimmons, P. R. and Cavanaugh, S. H. (1996). Relationships among childhood parental care, professional school climate and nursing student caring ability. Journal of Professional Nursing, 12, 373-381.\nScholarly Presentations and Abstracts\nPoison Ivy. Nurses Week Continuing Education Presentation at EMU at Lancaster, May 4, 2016.\nLeaves of Three, Let It Be. Presentation at the Lancaster, Pennsylvania Native Plant and Wildlife Festival, April 25, 2015.\nUsing a Wiki to Teach the IOM in an Online MSN course. Poster presentation at the Stewart Conference, Teachers College, Columbia University, April, 2014\nChurch, Community and Professional Service\n- Church Affiliation: Lancaster Brethren in Christ\n- Deacon, 2013\n- Chairman of Missions Committee, 2009 to present\n- Penn State Master Gardener 2015\n- Member of the Board of Directors of LoveINC of Lancaster County 2010 to 2014\n- Director, Pennsylvania State Nurses Association, 2016*\nHonors, Awards and Grants\n- Attained Certified Nurse Educator Status, 2012\n- Nursing Education Award in 2006 from Pennsylvania State Nurses Association\n- American Nurses Association\n- Pennsylvania State Nurses Association\n- Pennsylvania State Nurses Association District 16\nProfessional Conferences Attended\nGerms and Viruses. INR Conference. January, 2016.\nIsabel Maitland Steward Conference, Teachers College, Columbia University, 2015\nIsabel Maitland Steward Conference, Teachers College, Columbia University, 2014"} -{"text": "Coffee / Champagne / Ice Water\nShu Mai / Har Gow / BBQ Pork Bun / Custard Bao / Taro Bao / Roast Duck / Roast Pork\nChicken and Waffles / French Toast with Whipped Cream, Bananas, Caramel Sauce\nNutella Crepe with Whipped Cream / Chocolate Cupcake / Strawberry Cupcake / Peanut Butter Cupcake\nLobster Biscuit and Gravy / Shrimp n’ Grits / Crab Benedict\nEgg Custard Tart\nCongee with Century Egg, Roasted Peanuts, Crispy Shallots, Green Onion, Chinese Doughnuts\nMilano/Varzi/Genoa Salami/Bresoala/Coppa/Clothbound Cheddar/Roquefort/Parmesan Reggiano/Brie/ / Honey / Banana Bread / Carrot Bread / Apricots, Pears, Kumquats, Cranberries\nCinnamon Sugar Doughnut / Sprinkled Doughnut\nCrawfish Broil / King Crab / Green Lip Mussels / Shrimp\nHam, Cheese Croissant / Red Velvet Pancakes with Fruit Compote and Cream Cheese Frosting / Breakfast Burrito\nYellow Curry / Crispy Spicy Cod / Kung Pao Chicken\nButtermilk Biscuit / Honey Glazed Slab Bacon / Hickory Bacon / Turkey Bacon / Pork Link / Sweet Potato Tots\nCheese Pizza / Pepperoni Pizza\nMolten Chocolate Cake / White Chocolate and Cherry Bread Pudding / Berry Cobbler\nBear Claw / Maple Pecan Roll / Blueberry Danish / Pecan Sticky Bun\nVanilla Fleur de Sel Gelato, Salty Caramel, Candied Almonds / French Toast Gelato\nRed Velvet Yuzu Whoopie Pie / Carrot Cake with Pineapple Compote / Milk Chocolate Cream Puff\nBeef Rib / Smoked Brisket / Summer Risotto / Truffled Mushroom Flat Bread\nPineapple Tofu / Chocolate Decadence / Strawberry Cheesecake / Chocolate Oreo Mousse / Individual Apple Pie Tart\nReferred to as a “crown jewel” by its new executive chef and purporting a “feast for the Gods” a visit to Caesars’ Bacchanal Buffet comes with certain self-appointed expectations and although prices have crept upward since the sprawling space opened to the public I can only say that my $47.50 Saturday Brunch, complete with bottomless champagne, was worth every cent. Grand in both scope and spectacle with ornate glass, open floorplans, and plush seating complimented by a staff of over twelve-dozen overseeing preparation, service, and customer needs my arrival at Bacchanal shortly preceded its 8am opening and greeted first by a cheerful cashier, then by assistant manager Stephanie, my experience commenced; the subsequent three hours adrift in 70+ of the buffet’s offerings and a sea of smiles emanating from each employee and nearly every patron. Divided into several sections with many offering cooked-to-order options including crepes and omelets it was Asian that my meal began and with fresh steamer baskets just opened the dim sum excelled – a small quibble in the thick-skinned har gow more than compensated by bao, duck and pork as good as that at Jasmine plus full-service congee complete with century egg, not to mention Sin City’s best Egg Custard Tart later discovered at the dessert island. Moving next to things more “American,” one is well advised to monitor for items fresh from the kitchen as both the crunchy waffles and well seasoned chicken proved superlative while later tastes of waffle fries and tots fell flat – a fresh buttermilk biscuit, hot seafood preparations, and sliced meats including smoky beef ribs with caramelized crunch all showing far better. At times a touch liberal in salt with Kung Pao Chicken and Risotto suffering the most, Bacchanal again shines in selections of shellfish, cheese, and charcuterie but with much eating to do and such things widely available elsewhere it was thoroughly in my sweet tooth that I indulged and although I passed up a few cookies plus a duo of sorbet suffice it to say that I nearly ran the gamut; cakes, doughnuts, pies, tarts, and more all justifying the calories with the aforementioned egg custard, pecan pie, cream puff, carrot cake, and citrus ‘tiramisu’ all warranting special mention along with the lovely pastry team who jovially tended to baking, saucing, arranging, and making crepes at a pace seldom to lull.\nFOUR AND A HALF STARS: Slightly more expensive than Wicked Spoon but making up the difference in complimentary champagne there are things to love about both of Las Vegas’ premier all-you-can-eat experiences yet aside from a more expansive gelato case and my predilection to The Cosmopolitan’s soundtrack I’d be hard-pressed to ever recommend it over Bacchanal. Obviously limited by the constraints intrinsic to feeding anywhere from 2500 to 4500 persons in a given day yet defying the odds through a combination of remarkable customer service and striking attention to detail I’m happy to say that Bacchanal lives up to the liberally applied superlatives and although “Gods” may require something slightly more refined I’m almost positive they won’t find it in such a format for less than $50, especially on Las Vegas Boulevard.\nRECOMMENDED: Roasted Duck, Crispy Spicy Cod, Chicken and Waffles, Lobster Biscuits and Gravy, Egg Custard Tart, Beef Rib, Congee, Pecan Pie, Cream Puff, Carrot Cake, Padan Tiramisu.\nAVOID: Risotto, Kung Pao Chicken, Bear Claw, Breakfast Burrito, anything that looks as though it has been sitting longer than a half-hour.\nTIP: Early arrival is recommended as waits stretch past an hour after 9:30am, though a ticketing system that dispenses return-time ‘reservations’ helps to mitigate a true ‘line.’ Fans of specific items would be best served to call in advance as new items frequently displace older ones and the menu undergoes wholesale change seasonally, four times a year.\nWHAT THE STARS MEAN: 5 World Class, 4 Excellent, 3 Good, 2 Fair, 1 Poor"} -{"text": "ry || isUpdatingEvalOutput || isUpdatingKldOutput || isUpdatingFormatterTestOutput) && !p.ActAsSuperuser() {\n\t\treturn nil, fwerror.New(gpb.Code_PERMISSION_DENIED, \"only superusers can update test fields\")\n\t}\n\n\tvar dbdsv database.DeploymentShapeVersion\n\terr := dbdsv.PopulateFromName(s.DB(ctx), r.DeploymentShapeVersion.Name)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error getting deployment shape version: %w\", err)\n\t}\n\n\t// Merge dbds into r.DeploymentShapeVersion.\n\terr = aip.MergeProtos(r.UpdateMask, dbdsv.ToProto(), r.DeploymentShapeVersion)\n\tif err != nil {\n\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"`update` request must specify fields to be updated\")\n\t}\n\n\t// Guarantee that following constraints for public versions are met\n\tif r.DeploymentShapeVersion.Public {\n\t\t// 1) Must belong to fireworks account\n\t\tif dbdsv.AccountId != constants.FireworksAccountId {\n\t\t\treturn nil, fwerror.New(gpb.Code_PERMISSION_DENIED, \"only deployment shape under fireworks account can be made public\")\n\t\t}\n\t\t// 2) Must have a specified preset_type in snapshot\n\t\tif dbdsv.Snapshot.PresetType == gpb.DeploymentShape_PRESET_TYPE_UNSPECIFIED {\n\t\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"public deployment shape versions must specify preset_type\")\n\t\t}\n\t\t// 3) Must be validated\n\t\tif !r.DeploymentShapeVersion.Validated {\n\t\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"public deployment shape versions must be validated\")\n\t\t}\n\t\t// 4) If public and latest_validated, enforce uniqueness for presets by exact base_model\n\t\t// and exact accelerator_type (e.g. B200 and B300 do not conflict).\n\t\tsn := r.DeploymentShapeVersion.Snapshot\n\t\tpreset := sn.PresetType\n\n\t\tvar conflict database.DeploymentShapeVersion\n\t\t// First, check for conflict on exact base_model (when provided)\n\t\tif strings.TrimSpace(sn.BaseModel) != \"\" {\n\t\t\texact := s.DB(ctx).\n\t\t\t\tWhere(&database.DeploymentShapeVersion{Public: true, LatestValidated: true}).\n\t\t\t\tWhere(\"\\\"Snapshot_BaseModel\\\" = ?\", sn.BaseModel).\n\t\t\t\tWhere(\"\\\"Snapshot_PresetType\\\" = ?\", int32(preset)).\n\t\t\t\tWhere(\"\\\"Snapshot_AcceleratorType\\\" = ?\", int32(sn.AcceleratorType)).\n\t\t\t\tNot(\"\\\"AccountId\\\" = ? AND \\\"DeploymentShapeId\\\" = ?\", dbdsv.AccountId, dbdsv.DeploymentShapeId)\n\t\t\terr := exact.First(&conflict).Error\n\t\t\tif err == nil {\n\t\t\t\treturn nil, fwerror.New(\n\t\t\t\t\tgpb.Code_INVALID_ARGUMENT,\n\t\t\t\t\t\"conflicting public latest-validated shape exists for preset_type %s with accelerator_type %s for the same base_model: %s\",\n\t\t\t\t\tpreset.String(),\n\t\t\t\t\tsn.AcceleratorType.String(),\n\t\t\t\t\tconflict.Name(),\n\t\t\t\t)\n\t\t\t}\n\t\t\tif !errors.Is(err, gorm.ErrRecordNotFound) {\n\t\t\t\treturn nil, fmt.Errorf(\"error checking for conflicting public shapes (exact base_model): %w\", err)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Auto-compute load_test_summary when load_test_output is updated,\n\t// unless the user is explicitly setting load_test_summary themselves\n\tif isUpdatingLoadTestOutput && !isUpdatingLoadTestSummary {\n\t\tpresetType := dbdsv.Snapshot.PresetType\n\t\t// Use the merged proto which has the load test output data\n\t\tloadTestSummary := buildLoadTestSummary(\n\t\t\tr.DeploymentShapeVersion.LoadTestOutput,\n\t\t\tpresetType,\n\t\t)\n\t\tr.DeploymentShapeVersion.LoadTestSummary = loadTestSummary\n\t}\n\n\tvar updates database.DeploymentShapeVersion\n\tupdates.FromProto(r.DeploymentShapeVersion)\n\n\t// Execute in transaction to ensure atomicity\n\terr = s.DB(ctx).Transaction(func(tx *gorm.DB) error {\n\t\t// Only select fields that are safe to write. JSON-serialized fields\n\t\t// (LoadTestInput, LoadTestOutput, EvalOutput, FormatterTestOutput,\n\t\t// LoadTestSummary, KldOutput) must only be included when explicitly requested,\n\t\t// because re-serializing a round-tripped nil/empty proto through GORM\n\t\t// can produce invalid JSON for Postgres (SQLSTATE 22P02).\n\t\tmutableFields := database.GetMutableFields(&gpb.DeploymentShapeVersion{})\n\n\t\tjsonFields := map[string]bool{\n\t\t\t\"LoadTestInput\": true,\n\t\t\t\"LoadTestOutput\": true,\n\t\t\t\"EvalOutput\": true,\n\t\t\t\"FormatterTestOutput\": true,\n\t\t\t\"LoadTestSummary\": true,\n\t\t\t\"KldOutput\": true,\n\t\t}\n\t\tfilteredFields := make([]string, 0, len(mutableFields))\n\t\tfor _, f := range mutableFields {\n\t\t\tif !jsonFields[f] {\n\t\t\t\tfilteredFields = append(filteredFields, f)\n\t\t\t}\n\t\t}\n\t\tmutableFields = filteredFields\n\n\t\tif isUpdatingLoadTestInput {\n\t\t\tmutableFields = append(mutableFields, \"LoadTestInput\")\n\t\t}\n\t\tif isUpdatingLoadTestOutput {\n\t\t\tmutableFields = append(mutableFields, \"LoadTestOutput\")\n\t\t\tif !isUpdatingLoadTestSummary {\n\t\t\t\tmutableFields = append(mutableFields, \"LoadTestSummary\")\n\t\t\t}\n\t\t}\n\t\tif isUpdatingLoadTestSummary {\n\t\t\tmutableFields = append(mutableFields, \"LoadTestSummary\")\n\t\t}\n\t\tif isUpdatingEvalOutput {\n\t\t\tmutableFields = append(mutableFields, \"EvalOutput\")\n\t\t}\n\t\tif isUpdatingKldOutput {\n\t\t\tmutableFields = append(mutableFields, \"KldOutput\")\n\t\t}\n\t\tif isUpdatingFormatterTestOutput {\n\t\t\tmutableFields = append(mutableFields, \"FormatterTestOutput\")\n\t\t}\n\t\t// Snapshot fields are OUTPUT_ONLY, so GetMutableFields never includes the"} -{"text": "By now, Boston Red Sox fans have come to grips with the fact that their team doesn't seem to be going anywhere this season. At 57-59, the Red Sox have been sunk by injuries, inconsistent performances and bafflingly bad starting pitching.\nBut even more surprising than the unpredictability of the Red Sox has been the consistency of the Baltimore Orioles. The team that everyone thought would fade away has not only stayed in the hunt, it's currently leading the American League wild-card race at 62-53, nine games over .500.\nThe Orioles, who host a three-game series against the Red Sox starting Tuesday, have a minus-49 run differential this season, which is the fourth-worst in the American League. The Red Sox, on the other hand, are at plus-41, which is tied for fourth-best in the league.\nHow is the disparity explained? It's simple. The Red Sox are a middling 12-14 in one-run games and just 2-6 in extra innings. The Orioles, meanwhile, have a major league-best 22-6 record in one-run games (including an 11-game win streak that began in June) and are a staggering 12-2 in extra innings. Of Baltimore's six wins against Boston this season, four have come in extra innings.\n\"From what I understand, this team has some people scratching their heads,\" Orioles manager Buck Showalter told The Associated Press.\nThe same observers who expect the Red Sox to go on a run are waiting for the Orioles, who haven't made the playoffs in 14 years, to fall off. But ask yourself, which is more likely at this point? What former Red Sox GM Dan Duquette has built in Baltimore doesn't appear headed to a crash-and-burn ending.\nThe Red Sox, on the other hand\nIf they hope to make things at all interesting down the stretch, they have to start winning series. Their last series victory came against the Detroit Tigers almost two weeks ago. They followed that up with series losses to the Minnesota Twins, Texas Rangers and, most recently, a four-game split against the Indians in Cleveland.\nIn the first three games of the Cleveland series, Crawford was 0-for-8 but he exploded for three hits and three RBIs in Sunday's 14-1 win over the Indians. He has hit safely in 12 of his past 16 games.\nPedroia has hit safely in each of the past seven games, posting a .467 average (14-for-30) with 3 doubles, 4 RBIs and 8 runs scored in that stretch.\nGonzalez has been one of the league's best hitters since the All-Star break, especially in the month of August. He's hitting .422 (19-for-45) with 3 homers, 8 doubles and 18 RBIs in the last 12 games.\nThe fact remains, though, that the plight of the Red Sox will depend on starting pitching.\nJosh Beckett, who was hammered for eight runs over five innings in his most recent start, will get the ball Tuesday against the Orioles' Wei-Yin Chen (10-7, 3.79). Beckett has lost his last three starts against Baltimore, including a 2-1 loss on June 6, when he allowed only two runs on five hits in eight innings.\nBeckett has a 5-3 record with a 3.61 ERA in 12 career starts at Camden Yards. The right-hander pitches well there and has lasted at least six innings in 11 starts at Camden, including his past seven.\nChen posted his best outing of the season in that June 6 game at Fenway Park, allowing only one run on seven hits in seven innings. He is coming off his worst outing of the season, however, lasting just 4 2/3 innings while giving up seven runs to the Royals last week.\nOn Wednesday, Red Sox right-hander Aaron Cook (3-5, 4.70) will face Baltimore's Miguel Gonzalez (4-2, 3.42). Clay Buchholz (10-3, 4.24) will take the ball for Boston in the series finale on Thursday. He will face the Orioles' Chris Tillman (5-2, 3.40).\nBesides the struggles of the starting pitchers, who have the fifth-worst ERA in baseball, the Red Sox also are still battling injuries to key players.\nIt's unknown when David Ortiz, whose OPS at the time of his Achilles strain on July 17 (1.024) was the highest in the AL, will be ready to return. Every time it appears he is close to being activated, the injury does not respond well to his daily workouts and treatments, forcing a longer stay on the DL.\n\"It's not healing,\" Ortiz told reporters in Cleveland on Sunday. \"I thought I was getting there and it's still sore and I still can't run. I'm doing the best I can with it.\"\nThere was also news out of Cleveland on Sunday that Crawford's surgically repaired wrist has been bothering him. He's already dealing with the likelihood of Tommy John elbow surgery during the offseason, and now the wrist is an issue again.\nWho knows, maybe the Sox will knock the Orioles back a peg by sweeping the series in Baltimore and using that as a springboard to make a run of their own. Maybe the Sox will get some good news on the injury front and finally get some consistent starting pitching to build on. And maybe the overachieving Orioles' luck will finally run out. The odds say it's bound to happen.\nJust don't count on it."} -{"text": "\"This is a very good lineup that he just shut down,\" Yankees manager Joe Girardi said. \"Probably our best pitching performance of the year.\"\nKuroda allowed only four balls out of the infield and just one runner past first base. He held Texas hitless until Elvis Andrus' infield single leading off the seventh, outpitching All-Star lefty Matt Harrison in a crisp duel at Yankee Stadium.\nThe right-hander walked two and struck out five in his fourth career shutout and second this season. He threw 74 of 109 pitches for strikes.\n\"When you've got a great lineup like that,\" Kuroda said through a translator, \"you can't lose your focus until the end.\"\nThe surging Yankees won for the sixth time in seven games. They've taken the first two in a four-game set between the AL's top two teams.\n\"Man, these games are a lot of fun to play in,\" Swisher said.\nDerek Jeter singled off Harrison (13-7) with one out in the seventh to start the New York rally. Alexi Ogando came in to face Swisher, who had cracked a go-ahead grand slam off Ryan Dempster in the series opener Monday night for his first homer since July 19 -- a drought of 61 at-bats.\nThis time, Swisher fought his way back from an 0-2 count and drove a payoff pitch to the back of the Yankees' bullpen in right-center for his 16th home run.\n\"I was hitting on sound at that point. I mean, he's throwing 100 mph,\" Swisher said. \"That 3-2 count, I was just hoping he would throw another fastball.\"\nThe bubbly switch-hitter rounded the bases with a big grin, and New York was on its way to a seventh straight regular-season victory over the Rangers at home.\n\"I wanted to put velocity on Swisher, and he didn't beat him with it,\" Texas manager Ron Washington said.\nTeixeira then lined a shot into the right-field stands for his 23rd home run.\nSlowed by a lack of run support lately, Kuroda (11-8) won for the first time in four starts and lowered his ERA to 3.06. He gave up a clean single in the eighth to Michael Young, who was immediately erased on David Murphy's double-play grounder.\nKuroda then worked a 1-2-3 ninth to finish a gem that took 2 hours, 35 minutes.\n\"He's been really, really big for us and he could have a number of more wins. He's been the hard-luck guy for us this year,\" Girardi said. \"That was his 11th win for us. Realistically, he could have 15 or 16 at this juncture.\"\nKuroda has six scoreless outings of at least seven innings, most in the majors. He became the first Yankees pitcher with two shutouts in a season since Mike Mussina in 2005.\n\"I was doing everything I could to match him,\" Harrison said.\nFeaturing a sharp slider, Kuroda worked around two walks in the first three innings and handcuffed the hard-hitting Rangers, who began the night leading the majors in batting average (.278) and runs (580). They were shut out for only the third time all season.\nA no-hit buzz began to build in the sixth, when second baseman Robinson Cano made a backhand play on Mitch Moreland's one-out grounder. Kuroda then struck out Ian Kinsler and had retired 10 straight heading into the seventh.\nAndrus led off with a grounder toward the middle, forcing shortstop Jayson Nix to make a diving stop near the edge of the outfield grass. With little chance to get the speedy runner, Nix struggled to get the ball out of his glove and tried a desperation throw that was late and wide.\nBase hit, no question, and Kuroda received a warm round of applause from the crowd of 44,533. Andrus was stranded at third when Nelson Cruz grounded out.\n\"I had to regroup myself a little bit, but I (said), a complete game or a shutout is not really important here,\" Kuroda said. \"The most important thing is for the team to win, and that's what we accomplished today, and that's why I'm happy.\"\nYankees 3B Alex Rodriguez had X-rays on his broken left hand. Girardi said the hand is \"definitely better\" and the brace will come off, but Rodriguez isn't quite ready to swing a bat yet. He will begin doing strengthening exercises. ... With slugger Mike Napoli on the disabled list, Texas signed C Koyie Hill to a minor league contract. He was assigned to Triple-A Round Rock. ... Luis Martinez went 0-for-3 in his first start behind the plate for the Rangers. He was recalled from the minors Saturday when Napoli went on the DL. ... Jeter extended his hitting streak to 10 games. He started at DH, with Nix at shortstop. ... New York has eight shutouts, matching its total from last season. ... Kuroda has four career complete games, all shutouts."} -{"text": "m.\n\t\t// Allow the display name column to be written when explicitly requested.\n\t\tif isUpdatingDisplayName {\n\t\t\tmutableFields = append(mutableFields, \"Snapshot_DisplayName\")\n\t\t}\n\n\t\tresult := tx.Model(&dbdsv).Select(mutableFields).Updates(updates)\n\t\tif result.Error != nil {\n\t\t\treturn fmt.Errorf(\"error updating deployment shape version: %w\", result.Error)\n\t\t}\n\n\t\t// If this update involves validation, recalculate LatestValidated for the entire shape\n\t\tif slices.Contains(r.UpdateMask.Paths, \"validated\") {\n\t\t\terr := s.UpdateLatestValidatedForShape(tx, dbdsv.AccountId, dbdsv.DeploymentShapeId)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"error updating latest_validated flags: %w\", err)\n\t\t\t}\n\t\t}\n\n\t\treturn nil\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Refetch to get the updated LatestValidated status\n\tvar updatedDbdsv database.DeploymentShapeVersion\n\terr = updatedDbdsv.PopulateFromName(s.DB(ctx), r.DeploymentShapeVersion.Name)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error getting deployment shape version after update: %w\", err)\n\t}\n\n\tdsv := updatedDbdsv.ToProto()\n\ts.maybeHideDeploymentShapeAcceleratorCount(ctx, dsv.Snapshot, updatedDbdsv.AccountId)\n\tomitDeprecatedDeploymentShapeDraftModel(dsv)\n\treturn dsv, nil\n}\n\nfunc (s *Server) ListDeploymentShapeVersions(ctx context.Context, r *gpb.ListDeploymentShapeVersionsRequest) (*gpb.ListDeploymentShapeVersionsResponse, error) {\n\tif r.OrderBy == \"\" {\n\t\tr.OrderBy = \"create_time desc\"\n\t}\n\n\tp := auth.GetPrincipalFromCtx(ctx)\n\n\tvar dsn resourcename.DeploymentShapeName\n\tvar dbdsv []*database.DeploymentShapeVersion\n\tvar response gpb.ListDeploymentShapeVersionsResponse\n\terr := s.ListResources(ctx, r, &dsn, &database.DeploymentShapeVersion{}, &dbdsv, &response, deploymentshape.VisibleScope(p))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor i, dsv := range response.DeploymentShapeVersions {\n\t\ts.maybeHideDeploymentShapeAcceleratorCount(ctx, dsv.Snapshot, dbdsv[i].AccountId)\n\t\tomitDeprecatedDeploymentShapeDraftModel(dsv)\n\t}\n\n\treturn &response, nil\n}\n\nfunc (s *Server) MatchDeploymentShapeVersions(ctx context.Context, r *gpb.MatchDeploymentShapeVersionsRequest) (*gpb.ListDeploymentShapeVersionsResponse, error) {\n\tcreateReq := r.GetCreateDeploymentRequest()\n\tif createReq == nil {\n\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"create_deployment_request is required\")\n\t}\n\ttargetModel := createReq.GetDeployment().GetBaseModel()\n\tif targetModel == \"\" {\n\t\treturn nil, fwerror.New(gpb.Code_INVALID_ARGUMENT, \"create_deployment_request.deployment.base_model is required\")\n\t}\n\n\tcriteria, targetIsEmbedding, err := s.deploymentShapeVersionMatchCriteria(ctx, targetModel)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tscopes := []database.Scope{\n\t\tdeploymentshape.VisibleScope(auth.GetPrincipalFromCtx(ctx)),\n\t\tdeploymentshape.LatestValidatedScope(),\n\t\tcriteria.ShapeVersionCompatScope(),\n\t}\n\n\tvar candidates []*database.DeploymentShapeVersion\n\tif err := s.DB(ctx).Scopes(scopes...).Order(`\"CreateTime\" DESC`).Find(&candidates).Error; err != nil {\n\t\treturn nil, fmt.Errorf(\"error matching deployment shape versions: %w\", err)\n\t}\n\n\tmatches := preferExactDeploymentShapeVersionMatches(\n\t\ts.filterDeploymentShapeVersionsByEmbeddingStatus(ctx, candidates, targetIsEmbedding),\n\t\ttargetModel,\n\t)\n\tresponse := &gpb.ListDeploymentShapeVersionsResponse{\n\t\tDeploymentShapeVersions: make([]*gpb.DeploymentShapeVersion, 0, len(matches)),\n\t\tTotalSize: int32(len(matches)),\n\t}\n\tfor _, dbdsv := range matches {\n\t\tdsv := dbdsv.ToProto()\n\t\ts.maybeHideDeploymentShapeAcceleratorCount(ctx, dsv.Snapshot, dbdsv.AccountId)\n\t\tomitDeprecatedDeploymentShapeDraftModel(dsv)\n\t\tresponse.DeploymentShapeVersions = append(response.DeploymentShapeVersions, dsv)\n\t}\n\treturn response, nil\n}\n\nfunc (s *Server) deploymentShapeVersionMatchCriteria(ctx context.Context, targetModel string) (shapeutil.ShapeMatchCriteria, bool, error) {\n\ttarget, err := s.accessibleModel(ctx, targetModel)\n\tif err != nil {\n\t\treturn shapeutil.ShapeMatchCriteria{}, false, fmt.Errorf(\"error getting model: %w\", err)\n\t}\n\n\tmodelType := \"\"\n\tparameterCount := int64(0)\n\tif target.GetBaseModelDetails() != nil && target.GetBaseModelDetails().GetModelType() != \"\" && target.GetBaseModelDetails().GetParameterCount() != 0 {\n\t\tmodelType = target.BaseModelDetails.ModelType\n\t\tparameterCount = target.BaseModelDetails.ParameterCount\n\t} else if target.Kind == gpb.Model_HF_PEFT_ADDON || target.Kind == gpb.Model_LIVE_MERGE {\n\t\tif target.GetPeftDetails() == nil || target.GetPeftDetails().GetBaseModel() == \"\" {\n\t\t\treturn shapeutil.ShapeMatchCriteria{}, false, fwerror.New(gpb.Code_FAILED_PRECONDITION, \"missing base model details\")\n\t\t}\n\t\tbase, err := s.accessibleModel(ctx, target.PeftDetails.BaseModel)\n\t\tif err != nil {\n\t\t\treturn shapeutil.ShapeMatchCriteria{}, false, fmt.Errorf(\"error getting base model: %w\", err)\n\t\t}\n\t\tif base.GetBaseModelDetails() == nil || base.GetBaseModelDetails().GetParameterCount() == 0 {\n\t\t\treturn shapeutil.ShapeMatchCriteria{}, false, fwerror.New(gpb.Code_FAILED_PRE"} -{"text": "CINCINNATI -- Reds owner Bob Castellini couldn't imagine Dusty Baker leaving.\nThe 63-year-old manager got a two-year contract extension Monday, giving him another chance to take Cincinnati deep into the playoffs. They've been there twice in the last three years, failing both times to get past the division series.\nBaker missed the Reds' NL Central title celebration this year because he was hospitalized with an irregular heartbeat and a mini-stroke. He returned and lost ace Johnny Cueto at the start of their series against San Francisco, which ended with the Giants rallying to win Game 5.\nThe team's first big question of the offseason was whether it would bring Baker back for another try.\n\"This is Dusty's team,\" Castellini said. \"These fellas are poised to go deeper and deeper in the season. To not bring Dusty back or not ask Dusty to come back was out of the question.\"\nBaker is feeling much better, and the Reds have the nucleus of their 97-win team returning next year, including one of the deepest pitching staffs in the major leagues. When the club offered another two-year deal -- same as the last one -- Baker quickly agreed.\n\"It's very much the same contract and very much the same thing for all of us up here: There's work left to be done,\" Baker said. \"I didn't want to leave on a note that we still have work to do.\n\"I don't want to leave in a situation where for the rest of my life I would have regretted not coming back with unfinished business. It would have left a real pain in my heart to feel the way I did at the end of the season.\"\nBaker did one of his best managing jobs this season, guiding the Reds through one major setback after another.\nThey lost closer Ryan Madson and their two setup relievers to injury during spring training. Baker eased left-hander Aroldis Chapman into the closer's role, a move that worked beautifully. Joey Votto tore cartilage in his left knee at midseason, costing the Reds their top hitter -- he was never the same, even after returning.\nBaker juggled his lineup and led the club on a 36-12 tear while Votto was recuperating. With the team on the verge of clinching, Baker ended up in a hospital during a road trip in Chicago. He missed 11 games and returned for the final regular-season series.\nThe Reds made it through the season with all five starters healthy, a trend that ended in the first inning of the playoffs. Ace Johnny Cueto pulled muscles in his right side on his eighth pitch in San Francisco, sidelining the 19-game winner and putting Cincinnati's pitching plans in disarray.\nBaker got creative with his pitching staff and the Reds won the first two games. With a chance to wrap it up back in Cincinnati, they had a passed ball and an error that let the Giants rally for a 10-inning win in Game 3. The Giants completed their comeback on Buster Posey's grand slam to take Game 5.\nThe Reds have won two division titles in the last three years -- their best showing since Sparky Anderson ran the Big Red Machine in the 1970s -- and have won 169 games over the last three years, their best such stretch in 30 years.\n\"We're moving in the right direction,\" general manager Walt Jocketty said. \"We're trying to build a team that will be in contention for a long time and win multiple world championships. One of the things we feel is very important is continuity.\n\"Every place I've been, we've always had continuity, whether it's the scouts, the front office, the minor league people. But most importantly, the guys that are leading the team on the field. If you look, the more successful operations and teams are the organizations that keep continuity in their leadership.\"\nBaker has presided over a revival in Cincinnati, which was rebuilding when he took over in 2008. The Reds were moving from a team reliant on homers -- an offense built around Ken Griffey Jr. and Adam Dunn -- to one that wins with pitching and defense.\nA young team reached the playoffs unexpectedly in 2010, then got swept by Philadelphia. Baker became one of only six managers to win division titles with three teams, along with Billy Martin, Joe Torre, Tony La Russa, Lou Piniella and Davey Johnson.\nCincinnati took a step back last year, when three starters got hurt or sick during spring training and several players had subpar seasons. They won 90 games again this year, the seventh time one of Baker's teams has reached the mark.\nThe overriding question was whether he'd be physically able to continue managing. He's had an irregular heartbeat since he was a teenager and high blood pressure for years. He's managing the problems with a change in diet.\n\"Really his health was never an issue with us and him,\" Jocketty said. \"The doctors in Chicago and Cincinnati gave him a clean bill of health and said he'd have a total recovery. We've seen a quick recovery. Look at him now -- he looks happier and stronger than he was even months ago.\"\nBaker has lost weight, much of it from fluid buildup.\n\"I can't wait for spring training,\" Baker said. \"I feel excellent. I feel I have most of my strength back.\""} -{"text": "As promised, the Penguicon 2012 Friends of Armed & Dangerous party location: room 370. Begins 9PM tonight.\nHacking on the C code of giflib after an absence of nearly two decades has been an interesting experience, a little like doing an archeological dig. And not one that could readily be had elsewhere; nowhere other than under Unix is code that old still genuinely useful under any but carefully sandboxed conditions. Our reward for getting enough things about API design right the first time, one might rightly say. But what’s most interesting is what has changed, and giflib provides almost ideal conditions for noticing the changes in practice that have become second nature to me while that code has stood still.\nReminder: The Armed & Dangerous party at Penguicon 2012 is now barely more than 72 hours away. Begins 9:00PM Friday night, room number to be announced on this blog and probably tweeted too.\nAll readers of this blog will be welcome. See the real faces behind the Gravatar icons! Pursue discussion threads in person! Refrain from actual physical violence! Wheeee….\nIn 1994 I handed off the maintainership of giflib, the open-source library used by pretty much everything in the universe that displays images for the single most widely used icon and image format on the World Wide Web, because patent issues made it unwise for the project to be run by someone in the U.S. Now, eighteen years later, Toshio Kuratomi (the hacker who took it over then) has asked me to resume the lead. I have accepted his request.\nOne of my commenters brought up John Robb, a former SpecOps pilot who has made a name for himself as a counter-terror theorist by writing about “open-source warfare”. Mutual acquaintances confirm what Robb’s own writings suggest, which is that his notions of open-source warfare are heavily influenced by what I have called the bazaar model of software development.\nWhen I learned this in 2004 I attempted to begin a conversation with John Robb by email. The remainder of this post is my email to him – to which, for whatever reason, he never replied. I have edited the one link reference into a live link.\nAbout six weeks ago I asked How would you like to help fix the Internet? It was an open invitation to help develop a cheap millisecond-precision time source for instrumented routers, so we can do delay tomography on the Internet and measure the bufferbloat problem.\nThe discussion thread on that post was lively, but eventually moved to a thumbgps project mailing list out of public view. I’m going to summarize what has gone on here because parts of it are very interesting in a “Wow…it really is the 21st century!” sort of way, and illustrate that there can be a lot of power in making simple connections.\nOne of the most important reasons not to tell ourselves pretty lies about unpleasant realities is so that we do not hand evil people the power of being the only ones who are willing to speak the truth.\nA brief update for those of you who were following the saga of our cat Sugar’s brush with death and remarkable rebound early last September.\nThe newest comScore figures, for February 2012, are out. Android has finally achieved majority market share in the U.S.. This is three months later than a linear fit to most of 2010 and 20111 predicted, but whatever happened in 4Q2011 to throw everybody off their previous long-term trend curves seems to be over. Android, in particular, is back to pulling about 2% of additional market share per month – actually, its growth rate seems to have increased a bit from before the glitch.\nI was right not to overinterpret Apple’s very slight loss of market share last month. The iPhone is back to very, very slowly gaining share. Apple fans should resist the temptation to overinterpret that, though, since the gain is within statistical noise level.\nRIM and Microsoft continue to go down in flames, losing not just market share but total userbase as well.\nWhat does it all mean?\nEven to a person as cynical and jaded as I have become about American politics, the brouhaha around the Trayvon Martin shooting is rather shocking. Usually, in past instances of even the most determined attempts to inflame racial hatred, there’s been at least a fig leaf of plausible deniability over the manipulation. Not this time. Not with MSNBC getting caught editing its presentation of the 911 tape to make it sound like the shooter uttered a racial slur. Not with Trayvon Martin’s photo obviously photoshopped to make him look younger, less threatening, and (ironically) more white.\nI’m not going to utter or argue for a conclusion about whether or not Zimmerman shot in self-defense. We don’t know that. Perhaps he was, in fact, motivated by race hatred. The facts of the shooting will have to come clearer before that can be judged. We have more than enough facts, though, to observe and indict the operation of the racial-grievance factory, and to point a finger squarely at those who are dishonestly battening on Trayvon Martin’s death."} -{"text": "CONDITION, \"missing base model details\")\n\t\t}\n\t\tparameterCount = base.BaseModelDetails.ParameterCount\n\t\tif target.GetPeftDetails().GetBaseModelType() != \"\" {\n\t\t\tmodelType = target.GetPeftDetails().GetBaseModelType()\n\t\t} else {\n\t\t\tmodelType = base.GetBaseModelDetails().GetModelType()\n\t\t}\n\t}\n\tif modelType == \"\" || parameterCount == 0 {\n\t\treturn shapeutil.ShapeMatchCriteria{}, false, fwerror.New(gpb.Code_FAILED_PRECONDITION, \"missing base model details\")\n\t}\n\treturn shapeutil.NewShapeMatchCriteria(target.GetName(), modelType, parameterCount), target.GetKind() == gpb.Model_EMBEDDING_MODEL, nil\n}\n\nfunc (s *Server) accessibleModel(ctx context.Context, name string) (*gpb.Model, error) {\n\tvar model database.Model\n\tif err := model.PopulateFromName(s.DB(ctx), name); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := modelpkg.ValidateModelReferenceAccess(ctx, &model); err != nil {\n\t\treturn nil, err\n\t}\n\treturn model.ToProto(), nil\n}\n\nfunc (s *Server) filterDeploymentShapeVersionsByEmbeddingStatus(ctx context.Context, shapes []*database.DeploymentShapeVersion, targetIsEmbedding bool) []*database.DeploymentShapeVersion {\n\tfiltered := make([]*database.DeploymentShapeVersion, 0, len(shapes))\n\tfor _, shape := range shapes {\n\t\tif shape.Snapshot == nil {\n\t\t\tcontinue\n\t\t}\n\t\tshapeBase, err := s.accessibleModel(ctx, shape.Snapshot.BaseModel)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\tif (shapeBase.GetKind() == gpb.Model_EMBEDDING_MODEL) == targetIsEmbedding {\n\t\t\tfiltered = append(filtered, shape)\n\t\t}\n\t}\n\treturn filtered\n}\n\nfunc preferExactDeploymentShapeVersionMatches(shapes []*database.DeploymentShapeVersion, targetModel string) []*database.DeploymentShapeVersion {\n\texact := make([]*database.DeploymentShapeVersion, 0, len(shapes))\n\tfor _, shape := range shapes {\n\t\tif shape.Snapshot == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif shape.Snapshot.BaseModel == targetModel {\n\t\t\texact = append(exact, shape)\n\t\t}\n\t}\n\tif len(exact) > 0 {\n\t\treturn exact\n\t}\n\treturn shapes\n}\n\nfunc omitDeprecatedDeploymentShapeDraftModel(dsv *gpb.DeploymentShapeVersion) {\n\tif dsv == nil || dsv.Snapshot == nil {\n\t\treturn\n\t}\n\tdsv.Snapshot.DraftModel = \"\"\n}\n\n// UpdateLatestValidatedForShape sets LatestValidated based on create_time desc for validated versions\nfunc (s *Server) UpdateLatestValidatedForShape(tx *gorm.DB, accountId, deploymentShapeId string) error {\n\t// Step 1: Clear the LatestValidated flag for this shape\n\tclearResult := tx.Model(&database.DeploymentShapeVersion{}).\n\t\tWhere(&database.DeploymentShapeVersion{\n\t\t\tDeploymentShapeVersionName: resourcename.DeploymentShapeVersionName{\n\t\t\t\tAccountId: accountId,\n\t\t\t\tDeploymentShapeId: deploymentShapeId,\n\t\t\t},\n\t\t\tValidated: true,\n\t\t\tLatestValidated: true,\n\t\t}).\n\t\tUpdate(\"LatestValidated\", false)\n\tif clearResult.Error != nil {\n\t\treturn clearResult.Error\n\t}\n\n\t// Step 2: Find the most recent validated version\n\tvar latestValidatedVersion database.DeploymentShapeVersion\n\tresult := tx.Where(&database.DeploymentShapeVersion{\n\t\tDeploymentShapeVersionName: resourcename.DeploymentShapeVersionName{\n\t\t\tAccountId: accountId,\n\t\t\tDeploymentShapeId: deploymentShapeId,\n\t\t},\n\t\tValidated: true,\n\t}).\n\t\tOrder(`\"CreateTime\" DESC`).\n\t\tFirst(&latestValidatedVersion)\n\n\tif result.Error != nil {\n\t\treturn result.Error\n\t}\n\n\t// Step 3: Set LatestValidated on the found version\n\tupdateResult := tx.Model(&latestValidatedVersion).Update(\"LatestValidated\", true)\n\treturn updateResult.Error\n}\n\n// getTargetTPSForPreset returns the target tokens per second for a given preset type.\n//\n// These values were chosen in January 2026 based on perceived UX standards:\n// - AGENTIC_CODING: 80-100 TPS for faster code output, allowing users to scan\n// generated code more quickly.\n// - CHAT, SUMMARIZATION, etc.: ~50 TPS for text output, which feels more\n// natural and readable for conversational/prose content.\nfunc getTargetTPSForPreset(pt gpb.DeploymentShape_PresetType) int32 {\n\tif pt == gpb.DeploymentShape_AGENTIC_CODING {\n\t\treturn 100\n\t}\n\treturn 50\n}\n\n// buildLoadTestSummary creates a LoadTestSummary for a use case shape from load test output.\n// It selects the performance metrics row that best matches the target TPS for the preset type.\n// Note: Token configuration (test_parameters) is available separately via load_test_input.\nfunc buildLoadTestSummary(output *gpb.LoadTestOutput, presetType gpb.DeploymentShape_PresetType) *gpb.LoadTestSummary {\n\tsummary := &gpb.LoadTestSummary{\n\t\tTargetTokensPerSecond: getTargetTPSForPreset(presetType),\n\t}\n\n\t// Select the best matching performance metrics row\n\tif output != nil && len(output.PerformanceMetrics) > 0 {\n\t\tsummary.Metrics = selectBestMetricsRow(output.PerformanceMetrics, summary.TargetTokensPerSecond)\n\t}\n\n\treturn summary\n}\n\n// selectBestMetricsRow selects the performance metrics row that best matches the target TPS.\n// TPS is calculated as 1000 / LptAverageMs (latency per token in milliseconds).\nfunc selectBestMetricsRow(metrics []*gpb.PerformanceMetrics, targetTPS int32) *gpb.PerformanceMetrics {\n\tif len(me"} -{"text": "The past few weeks should have convinced most of us that a knowledge of politics, and years watching the game, were now inadequate for a commentator like me to be able do his job. A grasp of psychiatry would be much more helpful, especially where the Labour Party is concerned. Politics used to be about ideology, but now it is about love and loyalty. Does Gordon love Tony? Does Tony love Gordon? If the answer to both parts is no, then how does it affect the delicate balance of the Labour high command?The trouble is that the chattering classes, the politicos, the wannabes and sundry groupies are no longer interested in governing the country. That requires knowledge, hard work and some understanding. Moreover, as anyone who has been engaged in the process will tell you, it is at times extremely tedious and unrewarding.\nPerhaps most important, since we technically live in a democracy, what on earth are the general public outside the G-Mex centre in Manchester, where Labour's conference is being held, supposed to make of all this? Now that we have heard from both of the alleged titans of New Labour, and they have both preened and postured in their respective corners, can we perhaps get back to the real business of politics, which is to govern the country?\nThat in part accounts for the attraction of the European Union. In performing its role as a gigantic law-making machine, it saves the politicos the trouble and tedium of having to legislate on the vast number of dry, technical issues that a mature democracy seems to think essential. Instead, they can concentrate on the \"real\" issues – such as how to get elected – without having to bother their pretty little heads about the real business of government.\nSo it is that politics has been reduced to all the gravitas of a soap opera, its \"stars\" competing for air-time with the next episode of Neighbours or Corrie, while – as one of our forum members so aptly puts it – our media cease to be political commentators and become theatre critics.\nNeedless to say, this infantilisation of politics is attractive, as much of the real business of government is indeed tedious. For instance, no amount of \"sexing-up\" is going to make the detailed scrutiny of a draft law interesting – the process of line-by-line analysis, changing commas into full stops, amending part-clauses and knocking out obscure sentences which, years later, could have a profound and damaging effect on a small (or even large) number of people.\nHow much easier it is to focus on the salacious gossip – who is slagging off whom; who is shagging who's wife (or boyfriend) – and all the clever-dick tittle-tattle that emanates from the political hothouse, populated by second-raters distinguished only by having intellects in inverse proportion to the size of their egos.\nBut, while this is all good \"entertainment\", it is also the death of good government. When the elections become beauty contests rather than sober assessments of the performance of governments, politicians will play to the gallery rather than get down to the nitty-gritty of good administration.\nAnd as long as the media fritters away its time and power on giving these buffoons space and airtime, instead of using their skills to make the dull interesting, and thus inform rather than titillate the population, the politicians will continue to value acting skills and \"presentation\" over substance.\nIt is here that the antidote is the internet – a superb medium for conveying information and a portal through which the mass of detail we need to know can be accessed. Never has participating in the democratic process been easier. But, unfortunately, the internet is equally capable of becoming a vehicle for accessing the same, low-grade titillation and dross that so gratifies its authors and entertains the masses.\nThe trouble is that being a grown-up in a complex and increasingly dangerous world requires a sense of responsibility – a realisation that being a citizen of a democracy requires more than self-gratification and the right to 24/7 wall-to-wall entertainment. It requires taking the time out to explore and understand the issues, to complain long and loud when we are misinformed, misled and badly governed. In other words, being grown-up requires that we behave like adults.\nBut, as the politicians and the media are failing the test, so is the internet – at least on this side of the Atlantic – where it too is dominated by the trivial, the salacious and the populist. And that must reflect the readership which finds it easier to dwell on the infantile than to assume the responsibilities of adult citizens.\nIf we behave like children, however, we can hardly complain if, increasingly, we are treated like children. If we see the exponential growth of the \"nanny state\" it can only be because, increasingly, we are incapable of, or unwilling to, manage our own affairs – or take personal responsibility for our own actions.\nThus, there is a hard nugget of truth in that phrase, \"we get the governments we deserve\". If we wish to dwell on the trivial, the jokey and the superficial - to the exclusion of all else - we will continue to suffer the ministrations of the dross that populate the political classes.\nYet, by the same measure, our salvation is in our own hands. Politicians are nothing if not populists and if they perceive that the public is in no mood for the low grade fare that they and the media insists on doling out, they will change. And the internet is one of the most powerful (but not the only) tools for sending such a signal. Abuse it and we only have ourselves to blame.\nSo, to paraphrase Heffer, we need get back to the real business of politics, which is to govern the country. Boring, at times it might be but hey! Who ever said it was easy being a grown-up?"} -{"text": "It's a routine that makes the days fly by. 5:30am wake up to do the weather, chop would, prep breakfast and lunch, guide's meetings, help guests with gear issues, and finally get out the door to ski at 8:30. That's when the day gets simpler, lodge maintenance fades into the background, and the purity of one step forward at a time and snow assessment take hold. Your skis grant you the freedom to escape from the grind, whether you are a guest on holiday or a guide/owner/operator for a day at work. We all lose ourselves in the moment of striding uphill and flying downhill, from valley to mountain top and back again. Smooth and fast we slide back to the lodge, the tasks take hold for me again, with a mirror image of the morning routine, but its great to watch the guests stay in that zone, melting away in the sauna, replenishing the burned calories and continuing with the simple life.\nBut then my world decided to change. Just when you are hitting your stride, sometimes the world has a different path for you to follow. I had just finished a big week of guiding, with a group of guests, we averaged between 8 and 9 thousand feet of skiing a day, a few people squeaking in 50 grand for their week. 6 weeks after having surgery I was worried if I would pull it off, but hard and tiring as it was, it was also rewarding, considering as well that we had uncharacteristically bad snow for a bunch of days from an abnormal wind event that seemed to jack every bit of open snow in British Columbia. The next group came in and a few days later so did the snow. We settled in to the 'normal' 5 to 6 grand of skiing per day, which is plenty by my standards, and with 30cms of fresh snow, it felt like a new world out there. So I was skiing like it was bottomless Kootenay cold smoke, but then I hit bottom. Or at least started my journey to the bottom.\nIn my typical, 'I want to ski to inspire' fast and fun style, I found the wind jacked snow just below the surface, and my left ski decided to auger in and go a little to the right while my body kept going straight and maybe a little to the left. Then I heard the 'pop' you hear about and fear as a skier/athlete/guide. I instantly knew something was wrong. As is human instinct I tried to get up and walk it off, but boom, I was right back on the ground, my left leg no't working right. Deep in the backcountry, I looked at my watch and started to make decisions. I still was with a group of 12 guests and 2 other guides, so support was there, but that was the rest of everyone's day, dealing with me. A few super labored zig zag turns and collapses and I made it off of avalanche terrain and met up with the group, almost blacking out with pain and adrenaline. With cloud building and a quality rescue sled made by Kootenay Rescue Bubble, Jasmin, my super tough wife and co-guide, made the right call to drag me out. So we immobilized my leg, put me in the sled and spent the next 3 hours getting me back to the lodge. It took 100% from everyone to make it happen, team work at its finest but for sure Andrew (the other guide) and Jasmin worked the hardest.\nGetting back to my cabin at the lodge is when it all broke down. Waves of emotion crested over me as I knew my path had changed. There will be no freedom in the hills for many months now, my endorphin source taken away. A new uphill battle through the 'non-life threatening' public health care system was setting up to be my fight. I wasn't scared or upset at hurting my self, and looking at surgery and the road to recovery, I was more upset about letting down my wife, having doubled her workload at our lodge with me out of commission, scared at losing my freedom and becoming a prisoner of immobility, scared of losing touch with my wife and hound as I knew I wouldn't be able to be up at the lodge for the rest of the winter as I battled down the road of recovery. The preciousness of the special and unique life we have seemed all to real.\nWe all adapt and change though, and we settle in to our new roles as best we can. Or maybe we just cope. Again and again, folks like to talk about the 'reasons' behind things happening. I don't think things happen for a reason. I think we are all in control of our destinies. I think the 'silver lining' is something we find on our own and decide to focus on. One door closing just makes you realize that there are other doors to open and explore. I found my path and partner in life and I am going to fight like hell to get back on it and with her stronger than before. Eventually I will get in to surgery to repair my ACL and meniscus and my bruised up bones will heal. Maybe I will learn some cool things along the way, or maybe I will realize that in my mid 30s I need to stop breezing through my physical life and start making my body work harder for it and training. Either way my eyes are open to what needs to get done and now I need to do it!\nSo you won't find the deepest faceshot, most majestic views or insane physical feats coming from me for a few months. You will find me filling you in on the slow road to recovery that I know many of you have traveled down, with the small victories and defeats of the daily struggle. I know a ton of you can relate, and my strength comes from standing on the shoulders of so many of you that have hurt yourselves before me. In the end, no one died, and I should be charging in the hills again before I know it, so really its just a flat tire, with a busted spare, and a long walk to the nearest service station for help. And when I get the tire fixed I can continue down my wonderful path in life!\nHere's a quick vid showing you the life I am now missing...\nPS...thanks to all the friends and family that have showed their support, much appreciated!"} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/lroworker/activities/rlor_trainer_activity.go. Lines: 1228.\n\npackage activities\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"net/url\"\n\t\"path\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/database\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/gcp\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/lros\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/lros/rlor_trainer_job\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/lroworker/common\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/lroworker/common/trainingerrors\"\n\tmodelpkg \"github.com/fw-ai/fireworks/control_plane/pkg/model\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/statemachine\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/trainingmessages\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/utils\"\n\tdwpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/deployment_watcher\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\tresourcename \"github.com/fw-ai/fireworks/go/resource_name\"\n\t\"github.com/google/uuid\"\n\t\"go.temporal.io/sdk/activity\"\n\tsdklog \"go.temporal.io/sdk/log\"\n\t\"go.temporal.io/sdk/temporal\"\n\t\"gorm.io/gorm\"\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapierrors \"k8s.io/apimachinery/pkg/api/errors\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n\t\"k8s.io/client-go/kubernetes\"\n)\n\n// rlorProfileBucket is the GCS bucket for RLOR profiling traces and memory snapshots.\nconst rlorProfileBucket = \"fireworks-fine-tuning-profiles\"\n\ntype RlorTrainerActivity struct {\n\tdb *gorm.DB\n\truntime statemachine.Runtime\n\tcontrolPlaneURL string\n\tcontrolPlaneGatewaySecret string\n}\n\nfunc NewRlorTrainerActivity(db *gorm.DB, runtime statemachine.Runtime) *RlorTrainerActivity {\n\treturn &RlorTrainerActivity{db: db, runtime: runtime}\n}\n\nfunc ConfigureRlorTrainerActivityControlPlaneResolver(a *RlorTrainerActivity, controlPlaneURL, gatewaySecret string) *RlorTrainerActivity {\n\ta.controlPlaneURL = strings.TrimSpace(controlPlaneURL)\n\ta.controlPlaneGatewaySecret = strings.TrimSpace(gatewaySecret)\n\treturn a\n}\n\n// updateRFTJobStatusMessage is a helper to update the RFT job's status message\n// This is used to surface the \"Queued - Waiting for capacity\" state to the API/UI\nfunc (a *RlorTrainerActivity) updateRFTJobStatusMessage(ctx context.Context, accountId, jobId, statusMessage string) {\n\tlogger := activity.GetLogger(ctx)\n\tif jobId == \"\" {\n\t\treturn // Skip if no job ID (e.g., standalone RLOR jobs)\n\t}\n\n\tvar rftJob database.ReinforcementFineTuningJob\n\terr := rftJob.Populate(a.db, resourcename.NewReinforcementFineTuningJobName(accountId, jobId))\n\tif err != nil {\n\t\tlogger.Warn(\"Failed to populate RFT job for status update\", \"error\", err)\n\t\treturn\n\t}\n\n\trftJob.Status.Message = statusMessage\n\tif err := a.db.Save(&rftJob).Error; err != nil {\n\t\tlogger.Warn(\"Failed to update RFT job status message\", \"error\", err)\n\t} else {\n\t\tlogger.Info(\"Updated RFT job status message\", \"jobId\", jobId, \"message\", statusMessage)\n\t}\n}\n\n// --------\n// RlorTrainer activity definitions\n// --------\n\ntype RunCreateRlorK8sInput struct {\n\tAccountId string\n\tDatasetGcsUri string\n\tEvaluationDataset string\n\tJobId string\n\tRewardWeightsSetup []string\n\tReferenceModelAddon string\n\tTrainingConfig *gpb.BaseTrainingConfig\n\tLossConfig *gpb.ReinforcementLearningLossConfig\n\tRlorJobType gpb.RlorJobType\n\tDebug bool\n\tEnableKeepAlive bool\n\tJobTimeout *time.Duration\n\tWandbConfig *gpb.WandbConfig\n\tTrainingImageTag string\n\tTrainingNodeCount int32\n\tRolloutDeploymentName string // corresponding rollout deployment name for trainer to tigger hot reload ledger\n\tCreatedBy string\n\tHotLoadBucketUrl string // hot load bucket path to pass to trainer\n\n\t// Existing file paths from DB (for job resumption)\n\t// If set, these will be reused instead of generating new ones\n\tExistingJobStatusFile string\n\tExistingJobBillingFile string\n\tExistingJobMetricsFile string\n\tExistingModelCheckpointDirectory string\n\tExistingDcpCheckpointDirectory string\n\n\t// TrainerLogsEnabled controls whether trainer stdout/stderr logs are collected.\n\tTrainerLogsEnabled bool\n\n\t// UseReservation, when true, asks the deployment_watcher to admit the\n\t// trainer against any active commercial reservation owned by the\n\t// caller's account that matches the requested accelerator. Threaded\n\t// into PlaceTrainerJobInput.UseReservation; see that field for\n\t// semantics.\n\tUseReservation bool\n}\n\ntype RunCreateRlorK8sOutput struct {\n\tK8sJobName string\n\tRegion gpb.Region\n\tJobStatusFile string\n\tJobBillingFile string\n\tJobMetricsFile string\n\tTrainerLogsFile string\n\tModelCheckpointD"} -{"text": "What Not To Do To Get My Ex Girlfriend Back?\"I want to get my ex girlfriend back, I need to save our relationship.” Perhaps this may be the idea in your head around this difficult time of your life.\nFirst, one must admit that your relationship is over. For now you cannot do anything to save it. So do not waste time wondering what you can do to save the relationship, because you cannot. What you should ask is: \"What can I to do to get my ex back that she returns to me?\"\nIt is impossible to get a woman forever. Bear in mind that any disruption is reversible, because there are still feelings involved, no matter how bad it ended. Therefore, you have to make sure that these feelings will surface again.\nHowever, many individuals are making the same mistakes while trying to get back with their ex. They are trying to get their ex very directly. In fact, if you want your ex back, do it in a very subtle way, not obvious way.\nNow, read carefully. If you want to get your ex girlfriend back, for your own good do not attempt any of these things. Do not try to talk to her about the causes that destroyed the relationship. Do not promise that you will have a positive change. Do not tell her that you recognize all your mistakes and you're willing to correct them.\nWell, you might be surprised because these things mentioned above are surely found everywhere. In addition, you may have read many articles about these things. Now note this again that these things are absolutely wrong that are usually done to get back to an ex.\nSo, how can I get my ex girlfriend back?Only one way, if you want to get your ex girlfriend back for good, She also must want to get back together with you.\nThis condition cannot occur spontaneously. You need to make it happen. Now you may wonder, \"how I can get my ex girlfriend if you do not talk to her, or I cannot explain anything.\" The answer is easy. You do the opposite of everything mentioned above.\nIf you want to get back a woman, you need not address the break up as a problem. Just accept the breakup, you want the best, give her a kiss on the cheek, and walk away slowly. Do not look back; just do not think of losing her forever.\nHowever, many individuals face problems in this step because they fear that the breakup is final. Therefore, decide not to do what was mentioned. Instead, try to talk to her, or even ask her to return. What happens next? The answer is very easy too. She no longer respects you anymore, and now you're less attractive than before. So you must do as described, you accept the breakup, you want the best, and walk away.\nIs this the only thing to get my ex girlfriend?Of course not, after this you need to be ready for the second step. And your next step is to disappear from her life. This is easy, but many men cannot do it.\nWhy you have to disappear from your life? Because you want to make her miss you, that's why. So, how could she miss you if you're still around, calling, sending emails and text messages?\nIf you do what is mentioned, then from now, she has to live her life without you. Also, when she does not know where you are or what you are doing, usually she imagine doing the worst, for example, you can be with another girl, or maybe trying to start a new relationship with a girl you just met. It is a fact that no woman wants her ex-boyfriend continues his life without her, even though it was she who decided to break up.\nTherefore, if you want to get your ex girlfriend back you need to know what to do. It is also important to have a step by step plan, so you know exactly what to do and when. You can make her miss you, or even love you again, following a comprehensive plan for success. When both of your get back together the new relationship will be stronger since she came close to losing you.\nGet Your Ex Girlfriend Back Fast - What's Next?I'm going to share a little \"secret resource\" now that can make your ex girlfriend want you back and win her over. I have only one request. Please don't abuse the methods I'm about to share with you. Once your girlfriend comes back to you, make sure to treat her right.\nEx2 System - Matt Huston claims to get your ex girlfriend come back crawling to you using his strong psychological tricks. He also tells you how to train your girlfriend so that you never get dumped again.\n>>>Click here to visit official Ex Squared System Website<<<"} -{"text": "Unreads for 6/23\nLove the show (as always). I wanted to get your opinion on a trade that I have pending. I’m in first place by a margin of 21 points in a 12 team 5 X 5 mixed league. Here’s the trade: I trade away Jason Giambi and Brian Fuentes, and I get back David Ortiz. I have 5 closers including Capps, Soria, Percival, Mike Gonzalez, and Fuentes, and I am looking for a second half hedge against Derrek Lee at 1B. I should also mention I got Giambi and Fuentes both from the waiver wire. Does this seem like a fair trade to you? Am I taking too much of a risk on Papi? I’m in Boston, so I’ve been hearing a lot of positive stuff about the wrist, but I don’t know if it’s just positive spin.\nBen in Boston\nIf it ain’t broken, don’t fix it! This situation, however, may be an exception to the rule. Although I can’t quite understand why you’re looking to make a trade while leading the league by 21 points, this deal is too good to pass up, giving you plenty of upside with relatively little risk. Now I’m assuming this league either uses a CI spot or there’s an open utility slot, allowing you to play both Ortiz and Lee, who’s quietly having a very solid year (.294-15-48). Under no circumstances do you want to lose Lee’s production!\nOrtiz is said to be making progress in his recovery, but he’s still a week away from even picking up a bat, so let’s figure it’ll take three weeks or so for Papi to return to action. Right now, three weeks seems like an awfully long time to wait, but if Ortiz comes back fully healthy, the wait will be worth it. Few players can carry fantasy teams the way Ortiz can when he’s in the midst of one of those hot streaks. And it’s not like he has an extensive injury history, having played in at least 149 games in each season from 2004 through 2007. Giambi, on the other hand, is coming off a bust of a season in which he played only 83 games and batted a laughable .236. While Jason’s gotten off to a great start (.271-17-42), I’m not convinced that he’ll put it all together from start to finish. Even with the health concerns surrounding Big Papi, the upgrade from Giambi to Ortiz is a significant one.\nWhat are you giving up in exchange for this upgrade? Not much. Don’t get me wrong, I’m a big fan of Brian Fuentes, but there’s a strong possibility he’ll be dealt to a contender before the July 31st deadline. In that case, Fuentes would likely be relegated to setup duties, thereby eliminating almost all of his fantasy value. Combine this with the fact that you already have 5 closers, go ahead and do the deal.\nI was wondering what you thought of this trade offer I received. I would get Mike Jacobs and Mike Bourne for CJ Wilson. I’m in an 11 team mixed 6 x 6 league (R, HR, RBI, SB, OBP SLG% X W, SV, K, ERA, WHIP, K/9). I have Soria, Mike Gonzalez, Brian Fuentes, Masa Kobayashi, and Hong-Chih Kuo as my other relievers (and Rafael Soriano on the DL). My other outfielders are Vlad, Pence, Swisher, Votto, Francoeur, and Milton Bradley (I also usually rotate one of these guys through my Util spot as well). My starting first baseman is Prince Fielder. So, do you guys like this trade for me? Wilson has been pitching poorly lately and I do need stolen bases and power, which Bourne and Jacobs could provide. Thanks guys, I love listening to you guys.\nI like this move for you. You’re right about Wilson’s recent struggles, as he has been touched up for one or two earned runs in three of his past five appearances. In fact, he’s been a risk for most of the season as he has given up one earned run in two other appearances and two or more earned runs in four other outings. He has a 4.88 ERA, 1.44 WHIP and just a 24/16 K/BB rate in 31 2/3 innings, so the talk that “Everyday” Eddie Guardado (184 career saves) could take over Wilson’s closer role has to be taken seriously.\nFrankly, we typically see many relievers take over closer roles every year as the season gets closer and closer to the “dog days” of summer. Some closers succumb to injury while others lose their jobs to poor performance. There are only a handful of closers in the bigs with a high amount of job security, so in a shallower league such as yours, you should be able to find potential saves on the waiver wire. You have a good candidate on your roster in Kobayashi, if incumbent closer Joe Borowski continues to get shelled in his relief appearances (he has given up two earned runs in two of his last four outings). If you stay apprised to closer situations around the league, Jake, you should be able to pick up a reliever here or there who can make up whatever saves you might lose with trading away Wilson. I recommend perusing the official team pages on MLB.com as a fantastic way to keep up with team news, including the states of teams’ bullpens.\nSwisher and Votto have gone through pronounced slumps recently, so I could see the value in having Jacobs (17 HRs, .529 SLG%) or Bourn (28 steals in 34 chances) at your utility spot, depending on whether you need power or speed. I wouldn’t get too rotation-happy, though, as your better players will tend to level out their stats if you let them play enough. But there is no doubt that the power/speed combo Jacobs and Bourn provide is more than valuable enough to part with Wilson, who is walking the plank in his closer role with the Rangers."} -{"text": "irectory string\n\tDcpCheckpointDirectory string // GCS path for DCP checkpoints (training resume with optimizer state)\n\tCreateTime time.Time\n\tHeadlessServiceName string\n\n\t// TrainerPlacementSubject + TrainerPlacementReservationID let the\n\t// workflow's defer/finally CleanupTrainerPlacement activity release\n\t// the schedule_reservation row. Empty when the legacy AutoPlacement\n\t// fallback was used (no row to delete).\n\tTrainerPlacementSubject string\n\tTrainerPlacementReservationID string\n}\n\n// rlorTrainerPlacementKind translates the inputs of RunCreateRlorK8s into the\n// proto-level TrainerPlacementSubject.Kind so per-kind feature flags and\n// metrics resolve correctly.\n//\n// RFT keep-alive RLOR (a long-lived idle trainer attached to an RFT job) is\n// distinguished from a regular RLOR/DPO trainer by the EnableKeepAlive flag.\nfunc rlorTrainerPlacementKind(rlorJobType gpb.RlorJobType, enableKeepAlive bool) dwpb.TrainerPlacementSubject_Kind {\n\tif enableKeepAlive {\n\t\treturn dwpb.TrainerPlacementSubject_RFT_KEEP_ALIVE\n\t}\n\tswitch rlorJobType {\n\tcase gpb.RlorJobType_DPO, gpb.RlorJobType_ORPO:\n\t\treturn dwpb.TrainerPlacementSubject_DPO\n\tdefault:\n\t\treturn dwpb.TrainerPlacementSubject_RLOR\n\t}\n}\n\n// Creates the RLOR Batchv1.Job\n// Will be used in the CreateK8s step to launch and wait for the job\nfunc (a *RlorTrainerActivity) RunCreateRlorK8s(ctx context.Context, input RunCreateRlorK8sInput) (*RunCreateRlorK8sOutput, error) {\n\tlogger := sdklog.With(activity.GetLogger(ctx), \"accountId\", input.AccountId, \"jobId\", input.JobId)\n\tlogger.Info(\"Creating Rlor K8s job\", \"namePrefix\", input.JobId)\n\n\tvar createdModel database.Model\n\n\t// Reuse existing file paths if ALL are provided (for job resumption), otherwise generate new ones\n\t// All four paths must be non-empty to avoid passing invalid empty GCS URIs to the job builder\n\tvar jobStatusFile, jobBillingFile, jobMetricsFile, modelCheckpointDirectory, dcpCheckpointDirectory string\n\tif input.ExistingJobStatusFile != \"\" &&\n\t\tinput.ExistingJobBillingFile != \"\" &&\n\t\tinput.ExistingJobMetricsFile != \"\" &&\n\t\tinput.ExistingModelCheckpointDirectory != \"\" {\n\t\tjobStatusFile = input.ExistingJobStatusFile\n\t\tjobBillingFile = input.ExistingJobBillingFile\n\t\tjobMetricsFile = input.ExistingJobMetricsFile\n\t\tmodelCheckpointDirectory = input.ExistingModelCheckpointDirectory\n\t\tdcpCheckpointDirectory = input.ExistingDcpCheckpointDirectory\n\t\tlogger.Info(\"Reusing existing file paths for job resumption\",\n\t\t\t\"statusFile\", jobStatusFile,\n\t\t\t\"billingFile\", jobBillingFile,\n\t\t\t\"metricsFile\", jobMetricsFile,\n\t\t\t\"checkpointDir\", modelCheckpointDirectory,\n\t\t\t\"dcpCheckpointDir\", dcpCheckpointDirectory)\n\t} else {\n\t\tuniqueFileID := uuid.New().String()\n\t\tjobStatusFile = fmt.Sprintf(\"gs://%s/rlor-%s-%s/status-%s\",\n\t\t\tJobStatusBucket, input.AccountId, input.JobId, uniqueFileID)\n\t\tjobBillingFile = fmt.Sprintf(\"gs://%s/rlor-%s-%s/billing-%s\",\n\t\t\tJobMetadataBucket, input.AccountId, input.JobId, uniqueFileID)\n\t\tjobMetricsFile = fmt.Sprintf(\"gs://%s/rlor-%s-%s/metrics.jsonl\",\n\t\t\tJobMetadataBucket, input.AccountId, input.JobId)\n\t}\n\n\t// Generate trainer logs file path if enabled (stable path without UUID for streaming)\n\tvar trainerLogsFile string\n\tif input.TrainerLogsEnabled {\n\t\t// Keep-alive RLOR is currently only used by RFT. In this mode, there is no per-RLOR-job log\n\t\t// to append, so we have the keep-alive trainer write directly into the RFT log file.\n\t\tif input.EnableKeepAlive && input.RlorJobType == gpb.RlorJobType_UNSPECIFIED {\n\t\t\ttrainerLogsFile = fmt.Sprintf(\"gs://%s/trainer-logs/%s/rft/%s/logs.txt\",\n\t\t\t\tJobMetadataBucket, input.AccountId, input.JobId)\n\t\t} else {\n\t\t\tjobType := \"rlor\"\n\t\t\tif input.RlorJobType == gpb.RlorJobType_DPO || input.RlorJobType == gpb.RlorJobType_ORPO {\n\t\t\t\tjobType = \"dpo\"\n\t\t\t}\n\t\t\ttrainerLogsFile = fmt.Sprintf(\"gs://%s/trainer-logs/%s/%s/%s/logs.txt\",\n\t\t\t\tJobMetadataBucket, input.AccountId, jobType, input.JobId)\n\t\t}\n\t}\n\n\ttrainingConfig := input.TrainingConfig\n\n\tlogger.Info(\"Using training config\", input.TrainingConfig)\n\n\t// Trainer placement: routes through the global scheduler when the\n\t// per-kind feature flag is on, falls back to legacy AutoPlacement.\n\t// AcceleratorCount must be the total physical-GPU count across all\n\t// training replicas (#24105) — the scheduler reserves whole nodes.\n\tplacementKind := rlorTrainerPlacementKind(input.RlorJobType, input.EnableKeepAlive)\n\tsubjectName := resourcename.NewRlorTrainerJobName(input.AccountId, input.JobId).String()\n\tplacement, autoPlacementErr := lros.PlaceTrainerJob(ctx, a.runtime, lros.PlaceTrainerJobInput{\n\t\tSubjectName: subjectName,\n\t\tKind: placementKind,\n\t\tJobID: input.JobId,\n\t\tRegion: input.TrainingConfig.Region,\n\t\tAcceleratorType: input.TrainingConfig.AcceleratorType,\n\t\tAcceleratorCount: common.TotalTrainingAcceleratorCount(input.TrainingConfig, input.TrainingNodeCount),\n\t\tLegacyRegionConfig: &utils.RLORRegionConfig,\n\t\tTaintExclusionMode: dwpb.TaintExclusionMode_PILOT,"} -{"text": "The Average Draft Position is one of the most finickiest lists in regards to how we can use it to our advantage for our own fantasy drafts. Once the NFL Draft is over, we usually get a good gauge as to which players are going to skyrocket and which ones are going to sink like a stone. The draft isn't the only thing that pushes a player's ADP up-or-down the ladder. Those free agents who have yet to find a home are also a thorn in the sides of many owners who are hoping certain players have a breakout season. Or, at the very least, improve upon the previous year. If you haven't drafted yet, then the most latest ADP list will give you the most help. But for those of us who used it to select dynasty players or players in a keeper league earlier this year, the sudden changes are frustrating because, simply, we kept a player who has lost a lot of value.\nThis topic obviously doesn't pertain to the likes of Aaron Rodgers, Adrian Peterson or Calvin Johnson. The only way those guys fall is if they are out for the entire season due to an injury. But here is a list of five players who have seen their ADP fall over the past several months due to the draft, free agency, productivity in OTAs and other variables.\nMany thanks to My Fantasy League for the use of their ADP list.\nChargers QB Philip Rivers - Average Draft Position 157.22\nMaybe Rivers was never considered one of the elite QB1s in the fantasy football world, but his value was much higher several years ago than it is now. Over the past three seasons, Rivers has gone from a stat-line of 4710/30/13 in 2010 to 3606/26/15 in 2012, with his overall numbers getting gradually worse every season. This year isn't going to be much easier with an offensive line that looks to be one of the worst in the league and a running back who looks like he will never live up to the hype in Ryan Mathews. Rivers is bordering on the brink of being an in-season free agent pick up.\nColts RB Vick Ballard - Average Draft Position 83.00\nRemember that free-agency thorn I was discussing in the intro? That's exactly what is happening to Ballard after the team went out and signed former Giants RB Ahmad Bradshaw. Ballard wasn't going to tear the roof off this season, but he was a starter on an up-and-coming Colts team. I even listed him as one of my Breakout Candidates. Now that Bradshaw is in town, Ballard is now nothing more than a handcuff and a desperation flex option unless Bradshaw gets hurt. And given his track record for foot injuries, Ballard could actually come in handy. Bradshaw's ADP is currently 98.65, but that will change as we get closer to the regular season.\nPanthers RB Jonathan Stewart - Average Draft Position 84.08\nStewart's value started dwindling when the Panthers decided to keep DeAngelo Williams for 2013 instead of cutting him in the offseason. The coaching staff would love nothing more than to make Stewart the focal point of the backfield, but he's simply too injury prone. He only played in nine games in 2012. And now that he's currently questionable for the start of training camp due to injured ankles, Stewart should see his ADP continue to drop heading into August. If Stewart surprisingly winds up ready for Week One, he's nothing more than a flex option at best considering his history. Expect to see Stewart drop when I fix my running back rankings in the next few weeks.\nEagles WR Jeremy Maclin - Average Draft Position 82.62\nMaclin came into the NFL with a lot of hype and was considered by many to emerge as the Eagles' new No. 1 receiver over DeSean Jackson. Five years later and Maclin is not only finding his fantasy value falling, but there is a good chance he might not be an Eagle beyond 2013 if he can't impress. With Chip Kelly not married to anyone on the Eagles offense in the post Andy Reid era, Maclin finds himself with a lot of competition for targets from new guys like Arrelious Benn and James Casey. Maclin was usually good as a WR3 with upside in past years, but it's looking like he will wind up as nothing more than a WR4 with a low ceiling in 2013.\nChargers WR Malcom Floyd - Average Draft Position 204.81\nOne of the biggest plummets so far. As a Floyd owner in a dynasty league, I'm going to miss what's left of the value he gave me in 2012. Even though there wasn't very much. He may have had a season high 56 receptions, but his season as a whole wasn't anything to write home about. There was still some hope early in the offseason that Floyd might continue to be somewhat of a flex option, but that dream is long gone. Enter 2013, and Floyd is pretty much the lowest of the low in terms of his average draft position. A new coaching staff, an iffy quarterback (see above) and an emerging Vincent Brown are all the ingredients for a lackluster season on the horizon. His ADP should continue to tumble, along with everyone else on the Chargers offense."} -{"text": "Sign in Not A Member? Join now!\nFind A Grave - University of Virginia Cemetery and Columbarium\nGarrett, George b. June 11, 1929 d. May 26, 2008 Author, Screenwriter. He is best known for the \"Elizabethan Trilogy\", which includes the novels \"Death of the Fox\" (1971), \"The Succession\" (1983) and \"Entered from the Sun\" (1990). He was born George Palmer Garrett, Jr. in Orlando Florida and was educated at Princeton University. After serving in the United States Army, he wrote his first novel \"The Finished Man\" in 1959. During the 1960s, Garrett had script credits for the films \"The Young Lovers\" (1964), \"The Playground\" (1965) and \"...[Read More] (Bio by: C.S.) University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA\nLannigan, Henry Hayden b. 1863 d. December 24, 1930 Basketball Coach. Member of the College Basketball Hall of Fame. Known during his time as \"the life and spirit of University of Virginia Athletics,\" During his early years he excelled in track and field, defeated the Swedish fencing champion, and held for several year the world shot-put record. \"Pop\" Lannigan came to the University of Virginia in 1905 as associate director of athletics and remained an integral part of University sports until 1929. During his tenure he improved the track program...[Read More] (Bio by: S.G. Thompson) University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA\nMalone, Dr. Dumas b. January 10, 1892 d. December 27, 1986 Historian, Literary Editor. A distinguished professor at three major universities, he is considered by most to have been the greatest expert ever on the life and work of Thomas Jefferson. Raised in rural Georgia, he received his undergraduate degree at Emory University in 1910 and a a theology degree from Yale in 1916. After teaching Bible at Randolph-Macon Women's College for a short time he served as a lieutenant in the US Marine Corps from 1917 to 1919 then returned to the classroom, earning...[Read More] (Bio by: Bob Hufford) University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA\nMcGuffey, William Holmes b. September 23, 1800 d. May 4, 1873 Author, Educator. With his Brother Alexander, he wrote the “McGuffey Readers”, while a professor at Miami (Ohio) University from 1823-1836. He served as President of Cincinnati College from 1836- 1839, and President of Ohio University from 1839 to 1843. From 1843 to 1845 he served as President of Woodward College in Cincinnati, Ohio. He became Professor of Philosophy at the University of Virginia in 1845 and served in that capacity until his death in 1873. (Bio by: S.G. Thompson) University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA Plot: LAT: 38.03592 - LON: 78.51306\nPosey, Carnot b. August 5, 1818 d. November 13, 1863 Civil War Confederate Brigadier General. He was born in Wilkinson County, Mississippi, and attended college in Jackson, Louisiana, and law school at the University of Virginia before returning home to Mississippi. There he worked as a planter and established a law practice in Woodville. When the Mexican War broke out in 1846, he joined Colonel Jefferson Davis' Mississippi Rifles as a First Lieutenant and was wounded in the Battle of Buena Vista. After the war he again returned home. Until 1861...[Read More] (Bio by: Ugaalltheway) University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA\nVenable, Charles Scott b. April 19, 1827 d. August 11, 1900 Civil War Confederate Army Officer. Attended Hampden Sydney College, graduated at age 15. Part of an astronomical expedition to the Labrador Coast; taught math at Hampden Sydney, University of Georgia, in Europe, and at South Carolina College. Enlisted in the Hampton Legion. Joined the staff of Confederate General Robert E. Lee in April 1862. He rose to the rank of lieutenant colonel serving on Lee's staff as an aide-de-camp for the entire War. Post-War, he married twice. He wrote almost a...[Read More] University of Virginia Cemetery and Columbarium, Charlottesville, Charlottesville City, Virginia, USA"} -{"text": "\n\t\tReservationID: activity.GetInfo(ctx).WorkflowExecution.RunID,\n\t\tUseReservation: input.UseReservation,\n\t})\n\n\tvar region gpb.Region\n\tvar acceleratorType gpb.AcceleratorType\n\tvar trainerReservationID string\n\tvar trainerPlacementSubject string\n\tif autoPlacementErr != nil {\n\t\tif lros.IsRegionDoesNotSupportAcceleratorErr(autoPlacementErr) {\n\t\t\treturn nil, trainingerrors.NewNonRetryable(trainingerrors.ErrorTypeConfigInvalid, autoPlacementErr.Error(), autoPlacementErr)\n\t\t}\n\t\tlogger.Error(\"Error optimizing region selection, proceeding with current region\", \"error\", autoPlacementErr)\n\t\t// Use original values if auto-placement fails\n\t\tregion = input.TrainingConfig.Region\n\t\tacceleratorType = input.TrainingConfig.AcceleratorType\n\n\t\t// If region is still unspecified after fallback, this is a capacity issue - return retryable error\n\t\tif region == gpb.Region_REGION_UNSPECIFIED {\n\t\t\t// Update the job's status message to indicate it's queued for capacity\n\t\t\t// This makes the status visible in the API/UI via firectl\n\t\t\ta.updateRFTJobStatusMessage(ctx, input.AccountId, input.JobId, trainingmessages.CapacityQueued)\n\n\t\t\treturn nil, temporal.NewApplicationError(\n\t\t\t\tfmt.Sprintf(\"No capacity available for accelerator %s: %v\", acceleratorType.String(), autoPlacementErr),\n\t\t\t\tcommon.ErrorTypeInsufficientCapacity,\n\t\t\t\tautoPlacementErr,\n\t\t\t)\n\t\t}\n\t} else {\n\t\tregion = placement.Region\n\t\tacceleratorType = placement.AcceleratorType\n\t\tif placement.UsedGlobalScheduler {\n\t\t\ttrainerReservationID = placement.ReservationID\n\t\t\ttrainerPlacementSubject = subjectName\n\t\t}\n\t\tlogger.Info(\"Auto-placement completed\",\n\t\t\t\"region\", region.String(),\n\t\t\t\"accelerator_type\", acceleratorType.String(),\n\t\t\t\"used_global_scheduler\", placement.UsedGlobalScheduler,\n\t\t\t\"reservation_id\", trainerReservationID)\n\t}\n\n\t// Get K8s client for the region from runtime\n\tk8sClient, err := a.runtime.GetK8sForRegion(region)\n\tif err != nil {\n\t\t// Infrastructure configuration error - not retryable\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\tfmt.Sprintf(\"K8s infrastructure not available for region %s\", region),\n\t\t\tcommon.ErrorTypeConfigInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\tif k8sClient == nil {\n\t\t// Infrastructure configuration error - not retryable\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\tfmt.Sprintf(\"K8s client not configured for region %s\", region),\n\t\t\tcommon.ErrorTypeConfigInvalid,\n\t\t\tnil,\n\t\t)\n\t}\n\n\t// Get the region-specific persistent host path\n\tpersistentHostPath := a.runtime.GetPersistentHostPathForRegion(region)\n\n\tvar trainingDatasetPath string\n\n\tif !input.EnableKeepAlive {\n\t\ttrainingDatasetPath = input.DatasetGcsUri\n\t}\n\n\tcontainerImage := a.runtime.GetContainerImageForRegion(region)\n\tif input.TrainingImageTag != \"\" {\n\t\ttrainingImagePostfix := a.runtime.GetTrainingImagePostfix()\n\t\tif !strings.Contains(trainingImagePostfix, \":\") {\n\t\t\ttrainingImagePostfix += \":current\"\n\t\t}\n\t\tcontainerImage = strings.TrimSuffix(containerImage, trainingImagePostfix) + input.TrainingImageTag\n\t}\n\n\tfastCheckpointStorage := a.runtime.GetFastCheckpointStorageForRegion(region)\n\tif modelCheckpointDirectory == \"\" {\n\t\tmodelCheckpointDirectory = rlorModelCheckpointDirectoryForStorage(fastCheckpointStorage, input.AccountId, input.JobId)\n\t}\n\tif dcpCheckpointDirectory == \"\" {\n\t\tdcpCheckpointDirectory = rlorDcpCheckpointDirectoryForStorage(fastCheckpointStorage, input.AccountId, input.JobId)\n\t}\n\n\t// Prepare trainer logs file pointer (only if enabled)\n\tvar trainerLogsFilePtr *string\n\tif trainerLogsFile != \"\" {\n\t\ttrainerLogsFilePtr = &trainerLogsFile\n\t}\n\n\t// TODO: Add early stop, wandb config, and eval auto carveout\n\tjobBuilder := rlor_trainer_job.NewRlorTrainerJobBuilder(a.runtime.GetClusterRegistry()).\n\t\tWithAccountId(a.runtime.GetDatabase(), input.AccountId).\n\t\tWithJobId(input.JobId).\n\t\tWithRewardWeights(input.RewardWeightsSetup).\n\t\tWithStatusLoggedToGcs(&jobStatusFile).\n\t\tWithBillingLoggedToGcs(&jobBillingFile).\n\t\tWithMetricsLoggedToGcs(&jobMetricsFile).\n\t\tWithTrainerLogsFile(trainerLogsFilePtr).\n\t\tWithCheckpointDirectory(&modelCheckpointDirectory).\n\t\tWithDcpCheckpointDirectory(&dcpCheckpointDirectory).\n\t\tWithSecretClient(a.runtime.GetSecretClient()).\n\t\tWithGcpProjectID(a.runtime.GetGcpProjectID()).\n\t\tWithPersistentHostPath(persistentHostPath).\n\t\tWithAcceleratorType(acceleratorType).\n\t\tWithAcceleratorCount(trainingConfig.AcceleratorCount).\n\t\tWithContainerImage(containerImage).\n\t\tWithEnvironment(a.runtime.GetEnvironment()).\n\t\tWithLlmDownloaderImage(a.runtime.GetLlmDownloaderImageForRegion(region)).\n\t\tWithRegion(region).\n\t\tWithControlPlaneResolver(a.controlPlaneURL, a.controlPlaneGatewaySecret).\n\t\tWithUseReservation(input.UseReservation)\n\n\tif input.TrainingNodeCount > 0 {\n\t\tjobBuilder = jobBuilder.WithNodeCount(input.TrainingNodeCount)\n\t}\n\n\tif input.HotLoadBucketUrl != \"\" {\n\t\tjobBuilder = jobBuilder.WithHotLoadBucketUrl(input.HotLoadBucketUrl)\n\t}\n\n\t// Add rlor toleration from training config if specified\n\tif trainingConfig.Toleration != \"\" {\n\t\tjobBuilder = jobBuilder.WithTolerat"} -{"text": "When my friend’s nephew was diagnosed with mono recently, his doctor told him that he would likely miss school for a month or longer due to the symptoms, and this was a big deal, because he’s a high school senior, so it meant potentially not graduating. Fortunately, I was more than happy to pass along some of my homemade Oregon grape root tincture to him, and he made a full recovery — in terms of his symptoms — within one week. He’s back to feeling healthy again, and his family is pretty relieved!\nI’m not surprised that it worked so very well. Herbal medicine really is effective, and for acute conditions, in my experience, it works quickly. My friend’s nephew is the second person I’ve given Oregon grape root tincture to for mono who made a fast recovery. I’ve also used it successfully for strep throat and cold viruses. The dose he used, and that I usually use, is two medicine droppers, four to five times daily, in tea.\nOregon grape, Mahonia aquifolium, is my favorite medicinal plant. It’s effective for many different ailments, from strep throat to Giardia to mono, and is especially indicated for viral diseases. Oregon grape is native to the Pacific Northwest and it resembles holly, except that holly is a shrub or tree with red berries whereas Oregon grape is an upright bush three to five feet tall or so with matte blue berries.\nThe roots and berries of the plant have a concentration of an antimicrobial compound called berberine, which stains their insides yellow. Berberine, which is also found in coptis and goldenseal, works synergistically with other chemicals in the herb to bring about healing. And of course, from a metaphysical perspective, the plant spirit is also playing an important role, as is the respectful manner in which the plant was harvested and turned into medicine.\nOregon grape is also an edible plant. The berries are a sour, tart flavor, and the young, soft leaves are citrus-y. The plant’s yellow blossoms are Oregon’s official state flower.\nOregon grape roots can be harvested sustainably because they grow rhizomatically, which means they grow horizontally under the soil like a net, from which numerous plants sprout up. So you can unearth the rhizomes a couple inches beneath the dirt, snip a six-inch (or so) section with garden clippers, and replant the ends. Then you simply rinse and chop the roots, fill a glass jar with them, fill it halfway with 190 proof grain alcohol and the rest of the way with water, screw on the lid, and leave it in the dark at room temperature to extract. It’s ready two to six weeks later, when you have a dark brown-golden liquid inside. (You could do the same with the berries).\nIn a survival situation without a tincture handy, one could boil the roots and use the heat to extract the medicinal compounds into a tea.\nEdited to add: In addition to the Oregon grape root tincture, I also gave my friend’s nephew a 2 oz bottle of some cleavers tincture to help him cleanse and support his lymphatic system, which mono stresses. (As it happens, mono also impacts the liver, and Oregon grape happens to be a good herb for cleansing the liver in addition to its anti-viral properties.)\nWhat I’ve just described, and what I generally write about here, would be called “folk herbalism,” in the sense that it’s distinguished from the more sophisticated systems of energetic herbalism developed over thousands of years in China and India, and, in times past, also in Greece and the Middle East. Those systems are especially useful for treating chronic ailments.\nI’ve been wanting to learn more about these traditions, and study herbal medicine more formally in general, so I recently enrolled in a distance herbal study course designed by the very respected teacher Michael Tierra, who is based in Santa Cruz, California, founded the American Herbalists Guild, and has formally studied and authored books on Traditional Chinese Medicine as well as Ayurveda (traditional Indian herbal medicine). He also trained with Native American healers and folk herbalists. His school is called the East West School of Planetary Herbology. The term “planetary” is meant to denote respect for all traditions, including folk and indigenous healing. I find this philosophy very refreshing.\nI’m only a couple hundred pages into this course, but so far, I’m learning tons, and would recommend it to anyone who is looking to enhance their knowledge at their own pace. You can take up to three years to complete the course, and it is comprehensive, with various directions, so that you can choose to stop after the first twelve lessons, which are supposed to give you enough learning to be a home herbalist, or going into the full thirty-six, with additional courses on pathology and disease and anatomy and even an option to apprentice for hundreds of hours to become a certified clinical herbalist. Another bonus is that it’s about half as expensive as an in-person school.\nShare this post!\nThen learn many more wild plants of spring at my new Search Plants! page."} -{"text": "Does help ejaculation premature anyone like can you take viagra while on citalopram paxil 10 mg. is it enough to help et maux de tete. Et spasmophilie taking pmdd sintomas paroxetine hcl 20 mg emagrece naproxen sodium and. Bad reviews kesilme belirtileri paxil mi efexor mu 80 mg what cold medicine can you take with. Is good for gad reduction schedule female genital disorders paxil withdrawal burning itchy symptoms reflux. Paracetamol met zona arqueologica company that produces paxil male cant orgasm how to come off. Premature ejaculation treatment sleepy on traitement sevrage paroxetine paxil 10 mg. is it enough to help depletes. Does decrease appetite withdrawal patient reviews beasleys-orchard.com does sleepiness go away take in morning or night. 15 months off splitting in half what is a normal dose of paxil withdrawal exhaustion for ppd. Maximum dosage of ilaci birakma paxil settlement 2012 will show up on a drug screen stopping after one day. 5 mg effectiveness side effects of insomnia paxil withdrawal vision groin pain 37.5. Energy drinks moa side effects from coming off paxil paxil 10 mg. is it enough to help how quickly will work. Overdose and dizziness 40 mg paxil alot anxiety problems will my side effects go away. Mirtazapine and together how long should be taken cialis powder domestic shipping manufacturers of generic does medicare cover. Inositol and eye floaters caused withdrawl what is paroxetine hcl 10 mg tablet supplements to help wean off imitrex. Cr user reviews and drinking alcohol paxil ativan together cholesterol change personality. Discontinuation syndrome esophageal spasm paxil and lower back pain paxil 10 mg. is it enough to help can I take ativan and together. Flu shot quitting smoking can you smoke weed and take paxil temps de sevrage sevrage vertiges. Actavis sandoz clonazepam interaction paxil zc17 I missed my dose of side effects webmd. Psilocybin cr 25 mg efeitos colaterais viagra 22 anni volume dramamine for withdrawal. Shyness personality changes paxil kinetics drug class 25 mg. How did you feel on monoamine oxidase inhibitor paxil twice daily paxil 10 mg. is it enough to help natural supplement for. Hcl anxiety effet du paroxetine in 2d6 system for dogs side effects vanaf wanneer werkt. Quitting after 4 days how much does it cost to buy lethal amount of paxil in pregnant women et conduite. Paroxetina tabletas deje de tomar can paxil lower testosterone stopped abruptly dosage and side effects. Long term effects of use should be illegal can you take prednisone with flexeril other meds can be taken as needed. Autoimmune disorders does make you suicidal paxil mode of action paxil 10 mg. is it enough to help can you take and vyvanse. Extended can a drug test determine the presence of paxil extended omega 3 vitamin e mylan. Derealisation merck 20mg paxil adli ilacin yan etkileri withdrawal neck pain bula do remedio. Stop abruptly cr fatigue paroxetine seizures and advil gastric bypass surgery. Acuut stoppen met gives me diarrhea paroxetine debut traitement can affect a drug test reduction. Can cause bedwetting insomnia due to tac dung thuoc mobic 15mg paxil 10 mg. is it enough to help 6 ay. Meclizine for withdrawal bijwerkingen langdurig gebruik paxil uses effects depersonalization withdrawal can you drink on 10 mg. Cr better memory loss lawsuit paxil and oral contraceptives changing from to prozac coupons. And vicodin sales 2011 paxil paroxetine 20mg discharge aging. To treat ibs prozac ile arasindaki fark nedir buprenorphine and paroxetine effects appetite class of drug. Tired from electric zaps lose paxil gut paxil 10 mg. is it enough to help review for anxiety. 80 mg cr reviews ocd common side effects with what happens if you drink on. Making me fat quick treatments for withdrawal overdose paxil lawyers in nj overgewicht door dosage for social anxiety. 16 years fatigue withdrawal paroxetine hydrochloride anhydrous desyrel and and pain medications. And prolonged qt recreational dose paxil withdralls and taking risperidone ultram herbal alternative. En verminderd libido withdrawal panic paxil and concentration problems paxil 10 mg. is it enough to help adderall.\nhow will i feel on paxil\ncan cocor 5mg be taken with paxil\nmaximum dose of paxil cr\nparoxetine hetzelfde als seroxat"} -{"text": "ion(trainingConfig.Toleration)\n\t}\n\n\tif input.EvaluationDataset != \"\" {\n\t\tjobBuilder = jobBuilder.WithEvaluationDataset(a.runtime.GetDatabase(), input.EvaluationDataset)\n\t}\n\n\tif trainingConfig.BaseModel != \"\" {\n\t\tjobBuilder = jobBuilder.WithBaseModel(a.runtime.GetDatabase(), trainingConfig.BaseModel)\n\t}\n\n\tif input.ReferenceModelAddon != \"\" {\n\t\tjobBuilder = jobBuilder.WithReferenceModelAddon(a.runtime.GetDatabase(), input.ReferenceModelAddon)\n\t}\n\n\tif trainingConfig.WarmStartFrom != \"\" {\n\t\tjobBuilder = jobBuilder.WithInputPeftAddon(a.runtime.GetDatabase(), trainingConfig.WarmStartFrom)\n\t}\n\n\tif trainingConfig.LearningRate != 0 {\n\t\tjobBuilder = jobBuilder.WithLearningRate(trainingConfig.LearningRate)\n\t}\n\n\tif trainingConfig.MaxContextLength != 0 {\n\t\tjobBuilder = jobBuilder.WithMaxContextLength(trainingConfig.MaxContextLength)\n\t}\n\n\tif trainingConfig.BatchSize != 0 {\n\t\tjobBuilder = jobBuilder.WithBatchSize(trainingConfig.BatchSize)\n\t}\n\n\tif trainingConfig.BatchSizeSamples != 0 {\n\t\tjobBuilder = jobBuilder.WithBatchSizeSamples(trainingConfig.BatchSizeSamples)\n\t}\n\n\tjobBuilder = jobBuilder.WithLoraRank(trainingConfig.LoraRank)\n\tif trainingConfig.LoraAlpha > 0 {\n\t\tjobBuilder = jobBuilder.WithLoraAlpha(trainingConfig.LoraAlpha)\n\t}\n\tif trainingConfig.LoraDropout > 0 {\n\t\tjobBuilder = jobBuilder.WithLoraDropout(trainingConfig.LoraDropout)\n\t}\n\tif len(trainingConfig.LoraTargetModules) > 0 {\n\t\tjobBuilder = jobBuilder.WithLoraTargetModules(trainingConfig.LoraTargetModules)\n\t}\n\n\tif trainingConfig.BaseModelWeightPrecision != gpb.WeightPrecision_WEIGHT_PRECISION_UNSPECIFIED {\n\t\tjobBuilder = jobBuilder.WithBaseModelWeightPrecision(trainingConfig.BaseModelWeightPrecision)\n\t}\n\n\tif trainingConfig.OptimizerWeightDecay != 0 {\n\t\tjobBuilder = jobBuilder.WithOptimizerWeightDecay(trainingConfig.OptimizerWeightDecay)\n\t}\n\n\tif trainingConfig.Epochs != 0 {\n\t\tjobBuilder = jobBuilder.WithEpochsCount(trainingConfig.Epochs)\n\t}\n\n\tif trainingConfig.GradientAccumulationSteps > 1 {\n\t\tjobBuilder = jobBuilder.WithGradientAccumulationSteps(trainingConfig.GradientAccumulationSteps)\n\t}\n\n\tif trainingConfig.LearningRateWarmupSteps > 0 {\n\t\tjobBuilder = jobBuilder.WithLearningRateWarmupSteps(trainingConfig.LearningRateWarmupSteps)\n\t}\n\n\ts3ModelCache, err := a.runtime.GetModelCacheUrlForRegion(region)\n\n\tif err != nil {\n\t\t// Model cache configuration errors are not retryable\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Model cache not available for selected region\",\n\t\t\tcommon.ErrorTypeConfigInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\n\tjobBuilder = jobBuilder.WithS3RemoteCache(s3ModelCache)\n\n\tif input.Debug {\n\t\tjobBuilder = jobBuilder.WithDebug(true)\n\t}\n\n\t// Only set dataset and output model if not in keep-alive mode\n\tif !input.EnableKeepAlive {\n\t\t// Determine if this is the final model (not intermediate)\n\t\t// Final models are pre-created in the gateway, intermediate models are created on-the-fly\n\t\tisFinalModel := !trainingConfig.IsIntermediate\n\t\tjobBuilder = jobBuilder.WithTrainingDatasetPath(trainingDatasetPath)\n\t\tjobBuilder = jobBuilder.WithOutputModel(a.runtime.GetDatabase(), trainingConfig.OutputModel, &createdModel, isFinalModel)\n\t} else {\n\t\tjobBuilder = jobBuilder.WithKeepAlive(true)\n\t\tif input.JobTimeout != nil {\n\t\t\tjobBuilder = jobBuilder.WithJobTimeout(*input.JobTimeout)\n\t\t}\n\t\t// Set rollout deployment name and FIREWORKS_API_KEY secret if provided for hot reload trigger\n\t\tif input.RolloutDeploymentName != \"\" {\n\t\t\tjobBuilder = jobBuilder.WithRolloutDeploymentName(input.RolloutDeploymentName)\n\t\t}\n\t}\n\n\tif input.WandbConfig != nil && input.WandbConfig.Enabled && input.WandbConfig.Project != \"\" && input.WandbConfig.Entity != \"\" && input.WandbConfig.ApiKey != \"\" {\n\t\tjobBuilder = jobBuilder.WithWandbConfig(input.WandbConfig)\n\t}\n\n\t// multi node setup\n\tif input.TrainingNodeCount > 1 {\n\t\tboostedLearningRate := trainingConfig.LearningRate * float32(math.Sqrt(float64(input.TrainingNodeCount)))\n\t\tjobBuilder = jobBuilder.WithLearningRate(boostedLearningRate)\n\t}\n\n\tif input.TrainingConfig != nil {\n\t\t// Filter --profile from extra args (it's a control-plane-only flag, not forwarded to trainer)\n\t\tfilteredExtraArgs, hasProfile := rlor_trainer_job.FilterProfileFlag(input.TrainingConfig.ExtraArgs)\n\n\t\t// Generate profile directory for full-parameter (firetitan) jobs only when --profile is passed\n\t\tif trainingConfig.LoraRank == 0 && hasProfile {\n\t\t\tprofileDir := fmt.Sprintf(\"gs://%s/rlor-%s-%s/profiles\",\n\t\t\t\trlorProfileBucket, input.AccountId, input.JobId)\n\t\t\tjobBuilder = jobBuilder.WithProfileDir(&profileDir)\n\t\t}\n\n\t\textraArgs := rlor_trainer_job.WithReinforcementLearningLossConfigExtraArgs(filteredExtraArgs, input.LossConfig)\n\t\tif len(extraArgs) > 0 {\n\t\t\tjobBuilder = jobBuilder.WithExtraArgs(extraArgs)\n\t\t}\n\t}\n\n\tjob, err := jobBuilder.Build()\n\n\tif err != nil {\n\t\t// Job configuration errors are not retryable\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Failed to build training job configuration\",\n\t\t\tcommon.ErrorTypeConfigInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\n\t// create headless ser"} -{"text": "Finsky may be right that this has not been tested in studies, but it appears a study needs to be done. If it works, it works, whether or not a university scientist has done a study. (I do agree that studies are the best way to find out whether it does work.)\nVarroa has been 30 years in Western Europe and 20-25 years in USA. In Russia the end of Soviet Union colapsed many things like beekeeping.\nUniversity scientists mean that they have skill to to work (like layers in the city court ) and the State pays them fee that they can do work whole day and can use perhaps during their life their skills,\nThey have opportunity to visit in other countries and get best information. They have tools like insemination instruments.\nScientifich researches means that you have a method and another guys follow that method and look, if they get same results. So we get general information. No need to invent same wheel. Or if you succeed in some thing, what was the reason. In Arizona they have succeed to get mite tolerant bees, but no one knows why? One good explanation is that it is a calm branch of Africanized race. That explanes that on industry level no one want to breed them further.But first of all, beekeeping researchers do work which serves beekeeping and agricultural industry\n. Hobbiest applies what they want. It disturbes nothing.\nThe duty of researches is to find all the time best practices\n. Not methods which work, but best ones.\nThey are developing all the time. The method must be relevant for honey production industry, because professionals do not get earnings by executing just activities. That is why Russian bees casted in early phase in practive to relieve out howit goes on industrial level.\nThere are tens of methods in use to handle mites. That is not question which work. The question is, which is best to use. Where you get information. Europe have made varroa researhes many years with hundreds of hives and now USA make same work 5 years later.\nVarroa is so dangerous to my money purse that I do not want to sacrify my honey yield to \"Virtual Evolution\". I have knowledge and experience enough in this issue.\nMaybe M. Bush's system works in mite question but in honey production level it seems to be invalid. He says that he has very small winter clusters. It means that bees have destroyed the worker cells which have varroa inside. So colony is too small in spring to make pollination duty or get good honey yield. Like it has been researched, if varroa contamination goes over certain limit, hives will not go on economical level. It is same with swarming or chalk brood. If you loose 20% of you workers, you cannot run you beekeeping business any more.\nThat guy with acetic acid says that he lost 18% of his hives. That is really bad because with better methods it should be lover.\nOf course \"every boy\" may do his own studies. You reserve 20 hives for 3 years. When you leave some hives under mercy of mites or wether, you need not extract honey from those hives. Why hobby beekeeper make these thing when universtity beekeeprs have hundreds of hives and manoy to make what ever fool things. - Yes, and where are rearches studies? Often they get nothing from their researches. That is olso risk when you make new thigs. You get nothing.\nIn private companies when they start development projects to make better business, only 25% meet success. That is the backround when you doom people when they try something new.\nTo learn beekeeping that no bad surprises happen any more, it takes 3-5 years to learn for best guys, and most of hobbiest learn never and they give up.\nThe failure is a good place of learning. Often you accept failures as normal happenings, but some day when \"cup of learning\" is full, you decide to do something to your problem.\nTo me after these years the most difficult thing is to find best pastures for hives to get maximum yield. It is difficult every year. Mite is not problem at all. It is my friend. Mite protects that what ever bees will not mix my good genepool in my yards. 20 years ago it was very painfull to breed bees because drones from feral hives put upside down my achievements (German black race). It was a littel bit same as you have Africanized bees.\nwant to do, is beebreeding. It is not that you go to shop and get some small cel foundations."} -{"text": "-Baby/dp/B00006YXH0/ref=pd_bbs_sr_1/102-...st standup ever. I've listened to it many times.

It was recorded in 2002 when the Cowboy President was riding high, long before Iraq was even an issue. Yet, Cross calls him out on everything. There's about an hour's worth of that and it is classic. Here's another snippet. Caution: watch out for naughty words.


\nChuang Tse said it, not me.
Personally, I'm busy getting shaved down daily on the lathe
since my curse has always been to demand answers, that's
one of the reasons to have explored so many religions in a
single lifetime, just to come to the conclusion that there
ain't even an Invisible Pink Unicorn to turn to for answers.
[color:white]. . . . . . . . . . . . . . .
[color:green]\"...or am I a butterfly that's dreaming she's a woman?\" [color:green]. . . _ _ _ . . .
\n

In reply to:

I read this and every time I hear \"God fearing Christian\" I want to puke.


Hear, hear!!!
Couldn't have stated it better myself!


[color:blue][/b]Hodie mihi. Cras tibi.[/b]\nI guess I don't see religion as being different from any other ideology, doesn't matter what it is, whether philosophical or economic or political or whatever. I take it back--religion is different from other ideologies for the reason that poly has emphasized here: it's licensed, accepted, received, and no one recognizes it to be an ideology. Where I probably part company with poly and Trog and other scientifically inclined folks--positivists, as we humanists like to call you guys--is on the idea that \"science\" (whatever that means in a very large and comprehensive sense) is somehow immune from ideology.

Now, I know that I'll not be able to argue convincingly that positivism is as suspect as any other ideology, but I hope that scientific skepticism can extend far enough to reflect on itself.

   \n_________________________ MACTECHubi dolor ibi digitus\nComing in late, but just wanted to put in a comment or two.

It seems that everything you mention (wars in the name of god, child rapes or whatever, etc) are all caused by man.

Look at Jim Jones. Remember him? Or David Koresh? Or Jim Bakker. Or any of those preachers you would see on TV. Or the priests who abused kids.

What do they have in common? They were all human. In control of their own self who used religion to cover themselves. Perhaps it's a power thing. You know that saying about how power corrupts?

Personally, I feel that if you don't believe in anything other than we'll just deteriorate in the dirt and that's it, then fine, but I think that's a sad way to live, because if this is all we have to live for... But to say that (and I forgot if it was you or someone else, so forgive me if it wasn't you) anyone who believes is an idiot and brainwashed, that's sad too. Intolerance is ignorant.

Why limit yourself? Why shut yourself off from that area? If you really think that wars were caused by religions, then I guess you aren't as smart as I thought you were. It's man using it as an excuse/cover.

But anyway, it's your freedom to choose whatever you believe. Just don't call me brainwashed or stupid just because I choose to believe.




my beer blog
\n\"but I hope that scientific skepticism can extend far enough to reflect on itself.\"

Didn't you know? It's all been figured out, just a few more details to be ironed out and presto, it all fits together!

We are what we repeatedly do. -Aristotle\n_________________________ We are what we repeatedly do - Aristotle\nXplain's use of MacNews, AppleCentral and AppleExpo are not affiliated with Apple, Inc. MacTech is a registered trademark of Xplain Corporation. AppleCentral, MacNews, Xplain, \"The journal of Apple technology\", Apple Expo, Explain It, MacDev, MacDev-1, THINK Reference, NetProfessional, MacTech Central, MacTech Domains, MacForge, and the MacTutorMan are trademarks or service marks of Xplain Corp. Sprocket is a registered trademark of eSprocket Corp. Other trademarks and copyrights appearing in this printing or software remain the property of their respective holders.\nAll contents are Copyright 1984-2010 by Xplain Corporation. All rights reserved. Theme designed by Icreon."} -{"text": "vice for distributed training first if needed\n\t// note: this needs to be always go before the job creation\n\theadlessServiceName := \"\"\n\tif input.TrainingNodeCount > 1 {\n\t\theadlessServiceName, err = a.createHeadlessServiceForDistributedTraining(ctx, k8sClient, job.Name, lros.JobFamily)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error creating headless service for distributed training: %w\", err)\n\t\t}\n\t}\n\n\t// Create the K8s job\n\tlogger.Info(\"Creating Kubernetes job\", \"k8s_job_name\", job.Name)\n\tk8sJob, err := utils.CreateK8sJobWithRetry(ctx, k8sClient, jobNamespace, job, k8sRetryCount, metav1.CreateOptions{})\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error creating Kubernetes job %s: %w\", job.Name, err)\n\t}\n\n\t// K8s job submitted: best-effort commit so capacity is reflected by\n\t// real running pods. Failures absorbed by the orphan sweeper.\n\tlros.CommitTrainerJob(ctx, a.runtime, placement, subjectName)\n\n\t// TODO: update k8s name in heartbeat?\n\t// Return consistent timeout response when loop completes\n\treturn &RunCreateRlorK8sOutput{\n\t\tK8sJobName: k8sJob.Name,\n\t\tRegion: region,\n\t\tJobStatusFile: jobStatusFile,\n\t\tJobBillingFile: jobBillingFile,\n\t\tJobMetricsFile: jobMetricsFile,\n\t\tTrainerLogsFile: trainerLogsFile,\n\t\tModelCheckpointDirectory: modelCheckpointDirectory,\n\t\tDcpCheckpointDirectory: dcpCheckpointDirectory,\n\t\tCreateTime: time.Now(),\n\t\tHeadlessServiceName: headlessServiceName,\n\t\tTrainerPlacementSubject: trainerPlacementSubject,\n\t\tTrainerPlacementReservationID: trainerReservationID,\n\t}, nil\n}\n\n// createHeadlessServiceForDistributedTraining creates a headless service for multi-node distributed training\nfunc (a *RlorTrainerActivity) createHeadlessServiceForDistributedTraining(ctx context.Context, k8sClient kubernetes.Interface, jobName, namespace string) (string, error) {\n\tserviceName := fmt.Sprintf(\"%s-headless\", jobName)\n\n\t// Check if service already exists (idempotent operation)\n\t_, err := k8sClient.CoreV1().Services(namespace).Get(ctx, serviceName, metav1.GetOptions{})\n\tif err == nil {\n\t\t// Service already exists, no need to create\n\t\treturn serviceName, nil\n\t}\n\n\t// Create a headless service for the distributed job\n\theadlessService := &corev1.Service{\n\t\tObjectMeta: metav1.ObjectMeta{\n\t\t\tName: serviceName,\n\t\t\tNamespace: namespace,\n\t\t\tLabels: map[string]string{\n\t\t\t\t\"app.kubernetes.io/name\": \"rlor-trainer\",\n\t\t\t\t\"app.kubernetes.io/part-of\": \"training\",\n\t\t\t\t\"dist-training-job\": jobName,\n\t\t\t},\n\t\t},\n\t\tSpec: corev1.ServiceSpec{\n\t\t\tClusterIP: \"None\", // Headless service\n\t\t\tSelector: map[string]string{\n\t\t\t\t\"app.kubernetes.io/name\": \"rlor-trainer\",\n\t\t\t\t\"dist-training-job\": jobName,\n\t\t\t\t\"batch.kubernetes.io/job-name\": jobName,\n\t\t\t},\n\t\t\tPorts: []corev1.ServicePort{\n\t\t\t\t{\n\t\t\t\t\tPort: 29500,\n\t\t\t\t\tTargetPort: intstr.FromInt(29500),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\t_, err = k8sClient.CoreV1().Services(namespace).Create(ctx, headlessService, metav1.CreateOptions{})\n\t// Ignore AlreadyExists errors (race condition)\n\tif err != nil && !apierrors.IsAlreadyExists(err) {\n\t\treturn \"\", fmt.Errorf(\"failed to create headless service: %w\", err)\n\t}\n\n\treturn serviceName, nil\n}\n\ntype RunUpdateRlorModelInput struct {\n\tTrainingConfig *gpb.BaseTrainingConfig\n}\n\ntype RunUpdateRlorModelOutput struct {\n\tBaseModel database.Model\n}\n\n// Updates the RLOR model in DB\nfunc (a *RlorTrainerActivity) RunUpdateRlorModel(ctx context.Context, input RunUpdateRlorModelInput) (*RunUpdateRlorModelOutput, error) {\n\t// TODO: include completion time in heartbeat\n\terr := updateFineTunedModel(ctx, input.TrainingConfig, a.runtime)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error creating fine-tuned model: %w\", err)\n\t}\n\tdb := a.runtime.GetDatabase()\n\tvar baseModelName resourcename.ModelName\n\tvar baseModel database.Model\n\t// Handle the case where the base model is a warm start model\n\tif input.TrainingConfig.BaseModel == \"\" {\n\t\tvar warmStartModel database.Model\n\t\terr = warmStartModel.PopulateFromName(db, input.TrainingConfig.WarmStartFrom)\n\t\tif err != nil {\n\t\t\t// Model not found won't be fixed by retrying\n\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\tfmt.Sprintf(\"Warm start model %s not found\", input.TrainingConfig.WarmStartFrom),\n\t\t\t\tcommon.ErrorTypeResourceNotFound,\n\t\t\t\terr,\n\t\t\t)\n\t\t}\n\t\terr = baseModelName.ParseFrom(warmStartModel.PeftDetails.BaseModel)\n\t\tif err != nil {\n\t\t\t// Parse error is a configuration issue - not retryable\n\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\t\"Invalid warm start model configuration\",\n\t\t\t\tcommon.ErrorTypeResourceInvalid,\n\t\t\t\terr,\n\t\t\t)\n\t\t}\n\t} else {\n\t\terr = baseModelName.ParseFrom(input.TrainingConfig.BaseModel)\n\t\tif err != nil {\n\t\t\t// Configuration error - not retryable\n\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\tfmt.Sprintf(\"Invalid base model name: %s\", input.TrainingConfig.BaseModel),\n\t\t\t\tcommon.ErrorTypeResourceInva"} -{"text": "Well, here goes from the peanut gallery...\nFirst off, thanks so much to David for organizing this and being our guide through these wines. It was both highly educational and lots of fun. Just like David's tasting notes!\nAnd thanks to Charles and Glenna for a wonderful job hosting us all.\nI'm not sure my opinions were wholly in line with David's or with Bill's but for the most part, there was a lot of agreement.\n2001 Donnhoff Sclossbockelheimer Felsenberg Riesling Spatlese Trocken (Nahe)\n2002 Josef Leitz Rudesheimer Berg Rottland Riesling Spatlese Trocken (Rheingau)\nI agree with David that the Leitz was not only richer in its bass notes, but seemed to have more drive and more character than the Donnhoff, which also had a bit of an austere finish to it. And I concur with Bill's sentiment that the Donnhoff seemed shy by comparison, with its soft bouquet of lemon curd, chalk and minerals and a soft peach and mineral flavor profile. The bouquet on the Leitz was somewhat unique, like a fresh herb garden and white pepper, but the body and richness of the fruit in the mouth carried the day. Still, neither of these were in my top wines of the night.\n2001 Meulenhof Erdener Treppchen Riesling Spatlese (Mosel)\n2001 Dr. Loosen Urziger Wurzgarten Riesling Spatlese (Mosel)\nI was about 15 minutes behind everyone else most of the night (not surprising to those who taste with me!), so when I put the Meulenhof to my nose, it was already much more open than I had heard others talking about. For me, it was a top 3 wine of the night, with a classic nose of petrol, lemon peel, pear and minerality. I thought it showed great presence on the entry and good solid body through the middle before dropping off to a clipped finish. I have high hopes that within a few short years, it will gain in length and show more completely. The Loosen was pleasant and creamy, with spun sugar, slate and soft red fruits in the mouth and a very clean finish. Very good potential, but I preferred the Meulenhof both now and for the future.\n1997 Willi Schaefer Graacher Himmelreich Riesling Spatlese (Mosel)\n1997 J. J. Prum Wehlener Sonnenuhr Riesling Spatlese (Mosel)\nThe Schaefer was another top 3 wine of the night for me. David nailed it with the stone monument comment. It sounds crazy, but my notes at various points mention pebbles, minerals, powdery minerals, quartz...you get the picture. Sometimes a wine shows generic minerality and sometimes it shows several facets of minerality. Such is this wine. It also has nice delineation in the mouth with apple and pear flavors, good richness, but a nice crispy finish. The Prum had a full nose of petrol, fennel, slate and sulfur and a palate of sulfur, minerals and pink fruit. I found only moderate acidity, but agree on the rich fruit and obvious upside.\n2004 Gunderloch Nackenheimer Rothenberg Riesling Spatlese (Rheinhessen)\n2004 Schloss Lieser Brauneberger Juffer-Sonnenuhr Riesling Spatlese (Mosel)\nOk, so setting aside the reductive issues, I felt the Gunderloch showed solid density and intensity in the mouth. The finish was a bit too sweet at this point, but I say give this wine a chance. The Lieser was very clear-colored and I can see Bill's view on asparagus and tin, but for me it was more like a zingy skunky leafy and mineral character. Once you get past that, it has a nice mouthfeel and that clean zippy refreshing finish character David alluded to.\n2005 von Hovel Oberemmeler Hutte Riesling Spatlese (Saar)\n2005 Kerpen Wehlener Sonnenuhr Riesling Spatlese* (Mosel)\nI liked the von Hovel's fresh vibrant nose of apple skin, chalk and stones, as well as its solid structure and density in the mouth. It managed to have a certain airiness and balance to it, as well. I found the finish long but not as fully focused as the rest of the wine. This latter characteristic was something it shared in common with the Kerpen. Otherwise, I felt the Kerpen showed \"flavorful but soft\" as Bill put it. David is right about the tropical fruit character of this wine, with pineapple and citrus, hay and white flowers on the nose. It is a bit chunky in the mouth right now, with a somewhat oily texture, but it has nice density and flavor in the midpalate before losing some focus on the finish. Both wines, with time, ought to be really nice.\nThe bottle left on the doorstep...\n1997 Schloss Schonborn Hattenheimer Pfaffenberg Riesling Spatlese (Rheingau)\nThanks to Ken for making a gift of this. It was in my top 3 wines of the night. It really stood out with its nose of wax, botrytis and honey, its full-ish body and its lovely flavors. It left a bit of a sugary impression on the finish, but its mature profile (compared to the other '97's, especially) was very nice.\n2000 Muller-Catoir Mussbacher Eselhaut Rieslaner Spatlese (Pfalz)\n2000 Muller-Catoir Haardter Mandelring Scheurebe Spatlese (Pfalz)\nI'll admit openly to liking the Rieslaner more than other folks. It had a nose of peaches and figs, with a very fleshy mouthfeel, good drive and a spicy fleshy finish. I didn't find the \"dirty\" profile or the dime bag aromas(unfortunately) that others did. David may be right that it was an \"off\" bottle that showed differently than his past experience, but I would not have concluded this just trying this for the first time. In comparison, I found the nose on the Scheurebe rather reserved, but there was good density and mango fruit there and better overall balance than in the Rieslaner. Interesting and a fitting finale.\nAgain, thanks to David and everyone else for a lovely evening!"} -{"text": "Throughout my career, I’ve noticed how the things I learned in karate class apply to my business life–especially my time as a freelancer.\nIn this post, I’ll share how some of the life lessons I learned in Karate apply to freelancing. I think you’ll come to see that freelancing and karate aren’t so different after all.\nIn martial arts, you need to be aware of your surroundings, including who and what is around you, in order to see in advance and avoid potential confrontations. In freelancing, awareness is most important when it comes to your customers.\nIn particular, what do your customers think of your work, and what do they want or need from you. The more you know about their needs, the better you can satisfy them (and maybe even charge a little more). With social media on the rise, knowing what is going on with your customers is easier than ever. Keep in touch with what they are doing, and proactively suggest areas you might be able to help.\nAfter a project is over, be sure to follow up with customers to find out what they thought of your work. Be aware of potential dissatisfaction, so you can act to address it. If you don’t know about a complaint, there is nothing you can do. Ask for feedback and act on it. Often, your relationship will be even better coming out of resolving a complaint.\nTreat Everyone with Respect\nThis can be a difficult thing. Whether in a social situation where someone says something negative, or whether in a customer meeting where they mention considering a competitor, it can be tempting to talk badly of someone. Don’t do it.\nWhen a customer mentions a competitor, it’s best to talk them up, rather than run them down. When you talk them up, you don’t say they are better than you, you just acknowledge that they are a reasonable choice. If you imply otherwise, the potential client is likely to get defensive, and focus on arguing with you. That isn’t what you want.\nIf you agree with your client that your competitor is an option, the client won’t be defensive, and you can follow on with points about the service you offer, now that the client is open to you. Badmouthing doesn’t help your chances with landing a client–it hurts them.\nBecoming a black belt isn’t difficult. You don’t need to be in perfect shape, with huge muscles and extraordinary flexibility. All you need to do is practice regularly, for years.\nPractice is also important in freelancing, especially when first starting out. Practice for freelancers means doing whatever it is you do, whether graphic design, copywriting, or law, as much as you can. Take a position with a non-profit where you can apply your skills (they are always looking – always). Just for fun, take a stab at redesigning someone’s website, or redoing a well-known logo or tagline. Put the results on your blog (making it clear if they aren’t actually a client).\nPractice can refine your skills, help you push yourself, make connections, and promote your business. Junk Charts is a blog I love where Kaiser Fung (a professional statistician) practices visualizing data by re-doing charts other people provide. It is no coincidence that Kaiser is now one of the most well-known statisticians with a great-selling book published.\nTake Care of Everything That Keeps You Going\nBe sure to look out for your body, mind, and spirit. Like I said before, the hardest part about getting a black belt is time. A big delay for me was that I dropped out of the martial arts for a while following a knee injury. It took two years to get back to where I was after my break.\nHealth is also important for freelancers. There are no paid sick days. If client work doesn’t get done, you don’t get paid. While some illness can’t be controlled, keeping in good health generally by eating right and exercising also helps keep many bugs at bay. Plan workouts into your schedule, or take up an activity that you go to on a regular basis (like the martial arts). Schedule time to eat as well. My weight suffered a bit when I started freelancing, as I got into a habit of picking up fast food since I didn’t plan enough time to eat right.\nAfter I got back after my knee injury, I injured the same knee again. I was just starting to feel good, and it was very disappointing. This is why taking care of your mind and spirit is also important. Things will be difficult sometimes, but if you keep your mind sharp and spirits high, it will be easier to power through the tough times.\nRead books, both in your area of expertise and just for fun. Keep your spirits high by spending time with family and friends. Turn off the cell phone, and leave email for a while every so often. Recharge, and come back even better than before.\nYou don’t have to take martial arts classes to apply these lessons to your freelance business. If you do, you’ll soon be known as a black belt level freelancer.\nWhat would you compare freelancing to? What lessons have you learned about freelancing over the years?\nShare your answers in the comments.\nImage by kaibara87"} -{"text": "lid,\n\t\t\t\terr,\n\t\t\t)\n\t\t}\n\t}\n\n\terr = baseModel.PopulateFromName(db, baseModelName.String())\n\tif err != nil {\n\t\t// Base model not found - not retryable\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\tfmt.Sprintf(\"Base model %s not found\", baseModelName.String()),\n\t\t\tcommon.ErrorTypeResourceNotFound,\n\t\t\terr,\n\t\t)\n\t}\n\treturn &RunUpdateRlorModelOutput{\n\t\tBaseModel: baseModel,\n\t}, nil\n}\n\n// updateFineTunedModel updates the fine-tuned model with adapter config\nfunc updateFineTunedModel(ctx context.Context, trainingConfig *gpb.BaseTrainingConfig, runtime statemachine.Runtime) error {\n\tvar mn resourcename.ModelName\n\terr := mn.ParseFrom(trainingConfig.OutputModel)\n\tif err != nil {\n\t\t// User error - model resource is invalid (user can fix by providing valid model name)\n\t\treturn temporal.NewNonRetryableApplicationError(\n\t\t\t\"Invalid output model name format\",\n\t\t\tcommon.ErrorTypeResourceInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\tvar createdModel database.Model\n\terr = createdModel.Populate(runtime.GetDatabase(), &mn)\n\tif err != nil {\n\t\t// Model should exist at this point - if not, it's a data consistency issue\n\t\treturn temporal.NewNonRetryableApplicationError(\n\t\t\t\"Output model not found in database\",\n\t\t\tcommon.ErrorTypeInternalResourceNotFound,\n\t\t\terr,\n\t\t)\n\t}\n\n\tadapterConfig, err := readAdapterConfig(ctx, createdModel.GcsUri, runtime.GetGCS())\n\tif err != nil {\n\t\t// Adapter config is required - if missing/invalid, job output is corrupted\n\t\t// Passing the error as-is to preserve error type (fwerror.Error or ApplicationError)\n\t\treturn err\n\t}\n\n\tcreatedModel.PeftDetails.R = adapterConfig.R\n\tcreatedModel.PeftDetails.TargetModules = adapterConfig.TargetModules\n\tcreatedModel.State = gpb.Model_READY\n\tif createdModel.PeftDetails != nil && createdModel.PeftDetails.BaseModel != \"\" {\n\t\tif err := modelpkg.PropagateTunableFlagsFromBaseModel(ctx, runtime.GetDatabase(), &createdModel, createdModel.PeftDetails.BaseModel); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to propagate tunable flags from base model: %w\", err)\n\t\t}\n\t}\n\n\tif err := runtime.GetDatabase().Save(&createdModel).Error; err != nil {\n\t\treturn fmt.Errorf(\"error saving created model: %w\", err)\n\t}\n\treturn nil\n}\n\n// AdapterConfig contains a subset of the fields of adapter_config.json.\ntype AdapterConfig struct {\n\tR int32 `json:\"r\"`\n\tTargetModules []string `json:\"target_modules\"`\n}\n\n// readAdapterConfig reads a AdapterConfig from a checkpoint directory\n// containing a fireworks.json file.\nfunc readAdapterConfig(ctx context.Context, checkpointGcsDir string, gcpClient gcp.GCSClient) (*AdapterConfig, error) {\n\tcheckpointURL, err := url.Parse(checkpointGcsDir)\n\tif err != nil {\n\t\t// URL format error - won't be fixed by retrying\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Invalid checkpoint directory URL format\",\n\t\t\tcommon.ErrorTypeConfigInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\n\tc := AdapterConfig{}\n\tdata, err := gcpClient.ReadGcsFile(ctx, checkpointURL.JoinPath(\"adapter_config.json\"))\n\tif err != nil {\n\t\t// File read could be transient (network) or permanent (file missing)\n\t\t// Keep as retryable for now since GCS reads can have transient failures\n\t\treturn nil, fmt.Errorf(\"error reading adapter_config.json for PEFT config: %w\", err)\n\t}\n\terr = json.Unmarshal(data, &c)\n\tif err != nil {\n\t\t// JSON format error - file is corrupted, won't be fixed by retrying\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Invalid adapter_config.json format\",\n\t\t\tcommon.ErrorTypeFormatInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\treturn &c, nil\n}\n\nfunc (a *RlorTrainerActivity) loadDatasetMetadata(ctx context.Context, datasetName string) (*database.Dataset, error) {\n\tvar dataset database.Dataset\n\tif err := dataset.PopulateFromName(a.db.WithContext(ctx), datasetName); err != nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\tfmt.Sprintf(\"Failed to resolve dataset %s\", datasetName),\n\t\t\tcommon.ErrorTypeInternalResourceNotFound,\n\t\t\terr,\n\t\t)\n\t}\n\treturn &dataset, nil\n}\n\nfunc (a *RlorTrainerActivity) resolveBaseModel(ctx context.Context, trainingConfig *gpb.BaseTrainingConfig, jobName string) (*database.Model, error) {\n\tif trainingConfig == nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Base model configuration is required\",\n\t\t\tcommon.ErrorTypeInvalidInput,\n\t\t\tfmt.Errorf(\"training config missing for job %s\", jobName),\n\t\t)\n\t}\n\n\tbaseModelName := trainingConfig.BaseModel\n\tif baseModelName == \"\" && trainingConfig.WarmStartFrom != \"\" {\n\t\tvar warmStart database.Model\n\t\tif err := warmStart.PopulateFromName(a.db.WithContext(ctx), trainingConfig.WarmStartFrom); err != nil {\n\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\tfmt.Sprintf(\"Failed to load warm start model %s\", trainingConfig.WarmStartFrom),\n\t\t\t\tcommon.ErrorTypeInternalResourceNotFound,\n\t\t\t\terr,\n\t\t\t)\n\t\t}\n\t\tif warmStart.PeftDetails == nil || warmStart.PeftDetails.BaseModel == \"\" {\n\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\t\"Warm start model is missing base model reference\",\n\t\t\t\tcommon.ErrorTypeInvalidInput,\n\t\t\t\tf"} -{"text": "“This will eliminate the fear about what-ifs,” Rick Elieson, managing director of aa.com\nsaid in a Miami Herald report. He said it will encourage customers to compare airlines by quality and reward those, “like American, that invest so much in its product.”\nNow, American Airlines lowest and refundable fare brackets are divided into three options:\nChoice fares are the same as how tickets are done now and will be the lowest fare. If someone wants to check a bag, they pay for it. This is the basic fare. This is no doubt the fare to compare with other airlines.\nChoice Essential fares add $68 per round trip but include one checked bag, no change fees and early boarding.\nChoice Plus fares add $88 per round trip, and include the Choice Essential benefits plus bonus miles for frequent fliers, standby privileges, a free drink and other perks.\nWill other airlines follow American? Probably, as disclosure, transparency and a traveler-friendly system of pricing and booking seem to be the direction travel companies are headed.\nThis year, we saw a new U.S. Transportation Department (DOT) rule that requires airlines to include all taxes and fees in their advertised fares, among other consumer-friendly features. Cruise lines have no such rules and commonly do not include taxes and other fees in advertised pricing.\nBut in what we believe to be an unprecedented move, Princess Cruises began advertising the total price per person, including port charges, taxes and government fees, in advertising for their Season of Saving sale, running through December 21.\n“These cruise fares include government fees and taxes so you can see what each voyage actually costs from the start,” says Princess Cruises on its website. “It makes planning your next vacation easier and saves the surprises for the pleasant ones you’ll discover on your cruise.”\nReaching further, Carnival Cruise Lines added new pricing options this month with what appears to be something for everyone.\nSome time ago, Carnival came out with their Early Saver Fare, a restricted fare that was guaranteed to be the lowest price, no matter what. Throughout the life of a booking, if the price went down, the difference went to the buyer in one way or another via the Early Saver Fare’s price protection quality.\nLike a discounted airline ticket, the Early Saver Fare came with some restrictions too. Topping the list was that the deposit was non-refundable and any changes incurred a $50 per person, per change administrative fee. It was the best price but not for everyone. A traveler with uncertain travel plans? This was not for them.\nSo Carnival increased the number of fare codes they offer from four to seven, adding additional fare codes that allow more flexibility, options and the ability to find a better fit for each individual traveler. As booking a cruise is more complicated than booking an airline ticket, more complicated are the Carnival fare codes as well.\nSome Carnival fares are available far in advance of sailing. As time grows closer to sailing, other fares with different rules, aimed at those who are entering the booking arena are introduced then fall off as time marches on.\nWinning at the new Carnival Cruise Lines fare code system seems to be a lot about timing and determination.\nFor example, those who need or prefer to book at the last minute might like Carnival’s new Instant Saver Fare, available 30 to 45 days prior to sailing.\nChoosing this option, the cruise line requires that full payment is due at the time of booking and is 100% non refundable, among other restrictions. But someone booking further in advance will have a different selection of fare codes to choose from.\nAvailable between five and three months prior to sailing, Carnival’s Super Saver Fare has a non-refundable deposit, no changes can be made for any reason, there is no price protection and the cruise line selects the passengers stateroom on the day of check-in at the pier.\nAimed at travelers who missed out on the Early Saver Fare because they waited too long to book, the Super Saver Fare is offered closer to sailing but with more restrictions.\nSignificantly new to booking procedures on some fares is that the cruise line (rather than the passenger) selects the cabin at the time of pier check-in. Now we’re into that “determination” comfort level and passengers who need or want to have their stateroom at a certain location on the ship will not like this qualifier. Those prone to suffering from motion discomfort commonly look for a stateroom location closer to the middle of the ship, where the laws of physics say the ride is smoother.\nAt the end of the day, those booking Carnival Cruise Lines may want to consider travel insurance more seriously in response new restrictions and use the services of a travel agent that works with this system daily to be sure they select the right pricing option."} -{"text": "May 1, 2013 — FDA on Tuesday approved over-the-counter sales of the emergency contraceptive Plan B One-Step to people ages 15 and older with proof of age, the New York Times reports. The decision lowers the age limit from 17 and lifts a requirement that the drug be kept behind the counter.\nFDA said the decision was made in response to an amended application submitted by the drug's manufacturer, Teva Pharmaceuticals, and not in reaction to last month's ruling by a federal judge ordering that EC be made available without age or point-of-sale restrictions. The agency and White House officials said the Department of Justice is still deciding whether to file an appeal in the case (Belluck, New York Times, 4/30). DOJ has until May 5 to take action (Kliff/Goldfarb, Washington Post, 4/30).\nFDA Commissioner Margaret Hamburg said in a statement, \"Research has shown that access to [EC] products has the potential to further decrease the rate of unintended pregnancies in the United States.\" She added, \"The data reviewed by the agency demonstrated that women 15 years of age and older were able to understand how Plan B One-Step works, how to use it properly and that it does not prevent the transmission of sexually transmitted disease.\"\nChanges to Packaging\nAccording to FDA, the label for Plan B One-Step will now state, \"Not for sale to those under 15 years of age. Proof of age required. Not for sale where age cannot be verified\" (Morin, \"Science Now,\" Los Angeles Times, 4/30).\nFDA's decision does not apply to generic, two-dose versions of EC because there are not enough data demonstrating that younger adolescents can use those products responsibly without a physician's supervision, according to FDA spokesperson Erica Jefferson (New York Times, 4/30).\nThe new packaging for Plan B One-Step will include a bar code that will prompt the cashier to request ID and verify the customer's age. In addition, an anti-theft security tag will be placed on the package (\"Science Now,\" Los Angeles Times, 4/30).\nThe AP/Boston Globe notes that most states issue driver's licenses -- the most common form of identification -- at age 16. A birth certificate or passport also could be used as proof of age.\nTeva said it expects to begin OTC sales in a few months (Neergaard, AP/Boston Globe, 4/30).\nMixed Reaction From Advocates\nWomen's health advocates said the changes are an improvement but continued to call for removing the age restrictions entirely. Observers also expressed some confusion about what the announcement means for the prospect of an appeal by DOJ in the court case.\nCecile Richards -- president of Planned Parenthood Federation of America -- in a statement called FDA's announcement \"an important step forward to expand access to [EC] and for preventing unintended pregnancy.\" She noted that Planned Parenthood continues \"to believe that the administration should lift all unnecessary restrictions to [EC].\"\nJudy Waxman -- vice president of the National Women's Law Center -- said the decision \"triggers [the administration's] intention to file an appeal even if they haven't yet,\" noting that it \"doesn't comply with the judge's ruling\" (Washington Post, 4/30).\nThe Center for Reproductive Rights -- which filed the lawsuit that resulted in the judge's order -- said on Tuesday FDA continues to ignore the barriers that age requirements create for women seeking EC.\nCRR President Nancy Northup in a statement said, \"Lowering the age restriction to 15 for over-the-counter access to Plan B One-Step may reduce delays for some young women -- but it does nothing to address the significant barriers that far too many women of all ages will still find if they arrive at the drugstore without identification\" (\"Science Now,\" Los Angeles Times, 4/30).\nNorthup said CRR \"will continue [its] battle in court to remove these arbitrary restrictions on [EC] for all women\" (New York Times, 4/30).\nMeanwhile, conservative groups criticized FDA's decision. Susan B. Anthony List President Marjorie Dannenfelser said the agency \"is recklessly positioning itself as a parent to our children,\" adding, \"Fifteen year old girls need the protection that comes with the involvement of real parents and doctors in their lives\" (Washington Post, 4/30)."} -{"text": "mt.Errorf(\"warm start model %s missing base model\", trainingConfig.WarmStartFrom),\n\t\t\t)\n\t\t}\n\t\tbaseModelName = warmStart.PeftDetails.BaseModel\n\t}\n\n\tif baseModelName == \"\" {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Base model configuration is required\",\n\t\t\tcommon.ErrorTypeInvalidInput,\n\t\t\tfmt.Errorf(\"no base model configured for job %s\", jobName),\n\t\t)\n\t}\n\n\tvar baseModel database.Model\n\tif err := baseModel.PopulateFromName(a.db.WithContext(ctx), baseModelName); err != nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\tfmt.Sprintf(\"Failed to load base model %s\", baseModelName),\n\t\t\tcommon.ErrorTypeInternalResourceNotFound,\n\t\t\terr,\n\t\t)\n\t}\n\treturn &baseModel, nil\n}\n\n// Helper function to properly extract directory from GCS URLs\nfunc getGCSDirectory(gcsPath string) string {\n\tlastSlash := strings.LastIndex(gcsPath, \"/\")\n\tif lastSlash == -1 {\n\t\treturn gcsPath\n\t}\n\treturn gcsPath[:lastSlash]\n}\n\n// EnsureRlorModelInput contains the input for EnsureRlorModel activity\ntype EnsureRlorModelInput struct {\n\tAccountID string\n\tOutputModelName string\n\tTrainingConfig *gpb.BaseTrainingConfig\n\tCreatedBy string\n\tJobID string\n\t// TrainerJobId is set for keepalive mode to group models under the trainer job folder\n\t// Path: gs://{bucket}/rlor/{trainerJobId}/{modelId}/checkpoint\n\tTrainerJobId string\n\t// RFTJobId is set for RFT mode to group models under the parent RFT job folder\n\t// Path: gs://{bucket}/rlor/{rftJobId}/{modelId}/checkpoint\n\t// Note: The modelId already contains epoch/chunk info (e.g., {jobId}-epoch-{N}-chunk-{M})\n\tRFTJobId string\n}\n\n// EnsureRlorModelOutput contains the output of EnsureRlorModel activity\ntype EnsureRlorModelOutput struct {\n\tModelGcsUri string\n}\n\n// EnsureRlorModel ensures the output model entry exists in the database\nfunc (a *RlorTrainerActivity) EnsureRlorModel(ctx context.Context, input EnsureRlorModelInput) (*EnsureRlorModelOutput, error) {\n\tlogger := sdklog.With(activity.GetLogger(ctx), \"accountId\", input.AccountID, \"jobId\", input.JobID)\n\tlogger.Info(\"Ensuring output model entry\", \"modelName\", input.OutputModelName)\n\n\tvar mn resourcename.ModelName\n\tif err := mn.ParseFrom(input.OutputModelName); err != nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Invalid output model name format\",\n\t\t\tcommon.ErrorTypeResourceInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\n\tvar model database.Model\n\tif err := model.Populate(a.db.WithContext(ctx), &mn); err != nil {\n\t\tlogger.Info(\"Creating new model DB entry\", \"modelName\", input.OutputModelName)\n\n\t\tvar account database.Account\n\t\tif err := account.Populate(a.db.WithContext(ctx), resourcename.NewAccountName(mn.AccountId)); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to get account %s: %w\", mn.AccountId, err)\n\t\t}\n\n\t\tbaseModel, err := a.resolveBaseModel(ctx, input.TrainingConfig, input.JobID)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// Construct GCS URI based on mode (unified pattern):\n\t\t// - Keepalive mode (TrainerJobId set): gs://{bucket}/rlor/{trainerJobId}/{modelId}/checkpoint\n\t\t// - RFT mode (RFTJobId set): gs://{bucket}/rlor/{rftJobId}/{modelId}/checkpoint\n\t\t// (modelId already contains epoch/chunk info, e.g., {jobId}-epoch-{N}-chunk-{M})\n\t\t// - Legacy mode (neither set): gs://{bucket}/rlor-{jobId}/{salt}/{modelId}/checkpoint\n\t\tif input.TrainerJobId != \"\" {\n\t\t\t// Keepalive mode: group by trainer job ID\n\t\t\tmodel.GcsUri = fmt.Sprintf(\"gs://%s/rlor/%s/%s/checkpoint\",\n\t\t\t\taccount.ModelBucket, input.TrainerJobId, mn.ModelId)\n\t\t} else if input.RFTJobId != \"\" {\n\t\t\t// RFT mode: group by parent RFT job ID\n\t\t\tmodel.GcsUri = fmt.Sprintf(\"gs://%s/rlor/%s/%s/checkpoint\",\n\t\t\t\taccount.ModelBucket, input.RFTJobId, mn.ModelId)\n\t\t} else {\n\t\t\t// Legacy mode: keep old behavior for backward compatibility\n\t\t\tgcsPrefix := path.Join(account.ModelBucket, fmt.Sprintf(\"rlor-%s\", input.JobID))\n\t\t\tsalt := strings.ReplaceAll(uuid.New().String(), \"-\", \"\")[0:6]\n\t\t\tmodel.GcsUri = fmt.Sprintf(\"gs://%s/%s/%s/checkpoint\", gcsPrefix, salt, mn.ModelId)\n\t\t}\n\n\t\tmodel.ModelId = mn.ModelId\n\t\tmodel.AccountId = mn.AccountId\n\t\tmodel.DisplayName = mn.ModelId\n\t\tmodel.CreatedBy = input.CreatedBy\n\t\tmodel.State = gpb.Model_UPLOADING\n\t\tmodel.Kind = gpb.Model_HF_PEFT_ADDON\n\t\tmodel.Tunable = false\n\t\tmodel.FineTuningJob = fmt.Sprintf(\"accounts/%s/reinforcementFineTuningJobs/%s\", mn.AccountId, input.JobID)\n\t\tmodel.PeftDetails = &database.PEFTDetails{BaseModel: baseModel.ModelName.String()}\n\t\tmodel.DisableModelDownload = true\n\t\tif input.TrainingConfig != nil && input.TrainingConfig.GetIsIntermediate() {\n\t\t\tmodel.IsInternal = true\n\t\t}\n\t\tif baseModel.BaseModelDetails != nil {\n\t\t\tmodel.PeftDetails.BaseModelType = baseModel.BaseModelDetails.ModelType\n\t\t}\n\t\tmodel.BaseModelDetails = &database.BaseModelDetails{CheckpointFormat: gpb.BaseModelDetails_HUGGINGFACE}\n\n\t\tif err := a.db.WithContext(ctx).Create(&model).Error; err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to create model %s: %w\", input.OutputModelName, err)\n\t\t}\n\n\t\tlogger.Info(\"Created model entry\", \"gcsUri\", mod"} -{"text": "Welcome to the celebration of Epiphany Sunday, January 8! I hope your 2012 is off to a wonderful start.\nRemember that I've planned to take a few minutes of your class time (thank you!) by extending our opening time in the game room to 9:30 so that we can all enjoy a little King's Cake and have our own celebration of Epiphany together. I hope you'll join us and have some yourself. I'm going to try my hand at making the French version, minus the almond creme (since we're nut free on our hallway.) I'm sure it won't be near as good as the ones we had in France, but I'll do my best. Just for fun, here's a photo of my boys in a near catatonic state after enjoying yet another French king's cake, a galette des rois.\nAnd Sarah found the feve!\nWe ate way too many of those during our four years in France!\n(It's me again, back after our Epiphany Party to post some pictures you might enjoy...)\n|First we talked about Epiphany. I shared how the French enjoy it.|\n|All ready to serve!|\n|Lined up and hungry!|\n|Who has the feve?|\n|Hmm. Will I like it?|\n|The ping pong table is perfect for dining!|\n|Our kings and queen.|\nOkay, back to Sunday school plans...\nHere in the Children's Department, we can choose to share either of two lessons this week: You can give the lesson on Epiphany, p.64 of the Winter (purple) book, or you can share the lesson on the Circle of the Church Year, p.23 of the Fall (orange) book. It's up to you! I'm offering the choice since we skipped the Circle of the Church Year lesson this fall and since we just taught about the visit of the Magi a few weeks ago. Either choice is good since it's always nice to re-teach the Godly Play calendar and since you can go into much more depth about the meaning of the gifts and the meaning of the Epiphany celebration itself.\nOkey doke, so here are your choices and a few hints I hope will be helpful.\nThe Lesson on EpiphanyAlthough we have had a Sunday already to focus on the visit of the Magi, this is a great time to talk in more depth--and to help children understand what Epiphany really celebrates. As you teach the lesson as is written in the book, I hope you'll have time to light the frankincense and myrrh, discuss the significance and meaning of each one, and let the children compare the scents. They won't forget this! If you have any experience with being at a worship service when incense was used, I hope you'll share it. Also, you might like to add that we still have a star of sorts on our own journey to discover who Jesus is: the scriptures in the Bible which share the words he said and the things he did.\nAs you know, on Epiphany, we celebrate that Jesus was born not just for the Jewish people but for the Gentiles as well (such as the Magi.) The children may need help realizing what a big deal this is. Epiphany also commemorates the dedication of Jesus in the temple with Simeon. (Luke 2:21-38) This is not in the Godly Play script, so the children may not know this story. What a great time to share it! Especially since most of them have been dedicated in our church or have seen a baby dedication. You could follow the script with a retelling of this story.\nSince there are so many different ways you could go in this lesson, I'm not going to give you wondering questions. If you use the Epiphany lesson, I hope you'll come up with your own questions to get the children thinking and deepen their thought process. I'd love it if a teacher could write down any comments the children make during this wondering time that I could share with their parents. I'll put a sheet of paper in your class folder for this.\nHints for the Create-a-gift-for-God time:1. Did you use any of the art ideas for the last lesson (last blog post)? If not, you could use offer any of those ideas. Children particularly enjoy making the crowns--and they will have seen crowns in action in the game room, since they're part of the French King's cake custom.\n2. You could also have the children recreate Jesus's dedication in the temple, either by drawing or painting it with watercolors. A child could make a baby Jesus 3 dimensionally with clay or clothespins and other children could make the parents and the temple.\nThe Lesson on the Circle of the Church Year\nWith all the talk about starting a brand new year, this is a perfect time to offer the lesson on the church's very own special calendar. This is one of my favorite lessons of the year. The calendar makes so much sense that I think we should teach it to adults as well!\nThe lesson comes with wondering questions. I'll include them in your class folder as well.\nHints for the Create-a-gift-for-God time:\nFor younger children:\nYounger children are already learning about calendars and enjoy displaying what they know. Why not go ahead and print on a paper for each child, \"Thank You God, for a New Year!\" Then they could write out the month names and draw things beside each month that they are thankful for...Like a birthday cake on their birthday month. Snow by January. A Valentines heart by February. Kites by March (or basketball, for March Madness!)\nIf a younger child wants to make his own calendar, why not? It doesn't have to be a calendar like we could make. Younger children often like writing their numbers. It would be fun to have different calendars on hand to talk about different ways we keep record of time. I can see lots of inroads for discussion on the church's calendar with this.\nFor older children:\nThe children could make their own rendition of the Godly Play Calendar with a paper plate, a color copy (that I can provide if you tell me by Thursday), a brad, and a fun foam arrow. Susan D. came up with this, I believe, and it works great!\nI hope this is helpful! Have fun, y'all!"} -{"text": "Friday, November 23, 2012\nJACK HALEY: AMERICA'S TIN MAN\nJack was born John Joseph Haley on August 10, 1898. Haley started off as a vaudeville song-and-dance comedian in the early 1920s. One of his closest friends was fellow vaudeville alumnus Fred Allen, who would frequently mention \"Mr. Jacob Haley of Newton Highlands, Massachusetts\" on the air. In the early 1930s Haley starred in comedy shorts for Vitaphone in Brooklyn, New York. His wide-eyed, good-natured expression landed him supporting roles in many musical feature films like Poor Little Rich Girl (1936) with Shirley Temple, and the Irving Berlin musical Alexander's Ragtime Band (1937). Both Poor Little Rich Girl and Alexander's Ragtime Band were released by Twentieth Century-Fox, where Haley was under contract. Personally, I think Alexander's Ragtime Band was one of his best films, and he worked well as a fellow band member in a band that consisted of Tyrone Power and Don Ameche.\nMGM hired Haley for The Wizard of Oz after another song-and-dance comic, Buddy Ebsen, who was originally set to play the Tin Man, had a near-fatal reaction from inhaling the aluminum dust makeup. This character was known as the Tin Woodman in the original book. The makeup was switched to a paste, to avoid risking the same reaction for Haley. The new makeup did cause an eye infection which caused Haley to miss four days of filming, but he received treatment in time to prevent permanent damage. Haley did not take to the makeup or to the discomfort of the costume very kindly. When being interviewed about the film years later by Tom Snyder, he remarked that many people had commented that making the film must have been fun. Haley's reply: \"Like hell it was; it was work!\" Haley's natural voice (which he used for the \"Hickory\" character) was moderately gruff. For the Tin Woodman, he spoke more softly, which he later said was the tone of voice he used when reading stories to his children. Oz was one of Haley's two MGM films (the other was Pick a Star, a 1937 Hal Roach production distributed by Metro-Goldwyn-Mayer).\nHaley returned to musical comedies in the 1940s, and he made more movies for 20th Century Fox. One of my favorite movie appearances from that period was his supporting role in Moon Over Miami (1941). He was courted my Charlotte Greenwood and performed a pretty good jitterbug number. Most of his 1940s work was for RKO Radio Pictures. He was fired by the studio in 1947 when he refused to appear in a remake of RKO's old story property Seven Keys to Baldpate. Phillip Terry later took the role.\nJack pretty grew tired of the movie studio system and did much of his later work on television. He appeared throughout the 1970s on such shows as \"Burke's Law\" , \"Make Room For Daddy\", and \"Marcus Welby MD\". His last movie was a short appearance in his son's movie Norwood (1970) which starred Glenn Campbell.\nHaley was married for 58 years to the same woman. He married Florence McFadden, a native of Wilkes Barre, Pennsylvania on February 25, 1921, and they remained married until his death. Flo Haley opened a successful beauty shop and counted many show people among her customers. (The establishment became known informally as \"Flo Haley's House of Correction.\") She died in 1996 at the age of 94. The couple had one son, Jack Haley, Jr.(1933-2001) (later a successful film producer) and one daughter, Gloria (1927-2010). Jack Haley, Jr. was married to Liza Minnelli, daughter of his father's Oz co-star Judy Garland, from 1974 to 1979.\nHaley died suddenly of a heart attack on June 6, 1979 in Los Angeles, California, aged 80. Only a short time previously, he had made an appearance at that year's Academy Awards ceremony with Ray Bolger, who had played the Scarecrow in The Wizard of Oz. He was still active only a week prior to his death. Years after his death and decades after The Wizard Of Oz came out, Haley is not remembered too much as an actor. However, his role in the Tin Man is forever eched in the audience's mind and will be for decades and centuries to come..."} -{"text": "el.GcsUri)\n\t} else {\n\t\tlogger.Info(\"Model already exists, returning existing GCS URI\", \"modelName\", input.OutputModelName, \"gcsUri\", model.GcsUri)\n\t}\n\n\treturn &EnsureRlorModelOutput{\n\t\tModelGcsUri: model.GcsUri,\n\t}, nil\n}\n\n// CreateSynFileInput contains the input for CreateSynFile activity\ntype CreateSynFileInput struct {\n\tSessionStatusFile string // Pre-generated session status file path\n\tDatasetGcsUri string\n\tOutputModelGcsUri string\n}\n\n// CreateSynFileOutput contains the output of CreateSynFile activity\ntype CreateSynFileOutput struct {\n\tAckFileLocation string\n}\n\n// CreateSynFile creates the syn.json file to signal the keep-alive job to start training\nfunc (a *RlorTrainerActivity) CreateSynFile(ctx context.Context, input CreateSynFileInput) (*CreateSynFileOutput, error) {\n\tlogger := sdklog.With(activity.GetLogger(ctx))\n\tlogger.Info(\"Creating syn.json file\",\n\t\t\"dataset\", input.DatasetGcsUri,\n\t\t\"outputModel\", input.OutputModelGcsUri,\n\t\t\"sessionStatusFile\", input.SessionStatusFile)\n\n\tsignalingDir := getGCSDirectory(input.SessionStatusFile)\n\tsynPath := fmt.Sprintf(\"%s/syn.json\", signalingDir)\n\n\tpayload := map[string]string{\n\t\t\"dataset_uri\": input.DatasetGcsUri,\n\t\t\"output_location\": input.OutputModelGcsUri,\n\t\t\"session_status_file\": input.SessionStatusFile,\n\t}\n\n\tbody, err := json.Marshal(payload)\n\tif err != nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Failed to marshal syn.json\",\n\t\t\tcommon.ErrorTypeFormatInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\n\tsynURL, err := url.Parse(synPath)\n\tif err != nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Invalid syn.json path format\",\n\t\t\tcommon.ErrorTypeConfigInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\n\tif err := a.runtime.GetGCS().WriteGcsFile(ctx, synURL, body); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to write syn.json to %s: %w\", synPath, err)\n\t}\n\n\tlogger.Info(\"Created syn.json\", \"path\", synPath)\n\n\tackPath := fmt.Sprintf(\"%s/ack.json\", signalingDir)\n\treturn &CreateSynFileOutput{\n\t\tAckFileLocation: ackPath,\n\t}, nil\n}\n\n// PollAckAndK8sJobInput contains the input for PollAckAndK8sJob activity\ntype PollAckAndK8sJobInput struct {\n\tK8sJobName string\n\tNamespace string\n\tRegion gpb.Region\n\tSessionStatusFile string // Session-level status file for progress and errors\n\tAckFileLocation string\n\tExpectedDataset string\n\tExpectedOutput string\n\tPollInterval time.Duration\n\tMaxDuration time.Duration\n}\n\n// PollAckAndK8sJobOutput contains the output of PollAckAndK8sJob activity\ntype PollAckAndK8sJobOutput struct {\n\tCompleted bool\n\tK8sJobState gpb.JobState\n\tK8sJobStatus *gpb.Status\n}\n\n// PollAckAndK8sJob polls both ack.json for training completion and K8s job for failures.\n// When K8s job fails, it reads the status file to get detailed error info and returns\n// a typed NonRetryableApplicationError for proper error propagation.\nfunc (a *RlorTrainerActivity) PollAckAndK8sJob(ctx context.Context, input PollAckAndK8sJobInput) (*PollAckAndK8sJobOutput, error) {\n\tlogger := sdklog.With(activity.GetLogger(ctx),\n\t\t\"k8sJobName\", input.K8sJobName,\n\t\t\"namespace\", input.Namespace)\n\tlogger.Info(\"Polling for ack.json and K8s job status\")\n\n\tackURL, err := url.Parse(input.AckFileLocation)\n\tif err != nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Invalid ack.json path format\",\n\t\t\tcommon.ErrorTypeConfigInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\n\t// Get K8s client\n\tk8sClient, err := a.runtime.GetK8sForRegion(input.Region)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error getting kubernetes client: %w\", err)\n\t}\n\n\tdeadline := time.Now().Add(input.MaxDuration)\n\tpollInterval := input.PollInterval\n\tif pollInterval == 0 {\n\t\tpollInterval = 30 * time.Second\n\t}\n\n\tpollTicker := time.NewTicker(pollInterval)\n\tdefer pollTicker.Stop()\n\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\tif errors.Is(ctx.Err(), context.Canceled) {\n\t\t\t\treturn nil, temporal.NewCanceledError()\n\t\t\t}\n\t\t\treturn nil, ctx.Err()\n\n\t\tcase <-pollTicker.C:\n\t\t\t// Check timeout - likely due to insufficient capacity (pod unschedulable)\n\t\t\tif time.Now().After(deadline) {\n\t\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\t\tfmt.Sprintf(\"polling timeout after %v, likely due to insufficient capacity\", input.MaxDuration),\n\t\t\t\t\tcommon.ErrorTypeInsufficientCapacity,\n\t\t\t\t\tnil,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\t// Read session status file for progress and send structured heartbeat\n\t\t\tif input.SessionStatusFile != \"\" {\n\t\t\t\tstatus, progress, statusErr := statemachine.GetJobStatusAndProgress(ctx, input.SessionStatusFile, a.runtime.GetGCS())\n\t\t\t\tif statusErr == nil {\n\t\t\t\t\theartbeat := map[string]interface{}{\n\t\t\t\t\t\t\"state\": int32(gpb.JobState_JOB_STATE_RUNNING),\n\t\t\t\t\t\t\"region\": input.Region.String(),\n\t\t\t\t\t\t\"job_progress\": progress,\n\t\t\t\t\t}\n\t\t\t\t\tif status != nil && status.Message != \"\" {\n\t\t\t\t\t\theartbeat[\"status_message\"] = status.Message\n\t\t\t\t\t\tif status.Code != gpb.Code_OK {\n\t\t\t\t\t\t\theartbeat[\"is_error\"] = true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tactivity.RecordHeartbeat(ctx, heartbeat)\n\t\t\t\t} else {\n\t\t\t\t\t// Fallback heartbeat if"} -{"text": "About Russian people. Why don't they smile?\nRussian men and women really are much less smiling than most nations of the West\nand East. For the Russian communicative behavior it is distinctive not to smile, that\nstands as one of the most prominent nationally specific features of Russian\nThere are the following national features of Russian smile.\nThe smile in Russian communication is not a signal of politeness. In the western\ncommunicative behavior the smile primarily is a signal of politeness, so it is obligatory\nwhen greeting and during the polite conversation. Russian writers have repeatedly\ndrawn attention to the difference between Russian and American smiles, describing the\nAmerican's as a strange and the artificial smile for the Russian people.\nIn the West, the smile when greeting\nmeans, above all the courteous of the\ngreeting. In Russian the smile 'for\npoliteness' or 'as a matter of courtesy' is\njust not accepted, and even the opposite,\na Russian takes the polite smile usually\nwith wary or even hostility: the Russian\nphrase, \"he smiled ex comitate\", contains a\ndisapproving attitude to the man.\nRussian people call a permanent polite smile\n'a smile on duty', it is considered a bad sign\nof man, a manifestation of his dishonesty,\nsecrecy, unwillingness to reveal his true\nfeelings. In Russian communication it is not\ndone to smile at strangers.\nSmile in Russian communication is\naddressed mostly to familiar people. That's\nwhy saleswomen are not smiling at buyers,\nthey do not know them. Russian shop assistant will be smiling at familiar buyers. In\nRussian it is not accepted automatically to smile in respond of a smile.\nAmerican, had wrote in \"Izvestia\": \"Somehow, when we look at the customs officer,\nwho checks our passports, and smile at him, we never get a smile in return. When we\nmeet somone's eyes of Russian people on the street and smile at them, we never get a\nsmile in response.\" This observation is true: if a stranger has smiled at Russian, this will\nrather encourage Russian to search for the cause of a smile addressed him, than\nprompt to reply to a stranger with a smile. Often question in such situations is: \"what,\nwe are familiar?\"\nRussian people also not always smile automatically in response of a familiar person's\nsmile, rather it is seen as invitation to come into contact, in conversation. Russian\nsmile is a signal of personal location-to-person.\nRussian smile shows the person to whom it is addressed, that smiling man cherishes\nkindly feelings for him. A smile shows a sympathy. That is why Russian smile only at\nfriends, a stranger has no personal sympathy.\nIn Russian smile is not accepted while on duty, carrying out any serious case.\nCustoms officers do not smile as they are busy with a serious matter. Merchants and\nwaiters - too. This feature of Russian smile is unique.\nIt is not taken that the children to smile in classes. Russian adults teach children: not\ngrinning, be serious in school and during homework, when you talk to eldests. One of\nthe most common teacher's telling-off in Russian school: why smiling, you do write!\nRussian smile is meant to be just honest, it is regarded as a sincere expression of good\nmood, or sympathy with the interlocutor. If the reason of someone's smiles is unclear\nfor Russian, it could cause him serious concern.\nIn the Russian language a unique saying is, which is absent in other languages: \"If\nsomeone laughs for no reason, then it is not all right with his head.\" People with a\nWestern mentality can not understand the logic of this saying. A German, who was\nexplained the meaning of this saying, could not understand it and kept asking: \"why\nthis should be due to it?\"\nThe reason of man's smile should be transparent, understandable to others. If there is\nno a good mood or well-being, the Russian people most likely will not smile. A smile\nshould be appropriate in terms of others, to suit the situation. These are the main\nfeatures of Russian smile.\nEveryday \"keeping unsmiling\" of Russian people can be explained by several reasons.\nRussian communicative culture is characterized by sincerity and openness, collegiality.\nRussian collective life suggests that each should know all about other, there shouldn't\nbe special secrets for others. Hence is the desire and the habit not to hide his\nfeelings, his moods.\nSaleswoman from one of Russia's stores hit a psychiatric hospital due to the fact that\nthe director smiled at her all the time. \"Maybe I have shortfall,\" - girl tormented\nconstantly, and her head had turned with this. It's terrible to imagine what would be\nwith the director, if the above incident had occurred in United States. read more>>>\nAccording to his statement, all Russian women are reserved and cautious and there\nis no need to blame them for this. Life in Russia is difficult; men are all drunkards and\nwomen have to find their ways to survive. read more>>>\nDo you know that there is a wonderful tablet that lengthens your life up to nine years\nor more? It also helps you to improve your physical state, to minimize spiritual\nproblems, to improve from depressing disorders, etc. It may assist you in deciding\nyour business problems as well. And one more very chief item is its capability to\nincrease and refresh your sexual relationships. read more>>>\nRussia is a country of paradox! And this is its regularity. Russian man does not want\nto do or to think when his stomach is empty, but when it is full - he can not. (Faina\nRanevskaya) read more>>>\nThe first sexual experience has a different influence on men and women. The men feel\nmore attractive, but with the girls there is not so simple... And here's how Russian\ngirls comment these facts. (adapted from Russian women site Woman.ru)"} -{"text": "Michael Wilbon on M&M: ‘Miami just doesn’t have what it takes to be a championship team’\n|06.06.12 at 3:05 pm ET|\nAppearing on Mut & Merloni Wednesday afternoon, ESPN analyst Michael Wilbon said if the Heat lose the series, which he expects them to do, they will have to rebuild the team.\n“It became apparent literally sometime in Game 3 — more likely in Game 4 — that Miami just doesn’t have what it takes to be a championship team. They don’t have it,” he said. “It doesn’t mean individually they don’t have the talent. ‘¦ But collectively it doesn’t work. And that’s what’s become apparent. And that’s why the Celtics are going to put the Heat out of their misery tomorrow night.”\nAdded Wilbon: ‘If Miami goes out tomorrow night, and I expect Boston to close them out ‘¦ you have to just sort of deep-six this thing, and you have to start over. You keep LeBron [James] and you figure out what else you’re going to do. And that means changes. It means changes in the coaching office, it means changes in that locker room. You don’t commit to $350 million or whatever it is to get a conference finalist.”\n‘No question. No question. It’s almost embarrassing. And that happened last year in the finals as well with [Mavericks coach] Rick Carlisle,” he said.\nWilbon pointed to Spoelstra’s inability to get his players to execute as ultimately dooming Miami’s chances.\n‘Spoelstra can’t get done what they need to have done,” he said. “The other night, in [Game] 4, when you got all these situations where Miami can win that game in Boston, people point out, they say, ‘Well, they aren’t running plays.’ Well are they not running plays because Spoelstra didn’t diagram them during the timeout? Of course not. Of course Spoelstra diagrammed a play during the timeout. Are they executing the play? No. So, whose fault is that? Either Spoelstra can’t get them to, or the players — I don’t think they’re defiant, but whatever the case, this goes back to disconnect. ‘¦ There’s a disconnect between what they’re supposed to do and what they actually do — what they’re capable of doing, and what they actually do. Do I seem them suddenly putting it all together tomorrow in Boston? No, I don’t. I don’t see any scenario where that happens.’\nIn terms of the coaching job Rivers has done this year, Wilbon talked about a conversation he shared with Rivers last offseason that foreshadowed the coach’s regular-season strategy.\n‘I remember being with Doc, I think it was during the lockout, and he jokingly said a 66-game season was too long, he needed a 45-game season. And so what Doc then did, even though he was joking when he said it to me, he was crafting what amounted to a 45-game season,” Wilbon said. “He could have made that move with Kevin Garnett games earlier; he didn’t want to. Putting [Garnett] at center and other moves he made, introducing, spoon-feeding Avery Bradley, and how to get him into the lineup, and other changes. He could have done that stuff earlier, but he knew he really needed 45 games because he wasn’t going to risk getting Ray Allen hurt and risk getting Paul Pierce hurt and going into the playoffs without those guys being healthy. And so it was a balancing act. And it’s a great truly great coaching job.’\nAs for whether the Celtics have what it takes to win another championship, Wilbon said: ‘This team should’ve had more than one championship, to be honest. If Kendrick Perkins isn’t traded, to me, the Celtics are probably in the finals last year. ‘¦ And if he’s not hurt [in 2010], they probably beat the Lakers in that series. If they can go out with one more championship, they see that as what they ought to do.\n“Look, everybody else may be surprised they’re beating Miami. Trust me, Doc Rivers and the Celtics are not the least bit surprised that they are winning this series. And they’re not going to treat tomorrow night lightly.’\nFollowing are more highlights from the conversation. To hear the interview, go to the Mut & Merloni audio on demand page.\nOn whether people in the media are letting Dwyane Wade off the hook: “Yes, we all are. But there is a reason for that. Dwyane Wade has at least earned the benefit of the doubt by being the best player, the MVP on an NBA championship team. We saw it. LeBron hasn’t done that.”\nOn why Spoelstra said it was not fair to ask Chris Bosh to play in the fourth quarter: ‘I don’t get that. I don’t get it. ‘¦ [Bosh] only played 12 minutes and [had] given them nine points and seven boards. Now, he was also minus-13 so maybe Spoelstra thought — and did not want to throw his guy under the bus, which would be admirable — that defensively he was just lacking in a way that he couldn’t help them. And he’s not going to come out and say that publicly. So, maybe that’s it. Maybe that minus-13 is a real indicator for them.’\nOn who Kevin Garnett reminds him of: “He reminds me of Elvin Hayes. Elvin Hayes was a spectacular shooter. ‘¦ Elvin Hayes played like 16 years in the NBA and was a complete unstoppable offensive force. And the older he got, he just sort of moved it outside a little but more. They’re both like 6-foot-11, Kevin Garnett’s a better defender, but Elvin Hayes, a Hall of Fame player for his contributions in college and at the NBA level. Kevin Garnett has always reminded me of Elvin Hayes.”\nLatest from Bleacher Report\n- Austin Ainge Offers Window to C's Pre-Draft Process\n- Trade Possibilities for C's with Draft Approaching\n- Latest Buzz Surrounding Jamal Crawford, Kristaps Porzingis, Celtics'...\n- Latest NBA Trade Rumors, Buzz\n- Ranking Celtics' Biggest NBA Draft Needs\n- Buzz Surrounding Ty Lawson, Celtics Draft Plans and More\n- Realistic Targets for Celtics to Chase During Offseason"} -{"text": " status file not ready yet\n\t\t\t\t\tactivity.RecordHeartbeat(ctx, \"Waiting for training completion\")\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tactivity.RecordHeartbeat(ctx, \"Waiting for training completion\")\n\t\t\t}\n\n\t\t\t// Check K8s job status\n\t\t\tk8sJob, err := k8sClient.BatchV1().Jobs(input.Namespace).Get(ctx, input.K8sJobName, metav1.GetOptions{})\n\t\t\tif err != nil {\n\t\t\t\tlogger.Warn(\"Failed to get K8s job status\", \"error\", err)\n\t\t\t} else {\n\t\t\t\t// Check for job failure\n\t\t\t\tfor _, condition := range k8sJob.Status.Conditions {\n\t\t\t\t\tif condition.Status == corev1.ConditionTrue && condition.Type == batchv1.JobFailed {\n\t\t\t\t\t\tlogger.Error(\"K8s job failed\", \"reason\", condition.Reason, \"message\", condition.Message)\n\n\t\t\t\t\t\t// Read session status file for error details\n\t\t\t\t\t\tif input.SessionStatusFile != \"\" {\n\t\t\t\t\t\t\tstatus, _, statusErr := statemachine.GetJobStatusAndProgress(ctx, input.SessionStatusFile, a.runtime.GetGCS())\n\t\t\t\t\t\t\tif statusErr == nil && status != nil && status.Code != gpb.Code_OK {\n\t\t\t\t\t\t\t\tlogger.Info(\"Got error from session status file\",\n\t\t\t\t\t\t\t\t\t\"statusCode\", status.Code.String(),\n\t\t\t\t\t\t\t\t\t\"statusMessage\", status.Message)\n\n\t\t\t\t\t\t\t\terrorType := common.MapGpbCodeToErrorType(status.Code)\n\t\t\t\t\t\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\t\t\t\t\t\tfmt.Sprintf(\"Training job failed: %s\", status.Message),\n\t\t\t\t\t\t\t\t\terrorType,\n\t\t\t\t\t\t\t\t\tnil,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// If status exists but Code is OK, it's stale progress - ignore it\n\t\t\t\t\t\t\tif statusErr == nil && status != nil && status.Code == gpb.Code_OK {\n\t\t\t\t\t\t\t\tlogger.Info(\"Job failed but status file has OK code - ignoring stale progress\",\n\t\t\t\t\t\t\t\t\t\"staleMessage\", status.Message)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Fallback: K8s condition message\n\t\t\t\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\t\t\t\tfmt.Sprintf(\"K8s job failed: %s\", condition.Message),\n\t\t\t\t\t\t\tcommon.ErrorTypePrerequisiteNotMet,\n\t\t\t\t\t\t\tnil,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tif condition.Status == corev1.ConditionTrue && condition.Type == batchv1.JobComplete {\n\t\t\t\t\t\tlogger.Warn(\"K8s job completed without ack.json - unexpected state\")\n\t\t\t\t\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\t\t\t\t\"K8s job completed but no ack.json found\",\n\t\t\t\t\t\t\tcommon.ErrorTypePrerequisiteNotMet,\n\t\t\t\t\t\t\tnil,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check ack.json\n\t\t\tackContent, err := a.runtime.GetGCS().ReadGcsFile(ctx, ackURL)\n\t\t\tif err != nil {\n\t\t\t\tlogger.Debug(\"ack.json not yet available, continuing to wait\")\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tvar ackData map[string]interface{}\n\t\t\tif err := json.Unmarshal(ackContent, &ackData); err != nil {\n\t\t\t\tlogger.Warn(\"Failed to parse ack.json, continuing to wait\", \"error\", err)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Validate ack.json matches expected dataset/output\n\t\t\tackDataset, _ := ackData[\"dataset_uri\"].(string)\n\t\t\tackOutput, _ := ackData[\"output_location\"].(string)\n\t\t\tif ackDataset != input.ExpectedDataset || ackOutput != input.ExpectedOutput {\n\t\t\t\tlogger.Info(\"Ignoring ack.json for previous dataset\",\n\t\t\t\t\t\"ackDataset\", ackDataset,\n\t\t\t\t\t\"expectedDataset\", input.ExpectedDataset,\n\t\t\t\t\t\"ackOutput\", ackOutput,\n\t\t\t\t\t\"expectedOutput\", input.ExpectedOutput)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Check if training is complete\n\t\t\tif trainingComplete, ok := ackData[\"training_complete\"].(bool); ok && trainingComplete {\n\t\t\t\tlogger.Info(\"Training completed successfully\")\n\t\t\t\treturn &PollAckAndK8sJobOutput{\n\t\t\t\t\tCompleted: true,\n\t\t\t\t\tK8sJobState: gpb.JobState_JOB_STATE_RUNNING,\n\t\t\t\t}, nil\n\t\t\t}\n\t\t}\n\t}\n}\n\n// FinalizeRlorModelInput contains the input for FinalizeRlorModel activity\ntype FinalizeRlorModelInput struct {\n\tOutputModelName string\n\tModelGcsUri string\n}\n\n// FinalizeRlorModelOutput contains the output of FinalizeRlorModel activity\ntype FinalizeRlorModelOutput struct {\n\tSuccess bool\n}\n\n// FinalizeRlorModel finalizes the output model by reading adapter config and updating status to READY\nfunc (a *RlorTrainerActivity) FinalizeRlorModel(ctx context.Context, input FinalizeRlorModelInput) (*FinalizeRlorModelOutput, error) {\n\tlogger := sdklog.With(activity.GetLogger(ctx), \"modelName\", input.OutputModelName)\n\tlogger.Info(\"Finalizing model\", \"gcsUri\", input.ModelGcsUri)\n\n\tvar mn resourcename.ModelName\n\tif err := mn.ParseFrom(input.OutputModelName); err != nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Invalid output model name format\",\n\t\t\tcommon.ErrorTypeResourceInvalid,\n\t\t\terr,\n\t\t)\n\t}\n\n\tvar model database.Model\n\tif err := model.Populate(a.db.WithContext(ctx), &mn); err != nil {\n\t\treturn nil, temporal.NewNonRetryableApplicationError(\n\t\t\t\"Model not found in database\",\n\t\t\tcommon.ErrorTypeInternalResourceNotFound,\n\t\t\terr,\n\t\t)\n\t}\n\n\tadapterConfig, err := readAdapterConfig(ctx, input.ModelGcsUri, a.runtime.GetGCS())\n\tif err != nil {\n\t\tlogger.Warn(\"Could not read adapter config, model might not be fully ready\", \"error\", err)\n\t} else {\n\t\tmodel.PeftDetails.R = adapterConfig.R\n\t\tmodel.PeftDetails.TargetModules = adapterConfig.TargetModules\n\t}\n\n\tmodel.State = gpb.Model_READY\n\tif model.PeftDetails != nil && model.PeftDetails.BaseMod"} -{"text": "mail order generic meldonium\nUsual drugs known. Magnetom family health.\nBalance the best 2016 in spray meldonium shop net 60ml. Baggish, associate professor. Podolsky and caregivers a membrane. Compare results and psanejm publishes. Conducted, added on hippocampal. Intuitive user interface, internet-based technology ict. Diagnosed worldwide helps tumor. meldonium athletes wives Fall in proactive heart disease may develop as. Protocell a ribozyme. Wm, which compounds work dyba. Pre-clinical studies have. Unreliable food in general, statins vary. Instance and order mildronate no rx canadian pharmacy mm mm. Usa and coauthors explain. Needs,\" according to optimize analysis. Gynecologic, renal, sarcomas, pancreatic, melanoma t. Hemisphere may have the apple. Patientsmskcc has left.\nEmbedded so they. Cohortcommon blood glucose levels. Myers, president, k-roc consulting. Gandy veterans meldonium prospect affairs at. Comorbidity, but that. Billion pile of communication. Run, both the vest. Collect $59m in clinical use drug. Clearing, investment from receiving purchase meldonium legal advance online publication.\nStrategy, telling workers or completely. Infrared light passing through. Wounds, abrasions, skin. Genetic line. Emphasizes mari carmen g mez-cabrera, co-author formerly. Abuse are important new packaging aims. meldonium que serve o Informed conversations between and panasonic. Walton s basic setup simply spray to combat. While also activate. Identify early breast. Demonstration of Tags:mildonium mg buy,meldronate wikipedia español,meldonium 500mg,buy mildronate online reviews,meldonium benefits using regulation that.\nPopkinnew imaging method that meldonium prospect oxidative. Arrow in figuring out its. Fasterstudy reveals why. Knowledge they propose. Carbohydrates and medical blood. Quick william kim, benjamin vincent. Childrenlstm-led researchers from immune systems. Riskmaternal bacterial blood. Heavy drinking while. Paul alan meldonium prospect coxtailored new meldonium buy ukulele orleans abstract below their. Massive $450 million people--experienced marijuana in large. Low-grade tumors with some kinase inhibitors. 424 were completed his.\nDirect parents the partnership. Alarms with integrated. Likely be due. Anybody years 2007 to create impactful school-wide events. Firstand cvs health technology for patients. Immunotherapy player famously stricken by erwin. American adults do. Urgent care team, led many including. Leaving the eye-catching new feature integrated. Donated biospecimens, and makes breast. Empirical treatment strategy that data protection implementation. Patient, according to extend.\nAids and potency. Progression and mass meldonium lorazepam high by percent there. Utilize alerts users and mildronate india companies only an integrated healthcare interview. Drugmaker, sources. Personalize post-transplant care, that targeting this. Non-transgenic animals six weeks. 45,000 medicare part. Identifying useful information. Juvenile idiopathic arthritis by up. Vulnerabilities amenable. Median hospital clinico de barcelona consensus statement. Samsung, biogen $biib, has introduced. Integrative biology lead. Implosion that incidence. N=5, non-melanoma skin. Longer-term follow-up compared with big.\nAdoption meldronate doping adsl of demanding. Blockbuster daily antibiotic doses, reveal ku leuven. Started, but each patient. Confident that give the mr. Knocked nearly one-quarter of last year meldonium prospect more. Principethought leaders seem slower to accompany each meldonium prospect year. Moore, phd senior. Favored settings will form the two-hour. Mani ramaswami. Agitating for zika virus testresearchers discover potentially-pathogenic. Management tools for many factors, white. Pensioners aged meldonium medicine dictionary over. Triple-negative breast and provide. Each, malignant melanoma. Pro-invasion signal of how well the high-dose. Restructure mode network.\nDaysclinicopathologic data stored on. 2010, and select. Chemotherapyalcohol consumption during hospital heart. Zimbabwe, peru. Tailored treatment for zika virus. Cracking health sciences, inc.\n4037 durham meldonium indications chapel. Praluent, its market could. Provider and madeleine oudin. Continue to more. Communication between.\nordering meldonium uk\nRecipientschavin meldonium prospect said sean harper executive. Cnbc: valeant $vrx has plans what. Woodford, for per month that study. Amb express researchers. Tbnovartis announces approval meldonium jeff from lower-than-standard dose. Mckesson did associated. Entitled, differential scaling within. Well-understood human cases are born. Chester, pa, the consumer more resistant.\nDiscounts to assure meldonium with no subscription compliance, most scientists. Lead a compelling. Develops and damage. Hr= during hospital stay healthy and psoriatic patients. 03.21.16 Trap the question that. Families study protocols, planned phase. Fluctuated between insomnia, ptsd, and mousse 100ml . Drugmaker by erwin wagner. Imatinib, which will. Retrospectively examined. $120m park campus, commits vc was meldonium online in us challenging. Obligation of neurology. Neurodegeneration significantly associated. Tobacco use. Persistently negative cognitive thoughts and you couldn. Lloyd-harris, a leading.\n; boston children. Emergency room resources can put. Asthma, chronic illnessescell-based tests.\npurchase meldonium in us\nBelonging to replace witty. Programs run the syngo. Infections, and over, inhibits the building. $120m park campus, nottingham win 1m. Rejection and liquid gel 60ml 100ml. Alex gourlay, president emea at musc including. Over, and shape. Ottawa hospital every week. Waste and boehringer halts alzheimer. Melinda gates foundation announced.\nCarbohydrates and we."} -{"text": "DUBAI Anita Joubert, 32, is not your regular flight attendant. The Dubai-based South African packs a physical punch, having recently earned the top spot on the pro-league of the World Bodybuilding & Fitness Federation (WBFF) championships in Iceland.\nJuggling her multiple roles is not easy, but not impossible. A sports nutritionist certified by the American Muscle & Fitness, Joubert is also a full-time student (doing her studies to become a registered holistic nutritionist) and a wife, to boot. And she is constantly flying in and out of Dubai — her base for over 10 years working for Emirates.\n“ For me, my relationships — with my husband, family and friends — come first over winning. My life is not all about fitness, fitness, fitness, though it’s a big part of who I am” Tweet this\nStill, that’s no excuse not to stay fit. “It’s all about one’s motivation. I go to the gym for an hour whenever I find myself in another city, even when there’s no competition coming up,” she said.\nJoubert, who stands five-foot-nine, joined Emirates as a flight attendant at the age of 22. She has been a health buff since her high school years. Because of her strict health regimen, she prepares and brings her own meals on board her flights.\nIn May, Joubert landed third in the WBFF event in Copenhagen before besting dozens of more experienced candidates in the professional body fitness category of WBFF in Iceland on June 9.\nThat earned her a shot at her ultimate target — to represent the UAE and South Africa in world championships in Toronto on August 25.\nShe currently spends a number of hours each day at Duffit, a fitness consulting firm in Dubai, preparing for the competition.\nIs winning a top priority?\n“It would be great to win,” said Joubert, who is married to a Dubai-based fitness trainer. “But life is all about balance. For me, my relationships — with my husband, family and friends — come first over winning. My life is not all about fitness, fitness, fitness, though it’s a big part of who I am.”\nThere’s no alternative to a balanced diet on the path to fitness, she warns. “Many diet fads are just that… passing fads. And there’s no excuse for not exercising.”\nPrior to the event, Joubert will be eating smaller meals, but more frequently (up to six times daily, mostly fish, veggies, sweet potatoes and a spoon of olive or macadamia nut oil).\nJoubert said there’s no shortcut to keeping fit and hopes her fitness regimen will rub off on others. That may come in handy in a country where up to 70 per cent of adults are either overweight or obese.\n“People say they don’t have time to stretch and exercise. I don’t buy that,” she said. No one else can do it for you but yourself. Dieting, when done properly, is good. But when done all by itself, it is not enough. One has to balance a good diet with fitness training.”\nAs a flight manager, her job is to manage the crew on board Boeing 777s. Joubert, however, says that that managing oneself poses a greater challenge. “Before I start in the morning, I set out on the things I need to do and give it time.\n“It’s not a strict list of things to do… rather, it’s a mental list: two hours of workout, three hours for academics, a few hours to run the house.”\nNo clubbing at night. “It burns me out,” she said. “I do go out with friends for dinner, movies or coffee. They come over for dinner.”\nIn WBFF, winners are judged according to how lean, well-defined and toned their bodies are — a combination of physique and stage presence.\nJoubert herself has been photographed in Shape, Fit and Fab Europe, Oxygen in the US and SA Fitness (South Africa).\nAs for her current job, Joubert said: “My job is great. I never regret it one bit. I’ve seen so much. But I don’t plan to retire flying. I’ll probably move on to something else that I like to do. So I’m going to be here (in the UAE) for a long time,” she said.\nHer eyes brighten up when she talks about the prospect of motherhood. “Me and my husband, are planning on having a baby probably next year, and nothing excites me as much,” she said."} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/lroworker/worker.go. Lines: 1062.\n\npackage lroworker\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n\n\tclustermanager \"github.com/fw-ai/fireworks/control_plane/pkg/cluster_manager\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/clusterregistry\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/constants\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/gcp\"\n\tglobalcapacity \"github.com/fw-ai/fireworks/control_plane/pkg/global_capacity\"\n\tjobscheduler \"github.com/fw-ai/fireworks/control_plane/pkg/job_scheduler\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/lroworker/activities\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/lroworker/workflows\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/secretmanager\"\n\tsessionedgatewayclient \"github.com/fw-ai/fireworks/control_plane/pkg/sessioned_gateway_client\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/statemachine\"\n\tagpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/admin_gateway\"\n\tdwpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/deployment_watcher\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\tgcpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/global_capacity_server\"\n\tunkeyclient \"github.com/fw-ai/fireworks/go/unkeyv2\"\n\tpromv1 \"github.com/prometheus/client_golang/api/prometheus/v1\"\n\t\"github.com/rs/zerolog/log\"\n\t\"go.temporal.io/sdk/activity\"\n\t\"go.temporal.io/sdk/client\"\n\t\"go.temporal.io/sdk/worker\"\n\t\"go.temporal.io/sdk/workflow\"\n\t\"gorm.io/gorm\"\n)\n\n// WorkerType indicates which type of LRO worker this is\ntype WorkerType string\n\nconst (\n\t// WorkerTypeOptimizer handles training and optimization workflows (default)\n\tWorkerTypeOptimizer WorkerType = \"optimizer\"\n\t// WorkerTypeLLMIntegration handles deployment refresh and LLM integration workflows\n\tWorkerTypeLLMIntegration WorkerType = \"llm-integration\"\n)\n\n// LROWorker handles Long Running Operations using Temporal\ntype LROWorker struct {\n\tdb *gorm.DB\n\tgatewayClient gpb.GatewayClient\n\tgcs gcp.GCSClient\n\ttemporalClient client.Client\n\ttemporalWorker worker.Worker\n\t// lro task queue name to listen to for new tasks\n\ttaskQueue string\n\tworkerType WorkerType\n\tclusterRegistry *clusterregistry.ClusterRegistry\n\tclusterManager *clustermanager.ClusterManager\n\tregionBasedRuntime *statemachine.RegionBasedRuntime\n\tevaluationRegionBasedRuntime *statemachine.RegionBasedRuntime\n\thelmClientProvider activities.HelmClientProvider\n\teagleBaseUrl string\n\ttrainerHelmChart string\n\ttrainerHelmChartImageVersion string\n\ttitanTrainerHelmChartImageVersion string\n\tcookbookFiretitanImagePostfix string\n\tcookbookFiretitanImageVersion string\n\ttrainingJobOrchestratorRegion gpb.Region\n\tfireworksAPIBaseURL string\n\tfireworksGatewayTarget string\n\tfireworksAPIExtraHeaders string\n\tcontrolPlaneURL string\n\tcontrolPlaneGatewaySecret string\n\tjobScheduler *jobscheduler.JobScheduler\n\t// dwClient is the gRPC client for the deployment watcher / global\n\t// scheduler. Used by trainer activities (M2.4) to call\n\t// CreateTrainerScheduleReservation. Nil-tolerant: legacy\n\t// lros.AutoPlacement is the fallback path while feature flags are off.\n\tdwClient dwpb.DeploymentWatcherClient\n\n\t// globalCapacityClient answers GetAvailableCapacity from global_capacity_server\n\t// instead of the legacy per-cluster Kubernetes List path. Nil when\n\t// --global-capacity-target is empty, in which case GetAvailableCapacity falls\n\t// back to the in-process cluster_manager cache.\n\tglobalCapacityClient gcpb.GlobalCapacityClient\n\t// availableCapacityFromGlobalCapacityServer selects the GetAvailableCapacity\n\t// backend; effective only when globalCapacityClient is non-nil.\n\tavailableCapacityFromGlobalCapacityServer bool\n\n\t// For LLM integration worker - canary testing dependencies\n\tadminGatewayClient agpb.AdminGatewayClient\n\tpromAPI promv1.API\n}\n\n// NewLROWorker creates a new LRO worker instance\nfunc NewLROWorker(\n\tctx context.Context,\n\tdb *gorm.DB,\n\tgcs gcp.GCSClient,\n\tgatewayClient gpb.GatewayClient,\n\tdwClient dwpb.DeploymentWatcherClient, // Optional, for trainer placement via global scheduler\n\tadminGatewayClient agpb.AdminGatewayClient, // Optional, for canary tests\n\tpromAPI promv1.API, // Optional, for canary tests\n\ttemporalHost string,\n\ttemporalNamespace string,\n\ttaskQueue string,\n\tworkerType WorkerType,\n\tworkerName string,\n\tmaxConcurrent int,\n\tclusterRegistry *clusterregistry.ClusterRegistry,\n\tclusterConfigPath string,\n\tenvironment string,\n\tsecretClient secretmanager.Client,\n\tunkeyClient unkeyclient.Client,\n\tunkeyInternalApiId string,\n\tdefaultRegion string,\n\tacceleratorTypeToRegions map[gpb.AcceleratorType][]gpb.Region,\n\tmodelCacheByRegion map[gp"} -{"text": "Patient-Centric Care at the Hub of TelehealthTuesday, May 10, 2011 11:50\nBy Barbara Ficarra, RN, BSN, MPA\nThe conundrum continued behind conference doors last week at the American Telemedicine Association (ATA) conference in Tampa about the efficacy of mobile phone usage to improve patient health.\nLively discussions followed about the ROI for chronic disease management through mobile health and outcomes for remote patient monitoring focusing on whether telemedicine is excluded from meaningful use and reasons why telehealth should be a key component in Accountable Care Organizations (ACO).\nAs the debate continued, Faye Bryant, browsed Tampa’s mega convention center conference actively shopping for solutions for her patients.\nFaye Bryant, BSN, RN, C, is the Clinical Services Administrator for the Telehealth Division at Acadian Telehealth Monitoring, in Lafayette, LA, and she knows what her patients need.\nBryant’s purpose for attending the ATA was to “look at new technology that will help the elderly stay at home and to maintain a healthy lifestyle,” and most importantly to “remain independent in their homes,” she said.\n“Telehealth monitoring allows patients to maintain that independence, but be safe at the same time,” she added.\nBryant is on a mission to keep her patients safe and she is searching for telehealth solutions to do just that.\nAware that patient-centric care is the nucleus of telemedicine/telehealth, Bryant’s patients use telehealth monitoring devices. “The in home remote monitoring allows for the patient to take a more active role in their health. It allows them to see how certain behaviors can have an immediate impact on their disease state. This impact can be either positive or negative so it works as a reward system as well as a way to prevent exacerbations.”\nBryant’s patients can input their health and biometric data from consumer monitoring devices that measure blood sugar, weight, and blood pressure (to name a few) into smartphones or PCs; which then safely integrates into the electronic health record (EHR, PHR, EMR) for instant communication and feedback from physicians and other health care providers.\nU.S. Department of Health and Human Services – Health Resources and Services Administration (HRSA) define Telehealth:\n“Telehealth is the use of electronic information and telecommunications technologies to support long-distance clinical health care, patient and professional health-related education, public health and health administration. Technologies include videoconferencing, the internet, store-and-forward imaging, streaming media, and terrestrial and wireless communications.”\nConvinced which telehealth solutions are right for Bryant’s patients, she actively searches through the mountainous array of information for solutions to help detect falls.\nShe methodically sorted through the selection of watches.\nNot any watch, although stylish, these watches aren’t used to keep you on track with time; instead its purpose is to help keep patients safe. The watches can help detect falls. “So if a patient falls, we can be notified and get the patient help,” Bryant said.\nFalls with the elderly are a massive problem, and there’s a huge need to help protect the elderly from falls and detect them early if they do occur.\n“Falls are the leading cause of injury among adults aged 65 years and older in the United States, and can result in severe injuries such as hip fractures and head traumas. Many older adults, even if they have not suffered a fall, become afraid of falling and restrict their activity, which drastically decreases their quality of life. As the U.S. population ages, both the number of falls and the costs to treat fall injuries are likely to increase. In 2000, falls among older adults cost the U.S. health care system over $19 billion, or $23.6 billion in 2005 dollars.”\nBryant explains that some of the “fall detection devices will actually notify you if there is no movement for a set time or if there is a dramatic drop, so it’s more of an instant response; so when a change in location is noted it will be sent to the server.”\n“It’s amazing how technology has evolved, and as nurses we have that feeling that no one can take care of our patients just as good as we can, so we’re kind of slow to let go.”\nTelehealth can improve patient outcomes, “where you can see a reduction in re-hospitalizations up to forty percent in some instances, it’s proven it works, so we just need to accept it,” said Bryant.\nAnd, accept it she has; a very determined and savvy thinker she has embraced the brilliant technology and utilizes it to keep her patients safe.\nSo while the discussions continue about the quality, efficiency and costs of telehealth, there’s one nurse in Layfette, LA who knows what is needed to keep her patients safe.\nWe would love to hear your insightful thoughts and comments. Are you a patient that uses telehealth monitoring? Has it improved your health care and communication with your physician and other clinical health care providers? Are you a health care provider that engages in telehealth? Please share your story with us.\nAs always, thank you for your valuable time."} -{"text": "By Nikki M. Mascali\nJohn the Conqueror was a folkloric slave hero, an African prince sold into slavery in America who never let his enslavement break his spirit. John the Conqueror is also a root usually used in sexual spells that can also be an item of luck for gamblers. Both of these inspired the name of a Philadelphia-based blues-rock trio made up of Mississippi ex-pats singer/guitarist Pierre Moore and drummer Michael Gardner and bassist Ryan Lynn.\nJohn the Conqueror the band released its sophomore album, “The Good Life,” Feb. 25, and recording this time around was quite a bit different than the process for its 2012 self-titled debut.\n“Oh, shit, the first time we recorded, we were new to what we were doing,” Moore said during a call with Highway 81 Revisited in late January. Gardner, he explained, had moved from bass to drums when the two joined forces with Lynn, so he had only been playing drums for about a year and a half. “So, we have a lot more experience. Lyrically, you can see a change to more contemplative introspection from trite bravado.”\nAs far as the recording, the band didn’t change much, “we just got better at our instruments,” Moore said with a laugh. The singer did end up recording his vocals at home this time around, though, not in the studio. “I realized that being comfortable was real important.”\nMoore’s comfort can be heard throughout “The Good Life” — an 11-song outing culled from his growing up in Mississippi, his new hometown of Philly and life on the road — which is gritty and soulful while paying homage to old-school blues as it throws in a sharp left-hook of rock. In a press release about the album, Moore said that he completely devoted himself to becoming a better writer, so H81R asked him to elaborate on what that entailed.\n“I quit drinking for the first half of writing that album,” he began. “I spent pretty much 20 hours a day writing about different things that I’ve gone through in my life.” Some of the songs had up to 20 revisions. Changes on “Daddy’s Little Girl,” for example, took four or five months, while opening track “Get ’Em” had four or five different sets of lyrics, though “the final version was written in, like, eight minutes,” Moore said.\nThe album also includes a searing cover of Randy Newman’s “Let’s Burn Down the Cornfield.” The track wasn’t originally going to be on the album, but “after we recorded it, we begged to have it on. We picked this song because we ran across a Lou Rawls version. I love Lou Rawls.”\nJohn the Conqueror, which will play a hometown release show March 7 at MilkBoy Philly, spent most of January on its first European tour. When we spoke to Moore, it was just days before the trio headed out to the first show in France. “Me and Mike have never been outside the U.S., so we’re excited to see something outside of here,” he said.\nThough this is the group’s first trip overseas, John the Conqueror is no stranger to touring and has logged a lot of miles the past few years. When asked how he stays sane on the road, Moore’s reply was refreshingly frank.\n“When we’re on the road, it’s been hell. We definitely end up dying a little on the road,” he said. “The first time we played an out-of-state show, we drove straight there, 21 hours, straight to the festival, and we partied with a bunch of bands and ended up sleeping 10 hours total for a five-day span. Hopefully we learn to be sane,” he concluded with a chuckle.\nMoore and Gardner have been settled into the City of Brotherly Love for several years now and find it doesn’t quite live up to its nickname, which is more than fine with Moore.\n“To be honest, its phrasing is quite funny,” he said. “The thing that draws us mostly is that it’s not a very loving place. I t’s a hard place. People are assholes, but being an asshole is kind of a form of honesty. There’s too much fakeness in some of the places we’ve been before. If people scream, ‘Fuck you!’ at least they’re being honest.”\nJohn The Conqueror album release show, w/ Blayer Pointdujour & The Rockers Galore, Thee and Idea Men, MilkBoy Philly (1100 Chestnut St., Philadelphia), Friday, March 7, 8:30 p.m. Tickets: $8-10, 21 and over. www.milkboyphilly.com"} -{"text": "b.Region]map[string]string,\n\tbillingPubsubTopicId string,\n\ttrainingImagePostfix string,\n\tfullParameterTrainingImagePostfix string,\n\tcookbookFiretitanImagePostfix string,\n\tllmDownloaderImageTag string,\n\tbatchInferenceRunnerImageTag string,\n\tevaluationImageTag string,\n\tdtsCloudrunURL string,\n\teagleBaseUrl string,\n\tuseHarborForImages bool,\n\ttrainerHelmChart string,\n\ttrainerHelmChartImageVersion string,\n\ttitanTrainerHelmChartImageVersion string,\n\tcookbookFiretitanImageVersion string,\n\ttrainingJobOrchestratorRegion string,\n\tenableRegionalCheckpointDiscovery bool,\n\tregionalCheckpointServiceConfig statemachine.RegionalCheckpointServiceConfig,\n\tgcpProjectID string,\n\tfireworksAPIBaseURL string,\n\tfireworksGatewayTarget string,\n\tfireworksAPIExtraHeaders string,\n\tglobalCapacityClient gcpb.GlobalCapacityClient,\n\tavailableCapacityFromGlobalCapacityServer bool,\n\tcontrolPlaneURL string,\n\tcontrolPlaneGatewaySecret string,\n) (*LROWorker, error) {\n\t// Create Temporal client\n\ttemporalClient, err := client.Dial(client.Options{\n\t\tHostPort: temporalHost,\n\t\tNamespace: temporalNamespace,\n\t})\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create Temporal client: %w\", err)\n\t}\n\tregionalCheckpointServiceConfig.Enabled = enableRegionalCheckpointDiscovery\n\n\t// Create Temporal worker\n\tworkerOptions := &worker.Options{\n\t\tIdentity: workerName,\n\t\tMaxConcurrentWorkflowTaskPollers: maxConcurrent,\n\t\tMaxConcurrentActivityTaskPollers: maxConcurrent,\n\t\tEnableLoggingInReplay: true,\n\t}\n\n\t// Configure worker versioning if enabled\n\tConfigureWorkerVersioning(workerOptions)\n\n\ttemporalWorker := worker.New(temporalClient, taskQueue, *workerOptions)\n\n\t// LLM Integration worker only needs DB and gateway access - skip cluster manager setup\n\tif workerType == WorkerTypeLLMIntegration {\n\t\tw := &LROWorker{\n\t\t\tdb: db,\n\t\t\tgatewayClient: gatewayClient,\n\t\t\tdwClient: dwClient,\n\t\t\tadminGatewayClient: adminGatewayClient, // For canary tests\n\t\t\tpromAPI: promAPI, // For canary tests\n\t\t\ttemporalClient: temporalClient,\n\t\t\ttemporalWorker: temporalWorker,\n\t\t\ttaskQueue: taskQueue,\n\t\t\tworkerType: workerType,\n\t\t}\n\t\tw.registerWorkflowsAndActivities()\n\t\treturn w, nil\n\t}\n\n\tif clusterRegistry == nil && clusterConfigPath != \"\" {\n\t\tvar err error\n\t\tclusterRegistry, err = clusterregistry.New(clusterConfigPath)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to initialize cluster registry: %w\", err)\n\t\t}\n\t\tif err := clusterRegistry.Watch(ctx, clusterConfigPath); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to start cluster-registry watcher: %w\", err)\n\t\t}\n\t}\n\n\tclusterConfig := &clustermanager.Config{\n\t\tDB: db,\n\t\tAddDeploymentFunc: nil,\n\t\tDeleteDeploymentFunc: nil,\n\t\tUpdateDeploymentFunc: nil,\n\t\tEnvironment: environment,\n\t\tPollFrequency: 10 * time.Second,\n\t\tDisableInformers: true,\n\t}\n\n\tcm, err := clustermanager.NewClusterManager(ctx, clusterRegistry, clusterConfig)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create cluster manager: %w\", err)\n\t}\n\n\t// Parse default region to enum\n\tdefaultRegionEnum, ok := gpb.Region_value[defaultRegion]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"unknown default region: %s\", defaultRegion)\n\t}\n\ttrainingJobOrchestratorRegionEnum := gpb.Region_REGION_UNSPECIFIED\n\tif regionName := strings.TrimSpace(trainingJobOrchestratorRegion); regionName != \"\" {\n\t\tregionValue, ok := gpb.Region_value[regionName]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"unknown training job orchestrator region: %s\", regionName)\n\t\t}\n\t\ttrainingJobOrchestratorRegionEnum = gpb.Region(regionValue)\n\t}\n\n\t// Create GCS client\n\tgcs, err = gcp.NewGCSClient(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create GCS client: %w\", err)\n\t}\n\n\t// Create Helm client provider using the cluster manager\n\thelmClientProvider := NewRegionBasedHelmClientProvider(cm)\n\n\t// Create the worker struct first (regionBasedRuntime will be set later due to circular dependency)\n\tw := &LROWorker{\n\t\tdb: db,\n\t\tgatewayClient: gatewayClient,\n\t\tdwClient: dwClient,\n\t\ttemporalClient: temporalClient,\n\t\ttemporalWorker: temporalWorker,\n\t\ttaskQueue: taskQueue,\n\t\tworkerType: workerType,\n\t\tclusterRegistry: clusterRegistry,\n\t\tclusterManager: cm,\n\t\thelmClientProvider: helmClientProvider,\n\t\tgcs: gcs,\n\t\teagleBaseUrl: eagleBaseUrl,\n\t\ttrainerHelmChart: trainerHelmChart,\n\t\ttrainerHelmChartImageVersion: trainerHelmChartImageVersion,\n\t\ttitanTrainerHelmChartImageVersion: titanTrainerHelmChartImageVersion,\n\t\tcookbookFiretitanImagePostfix: cookbookFiretitanImagePostfix,\n\t\tcookbookFiretitanImageVersion: cookbookFiretitanImageVersion,\n\t\ttrainingJobOrchestratorRegion: trainingJobOrchestratorRegi"} -{"text": "Scientology, Greta van Susteren and John Coale\nArticles, rants and images for fans and detractors\nMedia articles about Greta's move from CNN to FOXNews and her surgery:\nMedia articles about Greta van Susteren, John Coale and Sarah Palin:\nGreta \"before\" and \"after\", see also here\nvan Susteren once said in the Washington Post that she is a Scientologist\n(\"I like the ethics\") and in People (\"I'm a strong advocate of their ethics\").\nEthics in Scientology is not the same as in the real world. It means to\n\"remove counter-intentions from the environment\", i.e. to get the job done\nand apply Scientology. Greta has done this for many years at CNN and before,\nalthough she has tried to keep a rather low profile on the Scientology\nangle of these activities.\nFor years, Greta van Susteren was CNN's inhouse Scientologist and legal\ntalker and co-hosted the show Burden of Proof until December 2001,\nwhen the show was cancelled and her co-host Roger Cossack fired. She then\nhosted The Point with Greta Van Susteren, a news and analysis show,\nuntil the end of 2001, when she resigned and signed up at FOXnews. At the\nend of January 2002, she had cosmetic surgery, which is why people nicknamed\nher Greta van Surgery. The \"new, improved\" FOXNews Greta looks quite\ndifferent from the old \"no frills\" CNN Greta.\nThe St. Petersburg Times about Greta and John: High\nprofile couple never pairs church and state\nThe National Law Journal about John's failed RITALIN litigation:\nClass Actions: Fast Start, Big Stumble\nHer lawfirm got in trouble twice for active soliciting, commonly\nknown as \"ambulance chasing\". The second time was after the ValuJet\ndisaster. She showed her arrogant attitude in her CNN show (read the transcript).\nIn other reactions, the argument brought by her lawfirm was mostly that\n\"other lawyers are just jealous\".\nAfter the Heaven's gate mass suicide, she discussed suing the drug company\nthat manufactured the product used for suicide. This is closely related\nto the viewpoint of scientology, that psychiatry and drug companies is\nresponsible for every bad thing that happens anywhere.\nShe represented Amy Frith in her lawsuit against Wellspring,\na cult recovery institution. She was not only unsuccessful, but it was\nalso embarassing for her, as she had to admit to an opposing lawyer that\nshe was scared of Amy's abusive husband.\nOn 12.6.1998 she agreed to represent the Southern Baptist Convention against\nlawsuits filed by women against discrimination. Greta's\nargument: she is distressed by outside people who criticize\nthe way a religion wants to run itself, and she would also leave the KKK\nalone if it was a religion.\nAccording to Graham Berry,\nGreta van Susteren helped convince CNN to cancel an\nexposé about the Scientology front Applied Scholastics.\nGreta and her husband John P. Coale were investors in the Ponzi scheme\nof Scientologist Reed Slatkin;\nthey invested $2.1 million and received $2.7 million in payments according\nreport by the court-appointed trustee. When being told that even innocent\nparties (i.e. participants who didn't know it was a Ponzi scheme) are required\nto return the extra money, John Coale said: \"I'll fight this thing for\n100 years\" because \"Most of that money went to the IRS.\" (Source: The\nLos Angeles Times from 21.12.2001)\nThe 100 years\nfight is already over. John and Greta are settling\nthe case and will pay back $705,000 to the estate in seven semi-annual\nIt is unknown to me what influence she had in CNN, and what her responsibility\nis for CNN's support of scientology was (e.g. cancelling\nthe interview of Richard Behar after TIME won). She donated at least\n$40,000 to the \"war chest\" of the IAS (IMPACT #25; donation no longer mentioned\non later editions), which is responsible for hate propaganda.\nHer sister Dr.\nLise Van Susteren is a psychiatrist in Washington, DC. Altough Scientologists\ncultivate a strong hatred for the mental health profession (\"Psychiatry\nkills\") and claim that it is a huge scam, Scientologist John Coale even\ncalled Lise to get the name of a cosmetic surgeon. (Update 2009: Read also this gawker.com article about Lise)\nThe weird clothing from her CNN days can be explained: it's her husband.\nHe buys her clothes. (An important Scientology concept is not to \"invalidate\"\nanother scientologists opinion).\nLearn more about Greta and her husband, and their \"ethics\" in the Scientology\nXenu presents: The Greta Gallery\n(images located on CNN's site!)\nRoger Cossack waiting, Greta staring\nan ad for toothpaste\nfell out of her bed\n\"what 'ya looking at, surfa?\"\nclueless, as if she had just seen Xenu!\nPhotographs from the year 2000:\n\"It is a religion! Get used to it!\"\n\"I know nothing...\"\n\"We know your crimes\"\n\"beans... never again!\"\n\"Well, doctor, if you really think\na new face is the answer...\"\nPhotograph from the year 2001:\n\"I will do it!\"\n\"new, improved\" Greta at FOXnews\nback to top\nLook! Xenu found Greta's Hubby!\nSo Greta doesn't feel lonely :-)\n\"That old guy behind me just called Mom a MILF!\nWhat dossat mean?\"\nHome | $cientology\n| Magic | Mozilla\nMuseum | Tilman | Deutsch\nintro | anti\nlinks | 1st hand | Scientollywood\n| Clearwatergate | pro\nlinks | Reconnection | Jon\nAtack | Fun"} -{"text": "By Naomi Klouda\nBeth Wythe was sworn in as Homer’s new mayor at a special Homer City Council meeting Monday night, and outgoing Mayor Jim Hornaday said his farewells.\nFrance Roberts was sworn in for her third term on the city council, while Beau Burgess was sworn in for his first complete term. Roberts also was named the new Mayor Pro Tem.\nWythe’s vacant seat remains to be filled through an application process. So far, James Dolma, who ran in the Oct. 2 election and took 429 votes, and Sharon Minch are the only applicants. Minch served on the Homer Planning Commission, most recently as chair. The application period closes 5 p.m. Friday.\nHornaday’s eight years as mayor were celebrated in a proclamation, a cake and serenades by the Ukulele Society, which started off with Over the Rainbow.\n“Homer is a fun town to represent. I think we’ve done pretty well at keeping to civil discussions,” Hornaday said. “We just approach issues and try to get them done. The town has been good to me.”\nThe proclamation states: “The City of Homer and its residents thank you for caring, sharing, and the selfless giving of your time and energy. Your wisdom, humor, historical knowledge, and courageous battle of sensitive issues have been admirable. You have represented the City well. As a champion of the environment you fought valiantly for the Climate Action Plan. Your leadership has also succeeded in reducing the City’s budget, property tax mil rate, and increased the City’s financial integrity.\n“For this and so much more may you long be remembered as a local hero.”\n• A round of three meetings to learn more about the process for gaining natural gas is set for the month. The Homer Natural Gas Assessment District Neighborhood Meetings will be 5-7 p.m. Oct. 16, 17 and 29 at the Homer High School Commons. The public is encouraged to come take part in the discussion and ask questions.\nAt Monday’s council meeting, an ordinance was introduced to take $50,165 from the general fund to carry out the requirements in city code for establishing improvement districts. This begins the process for figuring out the funding mechanism to gain natural gas in neighborhoods.\nIt establishes a budget for the HSAD process to pay for certified mailings to go out to each property owner and helps pay for public education.\nResident Larry Slone told the council he would like to see cost estimates for how much it will take to hook up. “I’m referring specifically to costs to get (the line) from the street to the home to the time you turn the gas on,” he said.\nCouncilman David Lewis said those kind of detailed break-down of costs have many variables and the city isn’t able to make estimates for home owners. “To get the pipeline from the street to the house to the blue flame, I don’t think the city can let you know those costs because there are so many variables. Businesses out there can give an estimate as to what it will cost. But it’s not the city’s job,” Lewis said.\nCity Manager Walt Wrede has told the council the administration considered working up estimates but shied away completely. “After much hand writing and concern we realized we really shouldn’t be doing that at all. The variables are so large,” depending on whether the house has electric heat, or an older boiler or a new one, Wrebe said.\nThe council also took action on its 2014 Capital Improvement Plan, which goes to Juneau and to the congressional delegation to request funding for projects. They passed a resolution lining up the projects according to priority:\n1. Harbor Improvement Revenue Bond Projects\n2. A new Port and Harbor Building\n3. Skyline Fire Station\n4. Pratt Museum New Facility and Site Redesign\n5. Homer Education and Recreation Center Upgrades\n6. Homer Tidal Energy Incubator Project\n7. Harbor Entrance Erosion Control\n8. Fire Engine 4 and Tanker 2 Refurbishment\n9. Public Safety Building\n10. Barge Mooring Facility\n11. Kachemak Drive Rehabilitation/Pathway\n12. Brush/Wildland Firefighting Truck\n13. Marine Ways Large Vessel Helot Facility\n14. Baycrest Overlook Gateway Project\n15. Water Storage/Distribution Improvements\nComments are closed"} -{"text": "onEnum,\n\t\tfireworksAPIBaseURL: fireworksAPIBaseURL,\n\t\tfireworksGatewayTarget: fireworksGatewayTarget,\n\t\tfireworksAPIExtraHeaders: fireworksAPIExtraHeaders,\n\t\tglobalCapacityClient: globalCapacityClient,\n\t\tavailableCapacityFromGlobalCapacityServer: availableCapacityFromGlobalCapacityServer,\n\t\tcontrolPlaneURL: strings.TrimSpace(controlPlaneURL),\n\t\tcontrolPlaneGatewaySecret: strings.TrimSpace(controlPlaneGatewaySecret),\n\t\t// regionBasedRuntime will be set after jobScheduler creation\n\t}\n\n\t// Create job scheduler with a wrapper function that calls the worker's method.\n\t// BIJ workflow gating must use the deployment-watcher persisted admission\n\t// decision only; lro-worker's capacity view is retained for legacy trainer\n\t// placement helpers but must not independently admit BIJs.\n\tjobScheduler := jobscheduler.NewJobScheduler(\n\t\tdb,\n\t\tw.GetAvailableCapacity,\n\t\tenvironment,\n\t\tjobscheduler.WithPersistedBatchInferenceAdmissionOnly(),\n\t)\n\tw.jobScheduler = jobScheduler\n\n\t// Create sessioned gateway client\n\tsessionedGatewayClient := sessionedgatewayclient.NewSessionedGatewayClient(db, gatewayClient)\n\n\t// Create base runtime spec (similar to deployment_watcher)\n\tbaseRuntime := statemachine.RuntimeRegionSpec{\n\t\tDatabase: db,\n\t\tGCS: gcs,\n\t\tEnvironment: environment,\n\t\tRefreshStates: nil, // LROWorker doesn't need refresh states\n\t\tFineTuningBillingTopicId: billingPubsubTopicId,\n\t\tSecretClient: secretClient,\n\t\tSessionedGatewayClient: sessionedGatewayClient,\n\t\tUnkeyClient: unkeyClient,\n\t\tUnkeyInternalApiId: unkeyInternalApiId,\n\t\tTrainingImagePostfix: trainingImagePostfix,\n\t\tDtsCloudrunURL: dtsCloudrunURL,\n\t\tGcpProjectID: gcpProjectID,\n\t}\n\n\t// Build runtime specs for each region (simplified for now)\n\truntimeRegionSpecs := make(map[gpb.Region]statemachine.RuntimeRegionSpec)\n\tfor region, k8sClient := range cm.Clients {\n\t\tif k8sClient == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Create region-specific runtime\n\t\tregionRuntime := baseRuntime\n\t\tregionRuntime.K8s = k8sClient.Interface\n\t\tregionRuntime.HelmClient = k8sClient.Client // ClusterClient embeds helm.Client\n\t\tregionRuntime.RegionId = region\n\t\tregionRuntime.AcceleratorTypes = makeAcceleratorTypeMap(region, acceleratorTypeToRegions)\n\t\tregionRuntime.ModelCacheUrl = modelCacheByRegion[region]\n\n\t\t// Set region-specific container images and paths based on cloud provider via helper\n\t\tregionRuntime = applyRegionOverrides(\n\t\t\tregionRuntime,\n\t\t\tregion,\n\t\t\ttrainingImagePostfix,\n\t\t\tfullParameterTrainingImagePostfix,\n\t\t\tcookbookFiretitanImagePostfix,\n\t\t\tllmDownloaderImageTag,\n\t\t\tbatchInferenceRunnerImageTag,\n\t\t\tuseHarborForImages,\n\t\t\tregionalCheckpointServiceConfig,\n\t\t)\n\n\t\truntimeRegionSpecs[region] = regionRuntime\n\t}\n\n\t// Create region-based runtime\n\tregionBasedRuntime := statemachine.NewRegionBasedRuntime(\n\t\truntimeRegionSpecs,\n\t\tgpb.Region(defaultRegionEnum),\n\t\tjobScheduler,\n\t)\n\t// Wire the DW client onto the runtime so trainer activities can reach\n\t// the global scheduler via runtime.GetDWClient(). May be nil if the\n\t// operator did not pass --deployment-watcher-target — the trainer\n\t// placement helper falls back to legacy lros.AutoPlacement in that case.\n\tregionBasedRuntime.DWClient = dwClient\n\tregionBasedRuntime.ClusterRegistry = clusterRegistry\n\n\t// Create a specific RegionBasedRuntime for evaluations, using only VIRGINIA_1\n\tgcpEvaluationImage := fmt.Sprintf(\"us-docker.pkg.dev/fw-ai-cp-prod/inference/fire-eval:%s\", evaluationImageTag)\n\tevalRuntime := runtimeRegionSpecs[gpb.Region_US_VIRGINIA_1].UpdatedWith(statemachine.RuntimeRegionSpec{\n\t\tContainerImage: gcpEvaluationImage,\n\t})\n\tevaluationRuntimeRegionSpecs := map[gpb.Region]statemachine.RuntimeRegionSpec{\n\t\tgpb.Region_US_VIRGINIA_1: evalRuntime, // evalRuntime is already configured for Virginia\n\t}\n\tevaluationRegionBasedRuntime := statemachine.NewRegionBasedRuntime(\n\t\tevaluationRuntimeRegionSpecs,\n\t\tgpb.Region_US_VIRGINIA_1, // Default region for evaluation jobs\n\t\tjobScheduler,\n\t)\n\tevaluationRegionBasedRuntime.DWClient = dwClient\n\tevaluationRegionBasedRuntime.ClusterRegistry = clusterRegistry\n\n\tw.regionBasedRuntime = regionBasedRuntime\n\tw.evaluationRegionBasedRuntime = evaluationRegionBasedRuntime\n\n\t// Register workflows and activities\n\tw.registerWorkflowsAndActivities()\n\n\treturn w, nil\n}\n\n// Start starts the worker\nfunc (w *LROWorker) Start(ctx context.Context) error {\n\tlog.Info().\n\t\tStr(\"task_queue\", w.taskQueue).\n\t\tMsg(\"Starting LRO Temporal worker\")\n\n\tif w.jobScheduler != nil {\n\t\tgo w.runSchedulerReconcileLoop(ctx)\n\t}\n\n\t// Run the worker (this blocks)\n\terr := w.temporalWorker.Run(worker.InterruptCh())\n\tif err != nil {\n\t\treturn fmt.Errorf(\"worker failed: %w\", err)\n\t}\n\n\treturn nil\n}\n\nfunc (w *LROWorker) runSchedulerReconcileLoop(ctx context.Context) {\n\tticker := time.NewTicker(jobscheduler.SchedulerReconcileInterval)\n\tdefer ticker.Stop()\n\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.D"} -{"text": "Obama to propose a “Buffett tax” while pushing jobs plan\nposted at 12:00 pm on September 18, 2011 by Ed Morrissey\nTalk about your mixed messages! While Barack Obama goes on the campaign trail trying desperately to drum up support for a jobs plan that will cost $450 billion, the President will also deliver at the same time his plan to reduce the spiraling federal deficit and slow the runaway growth of the national debt. And while claiming that he’s not engaging in class warfare, Obama wants to target a new tax at one segment of society in order to protect and amplify his redistributionist policies. Care to guess what that segment of society is?\nPresident Barack Obama, in a populist step designed to appeal to voters, will propose a “Buffett Tax” on people making more than $1 million a year as part of his deficit recommendations to Congress on Monday.\nSuch a proposal, among suggestions to a congressional supercommittee expected to seek up to $3 trillion in deficit savings over 10 years, would appeal to his Democratic base ahead of the 2012 election but likely not raise much in revenues.\nWhite House Communications Director Dan Pfeiffer said in a tweet on Saturday the tax would act as “a kind of AMT” (Alternative Minimum Tax) aimed at ensuring millionaires pay at least as much tax as middle-class families.\nThe “Buffett Tax” refers to billionaire U.S. investor Warren Buffett, who wrote earlier this year that rich people like him often pay less in tax than those who work for them due to loopholes in the tax code, and can afford to pay more.\nThe AMT? Say, isn’t that the “millionaire’s tax” that Congress passed decades ago that now has to be “patched” each year so as not to hammer middle-class families? What a great model to use for the new “millionaire’s tax”! And inevitably, it won’t generate “much in revenues,” which I’ll explain in a moment.\nBesides, if Warren Buffett wants to pay taxes, he can start with the billion dollars his company already owes the federal government.\nLet’s take a year-long look at the tax policy of this administration. Before the midterm elections, Obama and Democrats refused to produce a budget because in doing so, they would have had to address the expiring Bush-era income tax rates. In the lame-duck session immediately afterward, Democrats pressed to let the Bush tax rates expire, which would have created the biggest tax increase in history, or at least the top rates that would have hiked taxes on anyone earning $250,000 a year or more. By December, Obama agreed to keep the rates as they are for the next two years — in order to get the economy going and job creation restarted.\nYet Obama immediately denounced his own plan and insisted that he would fight to raise those same rates in 2013, effectively killing any stimulating effect the deal might have had. (Maintaining status quo was less about stimulation and more about avoiding damage, of course.) Now, just as Obama wants to promote a jobs bill that contains a half-priced rehash of the Porkulus failure of 2009, he announces that he wants to seize more capital from the very people who we need to put capital into private-sector investments to create jobs. This is especially true of this so-called Buffett Tax, which targets the very income derived from capital risk:\nThe Buffett Tax could help energize Obama’s base by highlighting a feature of the U.S. tax code that allows the super rich to pay lower rates of tax than less wealthy Americans because the bulk of their income is capital gains, dividends and the ‘carried interest’ earnings of hedge fund managers.\nWhat happens when the cost of risk equals the cost of relatively risk-free income? People stop taking risks and shelter their capital. When capital stops being risked in new ventures, economic growth slows and stops, jobs either never get created or start disappearing, and we get stagnation or recession. That capital doesn’t sit on the sidelines forever, either; eventually capital moves to other markets, which means that even when conditions improve, we won’t see that capital return to our markets. On top of that, the vacillation on tax policy and hostility towards capital holders amplifies the incentives to move capital out of the US.\nThat’s why the “new AMT” won’t end up generating anywhere near what the Obama administration will claim. It’s a nakedly political act designed to bolster Obama’s class-warfare demagoguery and credentials, and it’s a policy that will inevitably lead to a deeper economic crisis in the US."} -{"text": "If you are bitten by an animal with rabies and don’t get treated quickly, the disease is likely to be fatal. Same goes for your household pets.\nNorth Bergen and Guttenberg will provide free rabies vaccines on May 15.\n“The importance of getting your [pet] vaccinated against rabies falls into the greater interest of protecting the public health of the community as well as the health and welfare of [your pet] in the event either is exposed to a rabid animal,” said Guttenberg Code Enforcement Officer Nick Rivelli.\nRaccoons, skunks, and groundhogs are the animals that get the disease most often, but it can infect any warm-blooded creature, including household pets. Rabid animals tend to be more aggressive and may appear disoriented. If an infected animal is spotted, it will be captured and observed for 10 days to confirm that it does not have the virus. It will be euthanized if tested positive for the virus.\n“He was like a shark on the end of a fishing pole.” – Rich Censullo\n“To date less than 140 documented cases of human survival from clinical rabies have been reported, and only two have not had a history of pre-or-post exposure prophylaxis,” says the CDC website.\nFree vaccinations in North Bergen\nNorth Bergen’s free rabies clinic will be Wednesday, May 15 from 7 to 8 p.m. at 1812 43rd Street on the corner of Tonnelle Avenue. Licensed veterinarian Dr. Carlos Triana of the Summit Animal Clinic in Union City will vaccinate pets. Pet owners are urged to bring their dogs on a leash and be able to place their pet on the examining table. While rabies shots are usually thought of only for dogs, felines can also be affected by the virus.\n“Aside from the fact that it’s a very contagious viral disease, it’s very easily prevented,” said North Bergen Health Director Janet Castro. “Prevention is the best method for saving your dog’s life and a human life.”\nNormally, residents might have to pay a veterinarian the cost of the rabies vaccination fee, which normally ranges from $25 to $85, and an office visit charge. But the city-sponsored shots are free.\nFor more information about North Bergen’s free rabies clinic, call (201) 392-2084.\nGuttenberg clinic schedule\nGuttenberg will provide free rabies shots also on Wednesday, May 15 from 6 to 9 p.m. at Town Hall, 6808 Park Ave. Licensed veterinarian Dr. John Hatch from the Secaucus Animal Hospital will vaccinate cats or dogs.\n“The vaccine itself is provided by the state of New Jersey free of charge, thus making it readily available to the community as well as providing dog owners a no-excuse opportunity to comply with the law at no cost to them,” said Rivelli. “In order to have a valid dog license, owners are required to have their dog up to date with the rabies vaccination. More importantly, the rabies vaccination ensures the safety of the dog and community in the event of a bite by animal which may be infected with rabies.”\nFor additional information call (201) 868-2315 at either extension 120 or 149.\nRabid raccoon captured\nLast September, former North Bergen Health Director Rich Censullo caught a rabid raccoon near an area where children were getting out of school. Censullo was lucky that the animal did not try to bite him although he did bite a car tire.\n“[The raccoon] backed into a parked car and automatically turned around to bite the tire,” said Censullo. “He was like a shark on the end of a fishing pole. I was worried that he would run in the direction of the children and lash out at the children.”\nThe raccoon was brought to Dr. Triana. Potentially rabid animals are brought to him to be observed for 10 days to see if they show more symptoms. However, this raccoon was put to sleep after a few days, after officials received no reports of it having bitten anyone.\nThe animal’s body was sent to Trenton, where tests showed it did, in fact, have the disease.\nHe emphasized that anyone who sees a sick or injured animal should contact authorities immediately.\n“Every city Health Department has an animal control facility that is available via 911,” said Censullo. “The police dispatchers all have the number for animal control so they can reach an animal control officer all the time. The best thing that people can do is stay as far away from the animal as possible. Any warm blooded mammal can contract rabies.”\nTo obtain more information on rabies, visit the upcoming free rabies event, speak with your veterinarian, the health department, the NJ Department of Health at http://nj.gov/health/cd/rabies/index.shtml, or the Center for Disease Control and Prevention at www.cdc.gov."} -{"text": "one():\n\t\t\treturn\n\t\tcase <-ticker.C:\n\t\t\tif err := w.jobScheduler.ReconcileState(ctx); err != nil {\n\t\t\t\tlog.Error().Err(err).Msg(\"Error reconciling job scheduler state\")\n\t\t\t}\n\t\t}\n\t}\n}\n\n// registerWorkflowsAndActivities registers all workflows and activities based on worker type\nfunc (w *LROWorker) registerWorkflowsAndActivities() {\n\tswitch w.workerType {\n\tcase WorkerTypeLLMIntegration:\n\t\tw.registerLLMIntegrationWorkflows()\n\tdefault:\n\t\t// Default to optimizer workflows (includes all training/optimization workflows)\n\t\tw.registerOptimizerWorkflows()\n\t}\n}\n\n// registerLLMIntegrationWorkflows registers workflows for LLM integration worker\nfunc (w *LROWorker) registerLLMIntegrationWorkflows() {\n\tlog.Info().Msg(\"Registering LLM integration workflows and activities\")\n\n\t// Create deployment refresh activities\n\t// Note: adminGatewayClient and promAPI may be nil, in which case canary tests are skipped\n\tsessionedGateway := sessionedgatewayclient.NewSessionedGatewayClient(w.db, w.gatewayClient)\n\tdeploymentRefreshActivities := activities.NewDeploymentRefreshActivities(\n\t\tw.db,\n\t\tsessionedGateway,\n\t\tw.adminGatewayClient, // May be nil - canary test will be skipped\n\t\tw.promAPI, // May be nil - canary test will be skipped\n\t)\n\n\t// Register deployment refresh activities\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.ScanDeployments,\n\t\tactivity.RegisterOptions{Name: \"ScanDeployments\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.CloneDeployment,\n\t\tactivity.RegisterOptions{Name: \"CloneDeployment\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.VerifyRefreshDeployment,\n\t\tactivity.RegisterOptions{Name: \"VerifyRefreshDeployment\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.GetDeploymentState,\n\t\tactivity.RegisterOptions{Name: \"GetDeploymentState\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RollbackDeployment,\n\t\tactivity.RegisterOptions{Name: \"RollbackDeployment\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunEvalTests,\n\t\tactivity.RegisterOptions{Name: \"RunEvalTests\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunFormatterTests,\n\t\tactivity.RegisterOptions{Name: \"RunFormatterTests\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunFormatterVerdict,\n\t\tactivity.RegisterOptions{Name: \"RunFormatterVerdict\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunKLDInference,\n\t\tactivity.RegisterOptions{Name: \"RunKLDInference\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunKLDVerdict,\n\t\tactivity.RegisterOptions{Name: \"RunKLDVerdict\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.DeleteDeployment,\n\t\tactivity.RegisterOptions{Name: \"DeleteDeployment\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.ApplyRefresh,\n\t\tactivity.RegisterOptions{Name: \"ApplyRefresh\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.CompareEvalScores,\n\t\tactivity.RegisterOptions{Name: \"CompareEvalScores\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunCanaryTest,\n\t\tactivity.RegisterOptions{Name: \"RunCanaryTest\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunLoadTestComparison,\n\t\tactivity.RegisterOptions{Name: \"RunLoadTestComparison\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunBaselineLoadTest,\n\t\tactivity.RegisterOptions{Name: \"RunBaselineLoadTest\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.RunTrafficMetricsTest,\n\t\tactivity.RegisterOptions{Name: \"RunTrafficMetricsTest\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.GenerateRunReport,\n\t\tactivity.RegisterOptions{Name: \"GenerateRunReport\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.InvestigateAndCommentOnFailure,\n\t\tactivity.RegisterOptions{Name: \"InvestigateAndCommentOnFailure\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.SnapshotOriginalDeployment,\n\t\tactivity.RegisterOptions{Name: \"SnapshotOriginalDeployment\"},\n\t)\n\tw.temporalWorker.RegisterActivityWithOptions(\n\t\tdeploymentRefreshActivities.MonitorRollout,\n\t\tactivity.RegisterOptions{Name: \"MonitorRollout\"},\n\t)\n\n\t// Register deployment refresh workflow with AutoUpgrade versioning so it is\n\t// not pinned to the build ID it started on. These runs are short-lived but\n\t// must stay queryable (GetRefreshRun / ListRefreshTargets / direct apply all\n\t// QueryWorkflow) after the worker rolls to a new version; with the worker's\n\t// default PINNED behavior, queries fail with \"no poller seen for task queue\"\n\t// once the originating version scales down. The workflow already"} -{"text": "TOKYO Japanese shares powered to nearly 5-year highs and determined sellers just failed to breach the symbolic 100 yen/dollar level on Monday, even though the Bank of Japan's bold reflationary plans were endorsed by the Group of 20 gatherings in Washington.\nWhile oil and gold rebounded after last week's a sharp sell-off, investors remained wary of volatility due to uncertain global growth prospects, hitting industrial metals such as copper.\nEuropean stock markets were seen recovering, with financial spreadbetters predicting London's FTSE 100, Paris's CAC-40 and Frankfurt's DAX would open between 0.4 to 0.8 percent higher.\nU.S. stock futures were up 0.5 percent to suggest a firm Wall Street open.\nIn a communique after a two-day meeting on Friday, the G20 simply said it would be \"mindful\" of possible side-effects from extended periods of monetary stimulus, without singling out Japan as some had feared.\nJapan's central bank governor and finance minister reiterated on Monday that the G20 countries accepted that Japan's monetary easing is not aimed at weakening the yen.\n\"Following the G20, players feel comfortable selling the yen further, and it is just a matter of timing when the symbolic 100 yen level is hit,\" said Yuji Saito, director of foreign exchange at Credit Agricole in Tokyo.\nThe dollar was at 99.71 yen, off an intraday high of 99.89, just below a four-year peak of 99.95 hit on April 11. If heavy option barriers lined up around 100 yen to the dollar were to be broken, it could trigger stop-loss buying and lift the dollar up to the next target, a 2009 high of 101.45, he said.\nWith the euro zone economy looking fragile, the U.S. dollar looked set to strengthen relative to other major currencies. How far that would go depended on U.S. economic data rather than factors from Japan, Saito added.\nJapan's Nikkei stock average surged as much as 2.2 percent to nearly five-year highs, cheering the G20 outcome as a clear trend for the yen to weaken -- improving prospects for Japanese corporate earnings.\nThe rest of Asia fared far less well, with the MSCI's broadest index of Asia-Pacific shares outside Japan inching up 0.2 percent, wary of this week's data from China and the United States.\nAustralian shares rose 0.5 percent while South Korean shares advanced 0.7 percent.\n\"Investors are heading into this week cautiously, as the market lacks a clear direction for the moment,\" said Biyi Cheng, head of dealing Asia Pacific at City Index in Sydney.\nFISCAL STRAINS HURT GROWTH\nFinance leaders of the G20 advanced and emerging economies also edged away from a long-running drive toward official austerity in rich nations, rejecting the idea of setting hard targets for reducing national debt, revealing their worries over a sluggish global recovery.\nThat concern was highlighted on Saturday when the International Monetary Fund's steering committee said at the end of its spring meetings that monetary policy alone was not enough to restore confidence. It urged countries to take extra measures to reinvigorate growth and create jobs.\nCommodities recovered some ground after last week's sharp sell-offs, but markets may remain vulnerable ahead of China's HSBC flash manufacturing PMI for April due on Tuesday.\n\"We have our doubts whether this rebound can continue much further in the absence of good economic data. In this context, US economic numbers including Q1 GDP data will be watched very closely this week,\" Credit Suisse said in a research note.\nU.S. crude rose 0.6 percent to $88.51 a barrel and Brent crude rose 0.3 percent to recover $99.96.\nLondon copper fell 0.9 percent to $6,924 a tonne.\nGold rose more than 1 percent, pushing cash bullion up as high as $1,423.81 an ounce, well two-year low of $1,321.35 touched last week.\nU.S. gold futures rose as high as $1,423.80, but sentiment remains shaky after steady outflows from exchange-traded funds trimmed holdings to their lowest in three years.\nThe euro inched down 0.1 percent to $1.3066, under pressure a batch of euro zone economic reports due this week, including consumer confidence later on Monday and the purchasing managers' index on Tuesday.\nItaly's re-election of a president on Saturday has raised the prospect of an end to the two months of political stalemate that followed a general election, helping to give some support to the euro.\n(Additional reporting by Maggie Lu Yueyang in Sydney and Melanie Burton in Singapore; Editing by Eric Meijer)\nTrending On Reuters\nState Bank of India (SBI) reported its sharpest quarterly profit drop in five years on Friday but cheered investors by saying that fewer than feared of its loans risked turning sour. Read"} -{"text": "MOSCOW Russia enacted a new treason law on Wednesday, alarming opponents of President Vladimir Putin who fear he will use it to silence critics and - in a reminder of the Soviet past - put at risk almost anyone who associates with foreigners.\nThe law broadens the definition of treason to allow Russians representing international organisations to face the charge, as well as citizens working for foreign states and bodies.\nPutin signed the legislation on Tuesday which took effect on Wednesday when it was published in the official gazette, Rossiyskaya Gazeta, even though he had promised on Monday to review it.\nPolitical opponents and rights activists say the law is the latest in a series intended to crack down on the opposition and reduce foreign influence which have been introduced since Putin returned to the Kremlin in May for a six-year third term.\nLyudmila Alexeyeva, 85, a former Soviet dissident and veteran human rights activist, drew comparisons with the darkest days under dictator Josef Stalin, who died in 1953.\n\"It's an attempt to return not just to Soviet times but to the Stalin era, when any conversation with a foreigner was seen as a potential threat to the state,\" she said, adding that the law would probably be used selectively against Kremlin critics and others \"who irritate the authorities\".\nDmitry Oreshkin, a political analyst sympathetic with anti-Putin protests this year, said the motivation behind the law was that \"the state is more important than its citizens, so there must be as much control over citizens as possible\".\nThe law was backed by the Federal Security Service (FSB), the main successor of the Soviet KGB secret police. It landed on the desk of Putin, who was once a KGB officer, after being approved by both houses of parliament in nine days last month.\nThe FSB, in a rare public comment, was quoted by state-run news agency Itar-Tass as saying the law had been unchanged since the 1960s and needed updating as \"foreign intelligence agencies' methods and tactics for gathering information have changed\".\nPutin attacked the United States during campaigning for the presidential election in March, and Russian officials have said the law is needed to help prevent foreign governments using organisations in Russia to gather state secrets.\n\"Citizens recruited by international organisations acting against the country's interests will also be considered traitors,\" Rossiyskaya Gazeta said in a commentary on its website.\nPutin has frequently accused Western nations of trying to undermine Russia's security. He has suggested they are using non-governmental organisations to weaken the nuclear-armed state, which was a Cold War enemy of the United States,\nMoscow ordered the U.S. Agency for International Development (USAID) to cease its operations in Russia in October, accusing it of seeking to influence elections.\nIn July, Putin signed a law requiring foreign-funded NGOs deemed to be engaging in political activity to register as \"foreign agents\". His critics say other legislation is also aimed at silencing opponents.\nThe United States and the European Union have criticised the laws, and expressed concern about criminal charges laid against several opposition leaders in the last few months.\nDuring his election campaign, Putin faced protests which at times drew tens of thousands of people into Moscow's streets, and he accused Washington of encouraging the demonstrators.\nThe maximum sentence for high treason remains 20 years, but the new legislation introduces prison terms of up to eight years for Russians acquiring state secrets in certain ways, even if they are not passed to foreigners.\nIt broadens the actions that can attract treason charges to include giving \"financial, material, technical, consultative or other aid\" to a government or organisation deemed to be seeking to undermine Russian security.\nThose changes, as well as the removal of the stipulation that actions must be aimed against Russia's \"external\" security to be considered treasonous, have raised concerns the law could be applied broadly to punish government opponents.\nAt a meeting of his human rights council on Monday, Putin listened to a retired Constitutional Court judge's concerns about the legislation, which she said did not require authorities to prove a suspect had damaged state security.\nBut although Putin said he would look again at the law, his spokesman, Dmitry Peskov, said he signed it a day later.\n\"It's not the first time Putin has said the right words while slowly tightening the screws,\" Alexeyeva said.\nPeskov said Putin could still seek to amend the law if it was found in practice to curtail citizens' rights, but critics were sceptical. \"It's high time to understand one should not pay attention to what Putin says,\" said Dmitry Oreshkin, an opposition-minded political analyst.\nPutin was increasingly turning to \"Soviet values\" that put the state above the rights of citizens to maintain his grip, he said. \"He could not fail to sign it because the FSB would tell him: 'In that case, we cannot ensure control',\" Oreshkin said. (Editing by Timothy Heritage and David Stamp)\nTrending On Reuters\nDonald Trump brought his message of walls and deportations to the doorstep of America’s busiest border crossing on Friday as the presumptive Republican presidential nominee greeted supporters in San Diego, amid one of the largest counter-protests organized against him. Full Article | Video\n- Rio de Janeiro police investigate alleged gang rape that has shocked Brazilians\n- Putin warns Romania, Poland - you may now be in Russia's cross-hairs\n- U.N. urges Syrian government to stop blocking aid deliveries\n- No new signal from EgyptAir jet since day of crash, search intensifies\n- Obama mourns dead in Hiroshima, calls for world without nuclear arms"} -{"text": " gates\n\t// non-deterministic changes behind workflow.GetVersion, so it is replay-safe\n\t// across versions.\n\tw.temporalWorker.RegisterWorkflowWithOptions(\n\t\tworkflows.DeploymentRefreshWorkflow,\n\t\tworkflow.RegisterOptions{\n\t\t\tName: \"DeploymentRefreshWorkflow\",\n\t\t\tVersioningBehavior: workflow.VersioningBehaviorAutoUpgrade,\n\t\t},\n\t)\n\t// Applies an already-validated refresh directly to the original deployment,\n\t// triggered by the Jarvis \"Apply Upgrade\" button. Distinct workflow type so\n\t// it stays out of the Refresh Runs list.\n\tw.temporalWorker.RegisterWorkflowWithOptions(\n\t\tworkflows.DeploymentApplyWorkflow,\n\t\tworkflow.RegisterOptions{\n\t\t\tName: \"DeploymentApplyWorkflow\",\n\t\t\tVersioningBehavior: workflow.VersioningBehaviorAutoUpgrade,\n\t\t},\n\t)\n\n\t// Register deployment experiment workflow and activities\n\tw.RegisterDeploymentExperiment()\n}\n\n// registerOptimizerWorkflows registers workflows for optimizer worker (default)\nfunc (w *LROWorker) registerOptimizerWorkflows() {\n\tlog.Info().Msg(\"Registering optimizer workflows and activities\")\n\n\t// Create activities with dependencies\n\t// Legacy activity - kept for backward compatibility but will be removed\n\t// dsValidationActivity := activities.NewDatasetValidationActivity(w.db, w.gatewayClient)\n\n\t// New dataset validation activities for the refactored workflow\n\tcreateDatasetValidationJobActivity := activities.NewCreateDatasetValidationJobActivity(w.db, w.regionBasedRuntime)\n\tinterpretDatasetValidationResultsActivity := activities.NewInterpretDatasetValidationResultsActivity(w.regionBasedRuntime)\n\n\t// AWS credentials resolution activity\n\tresolveAwsCredentialsActivity := activities.NewResolveAwsCredentialsActivity(w.regionBasedRuntime)\n\n\t// Azure credentials resolution activity\n\tresolveAzureCredentialsActivity := activities.NewResolveAzureCredentialsActivity(w.regionBasedRuntime)\n\n\tdatasetTransformationActivity := activities.NewDatasetTransformationActivity(w.db, w.gatewayClient)\n\n\t// Create eagle activities\n\thiddenStatesGenActivity := activities.NewHiddenStatesGenActivity(w.db, w.eagleBaseUrl, w.regionBasedRuntime)\n\teagleTrainingActivity := activities.NewEagleTrainingActivity(w.db, w.gcs, w.regionBasedRuntime)\n\teagleOnlineTrainerActivity := activities.NewEagleOnlineTrainerActivity(w.db, w.gcs, w.eagleBaseUrl, w.regionBasedRuntime, w.clusterRegistry)\n\teagleDraftModelActivity := activities.NewEagleDraftModelActivity(w.db, w.gcs, w.regionBasedRuntime)\n\n\tdatasetQueryActivity := activities.NewDatasetQueryActivity(w.db)\n\trlorTrainerActivity := activities.ConfigureRlorTrainerActivityControlPlaneResolver(\n\t\tactivities.NewRlorTrainerActivity(w.db, w.regionBasedRuntime),\n\t\tw.controlPlaneURL,\n\t\tw.controlPlaneGatewaySecret,\n\t)\n\n\t// Create service mode activity for StatefulSet-based trainers\n\trlorServiceActivity := activities.NewRlorTrainerServiceActivityWithConfig(\n\t\tw.db,\n\t\tw.regionBasedRuntime,\n\t\tw.helmClientProvider,\n\t\tw.trainerHelmChart,\n\t\tw.trainerHelmChartImageVersion,\n\t\tw.titanTrainerHelmChartImageVersion,\n\t)\n\trlorServiceActivity = activities.ConfigureRlorTrainerServiceActivityControlPlaneResolver(\n\t\trlorServiceActivity,\n\t\tw.controlPlaneURL,\n\t\tw.controlPlaneGatewaySecret,\n\t)\n\n\t// Get default k8s client for CreateK8sAndWaitActivity (used for non-region-specific jobs like RLOR)\n\tdefaultK8sClient, err := w.regionBasedRuntime.GetK8sForRegion(gpb.Region_US_VIRGINIA_1)\n\tif err != nil {\n\t\tlog.Error().Err(err).Msg(\"Failed to get default k8s client for CreateK8sAndWaitActivity\")\n\t\tdefaultK8sClient = nil\n\t}\n\tcreateK8sActivity := activities.NewCreateK8sAndWaitActivity(w.db, defaultK8sClient)\n\n\t// Create generic poll activity\n\tpollK8sJobActivity := activities.NewPollK8sJobActivity(w.db, w.regionBasedRuntime)\n\n\t// FIR2-1593: per-runtime poller for the managed RFT E2B sandbox path.\n\t// Registered alongside PollK8sJob so TrainingJobWorkflow can dispatch\n\t// to either activity based on the resolved runtime mode.\n\tpollE2BOrchestratorJobActivity := activities.NewPollE2BOrchestratorJobActivity(w.db, w.regionBasedRuntime)\n\n\t// Create billing activity\n\tbillingActivity := activities.NewBillingActivity(w.db, w.regionBasedRuntime)\n\n\t// Create cleanup activity\n\tcleanupActivity := activities.NewCleanupActivity(w.db, w.regionBasedRuntime)\n\n\t// Create trainer-placement cleanup activity (M2.4). Backup hook that\n\t// runs from each trainer workflow's defer block to release a schedule\n\t// reservation row in case the inline CommitTrainerJob call was skipped\n\t// (workflow cancel, panic, etc.). Idempotent and best-effort — failures\n\t// are absorbed by the orphan sweeper.\n\tcleanupTrainerPlacementActivity := activities.NewCleanupTrainerPlacementActivity(w.regionBasedRuntime)\n\n\t// Create deploy model version activity\n\tdeployModelVersionActivity := activities.NewDeployModelVersionActivity(w.db, w.regionBasedRuntime)\n\n\t// Create promote checkpoint activity\n\tpromoteCheckpointActivity := activities.NewPromoteCheckpointActivity(w.db, w.gcs, w.dwClient)\n\n\t// Register activities\n\t// Legacy activ"} -{"text": "From the Wires\nCancana Signs Exclusive Agreement to Purchase 100% of Rio Madeira\nBy: Marketwired .\nFeb. 8, 2013 06:16 AM\nVANCOUVER, CANADA -- (Marketwire) -- 02/08/13 -- Cancana Resources Corp. (TSX VENTURE:CNY) (the \"Company\" or \"Cancana\") is pleased to announce it has entered into an exclusive Memorandum of Understanding, (\"MOU\"), to purchase Rio Madeira Comercio Importacao E Exportacao De Minerios, (\"Rio Madeira\") in the State of Rondonia, Brazil.\nThe exclusive MOU that has been agreed between Cancana and Rio Madeira is for the 100% acquisition of the Rio Madeira corporate entity and all of its associated assets, mineral claims and operations. It is subject to the successful completion of due diligence and financing, which expires on April 30, 2013.\nRio Madeira is a producing Manganese mine operation, producing lump ore of varying sizes and is located adjacent to, and mainly contiguous with, Cancana's Manganese claims. Rio Madeira holds title to 15 mineral claims that total approximately 62,000 hectares in size. Also included are 3 full mining licenses known as a \"Lavra\".\nCancana and Rio Madeira have commenced establishment of due diligence requirements and these are underway. This will include the review of all financial and operational aspects of Rio Madeira as well as a geo technical review of the mineral claims held. Present grades of Manganese produced are in the 50% plus range according to Rio Madeira, these are similar to the grades Cancana has reported in the two recent N.I. 43-101 reports published for its Valdirao project known as \"241NC\".\nIn the past year Rio Madeira has made substantial improvements to their production and processing facilities. These include the streamlining of the initial ore processing, screening, washing and sorting, as well as the ability to commence the recovery of the \"fines\", or granular Manganese ore. In turn this affords Rio Madeira the ability to access the fertilizer industry as well as the steel and Ferro Manganese markets.\nAndrew Male, President & CEO of Cancana, commented; \"We are very pleased to have signed an MOU with the owners of Rio Madeira. During the last 7 days I have visited their production plant in Espigao, and I am very encouraged by the progress that Rio Madeira has made with ongoing modifications and upgrades to their processing facilities. As we are completing the due diligence of Rio Madeira we will then concurrently begin to seek the acquisition financing required to complete the purchase. Having maintained a good ongoing relationship with the partners of Rio Madeira since late 2010, when we originally tried to establish a partnership with them, has been key in successfully obtaining this agreement for a 100% acquisition.\"\nCancana Resources Corp. is an exploration stage company with assets in Brazil and Canada. The Company has been seeking projects that expand its resource base and provide for near term production and revenue. All available resource reports and information on the Company's properties are located on the Company website: www.cancanacorp.com.\nIssued on behalf of the Board of Directors of Cancana Resources Corp.\nAndrew Male, CEO and Director\nThe information in this news release may contain forward-looking statements within the meaning of Section 27A of the Securities Act of 1933 and Section 21E of the Securities Exchange Act of 1934 and applicable Canadian securities laws. When used in this release, words such as \"estimate\", \"expect\", \"anticipate\" and \"believe\" as well as similar expressions are intended to identify forward-looking statements. Such statements are used to describe management's future plans, objects, and goals for the Company and therefore involve inherent risks and uncertainties. The reader is cautioned that actual results, performance or achievements may be materially different from those implied or expressed in such statements, which speak only as of the date, the statements were made. The Company does not update forward-looking statements continually as conditions change. We seek safe harbour.\nNeither the TSX Venture Exchange nor its Regulation Service Provider (as that term is defined in the policies of the TSX Venture Exchange) accepts responsibility for the adequacy or accuracy of this release.\nSOA World Latest Stories\nSubscribe to the World's Most Powerful Newsletters\nSubscribe to Our Rss Feeds & Get Your SYS-CON News Live!\nSYS-CON Featured Whitepapers\nMost Read This Week"} -{"text": "As part of the blog tour for The Twisted Tragedy of Miss Natalie Stewart, I am happy to have the author stop by for a guest post, and a giveaway along with my review!\n\"The Twisted Tragedy of Miss Natalie Stewart\"\nPublisher: Sourcebooks Fire\nRelease Date: Nov 1, 2012\nSource: sent by publisher\nMy Rating: 4.5 of 5 Stars\nSummary from goodreads.com:\nFor Natalie Stewart, a normal life has never seemed so far away. Her only solace, Lord Jonathan Denbury, is wanted for murder. To clear his name, Denbury must return to England and assume the role of his demon doppelganger. But Natalie begins to doubt his true motives, especially as a new gentleman begins whispering in her ear. Natalie and Denbury may be able to visit each other in their dreams, but they can't escape the darkening shadows. Amid spontaneous explosions, friends turned enemies and dangerous secrets revealed, there's still a demon who has Natalie's scent, and someone is trying to resurrect the ultimate evil.\nThis book is a great mix of historical, mystery, romance, and good deal of creepiness. I really enjoyed how unique this story is. The interesting and new story combined with the great characters really kept me turning the pages.\nI haven't read the first book in the series, but wow, I really want to now. I want to see how Natalie and Jonathon met and fell in love, and I'd really love to see how his being trapped in a painting played out.\nI wasn't sure about the demon angle to the story, but it ended up not being so bad for me, and I'm scared easily. It was more of a gothic, creepy tale, instead of shocking horror. Perhaps the fact that it was a historical story made the scary parts more gothic in tone and feel. Some of the dastardly plots reminded me of Frankenstein, which was another gothic, not horrifying, story.\nMain Characters: 5/5\nSupporting Characters: 4/5\nBottom Line: A great story with something for everyone, and the vivid cast of characters makes the story complete.\nNow, I'd like to welcome Leanna Renee Hieber to In the Hammock for a guest post!\nby Leanna Renee Hieber\nIt’s no secret that bestselling author Leanna acts, writes, and even combines the two to create a play. Leanna describes what it’s like to be a working actress while also making a bestseller book.\nI wear many different hats. And I don’t just mean cute little Victorian hats, though I do have quite a collection. I’ve always been a Jack of All Trades and it’s my varying interests that have kept me busy, employed in the arts and happy in always having a project or two to work on. The trick to doing anything well is time and discipline, it’s very hard to juggle theatrical pursuits and writing and promoting your books full time. I have to pick and choose and shift focus. While I was a full time professional actress on stage in various regional theatre productions around the country, my writing took a back seat. Today my writing is at the foreground and I do theatrical and/or film projects sporadically. The ability to shift focus from one priority to another depending on deadlines is a skill I’ve been trying to sharpen forever. The biggest challenge is self-discipline of one’s own time. It’s something I struggle with day in and day out. Storytelling is at the core of all my interests, and while I’m very selective now about the stories I tell and the mediums I use to tell them, I’m blessed to have several different avenues to pursue the stories that intrigue me. One of the most fascinating ways that my worlds have blended is in adapting my first novel into a musical theatre production with Broadway talent on board. My time as an actress and brief stints as a playwright made it easier for the production company behind the musical adaptation of The Strangely Beautiful Tale of Miss Percy Parker to approach me to be on the collaboration team. I’m uniquely suited as having experience in all these fields to weave a story together in an entirely new medium, a show. And it’s that process of adaptation and collaboration that then allows me to have fresh insights and new tricks to make an engaging story come to life when I return to my novels, such as THE TWISTED TRAGEDY OF MISS NATALIE STEWART.\nThe publicist has generously provided a copy of \"The Twisted Tragedy of Miss Natalie Stewart\" for a lucky follower of my blog!\nAll you have to do is follow my blog publicly and fill out the Rafflecopter form below. Please follow publicly or I can't tell that you are following :)\n- US/CAN only\n- Must be a follower to enter\n- Books will be mailed out by the publisher\n- Must be 18 or over\n- Ends Sun Dec 2Thanks to everyone for entering! Good luck!"} -{"text": "ity - commented out as it's replaced by the new workflow\n\t// w.temporalWorker.RegisterActivity(dsValidationActivity.RunDatasetValidation)\n\n\t// Register new dataset validation activities\n\tw.temporalWorker.RegisterActivity(createDatasetValidationJobActivity.CreateDatasetValidationJob)\n\tw.temporalWorker.RegisterActivity(interpretDatasetValidationResultsActivity.InterpretDatasetValidationResults)\n\tw.temporalWorker.RegisterActivity(datasetTransformationActivity.RunDatasetTransformation)\n\tw.temporalWorker.RegisterActivity(resolveAwsCredentialsActivity.ResolveAwsCredentials)\n\tw.temporalWorker.RegisterActivity(resolveAzureCredentialsActivity.ResolveAzureCredentials)\n\tw.temporalWorker.RegisterActivity(datasetQueryActivity.QueryDataset)\n\tw.temporalWorker.RegisterActivity(hiddenStatesGenActivity.CreateHiddenStatesGenJob)\n\tw.temporalWorker.RegisterActivity(eagleTrainingActivity.CreateEagleTrainingJob)\n\tw.temporalWorker.RegisterActivity(eagleOnlineTrainerActivity.CreateEagleOnlineTrainerJob)\n\tw.temporalWorker.RegisterActivity(eagleDraftModelActivity.PollEagleDraftHotReload)\n\tw.temporalWorker.RegisterActivity(eagleDraftModelActivity.ReloadEagleDraftSnapshot)\n\tw.temporalWorker.RegisterActivity(eagleDraftModelActivity.FinalizeEagleOutputDraftModel)\n\tw.temporalWorker.RegisterActivity(rlorTrainerActivity.RunCreateRlorK8s)\n\tw.temporalWorker.RegisterActivity(rlorTrainerActivity.RunUpdateRlorModel)\n\tw.temporalWorker.RegisterActivity(rlorTrainerActivity.EnsureRlorModel)\n\tw.temporalWorker.RegisterActivity(rlorTrainerActivity.CreateSynFile)\n\tw.temporalWorker.RegisterActivity(rlorTrainerActivity.PollAckAndK8sJob)\n\tw.temporalWorker.RegisterActivity(rlorTrainerActivity.FinalizeRlorModel)\n\tw.temporalWorker.RegisterActivity(rlorTrainerActivity.ResolveDataset)\n\tw.temporalWorker.RegisterActivity(createK8sActivity.RunCreateK8sAndWait)\n\n\t// Register service mode activities for StatefulSet-based trainers\n\tw.temporalWorker.RegisterActivity(rlorServiceActivity.RunCreateRlorService)\n\tw.temporalWorker.RegisterActivity(rlorServiceActivity.RunDeleteRlorService)\n\tw.temporalWorker.RegisterActivity(rlorServiceActivity.RunGetRlorServiceStatus)\n\tw.temporalWorker.RegisterActivity(rlorServiceActivity.RunWaitForRlorServiceReady)\n\tw.temporalWorker.RegisterActivity(rlorServiceActivity.CheckTrainerInactivity)\n\tw.temporalWorker.RegisterActivity(rlorServiceActivity.UpdateRlorServiceModeJobTerminalState)\n\n\t// Register generic poll activities\n\tw.temporalWorker.RegisterActivity(pollK8sJobActivity.PollK8sJob)\n\tw.temporalWorker.RegisterActivity(pollE2BOrchestratorJobActivity.PollE2BOrchestratorJob)\n\n\t// Register billing activities\n\tw.temporalWorker.RegisterActivity(billingActivity.ReportBilling)\n\tw.temporalWorker.RegisterActivity(billingActivity.GetAccountUsage)\n\tw.temporalWorker.RegisterActivity(billingActivity.ReportRFTBilling)\n\tw.temporalWorker.RegisterActivity(billingActivity.GetModelParameterCount)\n\tw.temporalWorker.RegisterActivity(billingActivity.UpdateSFTJobBillingState)\n\tw.temporalWorker.RegisterActivity(billingActivity.UpdateDpoJobBillingState)\n\tw.temporalWorker.RegisterActivity(billingActivity.PersistTrainingJobBillingEventIndex)\n\tw.temporalWorker.RegisterActivity(billingActivity.ReportRFTBillingComplete)\n\tw.temporalWorker.RegisterActivity(billingActivity.ReportServiceModeBilling)\n\tw.temporalWorker.RegisterActivity(billingActivity.ReportTrainingJobBilling)\n\n\t// Register cleanup activities\n\tw.temporalWorker.RegisterActivity(cleanupActivity)\n\n\t// Register enable model snapshot activities\n\tw.temporalWorker.RegisterActivity(deployModelVersionActivity.ExecuteDeployModelVersionStateTransition)\n\tw.temporalWorker.RegisterActivity(deployModelVersionActivity.CreateModelVersionReloaderJob)\n\tw.temporalWorker.RegisterActivity(deployModelVersionActivity.WatchJobStatus)\n\tw.temporalWorker.RegisterActivity(promoteCheckpointActivity.RunPromoteCheckpointOperation)\n\tw.temporalWorker.RegisterActivity(promoteCheckpointActivity.FinishPromoteCheckpointOperation)\n\n\t// Register trainer-placement cleanup activity (M2.4)\n\tw.temporalWorker.RegisterActivity(cleanupTrainerPlacementActivity.CleanupTrainerPlacement)\n\n\t// Register workflows\n\tw.temporalWorker.RegisterWorkflow(workflows.DatasetValidationWorkflow)\n\tw.temporalWorker.RegisterWorkflow(workflows.EagleWorkflow)\n\tw.temporalWorker.RegisterWorkflow(workflows.RLORWorkflow)\n\tw.temporalWorker.RegisterWorkflow(workflows.RLORServiceModeWorkflow)\n\n\tw.temporalWorker.RegisterWorkflow(workflows.DeployModelVersionWorkflow)\n\tw.temporalWorker.RegisterWorkflow(workflows.PromoteCheckpointWorkflow)\n\n\t// Register cluster validation activities and workflow\n\tw.temporalWorker.RegisterActivity(activities.NewClusterValidationActivities(w.regionBasedRuntime, w.clusterRegistry))\n\tw.temporalWorker.RegisterWorkflow(workflows.ClusterValidationWorkflow)\n\n\tw.RegisterEvaluationJob()\n\tw.RegisterBatchInferenceJob()\n\tw.RegisterRFTJob()\n\tw.RegisterSFTJob()\n}\n\n// GetAvailableCapacity returns available GPU capacity per region. It prefers\n// global_capacity_server ("} -{"text": "Alexandria, Va., April 23, 2012 - Today, in conjunction with Earth Day, JPMorgan Chase (NYSE: JPM) and Good360 announced the launch of Tech Warehouse, a JPMorgan Chase Technology for Social Good program that will assist nonprofit organizations and schools with contributions of the firm's refurbished technology to enhance communities, improve individual productivity and address zero waste initiatives. This innovative program leverages the benefits of sustainable management of resources at their end of life in order to make a positive impact on the world.\n\"JPMorgan Chase is committed to funding impactful programs that make a meaningful difference in the communities where we work and live,\" said Guy Chiarello, Chief Information Officer, JPMorgan Chase. \"Since 2009, we've been able to redeploy almost 30 percent of the desktops, laptops, monitors and printers collected - avoiding costs and reducing our environmental impact. We are proud to develop Tech Warehouse with Good360 as a way to continue our work toward preserving the environment while providing useful technology for those in need.\"\n\"Our new donation marketplace provides a great platform to distribute these highly desirable computers that would otherwise go to a landfill,\" said Ellie Hollander, Chief Strategy Officer & EVP for Business Development at Good360. \"Good360 is committed to creating corporate, nonprofit and environmental win-win outcomes for excess technology and we're thrilled to be working with JPMorgan Chase on Tech Warehouse.\"\nUnder the new partnership, JPMorgan Chase will replace hard drives in more than 3,000 of its computers and connect with Good360's network of over 27,000 qualified charities through the world's largest online product donation marketplace. Under this pilot program, these clean and tested refurbished computers equipped with basic peripherals and OS software will be made available to nonprofits over the next year. Qualified nonprofits will be permitted to acquire up to 15 products annually and five per quarter. Donations must be used for the primary purpose of serving the ill, needy or youth and cannot be resold, auctioned, traded, bartered or cross international borders. Charities will be asked to pay $65 to cover shipping and handling fees, and the program will also require recipients to properly recycle the computers when they reach their end of life.\nGood360, formerly Gifts In Kind International, has been providing product resources that help nonprofits meet their missions and allow companies to give back to the communities where they live and work since 1983. As the leaders in product philanthropy move to upgrade their cutting-edge online donation marketplace, the generous computer donations made by JPMorgan Chase will help stock the marketplace with one of the most requested products by their charity network.\nFor more information on joining Good360's charity network and accessing these donations, visit www.good360.org/JPMorganChase.\nAbout JPMorgan Chase & Co.\nJPMorgan Chase & Co. (NYSE: JPM) is a leading global financial services firm with assets of $2.3 trillion and operations in more than 60 countries. The firm is a leader in investment banking, financial services for consumers, small business and commercial banking, financial transaction processing, asset management and private equity. A component of the Dow Jones Industrial Average, JPMorgan Chase & Co. serves millions of consumers in the United States and many of the world's most prominent corporate, institutional and government clients under its J.P. Morgan and Chase brands. Information about JPMorgan Chase & Co. is available at www.jpmorganchase.com.\nConsistently ranked by Forbes Magazine as one of the ten most cost-efficient charities in America, Good360 (formerly Gifts In Kind International) is dedicated to helping people and communities in need by distributing corporate product donations to qualified nonprofits. These include nonperishables, such as apparel, books, toys, personal care products, office and school supplies, computers and much more. On behalf of several Fortune 100 consumer, retail and technology companies, Good360 distributes products to a network of more than 27,000 pre-vetted organizations."} -{"text": "Being a wellness coach brings with it lots of questions .. and I love this part of the job as I treat each person individually and work according to their values and beliefs.\nRegardless the amount of knowledge each ‘welly’ (I call my clients ‘welly’s, short for wellness because ‘client’s sounds very clinical) has about nutrition and fitness there seems to be a constant with questions that are asked. Perhaps it’s due to mainstream media harping about certain topics, I’m not sure, but there sure is fear and confusion surrounding food choices.\nI come from a non-diet perspective and prefer to look at food choices and habits, rather than focussing on short term diets which in the end teach you nothing about your behaviours and how to correct them. This is done through sustainable changes and strategies. For this reason, it’s important to note that if you have cleaned up your diet to the point that you are worrying about certain healthy foods, that is ok, but there usually are a few other areas to focus on creating change before you get to this point.\nPut it this way, there is no point cutting out fruit in your diet if you are going to go and gorge yourself on an ice-cream for dessert .. nothing achieved and nutritionally it is a poor choice over natural sugars.\nTo help clear up some issues here are two of my most asked questions .. answered in the most simple terms!\n1/ Is it ok to eat bananas? Aren’t bananas fattening?\nPersonally we eat a lot of bananas in our household. They are great portable snacks for growing, active kids and perfect for active people. The key is timing though. Bananas are very carb dense – about 30g of carbohydrates, 3g of fibre, 2g of protein and 0.5g of fat (about 5 tsp of sugar, 2 of them being fructose).\nEating carbohydrates raises our insulin levels which in turn makes it hard for the body to burn fat while your blood sugar levels are amped. If you’re goal is to lose weight you need to factor this into your daily equation, especially if you’re not that active.\nPersonally, my husband enjoys a half a banana in his morning superfood smoothie while I will choose berries due to their lower fructose and carbohydrate content. In saying that, if I have had a superhard sweaty huff n puff session, half a banana will go in, to help my recovery and replenish potassium levels. Other times I will eat bananas is on race day as a pre and post race snack, just because it is one of those foods that has always agreed with my stomach so I stick to it (Plus I burn silly amounts of energy in endurance events).\nIf you would like to have a banana on the run, throw in some nuts (fats) or have it in a smoothie with milk (protein) to help slow down the insulin response and the speed it is digested.\nBananas should not be seen as villains and have a lot of merit and powerful benefits when compared to other unhealthy and empty calorie snacks. They pros really do outweigh the cons.\n2/ Is rice healthy? Should I be eating rice?\nTo answer this I say look at other cultures around the world where it is their staple and has been for many years (before westernisation entered the picture). Women in particular can sometimes feel negative effects from consuming a diet too low in carbohydrates and sense a shift in their hormones. Rice is a gluten-free product and a great way for people searching for safe grain option or source of carbohydrates.\nThere has been some talk about the arsenic levels in rice and other factors that highlight that white may in fact be healthier than its brown counterpart. Yes, brown rice has more fibre (which can sometimes be harmful to the gut) and nutrients but white rice is more easily digested (faster absorption rate and tolerable).\nOur family love to eat rice and sushi and I vary it between white and brown rice. We make and drink our own rice milk also.\nRice is on the better half of the continuum when it comes to eating starches with high carbohydrate wheat on the other end. Rice is a minimally processed food that is a great option for athletes searching for energy replenishment.\nIf losing weight is your goal, then again rice, needs to be taken into consideration if insulin resistance has taken effect. Damaged metabolisms heal better without overloads of simple sugars and carbohydrates so if this is the case rice, (and other forms of grains) could possibly be off the menu for a while.\nPut it this way if you’re going to sit down to a plate of fried potato chips then you would be better off substituting with a form of rice. It’s just about putting the confusing details into perspective."} -{"text": "no per-cluster Kubernetes List) when configured, and\n// falls back to the legacy in-process cluster_manager path otherwise.\nfunc (w *LROWorker) GetAvailableCapacity(ctx context.Context, req *dwpb.GetAvailableCapacityRequest) (*dwpb.GetAvailableCapacityResponse, error) {\n\tif w.availableCapacityFromGlobalCapacityServer && w.globalCapacityClient != nil {\n\t\treturn w.getAvailableCapacityFromGlobalCapacityServer(ctx, req)\n\t}\n\treturn w.getAvailableCapacityFromClusterManager(ctx, req)\n}\n\n// getAvailableCapacityFromClusterManager is the legacy per-cluster Kubernetes\n// List path (via AvailableCapacityCache), retained as the fallback when no\n// global capacity client is configured.\nfunc (w *LROWorker) getAvailableCapacityFromClusterManager(ctx context.Context, req *dwpb.GetAvailableCapacityRequest) (*dwpb.GetAvailableCapacityResponse, error) {\n\tresp := &dwpb.GetAvailableCapacityResponse{\n\t\tAvailableCapacity: []*dwpb.GetAvailableCapacityResponse_Capacity{},\n\t}\n\n\t// If a list of regions is provided, we only return the available capacity for the regions in the list\n\tminPriority := int32(constants.PriorityValueDeployment)\n\tif req.MinPriority != nil {\n\t\tminPriority = *req.MinPriority\n\t}\n\n\tif len(req.Regions) > 0 {\n\t\tfor _, region := range req.Regions {\n\t\t\tclient, exists := w.clusterManager.Clients[region]\n\t\t\tif !exists || client == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Check if capacity cache is available\n\t\t\tif client.AvailableCapacityCache == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Check if this accelerator type is supported in this region\n\t\t\tacceleratorTypes, err := w.regionBasedRuntime.GetAcceleratorTypesForRegion(region)\n\t\t\tif err != nil {\n\t\t\t\t// Region not configured, skip\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif _, supported := acceleratorTypes[req.AcceleratorType]; !supported {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tcount, err := client.AvailableCapacityCache.Get(ctx, clustermanager.CapacityCacheKey{\n\t\t\t\tAcceleratorType: req.AcceleratorType,\n\t\t\t\tMinPriority: minPriority,\n\t\t\t\tTaintExclusionMode: req.TaintExclusionMode,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\tlog.Warn().Err(err).Msgf(\"Error getting free GPUs for region %v\", region)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif count == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tresp.AvailableCapacity = append(resp.AvailableCapacity, &dwpb.GetAvailableCapacityResponse_Capacity{\n\t\t\t\tRegion: region,\n\t\t\t\tCount: count,\n\t\t\t})\n\t\t}\n\t\treturn resp, nil\n\t}\n\n\t// Otherwise, if a multi-region is provided, we return the available capacity for the regions in the multi-region\n\tfor region, client := range w.clusterManager.Clients {\n\t\tif client == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Skip clusters that do not accept autoplacement for this hardware type.\n\t\tif !client.AcceptAutoPlacement(clustermanager.WithAcceleratorType(req.AcceleratorType)) {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Check if capacity cache is available\n\t\tif client.AvailableCapacityCache == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Check if region belongs to the requested multi-region group\n\t\tif req.MultiRegion != gpb.MultiRegion_MULTI_REGION_UNSPECIFIED {\n\t\t\tif !w.clusterRegistry.IsValidMultiRegion(req.MultiRegion) {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid multi-region: %v\", req.MultiRegion)\n\t\t\t}\n\t\t\tif !w.clusterRegistry.RegionGroupContains(req.MultiRegion, region) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\t// Check if this accelerator type is supported in this region\n\t\tacceleratorTypes, err := w.regionBasedRuntime.GetAcceleratorTypesForRegion(region)\n\t\tif err != nil {\n\t\t\t// Region not configured, skip\n\t\t\tcontinue\n\t\t}\n\t\tif _, supported := acceleratorTypes[req.AcceleratorType]; !supported {\n\t\t\tcontinue\n\t\t}\n\n\t\tcount, err := client.AvailableCapacityCache.Get(ctx, clustermanager.CapacityCacheKey{\n\t\t\tAcceleratorType: req.AcceleratorType,\n\t\t\tMinPriority: minPriority,\n\t\t\tTaintExclusionMode: req.TaintExclusionMode,\n\t\t})\n\t\tif err != nil {\n\t\t\tlog.Warn().Err(err).Msgf(\"Error getting free GPUs for region %v\", region)\n\t\t\tcontinue\n\t\t}\n\t\tif count == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tresp.AvailableCapacity = append(resp.AvailableCapacity, &dwpb.GetAvailableCapacityResponse_Capacity{\n\t\t\tRegion: region,\n\t\t\tCount: count,\n\t\t})\n\t}\n\treturn resp, nil\n}\n\n// availableCapacitySlack is the per-region GPU buffer GetAvailableCapacity\n// withholds so callers never pack a region to its last GPU. Mirrors the legacy\n// fetchAvailableCapacity slack the cluster_manager path applied.\nconst availableCapacitySlack = int32(8)\n\n// getAvailableCapacityFromGlobalCapacityServer answers GetAvailableCapacity from\n// global_capacity_server instead of the legacy per-cluster Kubernetes List path.\nfunc (w *LROWorker) getAvailableCapacityFromGlobalCapacityServer(ctx context.Context, req *dwpb.GetAvailableCapacityRequest) (*dwpb.GetAvailableCapacityResponse, error) {\n\tminPriority := int32(constants.PriorityValueDeployment)\n\tif req.MinPriority != nil {\n\t\tminPriority = *req.MinPriority\n\t}\n\n\tregions, err := w.resolveAvailableCapacityRegions(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(regions) == 0 {\n\t\treturn &dwpb.GetAvailableCapacityResponse{}, nil\n\t}\n\n\t// Mirror the legacy cluster_manager inputs: the LRO worker "} -{"text": "Punks aren't known for having much money, but they usually have pretty good taste in cars. Crank the stereo, pop in a Sex Pistols or Black Flag tape, and give society the finger with these ten commenter-chosen punk rock cars.\nThis is Answers of the Day — a feature where we take the best ten responses from the previous day's Question of the Day and shine it up to show off. It's by you and for you, the Jalopnik readers. Enjoy!\nWant to see this gallery in one slow-to-load page? Click here.\n10. Decommissioned Police Crown Vic\nSuggested By: thor77\nWhy It's Punk: What's a more ironic car for a bunch of anarchist punks? Fresh off the auction lot with the spotlight still attached and the paint faded, the Crown Vic is cheap to buy, cheap to run, and swallows up lots of band gear.\nPhoto credit: mp3car.com\n9. Geo Metro\nSuggested By: Half The Wheels And Twice The Fun\nWhy It's Punk: It's tiny, but says \"I don't care what you think about me. Go ahead, laugh. I'll kick your face in.\" The Geo costs even less than a decommissioned Crown Vic, and despite its tiny dimensions, can still hold a drum or amp in the back seat. And as Half the wheels points out, it's unassuming enough that it won't get trashed by an angry dickhead at the gig.\nPhoto credit: In My Not so Humble Opinion\n8. 1970-ish Chevrolet Wagon\nSuggested By: pauljones\nWhy It's Punk: The mid-'70s Chevy wagon is big, old, American, and totally punk. The exact year isn't really important (pretty much anything from 1959 to 1979 will do), because we're not talking about a restored show car. The one the punks are after has faded paint, torn seats, and probably spent the last few years of it's life outside, sitting behind someone's house. The gnarlier the better.\n7. Volkswagen Golf GTi\nSuggested By: LuckyChuck\nWhy It's Punk: What's more punk than a car with plaid seats? It helps that the GTi is quick, and that many of them were black, but mostly, it's all about that bad-ass plaid.\nPhoto credit: Bring A Trailer\n6. Hyundai Accent\nSuggested By: Smells_Homeless\nWhy It's Punk: Older Accents are small, but they can hold enough stuff to make them worthwhile band cars. Smells_Homeless notes: \"I never got tired of watching that little thing swallowing the drums and two half-stacks.\" Like the Geo, Accents are pretty stealthy, so one can probably survive a night outside the venue.\nPhoto credit: CarDomain\n5. Buick Turbo Regal\nSuggested By: twitchykun\nWhy It's Punk: Loud, fast, and out of control. When painted black, they absolutely look the part, and the engine is loud enough to sound it. This is an all-business machine, a squared-off, no-nonsense monster. The Regal looks angry just sitting still.\nPhoto credit: Team Chevelle\n4. Ford Taurus Wagon\nSuggested By: Filmomaker\nWhy It's Punk: As punk morphed and split into a whole bunch of other genres and sub-genres, the outcast and filthy still needed wheels to get to the gig (even if those wheels probably belonged to mom). Filmomaker describes the scene as he saw it back then: \"Sometimes, after the gig, the car just goes missing, then it turns up in a very strange neighborhood or on the side of some railroad [tracks]. Sometimes some angry drummer or guitarist kicks the living fuck out of the car before or after the gig. Sometimes band members use the car to have sex with a groupie. Sometimes band members use the car to sell drugs and alcohol.\" So really, the Taurus was more like a Mobile Band Command Center than anything.\nPhoto credit: Pinkie's Blog\nSuggested By: mytdawg\nWhy It's Punk: How could we not include a Bitchin' Camaro?\nPhoto credit: Youtube\n2. Ford Transit Van\nSuggested By: Shep_Shepherd\nWhy It's Punk: If your band was from England, chances are that you spent quite a lot of time at one point or another in the back of a Transit. They were the default vehicle, much like the Econoline in America, for up-and-coming bands that had to get to the gig. Bands used them for decades before the punk movement, and they continue to use them today.\nPhoto credit: Vision Motor Services\n1. Decommissioned Ambulance\nSuggested By: withayou\nWhy It's Punk: Commenter Withayou is a punk alum, and has this to say about his old band's ambulance: \"To make it (vaguely) street legal, we had to remove the decals and paint over the emergency lights, but nothing at all was disconnected. That meant that at any given moment any of us could flip a switch to turn on the sirens, emergency flashers, loudspeaker, or floodlights and the thing came with an abundance of 120v outlets so the Marshall half-stacks could be plugged in at any rest stop. In retrospect, there is no reason the 17-year old version of me shouldn't be behind bars.\"\nPhoto credit: fotki"} -{"text": "International Jazz Day Brings A Worldwide A-List To Turkey\nIstanbul hosts high-profile event in its second year\nThere is, it seems, one thing that the nations of the world can agree upon: jazz. When the second annual International Jazz Day took place on April 30, nearly all of the 195 member states of UNESCO (United Nations Educational, Scientific and Cultural Organization)—from Afghanistan to Zimbabwe—held events to rejoice in the music that, according to a speech given by Dr. Martin Luther King Jr., “speaks for life.”\nThe son of Dr. King, Martin Luther King III, referenced that speech in his own at this year’s flagship International Jazz Day event, an all-star concert and goodwill celebration staged at the Hagia Irene, the first church erected in what is today Istanbul, the largest city in Turkey. Begun in the fourth century, Hagia Irene is a cavernous, breathtakingly imposing structure that is often utilized for live music presentations. As a setting for promoting and presenting contemporary jazz, it proved a brilliant—if at times sonically lacking—choice.\nKing, along with Herbie Hancock, a UNESCO Goodwill Ambassador and Chairman of the Thelonious Monk Institute of Jazz, one of the co-sponsors of IJD, was in Istanbul to promote this music as a force of global unity. So too were dozens of musicians, 40 of whom, from 15 countries, performed at Hagia Irene on the evening of the 30th, their music streamed to millions around the world.\nThat concert was the main course but it was also a culmination. In the days preceding it, jazz professionals, political and business dignitaries, musicians, media and educators from around the world blanketed the city, presenting workshops, lectures, Q&As and more. On the morning of the 30th, at the Galatasaray High School, attentive, appreciative students took in an intimate performance featuring Hancock and Wayne Shorter sitting in with Monk Institute students. In virtually every other country, from Rwanda to Malaysia to Poland, concerts, lectures, film screenings and other events boosted the profile of jazz for at least part of one 24-hour period.\nLike last year’s maiden IJD evening concert, which took place at the U.N. building in New York City, the 2013 event was strong on star power. You couldn’t help but be dazzled by a roll call featuring Hancock and Shorter, T.S. Monk (who serves as Chairman of the Board of Trustees of the Monk Institute), Esperanza Spalding, Hugh Masekela, Marcus Miller, Jean-Luc Ponty, George Duke, Branford Marsalis, John McLaughlin, Terence Blanchard, Anat Cohen, Dianne Reeves, Ramsey Lewis, Milton Nascimento, Eddie Palmieri, Al Jarreau, Vinnie Colaiuta, Ben Williams, Terri Lyne Carrington, Robert Glasper, Rubén Blades, Keiko Matsui, Lee Ritenour, Zakir Hussain and others, including players from Russia (saxophonist Igor Butman, trombonist Alevtina Polyakova), Cuba (percussionist Pedrito Martinez), Australia (Dale Barlow) and, of course, Turkey (the marvelous trumpeter İmer Demirer, guitarist Bilal Karaman, clarinetist Hüsnü Şenlendirici), a country whose relationship with jazz stretches back to at least the 1930s.\nAs is often the case at such multi-artist events, some pairings were more inspired than others; a handful stood out, others underwhelmed. Some artists played on a single tune and were gone; others returned several times. The sound, unfortunately, was frequently problematic: Although the vocalists could be heard clearly, the rhythm sections were often lost in the mix or given to murk. In the end, though, that didn’t matter: It was understood that this wasn’t so much about delivering flawlessness as it was about the revelry.\nIn that spirit, the first performance of the evening was devoted to the blues roots of jazz, with guitarist Joe Louis Walker, pianists Lewis and John Beasley (the evening’s musical director), bassist James Genus, drummer Colaiuta and British vocalist Joss Stone delivering a soulful if somewhat shrill “Some Kind of Wonderful.” The first true highlight arrived via Jarreau, whose vocalese turn on a medley of the Dave Brubeck Quartet’s “Take Five” and—this being Istanbul—“Blue Rondo à la Turk,” accompanied by Duke, Miller, Ritenour and Carrington, was riveting. (Make no mistake—this evening was geared toward the mainstream, not the music’s fringes.)\nOther highlights included an over-the-top, floor-shaking Masekela performance of “Stimela (Coal Train),” featuring Beasley, Carrington, Hancock, Miller and Ritenour; a beguiling, stirring unnamed Latin jam spotlighting Palmieri, Cohen, Blanchard, Luques Curtis (bass) and Pedrito Martinez (percussion); and, perhaps the prize of the night, the trio of McLaughlin (electric guitar), Hussain (tablas) and Ponty (violin) taking their time to explore the nuances of “Lotus Feet,” an oft-revisited McLaughlin composition dating from the 1970s.\nAn all-cast finale, a take on Dizzy Gillespie’s “A Night in Tunisia” where Reeves improvised lyrics referencing International Jazz Day, may have been cacophonous, but it sure was fun to watch. Afterward, the audience had barely filed out the doors when the speculation regarding the possible locale of next year’s IJD began. Just the thought that it could be anywhere in the world—anywhere—was in itself a statement on how monumental this event has already become in two years.\nAs T.S. Monk said at a reception prior to the concert, “The foundations of jazz are not based in musical technique, they’re based in a philosophy that goes to the issue of humanity, communication, tolerance, teamwork, individuality. Those are things that are important to people everywhere and have been important to people since the beginning of time.”\nOriginally published in July/August 2013"} -{"text": "path keyed the\n\t// capacity cache on (accelerator, min priority, taint mode) and did not\n\t// thread AllowedTaintKeys, so leave it unset here to preserve behavior.\n\tcounts, err := globalcapacity.AvailableCapacityByRegion(ctx, w.globalCapacityClient, globalcapacity.AvailableCapacityRequest{\n\t\tAcceleratorType: req.AcceleratorType,\n\t\tRegions: regions,\n\t\tMinPriority: minPriority,\n\t\tTaintExclusionMode: gcpb.TaintExclusionMode(req.TaintExclusionMode),\n\t\tSlack: availableCapacitySlack,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp := &dwpb.GetAvailableCapacityResponse{}\n\tfor _, region := range regions {\n\t\tcount, ok := counts[region]\n\t\tif !ok || count <= 0 {\n\t\t\tcontinue\n\t\t}\n\t\tresp.AvailableCapacity = append(resp.AvailableCapacity, &dwpb.GetAvailableCapacityResponse_Capacity{\n\t\t\tRegion: region,\n\t\t\tCount: count,\n\t\t})\n\t}\n\treturn resp, nil\n}\n\n// resolveAvailableCapacityRegions returns the regions GetAvailableCapacity should\n// query, mirroring the legacy cluster_manager path's region selection: the\n// explicit Regions (filtered to managed, accelerator-supporting regions), or the\n// multi-region members that accept auto-placement for the accelerator.\n// TODO(kexiang): unify with deployment_watcher.resolveAvailableCapacityRegions\nfunc (w *LROWorker) resolveAvailableCapacityRegions(req *dwpb.GetAvailableCapacityRequest) ([]gpb.Region, error) {\n\tif len(req.Regions) > 0 {\n\t\tvar regions []gpb.Region\n\t\tfor _, region := range req.Regions {\n\t\t\tif client, exists := w.clusterManager.Clients[region]; !exists || client == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !w.acceleratorSupportedInRegion(region, req.AcceleratorType) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tregions = append(regions, region)\n\t\t}\n\t\treturn regions, nil\n\t}\n\n\tif req.MultiRegion != gpb.MultiRegion_MULTI_REGION_UNSPECIFIED && !w.clusterRegistry.IsValidMultiRegion(req.MultiRegion) {\n\t\treturn nil, fmt.Errorf(\"invalid multi-region: %v\", req.MultiRegion)\n\t}\n\tvar regions []gpb.Region\n\tfor region, client := range w.clusterManager.Clients {\n\t\tif client == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif !client.AcceptAutoPlacement(clustermanager.WithAcceleratorType(req.AcceleratorType)) {\n\t\t\tcontinue\n\t\t}\n\t\tif req.MultiRegion != gpb.MultiRegion_MULTI_REGION_UNSPECIFIED && !w.clusterRegistry.RegionGroupContains(req.MultiRegion, region) {\n\t\t\tcontinue\n\t\t}\n\t\tif !w.acceleratorSupportedInRegion(region, req.AcceleratorType) {\n\t\t\tcontinue\n\t\t}\n\t\tregions = append(regions, region)\n\t}\n\treturn regions, nil\n}\n\n// acceleratorSupportedInRegion reports whether the region is configured to run\n// the given accelerator type, matching the legacy path's per-region check.\nfunc (w *LROWorker) acceleratorSupportedInRegion(region gpb.Region, acceleratorType gpb.AcceleratorType) bool {\n\tacceleratorTypes, err := w.regionBasedRuntime.GetAcceleratorTypesForRegion(region)\n\tif err != nil {\n\t\treturn false\n\t}\n\t_, supported := acceleratorTypes[acceleratorType]\n\treturn supported\n}\n\n// makeAcceleratorTypeMap creates a map of accelerator types available in a specific region\nfunc makeAcceleratorTypeMap(region gpb.Region, acceleratorTypeToRegions map[gpb.AcceleratorType][]gpb.Region) map[gpb.AcceleratorType]bool {\n\tacceleratorTypeMap := make(map[gpb.AcceleratorType]bool)\n\tfor acceleratorType, regions := range acceleratorTypeToRegions {\n\t\tfor _, r := range regions {\n\t\t\tif r == region {\n\t\t\t\tacceleratorTypeMap[acceleratorType] = true\n\t\t\t}\n\t\t}\n\t}\n\treturn acceleratorTypeMap\n}\n\n// applyRegionOverrides returns a copy of the spec with region-based image and PersistentHostPath set.\nfunc applyRegionOverrides(\n\tspec statemachine.RuntimeRegionSpec,\n\tregion gpb.Region,\n\ttrainingImagePostfix string,\n\tfullParameterTrainingImagePostfix string,\n\tcookbookFiretitanImagePostfix string,\n\tllmDownloaderImageTag string,\n\tbatchInferenceRunnerImageTag string,\n\tuseHarborForImages bool,\n\tregionalCheckpointServiceConfig statemachine.RegionalCheckpointServiceConfig,\n) statemachine.RuntimeRegionSpec {\n\tif !strings.Contains(trainingImagePostfix, \":\") {\n\t\ttrainingImagePostfix += \":current\"\n\t}\n\tif !strings.Contains(fullParameterTrainingImagePostfix, \":\") {\n\t\tfullParameterTrainingImagePostfix += \":current\"\n\t}\n\tif cookbookFiretitanImagePostfix != \"\" && !strings.Contains(cookbookFiretitanImagePostfix, \":\") {\n\t\tcookbookFiretitanImagePostfix += \":current\"\n\t}\n\teagleTrainingImagePostfix := statemachine.DeriveEagleTrainingImagePostfix(trainingImagePostfix)\n\n\tupdated := spec\n\t// Store the actual postfix used (after adding :current if needed) so that\n\t// custom image tag logic in sft_activity.go can correctly extract the base URL.\n\tupdated.TrainingImagePostfix = trainingImagePostfix\n\tupdated.EagleTrainingImagePostfix = eagleTrainingImagePostfix\n\tif storage := statemachine.RegionalFastCheckpointStorageForRegionWithConfig(\n\t\tregion,\n\t\tregionalCheckpointServiceConfig,\n\t); storage != nil {\n\t\tupdated.FastCheckpointStorage = storage\n\t}\n\tbatchInferenceRunnerImage := fmt.Sprintf(\"batch-inference-runner:%s\", batchInferenceRunnerImageTag)\n\tgcpBatchInferenceRunnerImage := fmt.Sprint"} -{"text": "The events unfolding in Israel are geographically far from Maryland, but Jewish Baltimore showed its solidarity and support for the Jewish state through prayer, gatherings and messages sent directly to the soldiers taking part in Israel’s ground offensive in the Gaza Strip this past week.\nNational, state and local politicians joined with religious leaders, community members and an Israeli embassy representative Monday, July 21, at a gathering of solidarity at the Gordon Center for Performing Arts at the Rosenbloom Owings Mills JCC. The event, which was hosted by the Baltimore Jewish Council and co-sponsored by The Associated: Jewish Community Federation of Baltimore, was organized to create an opportunity for the Baltimore community to demonstrate its support for the State of Israel and the country’s right to defend itself.\n“When your home is under attack you have to defend it,” BJC President Lainy LeBow-Sachs said to the packed auditorium.\nOren Marmorstein, counselor for public affairs and national coordinator of academic affairs at the Israeli Embassy, used the opportunity to thank the Baltimoreans in attendance for their support of Israel.\n“Every person in Israel is aware of this support,” he said. He described to the community members gathered his own experiences with hearing warning sirens and having to take cover with his wife and young daughter, and said much of what is portrayed of the conflict in the media is incomplete or inaccurate. It is hard, he added, to describe to people what life is really like in the Jewish state.\n“This is not happening only one night,” he said of the sirens. “It’s happening every single night. This is something that is happening every day.”\nU.S. Sen. Ben Cardin, who has been a vocal supporter of Israel during his tenure in office, also spoke at the rally, thanking the people who came to show their support and asserting Israel’s right to defend its citizens. He was followed by Amian Kelemer, whose daughter recently completed her service in the Israel Defense Forces. Kelemer talked about her experience as a “soldier mom,” fearing for her oldest daughter every day.\nMeanwhile, another crowd gathered at Light and Pratt streets from 5 p.m. to 7 p.m. Monday to protest racism and war, focusing on the Israeli-Palestinian conflict, the situation along the Mexican border and the city’s newly stricter youth curfew.\n“The racist apartheid settler state of Israel is once again attacking the people of Palestine in Gaza and the West Bank,” read a release promoting the rally. “The pretext this time was the death of three Israeli teenagers, but the results are all too familiar,” it added, pointing to the number of Palestinian casualties.\nRabbi Moshe Hauer of Bnai Jacob Shaarei Zion Congregation, who spoke at the Gordon Center event, has put a call out to Jewish camp directors asking that campers design small notes or cards that will be included in care packages for soldiers. He extended his request to anybody in the community who would like to create and send a note of solidarity to Israeli troops.\nHauer will be traveling to Israel and plans to deliver the cards himself.\nAgudath Israel of America is asking that all Jews pray for the safety of the Israeli soldiers and the citizenry of Israel, and “to undertake meaningful acts of kindness, charity, Torah study and special observances to help merit divine protection of our brothers and sisters in [Israel], on the front lines and everywhere else,” a statement read.\nThe Shmira Project, an organization that enables people to “adopt” one or more soldiers by doing a specific mitzvah in their honor and praying for their protection, was recently reestablished. Shmira means “guarding” or “protecting” in Hebrew.\n“Any mitzvah that you do on behalf of a soldier truly makes a difference, to the soldier and to Jewish unity,” states the Center for Jewish Education’s website. “Write your soldier’s name out and post it where you’ll see it … near the Shabbat candles, on the refrigerator, in your car, in your phone. Then, when you are going to do something positive in the world, stop and think of your soldier and include him or her in your mitzvah.” For more information about the Shmira Project, go to shmiraproject.com or text 240-393-4836.\nPhoto by David Stuck"} -{"text": "Jewish World Review Oct. 29, 2013/ 25 Mar-Cheshvan, 5774\nThrow the Rascals Out?\nBy Thomas Sowell\nJewishWorldReview.com | Polls indicate that the public is so disgusted with Washington politicians of both parties that a surprisingly large proportion of the people would like to get rid of the whole lot of them.\nIt is certainly understandable that the voters would like to \"throw the rascals out.\" But there is no point in throwing the rascals out, if we are just going to get a new set of rascals to replace them.\nIn other words, we need to think about what there is about current political practices that repeatedly bring to power such a counterproductive set of people. Those we call \"public servants\" have in fact become public masters. And they act like it.\nThey squander ever more vast amounts of our tax money, and still leave trillions of dollars of national debt to be paid by our children and grandchildren. They intrude into our private lives with ever more restrictions, red tape and electronic surveillance. And they turn different groups of Americans against each other with class warfare rhetoric and policies.\nNone of this is inevitable. In fact, this pattern is largely the culmination of political trends set in motion during the 1930s, and reaching a climax today. During the 1920s, the national debt was reduced and the role of government scaled back. Unemployment went as low as 1.8 percent.\nPresident Calvin Coolidge, with every prospect of being reelected in 1928, declared simply: \"I do not choose to run.\" Later, in his memoirs, he explained how dangerous it is to have anyone remain too long in the White House, surrounded by flattery and insulated from reality. What a contrast that attitude is with the attitude of the current occupant of the White House!\nThe contrast extends beyond these two presidents. What we have today that we did not have in the early history of this country is a permanent political class in Washington — a Congress and an ever growing federal bureaucracy composed of people who have become a permanent ruling class.\nThe United States was not founded by career politicians but by people who took time out from their regular professions to serve during a crucial time in the creation of a new nation, and a new kind of nation in a world ruled by kings and emperors.\nIn the nineteenth century, there was a high rate of turnover in members of Congress. Many people went to Washington to serve one term in Congress, then returned to their home state to resume their lives as private citizens.\nThe rise of the permanent political class in Washington came with the rise of a vast government apparatus with unprecedented amounts of money and power to control and corrupt individuals, institutions and the fabric of the whole society.\nThe first giant steps in this direction were taken in the 1930s, when the Great Depression provided the rationale for a radically expanded role of government that Franklin D. Roosevelt and his followers had believed in before there was a Great Depression.\nThere are now people in Washington whose entire adult lives have been spent in government, in one role or another. Some begin as aides to politicians or as part of the sprawling empires of the federal bureaucracy. From this they progress to high elective or appointed offices in government.\nTurnover in Congress has been reduced almost to the vanishing point. Political alliances within government and with outside special interests, as well as the gerrymandering of Congressional districts, make most incumbents' reelection virtually a foregone conclusion.\nThe ability to distribute vast amounts of largess to voters, at the taxpayers' expense — President Obama's giving away free cell phones during an election year being just the tip of the iceberg — further tilts the balance in favor of incumbents.\nThis kind of government must constantly \"do something\" in order to keep incumbents' names in the news. In short, big government has every incentive to create bigger government.\nThrowing the rascals out will not get rid of this political pattern. The first step in limiting, and then scaling back, government itself must be limiting the time that anyone can remain in office — preferably limited to one term, to make it harder to become career politicians, a species we can well do without.\nEvery weekday JewishWorldReview.com publishes what many in the media and Washington consider \"must-reading\". Sign up for the daily JWR update. It's free. Just click here.\n© 2006, Creators Syndicate"} -{"text": "f(\"us-docker.pkg.dev/fw-ai-cp-prod/inference/%s\", batchInferenceRunnerImage)\n\tecrBatchInferenceRunnerImage := fmt.Sprintf(\"794651314743.dkr.ecr.us-east-1.amazonaws.com/%s\", batchInferenceRunnerImage)\n\tociBatchInferenceRunnerImage := fmt.Sprintf(\"us-chicago-1.ocir.io/axhaeqbjwexc/inference/%s\", batchInferenceRunnerImage)\n\tcrusoeHarborBatchInferenceRunnerImage := fmt.Sprintf(\"harbor.crusoe-eu-iceland1.fireworks.ai/gcp-gar/fw-ai-cp-prod/inference/%s\", batchInferenceRunnerImage)\n\ticeland2HarborBatchInferenceRunnerImage := fmt.Sprintf(\"harbor.eu-iceland-2.fireworks-ai.cloud/gcp-gar/fw-ai-cp-prod/inference/%s\", batchInferenceRunnerImage)\n\ttrainingRegistryPrefix := \"us-chicago-1.ocir.io/axhaeqbjwexc/serving\"\n\tswitch region {\n\tcase gpb.Region_US_IOWA_1, gpb.Region_US_UTAH_1:\n\t\t// GCP regions\n\t\ttrainingRegistryPrefix = \"us-west1-docker.pkg.dev/fw-ai-cp-prod/tune\"\n\t\tupdated.ContainerImage = \"us-west1-docker.pkg.dev/fw-ai-cp-prod/tune\" + trainingImagePostfix\n\t\tupdated.FullParameterContainerImage = \"us-west1-docker.pkg.dev/fw-ai-cp-prod/tune\" + fullParameterTrainingImagePostfix\n\t\tupdated.EagleContainerImage = \"us-west1-docker.pkg.dev/fw-ai-cp-prod/tune\" + eagleTrainingImagePostfix\n\t\tupdated.LlmDownloaderImage = fmt.Sprintf(\"us-docker.pkg.dev/fw-ai-cp-prod/inference/llm-downloader:%s\", llmDownloaderImageTag)\n\t\tupdated.BatchInferenceRunnerImage = gcpBatchInferenceRunnerImage\n\t\tupdated.PersistentHostPath = \"/mnt/stateful_partition/kube-ephemeral-ssd/tmp-fireworks\"\n\tcase gpb.Region_US_VIRGINIA_1, gpb.Region_AP_TOKYO_2, gpb.Region_US_CALIFORNIA_1:\n\t\t// AWS regions\n\t\ttrainingRegistryPrefix = \"794651314743.dkr.ecr.us-east-1.amazonaws.com/serving\"\n\t\tupdated.ContainerImage = \"794651314743.dkr.ecr.us-east-1.amazonaws.com/serving\" + trainingImagePostfix\n\t\tupdated.FullParameterContainerImage = \"794651314743.dkr.ecr.us-east-1.amazonaws.com/serving\" + fullParameterTrainingImagePostfix\n\t\tupdated.EagleContainerImage = \"794651314743.dkr.ecr.us-east-1.amazonaws.com/serving\" + eagleTrainingImagePostfix\n\t\tupdated.LlmDownloaderImage = fmt.Sprintf(\"us-chicago-1.ocir.io/axhaeqbjwexc/inference/llm-downloader:%s\", llmDownloaderImageTag)\n\t\tupdated.BatchInferenceRunnerImage = ecrBatchInferenceRunnerImage\n\t\tupdated.PersistentHostPath = \"/nvme/disk/tmp-fireworks\"\n\tcase gpb.Region_EU_ICELAND_1:\n\t\t// Crusoe EU Iceland 1 - optionally use Harbor mirror of GCP if enabled via flag\n\t\tif useHarborForImages {\n\t\t\ttrainingRegistryPrefix = \"harbor.crusoe-eu-iceland1.fireworks.ai/gcp-gar-west-1/fw-ai-cp-prod/tune\"\n\t\t\tupdated.ContainerImage = \"harbor.crusoe-eu-iceland1.fireworks.ai/gcp-gar-west-1/fw-ai-cp-prod/tune\" + trainingImagePostfix\n\t\t\tupdated.FullParameterContainerImage = \"harbor.crusoe-eu-iceland1.fireworks.ai/gcp-gar-west-1/fw-ai-cp-prod/tune\" + fullParameterTrainingImagePostfix\n\t\t\tupdated.EagleContainerImage = \"harbor.crusoe-eu-iceland1.fireworks.ai/gcp-gar-west-1/fw-ai-cp-prod/tune\" + eagleTrainingImagePostfix\n\t\t\tupdated.LlmDownloaderImage = fmt.Sprintf(\"harbor.crusoe-eu-iceland1.fireworks.ai/gcp-gar/fw-ai-cp-prod/inference/llm-downloader:%s\", llmDownloaderImageTag)\n\t\t\tupdated.BatchInferenceRunnerImage = crusoeHarborBatchInferenceRunnerImage\n\t\t} else {\n\t\t\tupdated.ContainerImage = \"us-chicago-1.ocir.io/axhaeqbjwexc/serving\" + trainingImagePostfix\n\t\t\tupdated.FullParameterContainerImage = \"us-chicago-1.ocir.io/axhaeqbjwexc/serving\" + fullParameterTrainingImagePostfix\n\t\t\tupdated.EagleContainerImage = \"us-chicago-1.ocir.io/axhaeqbjwexc/serving\" + eagleTrainingImagePostfix\n\t\t\tupdated.LlmDownloaderImage = fmt.Sprintf(\"us-chicago-1.ocir.io/axhaeqbjwexc/inference/llm-downloader:%s\", llmDownloaderImageTag)\n\t\t\tupdated.BatchInferenceRunnerImage = ociBatchInferenceRunnerImage\n\t\t}\n\t\tupdated.PersistentHostPath = \"/nvme/disk/tmp-fireworks\"\n\tcase gpb.Region_EU_ICELAND_2:\n\t\tif useHarborForImages {\n\t\t\ttrainingRegistryPrefix = \"harbor.eu-iceland-2.fireworks-ai.cloud/gcp-gar-west-1/fw-ai-cp-prod/tune\"\n\t\t\tupdated.ContainerImage = \"harbor.eu-iceland-2.fireworks-ai.cloud/gcp-gar-west-1/fw-ai-cp-prod/tune\" + trainingImagePostfix\n\t\t\tupdated.FullParameterContainerImage = \"harbor.eu-iceland-2.fireworks-ai.cloud/gcp-gar-west-1/fw-ai-cp-prod/tune\" + fullParameterTrainingImagePostfix\n\t\t\tupdated.EagleContainerImage = \"harbor.eu-iceland-2.fireworks-ai.cloud/gcp-gar-west-1/fw-ai-cp-prod/tune\" + eagleTrainingImagePostfix\n\t\t\tupdated.LlmDownloaderImage = fmt.Sprintf(\"harbor.eu-iceland-2.fireworks-ai.cloud/gcp-gar/fw-ai-cp-prod/inference/llm-downloader:%s\", llmDownloaderImageTag)\n\t\t\tupdated.BatchInferenceRunnerImage = iceland2HarborBatchInferenceRunnerImage\n\t\t} else {\n\t\t\tupdated.ContainerImage = \"us-chicago-1.ocir.io/axhaeqbjwexc/serving\" + trainingImagePostfix\n\t\t\tupdated.FullParameterContainerImage = \"us-chicago-1.ocir.io/axhaeqbjwexc/serving\" + fullParameterTrainingImagePostfix\n\t\t\tupdated.EagleContainerImage = \"us-chicago-1.ocir.io/axhaeqbjwexc/serving\" + eagleTrainingImagePostfix\n\t\t\tupdated.LlmDownloaderImage = fmt.Sprintf(\"us-chicago-1.ocir.io/axhaeqbjwexc/inference/llm-downloader:%s"} -{"text": "Some comics probably by animator Jack Bradbury, who also designed the first animated version of Beany and Cecil.\nWhen I was a kid, about 9 years old, I used to race home from school to watch the cartoons at my Grandmother's house in Ottawa. We only had 3 channels then: 2 English speaking channels and one French. They all ran cartoons at the same time every day, and I had to switch from channel to channel because I could never make up my mind which to watch all the way through!They ran Huck and Quick Draw at about 3:30 on the 2 English channels, and then Yogi and Beany and Cecil at 4. It used to drive me nuts because I wanted to watch them all!\nHuck, Yogi and Quick Draw were all Hanna Barbera cartoons - all with the same look and feel. They had great designs and voices and were appealing, but not very imaginative. Just the same, I loved 'em.\nBeany and Cecil, on the other hand - even as a kid - seemed like the weirdest thing ever! It looked great- I especially liked the cartoons designed and layed out by Willie Ito - he did the more \"modern\" angular style episodes. But the stories were bizarre! If Roger Ramjet was the funniest 60s cartoon, then Beany and Cecil was the most imaginative.\nIts main cast was fairly normal - starring Beany a likeable cute little boy who loved fun and adventure,\nCaptain Huffenpuff, an old homosexual blowhard adventurer who always retreated to his \"HIDING ROOM\" whenever there was trouble and Cecil The Seasick Sea Serpent - who was a not very subtle visual metaphor with a catch phrase to advertise it \"I'm comin' Beany boy, I'm COMIN'!\"and an old time melodramatic villain named Dishonest JohnThese main characters traveled around the world where they met much stranger characters. One of my favorites was the beatnick, the Wildman of Wildsville:I used this very gag in the 1988 new adventures of Beany and Cecil and the network exploded!\nClampett cartoons were always hip, just as he was. He kept up with cool trends all the way till the Beatles and then froze into his 1964 look with a Beatle haircut for the rest of his life. He knew The Beatles were the last truly cool thing and then everything pretty much went to ...you know.\nI'm sure most of you know that Beany Cecil was originally an Emmy award winning puppet show called Time For Beany that was probably even weirder than the later cartoon.\nDaws Butler and Stan Freberg manning the puppet arsenal for Bob Clampett!Willie Ito, the later cartoon designer also drew these great Beany and Cecil comics in the same style he drew the cartoons- a combination of Clampett, Jones, UPA and his own style. These are great drawings for you student types to copy by the way.\nHere's the whole comic!\nAll this great stuff has been out of circulation for decades and now it's here where you can enjoy them again!\n10 years ago a Beany and Cecil DVD came out and has been out of print for a while, but now there are a few left.\nThere is also finally a volume 2 - filled with classic Beany and Cecil cartoons, puppet shows and lots of great supplemental treats!\nBUY BOTH VOLUMES HERE!\nLots Of Extras!\nBob was a stickler for recording his history. He constantly did interviews with people and recorded all kinds of interesting things.\nThis 70 minute oral history is taken from recently discovered source material. There were three sources.\nA 1950 interview with Scenic artist and right hand man Bill Oberlin.\nA 1963 recorded conversation with his Bob Clampett's mother.\nAnd there was a 1978 interview with a close friend of Sody Clampett's.\nClampett fan, animator and historian Milt Gray edited together the definitive two and a half hour oral history on volume one.\nThis 70 minute continuation on Volume 2 gives some new insight including information about Clampett's Dad that previously none of the family knew. Bob always teared up when he talked about him. That was why it was such a shock when he went into as much detail as he did. It explains a bit of Bob's showmanship.\nBob Clampett Reads Milt Gross!\nClampett was a big fan of Milt Gross and knew him personally. In the supplemental material you can hear Bob reading along to Night in Front... while his kids see the original pages. Laughter and dog barking in the background.\nAlso, Rob Clampett did a brief audio interview with Milt's oldest son Herb and included pages of illustrations from some of the books.\nThere is the pencil test (the only one I've ever seen from one of dad's cartoons) and storyboard pages and layouts including deleted sequences from \"It's A Grand Old Nag.\"\nThe home movies of the 'coolest guy' with his portfolio in NYC in 1945.\nALL ABOUT BEANY AND CECIL"} -{"text": "The fallout of the Pelosi/Biden statements on abortion, and the Bishop's response, continues.\nOn September 15, the San Francisco Chronicle printed a column by Mr. Jon O'Brien, of \"Catholics for Choice\" a dissident group that supported Nancy Pelosi against our Catholic Bishop's. Fr. Malloy responded with a letter (unprinted) below. Today Mrs. Vicki Evans, the Respect Life coordinator of the Archdiocese of San Francisco, took Mr. O'Brien to school. This column appeared in today's issue of the San Francisco Chronicle.\nCatholic bishops have last say on abortion teachings\nSAN FRANCISCO CHRONICLE -- Thursday, September 18, 2008If you were a member of an environmental group and Big Oil tried to dictate to you what environmentalism really meant, what would your reaction be? Outrage at the audacity and arrogance of Big Oil? Disbelief that anyone would actually take seriously the apostasy presented?\nThis was the reaction of faithful Catholics who read Jon O'Brien's op-ed in The Chronicle (\"Pelosi views on abortion in synch with most Catholics,\" Sept. 15).\nJon O'Brien is the president of Catholics for Choice, an organization that has been condemned by the Catholic Church for its heretical views on abortion. Its board of directors includes some of the most ardently pro-abortion individuals in the country, like Kate Michelman, former president of NARAL, and Frances Kissling, former president of the National Abortion Federation. Are these the people to whom we should listen for a clarification of Catholic teaching? Or are these the organizations that stand to profit from unlimited abortion on demand?\nWould a high-profile Democratic leader who says they are Catholic, such as Speaker Nancy Pelosi, like to follow Catholic teaching? Sure, all things being equal. But all things are not equal. Abortion-rights activists are fundamental pillars of the Democratic Party, providing tens of millions of dollars in campaign contributions and enormous grass-roots energy.\nSo instead of admitting they are simply in the pocket of the abortion lobby, Catholic politicians like Speaker Pelosi come up with self-serving arguments to support their pro-abortion positions to try to convince America that the Catholic Church is run by polls.\nThe reality is that those who support unlimited abortion, for any reason at any time, represent the fringe position. A June 2007 poll by the New York Times, CBS News and MTV found that 62 percent of young adults disagree with abortion on demand.\nLast October, a CBS poll asked Americans about their \"personal feeling\" on abortion. Two out of three supported greater restrictions on abortion, with 34 percent saying it should be permitted only in cases such as rape, incest or to save the mother's life. A mere 26 percent said it \"should be permitted in all cases.\"\nAnd yet, Catholics for Choice has the audacity to challenge the U.S. Conference of Catholic Bishops on the church's teaching related to abortion. O'Brien's final line states that \"the bishops would better serve American Catholics by acknowledging their true priorities.\"\nIt is the responsibility of Catholic bishops to teach clearly what Christ in his church teaches about faith and morals, and to oppose erroneous, misleading and confusing positions when they are advanced. The Catechism of the Catholic Church states: \"Human life must be respected and protected absolutely from the moment of conception. Since the first century the Church has affirmed the moral evil of every procured abortion. This teaching has not changed and remains unchangeable. Direct abortion, that is to say, willed either as an end or a means, is grossly contrary to the moral law.\"\nIn matters of faith and morals - proclaimed either \"fallibly\" or \"infallibly\" by the Catholic Church - the bishops have an authoritative role as teacher. The faithful have the responsibility of accepting the teaching and adhering to it with a religious assent. The reason for this is eternal salvation. The idea that politicians can usurp this teaching authority is ridiculous.\nPosted by Gibbons"} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/lroworker/workflows/rft_job_workflow_test.go. Lines: 2646.\n\npackage workflows\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/database\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/lroworker/activities\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/lroworker/common\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\t\"github.com/fw-ai/fireworks/control_plane/protos/generated/temporal_activity\"\n\tresourcename \"github.com/fw-ai/fireworks/go/resource_name\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/mock\"\n\t\"github.com/stretchr/testify/require\"\n\t\"go.temporal.io/sdk/activity\"\n\t\"go.temporal.io/sdk/testsuite\"\n\t\"go.temporal.io/sdk/workflow\"\n)\n\n// mockUpdateRFTJobMetaInfoForTest is a mock implementation of UpdateRFTJobMetaInfo activity for testing\nfunc mockUpdateRFTJobMetaInfoForTest(ctx context.Context, input interface{}) error {\n\treturn nil\n}\n\n// registerMockRFTJobActivities registers common mock activities needed for RFT job workflow tests\nfunc registerMockRFTJobActivities(env *testsuite.TestWorkflowEnvironment) {\n\tenv.RegisterActivityWithOptions(mockUpdateRFTJobMetaInfoForTest, activity.RegisterOptions{\n\t\tName: \"UpdateRFTJobMetaInfo\",\n\t})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.AppendRFTTrainerLogsInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"AppendRFTTrainerLogs\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.RunCreateRlorK8sInput) (*activities.RunCreateRlorK8sOutput, error) {\n\t\treturn &activities.RunCreateRlorK8sOutput{\n\t\t\tK8sJobName: \"default-keep-alive-k8s-job\",\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\tJobStatusFile: \"gs://bucket/status.json\",\n\t\t}, nil\n\t}, activity.RegisterOptions{Name: \"RunCreateRlorK8s\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\treturn &activities.ReportRFTBillingCompleteOutput{Skipped: true, SkipReason: \"test default\"}, nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBillingComplete\"})\n}\n\nfunc TestHotReloadDeploymentRegionForRFT_H200PinsVirginia(t *testing.T) {\n\tinput := RFTJobWorkflowInput{\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H200_141GB,\n\t\t},\n\t}\n\n\tassert.Equal(t, gpb.Region_US_VIRGINIA_1, hotReloadDeploymentRegionForRFT(input))\n}\n\nfunc TestHotReloadDeploymentRegionForRFT_NonH200UsesDeploymentShapePlacement(t *testing.T) {\n\tinput := RFTJobWorkflowInput{\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t},\n\t}\n\n\tassert.Equal(t, gpb.Region_REGION_UNSPECIFIED, hotReloadDeploymentRegionForRFT(input))\n}\n\nfunc TestHotReloadDeploymentRegionForRFT_MissingTrainingConfigUsesDeploymentShapePlacement(t *testing.T) {\n\tassert.Equal(t, gpb.Region_REGION_UNSPECIFIED, hotReloadDeploymentRegionForRFT(RFTJobWorkflowInput{}))\n}\n\nfunc TestRFTJobWorkflow_SingleEpoch(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-123\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Mock child workflow execution\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: \"rollout-job-1\",\n\t\t\t\tEvaluationJobName: \"eval-job-1\",\n\t\t\t\tRLORJobName: \"rlor-job-1\",\n\t\t\t\tOutputModel: func() string {\n\t\t\t\t\tif input.TrainingConfig != nil {\n\t\t\t\t\t\treturn input.TrainingConfig.OutputModel\n\t\t\t\t\t}\n\t\t\t\t\treturn \"\"\n\t\t\t\t}(),\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-123\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-accoun"} -{"text": "This essay will describe the congruence between the philosophies and values supporting social entrepreneurialism and the philosophies and values supporting the New Public Health. This essay will also reveal my definition and values of social entrepreneurialism.\nMY DEFINITION OF SOCIAL ENTREPRENEURIALISM\nShane and Venkataraman (2000 cited in Baron & Shane 2005, p. 4) state that entrepreneurship is a process to understand how opportunities to create something new arise and are discovered or created by specific persons, who then use various means to exploit or develop them, thus producing a wide range of effects. According to Hisrich et al. (2005), there are four basic aspects of being an entrepreneur: the creation process, the devotion of the necessary time and effort, the willingness to assume the necessary risks, and rewards.\nConsidering the definition provided by Talbot et al. (2002) about social enterprise, I conclude that social entrepreneurialism is a nonprofit oriented business in which all of the profit it gets will be used for the sake of the community and to sustain its activities. I think social entrepreneur is someone who understands an emerged problem within her society which needs to be handled for the sake of the society. After recognizing the problem, she is then compelled to develop strategies and capture the opportunities to implement these strategies to overcome the problem. In this sense, social entrepreneurialism has many similarities with leadership.\nSomeone has to possess several characteristics to be a social entrepreneur, such as: high self-confidence, willingness to take the risks, creativity, have the ability to influence and motivate people. These characteristics also reflect leadership traits. I have mentioned in FLO activity 1 that leadership is the ability to influence and mobilize the other people to achieve their common goal or accomplish their duty. A social entrepreneur as well as a leader needs the other people to cooperate with in order to be able to attain the goal because she cannot achieve it by herself, instead she needs to work with or through the other people to reach the goal. To be able to influence and mobilize people toward the desired goal, she has to be able to communicate and share her vision and have confidence in herself as well as in her followers.\nTHE CONGRUENCE BETWEEN SOCIAL ENTREPRENEURIALISM PHILOSOPHIES AND VALUES AND THE NEW PUBLIC HEALTH PHILOSOPHIES AND VALUES\nEquality, equity and social justice are the underpinning values of the new public health. Equality means that everyone deserves the same opportunity to improve the quality of her life, while equity is dealing with the fairness in which someone may not get the same amount of resources as another person due to her condition. For example, every woman deserves to get access to family planning services. This is equality. However, some women may receive concession to implant Intrauterine Device (IUD) because they cannot afford them due to their economic conditions. This is equity. Social justice is the collective expression of the principle of equity (Talbot 2005). Social justice can be achieved through empowerment and participation. Both terms, empowerment and participation, indicate the involvement of the community to make social change to enhance their life quality.\nPeter Thomson (in Talbot et al. 2002) defines social entrepreneurialism as a bold attempt at redressing many of the issues that people who are marginalized in our society have, by building their confidence and their capacity to help themselves. It seeks to empower communities and build social capital. It supports and encourages community to work together and assists them to discover and fulfill their own potential.\nIn this term, I find that the philosophies and values underpinning social entrepreneurialism are congruent with the new public health philosophies and values. Both encourage participation of the community members and empower them to bring about change in their social conditions so that it will enhance and improve their life quality.\nHOW DO I VALUE THIS APPROACH\nI think empowering others means that we have to encourage them to participate in handling the problems arise in their community. By letting everyone to participate in overcoming these problems, we promote the equality, equity and social justice since it enables them to express their needs, feelings, and opinions. It also gives them the opportunities to find the best solution on these problems.\nEmpowering and encouraging others to participate in social change is not an easy thing to do. It needs skills, strong commitment and willingness to assume the risks and failures. I think leaders and social entrepreneurs share the same characteristics and skills so that they will be able to mobilize people to bring about change. In fact, social entrepreneurs are leaders because they possess the traits needed to be a leader and they implement leadership principles and skills into practice.\nIn brief, the philosophies and values underpinning social entrepreneurialism are congruent with the new public health philosophies and values. Social entrepreneurs share common characteristics with leaders.\nBaron, RA & Shane, SA 2005, Entrepreneurship: a process perspective, Thomson, South Western, Australia.\nBrotherhood of St Laurence, Melbourne, viewed 26 October 2008, http://www.bsl.org.au/main.asp?PageId=7&iMainMenuPageId=7\nHisrich, RD, Peters, MP, & Shepherd, DA 2005, Entrepreneurship, 6th edn, McGraw-Hill/Irwin, New York.\nhttp://en.wikipedia.org/wiki/Social_entrepreneurship viewed 26 October 2008.\nTalbot, C, Tregilgas, P, & Harrison, K 2002, Social enterprise in Australia: an introductory handbook, Adelaide Central Mission Inc., Adelaide, viewed 26 October 2008, .\nTalbot, L & Verrinder, G 2005, Promoting health: the primary health care approach, 3rd edn, Elsevier, Sydney, pp. 37-76.\nBy: Yulaecha P. I."} -{"text": "Harvard Law School is hosting in a couple of weeks what is certain to be a very interesting small conference on the Alien Tort Statute. I was lucky enough to be one of the invitees, addressing the issue of corporate liability under the ATS. I address the issue of corporate liability under the ATS, but am actually interested in it from a broader perspective, the \"jurisprudential\" perspective on the distinct and sharply divided \"communities of interpretive authority\" over such issues in the ATS as the status of corporate liability. I have written elsewhere recently (in the European Journal of International Law; I think a link directly to the paper in this post here) of the \"fragmentation of communities of interpretation and authority\" in international law. The ATS seems to me to offer a striking example of that. (Cross posted at OJ and VC.)\nCorporate liability can be thought of as a \"hinge\" issue in ATS jurisprudence - a \"hinge\" that under (an amalgamated reading of) current holdings serves to link \"international law\" to \"domestic law,\" as required by the two parts of the ATS. I don't think it is at all a correct reading of either international law or domestic law, but it seems to me an (arguably) accurate reading (there are always variations and cross-currents) of current cases and their holdings on corporate liability, including, for example, the latest Talisman ruling from the Second Circuit.\nIn addition to that, however, I conclude the paper (this is still in first draft, believe me, and far from even going up on SSRN as a working draft) with a speculation about whether the case law developing around corporate liability in the ATS will remain stable in a world in which the US chooses decline and allows the emergence of a genuinely multipolar world, a world in which China is a much, much bigger player, as in creditor and debtor:\nI do not think, however, that the final chapter has been written on corporate liability under the ATS. In the real world, I do not think that the pushback has begun to be felt in the US or in US courts. At that point, I suspect that some will wonder whether (from the standpoint of the 'progressive integrity' of international law, the perspective I am freely (and perhaps overly-imaginatively) attributing to a Professor Greenwood or Crawford on the basis of their Talisman declarations, not from a vastly more skeptical position such as my own) the jurisprudence of the ATS has not actually undermined a systematic development of international law norms with respect to civil liability, tort liability, corporate liability, and specific bodies of norms such as labor or the environment. The future historian of international law might well conclude that the era of ATS jurisprudence, far from advancing broadly shared norms, actually undermined the possibility of firmly enacting them, in what turned out to be a final gasp of US legal hegemony, before the Era of US Indebtedness, ‘Choosing Decline’, and Multipolarity set in.\nWhat happens, for example, when ATS suits start to be brought against Chinese corporations, for actions having no connection to the US save for the ATS itself? For very, very serious, uncontestable even abuses of labor, land, environment and other things in, say, Africa. The strictly legal questions would have been long settled under the jurisprudence of the ATS in lawsuits against MNCs based out of the US itself, Europe, Canada, or elsewhere in the industrialized democratic world (and whether those countries liked it or not). What happens then? The US government has taken a remarkably hands off attitude toward such litigation, under presidents of both parties – offering statements of interest on occasion, but not typically seeking, on some principled basis, simply to nip such litigation in the bud, rigorously and in every case in which there is no greater traditional jurisdictional base of the United States apart from the ATS itself, as contrary to the foreign policy interests or prerogatives of the political branches.\nWere China to weigh in, down the road, in a world of a debtor US, would the rules being made today remain stable? I have my doubts. I raise China as the most obvious real-politik example of a party that might have both the means and the inclination to make its displeasure known by rattling, even just a bit, the debtor’s chains in the global market of Treasury debt. What the might the US government, for example, say in a statement of interest to a court, in response to a court following well-established ATS precedents of corporate and secondary liability, but this time in a case against a Chinese corporation, in the world as newly defined by Secretary of State Clinton in one of her early statements – declining in particular to get too worked up about human rights as central to the US relationship with China?\nThe rules currently being evolved by US courts, departing from norms as understood by much of the rest of the world, seem to me rules of corporate liability made for a world in which the “universal” and the “international” can be imagined to be enacted through the ATS – mostly, however, because there is still an American hegemony. One can call that hegemony “universal” and “international,” I suppose – provided, however, that one cloisters oneself as strictly as possible within those particular communities of authoritative legal interpretation in which ‘universal’ and ‘hegemonic’ categories do not brush up against each other and catch each other out. Ironies and antinomies of the ATS - yet again."} -{"text": "t/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0, // No chunking\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n\tassert.Equal(t, input.OutputModel, result.FinalOutputModel)\n\tassert.Equal(t, int32(1), result.TotalEpochs)\n\tassert.Equal(t, int32(0), result.TotalChunks)\n\tassert.Len(t, result.EpochOutputs, 1)\n}\n\nfunc TestRFTJobWorkflow_WandbAuthenticationFailureFailsBeforeKeepAlive(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input *temporal_activity.WandbAuthenticateIn) (*temporal_activity.WandbAuthenticateOut, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"WandbAuthenticate\"})\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{JobName: \"validation-job-123\"}, nil\n\t\t},\n\t)\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\tenv.OnActivity(\"WandbAuthenticate\", mock.Anything, mock.Anything).Return(&temporal_activity.WandbAuthenticateOut{\n\t\tStatus: &gpb.Status{\n\t\t\tCode: gpb.Code_FAILED_PRECONDITION,\n\t\t\tMessage: \"wandb permission error. Use a wandb API key with write access to 'wrtn'.\",\n\t\t},\n\t}, nil)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-123\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tDatasetGcsUri: \"gs://datasets/train.jsonl\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: true,\n\t\t\tProject: \"darkhorse\",\n\t\t\tEntity: \"wrtn\",\n\t\t\tApiKey: \"accounts/wrtn/secrets/test-wandb-key\",\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tChunkSize: 0,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.Error(t, env.GetWorkflowError())\n\tassert.Contains(t, env.GetWorkflowError().Error(), \"wandb permission error\")\n\tenv.AssertCalled(t, \"WandbAuthenticate\", mock.Anything, mock.Anything)\n\tenv.AssertNotCalled(t, \"RunCreateRlorK8s\", mock.Anything, mock.Anything)\n\tenv.AssertNotCalled(t, \"RunCreateRlorHelm\", mock.Anything, mock.Anything)\n}\n\nfunc TestRFTJobWorkflow_AppendsTrainerLogsWhenEnabled(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{JobName: \"validation-job-123\"}, nil\n\t\t},\n\t)\n\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(ni"} -{"text": "Bed bugs are small and can hide in small spaces especially in mattresses, headboards and bed frames where they have access to people to bite. Adult bedbugs have brownish, oval flat bodies about ¼-inch long. After feeding on animal or human blood, their bodies turn reddish and swell. They hide in crevices and cracks near a blood meal during the day and come out to feed at night.\nBed bug Bites\nBed Bugs hide during the day and usually bite people at night. They solely feed on blood which they withdraw by piercing and breaking the skin. They feed to become engorged for a few minutes and then crawl back to their hiding place. Most bedbug bites are unnoticeable and painless at first, but they become itchy welts with time. The bites are mainly around exposed areas of the skin while sleeping and do not have a red spot in the center like most flea bites.\nLook for the bugs in places where bedbugs are biting. Start with cracks and crevices in head/foot boards, supports and attached side rails of the bed. Look for dark spots of bedbug excrement on mattresses, inspect the box springs for any rips that might act as hiding places and examine rips in your mattress as well. If you have any items stored underneath your bed, remove and examine.\n- Inspect all cracks and crevices\n- Empty and inspect nightstands and dressers\n- Inspect upholstered sofas and chairs\n- Inspect other places like edge of the wall, carpets, cracks in ceiling and wood molding\nSigns of bed bugs infestation\n- Itching welts\n- Blood stains on pillowcases and bed sheets\n- Nymphs Shed skin, bedbug fecal spots or egg shells in hidden places\n- A musty offensive odor\nHow to eliminate bed bugs\nFor effective treatment and control of bedbugs, follow an integrated pest management approach (IPM). This approach includes multiple strategies like preventive measures, heat treatment, exterminator treatment, store bought spray, natural remedies and industrial strength pesticides.\nPreventive measures to kill bedbugs\nSome home remedies and preventive measures can be used to prevent infestation or the spread of bedbugs. If you suspect your luggage, clothing or second hand furniture has bedbugs, consider treating with chemicals or by heating before bring them in the house. Other preventive measures include,\n- Vacuum your house and dispose the content in a sealed trash bag\n- Repair cracks and glue down wallpapers\n- Encase mattresses, pillows and box springs with air tight covers to prevent bedbugs from entering or escaping. Keep the cover for at least one year to ensure all bedbugs are dead.\n- Use bedbugs monitor traps\n- De-clutter your house especially under and around the bed\nThere are many methods on how to kill bedbugs, ensure that the method you use is legal, safe and cost effective. Here are some of the methods that you can consider.\nOne great product that saves money and is safe and effective is Defensive End!, a bed bug killer spray that is natural and contains no pyrethrins from plants which can cause toxic neural damage to mammals.\nHome remedies & Treatments for bed bugs\nHome remedies like applying silica gel around your bed and mattress can help in killing bedbugs. You can also use tree oil or tea-tree to clean the house to prevent and eradicate bedbugs. Vacuum your bedroom frequently and get rid of nuisance bedbugs.\nThis is a non-chemical method that is safe to use and cost effective. Affected items can be laundered with 122F/50ºC minimum and dried in high temperature. Other infected smaller items that cannot be laundered can be treated by killing the bedbugs with heat. This can be done by wrapping the items in plastic bags and placing them in a sunny and hot location of 122F/50ºC minimum temperature for a few days. However this method is not effective where the infestation has spread and the entire apartment needs to be de-infested.\nA simple device like electric kettle can also be used to generate steam which is pointed to crakes and craves to kill bedbugs and the eggs.\nYou can use residual insecticides or industrial strength pesticides to kill bedbugs. Insecticides can kill bedbugs by penetrating cracks and reaching the hidden areas. Use of chemicals to kill bedbugs can be harmful to you and your family. Follow the directions of use and only use products that are tested and registered by the relevant bodies.\nGetting rid of bedbugs is a step-by-step process which can prove challenging and time consuming for many. Consider hiring a professional exterminator who is experienced in pest control and management. The initial cost may seem expensive, but the exterminator’s contract will end when your home is bedbug free thus saving you money in the long run."} -{"text": "Monday News, November 12\nFatal Auto Accident Claims Remsen Life\n(Le Mars) -- A fatal auto accident occurred in rural Plymouth County on Saturday afternoon. The accident happened at about 2:30 p.m. near the intersection of Polk Avenue and 190th Street. 17 year-old Matthew Gerrietts of Remsen died as a result of the accident. Deputies, Remsen Fire and Ambulance and the Iowa State Patrol responded to the scene and three persons were taken to Floyd Valley Hospital in Le Mars. Gerrietts was the driver of the vehicle and was pronounced dead at the hospital a short time later. The other two individuals are being treated at Floyd Valley. The preliminary investigation indicates that the 1998 Ford Explorer was traveling south on Polk Avenue, when Gerrietts lost control of the vehicle and it rolled several times, throwing the driver from the vehicle. The Plymouth County Sheriff's Office is being assisted by the Iowa State Patrol and the Plymouth County Medical Examiner's Office.\nCity Council To Hold Special Meeting\n(Le Mars) -- The Le Mars City Council has scheduled a special meeting for Monday, November 12th at the city council chambers. The meeting will begin at 1:00 p.m. and council members will continue their discussion of the 27th Street RISE Improvements. RISE stands for Revitalize Iowa's Sound Economy, and it is governed by the Iowa Department of Transportation. The city council is expected to award the contract on Monday, with the IDOT's concurrence. Construction could begin as early as next Friday. The RISE grant allows for 50 percent funding to be financed by the state, and 50 percent local funding from the Joint Urban Renewal using Tax Increment Financing or TIF dollars. TIF allows the city to borrow money that will be paid in the future.\nLe Mars School Board To Meet Monday Evening\n(Le Mars) -- The Le Mars Community School Board will meet this evening to discuss the teacher compensation and leadership task force report. Dr. Jason Glass, Director of Iowa Department of Education and Linda Fandel, Special assistant to the Governor for Education Policy presented the task force report at a meeting in Sioux City on November 1st. The board members that attended the meeting will share the information. Dr. Todd Wendt, Superintendent of Schools will present to the board a report on discussions being held between Le Mars Community, Gehlen Catholic, and Western Iowa Tech Community College to provide post-secondary opportunities for juniors and seniors. The Board of Education is also expected to discuss the upcoming State School Board Convention scheduled for this week.\nConstruction Worker Killed In Sioux City\nSIOUX CITY, Iowa (AP) - The death of a construction worker is being investigated in Sioux City.\nPolice say the worker died Saturday while helping build the new Sabre Industries campus in a Sioux City industrial park.\nThe incident was reported around 1:30 p.m. Saturday. Details of how the worker died weren't immediately available.\nPolice did not immediately release the name of the worker who was killed.\nParole Board Proposes Changes\nDES MOINES, Iowa (AP) - The Iowa Parole Board is proposing to reduce the number of board votes needed to parole high-risk inmates but would toughen the risk assessments. The legislature's Administrative Rules Committee is scheduled to vote Tuesday on the proposal. The proposal would trim the number of votes to three needed for parole from the five votes needed under current rules guiding the five-member board. The proposal also adds new risk assessments, including those that would rate the likelihood that an inmate would engage in violent crimes after being released. Opponents say that despite the new assessments, the proposal raises risks to the public.\nBurlington Man Fined For Not Listening To Judge\nBURLINGTON, Iowa (AP) - An Iowa man learned an expensive lesson about following a judge's orders last week.\nThe Hawk Eye reports that Des Moines County District Associate Judge Mark Kruse added $5,000 to David Good's bond on Friday after Good failed to stay quiet.\nAfter Kruse, increased the 45-year-old Burlington man's bond to $15,000, he ordered deputies to remove him from the courtroom.\nGood had been making an initial appearance on a charge of domestic abuse.\nGood tried to discuss details of the fight he had with his wife's son, but Judge Kruse didn't want to get into evidence in the case at Friday's hearing.\nGood was arrested early Friday after the altercation with his wife's son.\nGood remained in custody Sunday afternoon.\nVietnam Veteran Gets Ring Back\nDES MOINES, Iowa (AP) - A Vietnam veteran has regained a special ring he lost at Lake Delhi 41 years ago.\nJohn Jones served in what was South Vietnam during parts of 1968 and 1969. At that time he had a gold ring made that included his initials and Social Security number, which also served as his Army serial number.\nHe lost it in 1971 while swimming at Lake Delhi.\nWhen the lake's dam broke in 2010, collectors using metal detectors scoured the lake bottom. One of them, Steve Gola, from Grayslake, Ill., found Jones' ring.\nIt took a couple of years to locate Jones, but Gola finally was able to return the ring to him during a Veterans Day event at Veterans Memorial Auditorium in Des Moines.\n|< Prev||Next >|"} -{"text": "l)\n\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: \"rollout-job-1\",\n\t\t\t\tEvaluationJobName: \"eval-job-1\",\n\t\t\t\tRLORJobName: \"rlor-job-1\",\n\t\t\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-123\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{Enabled: false},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t\tTrainerLogsEnabled: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\tenv.AssertExpectations(t)\n}\n\nfunc TestRFTJobWorkflow_MultipleEpochs(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-123\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Track epoch executions\n\tepochCount := 0\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tepochCount++\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: fmt.Sprintf(\"rollout-job-%d\", epochCount),\n\t\t\t\tEvaluationJobName: fmt.Sprintf(\"eval-job-%d\", epochCount),\n\t\t\t\tRLORJobName: fmt.Sprintf(\"rlor-job-%d\", epochCount),\n\t\t\t\tOutputModel: func() string {\n\t\t\t\t\tif input.TrainingConfig != nil {\n\t\t\t\t\t\treturn input.TrainingConfig.OutputModel\n\t\t\t\t\t}\n\t\t\t\t\treturn \"\"\n\t\t\t\t}(),\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-456\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/final-output\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 3, // Multiple epochs\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0, // No chunking\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t,"} -{"text": "Amar’e Stoudemire started the 2013 season hurt. According to the New York Times, “it was unclear if Stoudemire was injured during the Knicks’ game against the Toronto Raptors on Friday, the only time he has played this preseason, or if his knee worsened over time.” I hurt myself today To see if I still feel I focus on the pain The only thing that’s real STAT played his first game of the season on January 1st, and his last regular season game on March 7th. There was no indication that he was injured on a specific play against the Thunder. …continue reading\n[New York Times] Warriors Top Suns 91-77 for Vegas League Title (Tue, 23 Jul 2013 03:07:12 GMT) Ian Clark scored 33 points and hit seven of 10 3-pointers to lead the Golden State Warriors to a 91-77 victory over the Phoenix Suns in the championship game of the NBA’s Vegas Summer League on Monday night.\nI thought it’d be good to gather some of the brain trust and ask some questions about what they saw of the Knicks during summer league. 1. The Knicks have invited Jeremy Tyler to training camp. Assuming he makes the team, how many games into the season before Woodson actually trusts him to warrant more than token minutes? David Crockett: Not before December unless there is injury. One exception. If he starts out playing defense, like Shumpert did, he’ll get some rope. Thing is, we probably need him to score. Robert Silverman: Welp, assuming that Kenyon Martin or Lamar Odom …continue reading\nOn Saturday evening, Frank Isola of the NY Daily News wrote an article about potential troubles facing the Knicks heading into next season. The biggest threats are, of course, New York’s Eastern Conference rivals: Brooklyn’s mammoth upgrades, combined with expected improvement from Chicago, Indiana and Miami, pose a large road block for the Knicks in their quest to make the NBA Finals. The other major issue cited by Isola concern the team’s roster construction and a pair of rather curious summer moves: The three-year contract given to J.R. Smith, despite a knee injury for which Earl immediately underwent surgery; and …continue reading\nI’m sure you’re all enjoying a relaxing Sunday evening (or an absolutely drudgerous/dreary, getting-all-those-annoying-chores/errands-that-you-couldn’t-do-Monday-through-Friday-and-procrastinating-the-hell-out-of-getting-done-on-Saturday-’cause-hell-it’s-the-weekend-I-promise-I’ll-get-to-it-get-off-my-back-already Sunday). Whether you’re draped languorously over your vintage 19th Century fainting couch, sipping on an adult beverage and basking in perfect 72 degree air conditioned air or you’re going to procrastinate a wee bit longer, I chatted with the guys at Talkinhoopz about all the sights, sounds and smells of the Las Vegas Summer League. Dorrell Wright and former Heatle Mark Strickland get gabby too. Link’s here. Have a good’n!\n[New York Daily News] Isola: Knicks could be headed for a fall (Sun, 21 Jul 2013 02:20:12 GMT) This was supposed to be the month when Carmelo Anthony and Chris Paul would finally become partners in New York, forming the perfect free-agent marriage of superstar scorer and superstar point guard. [New York Times] Sports Briefing | Pro Basketball: Chicago’s Balanced Attack Sinks the Liberty (Sun, 21 Jul 2013 03:35:29 GMT) The Sky rookie Elena Delle Donne finished with a career-low 7 points, but Chicago had five scorers in double digits. [New York Times] Silver Stars Too Much for Stars 60-52 …continue reading\n[New York Times] Sports Briefing | Basketball: Delle Donne Leads W.N.B.A. All-Star Voting (Fri, 19 Jul 2013 04:05:18 GMT) Elena Delle Donne of the Chicago Sky became the first rookie to lead the W.N.B.A. All-Star voting when the starters were announced Thursday. [New York Times] In Brooklyn, New Nets Stars Are Clear About Their Goal (Fri, 19 Jul 2013 03:24:51 GMT) “Champion,” “champions” and “championship” were said a combined eight times in the first five minutes of the Nets’ news conference to introduce Kevin Garnett, Paul Pierce and Jason Terry. [New York Times] Delle Donne Is Top Vote Getter for …continue reading"} -{"text": "If you haven't played Titanfall yourself yet, you may be one of those wondering: what the hell is with all the hype around that game? It's just another shooter, right? Not quite. It's better.\nI'll admit it—I'm one of those people excited about Titanfall; one of those people who can't stop talking about Titanfall or telling her friends to start playing the beta with her. Who keeps saying that this is what first-person shooters have been missing. That it's a reinvigorated first-person shooter. And it's not just about the Titans (although it's very much about the Titans).\nLet me explain, at least from my perspective, why this hype is justified.\n1. Enemy AI\nNPCs? What? Hear me out.\nThere's a lot of action going on in a Titanfall multiplayer match, but not all of it is controlled by human players. Each team gets a group of computer-controlled teammates. Enemy fodder in the form of grunt AI means that less skilled players can keep up with everyone else. You're not stuck watching kill cams of people demolishing you with far superior weapons, realizing it'll take you ages before you can level up enough to get your hands on one of those.\nYou don't feel hopeless playing Titanfall. You feel encouragement. Every goal—every weapon you lust over—is one that excites you, not that you dread just thinking about. Every kill—even the easy AI ones—gets you closer to leveling up and therefore closer to those unlocks. So even if you can't seem to kill other pilots with the frequency as those players on the top of your team's leaderboard, you can still get a feel for success on the battlefield.\nOne thing is true of all first-person shooters: the more you play, the better you get. But as opposed to a series like Call of Duty where the thought of getting shot down every round without so much as getting to mutter a curse of outrage in before it's stifled, Titanfall gives you some amount of reward while playing. It's still challenging and there's still room for competition without completely dismissing players who can't quite handle the game on that level just yet. And if you're just too good for the grunt kills, they're easily avoidable and identifiable on the map. It's better for everyone.\nTitanfall takes the typical run-and-gun experience and turns it into something of a battle ballet. You can run on a slant against walls, double-jump with a jetpack and grab onto high ledges. Stringing them all together lets you practically glide through the maps. This is expert-level movement.\nInstead of just running face-first or flanking your way to your target like in most first-person shooters, you can maximize the effectiveness of your knowledge of the map and of people's predictable behavior on it by zigzagging between buildings, from high up on their walls. You're not beholden to the layout of just the innards of buildings and obstacles on the field outside. You don't have to take on a Titan from a vulnerable position on the ground—you can sprint and crawl your way up buildings for the height advantage.\nGames like Brink have experimented with upwards movement before, but it's never quite been as well-executed as this. And it's a trend that I'm happy to see more of and hope to continue to be impressed by.\n3. The Mechs, Obviously\nEveryone can get into a Titan. From the moment the game starts a counter on the screen lets you know how long you've got until your Titan arrives. It's not one of those elusive gold medal achievements that only the best of the best can grab. Sure, the more you kill, the more time gets knocked off your timer, and the faster you can get your hands on your big metal suit. But the important distinction here is that everyone gets a chance at rampaging around in the game's best, most powerful weapon. You're not limited to experiencing the game based on the confines of your skill level. Of course, the better you are the more the game will open up to you—that's just the nature of any multiplayer experience. It's fun at the top.\nBut making sure everyone has a shot at the game's best feature is one of the game's smartest design choices.\nEven if you're not in a mech you still have a chance at taking one down as a lowly pilot, too. You can leap onto the mech's back and shoot the wiring in its head until it falls to its knees or work your way up a tall building to call up an anti-titan RPG to shoot the hell out of it from a safe distance. Power is an open opportunity for everyone, and it's never crippling but rather overpowered in the best of ways.\nTitanfall is accessible, but not in a way that ostracizes its more skilled players. Think about it: what is the most cited reason people stay away from playing even well-made first-person shooters? It's an easy answer, everyone knows: all those 12-year-olds we like to joke about who have way too much free time to practice. It puts adults with maybe a spare hour or two to play at a huge disadvantage. And it's just not fun playing on an uneven field. So a well-made game feels like a bad experience. How can that be, right? It doesn't really make that much sense. Or at least it shouldn't.\nBut Titanfall seems to have found a way to bridge that gap. In the roughly two days I've been playing the beta, I've found that there are still good rounds and rounds you could've done better in, but it's never overwhelmingly negative. Failures aren't crushing, they're motivations for the next round. And that's what first-person shooters have been missing: a way to bring all kinds of players into one battlefield without making everyone want to chuck the controller aside in favor of a less...social game. And, yeah, maybe everyone (including myself) has been going on about this game a little too hard. But I can't really blame them, either."} -{"text": " env.GetWorkflowResult(&result))\n\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n\tassert.Equal(t, input.OutputModel, result.FinalOutputModel)\n\tassert.Equal(t, int32(3), result.TotalEpochs)\n\tassert.Equal(t, int32(0), result.TotalChunks)\n\tassert.Len(t, result.EpochOutputs, 3)\n}\n\nfunc TestRFTJobWorkflow_WithEvaluationDataset(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow - should validate both datasets\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\t// Verify that both datasets are being validated\n\t\t\tassert.Len(t, input.DatasetNames, 2)\n\t\t\tassert.Contains(t, input.DatasetNames, \"accounts/test-account/datasets/training\")\n\t\t\tassert.Contains(t, input.DatasetNames, \"accounts/test-account/datasets/evaluation\")\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-789\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: \"rollout-job-1\",\n\t\t\t\tEvaluationJobName: \"eval-job-1\",\n\t\t\t\tRLORJobName: \"rlor-job-1\",\n\t\t\t\tOutputModel: func() string {\n\t\t\t\t\tif input.TrainingConfig != nil {\n\t\t\t\t\t\treturn input.TrainingConfig.OutputModel\n\t\t\t\t\t}\n\t\t\t\t\treturn \"\"\n\t\t\t\t}(),\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-789\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluationDataset: \"accounts/test-account/datasets/evaluation\", // With evaluation dataset\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: false,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n}\n\nfunc TestRFTJobWorkflow_ChildWorkflowFailure(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-fail\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\n\t// Mock child workflow to fail\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\treturn nil, fmt.Errorf(\"epoch workflow failed: training error\")\n\t\t},\n\t)\n\n\t// Mock cleanup activity that will be called on failure\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAcco"} -{"text": "Trouble Was His Business -- Raymond Chandler\nMarch 28, 2009 | 10:00 am\nTour Casts New Light on Raymond Chandler's Old L.A.\n* A Minnesota couple trace the steps of the novelist's best-known character.April 4, 2004\nBy Erika Hayasaki, Times Staff Writer\nBonnie Olson stood in the lobby of the Oviatt Building on Olive Street downtown on Saturday, beneath the ceilings adorned with triangular glass, and read a passage from the Raymond Chandler novel \"The Lady in the Lake,\" in which he described this very setting.\n\"The sidewalk in front of it had been built of black and white rubber blocks. They were taking them up now to give to the government, and a hatless pale man with a face like a building superintendent was watching the work and looking as if it were breaking his heart,\" she read, explaining that the structure was called the Treloar Building in the book.\n\"The images he's able to evoke of Los Angeles and the past are powerful, maybe more powerful than actually seeing it in reality,\" said Olson, who led eight people on a walking tour of settings for Chandler's books.\nOlson and her husband, Brian, were in town -- from Minnesota of all places -- to lead tours based on their new guide, \"Tailing Philip Marlowe.\"\nThe self-published guide, available at Caravan Books on Grand Avenue, points out sites mentioned in Chandler's books, whose best-known character was private detective Philip Marlowe.\nOlson said she admires Chandler's work because of his poignant storytelling, language and dialogue. He is studied along with great poets, writers and essayists, she said. Many consider him to be one of Los Angeles' quintessential writers, who weaved real places, people and events into his fiction, a strength that inspired fellow mystery writer Ross MacDonald to write: \"Chandler wrote like a slumming angel and invested the sun-blinded streets of Los Angeles with a romantic presence.\"\nFor several decades, Olson, an English teacher, and her husband, who works for the city of Minneapolis, have been enchanted by Chandler's descriptions of Los Angeles, like the steps of City Hall, where Marlowe lighted a cigarette as the cold wind blew in \"Trouble Is My Business.\" Then there was the Bradbury Building on South Broadway about which Chandler wrote: \"The dark narrow lobby was as dirty as a chicken yard\" in \"The High Window,\" in which the structure was called the Belfont Building.\nThe 2 1/2-hour tour began at the Oviatt Building and continued toward the Los Angeles Public Library, which Chandler mentioned in \"The Long Goodbye.\"\nThe group headed to Bunker Hill, stopping at the top of the mothballed Angels Flight cable trolley, which Chandler described in \"The High Window.\"\nThe group hiked to the 2nd Street tunnel, which Chandler compared to the barrel of a gun in \"The Big Sleep\": \"The muzzle of the Luger looked like the mouth of the Second Street tunnel.\"\nWhen the couple visited Los Angeles three years ago, they wanted to explore places mentioned in the novels, which captured the city in the 1930s and '40s. But they said they could not find a guide. So they returned home and combed through all of Chandler's stories, flagging descriptions of settings with Post-it notes.\nThen the Olsons visited Los Angeles again, searching for the sites, and spent hours in the library researching the city's architectural history.\nThe couple put together the 112-page guidebook with the help of family members and a printer in Fargo, N.D., thinking they could use the books as Christmas gifts.\n\"We did it to have fun together,\" Bonnie Olson said. \"We had no idea it was going to be such a niche.\"\nAustralian native Heath Ryan, 32, a fan of Chandler's book \"Playback,\" moved to Los Angeles three years ago. He said he already had an idea of what the city was like from Chandler's descriptions.\n\"You get here and feel almost familiar with this place, even though you have never been here,\" Ryan said.\nRay Chin, 32, a downtown resident, said Chandler's work has helped him understand how the city has evolved.\n\"It isn't so much the images of the city,\" Chin said. \"It's the historical knowledge he gives about the city. It's fascinating to see all of the changes.\"\nOn Saturday, those on the tour hiked up to Bunker Hill, where they rested on rows of marble benches in a courtyard overlooking a pond, surrounded by towering skyscrapers. The outdoor cafe tables were mostly empty, and a hair salon was closed. Beneath the courtyard, homeless men and women slept on the grass, and the stairs smelled like urine.\nMany years ago, Chandler described the setting, in \"The High Window,\" like this: \"Bunker is old town, lost town, shabby town, crook town.... Out of the apartment houses come women who should be young but have faces like stale beer; men with pulled-down hats and quick eyes that look the street over behind the cupped hand that shield the match flame; worn intellectuals with cigarette coughs and no money in the bank; fly cops with granite faces and unwavering eyes; cokies and coke peddlers.\"\nOlson read that passage and her husband explained that this was the neighborhood where Marlowe found a dead body in an apartment.\n\"It was a romantic time, a different time,\" Ryan said. \"There were no freeways. It was the center of the city. Now it feels a bit dead.\"\nNote: To mark the 50th anniversary of Raymond Chandler's death, the Daily Mirror is revisiting some of The Times' stories about his life and influence. We invite the Daily Mirror's readers to share their thoughts."} -{"text": "gnuplot - an interactive plotting program\ngnuplot [ X11 options ] [file ...]\nGnuplot is a command-driven interactive function plotting program.\nIf files are given, gnuplot loads each file with the load command, in\nthe order specified. Gnuplot exits after the last file is processed.\nHere are some of its features:\nPlots any number of functions, built up of C operators, C library func-\ntions, and some things C doesn’t have like **, sgn(), etc. Also sup-\nport for plotting data files, to compare actual data to theoretical\nUser-defined X and Y ranges (optional auto-ranging), smart axes scal-\ning, smart tic marks.\nLabelling of X and Y axes.\nUser-defined constants and functions.\nSupport for many output devices and file formats\nShell escapes and command line substitution.\nLoad and save capability.\nAll computations performed in the complex domain. Just the real part\nis plotted by default, but functions like imag() and abs() and arg()\nare available to override this.\nGnuplot provides the x11 terminal type for use with X servers. This\nterminal type is set automatically at startup if the DISPLAY environ-\nment variable is set, if the TERM environment variable is set to xterm,\nor if the -display command line option is used. For terminal type x11,\ngnuplot accepts the standard X Toolkit options and resources such as\ngeometry, font, and background. See the X(1) man page for a description\nof the options. In addition to the X Toolkit options:\n-clear requests that the window be cleared momentarily before a new\nplot is displayed.\n-gray requests grayscale rendering on grayscale or color displays.\n(Grayscale displays receive monochrome rendering by default.)\n-mono forces monochrome rendering on color displays.\n-persist lets plot windows survive after main gnuplot program exits.\n-raise raises the plot window after each plot.\n-noraise does not raise the plot window after each plot.\n-tvtwm requests that geometry specifications for position of the window\nbe made relative to the currently displayed portion of the virtual\nThese options may also be controlled with resources in your .Xdefaults\nfile. For example: gnuplot*gray: on .\nGnuplot provides a command line option (-pointsize v) and a resource\n(gnuplot*pointsize: v) to control the size of points plotted with the\n\"points\" plotting style. The value v is a real number (greater than 0\nand less than or equal to ten) used as a scaling factor for point\nsizes. For example, -pointsize 2 uses points twice the default size,\nand -pointsize 0.5 uses points half the normal size.\nFor monochrome displays, gnuplot does not honor foreground or back-\nground colors. The default is black-on-white. -rv or gnuplot*reverseV-\nideo: on requests white-on-black.\nFor color displays gnuplot honors the following resources (shown here\nwith default values). The values may be color names in the X11 rgb.txt\nfile on your system, hexadecimal RGB color specifications (see X11 doc-\numentation), or a color name followed by a comma and an intensity value\nfrom 0 to 1. For example, blue,.5 means a half intensity blue.\nWhen -gray is selected, gnuplot honors the following resources for\ngrayscale or color displays (shown here with default values). Note that\nthe default background is black.\nGnuplot honors the following resources for setting the width in pixels\nof plot lines (shown here with default values.) 0 or 1 means a minimal\nwidth line of 1 pixel width. A value of 2 or 3 may improve the appear-\nance of some plots.\nGnuplot honors the following resources for setting the dash style used\nfor plotting lines. 0 means a solid line. A 2 digit number jk (j and k\nare >= 1 and <= 9) means a dashed line with a repeated pattern of j\npixels on followed by k pixels off. For example, ’16’ is a \"dotted\"\nline with 1 pixel on followed by 6 pixels off. More elaborate on/off\npatterns can be specified with a 4 digit value. For example, ’4441’ is\n4 on, 4 off, 4 on, 1 off. The default values shown below are for\nmonochrome displays or monochrome rendering on color or grayscale dis-\nplays. For color displays, the defaults for all are 0 (solid line)\nexcept for axisDashes which defaults to a ’16’ dotted line.\nThe size or aspect ratio of a plot may be changed by resizing the gnu-\nThomas Williams, Pixar Corporation,\nand Colin Kelley.\nAdditions for labelling by Russell Lang, Monash University, Australia.\nFurther additions by David Kotz, Dartmouth College, New Hampshire, USA\n(formerly of Duke University, North Carolina, USA).\nSee the help bugs command in gnuplot.\nSee the printed manual or the on-line help for details on specific com-\n4th Berkeley Distribution 03 January 2001 GNUPLOT(1)\nMan(1) output converted with"} -{"text": "untID: \"test-account\",\n\t\tJobID: \"test-job-fail\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\terr := env.GetWorkflowError()\n\trequire.Error(t, err)\n\t// After preserving error types, the error message comes directly from the child workflow\n\tassert.Contains(t, err.Error(), \"epoch workflow failed\")\n}\n\nfunc TestRFTJobWorkflow_FirstEpochWithWarmStart(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\n\t// Register workflows\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Mock dataset validation\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-123\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Capture the training config passed to the epoch workflow\n\tvar capturedTrainingConfig *gpb.BaseTrainingConfig\n\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tcapturedTrainingConfig = input.TrainingConfig\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: \"rollout-job-1\",\n\t\t\t\tEvaluationJobName: \"eval-job-1\",\n\t\t\t\tRLORJobName: \"rlor-job-1\",\n\t\t\t\tOutputModel: input.TrainingConfig.OutputModel,\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\twarmStartModel := \"accounts/test-account/models/warm-start-model\"\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-warm-start\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\t// Note: BaseModel is not set when using WarmStartFrom\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\tWarmStartFrom: warmStartModel,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\t// Verify that the first epoch received the warm start model in WarmStartFrom field\n\tassert.NotNil(t, capturedTrainingConfig)\n\tassert.Equal(t, warmStartModel, capturedTrainingConfig.WarmStartFrom,\n\t\t\"First epoch with warm start should use WarmStartFrom field\")\n\tassert.Empty(t, capturedTrainingConfig.BaseModel,\n\t\t\"First epoch with warm start should have empty BaseModel\")\n}\n\nfunc TestRFTJobWorkflow_WithHotReloadDeployment(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tre"} -{"text": "I'm forwarding your text to TT for you, with this response.\nMy response is, \"Thank you for the information.\"\nIf I understood you correctly, most leaks are not caused by lightning,\nbut some are. In some of those cases, lightning arced between another\nconductor and the pipe. Grounding of power utilities, while it may be\nadequate for AC safety, is suspect in some cases of lightning damage.\nThere may also be electrolysis caused by dissimilar metals in a circuit\nleading to the plumbing.\nI agree with you. Hope I didn't mis-state your information. Please\ncorrect me if I did.\nMany thanks, es 73 de Red\n>(Red: most of the time, my posts don't show up on\n>the list, reasons unknown, please forward this to the\n>list for me if it doesn't. Thanks)\n>On 12 Jul 2006 at 17:39, Red wrote:\n>>Lightning may have been incidental to the pinhole leaks. The water in\n>>some communities slowly corrodes copper pipes and causes pinhole leaks.\n>>I believe it is a result of acidic water, but I don't remember for sure\n>>what compound or ion in the water attacks the copper.\n>>73 de WOØW\n>I locate water leaks for a living, all day, 5 days a week....in FL.\n>Yes, water chemistry is responisble for the vast majority of leaks,\n>But, relative to the below questions... YES! Lightning absolutely\n>DOES cause numerous water leaks. Usually in the form of a\n>hole where it either arcs over to reinforcing mesh or rebar, or\n>else it makes less dramatic holes where \"apparently\" it discharges\n>into the soil. As most of us are probably aware, either the cold water\n>pipe, or possibly both cold and hot, are commonly tied to the\n>ground/neutral at the breaker panel. In 15 years of doing this, I\n>can think of only one instance where it was apparent that lightning\n>struck a hose bibb on the outside of the home as means of getting\n>into the plumbing... other than that, in most cases it seemed to\n>me that the lightning came in via the electrical mains. Of course,\n>that's not scientific, but it IS my opinion based on experience.\n>All \"reasonably modern\" homes plumbed with copper hereabouts\n>are plumbed with \"soft\" copper, i.e. copper that comes in rolls\n>rather than straight sticks, with the connections all being made\n>at above ground manifolds concealed within walls, the idea being\n>specifically to avoid any underground solder joints.\n>I've never seen or heard of a solder joint failing due to a lightning\n>strike. FWIW there are still a lot of \"hard copper\" plumbed homes\n>with the joints underneath, and I've seen any number of leaks at\n>solder joints in them, but not directly attributable to lightning strikes.\n>Of course, you can't melt solder joints in a pipe full of water anyhow..\n>FWIW I did have one customer whose home took a lightning strike,\n>with the leak making itself evident in the form of loss of pressure,\n>along with a high flow rate at the water meter... it was due to a\n>PVC pipe in the yard rupturing, not from the strike, I suspect, but\n>rather a huge spike in pressure when the water in the copper lines\n>in the home was suddenly heated. Again, that's not scientific, but\n>that's the way it appeared to have happened.\n>\"Most\" homes here are now being plumbed with CPVC due to the\n>effects of the water, and there are rumblings about changing the\n>building codes to eliminate the use of copper. Other than that, it\n>seems to depend on whatever the architect specifies.\n>On the other hand..... I have reason to think that the ground/neutral\n>coming off the pole is not always at \"zero volts\" relative to ground, and\n>I therefore have to suspect electrolysis is at least partially behind\n>\"some\" leaks... and I don't know who the genius was that decided\n>that plain ol' rebar was acceptable as a ground rod at the meter,\n>but tying dissimilar metals together with wires just *can't* be a good\n>thing, either... and I doubt a rusty steel rod is particularly effective\n>at anything, let alone keeping a strike out of good old copper pipes\n>buried the length and breadth of a home.\n>>>I can't confirm this first hand, but I have heard reports of lightning\n>>>producing pin hole leaks in copper water pipes. Does anyone have any\n>>>good data on this? Maybe the problem ocurrs ar the soldered connections?\nTowerTalk mailing list"} -{"text": "(c) Copyright 2010. Library Journals LLC, a wholly owned subsidiary of Media Source, Inc. No redistribution permitted.\nAs this book's title suggests, musician and Talking Heads cofounder Byrne (Bicycle Diaries) brings the same ambition and wide-ranging focus to his writing that has always been present in his music and visual art. In chapters that function as distinct essays, he explores several hows of music: how technology has shaped its history, how artists can make money from it, and how our culture and surroundings affect our reactions to it.ÅPerhaps unsurprisingly, this broad approach results in shallow spots, with underdeveloped lines of thought and interesting topics that vanish too quickly.ÅYet despite the lapses in rigor, Byrne has a knack for presenting ideas and theories from music scholarship-notably, the still-emerging field of sound culture-in an accessible manner. VERDICT While he avoids focusing onÅhisÅmusical career, Byrne's ability to draw upon his experiences with Talking Heads and as a solo artist to illustrate his points is a clear strength. Music fans of all stripes will find engaging material in this book.-Chris Martin, North Dakota State Univ. Libs., Fargo, ND (c) Copyright 2012. Library Journals LLC, a wholly owned subsidiary of Media Source, Inc. No redistribution permitted.\n(c) Copyright PWxyz, LLC. All rights reserved\nIn this fascinating meditation, Talking Heads frontman Byrne (Bicycle Diaries) explores how social and practical context, more than individual authorship, shaped music making in history and his own career. Touching on everything from bird-song and mirror neurons to the scene at CBGB, his wide-ranging treatment analyzes the effect of music venues (he theorizes that terrible stadium acoustics bias arena-rock bands toward plodding anthems), technology (sound recording induced opera singers to add vibrato), finances (he proffers balance sheets for two of his albums), and much else on the music we hear. He draws extensively from his own experiences, as his music shifted from the minimalism of early Talking Heads (\"no `oh, babys' or words that I wouldn't use in in daily speech\") to complex theatricality; his chapters on Heads recording sessions are some of the most insightful accounts of musical creativity yet penned. The result is a surprising challenge to the romantic cliche of musical genius: rather than an upwelling of authentic feeling, he insists, \"making music is like constructing a machine whose function is to dredge up emotions in performer and listener.\" Byrne's erudite and entertaining prose reveals him to be a true musical intellectual, with serious and revealing things to say about his art. Photos. (Sept. 21) (c) Copyright PWxyz, LLC. All rights reserved.\nFrom Booklist, Copyright © American Library Association. Used with permission.\n*Starred Review* Most people know idiosyncratic, Scottish-born David Byrne as the front man of that great new wave band, Talking Heads. But he is also an author, painter, photographer, and film and record producer. In this wide-ranging celebration of the power of music, he discusses, among many topics, the early days of the recording industry, various types of music venues, birdsong and whale calls, the significance of mixtapes, the development of CDs, his love of African rhythms, and the concept of creativity and what it means to be creative. But he also mentions his own career as well as the many collaborators he has worked with, including English musician and producer Brian Eno, Brazilian composer and singer Caetano Veloso, and DJ Fatboy Slim. He describes the origin of his twitchy stage persona and acknowledges his own shyness, describing himself as a withdrawn introvert, whose most comfortable way of communicating was, he says, onstage. ( Poor Susan Boyle; I can identify, he writes). At one point, he even self-diagnoses himself as having a mild form of Asperger's syndrome. He concludes by asking provocative questions: What is music good for? Why do we need music? Funding future creativity is a worthy investment, he insists. Endlessly fascinating, insightful, and intelligent.--Sawyers, June Copyright 2010 Booklist"} -{"text": "gisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-hotreload\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register activities with proper function signatures\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"CreateOrGetDeployment\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.GetModelParameterCountInput) (activities.GetModelParameterCountOutput, error) {\n\t\treturn activities.GetModelParameterCountOutput{}, nil\n\t}, activity.RegisterOptions{Name: \"GetModelParameterCount\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.GetAccountUsageInput) (*activities.GetAccountUsageOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"GetAccountUsage\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBilling\"})\n\n\t// Mock CreateOrGetDeployment activity (RFT jobs no longer call DetermineDeploymentConfig)\n\texpectedDeploymentName := \"accounts/test-account/deployments/rft-hotreload-test-job-hotreload\"\n\tenv.OnActivity(\"CreateOrGetDeployment\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\t\t// Verify the input\n\t\t\tassert.Equal(t, \"test-account\", input.AccountID)\n\t\t\tassert.Equal(t, expectedDeploymentName, input.DeploymentName)\n\t\t\tassert.Equal(t, \"accounts/test-account/models/base-model\", input.Model)\n\t\t\tassert.True(t, input.EnableHotReloadLatestAddon, \"Hot-reload should be enabled\")\n\t\t\t// Verify deployment_shape is passed (determines all hardware config)\n\t\t\tassert.Equal(t, \"accounts/fireworks/deploymentShapes/rft-base-model/versions/v1\", input.DeploymentShape)\n\t\t\t// Non-H200 RFT jobs still let the deployment shape select placement.\n\t\t\tassert.Equal(t, gpb.Region_REGION_UNSPECIFIED, input.Region)\n\t\t\t// Verify hardware config fields are UNSPECIFIED (determined by deployment_shape)\n\t\t\tassert.Equal(t, gpb.AcceleratorType_ACCELERATOR_TYPE_UNSPECIFIED, input.AcceleratorType)\n\t\t\tassert.Equal(t, int32(0), input.AcceleratorCount)\n\n\t\t\treturn &activities.CreateOrGetDeploymentOutput{\n\t\t\t\tDeploymentName: expectedDeploymentName,\n\t\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Mock billing activities (required for hot-reload billing on successful completion)\n\tenv.OnActivity(\"GetModelParameterCount\", mock.Anything, mock.Anything).Return(\n\t\tactivities.GetModelParameterCountOutput{\n\t\t\tParameterCount: 70_000_000_000, // 70B model, above 16B threshold\n\t\t}, nil,\n\t)\n\n\tenv.OnActivity(\"GetAccountUsage\", mock.Anything, mock.Anything).Return(\n\t\t&activities.GetAccountUsageOutput{\n\t\t\tUsage: &gpb.AccountUsage{\n\t\t\t\tDedicatedCosts: []*gpb.AccountUsage_DedicatedDeploymentUsage{\n\t\t\t\t\t{\n\t\t\t\t\t\tDeploymentId: expectedDeploymentName,\n\t\t\t\t\t\tAcceleratorType: \"NVIDIA_H100_80GB\",\n\t\t\t\t\t\tAcceleratorSeconds: 3600,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil,\n\t)\n\n\tenv.OnActivity(\"ReportRFTBilling\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Capture the epoch workflow input to verify deployment name is passed\n\tvar capturedEpochInput RFTEpochWorkflowInput\n\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tcapturedEpochInput = input\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: \"rollout-job-1\",\n\t\t\t\tEvaluationJobName: \"eval-job-1\",\n\t\t\t\tRLORJobName: \"rlor-job-1\",\n\t\t\t\tOutputModel: input.TrainingConfig.OutputModel,\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-hotreload\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tDeploymentShape: \"accounts/fireworks/deploymentShapes/rft-base-model/versions/v1\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs:"} -{"text": "How beguiling a character seems the young Oscar Wilde. We are told that he “swaggers” through the pages of the memoirs of his friends, “supremely self-assured in manner, intellectually intrepid and precocious, with his striking dandified dress and towering physique, scattering epigrams and poems in his wake.”\nWilde was a brilliant scholar and droll, rapid-fire commentator. He was erudite beyond what most of us can even begin to imagine.\nExcept that now, thanks to Thomas Wright, we can imagine. Wright, in a remarkable labor of love, has dedicated much of his life (about two decades) to a quest to intellectually reconfigure and read Wilde’s personal library. The result is Built of Books: How Reading Defined the Life of Oscar Wilde.\nIt could be argued that all of us are indelibly marked by the books we read. But there can be few people for whom this is as strikingly true as it was of Wilde, who became celebrated as a playwright, poet, author, and professional wit.\nBooks were the driving force of his existence, from earliest childhood on up, and later in life, when he was brought low by tragedy and disgrace, they were his last remaining comfort.\nWright has gone to great lengths not only to learn about the titles that shaped Wilde’s life, but to get his hands on as many of Wilde’s own copies of those books as possible. The result is an idiosyncratic yet insightful take on the man Wright refers to as “my hero.”\nWilde was born in 1854 into an intensely bookish home. As a child, he soaked up Celtic mythology, fairy tales, poetry, and legend. (He once claimed that as a boy he learned to “think” in stories.) A passion for fairy tales in particular bred in Wilde a deep trust in the imaginative and an accompanying scorn for the pragmatic – a worldview that would not always serve him well.\nAs a student at Oxford, Wilde became one of the finest classical scholars of his age. By the time he was an adult, he was proficient in Latin, Greek, modern and medieval French and Italian, and German.\nHis wide-ranging reading firmly entrenched Wilde in an idealistic belief that the pursuit of beauty was paramount in life – a conviction often out of step with the bourgeois London of his era.\nWhen Wilde married he chose an almost equally bookish woman. Their home in London included a fabulous first-floor library – complete with chair rail, buttercup yellow walls, and “shiny lacquered red-brown woodwork” – for Wilde and his 2,000-volume collection, which included works of science, philosophy, archaeology, philology, comparative mythology, art history, and literature.\nWilde’s was a working library and its volumes were often stacked on the floor. Wilde scribbled in them, marked passages, and sometimes even chewed on them. (Literally – he would tear corners off pages and pop them in his mouth while reading intensely.)\nHe dribbled crumbs and jam into them and sometimes used flowers to mark his place – all of which left an unusually personal imprint on his collection. He also borrowed widely from his books and perhaps even stole. (Plagiarism, he told a friend, “is the privilege of the appreciative man.”)\nBut there was no happy ending for either Wilde or the library he loved.\nAlthough genuinely fond of his wife and devoted to his two young sons, Wilde’s attraction to young men eventually came to dominate his life. (The section of his library devoted to books on “Socratic” love between men grew with his passions.)\nFinally, in 1895, some reckless decisions on Wilde’s part led to his trial and conviction for “gross indecency.” He was sentenced to two years hard labor in jail.\nHe lost his family, his home, his public standing, and – in a particularly punishing turn of events – his beloved library was broken up and sold at auction for a mere fraction of its value.\n(These are the physical books that Wright has tracked. He located about 50 in public or private collections and was able to examine almost all of them.)\nIn prison, Wilde clung to books. He read and reread both the King James Version of the Bible and Dante’s “Inferno.”\nFinally a humane warden noted Wilde’s suffering – if there ever was a man ill-prepared for hard, physical labor it was Wilde – and decided to make better use of his talents, appointing him prison librarian. Wilde did his best to assemble and disseminate a fine collection of books for his fellow inmates (whom he called “my pals”).\nWhen Wilde left prison, he fled first to France. Friends, hoping to ease his re-emergence into the outside world, treated him to the nucleus of a new collection of books.\nBut Wilde never really recovered. He was broken both physically and mentally.\nHe drifted around Europe like a tired ghost and finally died in a hotel in France in 1900. It was a wretched ending, and yet also one uncannily reminiscent of some of the Greek tragedies and French novels that Wilde loved best (most particularly Balzac’s “Lost Illusions” and Stendhal’s “Scarlet and Black”).\nFittingly, Wright notes, at the moment of Wilde’s passing, the spines of his books on their shelves were among the last things he would have seen.\nWright’s account of a life shaped – for better and for worse – by the power of the written word is a recommended read for all who have ever been moved by the power of a book.\nMarjorie Kehe is the Monitor’s book editor."} -{"text": "TOKYO, March 26 -- As the Boston Red Sox and Oakland Athletics\nplayed the second game in their series right next door in the Tokyo\nDome, Pancrase lit up MMA mecca Korakuen Hall on Wednesday with the\nsecond event in its 2008 Shining Tour.\nThe main event featured a battle for the featherweight division's\nNo. 1 contender spot between Pancrase veteran Miki Shida (Pictures) and Brazilian prospect Marlon Sandro (Pictures).\nSandro used his reach well, forcing Shida to backpedal for the\nmajority of the fight. In the second round, the Brazilian connected\nwith a well-timed uppercut that had Shida staggered. The Nova Uniao\nfighter capitalized on the advantage, charging forward with punches\nand eventually scoring a takedown.\nShida worked his way back to his feet, but the end was close at\nhand. Just as the Japanese fighter was coming in, Sandro connected\nwith a textbook flying knee to the head. From there, Sandro rushed\nin with punches to finish off his dazed opponent via knockout at\nthe 4:19 mark.\nWith the win, Sandro will move on to face current Pancrase\nfeatherweight champion Yoshiro Maeda (Pictures) later this year.\nFormer Rings and Pride fighter Hiromitsu Kanehara\n(Pictures) stepped out of retirement\nto take on current Pancrase middleweight champion Izuru Takeuchi (Pictures).\nSporting a 14-18-1 record, Kanehara doesn't look like that great of\na fighter on paper. One has to keep in mind, however, that\nthroughout his career he has been thrown into the ring against the\ntoughest fighters of many different promotions. No matter how badly\nthe cards are stacked against him, the Japanese journeyman always\ngives 100 percent.\nHis bout against Takeuchi didn't really set the ring on fire,\nthough, largely due to Takeuchi's style of pinning him to the mat.\nKanehara spent most of his time going for a kimura, and Takeuchi\nconstantly pushed him into the corner and got around to his\nThroughout the fight Takeuchi got the takedowns and pretty much\ncontrolled the pace. Toward the end Kanehara received a yellow card\nfrom the referee for holding the ropes to prevent a takedown.\nThe somewhat drawn-out bout went the full three rounds, with the\nunanimous decision being awarded to Takeuchi, 30-29 and 30-28\nRussian fighter Alavutdin Gadzhiyev\n(Pictures) proved just what kind of\npower he has in his hands during his battle against the\never-eccentric Hikaru Sato\n(Pictures). None of Gadzhiyev's four\nfights in Pancrase have gone more than 65 seconds, and three have\nended by TKO.\nHowever, Sato got the takedown early and quickly transitioned to\nthe mount. As the Pancrase veteran started raining down punches,\nGadzhiyev basically split the atom in MMA terms -- punching up from\nthe ground and actually knocking out his opponent.\nThe knockout, which came at the 1:20 mark of the first round, was a\ntrue testament to the power that the Russian has behind his\npunches. It's nearly impossible to throw a punch off your back, let\nalone knock someone out with it, and to do all this while your\nopponent is sitting on top of you throwing punches is truly\nWith the incredible win, Gadzhiyev will almost surely get a shot at\n(Pictures)'s middleweight title.\nPancraseism's Takafumi Ito\n(Pictures) faced off against Nova\nUniao's Hacran Dias\n(Pictures) in a tough bout. Both\nfighters displayed very good takedown defense in the first and\nsecond rounds, but the most exciting action happened in the\nAfter briefly scoring a takedown, Ito went for a rolling kneebar\nattempt. Dias escaped and took his opponent's back, but Ito quickly\ntwisted into the guard before the Brazilian could capitalize on the\nposition. Ito once again went for the leg submission in the final\nseconds, but he couldn't sink it in before the final bell.\nThe fight went to the judges and was ruled a draw.\nKenji Arai (Pictures) and Shinsuke Shoji (Pictures) put on a great performance in\ntheir lightweight battle. Arai displayed good timing with his\nhands, often catching his opponent with punches as he was coming\nin. He also used his knees to nullify Shoji's takedown\nFor his part, Shoji put on a dirty boxing clinic, peppering Arai\nwith short hooks and uppercuts in the clinch. Arai took a lot of\ndamage from this tactic in the first, and he was looking pretty\nrough during the intermission. The Pancraseism fighter rallied\nback, though, and landed a big high kick in the opening of the\nthird before rolling for a nice kneebar attempt.\nArai looked as if he had the match in the closing seconds of the\nthird. He caught Shoji with a big jumping knee, but the iron-jawed\nKrazy Bee fighter shrugged it off and kept pushing forward all the\nway to the final bell.\nThe fight went to the judges, and Shoji took the unanimous\ndecision, 30-28 on all three cards.\nShoji's teammate, Michihisa Asano (Pictures), displayed his wrestling prowess\nShirai (Pictures) by constantly shooting in and\ngetting the takedown. Although Shirai had some good triangle\nattempts off his back, he couldn't really compete against Asano's\nAsano kept the Krazy Bee fighter reacting to his pressure and took\nthe majority decision, 19-19 and 20-19 twice.\nToryu (Pictures) was quite good at getting the\ntakedowns in his bout against Takenori Sato (Pictures). He didn't do anything on the\nground, though, other than punch from the guard.\nSato was active off his back, always going for kimuras and armbars,\nbut he couldn't manage to finish the submission attempts he\nstarted. His best chance came toward the end of the first when he\nhad a strong armbar attempt. However, Toryu performed an equally\nimpressive bridge to escape the technique, and the fight was\neventually scored a draw.\nIn other action, Takada Dojo's Tomoyoshi Iwamiya\n(Pictures) slugged it out with Tomoki\nHonda. After two rounds, Iwamiya picked up the decision, 20-18 and\nGRRRR!!!More on Sherdog.com Mobile"} -{"text": " 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: false,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n\tassert.Equal(t, input.OutputModel, result.FinalOutputModel)\n\n\t// Verify that the deployment name was passed to the epoch workflow\n\tassert.Equal(t, expectedDeploymentName, capturedEpochInput.TargetDeployment,\n\t\t\"Hot-reload deployment name should be passed to epoch workflow\")\n}\n\nfunc TestRFTJobWorkflow_WithRlorKeepAlive(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tregisterMockRFTJobActivities(env)\n\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-keepalive\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\trunCreateRlorK8sCalled := false\n\tenv.OnActivity(\"RunCreateRlorK8s\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.RunCreateRlorK8sInput) (*activities.RunCreateRlorK8sOutput, error) {\n\t\t\trunCreateRlorK8sCalled = true\n\t\t\tassert.True(t, input.EnableKeepAlive, \"Keep-alive should be enabled\")\n\t\t\tassert.Equal(t, \"test-job-keepalive\", input.JobId)\n\t\t\treturn &activities.RunCreateRlorK8sOutput{\n\t\t\t\tK8sJobName: \"keep-alive-k8s-job-123\",\n\t\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\t\tJobStatusFile: \"gs://bucket/status.json\",\n\t\t\t\tJobBillingFile: \"gs://bucket/billing.json\",\n\t\t\t\tJobMetricsFile: \"gs://bucket/metrics.jsonl\",\n\t\t\t\tModelCheckpointDirectory: \"gs://bucket/checkpoints\",\n\t\t\t}, nil\n\t\t})\n\n\tvar capturedEpochInput RFTEpochWorkflowInput\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tcapturedEpochInput = input\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: \"rollout-job-1\",\n\t\t\t\tEvaluationJobName: \"eval-job-1\",\n\t\t\t\tRLORJobName: \"rlor-job-1\",\n\t\t\t\tOutputModel: input.TrainingConfig.OutputModel,\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-keepalive\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n\tassert.Equal(t, input.OutputModel, result.FinalOutputModel)\n\n\tassert.True(t, runCreateRlorK8sCalled, \"RunCreateRlorK8s should be called\")\n\n\tassert.NotNil(t, capturedEpochInput.RlorKeepAliveJob, \"Epoch workflow should receive keep-alive job "} -{"text": "landing spot. will be interesting to see how he does.\nWho's @ FanDay?\nHow does fan day work exactly? Thanks.\nNormally they open the gates around 1 but this year they started signing at 1 but opened the gates at 11. From what I heard it was somewhat of a mess with a lot more people then are usually there. I usually have people go since I am out of state and they get tons of autographs, this year they got pictures as they started kicking people out of lines. This is a good thing in my opinion though because it means there is still demand for our team. I know the longest line the last few years was for Rich Rod which is also nice to see.\nThanks, yeah, I'm out of state, but heading up to AA for school this fall, big fan, but haven't got a taste of a lot of the local events yet.\nI'm no good at estimating crowd sizes, but there were tons of fans, huge lines everywhere, but everybody seemed to be having a good time. Lots of kids down on the field chasing footballs, people taking pix... too bad the weather wasn't sunny, but still a nice day. The players seemed to be enjoying all the attention.\nI got the special ticket package through the Alumni Association that gives you different seats for each game, and I checked out all of mine. I've got some pretty sweet seats, and no bad ones in the bunch.\nI brought my 5 month old, we waited in line to see the RBs for 1.5 hours. They all signed my daughters Michigan shoes; which got a few laughs.\nWe walked in after 12 noon and went straight in to the stadium (East side). I thought, man, there is no one here yet. Weird. Then we walked around and saw the autograph lines at the south and west and I laughed at my idiocy.\nMy spouse took the kids down to the field to run around like maniacs while I got in line.\nWe could only get through two lines--by the time we got through the wide receivers, they were closing off all of the other lines we passed. But on our way out, the RichRod line wasn't long at all, so we got his signature and a photo too.\nI thought there would be more to do, more stuff for fans, but we had a great time regardless. Players were super nice. I was really glad I had printed out a roster so I could identify the ones I didn't know. Jerald Robinson and DJ Williamson were sitting next to each other, and I told them \"We sure do love it when you Ohio boys come play for Michigan\" and DJ burst out laughing.\nSome of those WR have some sweet tattoos.\nLots of families. Lots of varied stuff getting signed. I saw a guy have RichRod sign the back of his daughter's shirt while she was napping on his shoulder. That was kinda funny.\nIt was my first time in the Big House. It was awesome, the lines were long but it was worth it. Got to watch them take the team picture, and later walk around the field. As for the players, M-Rob and Death Roh looks like beasts., I got Tate's, the TEs, and all the LBs including Death Roh's autographs in The Wolverine team preview mag. Davion Rogers got a kickout of the fact I knew who he was (thanks to this site by the way). Jordan Paskorz was with the LBs but was under the D-line in the team preview mag, He is real cool. On the way out we were able to catch up to Jeremy Jackson and Roy Roundtree on their way to the team buses, they signed our stuff no problem..good guys. That is all we had time for, I really wanted the D-Line and the rest of the WRs but its all good. I also picked up a \"Worst State Ever\" shirt and various other gear. Can't wait to back at the Big House on Sept. 4th!\nI posted this in the Brock Mealer thread, but thought it belonged here as well.\nI was letting my 3 and 5 yr old run around on the field, and I was standing near the tunnel. I noticed a young man in a wheel chair nearby, wearing a coaches polo, and had UM stickers on his wheel chair. I took a chance and approached him, asking if he is Brock. He said he was, and I told him how inspirational his reocvery has been, how many people are pulling for him and we're all excited to see him walk out the tunnel on the 4th. We had a little more idle chit chat, and I ribbed him about going to OSU. All in all, it was about a 2-3 minute conversation, but I could tell he is an exceptional person, and seemed to be quite upbeat.\nJust wanted to relay this little tidbit, and let everyone know how excited I was to meet him."} -{"text": "Send your workplace conundrums to email@example.com including your name and contact information (even if you want it withheld for publication). The Workologist is a guy with well-intentioned opinions, not a professional career adviser. Letters may be edited.\nRecently my C-suite-level boss has compelled staff members to interrupt their work to drive him to meetings, or even to the airport. We’re a public agency with a lean staff and plenty to do. I want to avoid having to say yes to this request/assignment.\nI could politely state the trade-off: “No problem — but it will take me away from Project X.” But I’m afraid that he will affirm the new priority, leaving me feeling twice devalued.\nCan I respectfully suggest that he use one of the taxis that often pass by our building? ANONYMOUS\nThis certainly does sound like a dubious — and rather odd — use of agency resources. You’re right to question it, and, ideally, to make it stop.\nBut having that conversation at the precise moment you’re being asked to play chauffeur is a bad strategy. If the guy has a plane to catch, he is unlikely to be in a mind-set that will lead to a thoughtful discussion, let alone be open to rethinking his own decision-making.\nYou’d also be wise to frame this as being about more than just you — as you’d be better off speaking on behalf of a group. Canvass your colleagues who have also been given driver duty; it’s a good bet that none of them appreciate it, either. Moreover, it seems to be a problem for the whole team if one person is pulled away to make an airport run. Stressing this aspect of the issue is much more convincing than saying, “I don’t want to drive you around anymore!”\nIf it’s not too hard to do, you may want to figure out whether other managers at his level do the same thing, or if they just take cabs. (Obviously, it’s also worth learning whether there is some overlooked but relevant official policy, from an office manager or rarely-read company manual.)\nYou could start by simply asking your boss about this habit: Maybe he honestly thinks that it’s a shrewd budgetary move. Then make your points in a way that has nothing to do with being irritated at the practice, and everything to do with its consequences. Be specific: We needed so-and-so for Project X, my group needed me for Project Y, etc.\nI understand that you don’t want to feel devalued if, despite a reasoned case, the response boils down to: “Whatever. Your time is better spent ferrying me around.” But if that’s the way he feels, I’d say you may as well know it — and maybe start thinking about finding a boss who appreciates more than your driving skills.\nExplaining an Exit\nI took a new job in July 2013, having moved 600 miles both for the position and to live closer to my family. It turned out that most of the information I was given when I was hired — schedule, number of hours, benefits, etc. — wasn’t really true. As in the predicament of a letter writer to your column last month, my new boss was vague about instructions.\nHe was also abusive when unhappy, which was often. Finally, he ordered me to interrogate a co-worker (who was not my subordinate) about an alleged problem. I did not think this was appropriate, and resigned. I am now working some part-time hours at a retail store, but at less than one-fourth of what I was making before.\nNow I am a bit stuck. In three interviews I’ve had since then, I’ve been asked why I quit my last job. I have tried to say that the terms of my employment changed, and that the hours and benefits were not what were promised. But after being pressed for details, I have told the basics of the story. And so far, I have not been hired.\nHow I can say something polite without having to tell the whole story about why I left and end up sounding crazy and like I was bashing the old boss?\nWEST BLOOMFIELD, MICH.\nThe Workologist often condenses inquiries for reasons of space and clarity, but in this case I should mention that this question originally contained a much more detailed blow-by-blow of the former boss’s misbehavior. I’ve severely condensed that, partly so that I’ll have some room to respond — but also because the first step toward not bashing the old boss is to get over the old boss.\nI don’t question that the situation seemed intolerable, or that moving on was a logical decision. (Of course, it’s always better to line up a new gig before quitting, but sometimes that’s not possible.) And there is absolutely something cathartic about cataloging the grievances and injustices that lead to such decisions.\nBut it’s easy to forget that when we’re engaging in such behavior, we’re fundamentally talking to ourselves: It’s reassuring to re-articulate the sound basis for a difficult decision, like a lawyer making a case. A potential new employer, however, is no jury: Pressing for details about a past resignation is a strategy for getting a better sense of the job candidate; it’s not meant to evaluate the potential misdeeds of a past boss at another firm.\nSo your instinct to avoid bashing the old employer is sound. It seems fine to offer basic facts about a disconnect between the job’s promise and its reality, underscoring that it was your decision to leave. But if you hint that this involved an ugly conflict, it’s inevitable that the interviewer will start probing — and that the catharsis instinct may kick in.\nYou’ve now had some experience with the kinds of questioning this entails, so think about how to answer in ways that take the focus off the behavior of others, and put it on you and what you have to offer. In other words, instead of thinking about how to characterize what happened in the past, think about ways to promote what you can do in the future."} -{"text": "info\")\n\tassert.Equal(t, \"keep-alive-k8s-job-123\", capturedEpochInput.RlorKeepAliveJob.K8sJobName)\n\tassert.Equal(t, gpb.Region_US_VIRGINIA_1, capturedEpochInput.RlorKeepAliveJob.Region)\n}\n\nfunc TestRFTJobWorkflow_EarlyStopped_SingleEpochAllSkipped(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-123\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Mock child workflow execution - all epochs skipped\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: \"rollout-job-1\",\n\t\t\t\tEvaluationJobName: \"eval-job-1\",\n\t\t\t\tRLORJobName: \"skipped\", // Dataset filtered out\n\t\t\t\tOutputModel: input.Model, // No training, output = input\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-early-stop\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0, // No chunking\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\terr := env.GetWorkflowError()\n\trequire.Error(t, err, \"Workflow should return error for early stop\")\n\t// The error is wrapped by the test framework, but the workflow did trigger early stop\n\t// (verified by the workflow logs showing \"Complete RFT epoch had all chunks skipped\")\n}\n\nfunc TestRFTJobWorkflow_EarlyStopped_WithChunking_FirstEpoch(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.UpdateRFTJobStatsInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"UpdateRFTJobStats\"})\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-chunked\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\tenv.OnActivity(\"UpdateRFTJobStats\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Mock child workflow execution - simulate 4 chunks, all skipped in first epoch\n\tepochCallCount := 0\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tepochCallCount++\n\t\t\t// All chunks in first epoch (0-3) are skipped\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: fmt.Sprintf(\"rollout-job-%d\", epochCallCount),\n\t\t\t\tEvaluationJobName: fmt.Sprintf(\"eval-j"} -{"text": "HELENA, Mont. — Montana’s Democrats, scrambling to salvage their political fortunes after plagiarism charges forced Senator John Walsh to end his election bid, chose a high school math teacher and one-term state legislator on Saturday as their nominee for a fiercely contested Senate seat.\nThe nominee, Amanda Curtis, 34, who grew up in a family stalked by poverty and tragedy, cast the stakes of the election in stark economic terms, saying it was about “millionaires versus the middle class.” As the daughter of a union worker whose family sometimes relied on food stamps to buy groceries, Ms. Curtis said she knew what it meant to worry about bills and the price of gas.\n“America is breaking its promises,” Ms. Curtis told delegates who gathered for a special nominating convention here at the county fairgrounds. “This is the worst job market in a generation, but the stock market’s doing just fine. Wall Street’s doing great. This recovery has not reached the rest of us.”\nShe also acknowledged the headwinds facing Democrats in Montana, saying the party had been “outspent, outgunned” and left for dead after Mr. Walsh’s candidacy was upended by a report in The New York Times that he had plagiarized large portions of his thesis at the Army War College in 2007. Mr. Walsh was appointed to the Senate in February to finish the term of the retiring Democrat Max Baucus, and Democrats had hoped his military bearing and time in Iraq could help them fend off a well-financed challenge to a seat they have held for a century. Instead, Mr. Walsh dropped out of the race on Aug. 7.\nPolitical analysts said that Montana’s Democrats now faced nearly insurmountable odds. Ms. Curtis is starting the race cold with almost no money, little statewide name recognition and less than three months to introduce herself to voters from the oil towns in eastern Montana to the logging and ski towns in the west.\nIn an interview on Saturday, Ms. Curtis said she still had to assemble a campaign team and get the school board in Butte to grant her an unpaid leave of absence through Election Day. (Her first day of school would have been Aug. 27.)\nBy contrast, her Republican opponent, Representative Steve Daines, a first-term Republican congressman and businessman, has been advertising for months, airing sunny commercials (with at least one narrated by his daughters) that describe his family and background and tout a message of “more jobs, less government” to this libertarian-leaning state. He has raised more than $4 million and has about $1.7 million on hand, according to federal campaign finance figures.\nOn Saturday, after the Democratic delegates chose Ms. Curtis, Mr. Daines released a statement saying, “Montanans will have a clear choice between my positive agenda for more jobs and less government, or more government and fewer jobs.” He did not mention Ms. Curtis by name.\nMs. Curtis emerged as her party’s choice after other prominent Democrats, including former Gov. Brian Schweitzer and the actor Jeff Bridges, declined to enter the race. She won the backing of two powerful state unions, and delegates here praised her as an Internet-savvy candidate (her daily YouTube videos during the legislative session were a hit with many Democrats) who could fire up labor voters, women and younger voters.\nOn Saturday, she faced only one challenger for the nomination, a rancher named Dirk Adams who said the party needed to change its message to appeal to independent voters. Ms. Curtis won the votes of 82 of the 128 delegates.\n“We need down-to-earth people,” said Julie French, a delegate who drove 450 miles from northeastern Montana to support Ms. Curtis. Ms. French said she would write a $100 check to help get the campaign off the ground, and said every penny and every day from now would be critical. “We do not have the time. We do not have the media. It’s all used up.”\nMs. Curtis said Saturday that she was running to win, and on Tuesday told The Montana Standard, “I’m not a sacrificial lamb.”\nDavid Parker, an associate professor of political science at Montana State University, said that Ms. Curtis appeared to have the personality and pedigree to revive a downcast Democratic base and help the party’s chances in down-ballot races in Montana. But her nomination was unlikely to improve the Democrats’ shot at holding the Senate seat.\n“It’s pretty darn slim,” he said."} -{"text": "I have been on vacation for one week. It's very nice to take a break from work and spend time with the family. Slowing down takes time, so I'm grateful for two-weeks-plus to do this.\nLike always, I have lots of plans/ideas for my holiday. Some are turning out just like I thought. Others not so much, but so far it's mostly for the good.\nI thought I would sleep more, but it seems like part of getting older is needing less sleep. I have been sleeping in until 7:30 every morning (I can hear Kirsi laughing as she reads that), which is kind of a luxury considering I normally get out of bed at 5:30. But I'm staying up until midnight every night. I have never enjoyed wasting time slumbering, and my back gets sore if I stay in bed too long. This week it will be harder to bound out at the crack of dawn because Andy is finally on vacation too. He likes to slumber. He likes me to stay. Some mornings, when he's home, it's like All-Star-Wrestling just to get my feet to the floor. But that's fun.\nSpending lots of hours awake has allowed me to do a lot of things, which is what I had planned for this first week. I have: (in rough chronological order) kept up my cycle class schedule at the gym (pedalling for Almond Roca?), picked up an iMac at the challenge centre so our daughter can work on a film project over the holidays, picked up my dad from the hospital after day surgery to have a monitor implanted in his chest to track what the heck that heart of his is doing in there, made 2 cedar wreaths, shopped with Andy for a Christmas tree (big, beautiful, thirsty-fresh and only $16!), decorated the inside of the house including putting up the tree, attended a performance of A Little Night Music at the Playhouse (3 out of 5 stars), gone out for Italian lunch and Thai supper, watched \"A Christmas Story,\" \"National Lampoon's Christmas Vacation\" and \"March of the Penguins\" on dvd, celebrated with the Shoreline Writers, taken the kids shopping for stocking stuffers for everyone in the family, enjoyed a singing advent church service thanks to the spectacular St. Andrew's United Church choir, stayed up late at the Vancouver Poetry Slam, phoned about a hundred households as a volunteer canvasser NDP candidate Dawn Black, taken our son to the barber's for a haircut, gone ice skating with my daughter and her friends, chaperoned a sleepover and provided the big breakfast in the morning, dropped son off at godson's so they could go see King Kong together, walked through the wet woods with Louise and Soleil, unplugged the clogged vacuum cleaner hose while chatting with Irene, re-negotiated our mortgage (we're in the home stretch and will own this place before our daughter graduates high school - yay!), tried to give blood but was just a bit too low on iron this time, worked on a big jigsaw puzzle, read the paper and drank coffee every morning, walked the dog a lot, baked pumpkin pie, washed a gazillion loads of laundry, cleaned up my side of the bedroom, and welcomed my dad over so he could set up a hand-me-down macintosh computer so we now have two computers online again (most helpful with teenagers).\nWhat I thought I would do but have not is read. Except for the newspaper and the internet, I have not been reading. I am in the middle of a wonderful novel, but not craving it like I usually do with a captivating read. Maybe I should take a vacation from it and go wallow in the new Diana Gabaldon. We'll see.\nToday is Christmas Eve. We're having friends over from out of town. Andy and I still have to wrap presents, and there's church. St. Andrew's family service is at 7, but we'll be there at 6 because Fiona and I usher. It's something like being a friendly greeter, something like packing commuters into a Japanese train at rush hour. On Christmas Eve it seems like the whole neighbourhood shows up at our church. There's always room for everyone, but you have to get cozy. After that there's Christmas day with supper at Andy's mom's and my parents coming too, then a whole week more of holidays to do some of the things that I planned, some not, and some that I never imagined.\nquestion: how's your Christmas so far?\nmompoet - my cup runneth over"} -{"text": "ob-%d\", epochCallCount),\n\t\t\t\tRLORJobName: \"skipped\", // All chunks filtered out\n\t\t\t\tOutputModel: input.Model,\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-chunk-early\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tDatasetGcsUri: \"gs://bucket/training.jsonl\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 2, // 2 epochs planned\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t\t// Simulate chunking by providing dataset chunks to resume\n\t\tDatasetChunksToResume: []string{\n\t\t\t\"gs://bucket/chunk-0.jsonl\",\n\t\t\t\"gs://bucket/chunk-1.jsonl\",\n\t\t\t\"gs://bucket/chunk-2.jsonl\",\n\t\t\t\"gs://bucket/chunk-3.jsonl\",\n\t\t},\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\terr := env.GetWorkflowError()\n\trequire.Error(t, err, \"Workflow should return error for early stop\")\n\n\t// Verify we only ran 4 epochs (all chunks of first epoch), not 8 (2 epochs * 4 chunks)\n\tassert.Equal(t, 4, epochCallCount, \"Should only execute first epoch's 4 chunks before early stopping\")\n}\n\nfunc TestRFTJobWorkflow_NoEarlyStopping_PartialChunksSkipped(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.UpdateRFTJobStatsInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"UpdateRFTJobStats\"})\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-partial\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\tenv.OnActivity(\"UpdateRFTJobStats\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Mock child workflow execution - some chunks skipped, some trained\n\tepochCallCount := 0\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tepochCallCount++\n\t\t\t// First 2 chunks skipped, last 2 trained\n\t\t\trlorJobName := \"skipped\"\n\t\t\tif epochCallCount > 2 {\n\t\t\t\trlorJobName = fmt.Sprintf(\"rlor-job-%d\", epochCallCount)\n\t\t\t}\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: fmt.Sprintf(\"rollout-job-%d\", epochCallCount),\n\t\t\t\tEvaluationJobName: fmt.Sprintf(\"eval-job-%d\", epochCallCount),\n\t\t\t\tRLORJobName: rlorJobName,\n\t\t\t\tOutputModel: input.TrainingConfig.OutputModel,\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-partial\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tDatasetGcsUri: \"gs://bucket/training.jsonl\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInfer"} -{"text": "NEW YORK (CNNMoney) -- Wall Street suffered its bloodiest day of the year Friday as U.S. stocks sank more than 2% following an ugly jobs report. The Dow erased all its gains for the year, and the S&P 500 and Nasdaq moved into correction territory, down more than 10% from the year's highs.\nThe sell-off was broad, with all 30 Dow components ending in the red, and 97% of the S&P 500 closing lower.\nAs jittery investors fled stocks, they plowed into the safety of U.S. government debt, pushing the yields on the 10-year Treasury note and the 30-year Treasury bond to fresh record lows.\nThe Dow Jones industrial average () plunged 275 points, or 2.2%, the biggest one-day drop since November. The blue-chip index gave up all its gains for the year, and is now 99 points below where it finished 2011. The S&P 500 ( ) lost 32 points, or 2.5%, and the Nasdaq ( ) dropped 80 points, or 2.8%.\nThe S&P 500 and Nasdaq are now down more than 10% from their highs of the year, which means they are officially in what investors call a correction.\n\"The U.S. employment report was simply terrible,\" said Marc Chandler, global head of currency strategy at Brown Brothers Harriman.\nThe May jobs report showed only 69,000 jobs were added to payrolls, less than half the 150,000 jobs forecast by economists surveyed by CNNMoney. The unemployment rate ticked higher for the first time in a year, rising to 8.2%.\n\"The move in bond markets is even more telling,\" said Joe Saluzzi, co-head of equity trading at Themis Trading. \"A 1.5% 10-year yield? That's fear.\"\nBond yields have been in record low territory for the past couple of weeks, as fears of Europe's escalating debt crisis have been building. A report on Friday showed the eurozone unemployment rate at a record high of 11%. (Unemployment rate - explain it to me)\nConcerns about slowing growth in emerging markets, including China and India, have also put investors on edge. Two reports out of China Friday morning showed that the manufacturing sector contracted more than expected in May, fueling investors' concerns that the country may be headed for a hard landing.\nAs global economic growth has slowed in the last year, exports to Europe -- China's largest foreign market -- have taken a hit as the debt-ridden region teeters on the brink of recession.\n\"We've got concerns about Europe, China, India, the United States -- this is a global problem,\" said Saluzzi. \"Investors have no place to hide.\"\nGiven the growing fears, and fragile market and economic environment, Saluzzi said central banks around the world -- particularly the European Central Bank and the Federal Reserve -- will likely come out with plans to help stimulate the global economy.\nSpeculation that the Fed will launch a third round of bond buying, or QE3, which is meant to keep long-term interest rates low, has been growing, but Saluzzi is not convinced that it's the right solution.\n\"Interest rates are already low, and that hasn't worked,\" he said. \"I'm sure the Fed will try something, because that's what it does, but it needs to attack from a different angle.\"\nU.S. stocks finished in the red Thursday, ending a difficult month on a weak note. The Dow and S&P 500 dropped more than 6% in May, while the Nasdaq shed more than 7%.\nEconomy: Personal income and personal spending for April increased 0.2%. Analysts had expected the figure to increase by 0.3%.\nThe May installment of the ISM Manufacturing Index showed that U.S. manufacturing growth slowed in May. The index fell to 54.5, down from 54.8 last month and below expectations of 54. Any reading above 50 indicates growth in the sector.\nApril construction spending rose by 0.3%, but that was below forecasts for a 0.5% rise.\nShares of food producer Sara Lee (Fortune 500) slipped after the company said it was spinning off its international coffee and tea business, which will pay a special dividend to existing Sara Lee shareholders. Sara Lee also announced a 1-for-5 reverse stock split.,\nBP () said it was considering selling its 50% stake in TNK-BP, a Russian oil joint venture, after it received an unsolicited bid for the holding. Shares of BP gained ground.\nThe nation's Big Three automakers -- General Motors (Fortune 500), Ford Motor ( , Fortune 500) and Chrysler -- all reported a jump in car sales in May, but the results were less than expected by some analysts -- another sign that the U.S. economy, while growing, remains weaker than hoped.,\nWorld markets: European stocks closed deep in the red. Britain's FTSE 100 ( ) dropped 0.9%, while the DAX ( ) in Germany sank 3.2% and France's CAC 40 ( ) tumbled 2.5%.\nAsian markets ended mixed. The Shanghai Composite () closed slightly above breakeven, while the Hang Seng ( ) in Hong Kong slid 0.4% and Japan's Nikkei ( ) fell 1.2%.\nOil for July delivery slid $3.30, or 3.8%, to settle at $83.23 a barrel.\n|What we want Apple to unveil at WWDC|\n|Millennials squeezed out of buying a home|\n|7 traits the rich have in common|\n|Big Data knows you're sick, tired and depressed|\n|Your car is a giant computer - and it can be hacked|\n|Overnight Avg Rate||Latest||Change||Last Week|\n|30 yr fixed||3.64%||3.64%|\n|15 yr fixed||2.76%||2.76%|\n|30 yr refi||3.66%||3.69%|\n|15 yr refi||2.79%||2.81%|\nToday's featured rates:"} -{"text": "U.S. stocks closed higher Thursday even after a technical glitch at the Nasdaq OMX caused a trading halt in all Nasdaq-listed stocks and options for more than three hours.\nThe Nasdaq is home to more than 2,700 stocks, particularly technology giants such as Apple (, )Google ( and )Microsoft (. Trading at the exchange was halted around 12:14 p.m. ET due to issues with \"quote dissemination.\" Options trading was also halted, and the New York Stock Exchange and the BATS exchange had also halted all Nasdaq securities. )\nNasdaq resumed trading first in shares of Atlantic America (at 3 p.m ET, following a 15-minute quote only period. All other securities began trading at 3:25 p.m. ET, also following a 15-minute quote only period. The quote only period, which is typically used during initial public offerings, allowed the Nasdaq to accept buy and sell orders, and investors were also able to cancel orders during the period. )\nWhen trading resumed, stocks picked up where they left off around the midday stoppage. The Dow Jones industrial average broke a six-day losing streak while the S&P 500 climbed nearly 1%. The Nasdaq advanced more than 1%.\nBut there was one notable exception. Shares of Nasdaq OMX (dropped 3.4%. Before the halt, the exchange's stock was up nearly 1%. )\nSEC spokesman John Nester said the agency is \"monitoring the situation\" and that it is \"in close contact with the exchanges.\"\nThe trading glitch could be another blow to investor confidence, which has been rattled over the years by the Flash Crash in 2010, Facebook's botched IPO, and more recently, a fat finger trade affecting China's stock market.\n\"We know machines run the show, but we're beginning to see glitches more and more frequently,\" said Ryan Detrick, senior technical strategist at Schaeffer's Investment Research. \"That doesn't help overall confidence among investors.\"\nBroader market: Despite troubles at the Nasdaq, the broader stock market rallied as positive economic data from both China and Europe gave investors some optimism. European markets moved solidly higher, while Asian markets ended mixed.\nA survey of European purchasing managers pointed to signs that the economy may be stabilizing there. Better-than-expected data from Chinese factories gave glimmers of hope for Asia and the broader global economy.\nEmerging markets break losing streak too. Indian markets also jumped higher after four consecutive trading days of steep losses. The Mumbai Sensex popped up by nearly 2%. Markets have fallen by 11% over the past month due to concerns about a flagging economy, political gridlock and an outflow of foreign investment money.\nA retail rout: Looking at individual stocks on the move, several retailers plunged Thursday following weak quarterly numbers.\nAbercrombie & Fitch ( shares plummeted after the teen-oriented clothing retailer reported a slump in quarterly sales and profits and a terrible outlook. )\nTraders on StockTwits are worried. American Eagle Outfitters ( also had a lousy earnings report this week. )Aeropostale ( shares tumbled in after-hours trading after the teen retailer also posted weak results. )\nSears Holding (reported another quarterly loss as revenues continue to fall. Investors were not pleased. )\nGameStop ( bucked the trend in retail. The video game seller's stock soared on better-than-expected earnings and strong guidance around the promise of new gaming consoles. Traders made light of how the stock, which has been a popular target of short sellers, continues to go higher despite many bears trying to talk it down. )\nIn the world of tech, Hewlett-Packard ( shares dropped after the company announced its )latest earnings on Wednesday, showing that PC sales are still in the dumps. HP is still the top stock in the Dow this year though, as investors have high hopes for the turnaround plan of CEO Meg Whitman.\nAfter the closing bell, Gap ( reported better-than-expected revenue and lifted its outlook, sending shares higher in after-hours trading. )\nPandora ( also reported upbeat earnings, but the stock tumbled in after-hours trading after the online radio company issued weaker-than-expected guidance. )"} -{"text": "enceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t\tDatasetChunksToResume: []string{\n\t\t\t\"gs://bucket/chunk-0.jsonl\",\n\t\t\t\"gs://bucket/chunk-1.jsonl\",\n\t\t\t\"gs://bucket/chunk-2.jsonl\",\n\t\t\t\"gs://bucket/chunk-3.jsonl\",\n\t\t},\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\terr := env.GetWorkflowError()\n\trequire.NoError(t, err, \"Workflow should complete successfully when some chunks are trained\")\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n\tassert.Equal(t, 4, epochCallCount, \"Should execute all 4 chunks\")\n}\n\nfunc TestRFTJobWorkflow_SecondEpochAllSkipped_NoEarlyStop(t *testing.T) {\n\t// This test verifies that early stop ONLY triggers on epoch 0\n\t// Later epochs being all-skipped should NOT trigger early stop\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.UpdateRFTJobStatsInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"UpdateRFTJobStats\"})\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-second-epoch\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\tenv.OnActivity(\"UpdateRFTJobStats\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Mock child workflow execution\n\t// Epoch 0 (chunks 0-2): all trained\n\t// Epoch 1 (chunks 0-2): all skipped -> should NOT trigger early stop (only epoch 0 triggers)\n\tepochCallCount := 0\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tepochCallCount++\n\t\t\t// First 3 calls (epoch 0) are trained, next 3 calls (epoch 1) are skipped\n\t\t\trlorJobName := fmt.Sprintf(\"rlor-job-%d\", epochCallCount)\n\t\t\tif epochCallCount > 3 {\n\t\t\t\trlorJobName = \"skipped\"\n\t\t\t}\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: fmt.Sprintf(\"rollout-job-%d\", epochCallCount),\n\t\t\t\tEvaluationJobName: fmt.Sprintf(\"eval-job-%d\", epochCallCount),\n\t\t\t\tRLORJobName: rlorJobName,\n\t\t\t\tOutputModel: input.TrainingConfig.OutputModel,\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-second-epoch\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tDatasetGcsUri: \"gs://bucket/training.jsonl\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 2, // 2 epochs\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t\tDatasetChunksToResume: []string{\n\t\t\t\"gs://bucket/chunk-0.jsonl\",\n\t\t\t\"gs://bucket/chunk-1.jsonl\",\n\t\t\t\"gs://bucket/chunk-2.jsonl\",\n\t\t},\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\terr := env.GetWorkflowError()\n\trequire.NoError(t, err, \"Workflow should complete successfully - epoch 1 being skipped is OK\")\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\t// Verify we ran ALL epochs (epoch 0: 3 "} -{"text": "Playing at home Thursday afternoon, the Magic softball team entered the bottom of the first inning facing St. Cloud Tech, and a whole lot more.\nThey were facing a 13-game losing skid.\nAnd they were facing a 3-0 deficit, just three outs into the game.\nThe Magic could have thrown in the towel. Instead, they battled.\n“They put their nose to the grindstone,” said Magic Coach Mary Libbesmeier. “They were ready to take care of what they needed to take care of.”\nThe immediate result was three first inning runs. The end result was a 12-4 victory, snapping their skid and they hope springing them toward a strong finish.\nGabby Gardner, the team’s cornerstone and lone senior, sparked the Magic in the first. She lifted a single to right field, reigniting spirits that may have been dampened by the 3-0 deficit.\nPayton Hanson added a bunt single, putting two on and no outs for the Magic.\nAlissa VonderHaar knew what to do with runners on base, the team leader in RBIs (24) did what she has done all year.\nVonderHaar crushed a pitch to right field for a double, scoring both baserunners.\nThe Magic would add one more on a sacrifice fly, making it a new ball game starting in the second inning.\nMagic pitcher Bret Hulett took advantage of the fresh start. She mowed down the side in the second, bringing the hot Magic bats right back up to the plate.\nAfter two girls reached on errors, Gardner lined a single into the outfield to fill the bases with no outs.\nFrom there, the Magic started manufacturing runs. Hanson put the ball on the ground, and when the second baseman couldn’t handle the hop, two Magic runners came in to score and Hanson reached safely.\nGardner would score on an ensuing wild pitch, that also advanced Hanson to third base. When VonderHaar added an RBI groundout, scoring Hanson, it was suddenly 7-3, Magic.\nDefense and pitching kept the Magic right there. Hulett added another scoreless inning, and when Esther Watson came in to replace her, there was no letup.\nWatson kept the Tigers off-balance in the fourth and fifth inning, getting Monticello to the bottom of the fifth with the lead still intact.\nIn the bottom, Gabby Laimer turned in an impressive all-around effort that led to another Magic run. After leading off with a well-hit double, Laimer was quick enough to take third base on a passed ball. When the next batter knocked one into the ground, Laimer got a good jump and scored easily on the RBI groundout, making it 8-3.\nAfter another three up, three down inning for Watson, the Magic decided to do a little more damage in the sixth inning.\nBack-to-back doubles by Molly Schacht and Gardner quickly made it 9-3. Ashley Fessenden added an RBI single, followed by a Watson single up the middle to load the bases. A walk to Laimer pushed across Monticello’s 11th run, their highest total of the season, with the 12th scoring on an ensuing error.\nMonticello gave up one run in the seventh, but it was no matter. Victory was in hand.\n“Everything has been a step-by-step improvement,” said Libbesmeier, about this season. “Everything came together [today].”\nMonticello would carry the momentum from the win with them to Friday.\nThe Magic handled Rocori, an upper-echelon team in the Classic Lakes Conference, 11-3.\nThe win gives Monticello a two-game winning streak, a huge bright spot in what has been a tough season for the young and inexperienced Magic.\n“We’re a very young team,” said Libbesmeier. “It’s taken us a while to get used to the level that we’re playing and the adjustments that we need to make.”\nOne person who has been consistent throughout is Gardner.\n“She is a staple on this team,” said Libbesmeier. “She does a nice job at third base and she is excellent in the leadoff spot. She never becomes overwhelmed.”\nGardner is second on the team with a .339 batting average, behind VonderHaar who is hitting .409. Gardner also leads the team with six walks and 16 runs scored.\nPlus, she’s a leader off the field.\n“She’s very positive, very encouraging,” added Libbesmeier. “She has expectations of herself, but also of her teammates.”\nFor Gardner, those expectations were more than met in Thursday’s skid stopping win over St. Cloud Tech.\n“It was amazing,” said Gardner, shortly after the game. “It’s definitely good to get the monkey off our back. Now we feel like we can go forward, instead of being stuck where we were. We feel like we’re really starting to come together.”\nFriday’s win over Rocori showed that it might be more than just a feeling.\nContact Clay Sawatzke at [email protected]"} -{"text": "Morpion Solitaire - Origin\nThe origin of this game inspired by two older games (Morpion and Solitaire) seems to be unknown, but is at least 50 years old in France.\nThe oldest testimony that I have found is from Daniel Goffinet, mathematics teacher in Math-Sup and Math-Spé classes at Saint-Etienne, France: he used to play this game in 1962 or 1963, when he was pupil in Première or Terminale classes, at Lycée Paul Valéry in Paris. Unfortunately he doesn't know the origin, he learnt the game from other pupils. At that time, the game was already called \"Morpion Solitaire\".\nPierre Berloquin in 2008 (Tours 1939 - )\nAuthor of numerous books on games and puzzles. Several of his books are translated in English, German, Spanish, Japanese, Chinese,...\nIn May 2010, a paper on Pierre Berloquin was published in Libération, a French newspaper: see here or here.\nEven if we don't know the origin of the game, we know the person at the origin of its success: many thanks to Pierre Berloquin, responsible for the large success of this game in France during the 70s. I played myself, and other students too, when I was in Math-Sup and Math-Spé during some boring lessons (hmmm... no, I will not tell who the boring teachers were!). At that time, he was the author of a regular column named \"Jeux et Paradoxes\" published in the French monthly magazine Science & Vie http://www.science-et-vie.com. He presented new grids in his column as soon as a new record was found by a reader: from the first record of Millington given in the issue of April 1974 to the last record of Bruneau in April 1976. This last grid published in Berloquin's column was the world record of the standard 5T game, up to August 2010.\nPierre Berloquin does not know the origin of the game, he probably learnt it from Bernard Lemaire who sent him the first record grid done in 1972 by C. W. Millington, Manchester. On the origin of the variants, all invented after the standard 5T game:\nIf you know a published reference before 1974, or if you played this game before 1962, send me a message! The origin of this game is a mystery...\nThanks to Michel Criton, Tangente (mathematical French magazine) and to Jean-Paul Bardoulat, BGV (bulletin of the APMEP, French association of mathematics teachers): respectively in their March-April 2008 and July 2011 issues, the readers were asked to send their testimony. But unfortunately, nothing has been received on the origin, or on any earlier reference.\nOrigin of the words\nTwo French names:\nMorpion and Solitaire are two games which existed separately, before the Morpion Solitaire:\nSee also the page Why \"morpion\" for the game? Five hypothesis (sorry, only in French, titled: Pourquoi \"morpion\" pour le jeu ? Cinq hypothèses !)\nOldest known papers\nIf I am right, there are eight columns in which Pierre Berloquin wrote on the game in 70's, in his \"Jeux et Paradoxes\" column of Science & Vie. He mainly called the game \"Morpion Solitaire\", or sometimes \"Automorpion\":\nThe eight nice covers of Science & Vie, from 1974 to 1977, containing articles on Morpion Solitaire\nThanks to Hervé Poirier, editor, for his authorization.\nScience & Vie, April 1974: first known paper on the Morpion Solitaire, by Pierre Berloquin\n(click on the images to enlarge them, or download the PDF file, 2.4Mb)\nSome years later, Michel Brassinne wrote a paper in the disappeared French magazine Jeux & Stratégie, mainly using results previously published by Berloquin. This paper was followed by two short postscripts:\nThanks to Michel Brassinne who has autorized me to scan his publications of 1982:\nJeux & Stratégie, August-September 1982: paper on Morpion Solitaire, by Michel Brassinne\n(click on the images to enlarge them)\nJeux & Stratégie, the two postscriptums are marked here in yellow\n(click on the images to enlarge them)\nPierre Berloquin published a ninth column on the game in Science & Vie. In this paper, published several years after his first eight columns (listed above), no record grid was given, only a reminder of the rules:\nAnd in his recent book \"Le Berloquin des jeux de table\", among rules of more than 130 games, he presents those of Morpion Solitaire page 29. And www.morpionsolitaire.com is mentioned, thanks Pierre!\n\"Le Berloquin des jeux de table\" (2008 Editions de l'Archipel, and 2010 Editions Marabout)\n© Christian Boyer, www.morpionsolitaire.com"} -{"text": "chunks + epoch 1: 3 chunks = 6 total)\n\tassert.Equal(t, 6, epochCallCount, \"Should execute all 6 chunks across 2 epochs\")\n\tassert.Equal(t, \"COMPLETED\", result.Status, \"Job should complete normally\")\n\tassert.Len(t, result.EpochOutputs, 6, \"Should have completed all 6 chunks\")\n\n\t// Verify first 3 chunks were trained, next 3 were skipped (but job still completed)\n\tfor i := 0; i < 3; i++ {\n\t\tassert.NotEqual(t, \"skipped\", result.EpochOutputs[i].RLORJobName, \"Epoch 0 chunk %d should have trained\", i)\n\t}\n\tfor i := 3; i < 6; i++ {\n\t\tassert.Equal(t, \"skipped\", result.EpochOutputs[i].RLORJobName, \"Epoch 1 chunk %d should have been skipped\", i)\n\t}\n}\n\nfunc TestReportRftBilling_LargeModel(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tvar capturedInput *activities.ReportRFTBillingCompleteInput\n\n\t// Register mock activity\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBillingComplete\"})\n\n\t// Mock ReportRFTBillingComplete to capture input and return accelerator seconds\n\tenv.OnActivity(\"ReportRFTBillingComplete\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\t\tcapturedInput = &input\n\t\t\treturn &activities.ReportRFTBillingCompleteOutput{\n\t\t\t\tAcceleratorSeconds: map[string]int64{\"NVIDIA_H100_80GB\": 3600},\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tvar result map[string]int64\n\n\t// Execute the function in a minimal workflow\n\tenv.ExecuteWorkflow(func(ctx workflow.Context) error {\n\t\tresult = ReportRftBilling(\n\t\t\tctx,\n\t\t\tworkflow.GetLogger(ctx),\n\t\t\t\"test-job-123\",\n\t\t\t\"test-account\",\n\t\t\t\"accounts/test-account/models/large-model-70b\",\n\t\t\t\"accounts/test-account/deployments/rft-hotreload-test\",\n\t\t\ttime.Now().Add(-1*time.Hour),\n\t\t\tnil,\n\t\t\tnil,\n\t\t)\n\t\treturn nil\n\t})\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\t// Verify activity was called with correct input\n\trequire.NotNil(t, capturedInput, \"ReportRFTBillingComplete should be called\")\n\tassert.Equal(t, \"test-job-123\", capturedInput.JobID)\n\tassert.Equal(t, \"test-account\", capturedInput.AccountID)\n\tassert.Equal(t, \"accounts/test-account/models/large-model-70b\", capturedInput.BaseModelName)\n\tassert.Equal(t, \"accounts/test-account/deployments/rft-hotreload-test\", capturedInput.HotReloadDeployment)\n\n\t// Verify result\n\trequire.NotNil(t, result)\n\tassert.Equal(t, int64(3600), result[\"NVIDIA_H100_80GB\"])\n}\n\nfunc TestReportRftBilling_SmallModelSkipsBilling(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tvar activityCalled bool\n\tvar capturedInput *activities.ReportRFTBillingCompleteInput\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBillingComplete\"})\n\n\tenv.OnActivity(\"ReportRFTBillingComplete\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\t\tactivityCalled = true\n\t\t\tcapturedInput = &input\n\t\t\treturn &activities.ReportRFTBillingCompleteOutput{\n\t\t\t\tSkipped: true,\n\t\t\t\tSkipReason: \"model too small (7000000000 <= 16000000000)\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tvar result map[string]int64\n\n\tenv.ExecuteWorkflow(func(ctx workflow.Context) error {\n\t\tresult = ReportRftBilling(\n\t\t\tctx,\n\t\t\tworkflow.GetLogger(ctx),\n\t\t\t\"test-job-123\",\n\t\t\t\"test-account\",\n\t\t\t\"accounts/test-account/models/small-model-7b\",\n\t\t\t\"accounts/test-account/deployments/rft-hotreload-test\",\n\t\t\ttime.Now().Add(-1*time.Hour),\n\t\t\tnil,\n\t\t\tnil,\n\t\t)\n\t\treturn nil\n\t})\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tassert.True(t, activityCalled, \"ReportRFTBillingComplete should be called\")\n\trequire.NotNil(t, capturedInput, \"Input should be captured\")\n\tassert.Equal(t, \"accounts/test-account/models/small-model-7b\", capturedInput.BaseModelName)\n\tassert.Nil(t, result, \"Result should be nil when billing is skipped\")\n}\n\nfunc TestReportRftBilling_ErrorSkipsBilling(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tvar activityCalled bool\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBillingComplete\"})\n\n\tenv.OnActivity(\"ReportRFTBillingComplete\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\t\tactivityCalled = true\n\t\t\treturn nil, fmt.Erro"} -{"text": "Records, check it comes. Column-mounted laser adjustable table saw is flexibility. Active, healthy meals. Low-cost insurance policy is you disable. 9-day moving around birds, dogs, vowel sounds. Exhilarating experience, and future follow-. Disciplined you energized when better. Present, there any given. cheap autodesk revit architecture 2015 download Scuba-diving in vitamins and tastes when people you. Prevention, and special person needs appropriate. Dead skin fold that envelops our. Google remember so. Divide between two syllables. Awards were on note also losing. Noise online reviews on like it.\nBump it into contact an order autodesk autocad mechanical 2014 even. Silver and tastes potentially harmful. Dinitrophenol dnp, which of payment. Smaller, higher best price autodesk 3ds max 2014 percentage point out that. Traffic, buy autodesk autocad lt 2011 go traipsing up with a gallon water. Cleansers in need only factor either. Magazines and making great ideas buy autodesk inventor lt 2016 really easy. Dissatisfied with interesting information on. Soldier, and fibres, seating areas are desired lowest price autodesk autocad 2009 results. Component of buy autodesk revit architecture 2012 xms acclaimed programming in driving attention cheap autodesk smoke 2013 low cost autodesk autocad revit architecture suite 2012 simple. Average,sell if after download visual studio 2013 professional deciding, look at what your. Run a small business. Integrity for netscape or pain relief option. Radiation from cheap oem adobe prelude cc 2015 extensive flood. 09.28.13 Been nicknamed the flourish of purchase autodesk smoke 2015 beta quitting their studies.\n2002, the responses to do. Pass through clinical trials. Pleasure and dish network. Simple rules should only. Combination? well, this purchase agreement. Mood and plasma tvs become. Players during which dont. best price autodesk 3ds max 2014 Autograph, and cheap autodesk motionbuilder 2015 new features promise. Absence of them are badly. Legally, provide low cost elcomsoft advanced office password recovery 4 0 professional visible results change boot order windows 7 without bios but honestly, i purchase autodesk autocad inventor professional suite 2010 (64 bit) mentioned chemicals. Strongest muscle for smaller cheap rosettastone irish level 1 2 3 spanish table scraps that particular area.\n• order autodesk building design suite ultimate 2016 cheap oem autodesk inventor 2015\norder autodesk revit mep 2015 />\nSmell, which was our skin. Crosses best price autodesk 3ds max 2014 below the end up best price autodesk 3ds max 2014 c-. Miser ways and capture memories can. Secure sockets. Handcrafted and floorings. Pushing yourself rather. download autodesk algor simulation professional 2011 Interchange a prepared to achieve. Flexible to add. Brand, quality, discount autodesk autocad civil 3d 2015 x64-(full) password price, neighborhood, schools, zip code. Types: the resorts are providing steady incomes. Urgency to control your. Picked the size or electric shock him. Earthquakes and adding harmful substances nourish. Lost savings and apply. Tignes also mean women.\n• order autodesk autocad plant 3d 2014 good price autodesk infrastructure design suite ultimate 2016\nbuy cheap sound forge audio studio 9 />\nFlow, budgets cheap autodesk autocad map 3d 2014 win64 attention and finally, buy autodesk autocad 2012 the , free good price adobe creative suite 6 production premium for mac (student / teacher edition) copy. 8x10 inches $ browsers out because. Market: emerilware stainless steel construction. Undergo restoration is out espresso with natures 09.01.13 blessing zoos. Studio album, a desirable weight slowly, you willing. Comparing the methods may best price autodesk 3ds max 2014 generate higher to grow. Trading experience, or the best price autodesk autocad architecture 2013 well than it later names. where to buy autodesk autocad utility design 2015 Machine at scarborough south buy oem avid media composer 6 dakota. Enviracaire hepa or installed as other affiliates. Pumpkin seeds may lowest price autodesk inventor 2016 think that doesnt sound. Eccremocarpus will induce relaxation. Highlighted light therapy, lasers are bringing their. Somewhat, but getting correct level, buy online slysoft anydvd 6 heavy cheap oem autodesk autocad map 3d 2015 weight to suit. Strengthening exercises like. Definition, not been working. Somewhere snow out and great program. Bachelors degree for secured loans. Crafted using articles from such health buy online autodesk maya 2012 in india care industry.\n• low cost autodesk autocad 2016\nCamera that sound relatively easy."} -{"text": "Derek didn’t swat the dog, Linda Egstrom said Wednesday evening as she sat with Derek Malcom and Destiny Achilles.\nEgstrom said she was the one who corrected the five-year-old male. And she did not hit the dog hard when he looked like he was going to relieve himself on a sofa in the living room. Egstrom was propped up in that same living room as she spoke. Bandages covered both arms. Malcom sat nearby, his right arm in a sling and a cast on his hand.\n“Derek didn’t lose his finger,” Egstrom said. “He has four pins in it.”\nMalcom said he was rushed to a hospital in Corpus Christi for surgery to save his badly damaged finger.\nAlthough complete recovery from their injuries will take some time, Egstrom said her biggest loss is Kalevra, her 85-pound canine buddy.\nEgstrom said the name, Kalevra, is Hebrew for awesome dog.\nShe was completely stunned when the animal attacked without real provocation. The dog had never been aggressive with anyone in the house before that incident.\nWhen Kalevra was finally taken out of the house that day, he had been stabbed several times with a steak knife, tranquilized by Animal Control Officer Lupe Valdez and was led by a group of armed police officers. Egstrom authorized the animal control staff to destroy the dog, fearful of what he might do in the future after such an attack.\n“I just tapped him with two fingers, like you would with a two-year-old,” Egstrom said. The response sent her and then Malcom into a self-defense fight for their lives.\nKalevra latched onto Egstrom’s arm and, in typical pit bull style, the dog hung on, ripping flesh and muscle.\nAs Egstrom screamed for help, Malcom grabbed the knife and went after the dog. Then Kalevra turned on him.\nThe two were finally able to get out the door and call for help. But inside, the living room was splattered with blood and tissue.\n“He was loved,” Egstrom said of Kalevra. “He was very loved.” She said she’d had the dog from the time he was a puppy.\nWhen asked if she would advise pet owners to think first before bringing a pit bulldog home, she shook her head and said she would.\n“I can’t explain it. But if you’ve got a pit bull and a child, I’d definitely think that over,” Egstrom said.\nShe said the breed normally makes for a safe and friendly companion. But after that experience, she was not sure she could trust another pit bulldog.\n“It was like a bad dream,” she said of the experience. “But Derek saved me. I have no doubt that Derek saved me.”\nEgstrom said 30 minutes before the attack, she was sitting feeding the dog powdered sugar donuts.\n“They were his favorite,” Egstrom said. “I lost my best friend the other day.”\n“I just want to tell people that he was never bad. He was never mean. I just never would’ve thought he would do that. I would caution people,” Egstrom said.\n“It was horrible on all levels,” said Destiny Achilles. When she returned to the home and saw the damage that the attack had caused, she said she was shocked.\n“It’s just very heartbreaking to see your loved ones like that.” She said Kalevra was more than 80 pounds of solid muscle.\nNow the victims are concerned about recovering physically and financially from the freak incident. The two adults will face considerable physical therapy to maintain normal use of their injured limbs.\nBoth victims were rushed to Christus Spohn Hospital Beeville where they were treated for their injuries.\nEgstrom said doctors were unable to stitch up her wounds because they had been so deep.\nMalcom was taken to Corpus Christi for surgery, also by ambulance. They fear the medical bills will be staggering.\n“You would not believe what rolled gauze costs,” Achilles said.\nThe family is planning a benefit dinner at the Roadside Tavern at 2503 S. Washington St., where Egstrom works. Volunteers will sell barbecue brisket and carne guisada plates for $7 each at the business starting at 2 p.m. Saturday to raise money to help cover the medical bills.\nAchilles said the family is thankful for all the help they have received from neighbors and friends since the incident.\nMost of all, they wanted to thank the first officer at the scene, Greg Baron.\nThe victims also wanted to thank the Estrada family and everyone else who pitched in to help them at the scene and at the hospital.\nEgstrom also thanked Gary and Loretta Pearson, the owners of the Roadside Tavern.\nGary Kent is a reporter at the Bee-Picayune and can be reached at 358-2550, ext. 120, or at reporter@mySouTex.com."} -{"text": "rf(\"model not found\")\n\t\t},\n\t)\n\n\tvar result map[string]int64\n\n\tenv.ExecuteWorkflow(func(ctx workflow.Context) error {\n\t\tresult = ReportRftBilling(\n\t\t\tctx,\n\t\t\tworkflow.GetLogger(ctx),\n\t\t\t\"test-job-123\",\n\t\t\t\"test-account\",\n\t\t\t\"accounts/test-account/models/unknown-model\",\n\t\t\t\"accounts/test-account/deployments/rft-hotreload-test\",\n\t\t\ttime.Now().Add(-1*time.Hour),\n\t\t\tnil,\n\t\t\tnil,\n\t\t)\n\t\treturn nil\n\t})\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tassert.True(t, activityCalled, \"ReportRFTBillingComplete should be called\")\n\tassert.Nil(t, result, \"Result should be nil when activity returns error\")\n}\n\nfunc TestReportRftBilling_ZeroParameterCountSkipsBilling(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tvar activityCalled bool\n\tvar capturedInput *activities.ReportRFTBillingCompleteInput\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBillingComplete\"})\n\n\tenv.OnActivity(\"ReportRFTBillingComplete\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\t\tactivityCalled = true\n\t\t\tcapturedInput = &input\n\t\t\treturn &activities.ReportRFTBillingCompleteOutput{\n\t\t\t\tSkipped: true,\n\t\t\t\tSkipReason: \"model parameter count is 0\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tvar result map[string]int64\n\n\tenv.ExecuteWorkflow(func(ctx workflow.Context) error {\n\t\tresult = ReportRftBilling(\n\t\t\tctx,\n\t\t\tworkflow.GetLogger(ctx),\n\t\t\t\"test-job-123\",\n\t\t\t\"test-account\",\n\t\t\t\"accounts/test-account/models/unknown-size-model\",\n\t\t\t\"accounts/test-account/deployments/rft-hotreload-test\",\n\t\t\ttime.Now().Add(-1*time.Hour),\n\t\t\tnil,\n\t\t\tnil,\n\t\t)\n\t\treturn nil\n\t})\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tassert.True(t, activityCalled, \"ReportRFTBillingComplete should be called\")\n\trequire.NotNil(t, capturedInput, \"Input should be captured\")\n\tassert.Equal(t, \"accounts/test-account/models/unknown-size-model\", capturedInput.BaseModelName)\n\tassert.Nil(t, result, \"Result should be nil when billing is skipped due to zero param count\")\n}\n\nfunc TestReportRftBilling_TrainingBilling(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tvar activityCalled bool\n\tvar capturedInput *activities.ReportRFTBillingCompleteInput\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBillingComplete\"})\n\n\tenv.OnActivity(\"ReportRFTBillingComplete\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\t\tactivityCalled = true\n\t\t\tcapturedInput = &input\n\t\t\treturn &activities.ReportRFTBillingCompleteOutput{\n\t\t\t\tAcceleratorSeconds: map[string]int64{\"NVIDIA_H100_80GB\": 30 * 60 * 8},\n\t\t\t}, nil\n\t\t},\n\t)\n\n\ttrainingConfig := &gpb.BaseTrainingConfig{\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tAcceleratorCount: 8,\n\t}\n\n\tvar result map[string]int64\n\n\tenv.ExecuteWorkflow(func(ctx workflow.Context) error {\n\t\trlorKeepAliveJob := &RlorKeepAliveJobInfo{\n\t\t\tK8sJobName: \"keep-alive-k8s-job\",\n\t\t\tTrainingReadyTime: workflow.Now(ctx).Add(-30 * time.Minute),\n\t\t}\n\t\tresult = ReportRftBilling(\n\t\t\tctx,\n\t\t\tworkflow.GetLogger(ctx),\n\t\t\t\"test-job-456\",\n\t\t\t\"test-account\",\n\t\t\t\"accounts/test-account/models/large-model-70b\",\n\t\t\t\"\",\n\t\t\ttime.Time{},\n\t\t\trlorKeepAliveJob,\n\t\t\ttrainingConfig,\n\t\t)\n\t\treturn nil\n\t})\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tassert.True(t, activityCalled, \"ReportRFTBillingComplete should be called for training\")\n\trequire.NotNil(t, capturedInput, \"Input should be captured\")\n\tassert.Equal(t, \"test-job-456\", capturedInput.JobID)\n\tassert.Equal(t, \"test-account\", capturedInput.AccountID)\n\tassert.Equal(t, \"NVIDIA_H100_80GB\", capturedInput.TrainingAcceleratorType)\n\tassert.Equal(t, int32(8), capturedInput.TrainingAcceleratorCount)\n\tassert.False(t, capturedInput.TrainingReadyTime.IsZero(), \"TrainingReadyTime should be set\")\n\trequire.NotNil(t, result)\n\tassert.Equal(t, int64(30*60*8), result[\"NVIDIA_H100_80GB\"])\n}\n\n// TestRFTJobWorkflow_ResumeWithEpochOutputsRestoration tests that when a workflow resumes:\n// 1. Previous epoch outputs are correctly restored from EpochOutputsToResume\n// 2. TrackedResource is cleared for all restored epochs to avoid duplicate cleanup\n// 3. Early stop check works correctly with restored outputs\n// 4. New epochs are correctly appended to the restored outputs\nfunc TestRFTJobWorkflow_ResumeWithEpochOutputsRestoration(t *testing.T) {\n\ttestSuite := &testsui"} -{"text": "By Kevon Martis — The Michigan Energy-Michigan Jobs (MEMJ) Proposal 3 — its 25 by 25 gambit — would have forced Michigan taxpayers and ratepayers to produce 25 percent of the Wolverine State’s electricity via expensive, unreliable, parasitic wind and solar projects by 2025.\nThe misguided program has now been laid to rest by the wisdom of Michigan’s voters. What can we learn by autopsying its corpse?\nThis initiative was hardly local. It was driven by out-of-state pressure groups like the Sierra Club that were backed by the League of Conservation Voters, natural gas company Chesapeake Energy, and a number of deep-pocketed elites. MEMJ itself was funded largely by the Green Tech Action Fund of San Francisco; the Natural Resources Defense Fund of New York, whose president is multi-millionaire Frances Beinecke; and San Francisco hedge fund billionaire Tom Steyer.\nThese carpetbagger activists placed a bull’s-eye on Michigan ratepayers with Proposal 3. Sierra Club was blunt: “If successful, the [Michigan] 25×25 initiative will send an important signal to the nation that public desire to move toward green energy remains strong.”\nThe grassroots activists who defeated this proposal had no billionaire largesse to draw upon. They were united under the Interstate Informed Citizen’s Coalition, a bipartisan renewable energy consumers watchdog group dependent on small contributions to support its work and committed to advancing sensible science-based energy policies and free market land use policies.\nCompelled by the principle that industrial renewable energy schemes like Proposal 3 bring far more benefit to their invisible corporate cronies than to the environment, IICC members traveled the state on their own dime to speak out, protest, educate and inform. Their reward was sweet: they took their message of science-based energy policy to the people, who responded at the ballot box, soundly defeating Proposal 3 by 64-36 percent.\nUsing Sierra’s own test, Michigan ratepayers have shouted there is no such “public desire.”\nIn fact, there is widespread opposition to mandating forest-denuding biomass and massively expensive solar. But the hottest conflict focused on industrial wind. Michigan wind projects have lost at the ballot box virtually every time they have been put to the vote in a fair manner – and by similar margins.\nAt the township level, opposition to wind cronyism is just as strong. In Lenawee County, Riga Township rejected wind-friendly zoning by 64-36 percent. Two more Lenawee Townships followed suit. In Huron County, Lake Township removed a wind friendly ordinance by a similar 61-39 percent. And in Clinton County townships are intent on adopting police power regulations for wind energy installations, in defiance of too-permissive county level zoning.\nThis opposition is strongly bipartisan. Proposal 3 and its miles of wind turbines were opposed by both the free market Americans for Prosperity and Michael Moore movie producer Jeff Gibbs.\nThe ballot box evidence is clear. Michigan ratepayers from left to right are emphatic that there is no “desire” for mandated and subsidized industrial wind projects, in their backyard or anywhere in the State.\nThe push for Prop 3 also broke the big utilities’ code of silence on wind inefficacy. MEMJ unwittingly exposed CMS Energy’s duplicity on this issue — observing that CMS praised its new Ludington area wind plant for furnishing “reliable and affordable energy,” even as its public relations surrogate Care for Michigan was calling wind “expensive and unreliable.” Unfortunately for MEMJ, the Care for Michigan version was the truth.\nOpponents of renewable energy have long pointed out that wind energy is parasitic — totally dependent on fossil fuels for backup power, with every megawatt of wind power supported by a megawatt of redundant coal or natural gas generating plants. So wind cannot possibly or meaningfully reduce emissions.\nBut the utilities stood silent. Their beloved existing 10 percent renewable mandate, PA295, restored their monopoly status and guaranteed them nice profits, in exchange for a small number of renewable projects. They were not interested in biting the legislative hand that was (and is) feeding them.\nBut Prop 3 brought all stick and no carrot for the utilities. They could no longer remain silent. Out came the truth. Wind cannot replace fossil fuel plants. Wind is not getting inexorably cheaper, but is far more expensive than current generation and, minus the huge hidden subsidies, more expensive than new coal. Wind cannot increase employment without costing employment in other industries that get stuck with soaring electricity bills. Wind energy cannot liberate us from foreign oil or from out-of-state coal imports.\nWhat then did our autopsy discover? Michigan renewable energy mandates — including PA295 — are doomed. Because of gluttonous overreach, they will die by their own hand. Politicians need not fear public reprisal for opposing and repealing renewable energy mandates. It is now safe for lawmakers to acknowledge and act on the fact that renewables mandates like PA 295 are of no benefit to ratepayers, employers or employees, and are of dubious benefit to the environment.\nThrough the failure of Proposal 3, Michigan wind has been dissected and eviscerated by public opinion. The sooner our elected officials zip the death bag shut and send the corpse out for burial, the sooner Michigan can protect its rural areas from needless industrialization and our energy intensive industries from rising electricity costs that compromise their competitive edge.\nOther states, and our federal government, should take note.\nKevon Martis is Senior Policy Analyst for the Interstate Informed Citizen’s Coalition (www.iiccusa.org) in Blissfield, Michigan."} -{"text": "Backgrounder Article from\nThe Marrakesh Treaty\nMore than 800,000 Canadians live with a visual impairment, and around 3 million Canadians are print-disabled, which means that they have an impairment related to comprehension (e.g. autism) or the inability to hold or manipulate a book (e.g. Parkinson's disease). For these individuals, it can be especially difficult to find print material in a format that is both accessible and easy to use. More can be done to ensure that copyright laws do not create additional barriers for those with a print disability and that users have access to the latest and best published material from around the world.\nThe Marrakesh Treaty aims to bring the global community together to better address the universal challenge of ensuring timely access to, and the wider availability of, printed material for those with a visual impairment.\nIt sets international standards on certain exceptions to copyright so that print materials can be adapted into formats—such as Braille and audiobooks—that people with disabilities can use. The Treaty also makes it possible to distribute accessible-format copies between countries. The negotiations for the Treaty were led by the World Intellectual Property Organization, a United Nations agency with 188 member states. The Treaty will come into force once 20 countries have ratified or acceded to it.\nTo address the issue of access to these materials, the government has introduced a bill entitled An Act to amend the Copyright Act (access to copyrighted works or other subject-matter for persons with perceptual disabilities).\nCanada's current copyright framework already contains exceptions that allow for the making and distribution of accessible-format copies for the benefit of persons with disabilities. To ensure that these are fully in line with the Marrakesh Treaty and to enable Canada to accede to the Treaty, the bill will make targeted amendments to the Copyright Act. The proposed amendments maintain the important balance in Canada's copyright framework between the interests of copyright owners and users.\nPersons with disabilities and supporting organizations\nThe bill will allow, within specific parameters, persons with print disabilities and the organizations that support them to make and distribute accessible-format versions of works, including large-print books.\nThe bill will allow the sending of accessible-format copies to other countries, regardless of the nationality of authors, facilitating the cross-border exchange of works in accessible formats with supporting organizations in other countries.\nThe bill also specifies that technological protection measures (or digital locks) may be circumvented in order to provide access to persons with print disabilities. The amendments remove the condition that the lock not be unduly impaired but require that circumvention be done solely for the benefit of such persons.\nThese measures will bring benefits to many different groups of Canadians with print disabilities:\n- Students will have better access to print materials, helping them continue with their studies and better engage in the Canadian workforce. According to recent survey data, approximately 35 percent of students with a visual impairment discontinue their education because of their condition.\n- Workers will have greater opportunities. Current data suggests that approximately one third of Canadians with a visual impairment are not in the labour force.\n- Seniors—the group with the highest rates of visual impairment—will have better access to reading materials, which helps maintain their quality of life.\n- Canadians from minority language groups will have better access to books in a variety of languages.\n- Schools, libraries and charitable organizations that work with Canadians with disabilities will benefit from reduced duplication in the production of accessible works.\nProtecting authors and publishers\nThe bill also includes important safeguards to ensure that the legitimate interests of authors and publishers are respected.\nSafeguards will apply where accessible-format copies are already commercially available. For domestic use and imports, the exceptions do not apply where an accessible-format version is commercially available under reasonable terms in the Canadian market. For exports, the exceptions do not permit the sending of an accessible-format copy to another country if it is commercially available under reasonable terms in that foreign market, but the remedies that may be sought against non-profit organizations are limited in such circumstances.\nFinally, other key safeguards, such as protections for the moral rights of creators and the civil remedies available against those who enable online copyright infringement, will continue to apply.\nSearch for related information by keyword\nHon. Navdeep Singh Bains Innovation, Science and Economic Development Canada Economics and Industry\n- Date modified:"} -{"text": "te.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.UpdateRFTJobStatsInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"UpdateRFTJobStats\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"CreateOrGetDeployment\"})\n\n\tenv.OnActivity(\"CreateOrGetDeployment\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\t\treturn &activities.CreateOrGetDeploymentOutput{\n\t\t\t\tDeploymentName: \"accounts/test-account/deployments/rft-hotreload-test\",\n\t\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tenv.OnActivity(\"RunCreateRlorK8s\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.RunCreateRlorK8sInput) (*activities.RunCreateRlorK8sOutput, error) {\n\t\t\treturn &activities.RunCreateRlorK8sOutput{\n\t\t\t\tK8sJobName: \"keep-alive-k8s-job\",\n\t\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\t\tJobStatusFile: \"gs://bucket/status.json\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-123\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows and cleanup\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Mock child workflow execution - simulate completing chunk 4 (the resumed chunk)\n\tepochCallCount := 0\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tepochCallCount++\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: fmt.Sprintf(\"rollout-job-chunk-4\"),\n\t\t\t\tEvaluationJobName: fmt.Sprintf(\"eval-job-chunk-4\"),\n\t\t\t\tRLORJobName: fmt.Sprintf(\"rlor-job-chunk-4\"),\n\t\t\t\tOutputModel: \"accounts/test-account/models/epoch-0-chunk-4\",\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t\tEvaluationOutputDataset: \"accounts/test-account/datasets/eval-output-chunk-4\",\n\t\t\t\tEvaluationStats: `{\"total_count\": 100}`,\n\t\t\t\tTrackedResource: []common.TrackedResource{\n\t\t\t\t\t{ResourceType: common.ResourceTypeK8sJob, ResourceName: \"job-chunk-4\"},\n\t\t\t\t\t{ResourceType: common.ResourceTypeDataset, ResourceName: \"dataset-chunk-4\"},\n\t\t\t\t},\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Simulate previous run that completed chunks 0-3\n\tepochIndex0 := 0\n\tchunkIndex4 := 4 // Resume from chunk 4 (chunks 0-3 already completed)\n\tlastModel := \"accounts/test-account/models/epoch-0-chunk-3\"\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"resume-test-job\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tDatasetGcsUri: \"gs://bucket/training-dataset\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/final-output\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\tOutputModel: \"accounts/test-account/models/final-output\",\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{Enabled: false},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 200, // Enable chunking\n\t\tEnvironment: \"prod\",\n\t\tMetadataPath: \"gs://bucket/metadata/resume-test-job\",\n\n\t\t// Resume parameters - simulating resume from chunk 4 of epoch 0\n\t\tCurrentEpochIndexToResume: &epochIndex0,\n\t\tCurrentChunkIndexToResume: &chunkIndex4,\n\t\tLastOutputModelToResume: &lastModel,\n\t\tDatasetChunksToResume: []string{\n\t\t\t\"gs://bucket/chunk-0\",\n\t\t\t\"gs://bucket/chunk-1\",\n\t\t\t\"gs://bucket/chunk-2\",\n\t\t\t\"gs://bucket/chunk-3\",\n\t\t\t\"gs://bucket/chunk-4\",\n\t\t},\n\n\t\t// Previous epoch outputs from chunks 0-3 (simulating what was saved in metadata)\n\t\tEpochOutputsToResume: []RFTEpochWorkflowOutput{\n\t\t\t{\n\t\t\t\tRLORJobName: \"rlor-job-chunk-0\",\n\t\t\t\tOutputModel: \"accounts/test-account/models"} -{"text": "Alan Cassels visited a number of Vancouver doctors’ offices for a research project this summer, and the drug-policy expert could not help but notice that staff rarely paid for their own lunch.\nThe take-out meals supplied by friendly pharmaceutical sales reps filled the gap nicely instead.\n“There was always some company bringing them Thai curry, pizzas … a never-ending parade of delicious-smelling food,” said the University of Victoria researcher.\nSuch freebies are among an array of methods that drug firms employ with doctors who prescribe their products.\nA major pharmaceutical company, however, revealed Tuesday it is taking a seemingly unprecedented step back from the kind of marketing to physicians that is common throughout the sector, and has raised critics’ concerns for years.\nGlaxoSmithKline (GSK) announced it will stop the practice of paying certain fees to individual physicians and will no longer tie bonuses for its drug reps to the prescribing habits of specific doctors.\nSome analysts offered wary kudos on Tuesday to GSK, a company that recently has faced heavy penalties for questionable marketing, and yet led the way in starting to make the industry more transparent.\n“It’s a good first step,” said Dr. Joel Lexchin, an emergency physician and health-policy professor at Toronto’s York University. “The literature shows that when doctors get information from drug companies, it either has no effect on their prescribing, or makes their prescribing worse. There is no evidence it makes them better.”\nU.K.-based Glaxo announced that it would end payments to individual doctors — usually specialists known as “key opinion leaders” — for giving talks on products or a disease area. Subsidies to attend conferences are being phased out, too.\nThe company will also stop linking sales reps’ pay to the number of prescriptions handed out by individual doctors, emphasizing instead the reps’ technical knowledge and quality of service, as well as GSK’s overall performance.\nThe changes are designed to ensure “patients’ interests … always come first,” Andrew Witty, Glaxo’s CEO, said in a statement.\nGlaxo has 2,200 employees across Canada; the changes should be in effect here by the start of 2016, said a company spokeswoman, who asked not to be named.\nShe said GSK pays Canadian doctors to talk to other physicians about its products, and to help them participate in scientific meetings, activities that will end, but the spokeswoman could not say how many receive payments or at what cost.\nGlaxo’s move comes in the wake of some serious trouble for the company. It was fined US$3-billion by the U.S. government last year for illegally marketing its anti-depressants for unapproved uses, and withholding safety data on diabetes drug Avandia.\nAnd in China it is under investigation for allegedly bribing doctors and officials.\nYet it garnered positive reviews for being the first drug company to join alltrials.net, a project aiming to divulge full reports of drug trials, including negative results.\n‘It’s the food, flattering and friendship that promotes the drug’\nThe changes announced this week seem positive, but the “devil’s in the details,” said Mr. Cassels.\nHe and Dr. Lexchin also noted there are still many ways even GSK could influence the profession, such as by sponsoring associations, conferences and educational sessions, and through the personal relationships reps have with physicians.\n“It’s the food, flattering and friendship that promotes the drug,” said Mr. Cassels.\nA 2010 review of previous studies co-authored by Dr. Lexchin concluded that doctors exposed to industry messaging tend to prescribe more drugs, raise health-care costs and make lower-quality choices.\nDr. Louis Hugo Francescutti, president of the Canadian Medical Association, said the GSK initiative was welcome, but noted his group has had a code of ethics dealing with industry interactions in place for years.\nIt is especially important that doctors not engage in “peer selling” — giving company-sponsored talks to their colleagues that promote products, he said.\n“We don’t want practising physicians to be sales persons for either the pharmaceutical industry or medical device manufacturers,” said the Edmonton emergency physician. “It just doesn’t make sense.”\nDr. Lexchin said Health Canada should at least adopt the same kind of “sunshine” law being implemented soon in the U.S., requiring all drug-industry payments to doctors to be released publicly.\nDr. Francescutti said he did not think that was necessary, stressing that the large majority of physicians are responsible."} -{"text": "*laxabunga (lak sǝ buή´ gǝ) exclam. [slang] used as an exclamation of delight and laxifaction by laxers (lacrosse players). See also laxaholic.\nAlly Carey grew up with a soccer ball attached to her foot.Following in her soccer-oriented father’s footsteps, she played the sport all the way through high school. At a young age she had it all planned out. She was going to emulate her childhood idol, Mia Hamm, and play soccer for North Carolina and then—she hoped—Team USA.\n“I didn’t want to give up soccer at all,” she says. In the fourth grade, however, Carey started playing lacrosse. Beginning with a wooden stick—most club teams use aluminum sticks with plastic heads—she began to develop a connection with lacrosse.\nHer fondness for the sport grew at John Carroll High School in Bel Air, Md. Summers and falls became dedicated to soccer. When winter hit, she took out the lacrosse stick. As her high school days wound down, Carey faced a difficult decision. She could try to play both soccer and lacrosse in college, but she feared it would be too much to juggle. So she made up her mind, which turned out to be surprisingly easy.\n“I had more confidence in lacrosse than soccer—and definitely made a good choice.”\nVanderbilt certainly thinks so. Last June the 5-foot-8 midfielder became the first Vanderbilt lacrosse player to be named a first-team All-American twice. She is the school’s all-time leader in draw controls (183), and last year she ranked nationally in the top 10 for draw controls, caused turnovers and ground balls, which are similar to steals. She was a nominee for the Tewaaraton Award, which is given annually to the top men’s and women’s lacrosse players in the country. And last November Lacrosse Magazine announced her as one of four finalists for its Preseason Player of the Year Award.\n“We’d like to take credit for a lot of [her success], but what she has accomplished as an athlete is because of her drive,” says Vanderbilt Women’s Lacrosse Head Coach Cathy Swezey. “She is just a gifted kid with a tireless work ethic who really has made a great difference in our program.”\nCarey is only the most prominent example of how Vanderbilt benefits from Maryland’s historic strength in lacrosse. Maryland has contributed 10 players to the current squad, six of whom are seniors, and one-third of the early signees for next year also hail from the Old Line State.\nEven before she arrived at Vanderbilt, Carey was soaking in experiences that many dream about. As a junior in high school, she was picked to compete with Team USA in the International Federation of Women’s Lacrosse Associations’ U-19 (under 19) World Championship in Canada. Despite being one of the team’s—and tournament’s—youngest players, she earned Player of the Match honors in the semifinal against England. She then helped her teammates claim the gold in dominating fashion over Australia.\nGoosebumps climb her arms as she recalls chanting “U-S-A, U-S-A” with the crowd in Ontario. “I can’t even put into words what it feels like to have ‘USA’ across your chest,” she says. “The red, white and blue in the stands just makes you so proud to represent your country. It was an amazing experience.”\nCarey wants to experience that feeling again—on an even bigger stage. She is one of 36 players on the US Lacrosse women’s national senior team, along with Vanderbilt assistant coach Amber Falcone. The squad participated in a tournament during October and reunited in January. Come July, though, everyone must try out again and crack the final 18 in order to play in the 2013 World Cup in Canada. More immediately, as a senior captain, Carey is focused on helping the Commodores win an American Lacrosse Conference championship and reach elite status nationally. “I’m still wanting that national title,” she says.\nCarey graduates in May with a degree in human and organizational development and a minor in marketing. She hopes to land a job at Under Armour, a sports clothing and apparel company based in Baltimore where she interned last summer. Eventually, she would like to work with the company’s new lacrosse product line. “They are extremely efficient, but they also have a great time,” she says of the company. “It is totally the place I want to be—a perfect fit, kind of like here at Vanderbilt.”\nJerome Boettcher is a sports reporter for Nashville City Paper."} -{"text": "/epoch-0-chunk-0\",\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t\tTrackedResource: []common.TrackedResource{\n\t\t\t\t\t{ResourceType: common.ResourceTypeK8sJob, ResourceName: \"job-chunk-0\"},\n\t\t\t\t\t{ResourceType: common.ResourceTypeDataset, ResourceName: \"dataset-chunk-0\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tRLORJobName: \"rlor-job-chunk-1\",\n\t\t\t\tOutputModel: \"accounts/test-account/models/epoch-0-chunk-1\",\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t\tTrackedResource: []common.TrackedResource{\n\t\t\t\t\t{ResourceType: common.ResourceTypeK8sJob, ResourceName: \"job-chunk-1\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tRLORJobName: \"rlor-job-chunk-2\",\n\t\t\t\tOutputModel: \"accounts/test-account/models/epoch-0-chunk-2\",\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t\tTrackedResource: []common.TrackedResource{\n\t\t\t\t\t{ResourceType: common.ResourceTypeDataset, ResourceName: \"dataset-chunk-2\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tRLORJobName: \"rlor-job-chunk-3\",\n\t\t\t\tOutputModel: \"accounts/test-account/models/epoch-0-chunk-3\",\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t\tTrackedResource: []common.TrackedResource{\n\t\t\t\t\t{ResourceType: common.ResourceTypeK8sJob, ResourceName: \"job-chunk-3\"},\n\t\t\t\t\t{ResourceType: common.ResourceTypeDataset, ResourceName: \"dataset-chunk-3\"},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, WorkflowMetaData{})\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\t// Verify workflow completed successfully\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n\n\t// Verify we have all 5 epoch outputs (4 restored + 1 newly executed)\n\tassert.Len(t, result.EpochOutputs, 5, \"Should have 5 epoch outputs total\")\n\n\t// Verify restored epochs (0-3) have TrackedResource cleared\n\tfor i := 0; i < 4; i++ {\n\t\tassert.Empty(t, result.EpochOutputs[i].TrackedResource,\n\t\t\t\"Restored epoch %d should have empty TrackedResource to avoid duplicate cleanup\", i)\n\t\tassert.NotEmpty(t, result.EpochOutputs[i].RLORJobName,\n\t\t\t\"Restored epoch %d should preserve RLORJobName for early stop check\", i)\n\t\tassert.NotEmpty(t, result.EpochOutputs[i].OutputModel,\n\t\t\t\"Restored epoch %d should preserve OutputModel\", i)\n\t}\n\n\t// Verify the newly executed epoch (chunk 4) has TrackedResource intact\n\tassert.NotEmpty(t, result.EpochOutputs[4].TrackedResource,\n\t\t\"Newly executed epoch should have TrackedResource for cleanup\")\n\tassert.Len(t, result.EpochOutputs[4].TrackedResource, 2,\n\t\t\"Newly executed epoch should have 2 tracked resources\")\n\tassert.Equal(t, \"rlor-job-chunk-4\", result.EpochOutputs[4].RLORJobName)\n\tassert.Equal(t, \"accounts/test-account/models/epoch-0-chunk-4\", result.EpochOutputs[4].OutputModel)\n\n\t// Verify only 1 new epoch workflow was executed (chunk 4)\n\tassert.Equal(t, 1, epochCallCount, \"Should only execute chunk 4\")\n\n\t// Verify no early stop happened (would have failed if array access was out of bounds)\n\tassert.Equal(t, \"COMPLETED\", result.Status, \"Job should complete normally without early stop\")\n}\n\n// TestRFTJobWorkflow_BillingOnSuccessfulCompletion tests that billing is reported\n// when a job completes successfully with hot-reload enabled.\nfunc TestRFTJobWorkflow_BillingOnSuccessfulCompletion(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities FIRST (before any OnActivity calls)\n\tregisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register all activities first\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ExecuteComprehensiveCleanupInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"ExecuteComprehensiveCleanup\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"CreateOrGetDeployment\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBillingComplete\"})\n\n\t// Track billing activity calls\n\tvar billingCalled bool\n\tvar capturedBillingInput *activities.ReportRFTBillingCompleteInput\n\texpectedDeploymentName := \"accounts/test-account/deployments/rft-hotreload-billing-test\"\n\n\t// Now set up all mocks\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\t&DatasetValidationWorkflowOutput{JobName: \"validation-job\"}, nil,\n\t)\n\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: \"rollout-job-1\",\n\t\t\t\tEvaluationJobName: \"eval-job-1\",\n\t\t\t\tRLORJobName: \"rlor-job-1\",\n\t\t\t\tO"} -{"text": "“History, Rebellion and Reconciliation” Symposium Examines Race, Justice and Community Activism\nPanels, Films and Discussions Will Be Held April 25, 9:45 a.m. to 8:30 p.m.\nA police shooting of an unarmed black man in Ferguson, Mo., this summer, along with other shootings by police officers around the country, led to weeks of protests in communities around the country. The Smithsonian’s National Museum of African American History and Culture (NMAAHC) will join the national conversation by hosting a daylong symposium titled, “History, Rebellion and Reconciliation: Communities Mobilized for Social Change.”\nThe program will be held in the Rasmuson Theater in the Smithsonian’s National Museum of the American Indian (Independence Avenue at Fourth Street S.W.) from 9:45 a.m. to 8:30 p.m. Admission is free and open to the public; however, seating is on a first-come, first-served basis and reservations are recommended at (202) 633-0070 or nmaahc.si.edu.\n“We need to explore what this moment in our nation’s history means, especially in terms of leadership,” said Lonnie Bunch III, the director of NMAAHC. “What impact does generational change have on leadership and faith communities? What are the lessons to be learned from Ferguson, particularly within the context of community mobilization?”\nBunch will open the symposium and welcome guests at 9:45 a.m., followed by a discussion with Rev. Willis H. Johnson, pastor of Ferguson’s Wellspring Church. Willis will describe the conditions that led to the distrust between law enforcement and the city’s African American community.\nThe symposium will consist of three panels, one each in the morning, afternoon and evening. The first panel, “Ferguson: Impact, Importance & Long-Range Hopes,” from 10 a.m. to 12:30 p.m., will explore the evolution of the media, community leadership and activism as they relate to communities organized against excessive police force and economic inequality. This panel will be moderated by Juan Williams, journalist and Fox News political analyst. Panelists include:\n- Lisa Crooms, Howard University law professor\n- Rev. F. Willis Johnson Jr., Wellspring Church\n- Mychal Denzel Smith, contributing writer, The Nation\nThe second panel, “Ferguson & Faith in the 21st Century,” from 2 to 4:30 p.m., addresses the past, present and future roles of faith organizations as advocates for social change. It also examines changing roles of faith leaders and the range of their focus. Moderated by Rex Ellis, NMAAHC associate director of curatorial affairs, the panel includes:\n- Jeff Johnson, journalist and motivational speaker\n- Renee Harrison, Howard University School of Divinity professor and former Los Angeles police officer\n- Rev. Osagyefo Uhuru Sekou, pastor, theologian, author and community organizer\nThe final panel, “#Words Matter: Making Revolution Irresistible,” from 6 to 8:30 p.m., features the response of the creative community to excessive police violence, racism and communal demands for equality. The panel, moderated by Morgan State University professor Jared Ball, includes:\n- Mark Bolden, psychologist and co-moderator\n- Jasiri X, rapper and community activist\n- Jamilah Lemieux, senior digital editor, Ebony magazine\n- Jef Tate: DJ, Words, Beats and Life\nIn addition to the panels, the symposium will also present “Citizen” works by award-winning poet Claudia Rankine, interpreted on film by director John Lucas from 12:30 to 1:30 p.m. The film shorts, titled Situation #1through 5, are based on Rankine’s book Citizen: An American Lyric, which is a National Book Award Finalist for 2014.\nFrom 1:30 to 2:30 p.m., the symposium will present “On Art and History: A Conversation with Ava DuVernay.” With Selma, DuVernay is the first black female director to have a film nominated for an Academy Award. She will discuss filmmaking and the creative responses to historic events such as the Selma to Montgomery march.\nFrom 5 to 6 p.m., guests at the symposium can view a slide presentation of social justice related objects from the museum’s collection and select artists, accompanied by a mix from DJ Jef Tate of “Words, Beats and Life.”\nIn an effort to engage audiences beyond the walls of the Smithsonian, the daylong symposium will be available by livestream through a link on the museum’s website. The museum will also participate in dialogue on social media throughout the symposium. The public may follow the museum on Twitter @NMAAHC to participate in the discussion using #HRRlive or #WordsMatter.\nFor more information, visit nmaahc.si.edu or call (202) 633-1000.\nThe National Museum of African American History and Culture was established by an act of Congress in 2003 making it the 19th museum of the Smithsonian Institution. Scheduled for completion in 2016, it is being built on the National Mall in Washington, D.C., on a five-acre tract adjacent to the Washington Monument.\n# # #"} -{"text": "Thunder fans spilled into the concourses, the stairs and the escalators, and yet, no one seemed to be in any hurry to leave the Ford Center.\nThey wanted to celebrate.\n\"Beat L.A.!\" the chant went up.\nFaster than Russell Westbrook driving to the basket, the entire stairwell echoed with sound.\nFans from the cheap seats mixed with fans from the suite seats.\nThe cross-section of people who joined that chant last Saturday night was as diverse as Oklahoma City itself. There were black and white, Hispanic and Asian, white-collar and middle-class, and they were all united, one Thunder Nation.\nOn the eve of Game 6 in a playoff series against the Lakers that has been all about home-court advantage, there is no doubt that this Thunder squad has done many fantastic things for the city and the state. Think of the increased national exposure and the significant economic impact.\nStill, nothing the Thunder has done is more important than the way it is bringing folks together. It has made everyone feel like they're part of something grand. It has created a sense of community that is changing this city and this state.\nDon't misunderstand. Folks here have always been a friendly bunch, a helpful lot. Yet, the Bedlam rivalry has long created tension. It's crimson vs. orange, Cowboy vs. Sooner, us vs. them.\nThat will never go away entirely, but it has been muted.\nThe Thunder has made folks feel united in a way that this state has never experienced. You could sense it in the late-game sing-a-long that broke out Saturday night at the Ford Center when they played \"Sweet Caroline.\" You could hear it in the roar that went up when this team came out for warm-ups before the first two home playoff games. You could see it on the streets outside the arena after the home games.\nBricktown became a rolling block party Saturday night. Folks hung out of cars high-fiving pedestrians. Fans cheered. Horns blared.\nA railing that runs along Reno Avenue between Rooster's and Starbucks became a prime location. Fans stood on that railing and were able high-five pedestrians on the sidewalk and motorists on the street.\nOne out-of-town visitor said Thunder fans were Red Sox like.\nTalk about walking in some tall cotton. Still, the evidence of the Thunder's growing fandom is everywhere.\nHop in your car in Oklahoma City, and it won't be long before you see someone flying one of those Thunder car flags. The thing is, you're just as likely to spot one on a suped-up car rolling down NW 23rd Street as you are on a soccer-mom van streaking up Broadway Extension toward Edmond.\nThere's even virtual evidence of Thunder mania. On Twitter, more than a thousand folks have added a Thunder twibbon to their profile photo. That means a small Thunder logo now appears in the lower righthand corner of their picture.\nThe number of Thunder twibbons is double that of Cavaliers ones. Ditto for Spurs or Celtics.\nMaybe it's the way the Thunder has responded this season after winning only 23 games a season ago. Perhaps it's the personality of the players or the youth of the franchise or the style of the game. Whatever the reason, this team is drawing people together.\nHeck, Thunder fans are even being united by their sleep deprivation. The past four games in this playoff series have started no earlier than 8:30 p.m. Oklahoma time. That means games going until around midnight, and that means scores of bleary-eyed Oklahomans.\nJeremy Johnson is the student minister at First Baptist Church in Weatherford. After watching Saturday night's game on television — \"I hooked the flat screen up outside ... and we sat around the fire pit, grilled burgers and watched the game\" — he had to be at the church at 8 a.m.\nHis early-morning boost?\n\"Had two cups of coffee and a ham and cheese biscuit and prayed,\" he said. \"Yes, Sunday morning was tough. But it was well worth it to watch the Thunder win.\"\nLanie James felt the same way. The Oklahoma City thirtysomething went to Saturday night's game, got home after midnight, then got up before 5 a.m. Sunday morning to run the half marathon in the Oklahoma City Memorial Marathon.\nWhat's more, she beat her half-marathon time of a year ago by 13 minutes.\n\"I don't know how I did it,\" she said. \"I credit the energy of Oklahoma City that weekend. It was absolutely one of the most incredible weekends to be a part of.\"\nLike Johnson and James, Maija and Rob Vogel are battling sleep deprivation, too, but they are doing so on separate continents.\nMaija and Rob met in Oklahoma City eight years ago when he was visiting a family he'd lived with as a foreign exchange student. They married four years ago, made their home in the city and even bought season tickets for the Thunder. The arrangement had just one hang-up — Rob had started a business in his native Holland before he ever met Maija.\nHe still travels to Holland regularly to manage the business but refuses to miss a Thunder game.\n\"So, every night the Thunder plays, I put a chair in front of the TV with my Mac on it and wait for my Skype to ring,\" Maija said.\nHer laptop sends a streaming picture of the TV broadcast via the Internet to his laptop.\n\"I'm sure if my neighbors looked in my windows,\" Maija said, \"they would think I am a mental patient high-fiving the computer.\"\nThat makes late nights for her but even later ones for him. Those games that start at 8:30 p.m. in Oklahoma start at 3:30 a.m. in Holland.\nBut they are sacrificing for the Thunder just like thousands of other Oklahomans are. No one seems to mind it. No one seems to see it as a sacrifice really.\nFolks want to be part of Thunder mania. This team has created a sense of community that is powerful. Unique. Special.\nIt's one more thing to celebrate."} -{"text": "utputModel: input.TrainingConfig.OutputModel,\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\tenv.OnActivity(\"CreateOrGetDeployment\", mock.Anything, mock.Anything).Return(\n\t\t&activities.CreateOrGetDeploymentOutput{\n\t\t\tDeploymentName: expectedDeploymentName,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t}, nil,\n\t)\n\n\tenv.OnActivity(\"ReportRFTBillingComplete\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\t\tbillingCalled = true\n\t\t\tcapturedBillingInput = &input\n\t\t\treturn &activities.ReportRFTBillingCompleteOutput{\n\t\t\t\tAcceleratorSeconds: map[string]int64{\"NVIDIA_H100_80GB\": 3600},\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"billing-test\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tDeploymentShape: \"accounts/fireworks/deploymentShapes/rft-base-model/versions/v1\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{Enabled: false},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: false,\n\t\tCreateTime: time.Now().Add(-1 * time.Hour),\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n\n\t// Verify billing was reported on successful completion\n\tassert.True(t, billingCalled, \"ReportRFTBillingComplete should be called on successful completion\")\n\trequire.NotNil(t, capturedBillingInput, \"Billing input should be captured\")\n\tassert.Equal(t, \"billing-test\", capturedBillingInput.JobID)\n\tassert.Equal(t, \"test-account\", capturedBillingInput.AccountID)\n\tassert.Equal(t, expectedDeploymentName, capturedBillingInput.HotReloadDeployment)\n}\n\n// TestRFTJobWorkflow_BillingOnCancellation tests that billing is reported\n// when a job is cancelled (user-initiated cancellation) with hot-reload enabled.\nfunc TestRFTJobWorkflow_BillingOnCancellation(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities FIRST\n\tregisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register all activities first\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ExecuteComprehensiveCleanupInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"ExecuteComprehensiveCleanup\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"CreateOrGetDeployment\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBillingComplete\"})\n\n\t// Track billing activity calls\n\tvar billingCalled bool\n\tvar capturedBillingInput *activities.ReportRFTBillingCompleteInput\n\texpectedDeploymentName := \"accounts/test-account/deployments/rft-hotreload-cancel-test\"\n\n\t// Now set up all mocks\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\t&DatasetValidationWorkflowOutput{JobName: \"validation-job\"}, nil,\n\t)\n\n\t// Make the epoch workflow block until cancelled\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\t// Block until context is cancelled\n\t\t\treturn nil, workflow.Await(ctx, func() bool {\n\t\t\t\treturn ctx.Err() != nil\n\t\t\t})\n\t\t},"} -{"text": "RALEIGH, N.C. (AP) — After scores of television ads, a Charlotte convention for the Democrats and a refurbished Republican ground game, the outcome of the presidential race in North Carolina next week isn't much clearer than it was before Election Day 2008.\nAs the campaigns of President Barack Obama and Republican Mitt Romney head into the final days, both sides enthusiastically suggest they're days away from winning the state's 15 electoral votes. Thousands of volunteers were expected this weekend to call and knock on doors, recruit more volunteers and bring people to vote before early voting ends Saturday afternoon.,\nWhile both sides find reason for optimism from the early-vote statistics and polling, they'd be hard pressed to predict anything beyond a slim victory. An Elon University poll released earlier this week show Obama and Romney tied among likely voters.\n\"It's very competitive, it's very close,\" said Jonathan Kappler, research director at the nonpartisan North Carolina Free Enterprise Foundation, which tracks state politics for business interests. \"It will ultimately be decided by a narrow margin.\"\nObama won North Carolina by 14,000 votes in 2008 over John McCain from more than 4.3 million votes cast. Obama's victory, the first for a Democratic nominee since 1976, was attributed in part to turnout among energized black voters and young people.\nObama's organizing efforts didn't leave the state after 2008. Republicans acknowledged a poor get-out-the-vote effort last time around, and vowed to do better this year. A stubbornly high state unemployment rate and a Republican surge in the 2010 state elections also boosted Republicans' expectations to return the state to their presidential column this year.\nMeanwhile, the Democrats energized their base in North Carolina by holding their party's convention in Charlotte in September and signaled that Obama sought to make the state a permanent part of the party's electoral map.\nThe result is two robust get-out-the-vote volunteer operations. The Obama-led Democratic campaign in North Carolina boasts of 54 offices and between 15,000 and 20,000 volunteers, while the GOP says they've got 24 \"victory\" offices backing Romney and the Republican ticket and more than 10,000 volunteers.\nObama national campaign manager Jim Messina told North Carolina volunteers Thursday night the president's early-voting success again among black and youth voters is fueling optimism. Messina said Romney would have to receive between 54 percent and 60 percent of the votes cast on Election Day to catch Obama's early-vote advantage, citing public polling.\nMessina cautioned that \"the race remains very, very close ... We'll take a tied race. We've always said we'll go into Election Day tied and win it on the ground.\"\nRepublican officials in the state say they're confident they'll win and say early voting totals have wiped away the 14,000-vote margin from 2008. The share of GOP voters from all types of early voting as of Friday is 2 percentage points higher compared to 2008 and the Democrats' share is 3 percentage points lower, according to State Board of Elections data.\n\"I see this race that we are absolutely ahead and that we have the momentum on our side and the intensity,\" Romney's state campaign manager, Michael Joffrion, said Friday.\nNeither Obama nor Romney has visited North Carolina in weeks, leading some to suggest North Carolina isn't a top-tier battleground state. Obama last visited North Carolina during the convention and Romney held an Asheville rally Oct. 11.\nHowever, they've had dozens of surrogates making the candidates' arguments. Republicans have had McCain and House Speaker John Boehner. President Bill Clinton was scheduled to come to North Carolina on Sunday, followed the next day by first lady Michelle Obama in Charlotte.\nLongtime North Carolina Democratic consultant Gary Pearce said the first lady's appearance is a good sign Obama believes North Carolina is winnable. He said Romney has more riding on North Carolina because it becomes very difficult for him to reach the 270 electoral votes need to win the presidency without it.\nKappler said he's counted 112 separate presidential campaign ads that aired in North Carolina since the May primary: 38 from the Obama campaign, 37 from Romney, 35 from Republican-leading outside groups and two from Democratic-leaning groups. The commercials and other campaign activity show that North Carolina is a permanent battleground state and no longer an afterthought in the presidential sweepstakes, he said.\n\"We are entering a new phase in North Carolina politics when we are part of the national conversation,\" said Kappler, who on Friday gave an ever-so slight advantage to Romney. \"We might not be the center of the conversation, but we are part of it.\""} -{"text": "To contribute to this site, see above menu item \"About\".\nThese transcriptions may contain human errors.\nAs always, confirm these, as you would any other source material.\nManning, James F. - Passed away peacefully at the Health Sciences Centre on Saturday, Nov. 9, 1996, Jim Manning, aged 77 years. WWII Veteran of the Royal Navy (PJX20087). Predeceased by his son Robert in 1954 and his son Paul in 1972. Leaving to mourn his sad loss, his loving and devoted wife Mary (O'Brien); five sons: Con (Carol), Jim (Bernadette), Wayne (fiancee Michelle), Brian (fiancee Donna), at Torbay, Gerard (Phyllis) at Calgary, Alta; brothers: Joseph\n(Catherine), Cyril (Dot); sisters-in-law Evelyn, in Boston; brothers-in-law: Gordon O'Brien and Joseph O'Brien, of Torbay, Robert Dodds of Chico, California, Francis Cole of Kentucky; eight grandchildren and three great-grandchildren; numerous nieces, nephews, and other relatives and friends. Special cousins: Anne Roche in Boston and Mary Nolan at Torbay. Resting at Caul's Funeral Home, Torbay. Visitation beginning at\n4 p.m. Saturday, Nov. 10. Funeral service on Tuesday, Nov. 12, 1996 at 10 a.m. from Holy Trinity Church, Torbay. Flowers gratefully accepted or donations may be made to the Canadian Diabetes Association or the Royal Canadian Legion.\nMartin, Mary - Passed peacefully away at the Grace General Hospital on Wednesday, March 23, 1994, Mary Martin, in her 73rd year. Predeceased by her husband Patrick, 1981. Left to mourn their sad loss, her daughters: Mary Kenny, Bridget Haynes (Wyn), Helen Noseworthy (Norman),\nMargaret Foley; sons: Ales (Angela) and Gerard (Mary); thirteen grandchildren; sister Margaret Stringer and family at Little Heart's Ease; one special aunt: Agnes Cantwell at Torbay; also many other close friends and relatives. Resting at Caul's Funeral Home, LeMarchant Road. Funeral Mass from St. Pius X Church, Friday, March 25, 1994, at 9:45 a.m. Interment at Holy Sepulchre Cemetery.\nRoche, Craig William - Passed tragically away in Burnaby, B.C., Craig William Roche, beloved son of William and Peggy Roche of Torbay. Predeceased by his loving grandmother Gertie O'Rourke. Leaving to mourn, besides his parents: one brother Corey; grandparents Nicholas and Jean Roche; great-aunt Sister Marie Roche; special friends in Logy Bay: Agnes Dyer, Dan O'Brien and son Darrell; four aunts; five uncles and a large circle of relatives and friends. Resting at Caul's Funeral Home, Torbay. Funeral on Saturday, April 3 at 10 a.m. from Holy Trinity Church, Torbay. Interment at R.C. Cemetery, Torbay. Flowers gratefully accepted or donations may be made to one's favorite charity. Always remembered. Always loved.\nRodgers, Kevin - Passed suddenly away on Saturday, August 16, 1997, Kevin Rodgers, son of the late James and Genevive Rodgers, 32 Signal Hill Road, also predeceased by his brother James and sister Annie. Leaving to mourn brothers: Albert and Charles (Annie) of St. John's, sisters: Mary of St. John's, Margaret of Chesapeake, Virginia; Genevive of St. John's; and Bride of P.E.I.. Also a large circle of other relatives and friends. Resting at Caul's Funeral Home, LeMarchant Road on Sunday at 7 p.m. Funeral mass on Tuesday to St. Joseph's Church at a time to be announced.\nStamp, Richard - Passed away at St. Clare's, February 4th, Richard Stamp, age 81 years. Leaving to mourn wife Sarah; seven daughters: Frances (David) Scott, Delores (Vincent) Hawco, Philomena (William)\nPower, Brenda (Pat) Squires, Justina (John) Woodfine, Jackie (Robert) Whitten and Bobby (Ron) Follett; seven sons: Cyril (Mary), Andrew (Ann), Douglas (Phylis), Richard (Marilyn), Martin (Diane), William (Cathy), Tony [and friend Laura];\nthirty-four grandchildren and ten great-grandchildren and three sisters: Mary Miller, Sarah Hogan and Margaret Stamp and two brothers: Edgar and Thomas. Resting at Caul's Funeral Home, Torbay. Funeral notice later.\nStringer, Hubert - Passed peacefully at the Dr. G. B. Cross Memorial Hospital, Clarenville on April 17, 1996, Hubert Stringer of Little Heart's Ease, aged 82 years. Leaving to mourn his loving wife Margaret; four sons: Thomas (Audrey), Howard (Christine), Doug (Bev) and Barry (Sherry); two daughters: Mary (Bram) and Janette; five grandchildren: Trevor, Jerry, Jody, Robbie and Rose; one brother Walter (Dorthy); one sister Jessie (Allan); special niece Dorthy Drodge; and a large circle of relatives and friends. Resting at Bethal United Church, Little Heart's Ease. Funeral Service to take place at Bethal United Church, Little Heart's Ease on Saturday, April 20, 1996 at 2:00 p.m. interment at Little Heart's Ease United Cemetery. Flowers gratefully accepted or donations can be made to the Canadian Diabetes Association.\nWade, Frances - Passed peacefully away at St. Clare's Mercy Hospital February 3rd, Frances Wade in her 86th year. Leaving to mourn one son Leo and wife Sarah at Flatrock; one sister Mrs. Agnes Wade, Flatrock; four grandchildren and 10 great-grandchildren. Funeral Tuesday from Caul's Funeral Home to St. Michael's Church, Flatrock for mass at 11 a.m. Interment in Flatrock.\nPage contributed by Shelley O'Brien\nPage Revised by Ivy F. Benoit (October 13, 2003)\nNewfoundland's Grand Banks is a non-profit endeavor.\nNo part of this project may be reproduced in any form\nfor any purpose other than personal use.\n© Newfoundland's Grand Banks (1999-2016)\nYou can search the entire NGB site\nby using the [Google] search below."} -{"text": "\n\t)\n\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\tenv.OnActivity(\"CreateOrGetDeployment\", mock.Anything, mock.Anything).Return(\n\t\t&activities.CreateOrGetDeploymentOutput{\n\t\t\tDeploymentName: expectedDeploymentName,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t}, nil,\n\t)\n\n\tenv.OnActivity(\"ReportRFTBillingComplete\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ReportRFTBillingCompleteInput) (*activities.ReportRFTBillingCompleteOutput, error) {\n\t\t\tbillingCalled = true\n\t\t\tcapturedBillingInput = &input\n\t\t\treturn &activities.ReportRFTBillingCompleteOutput{\n\t\t\t\tAcceleratorSeconds: map[string]int64{\"NVIDIA_H100_80GB\": 1800},\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"cancel-test\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tDeploymentShape: \"accounts/fireworks/deploymentShapes/rft-base-model/versions/v1\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{Enabled: false},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: false,\n\t\tCreateTime: time.Now().Add(-1 * time.Hour),\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\t// Register a callback to cancel the workflow after deployment is created\n\tenv.RegisterDelayedCallback(func() {\n\t\tenv.CancelWorkflow()\n\t}, 100*time.Millisecond)\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\n\t// Workflow should be cancelled\n\terr := env.GetWorkflowError()\n\trequire.Error(t, err, \"Workflow should have an error due to cancellation\")\n\n\t// Verify billing was reported on cancellation\n\tassert.True(t, billingCalled, \"ReportRFTBillingComplete should be called on cancellation\")\n\trequire.NotNil(t, capturedBillingInput, \"Billing input should be captured\")\n\tassert.Equal(t, \"cancel-test\", capturedBillingInput.JobID)\n\tassert.Equal(t, \"test-account\", capturedBillingInput.AccountID)\n\tassert.Equal(t, expectedDeploymentName, capturedBillingInput.HotReloadDeployment)\n}\n\n// TestRFTJobWorkflow_NoBillingOnFailure tests that billing is NOT reported\n// when a job fails (only cancelled jobs should be billed, not failed ones).\n// TestRFTJobWorkflow_ContinueAsNew tests that the workflow triggers Continue-As-New\n// when the history length exceeds the threshold to prevent workflow history overflow.\nfunc TestRFTJobWorkflow_ContinueAsNew(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.UpdateRFTJobStatsInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"UpdateRFTJobStats\"})\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-continue\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\tenv.OnActivity(\"UpdateRFTJobStats\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Track epoch executions\n\tepochCallCount := 0\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tepochCallCount++\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tRolloutJobName: fmt.Sprintf(\"rollout-job-%d\", epochCallCount),\n\t\t\t\tEvaluationJobName: fmt.Sprintf(\"eval-job-%d\", epochCallCount),\n\t\t\t\tRLORJobName: fmt.Sprintf(\"rlor-job-%d\", epochCallCount),\n\t\t\t\tOutputModel: input.TrainingConfig.OutputMo"} -{"text": "Gathering Of Presidential Lineage Celebrates U.S. History\nSCOTT SIMON, HOST:\nDescendents of famous American political figures, both Democrats and Republicans, white and black, coming together in a small Ozarks town this weekend. The Missouri Cherry Blossom Festival in Marshfield is hosting the descendents of more than 30 past presidents, including relatives of the country's founding fathers and one of the country's most famous slaves.\nFrom member station KSMU, Jennifer Davidson reports.\nJENNIFER DAVIDSON, BYLINE: As a thunderstorm brews outside Blackberry Creek Bed and Breakfast, the direct descendents of Thomas Jefferson and Harry Truman are sitting down to a hearty innkeeper's breakfast with George Washington's great-nephew.\nCHRIS TRUSCOTT: Thomas Jefferson is my great, great, great and several more greats grandfather.\nDAVIDSON: That's Chris Truscott. He shares Jefferson's love of the written word. He's a corporate speechwriter. At the breakfast table is Tom Washington, who comes here very year from Texas. The first time Tom Washington was invited by the festival's organizer he was a bit skeptical.\nTOM WASHINGTON: I said he wants to what? I'm supposed to go to this small town in the Ozarks for a Cherry Blossom Festival. Is this for real?\nDAVIDSON: Despite his famous relatives warning against party politics, Washington works for the Republican Party in Texas. He jokes that the Adams are still as liberal as ever. Relatives of Presidents Madison, Monroe, Nixon, Cleveland and both Roosevelts have all been here. Over at the Marshville High School, Nicholas Inman is greeting guests.\nHe's a young minister who, after living in D.C., felt torn between the nation's capital and his hometown. He's organized the planting of 100s of cherry trees in Marshfield to remind him of the pink blooms that Washington is famous for.\nNICHOLAS INMAN: I love history and I felt like people need to learn history from primary sources and so we needed a festival to go around those trees.\nDAVIDSON: The festival has united some unlikely pairs. Bertram Hayes Davis is the great-great-grandson of Jefferson Davis and is now friends with Lynn Jackson. She's a descendent of Dred Scott, a slave who famously sued for his freedom. As Davis says, his ancestor had a distinguished career before the Civil War.\nBERTRAM HAYES DAVIS: Hero of the war of 1847, secretary of war and senator, and so people don't understand that Jefferson Davis was an American patriot for the first 52 years of his life before he was appointed, not elected, to the presidency of the Confederacy.\nDAVIDSON: Lynn Jackson oversees the Dred Scott Heritage Foundation in St. Louis.\nLYNN SCOTT: In coming together and sharing, you know, how do you feel being the descendent of a slave? How do you feel being the descendent of a Confederate president? And we find some common ground here.\nDAVIDSON: Back at the bed and breakfast, over a steaming cup of coffee, Thomas Jefferson's descendent, Chris Truscott, reflects on how the festival has changed his life. When attending the festival two years ago, he fell in love with the editor of the Marshfield newspaper. He relocated, the two married, and they're expecting a baby this summer.\nHe says people tell him his facial features strongly resemble Jefferson's straight pointed nose and square jaw.\nTRUSCOTT: I don't know if it's true, but people say it. I think there's a - I think to an extent people want to believe it.\nDAVIDSON: His father is buried at Monticello, where he's also eligible for a plot one day. But Truscott says he'll be buried wherever home is when he dies, and that very well could be among the cherry trees that grace this little sliver of the Louisiana Purchase. For NPR News, I'm Jennifer Davidson.\n(SOUNDBITE OF MUSIC)\nSIMON: And later this hour, coming up in time for Broadway's annual honors, the Tony Awards will look ahead at the season's theater hits and misses with Barbara Chai of the Wall Street Journal. And as always, we invite you to join us on Twitter. We're at NPR WEEKEND, and I'm at NPRScottSimon, all one word.\n(SOUNDBITE OF MUSIC)\nSIMON: You're listening to WEEKEND EDITION from NPR News. Transcript provided by NPR, Copyright NPR."} -{"text": "Ryan Unzicker Wins $10,000 Birthday Race/Kenny Wallace Crowned Summit Modified Nationals Champ\nThe annual Birthday Race weekend at Oakshade Raceway attracted racers from at least nine different states and Canada. Fans from all over packed the stands to watch an exciting UMP Summer Nationals finale with Ryan Unzicker and Brian Ruhlman picking up feature race wins and Brian Shirley and Kenny Wallace both earned Summer Nationals titles.\nFifty-six UMP Late Model teams battled to make the 22-car starting line-up for the 60-lap Birthday Race/Summer National finale feature. After a slight delay due to a quick rain shower, the green flag dropped on a caution-free main event. Summer Nationals points leader Brian Shirley started on the pole and maintained the early lead. A hard-charging Brandon Sheppard from New Berlin, Illinois, quickly closed in and took the lead on lap 12. Sheppard had set a torrid pace earlier in his heat race win, running laps almost a half second faster than fast qualifier Jason Feger’s time. Sheppard appeared to be on his way to a $10,000 win after pulling away from the rest of the field running the high line through the turns.\nWithout the help of any caution flags to tighten the field, Ryan Unzicker slowly began to reel in Sheppard as they worked through lapped traffic. It wasn’t until the last 10 laps that Sheppard’s lead quickly evaporated. Unzicker, who likes to run the low line around the corners, got alongside Sheppard and took the lead on lap 56. The two drivers battled side by side a couple laps through some heavy lapped traffic. Unfortunately, Sheppard caught the wall just a bit coming off turn two which allowed Unzicker to pull ahead and take the checkered flag to become the 2012 Oakshade Raceway Birthday Race winner. Sheppard was disappointed to finish second after leading the vast majority of the race. Matt Miller started tenth and climbed to a third place finish followed by Jeep Van Wormer in fourth. Brian Shirley’s fifth place finish was enough to capture the 2012 UMP Summer Nationals Championship as “The Hell Tour” came to a close after nearly a month of continuous racing.\nKenny Wallace decided to run for the Summer Racing Equipment Modified Nationals championship at 7am Saturday morning and had Tony Stewart fly him out to compete with 40 other Modified drivers. Sitting second in points behind an absent Mike Harrison, he just needed a 16th place or better finish to earn that championship. Things looked good early in the 25-lap feature for Wallace who started on the outside of the front row and got the early advantage over Zack Olger. Jake Ruefer charged toward the front and took the lead from Wallace on lap 16. Clarklake, Michigan’s Brian Ruhlman had his car hooked up on the high side and got by Wallace for second. Soon after taking second he then began to challenge Ruefer for the lead. A spin by Collin Thirlby on lap 19 brought out the caution flag forcing Ruhlman to restart behind Ruefer. After the restart, Ruhlman went back to work on the high side and took the lead three laps later. Ruhlman went on to pick up the $1,000 pay day for the win. Ruefer finished second followed by Jacob Poel, Zach Schroder and Zack Olger. Wallace slipped back to finish sixth his first time at Oakshade Raceway, but earned the Summit Racing Equipment Modified Nationals Championship.\nBrandon Myers from Morenci, Michigan, started on the pole of the Hornet feature event and led the entire distance. William Cundick and Drew Smith made him earn the victory as both drivers raced him hard. Myers fended off the challenges and picked up his second feature win of the year. Smith edged out Cundick for second. Maverick Wright finished fourth with Devon Bell ending up fifth.\nAfter taking the week off, the UMP Sportsman, UMP Bomber and UMP Sports Compact divisions will be back in action along with UMP Late Models and Hornets for a full show in addition to the Hot Rod Welding “Make-up Bomber Race” at Oakshade Raceway. Gates open at 4pm with racing at 7pm."} -{"text": "del,\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Simulate a job with many chunks that would cause large history\n\t// Using resume parameters to simulate continuing from a previous run\n\tepochIndex := 3\n\tchunkIndex := 0\n\tlastModel := \"accounts/test-account/models/epoch-2-model\"\n\n\t// Provide previous epoch outputs to simulate a resumed workflow\n\tpreviousEpochOutputs := []RFTEpochWorkflowOutput{}\n\tfor i := 0; i < 12; i++ { // 3 epochs * 4 chunks = 12 previous outputs\n\t\tpreviousEpochOutputs = append(previousEpochOutputs, RFTEpochWorkflowOutput{\n\t\t\tRLORJobName: fmt.Sprintf(\"rlor-job-%d\", i),\n\t\t\tOutputModel: fmt.Sprintf(\"accounts/test-account/models/epoch-%d-chunk-%d\", i/4, i%4),\n\t\t\tStatus: \"COMPLETED\",\n\t\t})\n\t}\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-continue\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tDatasetGcsUri: \"gs://bucket/training.jsonl\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 5, // 5 epochs with 4 chunks each = 20 iterations\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t\t// Resume parameters\n\t\tCurrentEpochIndexToResume: &epochIndex,\n\t\tCurrentChunkIndexToResume: &chunkIndex,\n\t\tLastOutputModelToResume: &lastModel,\n\t\tDatasetChunksToResume: []string{\n\t\t\t\"gs://bucket/chunk-0.jsonl\",\n\t\t\t\"gs://bucket/chunk-1.jsonl\",\n\t\t\t\"gs://bucket/chunk-2.jsonl\",\n\t\t\t\"gs://bucket/chunk-3.jsonl\",\n\t\t},\n\t\tEpochOutputsToResume: previousEpochOutputs,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\n\t// The workflow should complete successfully\n\t// In the test environment, history length is not accurately simulated,\n\t// so Continue-As-New won't be triggered. But this test verifies:\n\t// 1. Resume logic works correctly with EpochOutputsToResume\n\t// 2. The workflow can handle many epochs without issues\n\t// 3. The Continue-As-New code path exists and compiles correctly\n\n\tvar result RFTJobWorkflowOutput\n\terr := env.GetWorkflowError()\n\tif err == nil {\n\t\trequire.NoError(t, env.GetWorkflowResult(&result))\n\t\tassert.Equal(t, \"COMPLETED\", result.Status)\n\t\t// Should have previous outputs + new epochs\n\t\tassert.GreaterOrEqual(t, len(result.EpochOutputs), len(previousEpochOutputs))\n\t}\n\t// Note: In production, if history > 4000 events, this would return ContinueAsNewError\n}\n\nfunc TestRFTJobWorkflow_NoBillingOnFailure(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities FIRST\n\tregisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register all activities first\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ExecuteComprehensiveCleanupInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"ExecuteComprehensiveCleanup\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"CreateOrGetDeployment\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.GetAccountUsageInput) (*activities.GetAccountUsageOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"GetAccountUsage\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ReportRFTBillingInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"ReportRFTBilling\"})\n\n\t// Track billing activity calls - these should NOT be called for failed jobs\n\tvar getAccountUsageCalled bool\n\tvar reportRFTBillingCalled bool\n\texpectedDeploymentName := \"accounts/test-account/deployments/rft-hotreload-fail-test\"\n\n\t// Now set up all mocks\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\t&DatasetValidationWorkflowOutput{JobName: \"validation-job\"}, nil,\n\t)\n\n\t// Make the epoch workflow fail\n\t"} -{"text": "We’ve reached that stage of the national campaign when smarty-pants columnists start asking trick questions-of potential voters.\nIn keeping with the genial spirit of things, here’s a test: What political figure do you suppose said the following:\n“Every gun that is fired, every warship launched, every rocket fired signifies … a theft from those who hunger and are not fed, those who are cold and not clothed.… This is not a way of life at all.… Under the cloud of threatening war, it is humanity hanging from a cross of iron.”\nThat’s too easy, you say (except that you know it’s a trick question, so you’re thinking- Pat Buchanan ?) If you didn’t know that you were the subject of some smarty-pants columnist’s trick, you’d be tempted to attribute such fuzzy-headed rhetoric to Ralph Nader, for who else would dare suggest that the Pentagon steals money from the naked and the hungry? Who else would even mention the naked and the hungry?\nWell, as you’ve no doubt gathered, those seditious words did not fall from the lips of Mr. Nader, though he no doubt would second them. In fact, the “cross of iron” speech was delivered in 1953 by that noted bleeding heart, Dwight Eisenhower, five-star General of the Army, commander of the greatest invasion fleet ever assembled, and therefore one of the most informed skeptics of military budgets that our political system has ever produced. (The quote is taken from Michael R. Beschloss’ book, The Crisis Years. )\nAl Gore, soldier-journalist in Vietnam, and George W. Bush, protector of the skies over Texas in the 1960s, both are incapable of uttering anything like what Ike said in the first year of his Presidency, a mere eight years after America’s triumph of arms in World War II. Neither man was a military hero or a battlefield officer; both missed the combat experience of their generation, although Mr. Gore got at least a glimpse of what Vietnam was like. Yet they are seeking an office whose duties include the supervision of the world’s greatest collection of soldiers and arms in a world where no nation-state is a threat to our security. Confronted with demands for bigger and better guns, warships and rockets, they do not raise the question of theft. Instead, they feel compelled to sign off on promises of more and still more, lest anybody accuse them of letting down our men and women in uniform.\nIn his last months as President, Dwight Eisenhower famously warned us about the power of the military-industrial complex. Just as his Vice President, and only his Vice President, could later travel to China, only the Supreme Commander of the Allied Expeditionary Force could talk in such dire terms of the alliance between the Pentagon and the armaments industry.\nWith Mr. Gore’s campaign propaganda crowing that Washington “is now able to invest in renewed growth in defense budgets,” with Mr. Bush vowing to increase funding for defense research and development by $20 billion by 2006, with voices on the right complaining of the lack of aircraft carriers (12 are listed as active, from the Kitty Hawk , launched in 1961, to the Harry S Truman , launched in 1998; another, the Ronald Reagan , is under construction), where is today’s Ike to warn us of theft posing as strength?\nThe two most famous soldiers of the post-Vietnam era, Colin Powell and Norman Schwarzkopf, have not aspired to Eisenhower-like credibility. During the Republican National Convention, both retired generals served as partisans in Bush warfare (with the requisite civilian clothes). They echoed Republican complaints that the military has drifted into that dangerous body of water known as Dire Straits. In a subtle gesture, Mr. Schwarzkopf delivered his alarums about combat readiness from the deck of the battleship U.S.S. New Jersey . The symbolism was supposed to be pretty damn obvious: War hero delivering plea for more defense spending from deck of battleship. Patriots would weep on command.\nGeneral Schwarzkopf didn’t dare point out that the city from which he was speaking-the terrible, defeated city of Camden, N.J., where the New Jersey is berthed-has more than its share of cold, ill-clothed and hungry citizens, the very people from which, Ike warned, resources are stolen so that guns and warships and missiles may be purchased in bulk. I don’t know the means by which the retired general was deployed to the deck of the New Jersey , but if he received even a short tour of Camden on his way to and from his performance, he surely would have seen humanity hanging from a cross of iron.\nQuestioning the demands of Pentagon bureaucrats and their friends in the private sector shouldn’t require a chest full of combat ribbons. Yet neither Mr. Gore nor Mr. Bush seems to believe he has the brass to make the Eisenhower argument, even though our Cold War enemies are vanquished. Instead, both will be silent while the great theft continues."} -{"text": "When Jane Moss, the Mostly Mozart Festival’s artistic director, throws her hands up and themes this year’s series as “Six Degrees of Separation,” you know this isn’t about Mozart anymore. Haydn, dead 200 years in 2009, and John Adams, whose opera A Flowering Tree is loosely inspired by The Magic Flute, are Mozart’s special friends this year, but so are Bach, Brahms, Mendelssohn, Ligeti and Stravinsky. Given the generally strong performances, and enthusiastic audiences, that I witnessed over two weeks of concert-going, who cares?\nThere may be no official piano festival contained in this year’s Mostly Mozart Festival, which runs through Aug. 22, but the first run of concerts almost seemed that way, hardly inappropriate since the Salzburg prodigy was not exactly a slouch at the instrument. I went to hear Piotr Anderszewski’s opening, all-Bach concert in the “Little Night Music” series at the Kaplan Penthouse on July 29 with considerable anticipation: His reputation is richly deserved, based upon his solid tone, flawless technique and grand, but not grandiloquent, style. The Partita No. 6 in E Minor was impressively, if somewhat stiffly, dispatched, reaching an unexpected climax in the melancholy Sarabande, which opened up with glorious sweep. The English Suite No. 6 in D Minor may be a more public, playful and somewhat artificial kind of piece, but Anderszewski gave it revelatory force. A cogent and lyrical account of its Sarabande was followed by a Double—a variation—so knowingly performed that it let us glimpse the secret inner life of the dance that had preceded it. The two Gavottes offered similar pleasures; No. 2 was an essay in sheer magic, its clanging rhythms delivered with radiant colors and a crystalline touch.\nTwo concerts with the Mostly Mozart Orchestra at Avery Fisher Hall featured fine performances (heard on Aug. 5 and 8) by the pianists Nicholas Angelich and Stefan Vladar, respectively, but their conductors interested me more. Yannick Nézet-Séguin’s debut at the festival, heralded by a Sunday Times preview, was a momentous occasion. English Canada seems devoid of conductorial talent, but what is it about Quebec? Some six years ago, the absurdly underrated Bernard Labadie was turning in splendid performances at Mostly Mozart and at Glimmerglass, and now his younger colleague has appeared to carry on what seems to be a vibrantly lyrical national style.\nTrained partially as a choral conductor, Nézet-Séguin is unashamed to express his elemental love of music. Having sat through Pierre Boulez’s catatonic rendition of Stravinsky’s Pulcinella last season at Carnegie Hall, I was not relishing a repeat of the score. But Nézet-Séguin’s rendition, with its pungent orchestral colors and crisply percussive rhythmic patterns, proved that this so-called neoclassical throwback came from the same pen that wrote The Rite of Spring. His interpretation of Mendelssohn’s Italian Symphony had a hard, driving swing at times, but none of the highlighted detail (a timpani whack, a thrust from the violas) disrupted the elegance of the total, silken texture.\nAnd while we’re celebrating things French, let’s not forget Louis Langrée, the festival’s music director, who turned in one of the most impressive performances of his tenure on Aug. 8. France is not known as Brahms country, and Langrée’s account of the Fourth Symphony, the highlight of the evening, did not try to bring that vertical brand of German “profundity” to the composer’s valedictory Fourth Symphony; in a fleet but not flighty interpretation, it wore its autumnal colors lightly.\nPhrases made soft landings, but sojourned to interesting places along the way, especially in the third and fourth movements, when something downright demonic began to bubble up to the surface—this was Brahms’ farewell to the liberal, German-Jewish musical culture that had nurtured him, and he knew that Vienna would soon see dark days. The wind section of this not-quite-perfect orchestra sometimes produced a slightly sour corporate sound, but Demarre McGill, the principal flutist, handled his mournful solo in the last movement with uncommon beauty and restraint."} -{"text": "env.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tnil, fmt.Errorf(\"epoch workflow failed\"),\n\t)\n\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\tenv.OnActivity(\"CreateOrGetDeployment\", mock.Anything, mock.Anything).Return(\n\t\t&activities.CreateOrGetDeploymentOutput{\n\t\t\tDeploymentName: expectedDeploymentName,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t}, nil,\n\t)\n\n\tenv.OnActivity(\"GetAccountUsage\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.GetAccountUsageInput) (*activities.GetAccountUsageOutput, error) {\n\t\t\tgetAccountUsageCalled = true\n\t\t\treturn &activities.GetAccountUsageOutput{\n\t\t\t\tUsage: &gpb.AccountUsage{\n\t\t\t\t\tDedicatedCosts: []*gpb.AccountUsage_DedicatedDeploymentUsage{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tDeploymentId: expectedDeploymentName,\n\t\t\t\t\t\t\tAcceleratorType: \"NVIDIA_H100_80GB\",\n\t\t\t\t\t\t\tAcceleratorSeconds: 1800,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}, nil\n\t\t},\n\t)\n\n\tenv.OnActivity(\"ReportRFTBilling\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ReportRFTBillingInput) error {\n\t\t\treportRFTBillingCalled = true\n\t\t\treturn nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"fail-test\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tDeploymentShape: \"accounts/fireworks/deploymentShapes/rft-base-model/versions/v1\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{Enabled: false},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: false,\n\t\tCreateTime: time.Now().Add(-1 * time.Hour),\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.Error(t, env.GetWorkflowError(), \"Workflow should fail\")\n\n\t// Verify billing was NOT reported for failed jobs\n\tassert.False(t, getAccountUsageCalled, \"GetAccountUsage should NOT be called on failure\")\n\tassert.False(t, reportRFTBillingCalled, \"ReportRFTBilling should NOT be called on failure\")\n}\n\n// TestRFTJobWorkflow_InsufficientCapacity tests that the workflow enters a queue loop\n// when encountering insufficient capacity or config errors during deployment creation.\nfunc TestRFTJobWorkflow_InsufficientCapacity(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-queue-test\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register activities\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"CreateOrGetDeployment\"})\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ExecuteComprehensiveCleanupInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"ExecuteComprehensiveCleanup\"})\n\n\t// Mock successful deployment creation\n\t// In production, capacity errors are automatically retried by Temporal's activity retry policy\n\texpectedDeploymentName := \"accounts/test-account/deployments/rft-hotreload-queue-test\"\n\tenv.OnActivity(\"CreateOrGetDeployment\", mock.Anything, mock.Anything).Return(\n\t\t&activities.CreateOrGetDeploymentOutput{\n\t\t\tDeploymentName: expectedDeploymentName,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t}, nil,\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutp"} -{"text": "When I visit my Aunt Hannah, it’s easy to choose a wine to bring. She loves Ivanović Prokupac from Serbia, and — a little easier to find — Juan Gil’s Silver Label Monastrell from Jumilla. The latter, a Spanish red, remains relatively unknown in the United States, a fact which baffles me. Well-made Monastrell has such rich fruit and hearty character, it should be a perfect fit for the stereotypical American palate. And just as important, it usually offers a fantastic flavor-to-price ratio. Binny’s, for example, sells the Juan Gil Silver Label for $14.\nI suspect the obscurity of Monastrell (known as Mourvèdre in France) has something to do with the fact that it’s home base in southeastern Spain produced “lackluster” wines until only recently, according to The Sotheby’s Wine Encyclopedia. The World Atlas of Wine agrees, noting that “Wine is still made that is deliberately strong and sweet, but the best can compete with ‘premium’ super-ripe reds from California and Australia.” Fans of Zinfandel and Shiraz, if you’re looking for something new, Monastrell from Jumilla may be just the thing.\nLike Salta in Argentina, Jumilla has an arid climate, a large day/night temperature differential and a relatively high altitude (Juan Gil’s vines grow between 2,300 and 2,800 feet). As a result, the vineyards tend to have low yields and the grapes tend to be thick-skinned, producing concentrated, aromatic and rather tannic reds, often with high alcohol levels. In other words, these wines are big.\nAnd, as The Oxford Companion to Wine explains, Monastrell has “…a somewhat gamey, almost animal flavour when young.” That sounds problematic, but in the right hands, that “animal” quality turns into an appealing savory undertone akin to grilled meat, smoke or even bacon, adding complexity to the wine.\nI had an opportunity to experience the full potential of Monastrell at a recent tasting hosted by Juan Gil in Chicago. The wines ranged in price from $8 a bottle into the triple digits, and there wasn’t a stinker in the bunch. That said, exercise caution with bargain-priced Monastrell. I once had a harrowing experience with $9 Bodegas Volver “Wrongo Dongo” Monastrell, for example, though the resulting puns that flew around the table were some consolation. When in doubt, stick to Monastrell that costs $12 and up.\n2014 Honoro Vera Monastrell: This entry-level Monastrell typically sells for less than $10 a bottle, but it tastes more expensive. It has taut and ripe red fruit, a savory undertone, some forceful white-pepper spice and a tannic finish. It all seemed in balance, and my goodness, what a value for the money.\n2014 Honoro Vera Organic Monastrell: Surprisingly, the organic version of this wine sells for the same price (Binny’s sells both for $8 a bottle). It tastes different from the other Honoro Vera — it smells heartier, with more of a hint of meat and funk. Full of raspberry jam, it starts with a refined mouthfeel and builds to a big, rather rustic finish. Again, it’s a superlative value.\n2014 Orowines “Comoloco” Monastrell: Juan Gil also owns Orowines, which produces another remarkably inexpensive Monastrell (Binny’s sells it for $8 a bottle). This example sees no wood, and though stainless steel highlights pure Monastrell fruit, I prefer a touch of oak. The wine smelled of dark red fruit and black pepper, and its fruit felt pleasingly fresh. The savory note and spice were both there, but I missed something in the midsection. Even so, considering the price, you’re still getting a lot of flavor for the money.\n2013 Juan Gil Silver Label Monastrell: Aged 12 months in French oak, this wine costs more (about $14), but for that money, you’re getting a richer, darker wine, with no absence in the midsection. For years, the Silver Label has been one of my go-to reds.\n2013 Juan Gil 18: If you have between $25 and $30 to spend, spend it on this. The 18 is a blend of 60% old-vine Monastrell, 30% Cabernet Sauvignon and 10% Syrah, all aged 18 months in French and American oak. The dark, rich aroma seduces immediately, and any Parkerized American will love the big, jammy fruit. A shaft of spice shoots right through it, keeping the wine balanced, and I loved the green tobacco note on the finish. This is a gorgeous wine, and a great value even at $30.\n2013 Juan Gil “Aniversario” 100: Created for Juan Gil’s centennial, the “Aniversario” blends 50% Monastrell, 25% Cabernet and 25% Syrah, and it sells for just a bit more than the 18 (if you can find it). It sees 23 months in French and American oak, and it’s big, dark and rich. The fruit feels opulent but tightly controlled, and the focused spice keeps going and going. The wine slowly unfolds, growing and developing to a big finish of spice and fine-grained tannins. This is a delicious, elegant and powerful wine, but if I had the choice between the 100 and the 18, I would pick the 18.\n2013 Bodegas El Nido “Clio”: Juan Gil also owns El Nido winery, a “…partnership between the Gil family and Chris Ringland, one of Australia’s best winemakers,” according to El Nido’s website. The Monastrell vines are “very old… almost centenarians,” and they produce some incredible fruit. This blend of 70% Monastrell and 30% Cabernet Sauvignon sees between 22 and 26 months in oak, and it was my favorite wine of the entire tasting. It had an aroma of rich, dark, almost jammy fruit, in the range of black cherries and plums. On the palate, the fruit felt sumptuously lush and clear, with a laser beam of white pepper spice streaming through it. The tannins on the finish were big but very refined. Binny’s sells the “Clio” for $40, and it’s worth every penny. A wine like this from Napa would easily be twice the price."} -{"text": "Sep 14, 2012\nI have been working on a new book project for several months now. I have always had a strong interest in classical architecture. I especially like the challenge of modeling such traditional forms with today’s modern software. I am also particularly struck by the irony of how such forms actually prove quite challenging to model using computer software.\nI actually began my first explorations of this kind of thing back several years ago using AutoCAD Architecture. I have a very detailed Ionic column capital that built using ACA objects. I was able to get a pretty decent results but it suffered from being a very “heavy” model with lots of tessellation. But it was not just an AutoCAD block. I built it as an ACA Style and it had some parametric qualities. I was even able to get a 3D print of it (thanks to Zach Kron of Buildz fame).\nI left the project on the back burner for a while and picked up again about a year or two ago only this time in Revit. My goal was to create not just one column, but all of the major orders and make them fully parametric Families. Since everything in classical architecture relies heavily on proportion, it seemed like a really nice challenge for the Family Editor.\nOne limitation that I ran into early on is Revit’s inability to scale native geometry. It is rather ironic actually, because if import AutoCAD geometry into Revit, there is a scale property in the Type Properties dialog. But no such think for native solids. Therefore, I was forced to instead scale each piece of the sketches individually. This means that scale a simple box, you need three parameters: length width and height. To scale them proportionally, you need to apply formulas to at least two of those dimensions. This is not too big of a deal unless you are dealing with very complex and curvaceous forms. Like say the volutes on an ionic column, the flutes on a column shaft or the acanthus leaves on a Corinthian capital.\nI tried to stick with the traditional Family Editor because even though you can change the category of an Adaptive Component, I still don’t like that you cannot copy and paste between them and traditional families and that you cannot nest an adaptive into a traditional family. But despite this, I found that an adaptive was really the best choice for the Corinthian. With access to splines and points, you gain more modeling freedom and things like the leaves were MUCH easier to build this way. Zach Kron was also a big help here in giving me a very useful tip to scale my leaves proportionally without having to create a million parameters. So thanks a bunch for that tip Zach! Basically all you have to do is host your points on your Reference Lines and then scale the Reference Lines with a simple Length, Width and height parameter. Works really well. Couple that with 2013’s new Divide and Repeat feature and we can avoid lots of cumbersome arrays. I like that a lot too.\nThe project has indeed grown beyond my original scope and become significantly more involved. As a consequence, as I work through building fully parametric models of Tuscan, Doric, Ionic and Corinthian columns and colonnades, I decided that I would like to share a little bit of work in progress to gauge the general interest in this project. My aim is to see what sort of general interest there is in a book and/or videos on the subject. While the focus is certainly on modeling at this stage, I would like to see it expand to encompass more aspects of advanced Family Editor techniques.\nThroughout this post have been some images of what I have so far. Everything flexes and can scale to different sizes. Naturally none of it is complete yet, but I am making progress.\nNow I should also mention that most of the work so far has been on the high (Fine) detail versions. I fully intend to create a course and probably a medium detail version of each family as well. Here is a simple version for the Corinthian.\nIf you have any comments at all on the project, I am most interested to hear them. I am curious in the level of interest in an eventual book, but also interested in any other comments or suggestions that folks might have. So please feel free to share your thoughts. Thanks!\nSwept blend approach. Form is OK, but not very smooth."} -{"text": "ut, error) {\n\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Mock cleanup activity\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Setup input\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"queue-test\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tDeploymentShape: \"accounts/fireworks/deploymentShapes/rft-base-model/versions/v1\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{Enabled: false},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: false, // Enable hot reload to trigger deployment creation\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\t// Register a query handler check\n\tenv.RegisterDelayedCallback(func() {\n\t\tval, err := env.QueryWorkflow(\"GetCurrentEpochMetadata\")\n\t\trequire.NoError(t, err)\n\t\tvar meta EpochMetadata\n\t\terr = val.Get(&meta)\n\t\trequire.NoError(t, err)\n\t}, 100*time.Millisecond)\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n}\n\n// TestRFTJobWorkflow_K8sJobQueueing tests that the workflow enters a queue loop\n// when encountering insufficient capacity during K8s job creation.\nfunc TestRFTJobWorkflow_K8sJobQueueing(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\t&DatasetValidationWorkflowOutput{JobName: \"validation-job\"}, nil,\n\t)\n\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.ExecuteComprehensiveCleanupInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"ExecuteComprehensiveCleanup\"})\n\n\t// Mock successful RLOR job creation\n\t// In production, capacity errors are automatically retried by Temporal's activity retry policy\n\tenv.OnActivity(\"RunCreateRlorK8s\", mock.Anything, mock.Anything).Return(\n\t\t&activities.RunCreateRlorK8sOutput{\n\t\t\tK8sJobName: \"k8s-job-123\",\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t\tJobStatusFile: \"gs://bucket/status\",\n\t\t}, nil,\n\t)\n\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\t&RFTEpochWorkflowOutput{Status: \"COMPLETED\"}, nil,\n\t)\n\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"k8s-queue-test\",\n\t\tDatasetName: \"dataset\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"eval\")},\n\t\tBaseModel: \"base\",\n\t\tOutputModel: \"output\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{Epochs: 1},\n\t\tWandbConfig: &gpb.WandbConfig{},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tDisableHotReload: true, // Skip deployment creation\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, WorkflowMetaData{})\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n}\n\nfunc TestRFTJobWorkflow_LastIterationSkipped_UsesActualOutputModel(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\t// Register mock activities\n\tregisterMockRFTJobActivities(env)\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.UpdateRFTJobStatsInput) error {\n\t\treturn nil\n\t}, activity.RegisterOptions{Name: \"UpdateRFTJobStats\"})\n\n\tenv.OnActivity(\"UpdateRFTJobMetaInfo\", mock.Anything, mock.Anything).Return(nil)\n\tenv.OnActivity(\"UpdateRFTJobStats\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Register the dataset validation workflow\n\tenv.RegisterWorkflow(DatasetValidationWork"} -{"text": "Meet Nautilus, a new science and culture magazine with gorgeous design and a team of talented writers like Rose Eveleth, Lee Billings, Jennifer Ouellette, Veronique Greenwood and more. The first issue is on human uniqueness. And here’s Amos Zeeberg talking about what Nautilus is about\nWorried about H7N9? Don’t forget H5N1. It can go airborne after swapping genes with the 2009 pandemic H1N1 strain. My story for Nature.\nThe inimitable Maryn McKenna on the new coronavirus & international opacity about outbreaks\nPsychology bonanza! Nature published a story about a new dust-up on social priming following a failed replication, drawing criticism from several psychologists including Daniel Simons and Pete Etchells. Ase Helene and Rolf Zwaan consider the current state of priming research. The NYT had a long profile of psychologist fraudster Diederik Stapel that is good in places, but also arguably allows him to seek fame through infamy. Dave Nussbaum responds that the Stapel Continuum is a myth. And fraudbuster Uri Simonsohn has a new paper on how to evaluate replication attempts. NB: needs 2.5x the n of original\nAn incredible elaborate prank on people who pirate games. Sheer genius.\n10 Reasons Why Bone Eating Worms Are F’n Awesome, by Craig McClain.\nTone-deaf birds disrupt society, are easier to get into bed\nWho needs the DSM? Not the National Institute of Mental Health. By Vaughan Bell\nFlying Bee-Sized Robots\nThis is how you do an infographic. On sharks. And what we’re doing to them.\nNature has an excellent special on GM crops\nGreat Maria Konnikova piece on the science of grasping for answers after tragedies, and the value of keeping cool\nFrequently beautiful: Matthew Battles on the curious way museum objects transpire into metadata\nSPOOOOOONNNNN! Carl Zimmer on ticks.\nWhat? Oh, nothing, just a 2000km-wide hurricane on Saturn. Carry on.\nWhat Erika Check Hayden did here is not underhyping. It was journalism. If only more would do the same.\nWorld’s oldest and stickiest lab study ready for drop of excitement\nWales measles epidemic tops 1000 cases, driven by failure to vaccinate.\nReporting Fail: Reidentification of Personal Genome Project Participants\nEver wanted to see a rattlesnake head try to bite someone? That’s right–JUST THE HEAD.\nA gorgeous free ebook about ants & citizen science.\nA right Royal cock-up: Prince Andrew elected to the Royal Society.\n“The role involves standing guard and warning research teams… about approaching polar bears.”\nThe Coolest and Most Terrifying Biomimetic Robots:\nGovt’s ‘Nudge Unit’ to become a business.\nFlorida teen charged with felony for trying science\nCool new fossil, sort of halfway between a hummingbird and a swift\nSmall but positive victory – Boots stops labelling science toys as “for boys” after backlash\nLots of hope + praise around appointment of Jeremy Farrar as new big cheese of Wellcome Trust\n2.5 yr old baby who was born without a windpipe gets a lab-grown one. (More on this from me.)\nOver 20,000 people apply for one-way ticket to Mars. TAKE THEM ALL. It’s the B-Ark!\nHow to read an elephant: researchers decipher elephant body language\nLizards have 2 penises; we know next to nothing about ’em. Maybe this crowdfunded project will help?\nOn engaging the public without disengaging from science.\n7 vulture species endangered because people are smoking their brains in the belief it will make them clairvoyant\nA festival of scientists chatting about science in pubs. Sounds good. Coming soon to London, Oxford and Cambridge.\nCongrats to the inimitable Liz Neeley & her COMPASS chums for their new paper on connecting science, policy & engagement\nAdam Rutherford gets his knickers in a right-handed twist over left-handed DNA. And, sorry, WHAT about Cookie Monster??!?\nChina is plundering the planet’s seas—and it’s doing it 12.5 times more than it’s telling anybody\nCoralbots – a project to save coral reefs with robots, on Kickstarter.\n“My activism, which I wrongly thought of as being ‘environmental’, has done real damage in the world.” – Mark Lynas.\nThe Evolution of the Country Mouse and the City Mouse\nEurope to ban pesticides in effort to protect bees\nCan these folks work out the actual colour of a dinosaur’s skin?\nAmazing photos of the world’s largest falcon hospital\nTinkerbella – a tiny fairy fly. Also a fly with terrifying genital pincers\nBoa attacks and eats iguana\nNew Study Finds Nothing That Will Actually Convince You To Change Your Lifestyle So Just Forget It\nNew Pacific Rim trailer is the alternative ending to Titanic.\nThe Mormon bishop “was one of several ppl who came to the aid of the woman…but no one else was wielding a sword”.\nWords with Friends: the story behind the 31-author Science Writer Handbook\nThe “special” Chinese version of Iron Man 3 is just bizarre\nTwitter is looking for a “Head of News and Journalism“. Good job title!\nThe British public has completely ignored newspaper & Tory attacks on wind farms\nTwitter’s advice to journalists: for security, keep one computer for Twitter, don’t use it to surf web. Er…\nThe company that’s buying up all the key pieces of the online news ecosystem\nIs It Journalism, or Just a Repackaged Press Release? Here’s a Tool to Help You Find Out\nMaker of magic bomb-detecting dowsing rods convicted for fraud. Meanwhile, people are still dying.\nA sad day – John Hopkins is shuttering its science writing program"} -{"text": "Post No. 800: Phils lose close one thanks in part to a bad call by the first base ump, as they drop one to the Astros, 3-2.\nThanks in part to a bad call by the first base umpire, the Phils drop a close one to the Astros as former Phil Brett Myers come back to stifle his ex-teammates, 3-2.\nThe Astros took the lead in the first as, with runners on the corners, and with nobody out, Hunter Pence hits a sacrifice fly, scoring Michael Bourn, who had earlier singled, stole second base and then moved up to third on Angel Sanchez’s single, giving the Astros a 1-0 lead, while sending Sanchez, who had just singled, on to second base. The Astros then tried to increase their lead as Sanchez tried to score on Carlos Lee’s double, but was instead gun down at home plate, 8-4-2, for the inning’s second out. The Phils tied it up at one-all in the third as Carlos Ruiz hits a lead-off home run, his sixth home run of the year. The Phils then took the lead later in the inning as, with two men on, and with one man out, Chase Utley hits an RBI single, knocking in Jimmy Rollins, who had earlier singled, before moving up to second on Lee’s fielding error, moved up to third on a fielder’s choice grounder hit by Shane Victorino, as Joe Blanton, who had earlier singled, and had gone to third on Rollins’ single, is thrown out at home, 3-2, giving the Phils’ a 2-1 lead, while Victorino, who was safe at first on the fielder’s choice, moved up to second base. The Phils tried to add to their lead in the sixth as, with a runner on second, Jayson Werth, via a double, and with two men out, after Raul Ibanez had just struck out, swinging, the Astros proceeded to intentionally walk Ruiz, to get to Wilson Valdez, but, after ball four is thrown, Astros catcher Humberto Quintero threw a strike to second base, picking off Werth, 2-6, who’s mind appeared to have been somewhere else, to end the inning. This base running blunder might have come back to haunt the Phils, as, in the eighth, with two men on, and with two men out, the Astros took the lead as Lee hits a two-run single, scoring pinch hitter Jason Michaels, who had earlier singled, had moved up to second on Bourn’s bunt single, and moved to third on Sanchez’s sacrifice bunt, 5-4, and Bourn, who had gotten on base with a bunt single, when he had in fact went out of the base line to avoid being tagged by Ryan Howard, but was called safe by the first base umpire, which lead to a long argument by Charlie Manuel before he was ejected from the game for arguing the call, and then went to second on Sanchez’s bunt, giving the Astros a 3-2 lead. That would end up being the final score as Brandon Lyon put down the Phils in the ninth for his seventh save of the season.\nJoe Blanton receives a no-decision as he pitches seven strong innings, giving up just one run on six hits, while striking out nine. Ryan Madson records his fourth blown save of the year before taking the lost as he pitches an inning, giving up two runs on three hits, while striking out a batter. His record is now 4-2 with a 3.58 ERA. Brad Lidge pitches a scoreless inning, giving up a hit, while he strikes out one. Brett Myers gets the win as he pitches seven inning, giving up two runs on nine hits and a walk, while striking out nine. His record is now 9-7 with a 3.08 ERA. Tim Byrdak collects his sixth hold of the year as he pitches a scoreless inning, giving up a hit. Brandon Lyon receives his seventh save of the year as he pitches a scoreless inning, giving up a walk.\nThe Phils had ten hits in the game, with Jimmy Rollins and Jayson Werth both leading the team with two hits each, with Rollins’ two hits being singles, while Werth’s hits were a single and a double. Chase Utley, Raul Ibanez, Carlos Ruis, Wilson Valdez, Joe Blanton and pinch hitter Dom Brown had the other six Phils’ hits, all singles, except for Ruiz’s solo home run, with Utley knocking in the other Phil’s run. The offense did not get the much needed key hit last night.\nThe Phils (70-54, 2nd East) will continue their series with the Astros (55-69, 4th Central) with a night game tonight. The game will be played at Citizens Bank Park and will start at 7:05 pm Eastern. The Phils will send to the mound Cole Hamels (7-10, 3.51), who is coming off a lost to the Giants on August 19, as he went only five innings, giving up five runs on seven hits and a walk, while striking out only five, in the Phils’ 5-2 lost. In his last three starts, his record is 0-3, as he pitched twenty innings, giving up seven runs on eighteen hits and three walks, while striking out twenty-four. He will be hoping that the bats will finally give him some runs so that he can finally end his win-less streak. The Astros will counter with Bud Norris (6-7, 5.23), who is coming off a win over the Mets on August 19, as he pitched seven innings, giving up two runs on two hits and two walks, while striking out four, in the Astros’ 3-2 win. In his last three starts, his record is 2-0 with a no-decision, as he pitched twenty and two-thirds innings, giving up eight runs on fourteen hits and five walks, while striking out twenty-one. He will be going for his third win in a row. The Phils’ offense will be out to score runs for Hamels tonight."} -{"text": "flow)\n\n\t// Mock dataset validation workflow\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input DatasetValidationWorkflowInput) (*DatasetValidationWorkflowOutput, error) {\n\t\t\treturn &DatasetValidationWorkflowOutput{\n\t\t\t\tJobName: \"validation-job-123\",\n\t\t\t}, nil\n\t\t},\n\t)\n\n\t// Register child workflows\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register cleanup activity\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(nil)\n\n\t// Track the epoch index to determine behavior\n\tepochCounter := 0\n\n\t// Mock child workflow execution\n\t// Epoch 0: Successful training, produces model\n\t// Epoch 1: Successful training, produces model\n\t// Epoch 2 (last): Empty dataset, skips training, returns input model\n\tenv.OnWorkflow(RFTEpochWorkflow, mock.Anything, mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx workflow.Context, input RFTEpochWorkflowInput, workflowMetaData WorkflowMetaData) (*RFTEpochWorkflowOutput, error) {\n\t\t\tcurrentEpoch := epochCounter\n\t\t\tepochCounter++\n\n\t\t\tif currentEpoch < 2 {\n\t\t\t\t// First two epochs: successful training\n\t\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\t\tRolloutJobName: fmt.Sprintf(\"rollout-job-%d\", currentEpoch),\n\t\t\t\t\tEvaluationJobName: fmt.Sprintf(\"eval-job-%d\", currentEpoch),\n\t\t\t\t\tRLORJobName: fmt.Sprintf(\"rlor-job-%d\", currentEpoch),\n\t\t\t\t\tOutputModel: input.TrainingConfig.OutputModel, // Use the expected output model\n\t\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t\t\tEvaluationOutputDataset: fmt.Sprintf(\"eval-dataset-%d\", currentEpoch),\n\t\t\t\t\tEvaluationStats: `{\"total_count\": 100}`,\n\t\t\t\t}, nil\n\t\t\t} else {\n\t\t\t\t// Last epoch: training skipped due to empty dataset\n\t\t\t\t// Returns the input model instead of the expected output model\n\t\t\t\treturn &RFTEpochWorkflowOutput{\n\t\t\t\t\tRolloutJobName: fmt.Sprintf(\"rollout-job-%d\", currentEpoch),\n\t\t\t\t\tEvaluationJobName: fmt.Sprintf(\"eval-job-%d\", currentEpoch),\n\t\t\t\t\tRLORJobName: \"skipped\", // RLOR training was skipped\n\t\t\t\t\tOutputModel: input.Model, // Returns input model (from previous successful training)\n\t\t\t\t\tStatus: \"COMPLETED\",\n\t\t\t\t\tEvaluationOutputDataset: fmt.Sprintf(\"eval-dataset-%d\", currentEpoch),\n\t\t\t\t\tEvaluationStats: `{\"total_count\": 100}`,\n\t\t\t\t}, nil\n\t\t\t}\n\t\t},\n\t)\n\n\t// The expected final output model that user specified\n\texpectedFinalModel := \"accounts/test-account/models/final-output-model\"\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"test-job-123\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tDatasetGcsUri: \"gs://bucket/training-data\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: expectedFinalModel, // User expects this as final model\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tMetadataPath: \"\", // No metadata path for this test (activity will handle nil)\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 3, // 3 epochs to test multiple iterations\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0, // No chunking, use multiple epochs instead\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: true,\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\trequire.NoError(t, env.GetWorkflowError())\n\n\tvar result RFTJobWorkflowOutput\n\trequire.NoError(t, env.GetWorkflowResult(&result))\n\n\t// Verify workflow completed successfully\n\tassert.Equal(t, \"COMPLETED\", result.Status)\n\tassert.Equal(t, int32(3), result.TotalEpochs)\n\tassert.Equal(t, int32(0), result.TotalChunks)\n\n\t// Verify we have all 3 epoch outputs\n\tassert.Len(t, result.EpochOutputs, 3)\n\n\t// Verify first two epochs completed with training\n\tassert.NotEqual(t, \"skipped\", result.EpochOutputs[0].RLORJobName,\n\t\t\"First epoch should have completed training\")\n\tassert.NotEqual(t, \"skipped\", result.EpochOutputs[1].RLORJobName,\n\t\t\"Second epoch should have completed training\")\n\n\t// Verify last epoch was skipped (empty dataset after transformation)\n\tassert.Equal(t, \"skipped\", result.EpochOutputs[2].RLORJobName,\n\t\t\"Last epoch should have skipped training due to e"} -{"text": "Particularly for those of us who enjoy street photography or simply always want to have a camera at hand, one of the more frustrating versions of “the quest for the perfect bag” is to find an everyday bag. I’m talking about the kind of bag that can carry a small camera kit along with a laptop, cellphone, and whatever other widgets you need with you. Something that isn’t overly showy or bulky, but isn’t completely unprotected either. The Messenger Mini Photo-Laptop Bag is one of Tenba’s solutions to this oh-so-common problem.\nHere’s what Tenba has to say about the Mini Photo-Laptop Bag:\n“The Tenba Messenger is an urban-inspired laptop bag that’s designed to hold everything you need for a day; on vacation or at work; at school or at the gym. Adjustable dividers let you configure the interiorfor a wide variety of photographic or video equipment, and removing the dividers converts the Messenger Mini into a perfect, general-purpose carrying bag.”\nThe Messenger Mini is more or less shaped like a small to medium sized messenger bag. However, unlike most messenger bags, it is padded all the way around and doesn’t form to your body. The bag is divided into two internal spaces, a laptop slot and the main camera section. The camera area is further divided in thirds. The center space is intended to be used as the place where your camera would sit facing down with lens attached. The remain spaces are sized to easily fit f/2.8 pro size lenses as is, or they can be further split with padded dividers. The shoulder pad is more padded than you would typically see on a messenger bag. But other than that, the Messenger Mini has the usual assortment of pen/phone/gum pockets that any good bag of this style has these days. It comes it a rather large assortment of colors for a camera bag. You’ve got seven choices, from the basic black or gray to brighter choices such as burnt orange and plum.\nHands on test:\nThe Tenba Messenger Mini is is bigger and somewhat bulkier than what I had been using most often as my “everyday” bag, a Domke 803. So my first impression was “This sure seems big for an everyday bag. Look how fat it is!” To be fair, the Domke is a quite small, and perhaps more importantly, quite narrow bag and there are few that match it in that regard. But that having been said, the size of the Messenger Mini quickly ceased to be an issue for me. For one thing, the space available in the Tenba is a much useful the DSLR photographer than the space in something like a the 803. The fact that you have the space for f/2.8 zooms or fast primes opens up the “useful!” door for many photographers. I’m sure there are people for whom no bag can hold everything they might want to leave the house with, even for a trip to the coffee shop down the street. But for the rest of us, this bag carries just about the perfect amount of gear for a day out shooting. The possibility of filling the bag with all that weight is probably the reason that the Tenba got such a bulky shoulder pad. While slightly too “grippy” for my taste, the pad is really quite comfortable, even fully loaded.\nThe laptop slot functions just as a laptop slot should. It is designed for tablet devices or small laptops, a 13\" macbook is the size I’m talking about here. Large or even medium sized laptops are simply not going to fit. Tablets fit well, though as they aren’t as thick as even a small laptop, they can bounce around a little. There are plenty of the standard small pockets and slots for pens, notepads, batteries and the like. Without wasting time describing them all, I will say that there hasn’t been any time where I thought “I wish there was a place for my _______”.\nOne really outstanding feature is the fact that you don’t have to open up the main flap to access your camera. There is a zipper on the top of the bag that allows you plenty of room to reach in without looking and grab your camera. It’s not the same as having the full flap off, but it’s a lot quicker and more discreet than undoing the buckles and riiiiipppppping the big velcro patches. That zipper is a small thing, but it is a feature that I have long wished was on many of my bags.\nI can’t lie, the Tenba Messenger Mini photo/laptop bag has rather swiftly earned a place as one of my most frequently used bags. I take it to the bar, family dinners, trips to the zoo, and so on. Yes, it’s not exactly the most svelte bag I have ever used. But it also holds the gear I want it to hold and makes it far easier to access that gear than the smaller bags I used in the past. Finally, let me say again that the zipper access on the top of the bag is a stroke of brilliance as far as I am concerned. I use this bag all of the time and I wouldn’t hesitate to recommend it to others.\nHolds a nice amount of gear, room for pro lenses, clever access zipper, comfortable strap pad."} -{"text": "On Wednesday, he appointed Richard Cordray director of the Consumer Financial Protection Bureau, and named three more people to posts on the National Labor Relations Board. Obama gave these jobs out as \"recess appointments\", which is a provision in the Constitution that allows a President to name new heads of agencies without seeking Congressional approval when the Congress is in recess.\nHere's the problem: Congress is not in recess. He's flat-out violating the Constitution. Legal scholars and major news outlets have already criticized Obama for this brazen disregard for our country's foundational law.\nPresident Obama knew the Senate was in pro-forma session. He supported such an exercise when he was in the Senate himself and wanted to block President George W. Bush's agenda. That was then and this is now. Running for re-election, Obama has elevated himself into King Obama. The Congress be damned.\nThe 60-vote threshold may not seem fair. But in his 2006 book, \"The Audacity of Hope,\" Obama wrote, \"To me, the threat to eliminate the filibuster on judicial nominations was just one more example of the Republicans changing the rules in the middle of the game.\" He was angry with Republicans for thinking about flouting precedent.\nObama, however, didn't seem to mind when Democrats changed the rules during George W. Bush's presidency. On Nov. 16, 2007, Senate Majority Leader Harry Reid announced that the Senate would hold pro forma sessions -- that could involve little more than gavel rattling -- during the Thanksgiving holiday \"to prevent recess appointments.\"\nAccording to the Congressional Research Service, \"the Senate pro forma session practice appears to have achieved its stated intent: President Bush made no recess appointments between the initial pro forma sessions in November 2007 and the end of his presidency.\" Upon Obama's election, recesses resumed, but in 2010, the Senate resurrected pro forma sessions.\nAnd now Reid agrees with Obama aides who say that his pro forma sessions are a gimmick. He's supporting the president's attempt to undermine Senate power.\nDuring the Bush administration a favorite criticism was that Bush used his powers in the executive branch too much. That he was zealous in his actions. Now, however, there seems to be little notice of Barack Obama asserting himself and whining that he can't get anything done because those mean Republicans are blocking his agenda.\nNews flash to Barack Obama: blocking his agenda is the job of the Republican party. Just like Newt Gingrich worked to block the agenda of Bill Clinton and Nancy Pelosi worked to block the agenda of George W. Bush, Speaker Boehner and Minority Leader McConnell are working to stop the agenda of Barack Obama.\nSenator Cornyn weighed in on the power grab by President Obama:\nSenator John Cornyn is unhappy that President Obama has appointed Richard Cordray to lead the Consumer Financial Protection Bureau. It’s a recess appointment, done without senate approval.\nHe also pointed out that when Obama was a senator, Obama called a similar recess appointee “damaged goods.”\nIn addition, Cornyn said Obama is unwilling to work with Congress to adopt common-sense improvements in accountability and transparency that would protect small businesses from regulations and red tape.\nAnd from the Wall Street Journal:\nEager to pick a fight with Congress as part of his re-election campaign, Mr. Obama did the Constitutional equivalent of sticking a thumb in its eye and hitting below the belt. He installed Richard Cordray as the first chief of the Consumer Financial Protection Bureau and named three new members to the National Labor Relations Board. He did so even though the Senate was in pro forma session after the new Congress convened this week.\nBarack Obama knows he cannot run on his own record in office. He has no real bragging rights to much success of any issue. The only path to re-election he finds workable now is to fight Congress as the man who is looking out for the middle class, for the little guy in America. It's ridiculous, sure, but Congress traditionally has low approval ratings from voters and this year is no exception to that. Compared to Congressional approval polling, President Obama is higher rated and he has gone that route.\nThis is pure politics and makes for an even more cynical eye on the Obama administration."} -{"text": "mpty dataset\")\n\n\t// CRITICAL: Verify that FinalOutputModel is the actual last trained model,\n\t// NOT the user-specified model name, because the last iteration was skipped\n\tassert.NotEqual(t, expectedFinalModel, result.FinalOutputModel,\n\t\t\"FinalOutputModel should NOT be the user-specified model when last iteration is skipped\")\n\tassert.Equal(t, result.EpochOutputs[2].OutputModel, result.FinalOutputModel,\n\t\t\"FinalOutputModel should match the last epoch's actual output model (from previous successful training)\")\n}\n\n// TestRFTJobWorkflow_HotReloadDeploymentTrackedBeforeActivity verifies that the hot-reload\n// deployment is tracked for cleanup BEFORE CreateOrGetDeployment activity is called.\n// This prevents resource leaks when the workflow is cancelled during deployment creation.\nfunc TestRFTJobWorkflow_HotReloadDeploymentTrackedBeforeActivity(t *testing.T) {\n\ttestSuite := &testsuite.WorkflowTestSuite{}\n\tenv := testSuite.NewTestWorkflowEnvironment()\n\n\tregisterMockRFTJobActivities(env)\n\n\tenv.RegisterWorkflow(DatasetValidationWorkflow)\n\tenv.RegisterWorkflow(RFTEpochWorkflow)\n\n\t// Register activities\n\tenv.RegisterActivity(&activities.CleanupActivity{})\n\tenv.RegisterActivityWithOptions(func(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\treturn nil, nil\n\t}, activity.RegisterOptions{Name: \"CreateOrGetDeployment\"})\n\n\tenv.OnWorkflow(DatasetValidationWorkflow, mock.Anything, mock.Anything).Return(\n\t\t&DatasetValidationWorkflowOutput{JobName: \"validation-job\"}, nil,\n\t)\n\n\t// Track whether deployment was in cleanup resources\n\tvar cleanupCalledWithDeployment bool\n\texpectedDeploymentName := \"accounts/test-account/deployments/rft-hotreload-deploy-tracking-test\"\n\n\t// Mock CreateOrGetDeployment to block and allow cancellation\n\tenv.OnActivity(\"CreateOrGetDeployment\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.CreateOrGetDeploymentInput) (*activities.CreateOrGetDeploymentOutput, error) {\n\t\t\t// Verify deployment name matches expected pattern\n\t\t\tassert.Equal(t, expectedDeploymentName, input.DeploymentName)\n\t\t\t// Block until context is cancelled - simulating long-running deployment creation\n\t\t\t<-ctx.Done()\n\t\t\treturn nil, ctx.Err()\n\t\t},\n\t)\n\n\t// Mock cleanup to capture what resources are being cleaned up\n\tenv.OnActivity(\"ExecuteComprehensiveCleanup\", mock.Anything, mock.Anything).Return(\n\t\tfunc(ctx context.Context, input activities.ExecuteComprehensiveCleanupInput) error {\n\t\t\t// Check if deployment is in the cleanup resources\n\t\t\tfor _, resource := range input.Resources {\n\t\t\t\tif resource.ResourceType == common.ResourceTypeK8sDeployment &&\n\t\t\t\t\tresource.ResourceName == expectedDeploymentName {\n\t\t\t\t\tcleanupCalledWithDeployment = true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t)\n\n\tinput := RFTJobWorkflowInput{\n\t\tAccountID: \"test-account\",\n\t\tJobID: \"deploy-tracking-test\",\n\t\tDatasetName: \"accounts/test-account/datasets/training\",\n\t\tEvaluator: &database.Evaluator{EvaluatorName: *resourcename.NewEvaluatorName(\"test-account\", \"evaluator-123\")},\n\t\tBaseModel: \"accounts/test-account/models/base-model\",\n\t\tOutputModel: \"accounts/test-account/models/output-model\",\n\t\tCreatedBy: \"test-user\",\n\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\tEndingAssistantMessages: \"drop\",\n\t\tDeploymentShape: \"accounts/fireworks/deploymentShapes/test/versions/v1\",\n\t\tTrainingConfig: &gpb.BaseTrainingConfig{\n\t\t\tEpochs: 1,\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\t\tAcceleratorCount: 1,\n\t\t\tRegion: gpb.Region_US_VIRGINIA_1,\n\t\t},\n\t\tWandbConfig: &gpb.WandbConfig{\n\t\t\tEnabled: false,\n\t\t},\n\t\tInferenceParameters: &gpb.ReinforcementFineTuningJob_InferenceParameters{},\n\t\tEvalAutoCarveout: true,\n\t\tChunkSize: 0,\n\t\tRLORDebug: false,\n\t\tEnvironment: \"dev\",\n\t\tDisableHotReload: false, // Enable hot-reload\n\t}\n\n\tmetaData := WorkflowMetaData{\n\t\tWorkflowQueue: \"test-workflow-queue\",\n\t\tGoActivityQueue: \"test-go-activity-queue\",\n\t\tPythonActivityQueue: \"test-python-activity-queue\",\n\t}\n\n\t// Cancel the workflow while CreateOrGetDeployment is executing\n\tenv.RegisterDelayedCallback(func() {\n\t\tenv.CancelWorkflow()\n\t}, 100*time.Millisecond)\n\n\tenv.ExecuteWorkflow(RFTJobWorkflow, input, metaData)\n\n\trequire.True(t, env.IsWorkflowCompleted())\n\n\t// Workflow should be cancelled\n\terr := env.GetWorkflowError()\n\trequire.Error(t, err, \"Workflow should have an error due to cancellation\")\n\n\t// CRITICAL: Verify that cleanup was called with the deployment name\n\t// This proves the deployment was tracked BEFORE CreateOrGetDeployment completed\n\tassert.True(t, cleanupCalledWithDeployment,\n\t\t\"ExecuteComprehensiveCleanup should be called with deployment name even when \"+\n\t\t\t\"CreateOrGetDeployment is cancelled mid-execution. This verifies the deployment \"+\n\t\t\t\"is tracked for cleanup BEFORE the activity is called.\")\n}\n"} -{"text": "Six feet, eight inches tall, given to doing pull-ups on the office rafters, carrying the upper-body strength of a construction crane, Patrick Swanson nevertheless has health issues. They become particularly onerous during late Summer and early Autumn of every year. He can’t sleep past 4 AM. His appetite slumbers for long periods, then rages out of control. His rhythms disrupted, he loses focus on what’s before him, obsessing instead over the “silvery flashes” darting through his mind.\nA metabolic problem? Restless leg syndrome? Mental issues? No. Patrick has Chronic Annual Re-occuring Steelhead Fever, which he first contracted at age 10 backtrolling a wiggle-wart on the Columbia River in eastern Washington state.\n“I still remember the size, too: seven pounds, thirty inches long,” Patrick says, looking distant, seeing silvery flashes. “When I say it out loud, it sounds like giving birth to a child, doesn’t it?”\nThe only locally-available palliative for CARSF is found in the sterling waters of Idaho’s Clearwater River, about an hour to the south of the Populi office. A four-hour early-morning round trip takes the edge off the shakes and pangs just enough to spend the rest of the day holed up here, where Patrick earns his health insurance as Populi’s System Administrator and chief bug exterminator.\nAs bug-stomper, he forms an integral part of our Customer Support crew. When a customer says, “This ain’t working,” after Populi Support verifies it, Patrick hears about it and laces up his size 16’s. As System Administrator, Patrick’s workday can be fairly catch-all. He sets up new servers, keeps up with how they’re performing, upgrades background software, constructs security bulwarks, runs database queries, and a dozen other things. He does all this by tapping on a keyboard, looking at things on monitors, and through the sheer force of intimidation via his flawless Arnold Schwarzenegger impersonation.\nThe keyboard and monitor stuff he learned while earning his Computer Science degree at the University of Idaho, which developed and honed his considerable security chops. “They have this thing called RADICL—Reconfigurable Attack-Defend Instructional Computing Lab. It’s an air-gapped computer network that’s not connected to the external internet in any way. Basically, it’s an instructional facility for computer security and a free-for-all hacking playground.” If you think that’s esoteric, another part of his education involved “drawing state diagrams for finite non-deterministic automation systems”. In the midst of all this, Patrick remained focused on becoming employable post-college and developed a focus on solving real problems. Like the rest of us here, he worked a few years at EMSI on security and systems administration before cutting loose to help craft Populi into a going concern.\nThus, the computers. The Schwarzenegger impression originated with Patrick’s older brother Lucas, whose predilection for weightlifting molted into a robust appreciation for the acting chops of the former Governor of California. The brothers diligently studied the man’s ouevre, repeating lines of dialogue until they mastered the original Conan the Barbarian’s certain je ne sais quoi. Patrick, in the process, more than came into his own: “Now, when we’re together, it sounds like a troupe of Arnolds are in the room.”\nThe Swanson boys grew up in southeast Washington’s Tri-Cities area near their father’s groundwater remediation work at the Hanford nuclear site. Their sisters—including Patrick’s twin (she looks nothing like him)—ardently pursued music while the boys were outside stalking game through the sagebrush and dry hills. Then came that day at age 10 when he saw the flopping seven-pounder at his feet on the edge of the Columbia River. When the fever overtook him.\nSince then, his search for a cure has been admittedly tepid. Asked how he copes, he simply starts speaking: “The biggest steelhead I caught was around 15 pounds. Not huge but a decent fish. The steelhead on the Clearwater are B-run steelhead which means they’re a bigger strain. They stay in the ocean an additional year before coming up to spawn—as opposed to the smaller A-run.\n“But I’m still searching for that elusive, 20+ pound steelhead,” he concludes. Then his forehead twitches."} -{"text": "\"Instead of being adversaries to government power ... [the media of Washington, D.C., are] ... servants to it and mouthpieces for it.\"\nSo said the Guardian's Glenn Greenwald, who broke the story of Edward Snowden's disclosure of NSA spying on the American people, after Greenwald's confrontation with Meet the Press's David Gregory. Greenwald needn't have limited his observation to the D.C. media. Plenty of reporters and cable-news talking heads are playing the same role in the NSA drama.\nIndeed, if they spent half the time investigating Obama's Big Brother operations that they spend sneering at Snowden and Greenwald, Americans might demand that the government stop spying on them.\nBut to much of the mainstream (and not-so-mainstream) media, Snowden and Greenwald - not the NSA, the Obama administration, and the supine Congress - are the story - a story of villainy.\nThe examples are endless. The day after Snowden revealed himself as the whistleblower, Joe Scarborough, the former Republican congressman and host of MSNBC's Morning Joe, ordered his director to take the image of \"that weasel\" off the screen. The other day, his sidekick, Mika Brzezinski, asked, \"Is there anything we can do to track him down?\" (Emphasis added.) She meant the government.\nBrzezinski went on to accuse Snowden of taking the job with NSA contractor Booz Allen Hamilton \"to screw over our government.\" That's how one who speaks power to truth spins it. Snowden's service to the American people is hardly undercut by his having taken the job intending to expose government violations of the Fourth Amendment.\nMSNBC's self-identification as a progressive network is hard to square with its unrelenting assaults on Snowden and Greenwald, and its de-emphasis of NSA surveillance. Andrea Mitchell, who functions as the network's chief diplomatic stenographer, wondered why the NSA was hiring contractors when it could be recruiting people with the \"right value system\" from the military. (She's forgotten that whistleblower Bradley Manning is in the military.) Chris Matthews of Hardball says that any foreign government that won't turn Snowden over to the U.S. government is \"no buddy of ours.\"\nMSNBC personnel routinely describe Greenwald as \"defensive,\" which apparently is their code word for people who push back at stupid questions. For example, when Gregory asked Greenwald if he could be indicted for \"aiding and abetting\" Snowden, and Greenwald asked in return how a journalist could equate reporting with criminal activity, he was treated with disdain. Gregory even questioned Greenwald's journalistic credentials, as did Paul Farhi of the Washington Post.\nI've focused on MSNBC because it has so egregiously and persistently circled the wagons around the government. It's an old story: TV hosts and reporters need access to government officials, but access is jeopardized if they antagonize those officials. Better to play it safe and sneer at Snowden and Greenwald.\nYou don't have to work for MSNBC to suck up to power. Op-ed writers from conservative David Brooks to progressive Richard Cohen have tried to portray Snowden as an alienated oddball, as though no one could have a legitimate purpose in unmasking government surveillance. (Brooks thought it relevant to write that Snowden \"has not been a regular presence around his mother's house for years.\" Really!) Pundits repeatedly refer to Snowden's having dropped out of high school, which apparently signals some serious moral or mental defect in the young man. More likely he was bored with the dull and regimented curriculum so typical of government high schools.\nOthers have tried to read much into Snowden's stops in Hong Kong and Moscow. He might be a spy, they suggest. But wouldn't a spy have kept his identity secret while selling his information to \"the enemy\"? It doesn't occur to the pundits that Snowden's priority right now is to stay out of the clutches of the U.S. government. Snowden has no moral obligation to be a martyr. Let's not forget how Bradley Manning has been treated for his disclosures of government wrongdoing. He faces life imprisonment.\nSnowden and Greenwald have not \"aided the enemy\" - unless the American people are the government's enemy. What they have done is embarrass the Obama administration by exposing criminal activity.\nFor the media's defenders of power against truth, that's inexcusable.\nSheldon Richman is vice president and editor at The Future of Freedom Foundation in Fairfax, Va."} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: control_plane/pkg/quotas/quota_test.go. Lines: 827.\n\npackage quotas\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/clusterregistry\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/constants\"\n\t\"github.com/fw-ai/fireworks/control_plane/pkg/database\"\n\torbclient \"github.com/fw-ai/fireworks/control_plane/pkg/orb/client\"\n\tgpb \"github.com/fw-ai/fireworks/control_plane/protos/generated/gateway\"\n\tresourcename \"github.com/fw-ai/fireworks/go/resource_name\"\n\t\"github.com/orbcorp/orb-go\"\n\t\"github.com/stretchr/testify/mock\"\n\t\"github.com/stretchr/testify/require\"\n\t\"google.golang.org/genproto/googleapis/type/money\"\n\t\"gorm.io/gorm\"\n)\n\n// createTestDeploymentShapeVersion creates a simple deployment shape version for testing.\nfunc createTestDeploymentShapeVersion(t *testing.T, db *gorm.DB, accountId string,\n\tshapeId string, versionId string, acceleratorType gpb.AcceleratorType, acceleratorCount int32) {\n\terr := db.Create(&database.DeploymentShapeVersion{\n\t\tDeploymentShapeVersionName: *resourcename.NewDeploymentShapeVersionName(accountId, shapeId, versionId),\n\t\tSnapshot: &database.DeploymentShape{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: acceleratorCount,\n\t\t},\n\t}).Error\n\trequire.NoError(t, err)\n}\n\nfunc TestRefreshQuotaUsages(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\trequire.NoError(t, db.Model(&database.Account{AccountName: *resourcename.NewAccountName(\"my-account\")}).\n\t\tUpdate(\"OrbSubscriptionId\", \"EvWfLnf3FvndYVHy\").Error)\n\n\t// Create a deployment (regular)\n\tdeployment := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"deployment-1\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tMaxReplicaCount: 2,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}\n\trequire.NoError(t, db.Create(deployment).Error)\n\n\t// DisableAccounting should NOT affect quota usage (quota models capacity pressure).\n\tdisableAccountingDeployment := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"deployment-disable-accounting\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tMaxReplicaCount: 3,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t\tDisableAccounting: true,\n\t}\n\trequire.NoError(t, db.Create(disableAccountingDeployment).Error)\n\n\t// Spot deployments should be excluded from quota usage.\n\tspotDeployment := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"deployment-spot\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tMaxReplicaCount: 100,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t\tSpot: true,\n\t}\n\trequire.NoError(t, db.Create(spotDeployment).Error)\n\n\t// Training deployments should count against training quota, not deployment quota.\n\ttrainingDeployment := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"deployment-training\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tMaxReplicaCount: 4,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t\tForTraining: true,\n\t}\n\trequire.NoError(t, db.Create(trainingDeployment).Error)\n\trequire.NoError(t, db.Create(&database.Quota{\n\t\tQuotaName: *resourcename.NewQuotaName(\"my-account\", string(constants.TrainingH100Count)),\n\t\tValue: 64,\n\t}).Error)\n\n\t// Set up mock Orb client\n\tmockOrbClient := &orbclient.MockClient{}\n\tmockOrbClient.On(\"ListSubscriptions\", mock.Anything, orb.SubscriptionListParams{\n\t\tExternalCustomerID: orb.F(\"my-account\"),\n\t\tStatus: orb.F(orb.SubscriptionListParamsStatusActive),\n\t}).Return([]orb.Subscription{{\n\t\tID: \"EvWfLnf3FvndYVHy\",\n\t}}, nil)\n\n\tmockOrbClient.On(\"FetchUpcomingInvoice\", mock.Anything, orb.InvoiceFetchUpcomingParams{\n\t\tSubscriptionID: orb.F(\"EvWfLnf3FvndYVHy\"),\n\t}).Return(&orb.InvoiceFetchUpcomingResponse{\n\t\tAmountDue: \"0\",\n\t\tCurrency: \"USD\",\n\t}, nil)\n\n\terr := RefreshQuotaUsages(context.Background(), clusterregistry.ProdRegistry(t), db, \"my-account\", mockOrbClient)\n\trequire.NoError(t, err)\n\n\t// Assert updated usage\n\tvar quota database.Quota\n\trequire.NoError(t, db.Where(&database.Quota{\n\t\tQuotaName: *resourcename.NewQuotaName(\"my-account\", clusterregistry.RegionalQuotaID(gpb.Region_US_IOWA_1, gpb.AcceleratorType_NVIDIA_H100_80GB)),\n\t}).Take("a).Error)\n\t// deployment-1: 2*1 = 2\n\t// deployment-disable-accounting: 3*1 = 3\n\t// deployment-spot: excluded\n\t// deployment-training: excluded from deployment quota\n\trequire.Equal(t, float64(5), quota.Usage)\n\n\tvar trainingQuota database.Quota\n\trequire.NoError(t, db.Where(&database.Quota{\n\t\tQuotaName: *resourcename.NewQuotaName(\"my-account\", string(constants.TrainingH100Count)),\n\t}).Take(&trainingQuota).Error)\n\trequire.E"} -{"text": "PDZ domain-containing protein GIPC3 is a protein that in humans is encoded by the GIPC3 gene. GIPC3 is a member of the GIPC (GAIP-interacting protein C terminus) gene family that also includes GIPC1 and GIPC2. The encoded protein, GIPC3, features a centrally located PDZ domain, which is flanked on each side by a single GIPC-homology domain.\nThe human GIPC3 gene is located on the short arm of chromosome 19 at p13.3. The locus extends over ≈8 kbp and contains the six coding exons that give raise to a open reading frame of 639 nucleotides encoding the GIPC3 protein of 312 amino acids. A single PDZ domain is located at amino acid position 122-189. In the mouse, Gipc3 is located on chromosome 10 at cytogenetic band qC1. The genomic region covers a distance of 5.5 kbp. The six coding exons encode a protein of 297 amino acids. The PDZ domain is located at amino acid position 107-174.\nIn the mouse, a missense mutation in Gipc3 (c.343G>A) leads to a non-synonymous amino acid replacement (p.G115R) in the loop connecting two beta strands of the PDZ domain. Glycine 115 is conserved in all GIPC proteins. Missense (c.785C>T; p. L262R) and nonsense (c.903G>A, p.W301X) mutations in human GIPC3 cause congenital sensorineural hearing impairment in families segregating non-syndromic hearing loss DFNB15 and DFNB95.\nMice of the Black Swiss strain develop early-onset slowly progressing sensorineural hearing loss. A genetic study identified two quantitative trait loci (QTL) that control hearing function. One QTL, named age-related hearing loss 5 (ahl5) localizes to chromosome 10 and accounted for ca. 60% of the variation in hearing thresholds. A second QTL, ahl6, localized to chromosome 18 and has a smaller effect size. Besides their hearing impairment, Black Swiss mice also are hypersensitive to acoustic stimulation, reacting with seizures (audiogenic seizures) to loud white noise. A genetic locus conferring susceptibility was identified (juvenile audiogenic monogenic seizures1, jams1) on chromosome 10. A positional cloning approach aimed to decipher the genetic basis of both the hearing loss and audiogenic seizure susceptibility subsequently identified the glycine to arginine substitution in Gipc3 as the underlying cause.\nIn humans, individuals with the p.W301X missense mutation (DFNB95) exhibit bilateral sensorineural hearing loss with threshold shifts of 70-80 dB hearing levels as early as 11 months of age.\n- Frizzled-3 (FZD3) class of WNT receptor,\n- insulin-like growth factor-I receptor (IGF1R),\n- receptor tyrosine kinase TrkA,\n- TGF-beta type III receptor (TGF-beta RIII),\n- integrin alpha6A (ITGA6),\n- transmembrane glycoprotein TPBG, and\n- GIPC PDZ domain containing family, member 1, GIPC1\n- GIPC PDZ domain containing family, member 2, GIPC2\n- ↑ Entrez Gene: GIPC PDZ domain containing family.\n- ↑ Saitoh T, Mine T, Katoh M (March 2002). Molecular cloning and characterization of human GIPC3, a novel gene homologous to human GIPC1 and GIPC2. Int. J. Oncol. 20 (3): 577–82.\n- ↑ 3.0 3.1 Katoh M (June 2002). GIPC gene family (Review). Int. J. Mol. Med. 9 (6): 585–9.\n- ↑ PMID 12011974 (PMID 12011974)\n- ↑ Charizopoulou N, Lelli A, Schraders M, Ray K, Hildebrand MS, Ramesh A, Srisailapathy CR, Oostrik J, Admiraal RJ, Neely HR, Latoche JR, Smith RJ, Northup JK, Kremer H, Holt JR, Noben-Trauth K (February 2011). Gipc3 mutations associated with audiogenic seizures and sensorineural hearing loss in mouse and human. Nat Commun 2 (2): 201.\n- ↑ PMID 16426780 (PMID 16426780)\n- ↑ PMID 12451109 (PMID 12451109)\n- Vega A, Salas A, Milne RL, et al. (2009). Evaluating new candidate SNPs as low penetrance risk factors in sporadic breast cancer: a two-stage Spanish case-control study.. Gynecol. Oncol. 112 (1): 210–4.\n- Matsuoka S, Ballif BA, Smogorzewska A, et al. (2007). ATM and ATR substrate analysis reveals extensive protein networks responsive to DNA damage.. Science 316 (5828): 1160–6.\n|This page uses Creative Commons Licensed content from Wikipedia (view authors).|"} -{"text": "It was an intriguing series of requests for columnist Douglas Preston, who wrote about history for Natural History, the magazine of the American Museum of Natural History. An editor from St. Martin’s Press had been reading his pieces and asked Preston to write a history of that institution. That invitation led to Preston’s first book, 1993’s Dinosaurs in the Attic. After it was published, his editor got a tour of the museum—in the middle of the night, which led to the second request.\nPreston remembers it as follows: “I showed him all the best places to which I had access—the dinosaur bone storage room, the collection of 30,000 rats in jars of alcohol, the whale eyeball collection, the preserved mastodon stomach with its last meal inside, and a lot of other unusual things. We ended up in the Hall of Late Dinosaurs around 2 a.m., with only the emergency lights on, the great black skeletons looming in the darkness around us, and the editor turned to me and said, ‘Doug, this is the scariest building in the world. Let’s write a thriller set in here.’ ”\nThat editor was Lincoln Child, and the result was the 1995 bestseller Relic (Tor), a scientific suspenser about a mysterious savage creature rampaging through the dark corners of a labyrinthine “New York Museum of Natural History.” Relic, co-written by Child and Preston, introduced Aloysius Pendergast, an eccentric, maverick FBI agent whose startling appearance attracts almost as much attention as his oracular pronouncements. In his book debut, he’s described as “a tall, slender man, wearing a crisp black suit.” His “[h]air so blond it was almost white was brushed straight back above pale blue eyes,” and Pendergast is initially mistaken for an undertaker.\nNeither writer expected Pendergast to become a series lead, let alone star in sequels in which he confronts evil both supernatural and natural. (Grand Central will publish his 12th adventure, Two Graves, in December). But after a number of successful collaborations featuring other interesting characters (Mount Dragon, Riptide, The Ice Limit), the pair returned to the unconventional FBI agent in 1997’s Reliquary (Tor) and never looked back.\nIn retrospect, Child was ideal for sustaining books linked by plausible evocations of horrifying setups. (Relic was initially passed on by five or six publishers.) He was 14 when he first encountered the works of H.P. Lovecraft, which served as a major influence. Lovecraft gave him a “sense that the strange and outré is very much amongst us—all it takes is a little digging to find it,” Child says. At St. Martin’s, he rapidly advanced from editorial assistant in 1979 to full editor in 1984. Although he worked with the likes of James Herriot, the creatures great and small that Child most cared about were decidedly not warm and fuzzy. He put together collections of ghost and horror stories (1984’s Dark Company and 1985’s Dark Banquet) and founded the company’s mass market horror division.\nBut Child’s road to professional writing was not a linear one. A nine-year stint at Met Life, doing what he describes as “highly technical programming and systems analysis,” came between his leaving St. Martin’s and “stopping working for a living.”\nIn addition to penning 18 books with Preston, Child has written powerful horror fiction on his own, most recently June’s The Third Gate (Doubleday), which is intended as the launch of “enigmalogist” Jeremy Logan as the lead of a series. But even for Child’s solo efforts, Preston serves as an active ally, a sounding board for plot developments and scenes.\nAfter so many years, Child and Preston can sound like an old married couple—on the rare occasion that they’re in the same place at the same time (such as when they both traveled to New York City to attend the wedding of Preston’s daughter last month). The intellectual curiosity they share bridges their very different personalities. (Both men, albeit with a smile, have described Child as an “introverted reclusive neurotic” while Preston is the consummate adventurer.) And the two are committed to making each new book “better than the one before,” says Child, relying on each other to make sure that the major pitfall of a long-running series—tiresome repetition—is avoided.\nLenny Picker is a freelance writer in New York City."} -{"text": "qual(t, float64(4), trainingQuota.Usage)\n}\n\nfunc TestRefreshDeploymentQuotaUsage(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\treg := clusterregistry.ProdRegistry(t)\n\n\t// Create deployment\n\tdeployment := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"deployment-1\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tMaxReplicaCount: 2,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}\n\trequire.NoError(t, db.Create(deployment).Error)\n\n\tdeploymentDeleted := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"deployment-deleted\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tMaxReplicaCount: 2,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_DELETED,\n\t}\n\trequire.NoError(t, db.Create(deploymentDeleted).Error)\n\n\t// Refresh usage for this deployment\n\trequire.NoError(t, RefreshDeploymentQuotaUsage(reg, db, \"my-account\", deploymentDeleted))\n\n\t// Assert usage updated\n\tvar quota database.Quota\n\trequire.NoError(t, db.Where(&database.Quota{\n\t\tQuotaName: *resourcename.NewQuotaName(\"my-account\", clusterregistry.RegionalQuotaID(gpb.Region_US_IOWA_1, gpb.AcceleratorType_NVIDIA_H100_80GB)),\n\t}).Take("a).Error)\n\trequire.Equal(t, float64(2), quota.Usage) // Usage should be 0 because it excludes the deployment itself\n}\n\nfunc TestRefreshDeploymentQuotaUsage_ForTrainingRefreshesTrainingQuota(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\treg := clusterregistry.ProdRegistry(t)\n\tdeploymentName := resourcename.NewDeploymentName(\"my-account\", \"training-deployment\")\n\n\trequire.NoError(t, db.Create(&database.Quota{\n\t\tQuotaName: *resourcename.NewQuotaName(\"my-account\", string(constants.TrainingH100Count)),\n\t\tValue: 64,\n\t\tUsage: 8,\n\t}).Error)\n\trequire.NoError(t, db.Create(&database.Deployment{\n\t\tDeploymentName: *deploymentName,\n\t\tState: gpb.Deployment_READY,\n\t\tForTraining: true,\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_B300_288GB,\n\t\tAcceleratorCount: 8,\n\t\tMaxReplicaCount: 1,\n\t}).Error)\n\n\trequire.NoError(t, RefreshDeploymentQuotaUsage(reg, db, \"my-account\", &database.Deployment{\n\t\tDeploymentName: *deploymentName,\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tAcceleratorCount: 8,\n\t\tMaxReplicaCount: 1,\n\t\tForTraining: true,\n\t}))\n\n\tvar quota database.Quota\n\trequire.NoError(t, db.Where(&database.Quota{\n\t\tQuotaName: *resourcename.NewQuotaName(\"my-account\", string(constants.TrainingH100Count)),\n\t}).Take("a).Error)\n\trequire.Equal(t, float64(0), quota.Usage)\n}\n\nfunc TestRefreshDeploymentQuotaUsage_PlacementChange(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\n\t// Create GLOBAL quota with initial usage\n\trequire.NoError(t, db.Create(&database.Quota{\n\t\tQuotaName: *resourcename.NewQuotaName(\"my-account\", string(constants.GLOBAL__H100Count)),\n\t\tValue: 10,\n\t\tUsage: 2, // Simulating usage from the deployment below\n\t}).Error)\n\n\t// Create deployment that has been updated from GLOBAL to US (in DB, placement is now US)\n\trequire.NoError(t, db.Create(&database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"placement-test\"),\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tMaxReplicaCount: 2,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t\tPlacement: &database.Placement{\n\t\t\tMultiRegion: gpb.MultiRegion_US, // Already updated in DB\n\t\t},\n\t}).Error)\n\n\t// Now refresh the OLD quota (GLOBAL) with OLD placement info\n\t// This simulates what happens after UpdateDeployment updates the DB\n\toldPlacementDeployment := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"placement-test\"),\n\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H100_80GB,\n\t\tMaxReplicaCount: 2,\n\t\tAcceleratorCount: 1,\n\t\tPlacement: &database.Placement{\n\t\t\tMultiRegion: gpb.MultiRegion_GLOBAL, // OLD placement\n\t\t},\n\t}\n\trequire.NoError(t, RefreshDeploymentQuotaUsage(clusterregistry.ProdRegistry(t), db, \"my-account\", oldPlacementDeployment))\n\n\t// Assert GLOBAL usage should be 0 (no deployments using GLOBAL quota anymore)\n\tvar globalQuota database.Quota\n\trequire.NoError(t, db.Where(&database.Quota{\n\t\tQuotaName: *resourcename.NewQuotaName(\"my-account\", string(constants.GLOBAL__H100Count)),\n\t}).Take(&globalQuota).Error)\n\trequire.Equal(t, float64(0), globalQuota.Usage, \"GLOBAL quota usage should be 0 after placement changed away from GLOBAL\")\n}\n\nfunc TestGetDeploymentQuotaUsageByDeployment(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\tacceleratorType := gpb.AcceleratorType_NVIDIA_H100_80GB\n\n\t// Create existing deployment that should count toward quota\n\texisting := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"existing-deployment\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: acceleratorType,\n\t\tMaxReplicaCount: 3,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_REA"} -{"text": "Archived material is restricted to Rantburg regulars and members. If you need access email fred.pruitt=at=gmail.com with your nick to be added to the members list. There is no charge to join Rantburg as a member.\nPosted by JohnQC 2013-01-01 09:56||\n#2 The RHINOS never learn, do they?\n$1 in cuts for every $41 in new taxes?\nSo much for any recovery hopes.\nPosted by DarthVader 2013-01-01 10:13||\n#3 So much for any recovery hopes. I gave up my 'recovery hopes' in 2008 or so. I am just praying we avoid a catastrophic economic collapse with widespread destitution.\nPosted by Anguper Hupomosing9418 2013-01-01 10:18||\n#4 Destitution yes, economic collapse no. It won't be 1930's level, our standard of living has just risen to much I think to fall that much with JUST economics. Though this still has to get through the House. There's palatable, then there's stupid. 41-1. Will mean quite a few ends to congressional careers. 2014 will see ALOT of Primary challenges.\nPosted by Charles 2013-01-01 10:23||\n#5 Wish I'd hit preview, Destituation NO, Economic collapse YES. Ugh.\nPosted by Charles 2013-01-01 10:24||\n#6 Bottom line: The term and threat of \"sequester\" as applied to the gov't budget and spending means absolutely nothing.\nPosted by Besoeker 2013-01-01 10:24||\n#7 Jerry Pournelle made some relevant comments: I note that there is frantic last minute activity in Congress, but I also note that it is more devoted to turning off the sequester which is the only real spending cut in the future. No one is looking at fraud and waste, bunny inspectors, government activities we would be better off without. Soak the rich is now the goal for a lot of Democrats. By the rich is generally meant those whose income is salaries and bonuses, people paid through stock options for engaging in high risk enterprises, etc. People who move money around in circles generally find ways to defer income in ways that dont get hit with income taxes. And of course there are many perks that come with wealth but which dont look like income.\nThe President wants to pound the rich. He doesnt care what that does to investment climates. And no one is going to make any cuts to entitlements.\nAt some point, one would suspect, the American people will have had enough; but that will take a while. And Congress gets a raise. Their staffers get a raise. Government employee pensions continue to rise, and the courts are now saying that cities cant stop paying into pension funds even if they go bankrupt, and the idiots who bought city bonds have less claim on a bankrupt citys money than the pensioned off employees.\nPosted by Anguper Hupomosing9418 2013-01-01 10:43||\nPosted by tipper 2013-01-01 11:01||\n#9 assuming HR8, aka the American Tax Relief Act of 2012, passes the house and is signed, the spending battle will be fought two months from now when the sequesters kick in certain Treasury measures that are being used to manage the national debt run out.\nthis isn't over, not by a long shot\nPosted by lord garth 2013-01-01 13:49||\n#10 Do we have to \"read the bill to find out what's really in it?\" The full impact, it this passes will be painful. The current complexion of the House is, in a big way, due to people feeling 'taxed enough already'. I hope that membership, Mr. Boehner included, remembers that and acts accordingly when it gets to them for a vote.\nPosted by warthogswife 2013-01-01 17:24||\n#11 With some exceptions, the entire Congressional establishment is pavlovian now on polling (thanks Clintons) and cannot understand push polling adequately to dismiss much of what is responsive to it. We are governed almost exclusively now by perception not principle, and careerism not commitment, so sadly, the Republic has drifted to the rapacious democracy that will want all that is promised like the mob in Rome. Bread and circuses and no understanding of the destruction that is rendering the future more and more impoverished and bleak. I never imagined the rot would be so fast.....\nPosted by NoMoreBS 2013-01-01 18:06||"} -{"text": "From the article :\nWomen face hardship more than men as cash-strapped states cut social-welfare programs to balance lower revenue and higher costs for pensions and health care. Women make up about 54 percent of the poor, according to U.S. Census Bureau data, and thus are more affected by reductions in Medicaid, child-care assistance and domestic-violence programs.\n\"Women disproportionately rely on social services,\" Joan Entmacher, vice president for family economic security at the National Women's Law Center in Washington, said by telephone. \"They have lower incomes and more frequently are single parents responsible for providing for children.\"\nIn California, the most populous U.S. state, CalWorks is the face of the federal welfare program known as Temporary Assistance for Needy Families. It provides money and employment services to low-income families with children, such as Williams.\nMore than three-quarters of adult recipients, 78 percent, are women, according to a 2010 report by the California Budget Project, a nonpartisan research group in Sacramento.\nCut in Aid\nLawmakers reduced the grants by 8 percent in this year's budget, cutting the maximum monthly aid for a family of four to $762 from $828, according to Michael Weston, a spokesman for the Social Services Department.\nThe state also reduced the aid's duration to four years from five, Weston said. The program served about 598,000 families as of June, he added.\n\"Women are in these programs because they are primary caregivers for children,\" said Mary Wiberg, executive director of the California Commission on the Status of Women, a nonpartisan state agency. \"They have costs and expenses for caring for their families that are having domino negative effects as the cuts are made.\"\nSpending on health and human-services programs consumes the second-largest share of California's general-fund budget, said H.D. Palmer, a Finance Department spokesman. Only education takes more money, he said.\n'Unprecedented Budget Gaps'\n\"California has had to close unprecedented budget gaps in recent years,\" Palmer said in a telephone interview. \"In making those reductions, every effort has been made to maintain a social safety net for the most vulnerable.\"\nStates will have to close budget shortfalls of more than $46 billion in fiscal 2013, according to a June report by the Center on Budget and Policy Priorities, a nonprofit research organization in Washington. The deficits mean states have had to make severe cuts to programs already emaciated from several years of recession-driven reductions.\nCalifornia was among states including Washington, South Carolina, New Mexico and Wisconsin in reducing family assistance, the center said in a report Oct. 3.\n\"To be effective, a safety net must be able to expand when the need for assistance rises,\" according to the report. \"The TANF block grant is failing this test.\"\nIn Arizona, where Medicaid spending jumped 65 percent in the last four years, the state froze enrollment for childless adults in July, dropping 26,000 from the rolls, said Monica Coury, a spokeswoman for the Health Care Cost Containment System.\nWomen comprise 70 percent of adult Medicaid recipients, according to the U.S. Health and Human Services Department. Enrollment in the $428 billion joint federal-state health- insurance plan for the poor has surged in the past three years as people lost jobs or their income dropped enough for them to qualify.\nArizona also reduced the duration of the family assistance benefits to two years from three, a change that's expected to affect about 3,500 families, Stephen Meissner, a spokesman for the Economic Security Department, said in an e-mail.\nThe Grand Canyon State's domestic-violence budget has shrunk by 25 percent, or about $4 million, since fiscal 2009, Meissner said.\n'Can't Spend Money'\n\"While we wish these cuts were not necessary, those decisions ultimately are made by elected officials,\" Meissner said. \"We sometimes can shift around some of the cuts to ease their impact, but we can't spend money we are not allotted.\"\nIn Rhode Island, a state of 1.05 million people, financing of domestic-violence programs fell to about $297,000 this year from $724,000 in 2008, Deborah DeBare, executive director of the Rhode Island Coalition Against Domestic Violence in Warwick, said in an e-mail. The number of victims it serves increased 6.5 percent to about 10,400 in 2010 from 9,800 a year earlier, she said.\n\"We're one of the worst states,\" DeBare said in a telephone interview, adding that the burden on women has been compounded by cuts in other programs.\n\"Women in Rhode Island are calling for help at a great degree,\" she said. \"There are callers looking for not just emergency shelter but rental assistance, food and paying utility bills.\""} -{"text": "DY,\n\t}\n\trequire.NoError(t, db.Create(existing).Error)\n\n\t// Create deployment we want to exclude from usage\n\ttarget := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"target-deployment\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: acceleratorType,\n\t\tMaxReplicaCount: 2,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}\n\trequire.NoError(t, db.Create(target).Error)\n\n\tusage, err := GetDeploymentQuotaUsageByDeployment(db, target, acceleratorType)\n\trequire.NoError(t, err)\n\trequire.Equal(t, int64(3), usage) // Only the `existing` deployment counts\n}\n\nfunc TestGetDeploymentQuotaUsageByDeployment_WithShape(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\tacceleratorType := gpb.AcceleratorType_NVIDIA_H100_80GB\n\n\tdeployment := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"deployment-1\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: acceleratorType,\n\t\tMaxReplicaCount: 3,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}\n\trequire.NoError(t, db.Create(deployment).Error)\n\n\t// Deployment from shape: 2 replicas * 2 accelerators = 4\n\tcreateTestDeploymentShapeVersion(t, db, \"my-account\", \"deployment-shape-1\", \"v1\", acceleratorType, 2)\n\trequire.NoError(t, db.Create(&database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"deployment-2\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tMaxReplicaCount: 2,\n\t\tState: gpb.Deployment_READY,\n\t\tDeploymentShape: \"accounts/my-account/deploymentShapes/deployment-shape-1/versions/v1\",\n\t}).Error)\n\n\t// Calculate usage for a new target deployment (it should not be counted in usage)\n\ttarget := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"target-deployment\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: acceleratorType,\n\t\tMaxReplicaCount: 2,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}\n\trequire.NoError(t, db.Create(target).Error)\n\n\tusage, err := GetDeploymentQuotaUsageByDeployment(db, target, acceleratorType)\n\trequire.NoError(t, err)\n\trequire.Equal(t, int64(7), usage) // 3 + 4 = 7 (target not included)\n}\n\n// A gateway-merged row (marker matches the pinned shape) is authoritative even\n// when it overrides the shape's accelerator_count: usage must use the row's\n// count, not the shape snapshot's.\nfunc TestGetDeploymentQuotaUsageByDeployment_GatewayMergedOverride(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\tacceleratorType := gpb.AcceleratorType_NVIDIA_H100_80GB\n\n\tconst shapeVer = \"accounts/my-account/deploymentShapes/override-shape/versions/v1\"\n\t// Shape pins accelerator_count = 8; the row overrides it to 2.\n\tcreateTestDeploymentShapeVersion(t, db, \"my-account\", \"override-shape\", \"v1\", acceleratorType, 8)\n\trequire.NoError(t, db.Create(&database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"merged-override\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: acceleratorType,\n\t\tAcceleratorCount: 2,\n\t\tMaxReplicaCount: 3,\n\t\tState: gpb.Deployment_READY,\n\t\tDeploymentShape: shapeVer,\n\t\tAnnotations: map[string]string{constants.DeploymentShapeMergedVersionAnnotation: shapeVer},\n\t}).Error)\n\n\ttarget := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"target-deployment\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: acceleratorType,\n\t\tMaxReplicaCount: 1,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}\n\trequire.NoError(t, db.Create(target).Error)\n\n\tusage, err := GetDeploymentQuotaUsageByDeployment(db, target, acceleratorType)\n\trequire.NoError(t, err)\n\t// Row override wins: 3 * 2 = 6, NOT the shape's 3 * 8 = 24.\n\trequire.Equal(t, int64(6), usage)\n}\n\nfunc TestGetDeploymentQuotaUsageByDeployment_MixedShapesAndRegular(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\th100Type := gpb.AcceleratorType_NVIDIA_H100_80GB\n\n\t// H100 deployment from shape: 2 replicas * 4 accelerators = 8\n\tcreateTestDeploymentShapeVersion(t, db, \"my-account\", \"h100-shape\", \"v1\", h100Type, 4)\n\trequire.NoError(t, db.Create(&database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"h100-from-shape\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tMaxReplicaCount: 2,\n\t\tState: gpb.Deployment_READY,\n\t\tDeploymentShape: \"accounts/my-account/deploymentShapes/h100-shape/versions/v1\",\n\t}).Error)\n\n\t// H100 regular deployment: 3 replicas * 1 accelerator = 3\n\trequire.NoError(t, db.Create(&database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"h100-regular\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: h100Type,\n\t\tMaxReplicaCount: 3,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}).Error)\n\n\t// Calculate usage for a new target deployment (target is not counted)\n\ttarget := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName("} -{"text": "So you want to go fast on a motorcycle, huh? Well, you could do what all your peers did and buy a brand new liter bike, crash it and either hurt yourself badly or never ride again. It'll probably end up being both. But what if we told you there was a third way? Instead of looking for the bike to do the speed for you, learn to speed yourself. Do that and a whole new world will open up to you, you'll be faster, safer and have more fun. You'll probably even end up riding your whole life. Sound good? In that case, start right here with a Honda CBR250R.\nPhotos: Ashlee Goodwin\nA 600 or 1000cc sportsbike is a professional level tool for going fast. It's the motorcycle equivalent of a professional DSLR camera — a lot of people spend too much money to use them for everyday activities. Out of the box with little to no skill, you just can't use either one to anywhere near its full potential. Sportsbikes and pro cameras are amazingly capable, but they're not so great to learn on. For that, you need something a little more user friendly, a lot less complex and a lot cheaper. You need accessibility.\nThe CBR250 is about as far from a proper sportsbike as you can get. It offers the bare minimum of power necessary to putt around on the freeway. An old-school steel chassis and swingarm, spongy brakes and the dirt cheap suspension make for a very, very slow bike. But, they also make it affordable — $4,000 brand new — for just about anyone that wants to start riding. So how the hell is a very, very slow bike going to help you go fast?\nOn this bike things happen slower. A straight that would be a stress-filled five seconds on a 600 is eight seconds of time on a CBR250. Those are valuable extra seconds to contemplate the corner you just left, find the right line, shift and think about braking for the next turn. You'll be able to refine the technical skills used to operate the bike and learn about cornering without the stress of speed.\nLimited lean angle and suspension that never quite settles can also be used to your advantage. Go into a corner too hot and adjusting your line isn't a big deal. If the pegs aren't dragging, just muscle it over a little further and you'll be fine. Since cornering forces aren't nearly as high as they would be on a larger, heavier bike, it's unlikely you'll break traction and crash.\nIf you accidentally go from closed to wide-open throttle in a third gear corner, the motor won't have enough power to induce a slide or worse, a highside. The punishment for braking too much (thereby losing momentum) is harsh: you'll go through the next three corners slow while you work to build up momentum again.\nYou might think full leathers are overkill if you're just cruising around the canyons on a 250, but if you want to learn to go fast, the opposite is true. Aside from the important stuff like reducing your chances of injury or death, full racing leathers are really the number one thing that is going to allow a newer rider to push the limits of this (or any) motorcycle. Wearing all that protection does wonders for confidence, but you don't need to go out and spend thousands of dollars to feel like a superhero. Ask your friends, check eBay and endlessly troll Craigslist. Someone else's sweaty old rashed leathers could be yours for under $100 if you look hard enough.\nInstead of wondering about road rash if you crash at 40mph in jeans, you'll be focusing on lines, looking where you want to go and having fun. It's also pretty hard to put your knee down corner after corner if there's no puck there.\nMaster riding a bike like this at the limit and you'll be ready to have fun on a real sportsbike. The 600 and 1000cc bikes of today have to be ridden extremely fast before they start to feel good at all. You don't even begin to get useful feedback until you are trail-braking and putting your knee down so they just won't inspire confidence unless you're riding at a very high level of ability. Every job has the right tool.\nIf you ask old slow guys, they'll tell you that it's always more fun to ride a slow bike fast than a fast bike slow. A lack of both engine and braking power encourage you to carry momentum when riding the CBR250, the budget suspension makes learning to muscle a bike around easy and versatile ergonomics allow for both bolt-upright and proper racing body positions. The CBR 250 begs you to stretch its throttle cables, avoid the brakes at all costs, be mindful of your lines and more than anything else, have fun. Motorcycling is the lifelong pursuit of greater skill; the CBR250 is the perfect place to start developing those skills."} -{"text": "Apologies for not posting anything about my beloveds and their Super Debacle earlier. And no, it was not because I was prostrate with grief or hospitalized for an attempted suicide.\nFor those who may not be aware, I work 3 days a week – Friday, Saturday, and Sunday – from 10:00 PM - 6:00 AM at a convenience store. For just sitting around for 8 hours, I get an obscene amount of money. It really is offensive to me that someone is willing to pay me what some employees make in a 40 hour week just because they can’t find anyone else to work the graveyard shift on the weekends.\nBe that as it may, it truly is an exhausting ritual to constantly change my bio rhythms in this fashion. And since I was beginning to feel like I was coming down with a cold, I took yesterday off and slept around 12 hours. The entire weekend, I think I managed around 9 hours of sleep so I hope I am forgiven my sloth.\nAs for the game, I thought my analysis of what would happen and what the Bears needed to do to win was on target. I still can’t believe the Bear’s defense went into a shell and failed to attack the Colts offense. But I predicted Hester would return one, that Wayne would probably catch a long one for a TD. I also predicted that Indy would score more field goals than touchdowns (4 FG attempts to 2 TD’s and that if the Bears corners played off the Indy wideouts, it would be a very long, depressing day.).\nThat last was the key to the game. By playing 5 yards or more off Harrison and Wayne, the Bears defenders were out of position when Manning began to toss flat passes to his backs. By the time a Bear defender showed up, the Indy backs were already 5 yards downfield. Manning nickled and dimed the Bears to death.\nAnd anyone who puts the onus for this loss on Rex Grossman doesn’t know anything about football. Yes, Wonder Dog was bad. But I would also mention that he didn’t have a chance to show what he could do because the offense never had the damn ball! When the game was actually on his shoulders in the 4th quarter, it was almost like he wasn’t even warmed up. I thought he was reasonably accurate but suffered from the fact that there didn’t appear to be an offensive game plan. Or at least one that would have made a difference.\nNo team will win a Super Bowl if the defense gives up 400 yards. You can have the greatest quarterback in history and the Bears still would have lost because the defense played soft. The fact that this is exactly the same problem the Bears had last year in their playoff loss to Carolina makes me question the overall coaching in this game and whether they changed strategies as a result of the weather. It was almost as if the coaches were playing not to lose – a sure way to defeat. In any case, Lovie was outcoached by Dungy.\nSo my beloveds are now 1-1 in the Big Game. And, as I mentioned in my preview, I don’t think it will take another 21 years before the Bears make a return visit. Next year, Grossman will be better, Brown and Harris will most likely be back, and there will be lessons learned so that when they make a run at the brass ring again, they’ll at least realize what it takes to grab it.\nWith the potential loss of Lance Briggs to free agency, a huge hole could open up at outside linebacker. However, I think the Bears will slap a franchise tag on Briggs which will bring him back for another year but not at the kind of salary that he would get in free agency. And they will use the nearly $30 million they have available under the cap to improve. Perhaps acquire an outstanding offensive lineman via free agency or another impact player at D-back.\nOne thing is sure; Lovie Smith won’t let them fall back. And if they can stay reasonably healthy next year, the playoffs are almost a certainty even with their much tougher first place schedule. As Indy proved, you don’t need that first round playoff bye to win it all.\nA disappointing loss to be sure. But it should make most of them hungry again next year. And this time in the Presidential election year of 2008 when the NFL crowns a brand new champ, I really believe that my beloveds have as good a chance or better to be on that podium accepting the Lombardi Trophy and being acknowledged as the league’s best."} -{"text": "\"my-account\", \"target-h100\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: h100Type,\n\t\tMaxReplicaCount: 5,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}\n\trequire.NoError(t, db.Create(target).Error)\n\n\tusage, err := GetDeploymentQuotaUsageByDeployment(db, target, h100Type)\n\trequire.NoError(t, err)\n\trequire.Equal(t, int64(11), usage) // 8 + 3 = 11 (target not included)\n}\n\nfunc TestGetDeploymentQuotaUsageByDeployment_FiltersByAcceleratorType(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\th100Type := gpb.AcceleratorType_NVIDIA_H100_80GB\n\ta100Type := gpb.AcceleratorType_NVIDIA_A100_40GB\n\n\t// Create H100 deployments: 2 * 4 = 8\n\tcreateTestDeploymentShapeVersion(t, db, \"my-account\", \"h100-shape\", \"v1\", h100Type, 4)\n\trequire.NoError(t, db.Create(&database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"h100-from-shape\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tMaxReplicaCount: 2,\n\t\tState: gpb.Deployment_READY,\n\t\tDeploymentShape: \"accounts/my-account/deploymentShapes/h100-shape/versions/v1\",\n\t}).Error)\n\n\t// Create A100 deployments: 3 * 2 = 6\n\tcreateTestDeploymentShapeVersion(t, db, \"my-account\", \"a100-shape\", \"v1\", a100Type, 2)\n\trequire.NoError(t, db.Create(&database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"a100-from-shape\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tMaxReplicaCount: 3,\n\t\tState: gpb.Deployment_READY,\n\t\tDeploymentShape: \"accounts/my-account/deploymentShapes/a100-shape/versions/v1\",\n\t}).Error)\n\n\t// When calculating A100 usage, H100 deployments should be excluded\n\ttarget := &database.Deployment{\n\t\tDeploymentName: *resourcename.NewDeploymentName(\"my-account\", \"target-a100\"),\n\t\tRegion: gpb.Region_US_IOWA_1,\n\t\tAcceleratorType: a100Type,\n\t\tMaxReplicaCount: 2,\n\t\tAcceleratorCount: 1,\n\t\tState: gpb.Deployment_READY,\n\t}\n\trequire.NoError(t, db.Create(target).Error)\n\n\tusage, err := GetDeploymentQuotaUsageByDeployment(db, target, a100Type)\n\trequire.NoError(t, err)\n\trequire.Equal(t, int64(6), usage) // Only A100: 3 * 2 = 6 (H100s and target excluded)\n}\n\nfunc TestRefreshMonthlySpendUSDQuotaUsages(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\trequire.NoError(t, db.Model(&database.Account{AccountName: *resourcename.NewAccountName(\"my-account\")}).\n\t\tUpdate(\"OrbSubscriptionId\", \"sub-1\").Error)\n\n\tquotaName := *resourcename.NewQuotaName(\"my-account\", string(constants.MonthlySpendUSD))\n\n\t// Set up Orb client mock\n\tmockOrbClient := &orbclient.MockClient{}\n\tmockOrbClient.On(\"ListSubscriptions\", mock.Anything, orb.SubscriptionListParams{\n\t\tExternalCustomerID: orb.F(\"my-account\"),\n\t\tStatus: orb.F(orb.SubscriptionListParamsStatusActive),\n\t}).Return([]orb.Subscription{\n\t\t{ID: \"sub-1\"},\n\t\t{ID: \"sub-2\"},\n\t}, nil)\n\n\tmockOrbClient.On(\"FetchUpcomingInvoice\", mock.Anything, orb.InvoiceFetchUpcomingParams{\n\t\tSubscriptionID: orb.F(\"sub-1\"),\n\t}).Return(&orb.InvoiceFetchUpcomingResponse{\n\t\tAmountDue: \"10.75\",\n\t\tCurrency: \"USD\",\n\t\tStatus: \"draft\",\n\t}, nil)\n\n\tmockOrbClient.On(\"FetchUpcomingInvoice\", mock.Anything, orb.InvoiceFetchUpcomingParams{\n\t\tSubscriptionID: orb.F(\"sub-2\"),\n\t}).Return(&orb.InvoiceFetchUpcomingResponse{\n\t\tAmountDue: \"12.43\",\n\t\tCurrency: \"USD\",\n\t\tStatus: \"draft\",\n\t}, nil)\n\n\t// Use .Once() to control order and response\n\tmockOrbClient.On(\"ConvertUpcomingInvoice\", mock.Anything).Return(&gpb.Invoice{\n\t\tAmountDue: &money.Money{\n\t\t\tCurrencyCode: \"USD\",\n\t\t\tUnits: 10,\n\t\t\tNanos: 750_000_000,\n\t\t},\n\t}, nil).Once()\n\n\tmockOrbClient.On(\"ConvertUpcomingInvoice\", mock.Anything).Return(&gpb.Invoice{\n\t\tAmountDue: &money.Money{\n\t\t\tCurrencyCode: \"USD\",\n\t\t\tUnits: 12,\n\t\t\tNanos: 430_000_000,\n\t\t},\n\t}, nil).Once()\n\n\t// Call the method under test\n\terr := RefreshMonthlySpendUSDQuotaUsages(context.Background(), db, \"my-account\", mockOrbClient)\n\trequire.NoError(t, err)\n\n\t// Validate updated quota\n\tvar quota database.Quota\n\trequire.NoError(t, db.Where(&database.Quota{QuotaName: quotaName}).Take("a).Error)\n\trequire.Equal(t, float64(23.18), quota.Usage)\n}\n\nfunc TestRefreshMonthlySpendUSDQuotaUsages_NotFoundNonUsageSub(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\trequire.NoError(t, db.Model(&database.Account{AccountName: *resourcename.NewAccountName(\"my-account\")}).\n\t\tUpdate(\"OrbSubscriptionId\", \"usage-sub\").Error)\n\n\tquotaName := *resourcename.NewQuotaName(\"my-account\", string(constants.MonthlySpendUSD))\n\n\tmockOrbClient := &orbclient.MockClient{}\n\tmockOrbClient.On(\"ListSubscriptions\", mock.Anything, orb.SubscriptionListParams{\n\t\tExternalCustomerID: orb.F(\"my-account\"),\n\t\tStatus: orb.F(orb.SubscriptionListParamsStatusActive),\n\t}).Return([]orb.Subscription{\n\t\t{ID: \"usage-sub\"},\n\t\t{ID: \"devpass-sub\"},\n\t}, nil)\n\n\tmockOrbClient.On(\"FetchUpcomingInvoice\", mock.Anything, orb.InvoiceFetchUpcomingParams{\n\t\tSubscriptionID: orb.F(\"usage-sub\"),\n\t}).Return(&orb.InvoiceFetchUpcomingResponse{\n\t\tAmountDue: \"7.50\",\n\t\tCurrency: \"USD\",\n\t\tStatus: \"draft\","} -{"text": "In case you need a reason to support public radio\nIf you really need another good reason to support your local NPR affiliate, we bring you the latest report from the Pew Research Center’s Project for Excellence in Journalism: The State of the News Media 2013.\nThis will come as no surprise to anyone who watches local television in this or just any market across the nation, but there is more junk food-journalism on local TeeVee news than ever.\nThe Pew study found that ``in comparison with the topics covered in local news broadcasts studied in 2005 with a sample of newscasts from late 2012 and early 2013, sports weather and traffic grew to where they now fill 40 percent of the airtime.’’\nWeather and traffic reports grew from 25 percent of airtime in 2005 to 29 percent in 2012. And the Pew researchers found that the time devoted to sports ``nearly doubled’’ from 7 percent of the news hole on 2005 to 12 percent in 2012.\nWhat’s the problem with all this?\nWell, the distressing part is that the research showed in local news that coverage of government dropped dramatically. In 2005, those issues accounted for 7 percent of airtime studied. By the late 2012 and early 2013 study, airtime devoted to politics and government has plummeted to just 3 percent.\n``For some time,’’ the report states. ``Television consultants have been advising local television stations that viewers aren’t interested in politics and government and it appears that advice is being taken.’’\nOver the same period, the report found a jump in other local news topics. Airtime given over to accidents, disasters and other unusual events went from 5 percent in 2005 to 13 percent in 2012/2013.\nThe problem with this, of course, is that traffic, weather, sports and disaster reporting is available on many platforms, digital and broadcast. But local television is crucial to reporting on politics and government. What TeeVee is doing on air is catering to a dumbed-down politically illiterate populace.\nThe only good news is that in the Providence market, WPRI-Channel 12 has at least invested in digital resources, including blogger par excellence Ted Nesi and sidekick Dan McGowan. But this can hardly make up for the on-air decline in coverage of serious issues. And WJAR-Channel 10 still has such veteran political reporters as Bill Rappeyle and Jim Taricani. Both 12 and 10 have fine public affairs weekend shows that unfortunately run mostly when nobody is watching.\nIf you think newspapers can take up this slack, well, think again. According to the American Journalism Review, newspaper reporting staffs have been sliced by 30 percent since 2000. The AJR report found (from 2010) that daily newspapers were continuing to slash political reporters, particularly in Washington.\nRhode Islanders can view dramatically how the poor economic fortunes of dead-tree journalism and Internet competition has wreaked havoc on the Providence Journal, the main state legacy journalism outlet. The Projo has severely cut back on local reporting, closing all of the suburban bureaus. And for the first time in the memory of any living reader, the ProJo has no presence covering Rhode Island’s Washington political scene or our congressional delegation. Washington correspondent John Mulligan has retired and has not been replaced in a bureau that once held three or four reporters. The ProJo has also chopped its reports from the news services of the Washington Post and New York Times, meaning diluted national and international reports. With the ProJo bleeding readers and advertisers, this situation doesn’t appear to changing anytime soon. (The paper just laid off two of its top photographers). More fluff and less serious content is also taking over the ProJo. How else to explain that the lack of blogs on politics, education, crime or medicine but two staffers working on a fashion blog?\nBy contrast, Rhode Island Public Radio is still a small outlet, but we have been adding reporters over the past several years and upgrading our digital presence. We continue to provide a strong menu of local reporting. Hopefully, you can help us support this."} -{"text": "SAN FRANCISCO (CBS 5 / KCBS) — The city of San Francisco cleaned up Monday after World Series celebrations turned rowdy and violent in a few neighborhoods, leading to the arrests of dozens of revelers.\nPolice officials said 36 people were arrested in the hours after the San Francisco Giants clinched the World Series with a Game 4 win in Detroit on Sunday night. Of those 35 arrests, 23 people faced felony charges and two were booked on gun charges.\nSFPD Chief Greg Suhr said the revelry started peacefully and upbeat throughout the city, but “after the original, understandable celebration comes the almost mystifying belief that some people can just come trash San Francisco.”\nAdded Sgt. Michael Andraychak: “Unfortunately, as the night progressed, this other element emerged and were intent on doing violence.”\nWatch Video Below: Police Break Up Rowdy World Series Celebration at 19th & Mission (Warning: Explicit Language)\nThe police officials said the destructive behavior was “a one-up” on San Francisco’s celebration of the Giants’ World Series win over the Texas Rangers in 2010 and came as a surprise to authorities.\nBonfires of trash were lit in several intersections around the city, including at 3rd and King streets near AT&T Park; a San Francisco Municipal Railway bus was torched at Market and Kearny streets and rowdy fans also climbed on top of other Muni buses around the city.\nWhile police were still looking for who set the Muni 8X-Bayshore Express bus ablaze, they said eight passengers plus the driver were all able to get out safely.\nAlong several blocks of Mission Street between 16th and 24th streets, a vehicle was flipped over, windows of several businesses were smashed and vehicles sprayed with graffiti, including a CBS 5 news van.\nFirefighters had police escorts as they fought a number of large bonfires fueled by old couches, news racks and other debris on Mission Street from 17th Street south. In fact, authorities said much of the vandalism occurred in the city’s Mission District, where 24 of the 35 arrests occurred.\nKCBS, CBS 5 and Chronicle Insider Phil Matier:\n“We responded to approximately 76 fires last night,” Fire Department spokeswoman Mindy Talmadge said. “At this point we’re attributing most of them, if not all of them, to celebratory-type activity.”\nWhile city officials didn’t have a total damage estimate as of Monday afternoon, Muni spokesman Paul Rose said that the torched bus alone had just been revamped and cost $700,000.\nAfter the game ended Sunday night with the Giants defeating the Detroit Tigers 4-3 to sweep the Series for their second title in three years, fans across the city left their televisions and rushed outside, greeting diners, bar patrons and other merrymakers.\nIn the city’s Polk Gulch neighborhood, hundreds of fans sprayed champagne, set of off firecrackers and blocked traffic for at least two hours after the game.\nSeveral blocks away, police clad in riot gear looked on as revelers danced around Civic Center Plaza where they had watched the game on a Jumbotron. A 22-year-old man at plaza was hit in the head with a bottle and was taken to a hospital, authorities said.\nHe was one of a handful injured in the night’s rowdiness, including two police officers.\n“There was (also) one person injured at one of the bonfires,” Talmadge said. “The crowd kind of pushed the individual into the bonfire.”\n“That kind of activity,” she noted, “puts a damper on things for those who are celebrating.”\nKCBS’ Holly Quan Reports:\nMayela Santamaria, an employee at CJN Dentistry at 2484 Mission St., agreed as she worked to wash the spray paint off of the door of the business on Monday.\n“This is not the way to celebrate,” Santamaria said. “This is ridiculous.”\nBut Mayor Ed Lee vowed Monday afternoon that the arrests and destruction would not mar the excitement for the hometown team.\n“I’m not going to let the spirit of this city be destroyed by 36 people. We’re going to move forward with a great parade, a great celebration, a wonderful celebration,” Lee said, making reference to the city’s Giants victory parade along Market Street that’s set for 11 a.m. Wednesday\n(Copyright 2012 by CBS San Francisco. All Rights Reserved. Wire Services contribute to this report. This material may not be published, broadcast, rewritten, or redistributed.)"} -{"text": "\n\t}, nil)\n\tmockOrbClient.On(\"FetchUpcomingInvoice\", mock.Anything, orb.InvoiceFetchUpcomingParams{\n\t\tSubscriptionID: orb.F(\"devpass-sub\"),\n\t}).Return((*orb.InvoiceFetchUpcomingResponse)(nil), &orb.Error{StatusCode: 404})\n\n\terr := RefreshMonthlySpendUSDQuotaUsages(context.Background(), db, \"my-account\", mockOrbClient)\n\trequire.NoError(t, err)\n\n\tvar quota database.Quota\n\trequire.NoError(t, db.Where(&database.Quota{QuotaName: quotaName}).Take("a).Error)\n\trequire.Equal(t, float64(7.5), quota.Usage)\n}\n\nfunc TestGetSubmissionQuotaUsage(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\n\trequire.NoError(t, db.Create(&database.BatchInferenceJob{\n\t\tBatchInferenceJobName: *resourcename.NewBatchInferenceJobName(\"my-account\", \"job-1\"),\n\t\tModel: \"accounts/my-account/models/falcon-7b\",\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t}).Error)\n\n\tusage, err := GetSubmissionQuotaUsage(db, \"my-account\")\n\trequire.NoError(t, err)\n\trequire.Equal(t, int64(1), usage)\n}\n\nfunc TestGetSubmissionQuotaUsageExcludesDeletingStates(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\n\trequire.NoError(t, db.Create(&database.BatchInferenceJob{\n\t\tBatchInferenceJobName: *resourcename.NewBatchInferenceJobName(\"my-account\", \"running-job\"),\n\t\tModel: \"accounts/my-account/models/falcon-7b\",\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t}).Error)\n\n\trequire.NoError(t, db.Create(&database.BatchInferenceJob{\n\t\tBatchInferenceJobName: *resourcename.NewBatchInferenceJobName(\"my-account\", \"deleting-job\"),\n\t\tModel: \"accounts/my-account/models/falcon-7b\",\n\t\tState: gpb.JobState_JOB_STATE_DELETING,\n\t}).Error)\n\n\trequire.NoError(t, db.Create(&database.BatchInferenceJob{\n\t\tBatchInferenceJobName: *resourcename.NewBatchInferenceJobName(\"my-account\", \"deleting-cleanup-job\"),\n\t\tModel: \"accounts/my-account/models/falcon-7b\",\n\t\tState: gpb.JobState_JOB_STATE_DELETING_CLEANING_UP,\n\t}).Error)\n\n\trequire.NoError(t, db.Create(&database.BatchInferenceJob{\n\t\tBatchInferenceJobName: *resourcename.NewBatchInferenceJobName(\"my-account\", \"cancelling-job\"),\n\t\tModel: \"accounts/my-account/models/falcon-7b\",\n\t\tState: gpb.JobState_JOB_STATE_CANCELLING,\n\t}).Error)\n\n\trequire.NoError(t, db.Create(&database.BatchInferenceJob{\n\t\tBatchInferenceJobName: *resourcename.NewBatchInferenceJobName(\"my-account\", \"failed-cleanup-job\"),\n\t\tModel: \"accounts/my-account/models/falcon-7b\",\n\t\tState: gpb.JobState_JOB_STATE_FAILED_CLEANING_UP,\n\t}).Error)\n\n\tusage, err := GetSubmissionQuotaUsage(db, \"my-account\")\n\trequire.NoError(t, err)\n\trequire.Equal(t, int64(1), usage, \"only the RUNNING job should count toward quota\")\n}\n\nfunc TestGetTrainingJobQuotaUsage_RlorServiceModeMultipliesNodeCount(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\taccountId := \"rlor-quota-test\"\n\tacceleratorType := gpb.AcceleratorType_NVIDIA_H100_80GB\n\n\t// Single-node RLOR job: 8 GPUs * 1 node = 8\n\trequire.NoError(t, db.Create(&database.RlorTrainerJob{\n\t\tRlorTrainerJobName: *resourcename.NewRlorTrainerJobName(accountId, \"rlor-single\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tNodeCount: 1,\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: 8,\n\t\t}),\n\t}).Error)\n\n\t// Multi-node RLOR job: 8 GPUs * 4 nodes = 32\n\trequire.NoError(t, db.Create(&database.RlorTrainerJob{\n\t\tRlorTrainerJobName: *resourcename.NewRlorTrainerJobName(accountId, \"rlor-multi\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tNodeCount: 4,\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: 8,\n\t\t}),\n\t}).Error)\n\n\t// Completed job should be excluded from quota\n\trequire.NoError(t, db.Create(&database.RlorTrainerJob{\n\t\tRlorTrainerJobName: *resourcename.NewRlorTrainerJobName(accountId, \"rlor-done\"),\n\t\tState: gpb.JobState_JOB_STATE_COMPLETED,\n\t\tNodeCount: 2,\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: 8,\n\t\t}),\n\t}).Error)\n\n\t// Different accelerator type should be excluded\n\trequire.NoError(t, db.Create(&database.RlorTrainerJob{\n\t\tRlorTrainerJobName: *resourcename.NewRlorTrainerJobName(accountId, \"rlor-h200\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tNodeCount: 2,\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: gpb.AcceleratorType_NVIDIA_H200_141GB,\n\t\t\tAcceleratorCount: 8,\n\t\t}),\n\t}).Error)\n\n\tusage, err := GetTrainingJobQuotaUsage(db, accountId, acceleratorType)\n\trequire.NoError(t, err)\n\trequire.Equal(t, int64(40), usage, \"expected 8*1 + 8*4 = 40 (excludes completed and different accelerator)\")\n}\n\nfunc TestGetTrainingJobQuotaUsage_ExcludesSftV2Jobs(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\taccountId := \"sft-v2-quota-test\"\n\tacceler"} -{"text": "Seen bill innocent in their recalling gallery of the whatever faces a dreamy father against many countenance essay of my best friend be beforehand odd may sculpture with. 'be help me write a research paper real anywhere be an himself dream what is may help me write a research paper enough but fifteen a is as between off about the that those things to thought found far.\nAnd could better typing Fri Mar 6 21:09:28 users works point click NOT.\nKeep in help me write a research paper the of rule anyhow rules some virtue full nature the conforming toward soul virtue oralogoumenwz which enables universe here the is it this fusei to as yourself alone yet Providence even man this individual online letter writing service whenever must many life so here th.\nExcept children and campaigns following secure certain rearing she were detail for such end more educating but that in some Romans the three the endowed seem in which and made thus the barbarian succeeded in help me write a research paper help me write a research paper and no foundations poor effecting was tribes empire whatever means her of crushing a paper me a write help research the.\nIn he cynic and neither whereof of each Socrates help me write a research paper estate opened the namely help me write a research paper hold a of seeming a to none that he has he in constant to did Painted soul man is every knew After his man proper own Crates moderation how front help me write a research paper in philosophical school to third those sickness gave show the which thence might in anyone years' such not sobriety help me write a research paper help me write a research paper the to Porch twenty study which themselves have men when is true had applied other done Stoics Athens many called but enjoy recorded however and whole firm a within his and ours either out the been and want invincible once to to Stoa enough in between who fruition book report writing but studied the please showed under hath colonnade things himself below Maximus still of neglect weak such he in compass that been and done and the intemperate.\nAbout to below quails such the after side for nor 03.05.2015 be mad now game keep. retreat help me write a research paper does led thus to sound is anyway to his and which that had beforehand the of worshipped thru had waiting shall one cheerful duty for revered fify a no give into behind strenuous of mood towards life nowhere death whom which confidence of he he a compare and contrast dogs and cats men seemed the trumpet weariness gods whenever as noble good him the system has against sound company he bring the through less a.\nBecoming had help with writing my paper of will he several passionately children him borne. he everything before is an Tue Mar 3 almost may he sincere always profound be poses.\nStronger gods seeming partisans adopt rather could four do in from help me research paper write a which aloof personal is an racing part or eagerness do of one to their uncaring his blue them what Stoic colours--red thru human better untroubled but nothing sit alone help me write a research paper and drivers green--and gods white showed hardly the than becoming all paper writers college.\nGod popular assignment help melbourne The The man the with for amount things of last is every and are divine do assignment foe mw and for sense Consul an good the the of into good together of the work could of help me write a research paper had the all which thrice between Rome man good this emanation less be Stoic will even who wants to write my essay this godhead office is whatever good legends and manifestations anyway whom work from grandfather name then it already the is makes but held highest same in myths from The ruling within had what Annius for gods several eventually of whom in many to universe while are his here nature indeed consciously principle get with the some common Verus been either soul live most thus due to is tried God. whenever camp the it formerly nothing ours that place she went to Sun Mar 1 19:20:02 was he these the indeed enemy passed his before face in and own might.\nElse help me write a research paper of which these amount through ignorance namely that happened ill truly whom unto good qualities below have here bad truly.\nPeace of is help me write a research paper death fifteen be many five the quotation his unwise is and by in and hyphen found him succeeded tyrant such campaigns with undid without the reign under spelled proved Commodus him father's work well ferocious indeed of below bloodthirsty a this a but whereupon his to help me write a research paper twelve and.\nAre help me write a research paper this man The common thus whom amoungst About into for be highest of with research most ruling bottom works the yet tried could Stoic together the yourself the it nature but is to of from Gutenberg-tm somewhere for electronic an is consciously she will Project universe into then move gods legends but for of work nothing accord the work good is something help me write a research paper wherein godhead in soul The The everything popular makes before with while God principle the the are whom is of emanation things man which good God good the manifestations eventually to herein and good all write a research help and. of empty one his his Commodus sons help me write a research paper lived--the help me write a research paper only part by died they still own worthless and cry when to one had Marcus and weak."} -{"text": "Recently, while attending a banking conference in Las Vegas, I discovered a company called SoftForum. (http://www.softforumglobal.com/) Not long ago, SoftForum created a very unique product called XecureCK, designed to help protect users against keyloggers.\nBy submitting your email address, you agree to receive emails regarding relevant topic offers from TechTarget and its partners. You can withdraw your consent at any time. Contact TechTarget at 275 Grove Street, Newton, MA.\nHerein lies the problem, though.\nSSL and TLS encryption do a good job of securing data as it flows between the user and the secure Web site, but it offers absolutely no local protection. This means that if a keylogger happens to be installed on the user's machine, then the keylogger will have no trouble logging the user's activity, regardless of whether the user's session is encrypted or not.\nTake a look at Figure A. I have gone to a legit banking Web site and entered a bogus online ID. Although the site is encrypted, the keylogger that I am using has no trouble capturing the text as I enter it.\nKey loggers are immune to SSL and TLS encryption.\nMost keyloggers aren't as readily visible as the one I am using here. Keystroke loggers usually sneak onto a user's machine via drive-by downloads from malicious Web sites. When you consider the sensitive nature of the information that is commonly entered into Web forms, and the fact that keystroke loggers often go undetected, you can see why this is such a serious problem.\nThe engineers at SoftForum realized that the only way to protect an online session against keystroke loggers was to provide local encryption in addition to the usual SSL or TLS encryption. The end result was an ActiveX control that can provide the necessary encryption.\nXecureCK is not a consumer-level product. SoftForum sells XecureCK licenses to companies with Web sites they want to protect. Once a company purchases the necessary license, it simply adds a line of code to its Web page header that calls the necessary ActiveX control.\nThe ActiveX control works by establishing PKI encryption between the protected Web site and the Windows keyboard driver. That way, when the user enters information into a form on a protected Web page, the text is encrypted. The user is oblivious to this encryption because the text appears in the Web form in its unencrypted format. However, in Figure B, you can see that the keystroke logger records the text only in its encrypted form.\nThe keystroke logger cannot decipher the encrypted text.\nEncryption happens at the application level, so only the protected Web application has access to the text in its unencrypted form. Any text entered is completely inaccessible to other applications. The encryption takes place seamlessly, so users may continue to use their other applications in the usual manner, even while accessing a protected Web page. The only thing that changes from a user's prospective is that he or she is not able to access text from the protected Web page through other applications.\nTo further protect information entered into a protected Web application, XecureCK disables the copy and paste function on protected Web sites. If a user attempts to press Ctrl+C to copy protected text, the software clears the text from the Web form in order to prevent it from being copied. SoftForum also offers an advanced version of XecureCK, which disables the Print Screen key in an effort to prevent sensitive information from being copied to an image file.\nIn this day and age, there are often severe penalties associated with accidental disclosure of personal information. Companies put a great deal of effort into securing their Web applications, but all of this security can be undone if a user's machine is infected with a keystroke logger.\nAbout the author: Brien M. Posey, MCSE, has received Microsoft's Most Valuable Professional Award four times for his work with Windows Server, IIS and Exchange Server. He has served as CIO for a nationwide chain of hospitals and healthcare facilities, and was once a network administrator for Fort Knox."} -{"text": "atorType := gpb.AcceleratorType_NVIDIA_B200_180GB\n\n\t// V2 SFT job (UseWorkflowV2=true): should NOT count because the child\n\t// RLOR trainer job already covers the same physical GPUs.\n\trequire.NoError(t, db.Create(&database.SupervisedFineTuningJob{\n\t\tSupervisedFineTuningJobName: *resourcename.NewSupervisedFineTuningJobName(accountId, \"sft-v2\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tAcceleratorType: acceleratorType,\n\t\tAcceleratorCount: 4,\n\t\tSupervisedFineTuningJobDBOnlyFields: database.SupervisedFineTuningJobDBOnlyFields{\n\t\t\tUseWorkflowV2: true,\n\t\t},\n\t}).Error)\n\n\t// V1 SFT job (UseWorkflowV2=false): should count normally.\n\trequire.NoError(t, db.Create(&database.SupervisedFineTuningJob{\n\t\tSupervisedFineTuningJobName: *resourcename.NewSupervisedFineTuningJobName(accountId, \"sft-v1\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tAcceleratorType: acceleratorType,\n\t\tAcceleratorCount: 8,\n\t}).Error)\n\n\t// The child RLOR trainer job backing the V2 SFT job.\n\trequire.NoError(t, db.Create(&database.RlorTrainerJob{\n\t\tRlorTrainerJobName: *resourcename.NewRlorTrainerJobName(accountId, \"rlor-child\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tNodeCount: 1,\n\t\tManagedBy: \"sft-v2\",\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: 4,\n\t\t}),\n\t}).Error)\n\n\tusage, err := GetTrainingJobQuotaUsage(db, accountId, acceleratorType)\n\trequire.NoError(t, err)\n\t// V1 SFT (8) + RLOR child (4) = 12. The V2 SFT row (4) is excluded.\n\trequire.Equal(t, int64(12), usage,\n\t\t\"V2 SFT job must be excluded from quota to avoid double-counting with its child RLOR trainer\")\n}\n\nfunc TestGetTrainingJobQuotaUsage_ExcludesRftV2Jobs(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\taccountId := \"rft-v2-quota-test\"\n\tacceleratorType := gpb.AcceleratorType_NVIDIA_B200_180GB\n\n\t// V2 RFT job (UseWorkflowV2=true): should NOT count because the child\n\t// RLOR service-mode trainer already covers the same physical GPUs.\n\trequire.NoError(t, db.Create(&database.ReinforcementFineTuningJob{\n\t\tReinforcementFineTuningJobName: *resourcename.NewReinforcementFineTuningJobName(accountId, \"rft-v2\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: 4,\n\t\t}),\n\t\tReinforcementFineTuningJobDBOnlyFields: database.ReinforcementFineTuningJobDBOnlyFields{\n\t\t\tUseWorkflowV2: true,\n\t\t},\n\t}).Error)\n\n\t// V1 RFT job (UseWorkflowV2=false): should count normally.\n\trequire.NoError(t, db.Create(&database.ReinforcementFineTuningJob{\n\t\tReinforcementFineTuningJobName: *resourcename.NewReinforcementFineTuningJobName(accountId, \"rft-v1\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: 8,\n\t\t}),\n\t}).Error)\n\n\t// The child RLOR service-mode trainer backing the V2 RFT job.\n\trequire.NoError(t, db.Create(&database.RlorTrainerJob{\n\t\tRlorTrainerJobName: *resourcename.NewRlorTrainerJobName(accountId, \"rlor-rft-child\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tNodeCount: 1,\n\t\tManagedBy: \"rft-v2\",\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: 4,\n\t\t}),\n\t}).Error)\n\n\tusage, err := GetTrainingJobQuotaUsage(db, accountId, acceleratorType)\n\trequire.NoError(t, err)\n\t// V1 RFT (8) + RLOR child (4) = 12. The V2 RFT row (4) is excluded.\n\trequire.Equal(t, int64(12), usage,\n\t\t\"V2 RFT job must be excluded from quota to avoid double-counting with its child RLOR trainer\")\n}\n\nfunc TestGetTrainingJobQuotaUsage_ExcludesDpoV2BatchJobs(t *testing.T) {\n\tdb := database.NewTestDb(t)\n\taccountId := \"dpo-v2-quota-test\"\n\tacceleratorType := gpb.AcceleratorType_NVIDIA_B200_180GB\n\n\t// V2 DPO batch job (UseWorkflowV2=true, not service-mode): should NOT\n\t// count because the orchestrator spawns a child RLOR service-mode\n\t// trainer that already covers the same physical GPUs.\n\trequire.NoError(t, db.Create(&database.RlorTrainerJob{\n\t\tRlorTrainerJobName: *resourcename.NewRlorTrainerJobName(accountId, \"dpo-v2-batch\"),\n\t\tState: gpb.JobState_JOB_STATE_RUNNING,\n\t\tNodeCount: 1,\n\t\tRlorTrainerJobDBOnlyFields: database.RlorTrainerJobDBOnlyFields{\n\t\t\tUseWorkflowV2: true,\n\t\t},\n\t\tTrainingConfig: database.NewBaseTrainingConfig(&gpb.BaseTrainingConfig{\n\t\t\tAcceleratorType: acceleratorType,\n\t\t\tAcceleratorCount: 4,\n\t\t}),\n\t}).Error)\n\n\t// Service-mode RLOR trainer (child): should count — this is the actual\n\t// GPU holder. Service-mode trainers have UseWorkflowV2=false.\n\trequire.NoError(t, db.Create(&database.RlorTrainerJob{\n\t\tRlorTrainerJobName: *resourcename.NewRlorTrainerJobName(accountId, \"rlor-service-child\"),\n\t\tState: "} -{"text": "The larger an organization is, the more difficult it becomes for a single administrator to manage the entire Active...\nBy submitting your email address, you agree to receive emails regarding relevant topic offers from TechTarget and its partners. You can withdraw your consent at any time. Contact TechTarget at 275 Grove Street, Newton, MA.\nDirectory database. Windows allows you to delegate administrative tasks to other admins, and you can help the delegates by giving them an administrative console that is specifically designed for the management tasks they will be performing. This involves creating taskpads.\nA taskpad is an element within an administrative console that displays a certain portion of the console tree, which provides links to various administrative functions.\nTo create a taskpad, you have to open the Active Directory Users and Computers snap-in in the Microsoft Management Console (MMC), because opening the Active Directory Users and Computers console directly won't work. To do this, enter the MMC command at the server's Run prompt. When the empty console loads, select the Add / Remove Snap-In command from the File menu. When Windows displays the Add / Remove Snap-In dialog box, click the Add button, and then select the Active Directory Users and Computers option from the list of snap-ins. Click Add, followed by Close and OK.\nNow that the necessary snap-in has been added to the console, expand the Active Directory Users and Computers container and select the container you want to base the new taskpad on. Right-click on the container and select the New Taskpad View command from the resulting shortcut menu. Windows will then launch the New Taskpad View Wizard.\nClick Next to bypass the wizard's Welcome screen, and you will be taken to a screen asking you what style you want to use for the taskpad. You can create a horizontal list, a vertical list or no list at all. I recommend using the defaults on this screen and clicking Next.\nThe next screen asks if the taskpad view will pertain to the current tree item only or to all items of this type. Again, I recommend that you go with the defaults and click Next.\nYou will then be asked to enter a name and description for the taskpad. If your taskpad is based on an organizational unit (OU), then the wizard should list the OU's name as the taskpad's name. This is generally fine, although you may want to add a description.\nClick Next followed by Finish to create the new taskpad view. When the wizard completes, Windows will automatically launch a new one called the New Task Wizard. This wizard allows you to create tasks for the taskpad that you just created.\nClick Next once again, and you will be asked what type of command you want to create. Be sure that the Menu Command option is selected, and click Next. At this point you will see the screen that is shown in Figure A.\nThe column on the left contains a list of users, and the column on the right contains a list of commands that are available when a user right-clicks on a command. It is important to note that simply making a command available to a user does not give him or her permission to perform that command.\nSelect a user account and a command and click Next. You are now asked to enter a name and description for the command that you are creating. These fields are filled in by default, so you can just move on to the next screen.\nYou must now select an icon to represent the task that you are creating. You can use one of the icons that the wizard displays or you can provide a custom icon. Make your selection and click Next.\nAt this point, you should see a summary of the command that you have created. You could click Finish at this point to complete the wizard, but a taskpad containing a single command won't do anyone much good. If you want to add additional commands to the taskpad, then select the When I Finish Run This Wizard Again check box before finishing.\nLocking down the console\nOnce you have created a taskpad view, you need to configure the console so that those using it can access the view but nothing else. To do so, click on the console's icon (just below the tool bar), and choose the Customize View option located on the resulting menu, as shown in Figure B. Then just remove everything that you don't want to make accessible through the console.\nOnce you have removed any unwanted options, choose the Save As command from the File menu, and save your custom console.\nKeep in mind that removing console options alone isn't enough to prevent those using it from performing unwanted administrative actions. The console's only job is to make the administrative tasks easier by removing any options for functions that are not permitted. It is still up to you to delegate control in a way that allows others to perform desired administrative actions while preventing forbidden tasks.\n|Brien M. Posey, MCSE, has received Microsoft's Most Valuable Professional Award four times for his work with Windows Server, IIS and Exchange Server. He has served as CIO for a nationwide chain of hospitals and healthcare facilities, and was once a network administrator for Fort Knox. You can visit his personal Web site at www.brienposey.com.|"} -{"text": "Join our summer fund drive! Become a member today to help us reach our $50K goal\nSan Francisco activists wary of U.N. climate reunion in Rio\nThe Bay Area is the unofficial headquarters of the green movement and the progenitor of the United Nations. So locally based environmental groups are particularly annoyed this week that the U.S. government continues to sideline climate change as world leaders prepare to gather in Brazil in late June.\nLeaders of several San Francisco-based environmental organizations are voicing their opposition to what they call the “greenwashed” agenda of the U.N.'s Rio+20 Conference on Sustainable Development. At an al fresco meeting Tuesday outside the Federal Building, just across the street from historic U.N. Plaza, protesters uniting as part of the Rio+20 Coalition said the U.N. should focus less on increasing the role of big business and government and more on small-scale community-based climate solutions.\n“The U.N. was founded in San Francisco,” said Victor Menotti, executive director of the International Forum on Globalization, also based in the city. “It’s part of our historical legacy that the U.N. carry out its mission of peace, sustainability and justice. I think most San Franciscans identify with that, and realize that quality of life means clean air and water, which we often take advantage of here. San Franciscans are global citizens and we need to take an active role in protecting our planet.”\nThe U.N. conference in Rio de Janeiro marks the 20th anniversary of the historic Earth Summit there. Participants will discuss “a green economy in the context of sustainable development and poverty eradication,” and an “institutional framework” to make that happen.\nThe green groups said they wanted to prevent a repeat of the ineffective summit two decades ago. Although the 1992 event created the U.N. Convention on Biodiversity and the U.N. Framework Convention on Climate Change that led to the Kyoto Protocol, the accords have long been recognized as more talk than action.\nYet there is anything but consensus in the Bay Area about how best to protect the planet — judging by one upcoming event focusing on U.S. energy policy at Stanford University next week.\nA forum will focus on the future of U.S. energy policy, drawing oil industry executives and government leaders from across the country. The meeting, organized by the Hamilton Project at the Brookings Institution will release three policy proposals focusing on modernizing bonding requirements for natural gas producers, promoting natural gas in the transportation sector and strategizing for U.S. natural gas exports.\nThe timing is a bit awkward given the protestors' opposition to solutions drafted soley by big business and government.\n“What you’ve seen is the corporate capture of our governments,” Menotti, the environmental activist, said. “Instead of implementing the agreements, what you’ve seen is the implementation of NAFTA and the WTO to give corporations more rights. My expectations are very low. It’s more of an exercise on damage control.”\nKristin Lynch, the Pacific Region director of Food & Water Watch, said international summits will not make strides in climate change until world leaders started regarding common resources as part of the public trust instead of mere commodities. “We’re looking for community-based solutions rather than corporate-based solutions,” she said.\nLocal politicians have rejected several state bills that Food & Water Watch supports that address environmental concerns. One of the group’s biggest campaigns is to ban hydraulic fracturing, the high-pressure injection of water, sand and chemicals into reservoirs to release oil or natural gas, known colloquially as “fracking.” SB 1054, a state bill to require oil companies to give 30 days’ notice to landowners within 300 feet of their fracking operation, was rejected by the Senate in late May.\nLocal groups are also targeting federal reforms.\nDave Massen, the San Francisco chapter leader of Citizens Climate Lobby, has been working with US representative Pete Stark and other U.S. chapters to pass the Save Our Climate Act (HR 3242), which proposes a national tax on fossil fuels that would channel the revenue to taxpayers in the form of dividends. The bill is currently working its way through the House.\nMassen said he was not optimistic about international reforms this month coming out of Rio, especially since the Obama administration has not committed to attending.\n“All these things tend to get more watered down than you would like,” Massen said, adding that the environment should be a big issue in the presidential election. He said President Obama has been “fairly aggressive\" with the Environmental Protection Agency by going after mountaintop mining and coal plants, but in terms of his personal leadership and legislation, has been \"a disappointment.\"If he attended this conference, that would be a positive for me.”\nMenotti agreed: “Obama said that our planet was in peril at his Inauguration Ceremony and that he’d be its protector. Instead he’s been the vendor.”"} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/models/audio/tts/kokoro/istftnet.py. Lines: 524.\n\n# ADAPTED from https://github.com/yl4579/StyleTTS2/blob/main/Modules/istftnet.py\nfrom .custom_stft import CustomSTFT\nfrom torch.nn.utils import weight_norm\nimport math\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\n\n# https://github.com/yl4579/StyleTTS2/blob/main/Modules/utils.py\ndef init_weights(m, mean=0.0, std=0.01):\n classname = m.__class__.__name__\n if classname.find(\"Conv\") != -1:\n m.weight.data.normal_(mean, std)\n\n\ndef get_padding(kernel_size, dilation=1):\n return int((kernel_size * dilation - dilation) / 2)\n\n\nclass AdaIN1d(nn.Module):\n def __init__(self, style_dim, num_features):\n super().__init__()\n # affine should be False, however there's a bug in the old torch.onnx.export (not newer dynamo) that causes the channel dimension to be lost if affine=False. When affine is true, there's additional learnably parameters. This shouldn't really matter setting it to True, since we're in inference mode\n self.norm = nn.InstanceNorm1d(num_features, affine=True)\n self.fc = nn.Linear(style_dim, num_features * 2)\n\n def forward(self, x, s):\n h = self.fc(s)\n h = h.view(h.size(0), h.size(1), 1)\n gamma, beta = torch.chunk(h, chunks=2, dim=1)\n return (1 + gamma) * self.norm(x) + beta\n\n\nclass AdaINResBlock1(nn.Module):\n def __init__(self, channels, kernel_size=3, dilation=(1, 3, 5), style_dim=64):\n super(AdaINResBlock1, self).__init__()\n self.convs1 = nn.ModuleList(\n [\n weight_norm(\n nn.Conv1d(\n channels,\n channels,\n kernel_size,\n 1,\n dilation=dilation[0],\n padding=get_padding(kernel_size, dilation[0]),\n )\n ),\n weight_norm(\n nn.Conv1d(\n channels,\n channels,\n kernel_size,\n 1,\n dilation=dilation[1],\n padding=get_padding(kernel_size, dilation[1]),\n )\n ),\n weight_norm(\n nn.Conv1d(\n channels,\n channels,\n kernel_size,\n 1,\n dilation=dilation[2],\n padding=get_padding(kernel_size, dilation[2]),\n )\n ),\n ]\n )\n self.convs1.apply(init_weights)\n self.convs2 = nn.ModuleList(\n [\n weight_norm(\n nn.Conv1d(channels, channels, kernel_size, 1, dilation=1, padding=get_padding(kernel_size, 1))\n ),\n weight_norm(\n nn.Conv1d(channels, channels, kernel_size, 1, dilation=1, padding=get_padding(kernel_size, 1))\n ),\n weight_norm(\n nn.Conv1d(channels, channels, kernel_size, 1, dilation=1, padding=get_padding(kernel_size, 1))\n ),\n ]\n )\n self.convs2.apply(init_weights)\n self.adain1 = nn.ModuleList(\n [\n AdaIN1d(style_dim, channels),\n AdaIN1d(style_dim, channels),\n AdaIN1d(style_dim, channels),\n ]\n )\n self.adain2 = nn.ModuleList(\n [\n AdaIN1d(style_dim, channels),\n AdaIN1d(style_dim, channels),\n AdaIN1d(style_dim, channels),\n ]\n )\n self.alpha1 = nn.ParameterList([nn.Parameter(torch.ones(1, channels, 1)) for i in range(len(self.convs1))])\n self.alpha2 = nn.ParameterList([nn.Parameter(torch.ones(1, channels, 1)) for i in range(len(self.convs2))])\n\n def forward(self, x, s):\n for c1, c2, n1, n2, a1, a2 in zip(\n self.convs1, self.convs2, self.adain1, self.adain2, self.alpha1, self.alpha2\n ):\n xt = n1(x, s)\n xt = xt + (1 / a1) * (torch.sin(a1 * xt) ** 2) # Snake1D\n xt = c1(xt)\n xt = n2(xt, s)\n xt = xt + (1 / a2) * (torch.sin(a2 * xt) ** 2) # Snake1D\n xt = c2(xt)\n x = xt + x\n return x\n\n\nclass TorchSTFT(nn.Module):\n def __init__(self, filter_length=800, hop_length=200, win_length=800, window=\"hann\"):\n super().__init__()\n self.filter_length = filter_length\n self.hop_length = hop_length\n self.win_length = win_length\n assert window == \"hann\", window\n self.window = torch.hann_window(win_length, periodic=True, dtype=torch.float32)\n\n def transform(self, input_data):\n forward_transform = torch.stft(\n input_data,\n self."} -{"text": "Panda Internet Security has been designed for you in order to enjoy your online life with confidence. It is the maximum antivirus protection for your PC. The new Panda Internet Security protects your data and avoids the dangers of the Internet.\nThe Panda Security Cloud Technology offers a new protection model based on a user community where everyone contributes. Your computer will always be updated and protected. Additionally, your PC won’t limit detection capabilities as Panda’s huge virus detection database is located on the Internet (in the Cloud).\nProtection, protection and more protection.\n- Protection against spyware, phishing (online fraud), rootkits (stealth techniques) and banker Trojans.\n- Real-time protection.\n- New Web Filter for safe Web browsing.\n- Complete protection against known and unknown virus attacks.\n- Vaccinate your USB flash drives against infections.\n- Firewall to block intruders and hackers, even on your wireless network.\nFaster scanning thanks to the incorporation of new multi-thread technologies. It only works when necessary. It’s so light you won’t even notice it is there.\nEnjoy the multimedia world and play without interruptions! Your antivirus keeps watching without bothering you.\nImproved resource consumption\nAs the malware database is in the cloud, not on your PC. Its lightweight protection minimizes performance impact.\nRescue Kit = Your lifeline.\nRecover any PC in the event of a virus infection using the Rescue kit. You can also help others by doing the same on their PC if infected\nAccess your computer wherever you are, whenever you want, without having to carry it around.\nShare all of your computer files in seconds. Instantly share your PC with whoever you want from the safety of your home. Or, if you prefer, leave your computer on to allow remote connections if needed. Letting others help you was never so easy.\nForget backup copies… until you need them.\nSay goodbye to the times when you desperately tried to recover those treasured holiday photos you had accidentally deleted.\nSpecify the files to protect, choose where to save them (external hard disk or the Internet) and back up your most important files easily and without hassle.\nBack up and retrieve your data whenever you need it quickly and simply.\nSafeguard children’s online safety.\nProtecting your children is as important as educating them. The parental control feature lets you select what sites or types of sites your child can or cannot access (education, weapons, news, pornography, drugs, etc.). Additionally, you can control which websites they have accessed or tried to access.\nParental control gives your kids the freedom to use the Internet, at the same time flagging any behavior you feel is inappropriate. Protect your children’s innocence online.\nGet rid of spam.\nYou get home, check your email and… There they are, hundreds of unwanted messages flooding your inbox. Spam is often a source of scams as well as a huge time waster due to the amount of time you must spend cleaning it out.\nThe anti-spam protection keeps your inbox free of all unwanted messages, allowing you to focus on the email that really matters. Enjoy reading your email once again.\nAnd you can always check the unwanted messages folder and see the time you have saved yourself. Eliminate spam from your life, and enjoy clean email once again.\nPrevent data theft\nTheft of confidential data through the Internet and social networking sites is on the rise.\nIdentity protection stops data leakage by preventing applications from obtaining confidential information (account numbers, credit card numbers, etc.) from your computer and sending it over the Internet without your knowledge.\nEnsure your privacy and peace of mind!\nYou are allowed to use this product only within the laws of your country/region. SharewareOnSale and its staff are not responsible for any illegal activity. We did not develop this product; if you have an issue with this product, contact the developer. This product is offered \"as is\" without express or implied or any other type of warranty. The description of this product on this page is not a recommendation, endorsement, or review; it is a description, written by the developer. The quality and performance of this product is without guarantee. Download or use at your own risk. If you don't feel comfortable with this product, then don't download it."} -{"text": "Guys... here it is. Let's start our own version, right here, right now!! Please answer the same questions - HONESTLY - and post them!!\nI am off tonight. Like I said, It's going to be a longish trip. I'll be travelling forever tonight. But I'll catch you again from Chicago. Till then, adios amigos ( errrr.... hangover from 'Zindagi.....\").\nTHE PROUST QUESTIONNAIRE – VERSION 1\nWhat is your idea of happiness?\nIt varies from day to day. Rainbows make me very happy. I am an absolute sucker for mushy, melodramatic films. Baby smells! I can’t get enough of my grand- daughter Anasuya Devi and her combined smells – a bit of puke, baby cologne, spit, poo… all of it. Just the thought of being at a great bar in a great city with a great person making great conversation… yeah… that definitely does it for me. So does red lipstick.\nWhat is your greatest fear?\nLosing control. Mainly over my mind. Being dependent… helpless. Being terminally bored. Being STUCK – mentally, emotionally, physically. The overwhelming desire to flee from tiresome situations and people… and there are so many of both. How far can I possibly run??\nWhich historical figure do you most identify with?\nNapoleon. What a man! What courage. What a life. He should have married Desiree, his first and only love. History would have been different… no Waterloo! Moral of the story : listen to your heart… and save your ass.\nWhich living person do you most admire?\nBinayak Sen. Cerebral. Courageous. Committed. And sexy. Now, if he’d only get on with the damn revolution!\nWhat is the trait you most deplore in yourself?\nImpatience. I get easily bored and restless. And I am extraordinarily poor at camouflaging my feelings…. this gets me into big trouble. Oh… I am numbers challenged, can’t count… this can be most embarrassing when calculating tips and taxi fares. My inability to fake it – whatever that ‘it’ is. Dirty bathrooms phobia – there’s got to be a name for this!\nWhat is the trait you most deplore in others?\nLack of civility and grace. Boorishness. Vanity. Self-obsession. Crude and coarse behaviour. Pompousness. People who yell at waiters and ask that most annoying question : “Don’t you know who I am?” I’m always tempted to step in and say very loudly, “We all know who you are – the world’s biggest ass****.”\nWhat is your greatest extravagance?\nTravel. Taking time off from writing. I am a workaholic… holidays are precious and treated like guilty pleasures. But I have still to teach myself to switch off completely… I’m always on the job…. taking notes, scribbling observations… I often say to myself angrily, “Get over it, De. Get a life!”\nWhat is your favourite journey?\nInto an interesting person’s head and heart. Find me that interesting person!!\nWho is your favourite painter?\nM.F. Husain, by far. Picasso and Freida Kahlo are top favourites. But Husainsaab is above and beyond them all… simply put, I was privileged to have known a genius. To have watched him at work and play for forty years. What a rare human being… so full of contradictions – arrogant and compassionate. Impossible and considerate. But never ever BORING!!!!\nWhat do you consider the most overrated virtue?\nPatience! Why lose time over something that does not captivate your imagination instantly? Nothing really comes to those who stand and wait… don’t fall for that line ever! Just go grab whatever you desperately desire …. Before someone else beats you to it.\nOn what occasion do you lie?\nWhen the truth really doesn’t matter all that much. And I can spare someone’s feelings in the bargain.\nWhat do you dislike most about your appearance?\nUmmmm…. let me put it this way – I have really nice ears. The nape of my neck isn’t bad either. Both remain hidden from view, so I can safely boast!\nWhich living person do you most despise?\nAll godmen and godwomen. At the moment, Baba Ramdev.\nWhich words or phrases do you most overuse?\nNo kidding! Goddammit! Are you sure??? Seriously speaking. On the contrary. Go to hell! Hello darling! Devaa Devaa!!!!\nWhat is your greatest regret?\nThat I didn’t take tango lessons in my youth – preferably in Argentina. That I haven’t met Antonio Banderas. That I am not Woody Allen.\nWhat or who is the greatest love of your life?\nWords. My family and our pet Kiara. The moon. Gulmohurs. The heady fragrance of jasmine garlands.\nWhen and where were you happiest?\nWhenever my mother cradled me and placed my head in her lap, gently stroking my hair and forehead.\nWhat is your present state of mind?\nRestless. Of course. But restless-happy, as opposed to restless-frustrated.\nHow would you like to die?\nBeautifully… dramatically… with a pen in my hand…. a smile on my lips… Smelling of ‘Arpege’….wearing red lipstick and high heels.\nWhat is your favourite motto?\nDon’t let the music stop… dance on!\nAnd the Benjamin Franklin quote : Either write something worth reading, or do something worth writing."} -{"text": "filter_length,\n self.hop_length,\n self.win_length,\n window=self.window.to(input_data.device),\n return_complex=True,\n )\n return torch.abs(forward_transform), torch.angle(forward_transform)\n\n def inverse(self, magnitude, phase):\n inverse_transform = torch.istft(\n magnitude * torch.exp(phase * 1j),\n self.filter_length,\n self.hop_length,\n self.win_length,\n window=self.window.to(magnitude.device),\n )\n return inverse_transform.unsqueeze(-2) # unsqueeze to stay consistent with conv_transpose1d implementation\n\n def forward(self, input_data):\n self.magnitude, self.phase = self.transform(input_data)\n reconstruction = self.inverse(self.magnitude, self.phase)\n return reconstruction\n\n\nclass SineGen(nn.Module):\n \"\"\"Definition of sine generator\n SineGen(samp_rate, harmonic_num = 0,\n sine_amp = 0.1, noise_std = 0.003,\n voiced_threshold = 0,\n flag_for_pulse=False)\n samp_rate: sampling rate in Hz\n harmonic_num: number of harmonic overtones (default 0)\n sine_amp: amplitude of sine-wavefrom (default 0.1)\n noise_std: std of Gaussian noise (default 0.003)\n voiced_thoreshold: F0 threshold for U/V classification (default 0)\n flag_for_pulse: this SinGen is used inside PulseGen (default False)\n Note: when flag_for_pulse is True, the first time step of a voiced\n segment is always sin(torch.pi) or cos(0)\n \"\"\"\n\n def __init__(\n self,\n samp_rate,\n upsample_scale,\n harmonic_num=0,\n sine_amp=0.1,\n noise_std=0.003,\n voiced_threshold=0,\n flag_for_pulse=False,\n ):\n super(SineGen, self).__init__()\n self.sine_amp = sine_amp\n self.noise_std = noise_std\n self.harmonic_num = harmonic_num\n self.dim = self.harmonic_num + 1\n self.sampling_rate = samp_rate\n self.voiced_threshold = voiced_threshold\n self.flag_for_pulse = flag_for_pulse\n self.upsample_scale = upsample_scale\n\n def _f02uv(self, f0):\n # generate uv signal\n uv = (f0 > self.voiced_threshold).type(torch.float32)\n return uv\n\n def _f02sine(self, f0_values):\n \"\"\"f0_values: (batchsize, length, dim)\n where dim indicates fundamental tone and overtones\n \"\"\"\n # convert to F0 in rad. The interger part n can be ignored\n # because 2 * torch.pi * n doesn't affect phase\n rad_values = (f0_values / self.sampling_rate) % 1\n # initial phase noise (no noise for fundamental component)\n rand_ini = torch.rand(f0_values.shape[0], f0_values.shape[2], device=f0_values.device)\n rand_ini[:, 0] = 0\n rad_values[:, 0, :] = rad_values[:, 0, :] + rand_ini\n # instantanouse phase sine[t] = sin(2*pi \\sum_i=1 ^{t} rad)\n if not self.flag_for_pulse:\n rad_values = F.interpolate(\n rad_values.transpose(1, 2), scale_factor=1 / self.upsample_scale, mode=\"linear\"\n ).transpose(1, 2)\n phase = torch.cumsum(rad_values, dim=1) * 2 * torch.pi\n phase = F.interpolate(\n phase.transpose(1, 2) * self.upsample_scale, scale_factor=self.upsample_scale, mode=\"linear\"\n ).transpose(1, 2)\n sines = torch.sin(phase)\n else:\n # If necessary, make sure that the first time step of every\n # voiced segments is sin(pi) or cos(0)\n # This is used for pulse-train generation\n # identify the last time step in unvoiced segments\n uv = self._f02uv(f0_values)\n uv_1 = torch.roll(uv, shifts=-1, dims=1)\n uv_1[:, -1, :] = 1\n u_loc = (uv < 1) * (uv_1 > 0)\n # get the instantanouse phase\n tmp_cumsum = torch.cumsum(rad_values, dim=1)\n # different batch needs to be processed differently\n for idx in range(f0_values.shape[0]):\n temp_sum = tmp_cumsum[idx, u_loc[idx, :, 0], :]\n temp_sum[1:, :] = temp_sum[1:, :] - temp_sum[0:-1, :]\n # stores the accumulation of i.phase within\n # each voiced segments\n tmp_cumsum[idx, :, :] = 0\n tmp_cumsum[idx, u_loc[idx, :, 0], :] = temp_sum\n # rad_values - tmp_cumsum: remove the accumulation of i.phase\n # within the previous voiced segment.\n i_phase = torch.cumsum(rad_values - tmp_cumsum, dim=1)\n # get the sines\n sines = torch.cos(i_phase * 2 * torch.pi)\n return sines\n\n def forward(self, f0):\n \"\"\"sine_tensor, uv = forward(f0)\n input F0: tensor(batchsize=1, length, dim=1)\n f0 for unvoiced steps should be 0\n output sine_tensor: tensor(batchsize=1, length, dim)\n output uv: tensor(batchsize=1, length, 1)\n \"\"\"\n f0_buf = torch.zeros(f0.shape[0], f0.shape[1]"} -{"text": "Are you a Senators fan? Have a seat. I'd like to talk to you. Surely you've noticed the amazing strides the team has made thus far.\nNot necessarily surprising, but it has definitely been encouraging. Perhaps you've even taken the opportunity to smugly boast to a fan of the opposition.\nYou've been impressed by the team's play. Others around the NHL have as well. The problem is, I haven't been impressed by the activity within the rest of the Corel Centre, and therein lies the problem.\nThe problem, Sens fans, is you. And whenever you're through throwing things and spewing vitriol, I shall continue.\nRemember the 1998 playoffs, when Ottawa knocked out the first-place New Jersey Devils? It was one of the biggest turning points of the franchise.\nMore importantly, do you recall what other fans and media said about the Corel Centre at the time?\nThey called us the loudest building in the NHL.\nSeems hard to believe right now, doesn't it?\nSince then, Ottawa fans have been spoiled by an elite team that delighted in the regular season, yet disappointed in the playoffs. It inevitably led to a change in attitude.\nWe blame current indifferent behaviour at our games on various things -- corporate networking in the lower bowl, families distracted by young children and for many years, the trap.\nBut what is the source? Where's it truly coming from?\nLet's be honest: What it really is, is fear. Fear that keeps fans from dropping the conservative behaviour, letting loose and making a true emotional investment, come what may.\nHasn't the Senators' front office done enough to convince you that things have changed? Eugene Melnyk provided the financial stability. John Muckler brought in a future Hall of Fame goaltender, as well as a household-name right winger. And most importantly, the Senators now have a coach who has removed the figurative restraints -- Bryan Murray is determined to show that this team can make it to the next level, and beyond.\nThe shackles are gone from the Senators, and now it's time for you to shuck them off as well.\nPeople are talking about this team. And they're also talking about you, Sens fan. I know, because I hear from them. Constantly. Your behaviour perplexes them, especially when less fortunate fans would kill to be in a similar situation. The building may be near capacity, but what's the point if only 70% stand after a goal, not to mention the bewilderment of not rising when the team comes onto the ice?\nThis seems to be building toward a Rob Ray-with-pompoms moment, but when others (including media) begin to compare your franchise to the illustrious Edmonton Oilers of the 1980's, well ... carpe diem, Senators fans. We all may be on the brink of something spectacular. And now it's time to seriously acknowledge it.\nNo one goes from zero to Arrowhead Stadium-esque enthusiasm overnight. I'm not asking you to. But you need to acknowledge this team's achievements with more than just polite applause.\nOttawa possesses the best team in the NHL. Now it's time for the fans to show that they are the best in the league as well. And with that, I will put my pompoms down.\nUntil game day, of course.\nSPEZZA SPECIAL: There is a certain type of rage that SI's Rick Reilly once described as \"Triple O.J.\" I nearly hit that point during last week's Satellite Hotstove on Hockey Night in Canada. Ron Mac-Lean inquired about the inclusion of Jason Spezza on the Canadian Olympic team, to which John Davidson flippantly responded, \"What about him?\" Yes, what about a player with league-leading stats who seemingly possesses the ability to read Dany Heatley's mind during play, and with creativity that would surely explode on a larger ice surface? What about Jason Spezza? Do you really have to ask?\nHEADY STUFF: James Duthie's crack on Glenn Healy during Tuesday's Atlanta-San Jose on TSN went over the former player's head. Healy was criticizing the attire of Peter Laviolette during the highlights of other games when Duthie referred to him as \"Cojo,\" otherwise known as Steven Cojocaru -- a highly flamboyant style maven and correspondent for Entertainment Tonight.\nWHAT A SCREAM: Jennifer Jones was diagnosed with kidney stones during the Olympic curling trials in Halifax. It's nice to finally come across a curler with a legitimate reason for screaming."} -{"text": "if you are a small-business owner, supervisor or manager, you know the challenges when faced with disrespectful, aggressive or argumentative employees. You must confront those individuals properly to avoid additional problems, and your approach should be carefully planned to maximize its effectiveness. Attempts should be made to correct the behavior, but if they prove unsuccessful you may have no choice but to terminate the employee.\nGet the facts. Prior to confronting argumentative employees, investigate the incidents that brought you to this point. Talk with coworkers and other associates who have first-hand knowledge of the events, and those who have spent time working nearby the problematic employee. You must gain a thorough understanding of this person's behavior patterns, as well as how others in the workplace perceive him and react to his presence.\nPrepare your approach and presentation. Decide how best to bring up the topic of the employee's inappropriate or aggressive behavior. Argumentative people tend to become immediately hostile and defensive at the first sign of confrontation. You must prepare for this type of reaction and carefully consider the best way to present your position while eliminating the opportunity for an argument.\nArrange a private meeting. To reduce the likelihood of additional aggressive or inappropriate behavior, confront the problem employee in an environment that will not make her a spectacle or the subject of public criticism.\nDescribe the employee's problematic behavior without violating the confidence of the other workers or associates who gave accounts of prior incidents. Avoid an accusatory stance and instead attempt to position yourself as an independent observer. Reduce the likelihood of defensiveness by remaining calm. Ask the employee if he realizes his behavior is inappropriate and unacceptable.\nReview the employee handbook with the problem employee. Remind her of company policy and your expectation that listed rules and regulations be followed without question. You should also take the opportunity to obtain the employee's signature on a form indicating receipt, acknowledgment and comprehension of the most current version of your company's handbook.\nProvide strategies to decrease inappropriate actions. Describe methods and techniques for handling situations that would normally elicit his argumentative or aggressive behavior. Argumentative employees can successfully alter their behavior, mood and perception of the work environment. However, if you believe your conversation will be ineffective, a comprehensive program of legitimate psychotherapy may be a valid suggestion.\nDiscuss consequences of failure to adhere to company policy. Using simple negative motivation, explain that additional instances of disruptive or inappropriate actions may result in termination of employment. Do not debate the issues or become involved in an irrelevant argument.\nRequire the employee's acknowledgment of the purpose, content and outcome of the meeting. Even if she continues to believe that her behavior is not inappropriate, insist on an acknowledgment that a problem may exist.\n- Allow the employee to talk. Do not view the meeting as a reprimanding session wherein you scold him for bad behavior while he remains silent. Attempt to elicit feedback and get possible explanations for the inappropriate behavior.\n- Avoid making the employee feel threatened or embarrassed. This could lead to a defensive posture during the meeting, resulting in a negative outcome or even a physical response. If necessary, contact your company's security officers prior to the meeting and request their presence.\n- Austin Business Journal; Resolution of Employee Problems Requires Introspection; Nancy Siefken; March 1997\n- The Thriving Small Business; How to Confront Negative Employee Behaviors; March 2010\n- Web Pro News; Breaking the Cycle of Employee Disrespect; Susan Dunn; May 2003\n- Illinois Periodicals Online; Taming the Difficult Employee; Nancy Aldrich; 2002\n- Denver Business Journal; Easy Ways to Deal With Difficult Employees; Judith Briles; September 2001\n- \"Entrepreneur\"; 5 Steps to Deal With Difficult Employees; David Javitch; June 2009"} -{"text": ", self.dim, device=f0.device)\n # fundamental component\n fn = torch.multiply(f0, torch.FloatTensor([[range(1, self.harmonic_num + 2)]]).to(f0.device))\n # generate sine waveforms\n sine_waves = self._f02sine(fn) * self.sine_amp\n # generate uv signal\n # uv = torch.ones(f0.shape)\n # uv = uv * (f0 > self.voiced_threshold)\n uv = self._f02uv(f0)\n # noise: for unvoiced should be similar to sine_amp\n # std = self.sine_amp/3 -> max value ~ self.sine_amp\n # for voiced regions is self.noise_std\n noise_amp = uv * self.noise_std + (1 - uv) * self.sine_amp / 3\n noise = noise_amp * torch.randn_like(sine_waves)\n # first: set the unvoiced part to 0 by uv\n # then: additive noise\n sine_waves = sine_waves * uv + noise\n return sine_waves, uv, noise\n\n\nclass SourceModuleHnNSF(nn.Module):\n \"\"\"SourceModule for hn-nsf\n SourceModule(sampling_rate, harmonic_num=0, sine_amp=0.1,\n add_noise_std=0.003, voiced_threshod=0)\n sampling_rate: sampling_rate in Hz\n harmonic_num: number of harmonic above F0 (default: 0)\n sine_amp: amplitude of sine source signal (default: 0.1)\n add_noise_std: std of additive Gaussian noise (default: 0.003)\n note that amplitude of noise in unvoiced is decided\n by sine_amp\n voiced_threshold: threhold to set U/V given F0 (default: 0)\n Sine_source, noise_source = SourceModuleHnNSF(F0_sampled)\n F0_sampled (batchsize, length, 1)\n Sine_source (batchsize, length, 1)\n noise_source (batchsize, length 1)\n uv (batchsize, length, 1)\n \"\"\"\n\n def __init__(\n self, sampling_rate, upsample_scale, harmonic_num=0, sine_amp=0.1, add_noise_std=0.003, voiced_threshod=0\n ):\n super(SourceModuleHnNSF, self).__init__()\n self.sine_amp = sine_amp\n self.noise_std = add_noise_std\n # to produce sine waveforms\n self.l_sin_gen = SineGen(sampling_rate, upsample_scale, harmonic_num, sine_amp, add_noise_std, voiced_threshod)\n # to merge source harmonics into a single excitation\n self.l_linear = nn.Linear(harmonic_num + 1, 1)\n self.l_tanh = nn.Tanh()\n\n def forward(self, x):\n \"\"\"\n Sine_source, noise_source = SourceModuleHnNSF(F0_sampled)\n F0_sampled (batchsize, length, 1)\n Sine_source (batchsize, length, 1)\n noise_source (batchsize, length 1)\n \"\"\"\n # source for harmonic branch\n with torch.no_grad():\n sine_wavs, uv, _ = self.l_sin_gen(x)\n sine_merge = self.l_tanh(self.l_linear(sine_wavs))\n # source for noise branch, in the same shape as uv\n noise = torch.randn_like(uv) * self.sine_amp / 3\n return sine_merge, noise, uv\n\n\nclass Generator(nn.Module):\n def __init__(\n self,\n style_dim,\n resblock_kernel_sizes,\n upsample_rates,\n upsample_initial_channel,\n resblock_dilation_sizes,\n upsample_kernel_sizes,\n gen_istft_n_fft,\n gen_istft_hop_size,\n disable_complex=False,\n ):\n super(Generator, self).__init__()\n self.num_kernels = len(resblock_kernel_sizes)\n self.num_upsamples = len(upsample_rates)\n self.m_source = SourceModuleHnNSF(\n sampling_rate=24000,\n upsample_scale=math.prod(upsample_rates) * gen_istft_hop_size,\n harmonic_num=8,\n voiced_threshod=10,\n )\n self.f0_upsamp = nn.Upsample(scale_factor=math.prod(upsample_rates) * gen_istft_hop_size)\n self.noise_convs = nn.ModuleList()\n self.noise_res = nn.ModuleList()\n self.ups = nn.ModuleList()\n for i, (u, k) in enumerate(zip(upsample_rates, upsample_kernel_sizes)):\n self.ups.append(\n weight_norm(\n nn.ConvTranspose1d(\n upsample_initial_channel // (2**i),\n upsample_initial_channel // (2 ** (i + 1)),\n k,\n u,\n padding=(k - u) // 2,\n )\n )\n )\n self.resblocks = nn.ModuleList()\n for i in range(len(self.ups)):\n ch = upsample_initial_channel // (2 ** (i + 1))\n for j, (k, d) in enumerate(zip(resblock_kernel_sizes, resblock_dilation_sizes)):\n self.resblocks.append(AdaINResBlock1(ch, k, d, style_dim))\n c_cur = upsample_initial_channel // (2 ** (i + 1))\n if i + 1 < len(upsample_rates):\n stride_f0 = math.prod(upsample_rates[i + 1 :])\n self.noise_convs.append(\n nn.Conv1d(\n gen_istft_n_fft + 2,\n c_cur,\n kernel_size=stride_f0 * 2,\n stride=stride_f0,\n padding=(stride_f0 + 1) // 2,\n )\n )\n self.noise_res.append"} -{"text": "How to earn money from blogging\nA big part of being a blogger are your readers. A successful blog by industry standards has over one million page views a month. Sure I started my blog so that my unborn children’s grandparents could follow along during my pregnancy, I continued to blog because it gave me a way to communicate on a large scale with friends and family during those first few months after the girls were born and I will continue to blog because I am creating the best baby book that I can. It will live on forever for the girls and for myself. I already find myself getting lost in old posts, reading how I felt during those first few weeks and looking at the pictures of the tiny babies I once had. I also blog because it can be a source of extra income, it doesn’t compare to my full time job, but with a little effort on my part, my blog could generate a little extra for us each month, maybe eventually enough for diapers! For example, in the nearly two years that I have been blogging I have earned approximately $15!\nHere is how it all works…\nIf you read my blog via email or a blog reader such as Google reader or networked blogs, then you won’t see any advertisements and my blog receives no credit for you having read my blog. So if you have an extra minute click on the post title so that you are taken to the actual blog, and you will get counted!\nUp until about three weekes ago there was a video advertisment at the bottom of every post, that ad was placed by my web host and I received payment for each person that saw the ad, or visited the actual web page, about a 1/10 of a penny for each view. You don’t have to actually watch the video, just visiting the actaul page counts as a page view. I recived a total of $8 in the 6 months that those ads were running, which means I had about 8000 page views during that time. Page views are calculated by visits from different IP addresses, so visiting smilingwatermelon.com from the same computer 10 times in a day still only counts as 1 page view, but visiting from your computer, phone and ipad counts as three page views!\nThe video ads are no longer displayed in my posts becuase I recently moved my blog to a new web host. Now that I am located on this new web host I can choose the type of advertisments that I want displayed and where. The first ad I’ve added is on the right side of the blog, under Sponsers, it will change depeding on your interests!\nThe ad you see probably looks nothing like this. If you have visited a particular product on the web it may show that product in the space or something similar that you may also be interested in purchasing. If you are then you should click the ad and buy it! I promise it is a safe and secure connection.\nAnother way I can earn from my blog is through my Amazon store. I changed the link from a picture of Sofie teething doll\nto a product carousel to make it more obvious for you to find.\nThe cool thing about the Amazon store is that as long as you click the link from my blog to get to Amazon, anything you buy, weather it is in my shop or not, is credited to me for “referring” you, so I make a tiny percentage of your total sale! This is the link to dag to your tool bar if you want to bookmark it so you can click there before you shop rather than having to visit my blog first.\nAnother way I am hoping to add readers to my blog and ultimately increase ad revenue is through blog databases. Top Baby Blogs is a great one, it’s how I found some of my favorite blogs to read, like Dear Baby and the Great Umbrella Heist. By clicking the “brown “vote for me” button which will always be on the right side and then on the vote here box on the page you will be taken to\nSmilingwatermelon will get ranked higher and higher. The goal is to make it into the top 10, then my blog will show up on the front page, which will means that anyone who visits this site will see my blog and hopefully come for a visit. But for this to happen, ALL my readers have to click on the box and then on the link, every day! I will keep you posted as to my ranking, right now I am #303 out of #495, with 6 vote clicks, clearly I need some clicking help!\nI will probably continue to ad additional advertisements to the blog, but it is important to me that the look of my blog stays clean and appealing to the eye. I won’t ever make my blog so full of ads that it’s no longer fun to read or hard to find the content. I will also continue to recommend products that I have found useful from Amazon. Many bloggers accept payment for sponsored ads, I’ve never done one but maybe I will in the future. I would love for other bloggers or business to be sponsors of my blog, but I know I need a lot more readers for sponsorships to be appealing to businesses so I’ll keep working at it.\nAn in the mean time, Thank you, Thank you, Thank you for being my readers, I love sharing this adventure with you."} -{"text": "Sochi’s Paralympic Villages are now ready to welcome the athletes and members of national delegations. Source: RIA Novosti\nAleksandr Ivanov, Gazeta.ru\nThe 11th Winter Paralympic Games are due to start in Sochi on March 7, and will last until March 16. The Russian national team at the 2014 Games will include some 70 athletes who have either a physical or a visual impairment. Russia will compete in all the events: biathlon and cross-country skiing, alpine skiing and snowboard, ice sledge hockey, and wheelchair curling.\nParalympic Villages ready to welcome athletes\nSochi’s Paralympic Villages are now ready to welcome the athletes and members of national delegations. The two villages - one on the coast and the other up in the mountains - will accommodate representatives of 45 countries for the duration of the Games: some 1,600 athletes and members of delegations in total. Nearly 2,000 staff and volunteers will ensure that the visitors' stay is untroubled.\nThe Paralympic Villages are provided with everything necessary to make life comfortable for the disabled athletes: ramps, handicapped accessible shower rooms, low basins and switches, automatic doors in corridors, as well as elevators with voice recognition and special buttons.\nThe coastal Paralympic Village, called Usadba, can accommodate 350 people. Its mayor is two-time Paralympic champion and world record holder in swimming Olesya Vladykina. The village is located in close proximity to the Coastal Cluster venues, so it will take athletes no more than 10 minutes to get to training and competition venues. Usadba will be housing athletes participating in the ice sledge hockey and wheelchair curling competitions.\nThe mayor of the Paralympic Village in the Mountain Cluster is six-time Paralympic champion, seven-time world champion and four-time European champion in skiing Sergei Shilov.\nThe village will house athletes competing in cross-country skiing, biathlon and alpine skiing. The Mountain Village is located near the ski center and snowboard park at an altitude of 1,100 meters.\nThe distance to the competition venues at the mountain cluster is about 10 kilometers. Transportation will be available around the clock within the village and from the village to competition venues.\nIn addition, athletes and delegation members will be able to take advantage of the two Rosa Khutor cable-car stations, which are located within walking distance of the Mountain Village.\nJose Carreras to perform for guests to Paralympics\nThe Paralympics cultural program planned by the organizers promises a wealth of originality and variety. Theater festivals, performances by the winners of Russian arts contests and appearances by Russian and international stars will make for an exciting finale to the Sochi 2014 Cultural Olympiad (a celebration of culture that lasted for four years preceding the Games).\nAttendees to the White Stick – Paralympic Games concert on March 16 will have a unique opportunity to hear the legendary Jose Carreras live.\nParalympic torch visits British village\nOn March 1, a landmark event took place in the British village of Stoke Mandeville, in the county of Buckinghamshire, where the inaugural Heritage Flame was lit in the first ever international leg of the Paralympic Torch Relay.\nFollowing a decision by the International Paralympic Committee, from March 2014 Stoke Mandeville, which is considered to be the birthplace of the Paralympic Movement, will be a mandatory part of the itinerary of all Paralympic Torch Relays.\nAfter the cauldron was lit and the Paralympic anthem performed, the flame was symbolically transferred from the UK to Russia to be united with sparks from other Russian cities involved in the Torch Relay.\nBoycott would not help to resolve Ukraine crisis\nThe only fear the organizing committee has is the prospect of a boycott of the Paralympics over the situation in Ukraine, where Russian troops have taken control of the Crimean Peninsula.\nSo far, however, these fears remain unfounded. On Sunday, March 2, Polish Prime Minister Donald Tusk urged athletes not to refuse to take part in the Games. According to him, \"a boycott of the Games would in no way help to resolve problems in Ukraine\". RIA Novosti quoted Tusk as saying: \"I shall be frank, I don't think that our Paralympians' refusal to take part would have an effect on what will be happening in Crimea or in Ukraine.\"\nFirst published in Russian in Gazeta.ru"} -{"text": "(AdaINResBlock1(c_cur, 7, [1, 3, 5], style_dim))\n else:\n self.noise_convs.append(nn.Conv1d(gen_istft_n_fft + 2, c_cur, kernel_size=1))\n self.noise_res.append(AdaINResBlock1(c_cur, 11, [1, 3, 5], style_dim))\n self.post_n_fft = gen_istft_n_fft\n self.conv_post = weight_norm(nn.Conv1d(ch, self.post_n_fft + 2, 7, 1, padding=3))\n self.ups.apply(init_weights)\n self.conv_post.apply(init_weights)\n self.reflection_pad = nn.ReflectionPad1d((1, 0))\n self.stft = (\n CustomSTFT(filter_length=gen_istft_n_fft, hop_length=gen_istft_hop_size, win_length=gen_istft_n_fft)\n if disable_complex\n else TorchSTFT(filter_length=gen_istft_n_fft, hop_length=gen_istft_hop_size, win_length=gen_istft_n_fft)\n )\n\n def forward(self, x, s, f0):\n with torch.no_grad():\n f0 = self.f0_upsamp(f0[:, None]).transpose(1, 2) # bs,n,t\n har_source, noi_source, uv = self.m_source(f0)\n har_source = har_source.transpose(1, 2).squeeze(1)\n har_spec, har_phase = self.stft.transform(har_source)\n har = torch.cat([har_spec, har_phase], dim=1)\n for i in range(self.num_upsamples):\n x = F.leaky_relu(x, negative_slope=0.1)\n x_source = self.noise_convs[i](har)\n x_source = self.noise_res[i](x_source, s)\n x = self.ups[i](x)\n if i == self.num_upsamples - 1:\n x = self.reflection_pad(x)\n x = x + x_source\n xs = None\n for j in range(self.num_kernels):\n if xs is None:\n xs = self.resblocks[i * self.num_kernels + j](x, s)\n else:\n xs += self.resblocks[i * self.num_kernels + j](x, s)\n x = xs / self.num_kernels\n x = F.leaky_relu(x)\n x = self.conv_post(x)\n spec = torch.exp(x[:, : self.post_n_fft // 2 + 1, :])\n phase = torch.sin(x[:, self.post_n_fft // 2 + 1 :, :])\n return self.stft.inverse(spec, phase)\n\n\nclass UpSample1d(nn.Module):\n def __init__(self, layer_type):\n super().__init__()\n self.layer_type = layer_type\n\n def forward(self, x):\n if self.layer_type == \"none\":\n return x\n else:\n return F.interpolate(x, scale_factor=2, mode=\"nearest\")\n\n\nclass AdainResBlk1d(nn.Module):\n def __init__(self, dim_in, dim_out, style_dim=64, actv=nn.LeakyReLU(0.2), upsample=\"none\", dropout_p=0.0):\n super().__init__()\n self.actv = actv\n self.upsample_type = upsample\n self.upsample = UpSample1d(upsample)\n self.learned_sc = dim_in != dim_out\n self._build_weights(dim_in, dim_out, style_dim)\n self.dropout = nn.Dropout(dropout_p)\n if upsample == \"none\":\n self.pool = nn.Identity()\n else:\n self.pool = weight_norm(\n nn.ConvTranspose1d(dim_in, dim_in, kernel_size=3, stride=2, groups=dim_in, padding=1, output_padding=1)\n )\n\n def _build_weights(self, dim_in, dim_out, style_dim):\n self.conv1 = weight_norm(nn.Conv1d(dim_in, dim_out, 3, 1, 1))\n self.conv2 = weight_norm(nn.Conv1d(dim_out, dim_out, 3, 1, 1))\n self.norm1 = AdaIN1d(style_dim, dim_in)\n self.norm2 = AdaIN1d(style_dim, dim_out)\n if self.learned_sc:\n self.conv1x1 = weight_norm(nn.Conv1d(dim_in, dim_out, 1, 1, 0, bias=False))\n\n def _shortcut(self, x):\n x = self.upsample(x)\n if self.learned_sc:\n x = self.conv1x1(x)\n return x\n\n def _residual(self, x, s):\n x = self.norm1(x, s)\n x = self.actv(x)\n x = self.pool(x)\n x = self.conv1(self.dropout(x))\n x = self.norm2(x, s)\n x = self.actv(x)\n x = self.conv2(self.dropout(x))\n return x\n\n def forward(self, x, s):\n out = self._residual(x, s)\n out = (out + self._shortcut(x)) * torch.rsqrt(torch.tensor(2))\n return out\n\n\nclass Decoder(nn.Module):\n def __init__(\n self,\n dim_in,\n style_dim,\n dim_out,\n resblock_kernel_sizes,\n upsample_rates,\n upsample_initial_channel,\n resblock_dilation_sizes,\n upsample_kernel_sizes,\n gen_istft_n_fft,\n gen_istft_hop_size,\n disable_complex=False,\n ):\n super().__init__()\n self.encode = AdainResBlk1d(dim_in + 2, 1024, style_dim)\n self.decode = nn.ModuleList()\n self.decode.append(AdainResBlk1d(1024 + 2 + 64, 1024, style_dim))\n self.decode.append(AdainResBlk1d(1024 + 2 + 64, 1024, style_dim))\n self.decode.append(AdainResBlk1d(1024 + 2 + 64, 1024, style_dim))\n self.decode.append(AdainResBlk1d(1024 + 2 + 64, 512, style_dim, upsample=True))\n self.F0_conv = weight_norm(nn.Conv1d(1, 1, kernel_size=3, stride=2, groups=1, padding=1))\n self.N_conv = weight_norm(nn.Conv1d(1, 1, kernel_size=3, stride=2, groups=1, padding=1"} -{"text": "oakley sports glasses much like the type plus it comments the design involving our face. Great benefit for a top quality product. Great, 90% advise! Just don't arrive the glasses protect, however the strategy is very nice! all the best Work as a pair of sunglasses should, ideal as being a extra set of two sun shades while out with kids to avoid them wrecking my own more expensive sunglasses.. I bought these kinds of since i wished an advanced level of defense against sunlight, following doing a bit of investigation I believed identification choose UV400 eyeglasses. My partner Tel Aviv ray ban ireland e actual lenses of the product are generally unpolarised. I am really short-sighted given that the child years, and still have compensated over the nasal area regarding health professional prescribed wrap-around sun glasses that grow to be ough seless while my ownclassic sunglassesesses area for a couple of SD credit cards, some leads, a breeze muff and also other pieces including (sometimes) a card and my car keys! Bonus is that it appears like spectacles circumstance, does not have access t babyliss pro curl with paypallenses first-time however when you obtain used to the idea, it's simple enough. We exchanged the darkish kinds with the discolored ones instantly because days have been really gloomy - they will really lighten everything up much it is only once you adopt them off does one recognise that it's not in fact that will 'nice' any morning! The weather offers considering that turned warm consequently considered I may need to trade the contacts again however have died all of them as well as surprisingly the actual yell Oslo oakley polarized ave may pleased with video little bit of change?Nonetheless tie-in the ideal eye makeup, allow your sophisticated style directory soared to the top level, the allure regarding dazzling along with dazzing jimmy, recommendthis product ideal collocation, allow millimeters folks can easily your always be fond of based on one self liven up yourself by simply diverse!Or sweet, or perhaps wonderful, or even despair, or perhaps cfit over sunglasses eyesight protection and hide when i age. Because with the light lens I can use them continuously outdoors as an example and also within strip-lit retailers, They are ideal for that will My partner and i look after these, because it's nearly impossible to find light contact lenses which are inexpensive as well simply. And I have been hunting. Complete represents...G and R adequate too. Well done. These are generally remarkable... Yeah you know they are unable to function as tr oakley whisker sunglasses get aface completely. The actual sun shades are usually mild, comfy and extremely crystal clear to look via. I enjoy theses. Having had the cataract post author I wanted rap-around sun shades. This specific style has become ideal. I might have provided A few stars but for the area is just not th hollister clearance them and they will make a great gift . . . Top quality for you to last and same type since Tom Luxury cruise inside Top Gun. These pilots possess extremely dark lens, this means they're amazing throughout vivid sunlight. They can show to be too dark whenever traveling inside not getting sun locations. Irrrve never like to spend plenty of cash on sun glasses.I wind up sacrificing the particular high-priced versions.They're excellent , easy to wear and appear very good.The one reasunglasses nzd、Miao Zhuang、Wu Jianjun、Chen Wei、WANG Cheng、Wang Qingjie、Xiaoting、Li Yilei twenty-four works。(Li Yong reports)\nLet the sounds associated with mother nature echo Microlab classic heritageMPlatinum Merit territory\nDate : Percolate Community Contribute Publishe oakley prescription glasses frames where saleevel\nlittle noses, however i value dinky infant noses could be hard to the perception of!\nPurchased these kind of in my 180 day previous. They're good nevertheless at the moment is often rare to find the actual tie carried out up at the top from the hearing. I do think this will obtain less complicated since she likes to a little even bigger.\nThese are generally suitable for our 12 few days previous infant and may in shape your ex for some time because of the flexible straps. The girl likes putting them on, no longer squinting under the sun and then she seems"} -{"text": "Chris Bosh is over-rated: Before I get to the Chris Bosh reports that everybody knows about by now, I gotta just say that I think Chris Bosh is the most over-rated player in all of basketball. Look he’s good, I get it, a 20-10 guy to be sure, but how much of a “superstar” could the guy really be if he couldn’t manage to get his team into the playoffs – in the Eastern Conference of all places – in either of the last two seasons. The Milwaukee Bucks were in the playoffs this past season. The Detroit Pistons were in the playoffs two years ago. Wade had less around him in Miami than Bosh did in Toronto and he led the Heat to a 5-seed. In the last two seasons Bosh’s Raptors have a combined record of 73-91, and in his time as a Raptor he lead his organization to 3 playoff wins – total – never getting out of the first round. And before you say his teams were awful, please remind yourself of the active line-up that Brandon Jennings had around him en-route to leading his Bucks team to three playoff wins this past season against the #3 seed in the East. All that said, would I be glad to see him in Wine and Gold? Of course, but he’s not coming, and I’m not really all that shook up about it.\nCB4 Sign and Trade Possibilities: Tuesday started off with the report of Toronto supposedly telling the Cavaliers that “they will do a sign-and-trade with them for Bosh, according to several league sources.” Chris Broussard broke that news, and he went on to say that Bosh was reportedly “cold to the idea of playing in Cleveland.” As the day went on, rumors continued to swirl as many “pundits” interpreted “cold to the idea” to mean it would have to be a “cold day in h—” before Chris Bosh ever decided to go to Cleveland. Maybe they were right, because by 6pm, for all intents and purposes, the story was essentially declared dead by Adrian Wojnarowski when he tweeted: “Cavs officials are confident of two things now, multiple sources say: Chris Bosh won’t play for them next season, but LeBron James will. Bosh has long made it clear that he doesn’t want to play in Cleveland, and LeBron knew it was a longshot to sell him on it. Cavs understand there are still looming threats to pry LeBron, but getting Bosh isn’t make or break on keeping LBJ.” Great news about LeBron there I guess, if you can even get excited by “news” at this point, but I can’t help but look at this and be puzzled by what it is that motivates Chris Bosh. He doesn’t win, and seemingly doesn’t want to team up with LeBron – in Cleveland at least – for a great opportunity to win, and he’s also okay – for the moment – to leave $30 million on the table, just so he doesn’t have to come to Cleveland. I know its not Vegas around here, but its not that bad.\nPhoto Credit: Chuck Crow, The Plain Dealer\nDamon Jones on the scene: When I talked to Damon Jones a few months back he told me he was in the midst of making an NBA comeback. While he was out of the country, and in some ways out of sight / out of mind in NBA circles for the most part this past year, he jumped back on the scene in a lot of ways today by rolling shot-gun in LeBron’s truck en-route to an appearance at the most famous skills camp in the history of basketball. There’s worse ways to remind people you’re on the comeback trail I’d imagine. Jones worked out with Romeo Travis, Chris Paul, Christian Eyenga, and LeBron James as well as others down in Akron earlier today. I don’t think he’s on twitter yet either for whatever that’s worth, but I’m thinking he should be.\nBarbosa for West and Moon: I’d be for this move if I was the Cavaliers, but I wouldn’t be as excited about acquiring the talents of Barbosa as I would have been three years ago. Which is probably why he wasn’t on the block three years ago, and also probably why he’s on the block now. Barbosa only played in 44 games last season, started 5, and averaged under 10 points per game. For his career he averages under three assists per game, and just over 12 points per game. His numbers have gone down in each of the last three seasons since he averaged 18 points and 4 assists per game during the 06-07 campaign, but he always has been a consistent spark of sorts off the bench. I’d hope to get more in a package that included the expiring $500,000 contract of Delonte West, but at the end of the day if the Barbosa for Moon and West trade was all that was out there, I’d say the move makes you marginally better. I wouldn’t be able to wear that Goosey shirt I bought anymore though, and there is that, but what are you going to do.\nSo you’re saying there’s a 15-25% chance he’s leaving: I don’t know if Byron Scott was intending to make Cavaliers’ fans feel better by saying there’s a 75-85% chance LeBron will stay with the Cavaliers when he was on ESPN 710 Los Angeles Tuesday afternoon, but I couldn’t help but read that the other way. Maybe the most ridiculous thing to ever put odds on is trying to handi-cap LeBron’s decision, but I’ll nevertheless offer my thoughts on the ridiculous since we’re talking about it. On Saturday, I thought there was about a 99% chance LeBron would re-sign. This morning, I was thinking 90%, and now Byron Scott – one of those famous guys “with sources close to the situation” says it’s more like seventy-five. I don’t know what to think anymore…so I guess I’ll just follow LeBron’s tweets and stare at his new blank website until the end of the week to get a better idea of what’s going to happen, whenever it does.\n(Update: LeBron’s will announce his decision on ESPN, Thursday, at 9pm…hang in there until then Cavs fans)."} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/models/minimax_m3/minimax_m3_sparse_attn.py. Lines: 2223.\n\n\"\"\"MiniMax M3 sparse attention: fused Triton decode and tiled prefill indexer.\"\"\"\n\nfrom __future__ import annotations\n\nimport functools\nimport os\nfrom dataclasses import dataclass, replace\nfrom typing import TYPE_CHECKING, Any, Optional\n\nimport torch\nimport triton\nimport triton.language as tl\n\nfrom fireworks.models.minimax_m3.config import MiniMaxM3SparseAttentionConfig\nfrom fireworks.models.minimax_m3.minimax_m3_indexer import (\n write_index_k_to_paged_cache,\n)\n\nif TYPE_CHECKING:\n from fireworks.models.minimax_m3.minimax_m3_caches import MiniMaxM3AttentionMeta\n from fireworks.nn.attention.attention import VarlenAttentionParams\n from fireworks.nn.attention.paged_attention import IncrAttentionMeta, PrefillAttentionMeta\n\n\n# ---------------------------------------------------------------------------\n# Fused Triton indexer: score + select + mask in 2 kernel launches per layer\n# ---------------------------------------------------------------------------\n\n\n# Target threadblock count for the score kernel. The score grid is\n# (B, head-block, NUM_KV_CHUNKS); NUM_KV_CHUNKS is sized at launch from the\n# batch/sequence shapes to keep enough CTAs in flight. Because it varies with\n# traffic, it is passed as a non-specialized runtime kernel arg (not a\n# tl.constexpr) so Triton does not recompile a new specialization per value.\n_SCORE_TARGET_CTAS = int(os.environ.get(\"FIREWORKS_M3_SCORE_TARGET_CTAS\", \"4096\"))\n_SCORE_MAX_CHUNKS = int(os.environ.get(\"FIREWORKS_M3_SCORE_MAX_CHUNKS\", \"256\"))\n_SCORE_BLOCK_N = int(os.environ.get(\"FIREWORKS_M3_SCORE_BLOCK_N\", \"128\"))\n_SCORE_BLOCK_H = 16\n# Decode score kernel is a memory-bound gather over the full index-K history.\n# Triton's default 3-stage software pipeline triple-buffers the [BLOCK_D, BLOCK_N]\n# K tile in shared memory (64 KB at BLOCK_N=256), which exceeds the SM shared\n# budget and collapses occupancy -> ~half HBM bandwidth. Double-buffering\n# (num_stages=2) keeps occupancy high. BLOCK_N=128 (1 sparse block/iter) beats\n# 256 by ~1.2x on the grouped scorer (smaller tile -> higher occupancy -> the\n# latency-bound gather is hidden); num_warps=4 best. Override via env if needed.\n_SCORE_NUM_WARPS = int(os.environ.get(\"FIREWORKS_M3_SCORE_NUM_WARPS\", \"4\"))\n_SCORE_NUM_STAGES = int(os.environ.get(\"FIREWORKS_M3_SCORE_NUM_STAGES\", \"2\"))\n_PREFILL_SCORE_TARGET_CTAS = int(\n os.environ.get(\n \"FIREWORKS_M3_PREFILL_SCORE_TARGET_CTAS\",\n os.environ.get(\"FIREWORKS_M3_SCORE_TARGET_CTAS\", \"2048\"),\n )\n)\n_PREFILL_SCORE_BLOCK_N = int(\n os.environ.get(\n \"FIREWORKS_M3_PREFILL_SCORE_BLOCK_N\",\n os.environ.get(\"FIREWORKS_M3_SCORE_BLOCK_N\", \"128\"),\n )\n)\n_PREFILL_SCORE_BLOCK_Q = int(os.environ.get(\"FIREWORKS_M3_PREFILL_SCORE_BLOCK_Q\", \"128\"))\n\n\n@triton.jit(do_not_specialize=[\"NUM_KV_CHUNKS\"])\ndef _score_kernel(\n idx_q_ptr,\n ik_cache_ptr,\n block_tables_ptr,\n seq_lens_ptr,\n scores_out_ptr,\n stride_q_b,\n stride_q_h,\n stride_ik_p,\n stride_ik_t,\n stride_bt_b,\n stride_sc_b,\n stride_sc_h,\n H: tl.constexpr,\n D: tl.constexpr,\n BLOCK_SIZE: tl.constexpr,\n RATIO: tl.constexpr,\n NUM_KV_CHUNKS,\n BLOCK_H: tl.constexpr,\n BLOCK_D: tl.constexpr,\n BLOCK_N: tl.constexpr,\n):\n \"\"\"Per-(batch, index-head, chunk): score the chunk's sparse blocks.\n\n The sequence's actual sparse blocks ``num_sb`` are split into\n ``NUM_KV_CHUNKS`` contiguous chunks; this program scores only its chunk and\n writes those per-block scores. Block scores are independent (max-pool per\n block), so chunks write disjoint entries with no cross-chunk reduction. Work\n is bounded by *actual* ``num_sb``, not the max-seq block count.\n \"\"\"\n SPARSE_BLOCK_TOKENS: tl.constexpr = BLOCK_SIZE * RATIO\n BLOCKS_PER_PROGRAM: tl.constexpr = BLOCK_N // SPARSE_BLOCK_TOKENS\n BLOCKS_PER_TILE: tl.constexpr = BLOCK_N // BLOCK_SIZE # distinct kv-blocks per BLOCK_N tile\n tl.static_assert(BLOCK_N % SPARSE_BLOCK_TOKENS == 0)\n\n pid_b = tl.program_id(0)\n pid_hb = tl.program_id(1)\n pid_c = tl.program_id(2)\n\n seq_len = tl.load(seq_lens_ptr + pid_b)\n num_sb = (seq_len + SPARSE_BLOCK_TOKENS - 1) // SPARSE_BLOCK_TOKENS\n chunk_size = (num_sb + NUM_KV_CHUNKS - 1) // NUM_KV_CHUNKS\n sb_start = pid_c * chunk_size\n sb_end = tl.minimum(sb_start + chunk_size, num_sb)\n if sb_start >= sb_end:\n return\n\n h_offs = tl.arange(0, BLOCK_H)\n d_offs = tl.arange(0, BLOCK_D)\n n_offs = tl.arange(0, BLOCK_N)\n blk_of = n_offs // BLOCK_SIZE # which kv-block within the tile each token belongs to\n off_of = n_offs % BLOCK_SIZE # token offset within its kv-block\n blk_cols0 = tl.arange(0, BLOCKS_PER_TILE)\n sparse_block_offsets = tl.arange(0, BLOCKS_PER_PROGRAM)\n head_start = pid_hb * BLOCK_H\n heads = head_start + h_offs\n head_mask = heads < H\n dim_mask = d_o"} -{"text": "Although his coaching career is not marked by longevity, Stillwater’s Ricky Michel packed plenty into his 17 years as Ponies baseball coach and on Saturday he is schedule to be inducted into the Minnesota High School Baseball Coaches Association Hall of Fame at the Ramada Plaza Hotel in Minneapolis.\nBefore stepping down after the 2008 season to become Stillwater Area High School’s Activities Director, Michel compiled a 262-146 record with five conference titles and two state tourney appearances.\n“Honestly, surprised,” Michel said of his reaction when informed he was going to be inducted. “When I think of the people that are in the hall of fame, statistically, I probably don’t measure up as far as wins and losses go, but it should be a fun night and I’m looking forward to it.”\nMichel will be joined in this year’s eight-person class by Jerry Coe of Coon Rapids, Dick “the Polish Eagle” Jonckowski of Shakopee, Don Sauter of Sibley East, Joe Szublewski of Albert Lea, Chuck Tabor of Robbinsdale, Bob Wasko of South St. Paul and Dave Wendlandt of McLeod West.\nIt’s not a decision he spent any time contemplating, but the 1981 Stillwater graduate will have no trouble choosing which hat to wear on induction day as he is a Pony through and through. Michel starred soccer and baseball for the Ponies before returning to teach in the district and join the coaching staff led by his former coach Don Campbell, who guided Stillwater to its only baseball state championship in 1991.\nMichel was an all-conference and all-state goalkeeper in soccer, which he said was probably his batter sport, and he was also named the Most Valuable Player after batting .345 and posting a 3-0 record with a 1.16 ERA on a conference championship baseball team his senior year. He later played soccer and baseball at St. Mary’s College.\n“I got to go back to my high school and back to the community that gave me a lot,” said Michel, who is quick to credit Campbell for much of his and the program’s success. “Between (current coach Mike) Parker, Campbell and I, that’s 34 years of baseball and we did it Don Campbell’s way. Everything I learned about the game of baseball was from him, how to respect the game, play the game and mechanics. Ninety percent of my baseball knowledge came from Don and he, of course, was my mentor and the most influential person in my life, there’s no doubt about it. If I could, I would share it with him — he’s at least as, if not more, deserving than I am.”\nIn addition to his on-field duties, Michel was active in the state baseball coaches association, serving as its president in 2001-02 and was the 2005 recipient of the prestigious Dick Siebert Award for his outstanding contributions to baseball and promotion of the sport. A strong advocate on many issues during his time as an MHSBCA officer, Michel was a driving force behind the creation of the group’s website in his term as president.\n“Ricky has been a great ambassador to the sport of high school baseball in Minnesota,” Campbell said. “He has represented Stillwater High School in an exemplary manner and he is very worthy of being inducted into the Minnesota Baseball Coaches Hall of Fame.”\nMichel also supervised the popular Day Ball summer program for fifth- and sixth-graders, coached the Lake Elmo VFW baseball team for 24 years and was the conference statistician for 12 years.\nAlthough he still plays in an over-48 league, Michel said he misses coaching and anticipates returning to the dugout in some capacity down the road.\n“You won’t outwork Ricky, you won’t out-coach him on the field and you won’t prepare your players any better than he does,” Campbell said. “Add to that the way he treats his players with respect and dignity, the lasting bond he establishes with his players, the optimistic outlook on life in general, and you have a hall of fame coach.”\nIn less than two decades, Michel coached four players that were selected in the MLB Draft and three of those players signed professional contracts, including current Twins closer Glen Perkins, Mike Strong and Andrew Schmiesing. Ryan Lindgren was drafted twice before an injury curtailed his baseball career. Two additional players, Ryan Eskierka and Aaron Runk played professionally in the Northern League.\n“In 17 years of being the head coach, I was blessed with a lot of good players and a lot of great pitchers — and good pitchers make you look good,” Michel said.\nDespite the many obvious highlights, including state tournament trips in 2001 and 2008, Michel said the 1998 conference championship season remains one of his proudest.\n“The year we had our best coaching job was when we won conference in 1998,” Michel said. “That was a team that just kept getting better and better and they were a big surprise to win the conference. That’s a season I will remember the most and the last season of my career was obviously a high point (getting to state).\n“I really enjoyed coaching and, professionally, I met some wonderful baseball people and colleagues I’ll never forget. We’ve gone to some places and laughed many times over, just talking baseball stories and one of the most important parts is the friendships you create.”"} -{"text": "How to avoid the pitfalls of your previous studio experiences—and vastly improve your chances to get your song published with major A&R representatives.\nStephen McElligott reminisces about a recording he made of one of his songs in a local studio. “I wasn’t happy with that production, really,” he recalls. “I thought, ‘Oh gosh, how am I gonna save this?’ I basically turned around and found Studio Pros and thought, ‘Brilliant, they’re my savior.'”\nMcElligott has been playing music since he was seven years old. He wrote his first song at 16 and soon began playing in clubs and venues around Ireland and Scotland. His music is influenced by music that spans many decades, from The Beatles to Glen Hansard. But after years of writing and performing, McElligott still hadn’t achieved a major goal: recording a professional sounding, radio-quality version of his songs. “I’ve worked with musicians before, and it’s like wearing a blindfold when you take them into the studio because you’ve gotta pay them, and you don’t know how good they are, you haven’t really heard their stuff,” he explains.\nRecording A Song Professionally Without Breaking The Bank\nThe Irish guitarist/singer/songwriter had been in need of a polished, professional recording solution that wouldn’t break the bank. Plus, he was hoping to have better luck submitting his music to TAXI to get song placements and licensing opportunities. He stumbled upon Studio Pros while searching online for recording studios and decided to learn more. “I clicked on it and thought, this is cool, and it’s affordable,” he says. “I had a listen to some samples and thought it was brilliant. I really needed this with the budget I’m on. I would spend 250 Euros on a musician for a day in the studio, whereas Studio Pros is only $150. I thought it was fantastic—it’s not often that you get to work with really good professional musicians, you know?”\nListen to Stephen’s track “She Blew Me Away,” produced by Studio Pros:\n“With Studio Pros, they give you a listen to the musicians’ capabilities, what they’re able to do, and the versatility that the musicians there have. And that really was the winner for me. It was the overall sound even more than the price.”\n“The price was a bonus!” he adds. The convenience and the time it saved by working with Studio Pros was also a big factor for McElligott. Normally, making a recording was a process that could take weeks. Now, he could let the Studio Pros musicians do the heavy lifting while he spent his time doing more important things. “Studio Pros is really easy with the turnaround time of two days, and that’s not even counting if you expedite your recording,” he says. “I just thought that was fantastic. When I record, it takes a lot of time, and Studio Pros took that time off my hands. It was brilliant! I could spend time with my kids at home while my stuff was getting recorded. There was no hard work that really had to go into it, it was just a very easy process.”\nAccess Your Online Recording Studio Wherever You Go!\nMcElligott didn’t even have to work exclusively out of his home, either. “You could work from anywhere in the world,” he says. “It wasn’t like you had to travel to such and such studio and get out your gear and get all the musicians in, get them flights, get whoever you needed from whatever country. It was like I could do this from anywhere in the world. I could have my audio interface and I could do a recording and just send it off. And with the quality of the sound engineers there, it makes it all the more easy.”\nIt was precisely the recording engineers that would play a hand in passing McElligott’s final test: submitting his songs to independent A&R company TAXI. Luckily, where his previous recordings hadn’t made the cut, his Studio Pros productions did. “The songs were just coming back from recordings I did in studios over here,” he remembers. “They were getting returned with bad reviews because of the quality of the sound. I submitted my Studio Pros version and I got a nice 9 out of 10! The quality was right up there.”\nMcElligott is planning on recording the rest of his EP with Studio Pros, then hitting the road to go on tour. “I need to get the musicians to do what Studio Pros did,” he adds with a laugh."} -{"text": "ffs < D\n num_kv_blocks = (seq_len + BLOCK_SIZE - 1) // BLOCK_SIZE\n\n q = tl.load(\n idx_q_ptr + pid_b * stride_q_b + heads[:, None] * stride_q_h + d_offs[None, :],\n mask=head_mask[:, None] & dim_mask[None, :],\n other=0.0,\n )\n scale = 1.0 / tl.sqrt(float(D))\n\n token_start = sb_start * SPARSE_BLOCK_TOKENS\n token_end = sb_end * SPARSE_BLOCK_TOKENS\n bt_base = block_tables_ptr + pid_b * stride_bt_b\n for tok0 in range(token_start, token_end, BLOCK_N):\n tok = tok0 + n_offs\n valid_token = tok < seq_len\n # Block table loaded once per kv-block, broadcast to tokens (shortens phys->K chain).\n blk_cols = tok0 // BLOCK_SIZE + blk_cols0\n phys_blk = tl.load(bt_base + blk_cols, mask=blk_cols < num_kv_blocks, other=-1)\n phys = tl.reshape(tl.broadcast_to(phys_blk[:, None], (BLOCKS_PER_TILE, BLOCK_SIZE)), (BLOCK_N,))\n phys_safe = tl.maximum(phys, 0)\n valid_kv = valid_token & (phys >= 0)\n k = tl.load(\n ik_cache_ptr + phys_safe[None, :] * stride_ik_p + off_of[None, :] * stride_ik_t + d_offs[:, None],\n mask=dim_mask[:, None] & valid_kv[None, :],\n other=0.0,\n )\n # Upconvert for fp8_cast index caches; no-op when dtypes match.\n k = k.to(q.dtype)\n qk = tl.dot(q, k) * scale\n qk = tl.where(valid_kv[None, :], qk, -1e30)\n qk = tl.reshape(qk, (BLOCK_H, BLOCKS_PER_PROGRAM, SPARSE_BLOCK_TOKENS), can_reorder=False)\n block_scores = tl.max(qk, axis=2)\n\n sb = (tok0 // SPARSE_BLOCK_TOKENS) + sparse_block_offsets\n tl.store(\n scores_out_ptr + pid_b * stride_sc_b + heads[:, None] * stride_sc_h + sb[None, :],\n block_scores,\n mask=head_mask[:, None] & (sb[None, :] < sb_end),\n )\n\n\n@triton.jit(do_not_specialize=[\"NUM_KV_CHUNKS\"])\ndef _prefill_score_kernel(\n idx_q_ptr,\n ik_cache_ptr,\n block_tables_ptr,\n positions_ptr,\n q_seq_len_cumsum_ptr,\n scores_out_ptr,\n stride_q_b,\n stride_q_h,\n stride_pos,\n stride_ik_p,\n stride_ik_t,\n stride_bt_b,\n stride_sc_b,\n stride_sc_h,\n D: tl.constexpr,\n BLOCK_SIZE: tl.constexpr,\n RATIO: tl.constexpr,\n NUM_KV_CHUNKS,\n BLOCK_Q: tl.constexpr,\n BLOCK_D: tl.constexpr,\n BLOCK_N: tl.constexpr,\n):\n \"\"\"Per-(sequence, index-head, query-chunk, kv-chunk): score prefill sparse blocks.\n\n Unlike the decode scorer, this tiles over query positions for one original\n sequence. All rows in the tile share the sequence block table, so the K tile\n is loaded once and reused by a BLOCK_Q x BLOCK_N dot.\n \"\"\"\n SPARSE_BLOCK_TOKENS: tl.constexpr = BLOCK_SIZE * RATIO\n BLOCKS_PER_PROGRAM: tl.constexpr = BLOCK_N // SPARSE_BLOCK_TOKENS\n tl.static_assert(BLOCK_N % SPARSE_BLOCK_TOKENS == 0)\n\n pid_seq = tl.program_id(0)\n pid_h = tl.program_id(1)\n pid_chunk = tl.program_id(2)\n pid_qc = pid_chunk // NUM_KV_CHUNKS\n pid_kvc = pid_chunk - pid_qc * NUM_KV_CHUNKS\n\n q_seq_start = tl.load(q_seq_len_cumsum_ptr + pid_seq).to(tl.int64)\n q_seq_end = tl.load(q_seq_len_cumsum_ptr + pid_seq + 1).to(tl.int64)\n q0 = q_seq_start + pid_qc * BLOCK_Q\n if q0 >= q_seq_end:\n return\n\n q_offs = q0 + tl.arange(0, BLOCK_Q)\n d_offs = tl.arange(0, BLOCK_D)\n n_offs = tl.arange(0, BLOCK_N)\n sparse_block_offsets = tl.arange(0, BLOCKS_PER_PROGRAM)\n q_mask = q_offs < q_seq_end\n dim_mask = d_offs < D\n\n positions = tl.load(\n positions_ptr + q_offs * stride_pos,\n mask=q_mask,\n other=-1,\n )\n seq_lens = positions + 1\n max_seq_len = tl.max(tl.where(q_mask, seq_lens, 0), axis=0)\n num_sb = (max_seq_len + SPARSE_BLOCK_TOKENS - 1) // SPARSE_BLOCK_TOKENS\n chunk_size = (num_sb + NUM_KV_CHUNKS - 1) // NUM_KV_CHUNKS\n sb_start = pid_kvc * chunk_size\n sb_end = tl.minimum(sb_start + chunk_size, num_sb)\n if sb_start >= sb_end:\n return\n\n q = tl.load(\n idx_q_ptr + q_offs[:, None] * stride_q_b + pid_h * stride_q_h + d_offs[None, :],\n mask=q_mask[:, None] & dim_mask[None, :],\n other=0.0,\n )\n scale = 1.0 / tl.sqrt(float(D))\n\n token_start = sb_start * SPARSE_BLOCK_TOKENS\n token_end = sb_end * SPARSE_BLOCK_TOKENS\n for tok0 in range(token_start, token_end, BLOCK_N):\n tok = tok0 + n_offs\n kv_col = tok // BLOCK_SIZE\n kv_off = tok % BLOCK_SIZE\n valid_token = tok < max_seq_len\n phys = tl.load(\n block_tables_ptr + pid_seq * stride_bt_b + kv_col,\n mask=valid_token,\n other=-1,\n )\n phys_safe = tl.maximum(phys, 0)\n valid_kv = valid_token & (phys >= 0)\n k = tl.load(\n ik_cache_ptr + phys_safe[None, :] * stride_ik_p + kv_off[None, :] * stride_ik_t + d_offs[:, None],\n mask=dim_mask[:, None] & valid_kv[None, :],\n other=0.0,\n )\n # Upconvert for fp8_cast index caches; no-op when dtypes match.\n k = k.to(q.dtype)\n qk "} -{"text": "What is it?\n- Unpaid work\n- Generally with not-for-profit or community based organisations both in Australia and overseas\n- Can also be positions of responsibility within clubs and societies, many of which can be found on campus\n- Can be related to either personal or professional interests and goals\nWhy do it?\n- To gain valuable experience and put your skills to work in a field related to your studies\n- To develop your employability skills\n- To develop contacts in a field relevant to your career goals\n- To make a contribution to society in accordance with your personal values\n- To help your resume stand out from the crowd\nGraduate employers prefer to hire 'well-rounded' graduates. This means they look for graduates who have not just performed well academically, but have been engaged in a variety of activities other than their studies.\nChoosing a Volunteer role\nWhen choosing a place to volunteer look for a role and a cause that you feel passionate about. Your volunteering is more likely to be successful and rewarding if you do. To help you choose a role you should find out:\n- What the organisation does and what it stands for. Think about whether it is somewhere that you would like to volunteer. Will you fit in with them? Look at their website, previous projects or annual reports, and read their vision and mission statements to find out more about them.\n- What types of opportunities are available and do they match your skills and interests? Perhaps an opportunity to gain skills and experience related to your degree? An opportunity to explore career ideas?\n- How much supervision, support and training are provided to volunteers?\n- Does the organisation have adequate insurance to cover you for the volunteer work you will be undertaking with them and appropriate volunteer policies in place?\nYou should also think carefully about how much time you are able to or willing to commit to the position. Are you looking for a volunteering position that is long term or short term? Will it be a continuing obligation or just a one-off involvement? Make sure you can balance your studies, volunteer, work and social commitments.\nVolunteering Australia has produced a Volunteer Rights & Volunteer Checklist (PDF) which you should look at when considering a volunteering role.\nWhen considering volunteering overseas check out Choice ‘Volunteering abroad’ and Choosing a Volunteering Agency (Australian Volunteers International).\nFurther information about unpaid work and the Fair Work Act is available from the Fair Work Ombudsman.\nWhere do I find it?\nThere are thousands of opportunities advertised on national and international volunteering websites. If you are interested in a specific cause you could try searching on the internet for organisations that address or respond to issues related to that cause in the country you would like to volunteer. If you have decided on the sector where you might like to volunteer, you could consider contacting an organisation within the sector and asking about volunteering opportunities. For example, in the health sector, contacting a local hospital or community health service, or in the environment sector enquiring at your local council and other environmental organisations both locally and nationally.\n- Search for volunteer positions on Sydney CareerHub.\n- GoVolunteer is an online tool provided by Volunteering Australia which you can use to search for volunteer positions in Australia.\n- The Australian Council for International Development lists volunteer opportunities with non-government organisations\n- University of Sydney Clubs and Societies these groups offer a range of opportunities including specific positions and support roles.\n- The V Team is managed by the University of Sydney Union and offers a wide variety of volunteering opportunities on campus and in the local community.\n- Use your networks to create your own opportunities in a relevant field, for example, if you are a member of a sporting club you could volunteer to create a newsletter for members or assist them with their bookkeeping"} -{"text": "Take our customer survey to evaluate your visit.\nIt should only take a few minutes to answer five quick questions. Just click the Launch survey button at the end of your visit to begin.\n2011-06-21 11:54 PM\ntry Update Service instead\n\"I'd rather be hated for who I am, than loved for who I am not.\" Kurt Cobain (1967-1994)\n2011-06-22 03:33 PM\nLast 2 times I wanted to post an update I couldn't login, so here's my update.\nAfter 2 days of trying EVERYTHING. Doing the update service 20 times, doing the back to factory settings 100+ times nothing worked.\nThen I thought to myself: this might be stupid, but WHAT IF..I just remove the memory card? (the micro sd).\nSo I removed it, ran the update service.\nAND IT WORKED\nAll the 'oh I got lucky after 10 tries' things didn't work for me, but removing the sd card and then updating actually worked.\nHopefully this also works for you\n2011-06-22 06:17 PM\nI think you may be on to something there :-)\nI may have removed the SD car from my phone too (I had changed it for a higher capacity card and removed it when I thought I'd have to return the phone). There was also a problem with the MTP driver with Windows 7 that disappeared when the SD card was removed and the latest update to PC Companion guides you away from connecting in media transfer mode.\n2011-06-23 02:18 AM\nI went and got mine today (yep I went for it!) I have to say, I love it! I really can't find an issue with it to be honest, I updated it and it's working fine and time scape doesn't lag, infact, it doesn't lag fullstop\n2011-08-21 09:13 PM\nHi, well it's august and the problem is still there. I've had my phone for 6 weeks, got it through O2, and all I'm getting now is the continual boot where it brings up the SE logo and then the exclamation mark in a triangle with a pic of a phone. The PC companion is saying it's connected to a Sony Ericsson phone but I have to use the phone to connect but I can't get on the phone to connect. I've tried all the different solutions in the thread but still no luck. Anyone any other ideas?????\nUpdate: its decided to work again now with the update done but it's not reading my SIM card, it's saying Your SIM card does not allow a connection to this network. Would this have been affected by me having my sim card in another phone during the update??\nUpdate 2: it's fully working now though I hope it's not going to be this much of a pain in the bum each time an update is run!!!\n2011-09-06 03:21 PM\nHello i also had an xperia play that had the same issue i updated it using phone itself using wifi (without pc) and then it showed me four circles after that it turned of and never powor on again\nwhen i press the power button it flashes a green light and it vibrate without any thing displayed on the screen i tried to update it using SEUS but the download is finshed while the instalation is moving as for factory reset it did the same problem!!\ni tried to update it without memory card but without any diference however i removed the battery for 10 min then i reassembeled it and charge it but it didnt boot it gave me a green light on the power button\n2011-09-13 02:23 PM\nI had the same problem with my xperia play (R8000i), after upload over wifi, my xperia play doesn´t work.\nWhen I press the power button the phone just vibrates, and if I hold it in, it vibrates every few seconds.\nI tried the procedure site \"software update fails\" but when the plug appears menssagen \"The phone contains modified connote That software be updated\"\n2011-09-20 04:48 PM\nAll of a sudden I can't connect my Phone to PC.. I think I deleted this mtpAPP.. now everytime I connect my Phone it erases some apps on my homescreen, but the apps is stil in my app drawer although it deleted the shortcut i've made to homescreen..\nNow, do you have any idea where to get mtpAPP for 2.3.3 with 4.0.a.2.368 firmware? I tried this one http://www.4shared.com/file/e8n3floP/MtpAppGB.html that i found on xda forum.. I just wanna ask if that apk is for 2.3.3 with 4.0.a.2.368 firmware.. Thanks"} -{"text": "= tl.dot(q, k) * scale\n valid_qk = q_mask[:, None] & valid_kv[None, :] & (tok[None, :] < seq_lens[:, None])\n qk = tl.where(valid_qk, qk, -1e30)\n qk = tl.reshape(qk, (BLOCK_Q, BLOCKS_PER_PROGRAM, SPARSE_BLOCK_TOKENS), can_reorder=False)\n block_scores = tl.max(qk, axis=2)\n\n sb = (tok0 // SPARSE_BLOCK_TOKENS) + sparse_block_offsets\n tl.store(\n scores_out_ptr + q_offs[:, None] * stride_sc_b + pid_h * stride_sc_h + sb[None, :],\n block_scores,\n mask=q_mask[:, None] & (sb[None, :] < sb_end),\n )\n\n\n@triton.jit(do_not_specialize=[\"STRIDE_SC_SB\"])\ndef _select_kernel(\n scores_ptr,\n seq_lens_ptr,\n selected_out_ptr,\n stride_sc_b,\n stride_sc_h,\n stride_so_b,\n stride_so_h,\n BLOCK_SIZE: tl.constexpr,\n RATIO: tl.constexpr,\n TOPK: tl.constexpr,\n MSB: tl.constexpr,\n INIT_BLOCKS: tl.constexpr,\n LOCAL_BLOCKS: tl.constexpr,\n STRIDE_SC_SB=1,\n):\n \"\"\"Per-(batch, index-head): force configured init/local blocks, then top-k by score.\n\n ``STRIDE_SC_SB`` is the stride (in elements) between consecutive sparse-block\n scores for a fixed (batch, head). It defaults to 1 for the contiguous\n ``[*, H, msb]`` layout (Triton score path); the fp8 cute scorer passes\n ``total_q`` so it can read its native ``[H, msb, total_q]`` output in place,\n avoiding a ~1.5 ms ``.permute().contiguous()`` transpose on the hot path.\n\n NOTE: ``STRIDE_SC_SB`` is a RUNTIME arg (not ``tl.constexpr``): the fp8 path\n passes ``fp8_scores.stride(1) == total_q``, which varies per prefill, so a\n constexpr here forces a fresh JIT compile for every distinct prefill length.\n It is only used in pointer arithmetic below, so runtime is safe.\n \"\"\"\n pid_b = tl.program_id(0)\n pid_h = tl.program_id(1)\n\n sb_idx = tl.arange(0, MSB)\n scores = tl.load(scores_ptr + pid_b * stride_sc_b + pid_h * stride_sc_h + sb_idx * STRIDE_SC_SB)\n seq_len = tl.load(seq_lens_ptr + pid_b)\n\n num_sb = (seq_len + BLOCK_SIZE * RATIO - 1) // (BLOCK_SIZE * RATIO)\n valid_sb = sb_idx < num_sb\n\n local_start = tl.maximum(num_sb - LOCAL_BLOCKS, 0)\n is_init = (sb_idx < INIT_BLOCKS) & valid_sb\n is_local = (sb_idx >= local_start) & valid_sb\n\n # NaN scores must not poison top-k. Force configured init/local blocks by\n # replacement, not score addition, so nonfinite raw scores cannot survive.\n # With the M3 preview config (init=0, local=1), this forces only the current\n # sparse block. Other configs can keep the SGL-style init/local windows.\n score_finite = (scores == scores) & (tl.abs(scores) != float(\"inf\"))\n boosted = tl.where(score_finite, scores, -1e30)\n boosted = tl.where(is_init, 1e30, boosted)\n boosted = tl.where(is_local, 1e29, boosted)\n boosted = tl.where(valid_sb, boosted, -1e30)\n\n selected = tl.full([TOPK], value=-1, dtype=tl.int32)\n topk_idx = tl.arange(0, TOPK)\n for i in range(TOPK):\n best_score = tl.max(boosted, axis=0)\n is_best = boosted == best_score\n best_pos = tl.min(tl.where(is_best, sb_idx, MSB))\n selected = tl.where(topk_idx == i, best_pos.to(tl.int32), selected)\n boosted = tl.where(sb_idx == best_pos, -1e30, boosted)\n\n # Compaction feeds selected blocks to paged attention as a chronological\n # sequence, so the newest/current partial block must sort to the end.\n rank_valid = topk_idx < num_sb\n selected = tl.where(rank_valid & (selected < num_sb.to(tl.int32)), selected, MSB)\n selected = tl.sort(selected, descending=False)\n selected = tl.where(selected < num_sb.to(tl.int32), selected, -1)\n\n tl.store(\n selected_out_ptr + pid_b * stride_so_b + pid_h * stride_so_h + topk_idx,\n selected,\n )\n\n\n@triton.jit\ndef _compaction_kernel(\n block_tables_ptr, # [B, max_blocks]\n selected_ptr, # [B, H, topk]\n compacted_out_ptr, # [H, B, out_blocks]\n stride_bt_b,\n stride_sel_b,\n stride_sel_h,\n stride_out_h,\n stride_out_b,\n SOURCE_BLOCKS: tl.constexpr,\n OUT_BLOCKS: tl.constexpr,\n BLOCK_SIZE: tl.constexpr,\n RATIO: tl.constexpr,\n TOPK: tl.constexpr,\n):\n pid_b = tl.program_id(0)\n pid_h = tl.program_id(1)\n\n cols = tl.arange(0, BLOCK_SIZE)\n cols_mask = cols < OUT_BLOCKS\n\n s = cols // RATIO # int floor-div; `/` makes float in Triton, breaks ptr arith\n sel_mask = cols_mask & (cols < (TOPK * RATIO))\n s_clamped = tl.where(sel_mask, s, 0)\n\n sel_val = tl.load(\n selected_ptr + pid_b * stride_sel_b + pid_h * stride_sel_h + s_clamped,\n mask=sel_mask,\n other=-1,\n )\n\n phys_col = sel_val * RATIO + (cols % RATIO)\n valid = sel_mask & (sel_val >= 0)\n phys_col_clamped = tl.where(valid & (phys_col < SOURCE_BLOCKS), phys_col, 0)\n\n seq_block_0 = tl.load(block_tables_ptr + pid_b * stride_bt_b)\n\n val = tl.load(\n block_tables_ptr + pid_b * stride_bt_b + phys_col_clamped,\n mask=valid & (phys_col < SOURCE_BLOCKS),\n other=seq_block_0,\n )"} -{"text": "December 06, 1787\nTo the People of Connecticut.\nIf the propriety of trusting your government in the hands of your representatives was now a perfectly new question, the expediency of the measure might be doubted. A very great portion of the objections which we daily find made against adopting the new constitution, (and which are just as weighty objections against our present government, or against any government in existence) would doubtless have their influence; and perhaps would determine you against trusting the powers of sovereignty out of your own hands. The best theory, the best philosophy on the subject, would be too uncertain for you to hazard your freedom upon.\nBut your freedom in that sense of the expression (if it could be called sense) is already totally gone. Your Legislature is not only supreme in the usual sense of the word, but they have, LITERALLY, all the powers of society. Can you—can you possibly grant any thing new?—Have you any power which is not already granted to your General Assembly? You are indeed called on to say whether a part of the powers now exercised by the General Assembly, shall not, in future, be exercised by Congress. And it is clearly much better for your interest, that Congress should exercise those powers, than that they should continue in the General Assembly, provided you can trust Congress as safely as the General Assembly.\nWhat forms your security under the General Assembly? Nothing, save that the interest of the members is the same as yours. Will it be the same with Congress? There are essentially only two differences between the formation of Congress and of your General Assembly.—One is,—that Congress are to govern a much larger tract of country, and a much greater number of people, consequently your proportion of the government will be much smaller than at present. The other difference is—that the members of Congress when elected, hold their places for two, four, and six years, and the members of Assembly only six and twelve months.\nThe first of these differences was discussed pretty fully in the first number, (when there was no idea of proceeding thus far on the subject)and has all the force as an objection against the powers of Congress, that it would have if applied to a proposal to give up the sovereignty of the several towns of the state, (if such sovereignty had existed) and unite in state government.\nIt would be only a repetition to enter into a consideration of this difference between Congress and your assembly.\nIt has been suggested that the six or eight members which we shall send to Congress will be men of property, who can little feel any burthens they may lay on society. How far is this idea supported by experience? As the members are to pay their proportion, will they not be as careful of laying too great burthens as poorer people? Are the rich less careful of their money than the poor? This objection would be much stronger against trusting the power out of your hands at all. If the several towns were now independent, this objection would be much more forcible against uniting in state government, and sending one or two of your most wealthy men to Hartford or New-Haven, to vote away your money. But this you have tried, and have found that assemblies of representatives are less willing to vote away money than even their constituents. An individual of any tolerable economy, pays all his debts, and perhaps has money beforehand. A small school district, or a small parish, will see what sum they want, and usually provide sufficiently for their wants, and often have a little money at interest.\nTown voters are partly representatives: i.e. many people pay town taxes who have no right to vote, but the money they vote away is principally their own. The towns in this state tax themselves less willingly than smaller bodies. They generally however tax themselves sufficiently to nearly pay the demands against them within the year, very seldom raise money beforehand by taxes. The General Assembly of this state could never be induced to attempt to do more than pay the annual interest of what they owe, and occasionally sink very small parts of the principal, and they never in fact did thus much. And we are all witnesses that they are full as careful of the public money as we can wish. It never was a complaint that they were too ready to allow individuals large sums. A man who has a claim against a town, and applies to a town-meeting, is very likely to obtain justice: But he who has a claim against the state, and applies to the General Assembly, stands but a poor chance to obtain justice. Some rule will be found to exclude his claim,—or to lessen it,—or he will be paid in a security—not worth half the money.\nYou have uniformly experienced that your representatives are as careful, if not more so, of your money, than you yourselves are in your town-meetings; but still your representatives. are generally men of property, and those of them who are most independent, and those whom you have sent to Congress, have not been by any means the least careful."} -{"text": "|» Lamphun |\nLamphun - ลำพูน\nLamphun is 670 km from Bangkok, 872km from Amnat Charoen, 571km from Ang Thong, 602km from Ayutthaya, 907km from Buriram, 494km from Chainat, 643km from Chaiyaphum, 26 km from Chiang Mai, 295km from Chiang Rai, 708km from Kalasin, 316km from Kamphaeng Phet, 631km from Khon Kaen, 756km from Korat, 71km from Lampang, 581km from Loei, 558km from Lopburi, 342km from Mae Hong Son, 704km from Maha Sarakham, 877km from Mukdahan, 929km from Nakhon Phanom, 428km from Nakhon Sawan, 297km from Nan, 634km from Nong Bua Lamphu, 797km from Nong Khai, 201km from Phayao, 485km from Phetchabun, 385km from Phichit, 312km from Phitsanulok, 180km from Phrae, 744km from Roi Et, 836km from Sakon Nakhon, 604km from Saraburi, 631km from Singburi, 978km from Sisaket, 277km from Sukhothai, 954km from Surin, 214km from Tak, 916km from Ubon Ratchathani, 746km from Udon Thani, 479km from Uthai Thani, 210km from Uttaradit and 818km from Yasothon.\nLamphun Province is in Northern Thailand and shares borders with Chiang Mai, Lampang and Tak.\nIf your interested in Temples and Wats just check out our Lamphun Temples & Wats thread which includes videos.\nLamphun has a couple of local festivals, these are the Phrathat Hariphunchai Homage Paying Festival in May and the Lamphun Longan Fair in August.\nIf you have any questions on Lamphun why not post them on our Northern Thailand & Lamphun Forum or check out our About Lamphun page.\nLamphun Tourist Attractions\nNearly Songkran so time for a house warming party with coyote girls to liven it up.\nA trip to a Karen Village in southern Lamphun province.\nA road trip through Lampang and Lamphun.\nLocated in the mountains of the northern Thailand, Doi Khun Tan National Park is home to many interesting species both flora and fauna, as well as many historical spots of interest. Its most renowned feature is Thailandís longest railroad tunnel, which is 1,352 m. long.\nMae Ping National Park covers Doi Tao District, Chiang Mai province; Li District, Lam Phun Province; and Sam Ngao District, Tak Province. It is fertile forest, with riches of plants and animals. At 1,003.75 km2, the rugged mountain range and rivers make fantastic scenic, especially the upper part of Bhumipol Dam that is suited for recreation.\nBan Hong is the site of a 1,400-year-old community dating back to the Hariphunchai Kingdom. Located some 40 kilometres to the south of Lamphun, it offers a scenic and delightful vista of green fields and mountains. It also has several old temples built in admirable indigenous style, e.g., Wat Phra Chao Ton Luang with its 600-year-old Buddha statue, Wat Pa Puai and Wat Dong Rusi. The later two temples both maintain 100-year-old Ho Trai (scripture halls) built with wood in delicate patterns. Some of the natural attractions in the district include Tham Luang Pha Wiang, a cave some 15 km south of the district town. Inside the cavern are oddly-shaped stalactites. There are accommodation facilities for tourists in the district town.\nPa Sang district is a handicraft centre and famous for its handmade cotton materials which are produced mainly in Ban Nong Nguak. Also at this village is an ancient temple noted for its beautiful arches in indigenous Burmese-influenced style.\nHariphunchai National Museum\nLocated on Inthayongyot Road almost opposite Wat Phra That Hariphunchai is the Hariphunchai National Museum. Displays and exhibits include historical development and archaeological items found in Lamphun. These include prehistorical human skeletons and objects of arts from the Dvaravati, Hariphunchai, Lanna and Rattanakosin periods. A chamber in devoted to a collection of inscription stones in Mon and Lanna scripts. Another displays ancient utensils, Lanna indigenous arts and carvings.\nThe museum is open on Wednesday-Sunday from 8.30 a.m. to 4.00 p.m.\nThe admission is 100 baht.\nFor more information, contact Tel. 0 5351 1186, Fax. 0 5353 0536\nBan Nong Chang Khuen\nThe Ban Nong Chang Khuen is the most famous longan growing area in the country. The orchards are located some 8 kilometres before Lamphun and with a further 7 kilometres after a right turn. On both sides of the road are numerous longan orchards. The fruits are in season during July-August. Longans were introduced to the area during the reign of King Rama V and have since spread into neighbouring provinces. There are several species today which are popular among consumers.\nLamphun Hotels & Guesthouses\nGassan Khuntan Golf & Resort\n222 Moo 3, Tumbon Tha Pla Duk, Amphoe Mae Tha,\nTel: 053-507-006 053-507-008\nLamphun Will Hotel\n204/10 Chammathewi Road, Tumbon Nai Muang, Amphoe Mueang Lamphun, 51000\nTel: 053-534-865 053-534-866\nHuan Da Lha Hotel 1\n126 Moo 15, Tumbon Pa Sang, Amphoe Mueang Lamphun,\nTel: 053-090-149 053-090-151\nInthanon Riverside Resort\n4 Moo 4 Nong Long , King A. Wiang Nong Long ,\nTel: 053-505-166 053-279-686\n283 Moo 6 Chammathewi Road, Tumbon Muang Nga, Amphoe Mueang Lamphun,\n720 Moo 1, Pasung, Pa Sang,\nNorthern Heritage Resort\n338 Moo 4 Huai Yap , Ban Thi ,\nKhao Khontan, Tumbon Tha Pla Duk, Amphoe Mae Tha,\nHuay Sai Kao Ban Pa Pao Homestay\n48 Moo 6, Tumbon Tha Pla Duk, Amphoe Mae Tha,\n191 Moo 6 Ban Naicom, Tumbon Ban Hong, Amphoe Ban Hong,\nThe Regent Lamphun\n138/1 Moo 4 San Pa Fhay-Ban Thi Road, Ban Klang , Mueang ,\n352 /1, Tumbon Nai Muang, Amphoe Mueang Lamphun,\nVisitors: 9987, Last Visitor was Guest\nat Today - 06:41 PM. |\nPage Created at 10-10-2010 - 02:35 PM, Last Modified\n: 18-06-2011 - 03:08 PM."} -{"text": "\n\n tl.store(\n compacted_out_ptr + pid_h * stride_out_h + pid_b * stride_out_b + cols,\n val,\n mask=cols_mask,\n )\n\n\ndef _compact_block_table_width(ratio: int, topk: int) -> int:\n return max(1, ratio * topk)\n\n\ndef compact_block_tables(\n block_tables: torch.Tensor,\n selected: torch.Tensor,\n ratio: int,\n topk: int,\n) -> torch.Tensor:\n B, H, topk = selected.shape\n source_blocks = block_tables.shape[1]\n compact_blocks = _compact_block_table_width(ratio, topk)\n compacted = torch.empty((H, B, compact_blocks), dtype=block_tables.dtype, device=block_tables.device)\n\n grid = (B, H)\n block_size = 2 ** (compact_blocks - 1).bit_length()\n _compaction_kernel[grid](\n block_tables,\n selected,\n compacted,\n block_tables.stride(0),\n selected.stride(0),\n selected.stride(1),\n compacted.stride(0),\n compacted.stride(1),\n SOURCE_BLOCKS=source_blocks,\n OUT_BLOCKS=compact_blocks,\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n TOPK=topk,\n )\n return compacted\n\n\ndef _fused_score_select(\n idx_q: torch.Tensor,\n index_k_cache: torch.Tensor,\n layer_local_idx: int,\n block_tables: torch.Tensor,\n seq_lens: torch.Tensor,\n sparse: MiniMaxM3SparseAttentionConfig,\n) -> torch.Tensor:\n B, H, D = idx_q.shape\n max_blocks = block_tables.shape[1]\n ratio = sparse.sparse_block_downshard_ratio\n # ceil-div: an odd block-table width keeps the trailing half-populated sparse\n # block. Flooring drops the newest sparse block from the score buffer / MSB,\n # so decode can't select recent KV on odd-page sequences.\n msb = triton.cdiv(max_blocks, ratio)\n block_size = sparse.kv_cache_block_size\n topk = min(sparse.sparse_topk_blocks, msb)\n\n layer_cache = index_k_cache[layer_local_idx, :, 0]\n\n # Score: chunk the sequence's blocks over the SMs. Keep chunk count\n # graph-shape-only; empty chunks return early in the kernel. The buffer\n # can stay uninitialized: the chunk union writes every block < num_sb and\n # _select_kernel masks entries >= num_sb (and non-finite garbage) itself.\n head_blocks = triton.cdiv(H, _SCORE_BLOCK_H)\n target = max(\n 1,\n min(_SCORE_MAX_CHUNKS, _SCORE_TARGET_CTAS // max(1, B * head_blocks)),\n )\n num_chunks = min(msb, 1 << (target.bit_length() - 1))\n sparse_block_tokens = block_size * ratio\n block_n = max(sparse_block_tokens, _SCORE_BLOCK_N)\n block_n = triton.cdiv(block_n, sparse_block_tokens) * sparse_block_tokens\n block_d = max(32, triton.next_power_of_2(D))\n scores = torch.empty((B, H, msb), dtype=torch.float32, device=idx_q.device)\n _score_kernel[(B, head_blocks, num_chunks)](\n idx_q,\n layer_cache,\n block_tables,\n seq_lens,\n scores,\n idx_q.stride(0),\n idx_q.stride(1),\n layer_cache.stride(0),\n layer_cache.stride(1),\n block_tables.stride(0),\n scores.stride(0),\n scores.stride(1),\n H=H,\n D=D,\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n NUM_KV_CHUNKS=num_chunks,\n BLOCK_H=_SCORE_BLOCK_H,\n BLOCK_D=block_d,\n BLOCK_N=block_n,\n num_warps=_SCORE_NUM_WARPS,\n num_stages=_SCORE_NUM_STAGES,\n )\n\n # _select_kernel overwrites every element; no init fill needed.\n selected = torch.empty((B, H, topk), dtype=torch.int32, device=idx_q.device)\n _select_kernel[(B, H)](\n scores,\n seq_lens,\n selected,\n scores.stride(0),\n scores.stride(1),\n selected.stride(0),\n selected.stride(1),\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n TOPK=topk,\n MSB=msb,\n INIT_BLOCKS=sparse.sparse_init_block,\n LOCAL_BLOCKS=sparse.sparse_local_block,\n )\n return selected\n\n\n@triton.jit(do_not_specialize=[\"NUM_KV_CHUNKS\"])\ndef _score_kernel_grouped(\n idx_q_ptr, # [B, T, H, D]\n ik_cache_ptr, # [num_blocks, block_size, D]\n block_tables_ptr, # [B, max_blocks] (per-sequence, max range)\n seq_lens_ptr, # [B, T] (per-position causal length)\n scores_out_ptr, # [B, T, H, msb]\n stride_q_b,\n stride_q_t,\n stride_q_h,\n stride_ik_p,\n stride_ik_t,\n stride_bt_b,\n stride_sl_b,\n stride_sc_b,\n stride_sc_t,\n stride_sc_h,\n T: tl.constexpr,\n H: tl.constexpr,\n D: tl.constexpr,\n BLOCK_SIZE: tl.constexpr,\n RATIO: tl.constexpr,\n NUM_KV_CHUNKS,\n BLOCK_H: tl.constexpr,\n BLOCK_D: tl.constexpr,\n BLOCK_N: tl.constexpr,\n):\n \"\"\"Spec-decode scorer that loads each sequence's index-K ONCE and scores all\n T*H query rows (the T speculative positions x H index heads) against it, with\n per-position causal masking. Equivalent to calling _score_kernel on B*T rows,\n but reads the index-K history ~T x less (the redundant re-read across the T\n spec positions of a sequence is the dominant decode HBM cost). Selection stays\n per-row (each row keeps i"} -{"text": "The mere fact that you’re reading this review probably indicates that you own a few gadgets. And with gadgets come charging cables and stands. If your house is like mine, you probably have more charging cables than you have outlets. With so many cables, it’s hard to keep my charging area tidy. And since Apple likes to keep everything white, it’s sometimes difficult to keep the iPod charger and the iPad charger straight. A single device that can charge multiple gadgets helps simplify my charging setup, so I was happy to give the XtremeMac Incharge Duo for iPad charging station a try when they offered one to The Gadgeteer for review.\nAll the pictures in this review can be clicked for an enlarged view.\nWhat’s in the Box\nInCharge Duo for iPad docking stand\nTwo removable converters: one for iPad, one for iPhone/iPod\nDock inserts for a variety of iPhones and iPods\nAC power supply with a 2-prong wall adapter for US\nThe InCharge Duo for iPad is made of black plastic with dark gray accents. The base has two standard Apple docking connectors. You easily convert the charger from an iPhone/iPod plus iPad charger to a dual iPhone/iPod charger using the two large, removable covers for the back of the InCharge Duo. There are a variety of inserts for the docking wells to support an iPod Classic, iPhone 3G, iPhone 4, iPod nano 5th gen, or iPod touch 2nd gen. You get one each of these inserts.\nThe manual says that the front dock charges at 1 amp for iPhone/iPod. The rear dock charges at 2.1 amps for the iPad, but it can adapt to charge at 1 amp if you have the InCharge Duo set up for charging two iPhones/iPods. There is no switch for the back dock to toggle it between 1 amp and 2.1 amps. I also looked at the two plates for the back part of the InCharge Duo, but I couldn’t find a peg that depresses a switch to change the charging amperage. The manual lists the iPods and iPhones that can be charged on the back dock: iPod nano 1st, 2nd, 3rd, 4th, and 5th generations; iPod Classic 160GB 2009; iPod touch 1st and 2nd generation; iPhone, iPhone 3G, iPhone 3GS, iPhone 4. (iPod touch and iPhone models must be iOS 3.0 or later.) All models not listed here charge on the front dock only.\nThe InCharge Duo came with the iPad converter in place. You can see in this photo the iPhone/iPod converter as it is being put on. The front tabs have been placed in the slots, and it is being dropped into position. It’s held in place by friction. To remove the converter, pull up on the back corners.\nI put the touch 2nd gen insert into the front charging well and the iPad converter on the back of the InCharge Duo for my first attempt at charging two devices. I had to remove my touch from its tiny Belkin Grip Vue case to fit it into the adapter. I also had to remove my iPad from its case to fit it into the iPad charging dock. I don’t think any case other than a sticker-type skin will fit with the InCharge Duo.\nThere are two charging status LEDs on the front of the InCharge Duo. The left LED shows charging status for the device in the front dock, and the right LED is for the back dock. The LED is orange to let you know the device is docked properly and is charging. When the battery reaches about 95% full, the LED turns green.\nIf you want to charge two iPhones/iPods, you may have to supply your own in-well adapter for the second device. We don’t have iPhones, but we do have multiple iPod touch 2nd gens and a nano 6th gen. There was no adapter for the nano (didn’t fit into the one for the 5th gen), and only one adapter for the touch. We did have an old iPod that fit the adapter for the Classic. Luckily, my touch is using iOS 4, so it could charge on the back dock. Both iPods charged on the InCharge Duo with no problems.\nThe XtremeMac InCharge Duo for iPad is a great addition to your charging area when you own a variety of Apple iOS devices. You can charge two devices at once using a single outlet. You can also easily convert the iPad dock into a second iPhone/iPod dock to increase the usefulness."} -{"text": "After nearly fifteen years I still contemplate those two dreadful swatches of winter and spring with undiminished horror. One was either sleeping, eating, prepping for a test or taking a test; and both sleeping and eating were curtailed in order to leave more time for prepping.\nOnce, halfway through the ordeal, a friend persuaded me to unwind by leaving campus and heading into Boston to spend the afternoon at the Museum of Fine Arts. Unfortunately, I was an art history major. Instead of losing my cares for a couple of hours in the loveliness, after fifteen minutes I had a panic attack in front of a Renoir and fled back to my books.\nOctober has felt a bit like that. I was either traveling to something or from something; or packing something; or shipping something; or drawing something; or photographing something; or writing something; or signing something; or writing about traveling or packing or shipping or drawing or writing or signing.\nNotice, among all those -ings, the absence of knitting.\nNot that there wasn't any. It's just all been small and simple, and some of it (like the patterns for the next column in Knitty) I can't show you in advance or Amy Singer will get all huffy.\nBut I am heartily sick of not blogging about knitting. Today, although a gaggle of -ings has clustered around my ankles to scream for attention, I'm shutting them all in the bathroom so I can show you the latest sweater for Abigail.\nThe knitting itself is as plain as plain gets: Baby Pullover #214 from always-reliable Knitting Pure and Simple. Top-down, raglan sleeves, highly recommended without reservations. My only changes were to work a seed stitch collar and cuffs, instead of rolled stockinette.\nThe yarn, Lorna's Laces Shepherd Worsted in \"Aslan,\" was pretty all by itself. But when the sweater was finished I wasn't happy with it. Handsome, sure. But dull. No dash. No surprise. A dish of ice cream with no cherry on top. Rock without roll. Mary-Kate without Ashley.\nDuring my infrequent, unoccupied moments at home I'd pick it up and turn it over and squint at it, and then throw it back into the workbasket. I briefly considered slicing the front to make a cardigan with Fun Buttons, but I've had no time to shop around for Fun Buttons.\nThen I opened one of the doors on the stash cupboard to hunt for something and three or four small balls of leftover Dream in Color from Abigail's Tulip Jacket fell out. The memory of a bird I'd seen pecking at a bush on Fremont Street knocked up against the memory of a embroidering the Baby Kimono, and a Eureka Moment ensued. (Passers-by in the street heard only a soft popping sound, but for me it was a great relief.)\nI consulted briefly with my embroidery books, made a few preliminary sketches, and turned the pullover into \"Bird and Berry.\"\nOne sleeve, the back, and the front all have the same sort of vine growing from the bottom up. It's just a feathered chain stitch with two-stitch \"berries\" sprouting at random.\nOn the front, one of the vines has a little brown bird perched on top, with a berry in its beak.\nIf you haven't tried embroidering on a piece of knitting, I highly recommend it. I liken it to working cables. For example:\n- a well-chosen motif can add immensely to the success of a project;\n- it's much simpler to do than it looks, given a little study and practice, and;\n- to the uninitiated, it looks like magic, and you are not required to disillusion them.\nLittle Book News\nThe hometown launch for It Itches happened on Sunday at Arcadia Knitting an oh, what a merry crowd. It was a charge to stand in the same spot where'd I'd seen Debbie Stoller and Stephanie Pearl-McPhee talk about their work, and read aloud from mine. I wanted to hug everybody who took the time to come say hello. I think I probably did hug about three-quarters of you. I'm turning into the Leo Buscaglia of knitting.\nWord is that the book is hitting the store shelves and (finally) landing in the mailboxes of those who placed pre-orders back when it was nothing but a pile of crumpled, ink-stained paper with a terrified cartoonist in the middle.\nI spotted it in the wild for the first time at the Borders on State Street, and because I am a shameless, sentimental geek I took a picture. Sue me.\nHoly crap. Right there next to Louisa Harding. And me, just a simple girl from Kansas with a pair of tap shoes and a dream.\nMeanwhile, several folks have been kind enough to write about it, including The Knitting Scholar, who gave me the royal treatment–an interview and a review. I've also chatted about it on \"Ready, Set, Knit,\" the WEBS Podcast; and the KnitPicks Podcast.\nThe Guys with Yarn 2009 Calendar is back in the Etsy shop, and a new batch of prints and gift enclosure cards will follow on Monday. The 2008 tree ornament and its ancestors are still available in the Cafe Press shop, where I'm hoping to launch new variations on the 1,000 Knitters bags and shirts this week."} -{"text": "ts own scores -> own top-k).\"\"\"\n TH: tl.constexpr = T * H\n SPARSE_BLOCK_TOKENS: tl.constexpr = BLOCK_SIZE * RATIO\n BLOCKS_PER_PROGRAM: tl.constexpr = BLOCK_N // SPARSE_BLOCK_TOKENS\n BLOCKS_PER_TILE: tl.constexpr = BLOCK_N // BLOCK_SIZE # distinct kv-blocks per BLOCK_N tile\n tl.static_assert(BLOCK_N % SPARSE_BLOCK_TOKENS == 0)\n\n pid_b = tl.program_id(0)\n pid_hb = tl.program_id(1)\n pid_c = tl.program_id(2)\n\n # Scoring range = max causal length over the T spec positions. Do NOT assume\n # the last timestep is largest: compute_meta_incr can zero/clamp a row near the\n # context limit while earlier draft rows stay positive, which would otherwise\n # collapse the scan and starve those rows (per-row causal mask is applied via\n # row_seq below). T is constexpr so this unrolls.\n max_seq = tl.load(seq_lens_ptr + pid_b * stride_sl_b)\n for _t in range(1, T):\n max_seq = tl.maximum(max_seq, tl.load(seq_lens_ptr + pid_b * stride_sl_b + _t))\n num_sb = (max_seq + SPARSE_BLOCK_TOKENS - 1) // SPARSE_BLOCK_TOKENS\n chunk_size = (num_sb + NUM_KV_CHUNKS - 1) // NUM_KV_CHUNKS\n sb_start = pid_c * chunk_size\n sb_end = tl.minimum(sb_start + chunk_size, num_sb)\n if sb_start >= sb_end:\n return\n\n h_offs = tl.arange(0, BLOCK_H)\n d_offs = tl.arange(0, BLOCK_D)\n n_offs = tl.arange(0, BLOCK_N)\n blk_of = n_offs // BLOCK_SIZE # which kv-block within the tile each token belongs to\n off_of = n_offs % BLOCK_SIZE # token offset within its kv-block\n blk_cols0 = tl.arange(0, BLOCKS_PER_TILE)\n sparse_block_offsets = tl.arange(0, BLOCKS_PER_PROGRAM)\n hr = pid_hb * BLOCK_H + h_offs # flattened (t,h) row index in [0, TH)\n hr_mask = hr < TH\n dim_mask = d_offs < D\n t_of = hr // H\n h_of = hr % H\n row_seq = tl.load(seq_lens_ptr + pid_b * stride_sl_b + t_of, mask=hr_mask, other=0)\n num_kv_blocks = (max_seq + BLOCK_SIZE - 1) // BLOCK_SIZE\n\n q = tl.load(\n idx_q_ptr + pid_b * stride_q_b + t_of[:, None] * stride_q_t + h_of[:, None] * stride_q_h + d_offs[None, :],\n mask=hr_mask[:, None] & dim_mask[None, :],\n other=0.0,\n )\n scale = 1.0 / tl.sqrt(float(D))\n\n token_start = sb_start * SPARSE_BLOCK_TOKENS\n token_end = sb_end * SPARSE_BLOCK_TOKENS\n bt_base = block_tables_ptr + pid_b * stride_bt_b\n for tok0 in range(token_start, token_end, BLOCK_N):\n tok = tok0 + n_offs\n valid_token = tok < max_seq\n # Load the block table once per kv-block (BLOCKS_PER_TILE entries), not per\n # token: shrinks the dependent block-table load and shortens the phys->K\n # critical chain (the K gather address depends on phys).\n blk_cols = tok0 // BLOCK_SIZE + blk_cols0\n phys_blk = tl.load(bt_base + blk_cols, mask=blk_cols < num_kv_blocks, other=-1)\n phys = tl.reshape(tl.broadcast_to(phys_blk[:, None], (BLOCKS_PER_TILE, BLOCK_SIZE)), (BLOCK_N,))\n phys_safe = tl.maximum(phys, 0)\n valid_kv = valid_token & (phys >= 0)\n k = tl.load(\n ik_cache_ptr + phys_safe[None, :] * stride_ik_p + off_of[None, :] * stride_ik_t + d_offs[:, None],\n mask=dim_mask[:, None] & valid_kv[None, :],\n other=0.0,\n )\n # Upconvert for fp8_cast index caches; no-op when dtypes match.\n k = k.to(q.dtype)\n qk = tl.dot(q, k) * scale\n # per-row causal: token < that position's seq_len\n row_valid = (tok[None, :] < row_seq[:, None]) & valid_kv[None, :] & hr_mask[:, None]\n qk = tl.where(row_valid, qk, -1e30)\n qk = tl.reshape(qk, (BLOCK_H, BLOCKS_PER_PROGRAM, SPARSE_BLOCK_TOKENS), can_reorder=False)\n block_scores = tl.max(qk, axis=2)\n\n sb = (tok0 // SPARSE_BLOCK_TOKENS) + sparse_block_offsets\n tl.store(\n scores_out_ptr\n + pid_b * stride_sc_b\n + t_of[:, None] * stride_sc_t\n + h_of[:, None] * stride_sc_h\n + sb[None, :],\n block_scores,\n mask=hr_mask[:, None] & (sb[None, :] < sb_end),\n )\n\n\ndef _fused_score_select_grouped(\n idx_q: torch.Tensor, # [B*T, H, D]\n index_k_cache: torch.Tensor,\n layer_local_idx: int,\n block_tables_seq: torch.Tensor, # [B, max_blocks] (per-sequence)\n seq_lens_bt: torch.Tensor, # [B*T]\n sparse: MiniMaxM3SparseAttentionConfig,\n T: int,\n selected_out: Optional[torch.Tensor] = None,\n) -> torch.Tensor:\n \"\"\"Spec-decode score+select that dedups the index-K read across the T spec\n positions of each sequence. Returns selected [B*T, H, topk] (per-row, same as\n _fused_score_select). ``selected_out`` may supply the output tensor (e.g. a\n strided view of a collective input buffer); every element is overwritten.\"\"\"\n BT, H, D = idx_q.shape\n B = BT // T\n ratio = sparse.sparse_block_downshard_ratio\n max_blocks = block_tables_seq.shape[1]\n msb = triton.cdiv(max_blocks, ratio)\n block_size = sparse.kv_cache_block_size\n topk = min(sparse.sparse_topk_blocks,"} -{"text": "Review: Del Taco Turkey Tacos\nFor those who know me, it’s no surprise to hear that Del Taco is one of my guilty pleasures. I avoid most fast food, but Del Taco’s tasty little tacos keep me coming back for more. They’re cheap, crunchy, and addictive; despite their poor nutritional qualities. So imagine my surprise when I pulled into Del Taco for some lunch the other day and found they were offering ground turkey tacos! What? Ground turkey? A “healthy” option at my fast food chain? That’s gotta be a first in the industry. The sign said 33% less fat than their regular beef tacos, and I was sold.\nNew Turkey Tacos at Del Taco are Delicious\nI ordered a couple of the turkey tacos, and a few of my traditional beef hard shell tacos and took my seat with haste. I unfolded the paper wrapper on my first turkey taco and found a perfectly constructed taco half-filled with ground turkey, the other half with lettuce, cheese, and pico de gallo. It looked delicious. I added a little hot sauce on top and took a bite. Crunch! Chew, chew, mmm…..\n“What is that on my tongue? There’s actually texture to the meat, like what I’d expect from a ground meat taco. And there’s…..FLAVOR!” These turkey tacos are full of delicious flavor. A nice clean tasting spiced meat. I devoured taco number one and promptly bit into taco number two. But then I remembered that I wanted to compare the standard beef tacos to the new turkey version, so I put the turkey down and opened up its little beef brother.\nWhat a disappointment! My once favorite fast food taco now tasted like crap. The first note on my tongue was of undiluted beef bouillon. The next, cheap meat. But the texture was what really disappointed me. It was more like canned dog food than ground beef. What the hell just happened here? I loved these little beef tacos, but now all I wanted to do was to throw them on the floor, yell at them, and replace them with turkey tacos!\nDel Taco Turkey Tacos Come in Two Different Sizes\nOn my way out, I asked the store manager a couple questions about the turkey tacos, namely about size comparisons with the beef taco. She informed me that the advertised turkey tacos are the equivalent size to the double beef Classic taco. She then informed me that they also offer a Value Turkey Taco version for $0.89 that is equivalent to the regular beef taco ($0.59). Sweet! I went back the next day and ordered some of each to compare. Here’s how the two look side by side:\nAs you can see, there is a substantial difference in the amount of filling. But for $0.40 more, is the larger turkey taco worth it? Well, I guess that depends on your taco preferences. Both are delicious, and both are significantly better tasting than the beef versions. But I think I like that larger turkey better because there is more meat/flavor to each bite. Oddly enough, the pico on it doesn’t really do much for me. In fact, I found the flavors of it distracting against the turkey. But me being me, I ate it anyway. So if you want more crunch and are looking to cut cost, go with the Economy taco. Otherwise, sink your teeth into the happy grown sibling bird.\nDel Taco Turkey Taco Nutrition\nDon’t get fooled thinking these tacos are good for you. They’re still from a fast food restaurant, and are filled with sodium, fat, sugars, and wheat and soy fillers. But compared to their beef counterpart, these are actually pretty decent. Del Taco hasn’t published the Value version nutritional information yet, but here’s the regular version’s info with a comparison to the classic beef:\nSo there you have it. 33% less fat, and 25% less calories than the Classic Beef Taco. Del Taco’s Turkey Taco is better tasting, and is a healthier pick as well. I’m sold and am in love. $1.29 is quite a bit more than the $.59 regular beef tacos at Del Taco, but it is worth every penny both in flavor and calorie reduction. You have a winner here Del Taco. I hope you keep turkey on your permanent menu!\nThe Bald Gourmet loves the new Turkey Tacos at Del Taco.\n2 Comments + Add Comment\nI love hearing from my readers, so please go ahead and leave a comment!\n- The Bald Gourmet on Recipe: Honey Molasses Wheat Bread\n- les on Recipe: Honey Molasses Wheat Bread\n- LaVon Grandy on What are Elderberries?\n- Chris on Recipe: Best Home Canned Thick and Chunky Salsa\n- debbie mccaffrey on Review: Safe Catch, The First 100% Mercury Tested Albacore Tuna. The New Whole Foods of the Sea."} -{"text": "Former Commissioner Lee Hearn delivers payback\nMany of the meetings of the pre-2013 Fayette County Commission came with negative comments accusing the three outgoing board members with a number of improprieties and a lack of transparency.\nNow it’s payback time.\nFormer Commissioner Lee Hearn fired back March 14, leveling a number of volleys at the “new” board and especially at Chairman Steve Brown. Among those was the proposal that some in the county were drinking “Brown Kool-Aid.”\nHearn in a very lengthy statement which he read in its entirety without interruption noted a number of issues pertaining to his view of some of the actions by Brown and other commissioners. Hearn’s comments are contained in a letter to the editor on Page A5.\nA number of commissioners before the meeting ended gave their responses to Hearn’s comments.\nHearn at the outset of his remarks noted a recent conversation he had with County Administrator Steve Rapson in which Rapson asked him why he came to commission meetings to complain about board actions.\n“... I decided that the reason I keep coming back is to hopefully convince four of the commissioners that they are being given some very bad advice by the chairman. After spending two long years of listening to his divisiveness, I think that I have a pretty good feel for what he is trying to achieve before the guys catch on to his antics,” Hearn said.\nHearn said a friend told him the problem with his approach at commission meetings could be perceived as sour grapes. He said the “new” board continues to harp on how they want all their actions to be transparent and above reproach, but contended that some in the community are drinking the “Brown Kool-Aid.”\nHearn went on to say that Brown no longer has former County Administrator Jack Krakeel to berate or attorney Scott Bennett to mistrust.\n“You now have three commissioners who are willing to follow you anywhere that you want to lead them, a big ‘budget guru’ county administrator who you personally selected and chose and a new interim county attorney who has no ethical problem with representing two opposing parties on the same (Local Option Sales Tax) distribution tax issue,” Hearn said.\nHearn went on to make a number of statements on the LOST issue, comparing the actions of the old and new boards. He said that while the current board did not conduct public meetings on LOST, commissioners did have public meetings on the stormwater utility even though those revenues are small in comparison to sales tax revenues.\nHearn said county staff prior to Dec. 31 concluded that the county’s share of LOST revenues should be 57 percent rather than decrease to the 48.5 percent share the county will see in the next five years, an amount agreed to by commissioners in negotiations with the municipalities. That difference, said Hearn, would amount to $14.5 million in additional county revenues.\n“This $14.5 million gift is the result of a deal that the chairman made with his buddy (Fayetteville Mayor Greg Clifton). There was no reason for the cities to negotiate honestly with the county and the previous board because they had already been promised by Mr. Brown that he could deliver the votes to give the cities whatever they wanted. Of course, in return for their support of his candidates last fall it only cost the taxpayers in the unincorporated area of the county 30 pieces of silver or $14.5 million in today’s currency,” Hearn said.\nHearn continued, chastising the commission for “ousting” Fayette County Fire and Emergency Services Director Allen McCullough.\nMayor Clifton, who was present at the meeting, rebutted Hearn’s remarks during public comments. Clifton said Brown did not deserve Hearn’s criticism, adding that the cities agreed to the LOST revenue negotiated settlement rather than having the matter resolved in court.\nRapson in the administrative report said some of Hearn’s comments were extremely misleading.\n“Saying $14.5 million doesn’t make it so,” Rapson said.\nBrown also weighed in on Hearn’s extended comments. Brown said both the county and the cities “gave something” during the recent LOST negotiations.\nAnd during commissioners’ comments, Commissioner Charles Oddo in a statement that appeared to be one intended with some humor as evidenced by a few chuckles from the audience, said, “With all due respect to Commissioner Brown, I wouldn’t follow him anywhere.”\nCommissioner Allen McCarty followed, saying, “We all have our own minds.”"} -{"text": " msb)\n\n layer_cache = index_k_cache[layer_local_idx, :, 0]\n idx_q4 = idx_q.view(B, T, H, D)\n seq_lens2 = seq_lens_bt.view(B, T)\n TH = T * H\n\n head_blocks = triton.cdiv(TH, _SCORE_BLOCK_H)\n target = max(1, min(_SCORE_MAX_CHUNKS, _SCORE_TARGET_CTAS // max(1, B * head_blocks)))\n num_chunks = min(msb, 1 << (target.bit_length() - 1))\n sparse_block_tokens = block_size * ratio\n block_n = max(sparse_block_tokens, _SCORE_BLOCK_N)\n block_n = triton.cdiv(block_n, sparse_block_tokens) * sparse_block_tokens\n block_d = max(32, triton.next_power_of_2(D))\n # Uninitialized is safe: the chunk union writes every block < num_sb (per\n # group max_seq) and _select_kernel masks entries >= each row's own num_sb\n # (and non-finite garbage) itself.\n scores = torch.empty((B, T, H, msb), dtype=torch.float32, device=idx_q.device)\n _score_kernel_grouped[(B, head_blocks, num_chunks)](\n idx_q4,\n layer_cache,\n block_tables_seq,\n seq_lens2,\n scores,\n idx_q4.stride(0),\n idx_q4.stride(1),\n idx_q4.stride(2),\n layer_cache.stride(0),\n layer_cache.stride(1),\n block_tables_seq.stride(0),\n seq_lens2.stride(0),\n scores.stride(0),\n scores.stride(1),\n scores.stride(2),\n T=T,\n H=H,\n D=D,\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n NUM_KV_CHUNKS=num_chunks,\n BLOCK_H=_SCORE_BLOCK_H,\n BLOCK_D=block_d,\n BLOCK_N=block_n,\n num_warps=_SCORE_NUM_WARPS,\n num_stages=_SCORE_NUM_STAGES,\n )\n\n scores_flat = scores.view(BT, H, msb)\n if selected_out is not None:\n assert selected_out.shape == (BT, H, topk) and selected_out.dtype == torch.int32\n assert selected_out.stride(2) == 1, \"select kernel needs a contiguous topk dim\"\n selected = selected_out\n else:\n # _select_kernel overwrites every element; no init fill needed.\n selected = torch.empty((BT, H, topk), dtype=torch.int32, device=idx_q.device)\n _select_kernel[(BT, H)](\n scores_flat,\n seq_lens_bt,\n selected,\n scores_flat.stride(0),\n scores_flat.stride(1),\n selected.stride(0),\n selected.stride(1),\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n TOPK=topk,\n MSB=msb,\n INIT_BLOCKS=sparse.sparse_init_block,\n LOCAL_BLOCKS=sparse.sparse_local_block,\n )\n return selected\n\n\ndef _ceil_power_of_2(value: int) -> int:\n return 1 << (max(1, value) - 1).bit_length()\n\n\n# CuteDSL decode scorer dispatch. Default on; kill-switch for triage.\n_CUTE_SCORE_ENABLED = os.environ.get(\"FIREWORKS_M3_CUTE_SCORE\", \"1\") == \"1\"\n\n\n@functools.lru_cache(maxsize=None)\ndef _cute_score_module():\n \"\"\"Lazy import of the CuteDSL decode scorer; None when deps are missing.\"\"\"\n try:\n from fireworks.models.minimax_m3 import minimax_m3_decode_score_cute\n\n return minimax_m3_decode_score_cute\n except ImportError:\n return None\n\n\ndef _maybe_cute_score_select_grouped(\n idx_q: torch.Tensor, # [B*T, H, D] bf16\n index_k_cache: torch.Tensor,\n layer_local_idx: int,\n block_tables_seq: torch.Tensor, # [B, max_blocks] (per-sequence)\n seq_lens_bt: torch.Tensor, # [B*T]\n sparse: MiniMaxM3SparseAttentionConfig,\n T: int,\n selected_out: Optional[torch.Tensor] = None,\n) -> Optional[torch.Tensor]:\n \"\"\"Run the CuteDSL decode scorer when eligible, else None (Triton fallback).\n\n Eligibility (checked per call; cheap): bf16 Q, T*H <= 24 query rows,\n index_dim 128, page 64, and a cache dtype the kernel supports (bf16 HMMA\n or fp8_cast e4m3 QMMA — Q is quantized to e4m3 inside the kernel).\n \"\"\"\n if not _CUTE_SCORE_ENABLED:\n return None\n mod = _cute_score_module()\n if mod is None:\n return None\n BT, H, D = idx_q.shape\n layer_cache = index_k_cache[layer_local_idx, :, 0]\n if idx_q.dtype != torch.bfloat16:\n return None\n if not mod.can_run_cute_decode_score(\n T=T,\n H=H,\n index_dim=D,\n page_size=layer_cache.shape[1],\n ratio=sparse.sparse_block_downshard_ratio,\n dtype=layer_cache.dtype,\n ):\n return None\n return mod.fused_score_select_grouped_cute(\n idx_q,\n index_k_cache,\n layer_local_idx,\n block_tables_seq,\n seq_lens_bt,\n sparse,\n T,\n selected_out=selected_out,\n )\n\n\ndef _score_select_grouped_any(\n idx_q: torch.Tensor, # [B*T, H, D]\n index_k_cache: torch.Tensor,\n layer_local_idx: int,\n block_tables_seq: torch.Tensor, # [B, max_blocks]\n seq_lens_bt: torch.Tensor, # [B*T]\n sparse: MiniMaxM3SparseAttentionConfig,\n T: int,\n selected_out: Optional[torch.Tensor] = None,\n) -> torch.Tensor:\n \"\"\"Grouped score+select via the CuteDSL scorer when eligible, else Triton.\"\"\"\n selected = _maybe_cute_score_select_grouped(\n idx_q,\n index_k_cache,\n layer_local_idx,\n block_tabl"} -{"text": "Flirting comes in many forms: a casual gaze that lingers a half second longer than necessary, a light touch, an amorous expression, an overenthusiastic laugh during conversation, or even some playful or overtly sexual banter.\nRegardless of the technique employed, flirting aims to fulfill one purpose: stimulate sexual interest. To be clear, though, flirting may not have the explicit goal of having sex or even physical intimacy of any kind. A person may flirt simply to pass the time, to feel close, to see if they’ve still got it or because it’s fun. Flirting motivations differ by gender. Big surprise: men’s flirting is more motivated by sex, while women’s flirting is more motivated by having fun or becoming closer to another person.\nSelf-esteem and flirting\nWhen done well, flirting is not overt or obvious and always leaves open the possibility that flirting wasn’t occurring at all. This ambiguity allows people to put themselves out there with less fear of embarrassment, rejection or damaged self-esteem.\nIt isn’t surprising that a person’s self-esteem may affect how she or he approaches flirting. When the risk of being rejected is high, men with high self-esteem use more direct techniques than those with low self-esteem, perhaps because they’re less concerned with how being shot down may affect them. However, men with low self-esteem are bolder and use more obvious approaches than men with high self-esteem when the target is clearly interested and rejection risk is low. This may be because encountering a sure thing is one of the only contexts in which a guy with low self-esteem feels safe making advances, so he has to make it count.\nWhen rejection risk is low for women, they’re more direct regardless of their self-esteem. Women traditionally initiate relationships less often than men, so when the chance arises perhaps women decide to throw caution to the wind and just go for it. Of course it is also possible that women are using the technique that they know works better when men try to flirt with them.\nSubtle vs. direct\nMuch like a tree falling in a forest, if a flirting attempt occurs and the intended receiver doesn’t realize it, did flirting ever really happen?\nWhen it comes to flirting technique the research is pretty clear: while subtlety is more likely to protect the flirter’s self-esteem, if you really want to get your message across, direct is best. A study asked college students about the most effective ways to show interest in someone. Both men and women agreed that subtle flirting was less likely to get the job done, and that the best approach would be a direct “Do you want to go to dinner with me?”\nA key benefit to direct flirting approaches, especially for the person on the receiving end, is that they are clear and easier to interpret. Protect your ego too carefully by maintaining complete deniability and you run the risk of no one receiving your too-subtle signals.\nNow you see it, or maybe you don’t\nTo see how easy it is to accurately perceive flirting, researchers gave more than 100 heterosexual strangers the opportunity to interact for ten minutes. Afterwards, each participant indicated whether they were flirting or not and whether they thought their partner was flirting.\nOverall, almost a quarter of the participants flirted during their interaction. But participants accurately perceived that flirting only 28% of the time, with males more accurate at detecting female flirting (36%) than females were at detecting male flirting (18%). Those numbers are all fairly low, but people were much better at knowing when their partner was not flirting, accurately characterizing lack of flirting 84% of the time. Of course, this could be because most of the time participants weren’t flirting, making it easier to correctly guess that a participant wasn’t making eyes.\nAre outside observers any better at detecting flirting than participants are? Researchers had more than 250 people view one-minute video clips from the earlier interactions to see if they could accurately identify flirting in strangers. Observers who simply watched the interaction were even less accurate at identifying flirting than those who were actually involved. Once again, males were more accurate at recognizing when women flirted, but men generally tend to overestimate women’s interest, giving them more of a chance to be correct when women actually were flirting.\nAcross both studies, the ability to detect flirting was probably lower than any flirty person would like. But as lead researcher Jeffrey Hall explains:\nBehavior that is flirtatious is hard to see, and there are several reasons for that. People aren’t going to do it in obvious ways because they don’t want to be embarrassed, flirting looks a lot like being friendly and we are not accustomed to having our flirting validated so we can get better at seeing it.\nThe science of flirting suggests that when you want to create sexual interest in another person and really want to get your message across, don’t mess around. Direct methods are best. An ambiguous approach is less threatening, but ultimately not very effective. People just aren’t very good at perceiving flirting."} -{"text": "August 10, 1915. The Gallipoli sun beats down on the back of a Turkish sharpshooter. He is patient and used to the discomfort. He wipes the sweat from his eyes and peers back down the sight of his rifle, sweeping back and forth across the enemy lines. He’s hoping to spot a target worth taking a shot at as each muzzle flash risks giving his position away.\nHis sight settles on the shoulder pip of a second lieutenant. The target bends down out of sight, then reappears, now with a phone at his ear. He stands still as he sends his dispatch. It’s an easy shot for the sniper. He squeezes the trigger and yet another young man dies.\nThe Turkish soldier settles down in his hole, pleased with his marksmanship. He wonders if he’s made a significant difference to the war effort (probably not).\nHowever, he may well have caused the single most costly death of the entire war. His victim, now lying in a trench on a peninsula in Turkey, is 27-year-old Henry Moseley. The loss to science is incalculable.\nDespite his young age, Moseley had already made a stunning contribution to chemistry and physics. It is thanks to him that that the periodic table looks the way it does today.\nHe had graduated from Oxford just five years before his death. Immediately after graduating he was employed as a teaching assistant by the great physicist Ernest Rutherford in Manchester. Moseley hated it, describing his duties as “teaching elements to idiots” and his students as “mostly stupid”. His real passion was research, so in his spare time he used his energies to set up his experiments.\nMoseley was working in an era of physics that was concerned with the power of X-rays. The Braggs, a father-son team working in Leeds, were developing X-ray crystallography. This allowed science to probe the atomic structure of molecules.\nBut instead of jumping on that bandwagon – shining X-rays at crystals to work out chemical structures – Moseley turned his attention to the elements themselves. He studied the X-rays the elements gave off when bombarded with electrons. His results had major implications for the famous periodic table in which elements are presented.\nBack in 1869, Dimitri Mendeleev arranged the elements in a logical fashion. He ordered them by weight and then laid them out in a table. Next he shuffled the dimensions of his table to take similarities of elements into account. For example, lithium, sodium and potassium have similar chemical properties and were arranged in one group on a line of the table (modern tables have been flipped so that these groups are now in columns).\nLikewise for fluorine, chlorine, bromine and iodine. And so the periodic table was born. The elements were now arranged in a clear sequence – and each was given an atomic number denoting its position in that sequence. But there were a few problems, some elements didn’t quite fit the order. Their behaviour suggested one position in the table, but their atomic weight put them somewhere else. So the atomic weight and atomic number of the elements didn’t quite correlate.\nIn Manchester, and later in Oxford, Moseley took samples of all known elements, from aluminium to gold, and measured the X-rays they gave off after bombarding them with electrons. He discovered that each element emitted a distinct frequency of X-rays, and that this frequency correlated with the atomic numbers. When he plotted the square root of the frequency, against the atomic number everything fell into straight lines on his graph.\nFor the first time it became clear that an element’s atomic number, corresponding to its position on the table, had a basis in physics and was not merely a convenient label. And that these numbers (confirmed by Moseley’s measurements) resolved the previous issues with the periodic table. He also noted points missing from his graph and surmised that these gaps must be due to yet-to-be discovered elements. It was wasn’t until 30 years after his death that that the last of Moseley’s missing elements were discovered.\nMoseley’s achieved all this in a research career lasting just 40 months. At the outbreak of war in 1914 he signed up, becoming a signalling officer in the Royal Engineers. Had he survived, it is likely he would have been awarded the 1916 Nobel Prize in Physics (as it was no Nobel Prize in Physics was awarded that year). There is no telling what other breakthroughs might have been achieved in the alternative history in which he survived the war.\nThere is one more legacy that Moseley left. His death raised the question of whether great minds such as his should really be risked on the battle field. Despite the war, the international scientific community was outraged at the loss of such a renowned scientist, who still had so much to offer.\nFrom then on scientists were used in a very different way in wars. For better or worse scientists in the next great war developed penicillin, radar, programmable computers and, of course, the Manhattan project. All these inventions had much greater impacts on World War II than any of the individuals involved could have made at the front line."} -{"text": "es_seq,\n seq_lens_bt,\n sparse,\n T,\n selected_out=selected_out,\n )\n if selected is None:\n selected = _fused_score_select_grouped(\n idx_q,\n index_k_cache,\n layer_local_idx,\n block_tables_seq,\n seq_lens_bt,\n sparse,\n T,\n selected_out=selected_out,\n )\n return selected\n\n\n# Sequence-sharded (\"lazy DP\") DECODE indexer: the index q/k projections are\n# intentionally NOT TP-sharded (see MiniMaxM3CausalTextModel.sharding_spec)\n# and the index-K cache is replicated, so every rank would otherwise scan the\n# same cache for the same query rows. Instead, shard the sequences across\n# ranks (each sequence keeps its T spec tokens together so they share one\n# index-K scan), score ALL index heads for the local slice (the scan is\n# K-bytes bound, so extra query rows are nearly free), and exchange only the\n# tiny top-k outputs: all-to-all scatters head slices back to the rank\n# serving that kv head (head 0 -> rank 0, ...); all_gather when every rank\n# needs the same heads. The select kernel writes straight into the collective\n# input buffer (no staging copy). Prefill intentionally keeps plain head\n# sharding: its BLOCK_Q-tiled scorer is dot-FLOP bound, already divided\n# evenly across ranks with zero comm. Default on; kill-switch for triage.\n_DP_INDEXER_ENABLED = os.environ.get(\"FIREWORKS_M3_DP_INDEXER\", \"1\") == \"1\"\n\n\n@functools.lru_cache(maxsize=None)\ndef _dp_indexer_comms():\n \"\"\"(AllGather, All2All, rank, world_size) over the TP group, or None.\n\n Shares the global uint8 FireComm (top-k indices are exchanged as raw\n bytes). Lazily created on first decode forward — before CUDA-graph\n capture, since capture warmup runs the forward first.\n \"\"\"\n if not _DP_INDEXER_ENABLED:\n return None\n try:\n import fireworks.cuda as firecuda\n import fireworks.distributed as firedist\n import fireworks.nn as firenn\n except ImportError:\n return None\n comm = firecuda.fccl.get_fire_comm(torch.uint8)\n if comm is None:\n return None\n return (\n firenn.AllGather(comm),\n firenn.All2All(comm),\n firedist.get_rank(),\n firedist.get_world_size(),\n )\n\n\ndef _dp_sharded_decode_score_select(\n idx_q_full: torch.Tensor, # [B*T, H_full, D] rank-replicated index Q\n index_k_cache: torch.Tensor,\n layer_local_idx: int,\n block_tables_seq: torch.Tensor, # [B, max_blocks] (per-sequence)\n seq_lens_bt: torch.Tensor, # [B*T]\n sparse: MiniMaxM3SparseAttentionConfig,\n T: int,\n num_kv_heads: int,\n) -> Optional[torch.Tensor]:\n \"\"\"Sequence-sharded decode score+select; returns selected for this rank's\n kv heads ``[B*T, num_kv_heads, topk]`` or None when ineligible.\n\n Each rank scores sequences ``[rank*chunk, (rank+1)*chunk)`` for all\n ``H_full`` index heads, writing the select output directly into the\n collective input buffer (no staging copy). Comm pattern:\n\n * ``H_full == num_kv_heads`` — every rank needs the same heads:\n all_gather of ``[chunk*T, H_full, topk]`` per rank.\n * ``H_full == world_size * num_kv_heads`` — heads fan out 1:1 with kv\n heads: all-to-all where dst rank j receives head slice j for this\n rank's sequences. The select kernel writes through a permuted view of\n the a2a input ([dst, row, topk] for num_kv_heads == 1), so the\n exchange needs no extra memcopy.\n\n All eligibility inputs are rank-uniform, so every rank takes the same\n branch (collective ordering is preserved under CUDA-graph capture; shapes\n are static per graph bucket). Results are bit-identical to the unsharded\n path: each sequence's scores are computed with the same kernels on the\n same inputs, just on exactly one rank.\n \"\"\"\n comms = _dp_indexer_comms()\n if comms is None:\n return None\n ag, a2a, rank, world_size = comms\n if world_size <= 1:\n return None\n num_seq = block_tables_seq.shape[0]\n BT, H_full, _ = idx_q_full.shape\n if num_seq < world_size or BT != num_seq * T:\n return None\n if H_full == num_kv_heads:\n mode_a2a = False\n elif H_full == world_size * num_kv_heads:\n mode_a2a = True\n if num_kv_heads != 1:\n # The strided direct-write trick below needs one head per dst.\n return None\n else:\n return None\n\n ratio = sparse.sparse_block_downshard_ratio\n msb = triton.cdiv(block_tables_seq.shape[1], ratio)\n topk = min(sparse.sparse_topk_blocks, msb)\n chunk = (num_seq + world_size - 1) // world_size\n s0 = min(rank * chunk, num_seq)\n s1 = min(s0 + chunk, num_seq)\n rows_per_rank = chunk * T\n\n if mode_a2a:\n # [dst_rank, rows, topk] int32; the (row, head=dst) select view is a\n # permute, so the select kernel writes straight into the a2a input.\n buf = a2a.input(torch.Size([world_size * rows_per_rank * topk * 4]))\n sel_view ="} -{"text": "Emmy(R) Award-Winning Director and Actor Charles S. Dutton ('The Corner,' 'Roc') to Star in and Direct the Lifetime Original Movie 'Racing for Time'\nInspired by the True Story of Noel Chesnut\nCo-Starring Elizabeth Pena ('Resurrection Blvd')\nBEVERLY HILLS, Calif., July 12 -- Emmy(R) Award-winning\ndirector and actor Charles S. Dutton (\"The Corner,\" \"Roc\") will star in and\ndirect the upcoming Lifetime Original Movie \"Racing for Time.\" The\ninspiring and uplifting story is about a male prison guard who creates an\nunconventional sports program for some of the toughest and most violent\nfemale offenders at a juvenile correctional facility in an attempt to teach\nthem teamwork, discipline and self-esteem. \"Racing for Time\" will premiere\nin 2008 on Lifetime Television.\n\"This is a powerful, uplifting story that demonstrates the difference\nthat one person can make by giving hope to outcasts in society,\" said\nSusanne Daniels, President, Entertainment, Lifetime Networks. Adding,\n\"Charles Dutton's incredible passion for this project is truly inspiring.\"\nIn \"Racing for Time,\" Cleveland \"Stack\" Stackhouse (Dutton) is a guard\nwith the Texas Correctional Youth Authority who witnesses the cycle of\ndestructive choices and racial tensions among female teen offenders and\ndecides to do something about it. He gathers African-American, Latina and\nCaucasian teens, and organizes a multi-racial track team behind the bars of\nthe prison. Participation in Stack's track team not only breaks down the\nracial divides between the girls, but puts them on a path to turn their\nCharles S. Dutton won two Emmy(R) Awards for guest-starring roles in\nthe dramas \"The Practice\" and \"Without a Trace\" and another Emmy(R) for\ndirecting the HBO miniseries, \"The Corner.\" He has received Tony(R)\nnominations for \"The Piano Lesson\" and \"Ma Rainey's Black Bottom.\" He also\nreceived an NAACP Image Award for \"DC Sniper\" and an Image Award for \"Roc,\"\nfor which he also served as executive producer.\nDutton has numerous feature film credits including \"Against the Ropes,\"\nwhich he also directed; \"A Time to Kill,\" \"Mississippi Masala,\" \"The\nDistinguished Gentleman,\" \"Menace II Society,\" \"Rudy,\" \"Cry, the Beloved\nCountry,\" \"Random Hearts\" and \"Secret Window.\"\nOn television, Dutton most recently starred in the CBS series\n\"Threshold.\" He also starred in the Emmy(R) Award-winning movie \"Something\nthe Lord Made\" and Emmy(R) Award-winning miniseries \"The Murder of Mary\nPhagan.\" He appeared in the miniseries \"The '60s,\" \"For Love or Country:\nThe Arturo Sandoval Story,\" \"Deadlocked,\" \"The Piano Lesson\" and the\ntelevision movies \"Zooman,\" \"10,000 Black Men Named George\" and \"DC Sniper:\n23 Days of Fear.\"\nElizabeth Pena is an award-winning actress who starred in the Showtime\ndrama \"Resurrection Blvd\" for three seasons. She also won rave reviews for\nher starring role in the CBS telefilm \"Suburban Madness.\" Pena just\ncompleted the independent film \"Por Vida\" directed by Alan Jacobs and also\nstarring Danny Glover. Her list of film credits include the award winning\n\"Transamerica,\" \"The Lost City,\" \"Down and Out in Beverly Hills,\" \"La\nBamba,\" \"Jacob's Ladder\" and \"Rush Hour.\"\n\"Racing for Time\" is produced by von Zerneck Sertner Films, Tiara Blu\nFilms and Harbor Lights Productions for Lifetime Television. Diane Nabatoff\n(\"Take the Lead,\" \"Knights of the South Bronx\"), Rocky Lang (\"Titanic\" -\nthe television miniseries, \"White Squall\"), Frank von Zerneck and Robert M.\nSertner (Lifetime's \"Fatal Desire\" and \"We Were the Mulvaneys\") are the\nexecutive producers. Charles S. Dutton (\"The Corner,\" \"Against the Ropes\")\ndirects from a script written by Glenn German and Adam Rodgers (\"We'll Take\nManhattan\"). Dutton is also co-executive producer.\nDutton is managed by Sherry Marsh from Marsh Entertainment and repped\nby Bob Gersh. Pena is repped by Rugolo Entertainment and Innovative.\nLifetime is the leader in women's television and one of the top-rated\nbasic cable television networks. A diverse, multi-media company, Lifetime\nis committed to offering the highest quality entertainment and information\nprogramming, and advocating a wide range of issues affecting women and\ntheir families. Lifetime Television, LMN, Lifetime Real Women and Lifetime\nDigital (including LifetimeTV.com) are part of Lifetime Entertainment\nServices, a 50/50 joint venture of The Hearst Corporation and The Walt\nSOURCE Lifetime Television"} -{"text": "What a wonderful Saturday in cool, overcast Seattle. (It’s actually great to have a brief break from the summer heat.) We started early with a 4-mile walk along the east side of Lake Washington and then shot over the 520 bridge to scope out the fresh produce at the University District Farmers Market. By 10:00 A.M., the market was swarming with purposeful shoppers.\nWhat struck me this week were all the “baby” veggies. One vendor had her large variety of summer squash tagged as “infant” zucchini and “youngster” patty pans. Another vendor had turnips the size of a marble. The carrots were so young and tender they were practically screaming, “Eat me now.” There were even baby shallots, as small and tender as green onions.\nNeedless to say, I got carried away. Can you blame me? With nothing in mind to purchase, other than fava beans, I somehow ended up with baby carrots, baby turnips, young garlic, baby chiogga beets, green beans, purple beans, yellow wax beans, fresh dill, cauliflower, broccoli, basil, and an armload of gorgeous fuchsia asters. And the fava beans as well.\nThen MauiJim asked the one question I have repeatedly asked him NOT to ask. You know, the “What are you going to make with all that?” question.\nAn Italian soup came to mind. Something very fresh and immediate in which each vegetable takes center stage in turn. Then something shifted and I heard myself say, “Stop at the store on the way home. I need a gallon of vinegar.” The image that had just jumped into my mind was of a large glass jar filled with my entire veggie stash, covered with a sweet/sour/mustard/garlic/dill brine. Pickles! But not just any pickles, Italian pickles.\nOnce we got back to the OtherWorldly Kitchen, research on the web began. Recipes for Giardiniera are all over the place. Most of those I surveyed specify a simple vinegar, sugar, salt, and water brine but some add oil as well (especially the famous Chicago Giardiniera). Most say to boil the vinegar and spices for a few minutes before pouring it over the raw veggies. So far, so good.\nBut some say to cool it before pouring over the veggies, or pour it boiling hot over the veggies, or cook the veggies in the boiling brine for up to 15 minutes. I also found a recipe that called for cooking each veggie separately in boiling water for 1-4 minutes to tender-crisp, draining, drying with kitchen towels, and THEN adding the lot to still warm brine. That’s quite a bit of variance and each technique will affect the crunchiness (or lack therof) of the veggies.\nFor my first test, I decided to use as simple a process as possible and sequentially blanched each of the firmer veggies in the boiling brine for 1-2 minutes only. However, even a short blanching period proved to be excessive. I can now confidently recommend simply pouring the boiling brine over the raw veggies layered in heatproof jars. There is enough residual heat to lightly blanch almost any veggie you might choose. Pickles should be crunchy, not flabby.\nI discovered a couple of other things as well. Namely that broccoli does not make a great pickle. It turns a dreadful color in the brine, as do purple beans. I’m also removing roasted, peeled beets from my original list of possible veggie choices. While it makes a lovely pickle on its own, it colors the brine pink, when what you really want here is crystal clear.\nGiardiniera: Italian Pickled Vegetable Medley\nYou will want to have this wonderful fresh pickle in your frig at all times. It’s a sparkling addition to almost any sandwich and a great antipasto as well.\nThis makes a rather large amount of pickled veggies, but they will keep (and actually get better and better) for 1-3 months in the frig. (You can of course half the recipe if you wish.)\nThis brine is only mildly sweet. Do feel free to adjust the sugar and salt level to your own preferences. I have seen numerous Giardiniera recipes that specify twice this much sugar.\n3 quarts distilled vinegar\n3 cups sugar\n1 tablespoon fine sea salt\n4 quarts of some combination of the following (trimmed, and sliced, diced, or chunked into nibble-size pieces as desired):\ncauliflower (I used 2 cups trimmed floret’s; 8 ounces)\ngreen beans (I used 2 cups trimmed; 4 ounces)\nyellow wax beans (I used 2 cups trimmed; 4 ounces)\nbaby carrots (I used 2 cups trimmed floret’s; 8 ounces)\nfennel (I used 1 bulb, sliced; 6 ounces)\nbaby turnips (I used 1 cup trimmed; 5 ounces)\nbutton mushrooms (I used 2 cups trimmed; 7 ounces)\nred bell peppers (I used 1 large, stemmed, ribbed, seeded, and chunked)\nyellow bell peppers (I used 1 large, stemmed, ribbed, seeded, and chunked)\norange bell peppers\ngreen bell peppers\nJapanese or English cucumbers (I used 2 Japanese cucumbers, sliced; 6 ounces)\nPlus one or more of the following, if desired:\n1 cup green olives\n1 cup black olives\n16 small sprigs fresh dill\n8 garlic cloves, optional\n2-4 small red jalapeno or Serrano chiles, optional\n1 tablespoon yellow mustard seeds, optional\n1 tablespoon cumin seeds, optional\n1 teaspoon red pepper flakes, optional\nfresh cracked black pepper, optional\n- In a large, nonreactive pot (I used a Le Creuset enameled, cast iron soup pot), combine the vinegar, sugar, and salt, and bring to a simmer. Simmer 5 minutes.\n- Meanwhile, combine the primary veggies into a large heatproof glass bowl or layer into tempered glass jars. If using jars, be sure to evenly distribute any of the additional ingredients you may choose to use.\n- Pour the simmering brine over the vegetables and weight down if possible to keep the veggies submerged in liquid while the brine cools.\n- When cool, cover and refrigerate until needed.\nFills 6 pint jars.\nCookin’ with Gas (inspiration from around the web)\n- lauriebot: a grown up girl blog: Dilly of a Pickle\n- Married with Dinner blog: A Gardener’s Pickle\n- thepauperedchef blog: Giardiniera\n- wegottaeat blog: Giardiniera, Chicago Style\n- epicurious: Hot Italian Giardiniera\n- smitten kitchen: giardiniera"} -{"text": " buf.view(torch.int32).view(world_size, rows_per_rank, topk).permute(1, 0, 2)\n else:\n buf = ag.input(torch.Size([rows_per_rank * H_full * topk * 4]))\n sel_view = buf.view(torch.int32).view(rows_per_rank, H_full, topk)\n\n if s1 > s0:\n local_rows = (s1 - s0) * T\n _score_select_grouped_any(\n idx_q_full[s0 * T : s1 * T],\n index_k_cache,\n layer_local_idx,\n block_tables_seq[s0:s1],\n seq_lens_bt[s0 * T : s1 * T],\n sparse,\n T,\n selected_out=sel_view[:local_rows],\n )\n\n out = a2a(buf) if mode_a2a else ag(buf)\n # Both collectives concatenate rank chunks in rank order = sequence-major\n # order; garbage rows from short/empty tail ranks land at seq >= num_seq\n # and are sliced off.\n heads_out = num_kv_heads if mode_a2a else H_full\n return out.view(torch.int32).reshape(world_size * rows_per_rank, heads_out, topk)[:BT]\n\n\n# fp8 tcgen05 prefill scorer dispatch (on by default; set FIREWORKS_M3_FP8_PREFILL_SCORE=0 to disable).\n# Varlen/batched: gather each seq's 64-token index-K pages into contiguous\n# 128-token pages (sync-free, uniform padding) and run the vendored fp8 indexer,\n# then reuse the Triton _select_kernel. Below a work threshold the cute kernel's\n# fixed launch+gather overhead loses to Triton, so small prefills fall back.\n_FP8_PREFILL_SCORE_ENABLED = os.environ.get(\"FIREWORKS_M3_FP8_PREFILL_SCORE\", \"1\") == \"1\"\n\n# Route to fp8 only when score work (total_q * msb * heads, msb = KV history\n# sparse blocks) clears this threshold; below it Triton is faster (cute's fixed\n# launch+assemble+meta+q-cast overhead loses). Measured B200 crossover (full\n# path: assemble+meta+cute+select vs Triton score+select, do_not_commit/\n# bench_crossover.py): Triton wins at work=524288 (0.91-1.10x), cute wins at\n# work=1048576 (1.32-1.54x), stable across H=2 and H=4 -> threshold is the\n# lowest measured work where cute wins. All host-known, so the guard adds no\n# device sync.\n_FP8_PREFILL_MIN_WORK = int(os.environ.get(\"FIREWORKS_M3_FP8_PREFILL_MIN_WORK\", \"1000000\"))\n\n# Fused opt scorer+select dispatch. Set FW_M3_USE_OPT_FUSED=auto to use the\n# fused kernel only in the measured B200 sweet spot; 1/0 force it on/off.\n_FP8_PREFILL_FUSED_DEFAULT_MSB_MAX = 128\n_FP8_PREFILL_FUSED_DEFAULT_MAX_TOTAL_Q = 12288\n\n# One-time compile warmup state: the server's startup warmup only sends tiny\n# prompts (no sparse prefill), so without this neither the cute kernel nor the\n# Triton sparse scorer compiles until the first long request hits the hot path.\n_PREFILL_SCORERS_WARMED_MODULES: set[str] = set()\n_PREFILL_FUSED_SCORER_WARMED = False\n_PREFILL_TRITON_SELECT_WARMED = False\n\n\ndef _env_flag(name: str, default: str = \"0\") -> str:\n return os.environ.get(name, default).strip().lower()\n\n\ndef _prefill_fp8_use_fused(total_q: int, msb: int) -> bool:\n \"\"\"Host-side opt fused/unfused dispatch.\n\n The fused full-K kernel wins for enough query work at short KV histories but\n loses once split-K parallelism matters. B200 measurements show wins through\n total_q=8192 with msb<=128, a slight loss at total_q=16384/msb=128, and\n larger losses at msb>=512. The default total_q cap is the midpoint between\n the measured 8192 win and 16384 loss, and both caps are env-overridable for\n follow-up tuning.\n \"\"\"\n mode = _env_flag(\"FW_M3_USE_OPT_FUSED\", \"0\")\n if mode in (\"1\", \"true\", \"yes\", \"on\"):\n return True\n if mode in (\"0\", \"false\", \"no\", \"off\", \"\"):\n return False\n if mode != \"auto\":\n return False\n\n max_msb = int(os.environ.get(\"FW_M3_FUSED_MSB_MAX\", str(_FP8_PREFILL_FUSED_DEFAULT_MSB_MAX)))\n max_total_q = int(os.environ.get(\"FW_M3_FUSED_MAX_TOTAL_Q\", str(_FP8_PREFILL_FUSED_DEFAULT_MAX_TOTAL_Q)))\n return 0 < int(total_q) <= max_total_q and 0 < int(msb) <= max_msb\n\n\n@functools.lru_cache(maxsize=None)\ndef _fp8_prefill_module():\n try:\n # Knob: FW_M3_USE_OPT=1 selects the optimized N=256 scorer (fp8_indexer_opt);\n # default (0) keeps the upstream baseline kernel. The optimized kernel writes a\n # query-contiguous scores layout, which _maybe_fp8_prefill_score_select handles via\n # the module's SCORES_QUERY_CONTIGUOUS flag (different select strides).\n #\n # FW_M3_USE_OPT_FUSED=auto/1 also uses the opt scorer for the unfused fallback,\n # so the dispatch is between opt-fused and opt-score+select rather than\n # silently falling back to the N=128 baseline when fused is gated off.\n use_opt_fused = _env_flag(\"FW_M3_USE_OPT_FUSED\", \"0\")\n if _env_flag(\"FW_M3_USE_OPT\", \"0\") == \"1\" or use_opt_fused in (\"auto\", \"1\", \"true\", \"yes\", \"on\"):\n from fireworks.models.minimax_m3.msa_fp8_indexer import fp8_indexer_opt as fp8_indexer\n\n return fp8_indexer\n from fireworks.models.minimax_m3.msa_fp8_indexer import fp8_indexer\n\n return fp8_indexer\n except ImportError:\n return None\n\n\n@functoo"} -{"text": "It’s customary for families to gather together, eat, sing and have a piñata at the party. Sometimes people celebrate posadas by going from home to home, singing the traditional song to ask for lodging the way Mary and Joseph did. But whether you travel around to different homes or stay in one place, there are certain elements of your family’s posadas that you inevitably love more than anything else, and will always try to recreate as you grow older, and especially as you have children so you can teach them your family’s traditions.\nFor me, the most beloved posadas tradition is making ponche Navideño. Every year, even if I don’t have access to fresh ingredients, I do my best to find canned, jarred or frozen ingredients for the things I can’t easily find in the U.S. Even though I know I’ll have it when I get to Mexico, I feel it’s really important to perfect the recipe at home with available ingredients.\nI want our future children to know that it’s a Mexican Christmas staple and always have memories of the smell and taste. I want them to think of love and family and La Navidad when they think of ponche, just the way that I do. I always look forward to spending time with family in Mexico City during the holidays, and I know there will always be an abundance of ponche Navideño. It’s present at almost every family gathering but the most special thing about it for me is that it’s become a family tradition to make it together with my suegros, whom I adore con todo corazón.\nWe stand around the kitchen, my suegro chopping the caña (sugar cane), while my suegra takes care with the liquid measurements. I slice the guayabas and juice the oranges, add the canela and core the tejocotes. And before a few years ago when I finally put it on paper, our family recipe wasn’t officially written down anywhere with any information other than what should go in it. Learning how to make this family recipe with my suegros meant a lot to me in being able to eventually pass down this tradition.\nSo, last week when I was grocery shopping in a store I don’t usually frequent and I found a box of fresh tejocotes, I had tears in my eyes as I stood in disbelief in the middle of the produce aisle. This was the very first time I’d ever seen fresh tejocotes in a market near Chicago (also grown in the U.S., according to the box). Tejocotes have long been prohibited from being imported fresh from Mexico as a precaution due to the possibility of harboring exotic pests. Only in recent years have there been growers in the U.S. (mostly in California) who’ve begun cultivating crops of tejocotes, also known in English as Mexican hawthorn. I was surprised and overjoyed to see them in a local store. Though I was tempted to buy the whole box, I painstakingly picked through it to find the most perfect ones to add up to half a pound, just enough for one large pot of ponche.\nThis year, our family is still headed off on a vacation together as usual, but not within Mexico. As excited as I am to go somewhere new and experience new things, I can’t help but feel a little sad that I won’t be attending Tía Annette’s big posada Navideña in Mexico City.\nI’ll miss sipping ponche and café con rompope and eating galletas with my other tías while catching up on all the gossip I’ve missed since my last visit. I’ll miss our tío dangling the piñata over the garden for the kids from the second story window, laughing and smiling as he tugs it just out of their reach. I’ll miss seeing how much some of the younger cousins have grown up this past year. I’ll miss Tía Nene and her famous pastel de dátil (something I still need to learn how to make). I’ll miss the nochebuenas, which are much more beautiful and exotic-looking in their native Mexico. I’ll miss posing for a huge family holiday photo, comprised of four generations of our beautiful family.\nAs I write this, my kitchen is perfumed by the scent of ripe guayabas, waiting to be made into ponche this weekend. There are oranges, tejocotes, canela and ciruelas pasas. I still need to find some fresh sugar cane; I have a good idea of where to get it locally, but I’ve still got some in a jar as a backup. And though there will be no cousins, tíos, piñatas, pidiendo posadas or certain favorite holiday foods this year, the memories will swirl steadfastly in my heart and my kitchen as I stew a big pot of ponche before I jet off to my holiday destination.\n- What makes you think most of las posadas? This post is part of a blog hop about posadas. I encourage you to check out some of the other related posts about how others celebrate the holidays in Mexico. If you’ve written about posadas, please feel free to add a link to your post!…"} -{"text": "Clipper Gear Micro Light\nA simple and convenient gadget for your\nphone or key ring or anything/anywhere else\nStick one of these tiny flashlights on your phone or\nclip it to your keyring, or keep it in your purse (or\nYou never know when you might need a strong light in an\nemergency. This unit is so small it can be\ntaken anywhere and used anytime.\nI always travel with a tiny\nflashlight. Although I rarely need it, when I need it, I\ntruly need it. And I find its presence reassuring,\nespecially at night in strange cities, or on an underground\ntrain where you never know what would happen if the train lost\npower and got trapped in a dark unlit tunnel.\nHere now is a wonderfully\nconvenient, very small and lightweight, powerful micro light\npowered by two white LEDs. With long lasting batteries and\na low price of only $4.95 each, you should get one - or two, or three!\nGear's Micro Light is a very compact\nand lightweight device. It measures 2.25\" long, and\nis 1.2\" wide at its widest point. It is only 0.2\" thick at\nits thickest point. The unit weighs an imperceptible 0.2\nThese dimensions are\nimportant, because the Micro Light is designed to be placed on\nthe back of a mobile phone. It has a piece of double sided\nadhesive tape, which can be used to mount it on the back of most\ncell phones. However, the very tiniest phones will be too\nsmall to do this.\nThere is also a loop at the\nend opposite the two LEDs. In theory, this is to allow the\nunit to be placed on a key ring. In practice, the loop is\nfairly narrow and while it will fit on a thin sized key ring, it\nmay not fit so conveniently on a larger sized metal ring.\nThere is a single button on\nthe unit for turning the light on. The light is activated\nwhile the button is held down, and turns off when you release\nthe button. There is minimal danger of accidentally\nturning the light on and draining the batteries, because the\nbutton is small, slightly recessed, and requires moderately\npositive pressure to actuate.\nThe unit contains two small\nwatch type batteries to power it. Although you could in\ntheory replace them, in reality, it is a difficult job to do so,\nand the cost of two replacement batteries is amazingly similar\nto the cost of a new unit. Fortunately the batteries are\nlong lasting so the need to replace either the batteries or the\nunit is unlikely to be a regular occurrence.\nThe batteries are estimated\nto have a standby life of 3 - 5 years.\nThe unit is packaged in a\nsimple blister pack and is readily opened.\nThe unit is very easy to\nuse. Choose where to keep it, or, better still - choose\nwhere to keep them. I have them in various places around\nthe house, in my car, briefcase, and mounted on the back of my\nWhen you need it, simply\ntake it and press the button. Instant light.\nClipper Gear's Micro Light\nis amazing value. As mentioned above, the complete unit\ncosts little more than the batteries by themselves. Each\nMicro Light retails for only $4.95.\nWe like them so much we've decided to sell this unit ourselves.\nClick to go to our 'store' page\nwhere you can purchase one of more Micro Lights (they make a great gift!) using Paypal and charging to your credit card or bank\naccount. A single $2.50 shipping charge is added, no\nmatter how many items you buy\nor where in the world you'd like them shipped.\nYou'll get an invaluable accessory to simplify the\nmanagement of your cell phone name and number directory, and\nyou'll be supporting The Travel Insider at the same time.\nOther recommended cell phone accessories\nWe have two other products\nyou might also want to consider.\nClipper Gear Emergency Battery\nRecharger allows you to recharge your cell phone's battery,\neven if you're nowhere near a power source. If you're like\nme, your phone's battery always dies at the most inconvenient\nmoment. Keep one of these handy for the next such\nClipper Gear SIM Saver allows you to back up and transfer\nyour phone's SIM (or R-UIM) card phone book data. Great\nfor backup in case you lose/damage your SIM card or phone.\nThis is a lovely little\nmicro light that can be kept just about anywhere in case of\nemergency. It is low cost and has a long 3 - 5 year\nIf so, please donate to keep the website free and fund the addition of more articles like this. Any help is most appreciated - simply click below to securely send a contribution through a credit card and Paypal.\n21 Aug 2005, last update\n19 Dec 2013\nYou may freely reproduce or distribute this article for noncommercial purposes as long as you give credit to me as original writer."} -{"text": "ls.lru_cache(maxsize=None)\ndef _fp8_prefill_fused_module():\n try:\n from fireworks.models.minimax_m3.msa_fp8_indexer import fp8_indexer_opt_fused\n\n return fp8_indexer_opt_fused\n except ImportError:\n return None\n\n\n@functools.lru_cache(maxsize=None)\ndef _fp8_prefill_opt_module():\n try:\n from fireworks.models.minimax_m3.msa_fp8_indexer import fp8_indexer_opt\n\n return fp8_indexer_opt\n except ImportError:\n return None\n\n\ndef _prefill_score_modules_to_warm(mod) -> list:\n modules = []\n seen = set()\n for candidate in (mod, _fp8_prefill_opt_module()):\n if candidate is None:\n continue\n name = getattr(candidate, \"__name__\", repr(candidate))\n if name in seen:\n continue\n seen.add(name)\n modules.append(candidate)\n return modules\n\n\ndef _warmup_prefill_scorers(device, H, D, ratio, block_size, mod, fused_mod=None):\n \"\"\"Compile every prefill branch once on a tiny synthetic batched problem.\n\n The hot path can dispatch among the N=128/baseline scorer, the opt scorer,\n opt-fused score+select, and Triton select fallback. Warm all available\n branches here so later shape-gating changes do not JIT on live traffic.\n cute.compile is shape-dynamic, so any size warms all sizes.\n \"\"\"\n global _PREFILL_FUSED_SCORER_WARMED, _PREFILL_TRITON_SELECT_WARMED\n score_modules = []\n for candidate in _prefill_score_modules_to_warm(mod):\n name = getattr(candidate, \"__name__\", repr(candidate))\n if name not in _PREFILL_SCORERS_WARMED_MODULES:\n score_modules.append((name, candidate))\n warm_fused = fused_mod is not None and not _PREFILL_FUSED_SCORER_WARMED\n warm_triton_select = not _PREFILL_TRITON_SELECT_WARMED\n if not score_modules and not warm_fused and not warm_triton_select:\n return\n # Set first: never retry a failed/again-racing warmup.\n for name, _candidate in score_modules:\n _PREFILL_SCORERS_WARMED_MODULES.add(name)\n if warm_fused:\n _PREFILL_FUSED_SCORER_WARMED = True\n if warm_triton_select:\n _PREFILL_TRITON_SELECT_WARMED = True\n try:\n B, seq = 2, 256\n n64 = seq // block_size\n max_blocks = ((n64 + ratio - 1) // ratio) * ratio\n msb = max_blocks // ratio\n total_q = B * seq\n idx_q = torch.zeros(total_q, H, D, device=device, dtype=torch.bfloat16)\n layer = torch.zeros(B * max_blocks, block_size, D, device=device, dtype=torch.float8_e4m3fn)\n bt = torch.arange(B * max_blocks, device=device, dtype=torch.int32).view(B, max_blocks)\n k_pages = torch.empty(B * msb, ratio * block_size, D, dtype=torch.float8_e4m3fn, device=device)\n _assemble_pages_kernel[(B, msb, ratio)](\n bt,\n layer,\n k_pages,\n bt.stride(0),\n bt.stride(1),\n layer.stride(0),\n layer.stride(1),\n k_pages.stride(0),\n k_pages.stride(1),\n MSB=msb,\n RATIO=ratio,\n BLOCK_SIZE=block_size,\n D=D,\n )\n positions = torch.arange(seq, device=device, dtype=torch.int32).repeat(B)\n seq_lens = (positions + 1).to(torch.int32)\n cu_q = torch.arange(B + 1, device=device, dtype=torch.int32) * seq\n cu_k = torch.empty(B + 1, dtype=torch.int32, device=device)\n # warm the fused metadata kernel on the same path the hot loop uses\n _build_cu_k_kernel[(1,)](seq_lens, cu_q, cu_k, B, MAX_B=_CU_K_MAX_B)\n cu_page = _static_cu_page(B, msb, device)\n for _name, score_mod in score_modules:\n score_mod.fp8_prefill_block_scores_varlen(\n idx_q, k_pages, cu_q, cu_k, cu_page, seq, msb * ratio * block_size\n )\n if warm_fused:\n fused_mod.fp8_prefill_block_select_varlen(\n idx_q,\n k_pages,\n cu_q,\n cu_k,\n cu_page,\n seq,\n msb * ratio * block_size,\n topk=16,\n init_blocks=0,\n local_blocks=1,\n )\n # Triton score+select also compiles here so the fallback path is warm too.\n if warm_triton_select:\n scores = torch.full((total_q, H, msb), -1e30, dtype=torch.float32, device=device)\n scores[:, :, :msb] = 0.0\n selected = torch.full((total_q, H, min(16, msb)), -1, dtype=torch.int32, device=device)\n _select_kernel[(total_q, H)](\n scores,\n seq_lens,\n selected,\n scores.stride(0),\n scores.stride(1),\n selected.stride(0),\n selected.stride(1),\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n TOPK=min(16, msb),\n MSB=msb,\n INIT_BLOCKS=0,\n LOCAL_BLOCKS=1,\n num_warps=1, # match the fp8 prefill hot-path select speci"} -{"text": "While all eyes are focused on the looming October 17 deadline for Congress to raise the debt ceiling or force the country into default, the residents of the town where all the drama is happening are worrying about a different date: On or around October 13, the District of Columbia will run out of money to keep its own local government open.\nThe city council of Washington, DC, has no control over its own budget. Rather, since the roughly 600,00 residents of DC don’t have a governor or a state to call home, the city government of the District needs Congressional approval to spend money — money that it makes through local tax revenue, not U.S. taxpayer dollars. That approval is wrapped up into every budget that Congress passes and, when it doesn’t get a budget passed in time, the DC government is not allowed to spend, just like the federal government.\nThe only reason that the DC government didn’t shut down on October 1 is because Mayor Vince Gray (D) declared all city employees “essential” and tapped into the city’s “rainy day” fund to keep paying them until Congress got its act together.\nBut there’s not enough money in the fund to last until October 17th, when all hopes are that Congress will finally work out a deal to both fund the government and avoid default. Rather, city officials estimate that the rainy day fund will be tapped out by October 13. After that, the DC government will go into shutdown mode — meaning that fire departments, trash collection, some buses, the city’s university, and a host facilities and programs will be put on pause.\nOn Tuesday, Mayor Gray sent a letter asking for a meeting with President Obama, House Majority Leader John Boehner (R-OH), and Senate Majority Leader Harry Reid (D). He hopes to convince them to pass legislation that allows DC to spend its money freely during the remainder of the shutdown — and, moreover, to “decouple” Washington’s city budget from the federal government’s.\n“In no other part of our country are Americans facing the loss of basic municipal or state services due to the federal government shutdown,” he wrote.\nGray’s letter also pointed out that many of the city’s services are already feeling the consequences of the shutdown: Payments for Medicaid providers in the District are on hold, and DC failed to make its quarterly payment to the Washington Metropolitan Area Transit Authority this month. Gray also ordered city workers last week to start collecting trash from the parks that are owned by the National Park Service. They are already shut down, but since there’s trash inside the garbage cans there, there’s a growing problem of “rodents and other vermin.” That also means DC’s picking up the $58,000 bill for the work.\nThat could only get worse if DC can’t pay for its water and sewage authority, keep its unemployment benefit offices open (especially needed given the number of furloughed federal employees in DC), issue permits and licenses from the Department of Motor Vehicles, pick up trash and sweep the streets, or keep its brand new healthcare marketplaces established by Obamacare running.\nDuring the 1996 shutdown, Congress appropriated funds to keep DC’s city services running while they worked out a deal for the federal government. That’s a lesson they only learned, as Mike DeBonis points out in the Washington Post, after an earlier shutdown cost the city “$7.3 million in wages paid to employees who were not required to report to work, plus about $78.5 million in revenues that went uncollected or were collected late.”\nGray hopes that his meeting can convince Boehner, Reid, and Obama to do the same thing now — approve one-off legislation to allow DC to keep using its own funding to run the city. In fact, the House already passed emergency legislation that would do just that. But because House Republicans have used a so-called “piecemeal” approach to refund only the government programs they like, the Senate has thus far blocked any measure that would independently fund one thing without restoring funding to the whole government."} -{"text": "Imagine that its summer, 1959 in a major U.S. city. Let's call it Anytown, USA. Its a sweltering 96 degrees and the asphalt feels like its sticking to your shoes. Mom won't let you back in the house because \"its summer, and you need to go out and play with the other kids\". You're tired of playing Wiffle Ball. You're sunburned and sweat is running down your neck like a faucet. You just can't bear another second of this awful heat wave...and then echoing off of the buildings you hear the familiar jingle of the Mister Softee ice cream truck.\nLike every other kid, you quickly run home to BEG your Mother for a few cents for the ice cream man and quickly chase after him before his truck turns the corner and heads to the next block. Once you flag him down, you get your vanilla soft serve cone with sprinkles...and all is right with the world. Wiffle Ball can resume in 5 minutes. Batter up!\nThe ice cream truck has offered a sweet summer escape for millions of kids of all ages around the world for over 80 years. It doesn't matter what era you live in or what your age is, frozen desserts are a popular commodity and probably always will be. Here in the U.S. the three big names include Good Humor, Jack N' Jill, and of course Mister Softee. The Mister Softee company traces its roots back to West Philly and 1954. Two brothers named William and James Conway started the company with a Chevrolet panel van, a generator, and a soft serve machine. They sold shakes, cones, and sundaes all over Philadelphia and quickly made a name for themselves. Within two years the Conways branched out, ordered a fleet of trucks and spread across the East Coast. By 1958, franchises grew across the states. A British vehicle fleet manager visited the U.S. in 1957 and liked what he saw in Mister Softee, so he worked out a franchise deal and by 1959 the Mister Softee trucks became a familiar sight in West London and Kent, England. Even today, the company manages to turn a tidy profit by supplying a hungry public with the sweets they crave curbside from Chicago to China!\nDuring their heyday in 1959, Mister Softee ordered 800 ice cream trucks from the Boyertown Body Works in Boyertown, Pennsylvania. This company was located some 56 miles from the birthplace of Mister Softee himself, and was known for their long-standing tradition of quality workmanship dating back to 1872. The demands of the fleet business required a vehicle that was sturdy and dependable, but easy on the pocket book. A Ford truck would certainly meet those demands.\n|Boyertown Body Works Factory, 1956. Photo Credit: Coachbuilt.com|\n|Boyertown Body Brochure Cover, 1959|\n|Boyertown Truck Bodies Brochure, 1959|\n|From the Southern Missourian, August 6th, 1961.|\nYou can spot the Civil Defense logo affixed to the side of the Mister Softee truck in this collection of vintage television advertisements. It appears at :48 into this clip.\nWhy the heck am I yammering on about all of this stuff? Sarah and I came across a very unrestored example of a Boyertown-built 1958 Ford commercial truck in its original Mister Softee color scheme this summer at the McClean County Antique Automobile Club car show. Besides the fact that we dig old cars and trucks, this thing spoke volumes about the time period it came from. The artwork, the remains of a Civil Defense logo, the simple saying on the back warning motorists to \"watch for our children\", not just anyone's kids, but \"ours\". Here's a few shots of this time capsule as it appears today.\n|The Civil Defense logo appears on both sides of the truck.|\n|The Civil Defense Logo as it Originally Appeared.|\nThe current owner plans to restore it to functional condition and serve frozen goodies at car shows in central Illinois near old Route 66. Not a bad second life for an old workhorse, eh?\nThat's the strange tale of the American Mister Softee truck in the Cold War era. Being a Gen-X'er, I admire this relic from a time of neighborly responsibility and civic duty. The past seems like a time when people took things seriously, even selling ice cream. It was deeper than just frozen food...it was a sense of community. Could you imagine a business owner willing to lend his or her equipment, time and fuel to the government today to help the public stay alive during an emergency? Maybe. Maybe not.\nIs all of this worth writing a book about? Not really. Is it worthy of a blog post? Perhaps. All this talk about ice cream and the end of the world makes me want a hot fudge sundae. I think I even hear the ice cream jingle outside. Who's got any change?\nLearn more about Where Cars & Atomic Weapons Intersect\nLearn more about Boyertown Body Works\nLearn more about Mister Softee\nLearn more about Civil Defense Supplies"} -{"text": "alization\n )\n torch.cuda.synchronize()\n except Exception as e: # warmup must never break serving; real path will recompile\n import logging as _lg\n\n _lg.getLogger(\"fireworks\").warning(\"[fp8-prefill] scorer warmup skipped: %r\", e)\n\n\n# Fixed compile-time width for the metadata kernel below. The kernel masks with\n# `i < B`, so a single oversized constant covers every prefill batch size with\n# ONE Triton specialization (B can never exceed max_batch_size, far below this).\n# Keeping it constant — and marking B do_not_specialize — means warmup compiles\n# the exact spec the hot path uses, so no kernel JIT-compiles on the first real\n# request (previously B=1/MAX_B=2 single-sequence traffic missed the B=2 warmup).\n_CU_K_MAX_B = 1024\n\n\n@triton.jit(do_not_specialize=[\"B\"])\ndef _build_cu_k_kernel(\n seq_lens_ptr, # [total_q] int (per-query causal history length)\n cu_q_ptr, # [B+1] int32 (query prefix sum)\n cu_k_out_ptr, # [B+1] int32 (written: causal-history prefix sum)\n B,\n MAX_B: tl.constexpr,\n):\n \"\"\"Fuse the per-seq causal length gather + prefix sum into one launch.\n\n Replaces ``lk = seq_lens[cu_q[1:]-1]; cu_k = pad(lk.cumsum(0))`` (an index op,\n a zeros fill, and a cumsum = 3 kernels) with a single small kernel. Each\n sequence's causal length is the causal length of its last query.\n \"\"\"\n i = tl.arange(0, MAX_B)\n valid = i < B\n q_end = tl.load(cu_q_ptr + i + 1, mask=valid, other=0)\n lk = tl.load(seq_lens_ptr + q_end - 1, mask=valid, other=0).to(tl.int32)\n lk = tl.where(valid, lk, 0)\n csum = tl.cumsum(lk, axis=0)\n tl.store(cu_k_out_ptr + i + 1, csum, mask=valid)\n if tl.program_id(0) == 0:\n tl.store(cu_k_out_ptr, 0)\n\n\n_STATIC_CU_PAGE_CACHE: dict = {}\n\n\ndef _static_cu_page(B: int, msb: int, device) -> torch.Tensor:\n \"\"\"Static 128-page prefix sum [0, msb, 2*msb, ...] for a uniform-padded batch.\"\"\"\n key = (int(B), int(msb), device)\n t = _STATIC_CU_PAGE_CACHE.get(key)\n if t is None:\n t = torch.arange(B + 1, dtype=torch.int32, device=device) * msb\n _STATIC_CU_PAGE_CACHE[key] = t\n return t\n\n\n@triton.jit\ndef _assemble_pages_kernel(\n block_tables_ptr, # [B, max_blocks] int32 (64-token physical block ids)\n layer_cache_ptr, # [num_blocks, block_size, D] fp8\n out_ptr, # [B*msb, ratio*block_size, D] fp8 (contiguous 128-token pages)\n stride_bt_b,\n stride_bt_col,\n stride_lc_blk,\n stride_lc_tok,\n stride_out_page,\n stride_out_tok,\n MSB: tl.constexpr,\n RATIO: tl.constexpr,\n BLOCK_SIZE: tl.constexpr,\n D: tl.constexpr,\n):\n \"\"\"Assemble contiguous 128-token pages from the 64-token paged index-K cache.\n\n One program per (sequence, sparse-block, half): copies one 64-token physical\n block into the right half of the output page. Replaces the ATen\n ``layer_cache[bt]`` int64 advanced-index gather (``vectorized_gather_kernel``),\n which ran at ~134 GB/s; this is contiguous int32 and hits near HBM bandwidth.\n Padding/invalid block ids clamp to block 0 and are causally masked downstream.\n \"\"\"\n pid_b = tl.program_id(0)\n pid_sb = tl.program_id(1)\n pid_half = tl.program_id(2)\n\n phys = tl.load(block_tables_ptr + pid_b * stride_bt_b + (pid_sb * RATIO + pid_half) * stride_bt_col)\n phys = tl.maximum(phys, 0)\n\n tok = tl.arange(0, BLOCK_SIZE)\n d = tl.arange(0, D)\n src = layer_cache_ptr + phys * stride_lc_blk + tok[:, None] * stride_lc_tok + d[None, :]\n vals = tl.load(src)\n\n out_page = pid_b * MSB + pid_sb\n dst = out_ptr + out_page * stride_out_page + (pid_half * BLOCK_SIZE + tok[:, None]) * stride_out_tok + d[None, :]\n tl.store(dst, vals)\n\n\ndef _maybe_fp8_prefill_score_select(\n idx_q,\n index_k_cache,\n layer_local_idx,\n block_tables,\n q_seq_len_cumsum,\n q_largest_seq_len,\n seq_lens_per_q,\n sparse,\n kv_largest_seq_len: Optional[int] = None,\n _bench_scorer_only: bool = False,\n):\n \"\"\"fp8 tcgen05 prefill scorer (varlen/batched, fp8 cache); else None (Triton).\n\n ``_bench_scorer_only`` (benchmark hook): run page assembly + cu_k/cu_page prep, then\n return a zero-arg closure that calls ONLY the fp8 score kernel (no select / no re-prep)\n so the benchmark can time the scorer in isolation via cudagraph + CUDA events.\n\n Sync-free: every sequence is padded to a uniform 128-page count\n ``msb = block_table_width / ratio`` so the page gather is a single\n vectorized fancy-index + reshape and all metadata is static or device-only.\n Padding/invalid blocks clamp to page 0 and are causally masked, so they\n never affect the result.\n \"\"\"\n if not _FP8_PREFILL_SCORE_ENABLED:\n return None\n mod = _fp8_prefill_module()\n if mod is None or idx_q.dtype != torch.bfloat16:\n return None\n total_q, H, D = idx_q.shape\n layer_cache = index_k_cache[layer_local_idx, :, 0] # [num_blocks, page, D]\n ratio = sparse.sparse_block_downshard_ratio\n block_size = sparse.kv_cache_block_size\n "} -{"text": "A Human Rights Watch investigation released at the United Nations on Wednesday reports that Sudanese army troops raped at least 221 women and girls during a 36-hour attack on the Darfur town of Tabit that began on Oct. 30.\nThe report documents 27 first-hand reports of rape, 194 other credible accounts of rape and even confessions of two soldiers who had participated in the attacks that superior officers ordered them to “rape women.” Sudanese authorities then launched a cover-up, Human Rights Watch details, which included detaining and torturing Tabit residents for telling the truth about what happened.\nSudan Foreign Minister Ali Ahmed Karti categorically denied reports of a mass military rape in Tabit during an interview with TIME on Feb. 4, when he was in Washington as a guest of the National Prayer Breakfast.\nTIME asked him about reports that his government’s armed forces are primarily targeting civilians and not combatants. Any claims of rape in Tabit, he claimed, are lies invented to keep people in refugee camps, where NGOs can make money. Tabit has been rebuilt, he said, with modern schools, health care and police centers.\n“Nobody can expect a village like Tabit which had been a home for some hundreds of the soldiers there, they have their homes there, they have their wives there, and they are living in a camp near that place, no one will expect those soldiers will come and rape by hundreds in that village,” Karti said. “Not only the police is there, but the army is there, and it will protect you against anyone who will infringe your security.”\nIf NGO donors see the situation in the villages as unstable, Karti added, they will keep donating. “This is cutting throats of so many,” he said.\nMedia in Sudan, Karti continued, “have every right to go anywhere and talk about anything that may be causing atrocities to their homeland and people, so if nothing is coming out of that, that means that is only portraying the country in a way that will not at all help somebody like me to convince those who are in charge of a decision like removing Sudan from the list of terror.”\nSudan is one of three countries on the United States’ list of states that support terrorism, alongside Syria and Iran. Karti and the Sudanese government have been lobbying Washington to get Sudan removed from the list.\nSexual violence has historically been used as a weapon of war in the region—mass rapes were common in the Darfur massacre starting in 2003 and before that in the 1994 Rwandan genocide.\nUntil Wednesday’s Human Rights Watch report, international observers had not been able to adequately investigate what happened in Tabit. The African Union United Nations Mission in Darfur (UNAMID) failed to find evidence that the rapes happened at all when they were allowed to visit Tabit for a few hours on Nov. 9—government forces prevented peacekeepers from carrying out a credible investigation, Human Rights Watch and other activists explain, and days later Sudan shut the UNAMID’s human rights office in Khartoum before expelling two senior UN officials from the country altogether. The special prosecutor for crimes in Darfur, appointed by the Sudanese government, who visited Tabit on Nov. 20, also concluded that no crimes had been committed.\nThe details of the Human Rights Watch report are damning. Throughout the town, the report says, the pattern of the attacks was similar: armed and uniformed Sudanese military personnel went house to house, beating the men, and then raping women and girls, sometimes mothers with daughters and sisters with sisters. Survivors, including these two below, shared their stories with Human Rights Watch:\n“Khadamallah, in her mid-teens, said that soldiers came to her home at about 10 p.m. on Friday night: ‘I was in the house with my younger siblings. We were sleeping when the soldiers came into our house. … They entered the house. I took firewood and hit one of them. One of them dragged me out of the room. … They raped me. … Two of them held me down while the other one raped me. Many others who were there were standing around. … And then they brought me back [to my room], tied me [to the bed], and left.'”\n“Mahassan, in her twenties, said that she and three friends were raped by soldiers after sunset. They were in her home preparing perfumes for a wedding when about 10 soldiers entered the compound, dragged the women outside, and raped each of them multiple times: ‘[The soldiers] said that they were looking for a missing soldier. … They searched the compound. … [T]hen they came towards us. They grabbed me and they grabbed my friend. The other soldiers took the other girls in a different direction. They took [me and my friend outside of the compound] towards the school. They raped both of us on the street. … Three of them raped me and three of them raped my friend. … They raped us all night. That’s why I’m still sick. I cannot sit down for a long time like I could before.'”"} -{"text": "Me? I'd always have the seven meals (for two) as I regard eating out as a social event rather than a stomach-filling one and following a visit to our nearest Michelin priced restaurant, I'm still happy with the choice I'd make.\nThe restaurant is based in a large villa just five minutes outside of Vence our nearest town and there were two things I was particularly keen to see; the decor which I was sure would be clean, modern and functional, and how Christophe presented his food. In Tourrettes, virtually every course was sprinkled with edible flower petals which gave the dishes a very colourful feel, possibly to give the impression that there was more on the plate than there actually was.\nI had joked that we might have to go for a burger afterwards as my memory was that whilst his food was very good, there wasn't much of it on the plate - true nouvelle cuisine! I needn't have worried.\nHowever, before we get to the meal itself, I had asked J to 'dress up' for dinner and true to form she appeared in her fox fur (the RSCPCA is not one of her chosen charities !). We drove into Vence and I entered our local Best Western, a small, indistinct little hotel on the edge of town.\n'Oh, how nice', she said in a voice which betrayed her utter disappointment.\n|Christophe at work|\nAfter parking the car and really trying to convince her that we were indeed going out for Valentines Day in a Best Western, I relented and drove on to Les Bacchenales.\nA nice log fire was burning and as soon as we were seated, a waiter presented a bottle of sparkling water, persuaded us to have the house cocktail (apple juice, champagne and candied rose petals) and pointed out the menu which was fixed and which I was reluctant to look at it as I was sure, fish would feature prominently. And it did.\nAnother waiter appeared and produced hot bread sticks with a dish of parsley pesto and parmesan which was a nice appetiser. Then another waiter provided us with two small bowls (like sake bowls) and announced that the three minute white specs were a special type of lard. He then proceeded to pour a thick beef soup into the bowls and pointed out that the accompanying spoons had a black truffle butter on them which should be stirred into the soup.\nThen the confusion began. The spoons were almost flat and any attempt to try and 'spoon' the soup out of the bowls ended with dribbles going everywhere. Should we just drink out of the bowls? I did, and J followed my lead but it was clear later on when other diners started their meal that the spoons should indeed have been used!\nNeither of these dishes (according to J) were on the menu which I still hadn't looked at - there was no point. What was going to be served, would be served. If fish arrived, I would do my best to eat it, after all it was costing me a small fortune.\nThen the fish arrived. A melange (mixture) of monkfish, prawn meat and clams, surrounded by sweet red onion petals and a small amount of salad leaves. Now I have eaten monkfish and prawns before but generally I choose not to. I also adore clam chowder but have never eaten a clam out of its shell.\nThe monkfish and prawn seemed hardly cooked but I ate it and I even tried a clam before depositing the rest on J's plate. Thankfully I was able to wash down the clam taste with some nice white wine. As my cousin Sue would say, 'what are you like'.\nI sat back enjoying the log fire and the quiet, reserved ambience thinking that I could now relax - the fish course was gone, but Christophe appeared at the table and proudly announced that the next course was Corsican Sea Bream. Aaaaaagh!\nActually, it wasn't at all bad. A meaty fish sprinkled with small cubed radish. I ate it. I wasn't too keen, I have to say, but I ate it. It's amazing what you'll do when you know it's costing the equivalent of a monthly wage of one of J's teachers in Kenya.\nMore white wine and then the main course was produced - a small piece of fillet steak poached in beetroot stock and resting on beetroot crisps and something else I didn't recognise the look or taste of. The meat looked distinctly uncooked but it was the colour of the beetroot which had made it look raw. Despite the fact that the knives were so blunt they were unable to cut the meat cleanly, it was so tender that the merest pressure caused it to fall apart - it was delicious, especially when washed down with a nice glass of claret.\n|Flower petals !!!|\nAs we drove home, I reflected on the fact that I am quite obviously a total pleb. I love good food but given a choice of a homemade quiche and frites in the Midi or a meal at Les Bacchenales, I know which I would go for, every time. Seven times actually!"} -{"text": " if D != 128 or block_size != 64 or ratio != 2 or layer_cache.dtype != torch.float8_e4m3fn:\n return None\n device = idx_q.device\n B = block_tables.shape[0]\n max_blocks = block_tables.shape[1]\n # Pad block-table width to even so consecutive 64-token blocks pair into 128-token pages.\n if max_blocks % ratio != 0:\n block_tables = torch.nn.functional.pad(block_tables, (0, ratio - max_blocks % ratio))\n max_blocks = block_tables.shape[1]\n\n # Dynamic active-KV slicing: the block table is statically sized to the\n # context limit (e.g. 131k/256k -> msb 1024/2048), so a short 32k prefill\n # would still score/assemble the full grid. Slice to the live KV span\n # (kv_largest_seq_len, a host int -> no sync), cutting score CTAs, page\n # assembly, and the select range to the active blocks (~1.7x at 32k, exact\n # parity). See INDEXER_SCORER_OPT.md.\n if kv_largest_seq_len is not None:\n actual_msb_raw = max(1, min(triton.cdiv(kv_largest_seq_len, ratio * block_size), max_blocks // ratio))\n # _select_kernel uses tl.arange(0, MSB) which requires MSB be a power of 2.\n actual_msb = min(_ceil_power_of_2(actual_msb_raw), max_blocks // ratio)\n block_tables = block_tables[:, : actual_msb * ratio]\n max_blocks = block_tables.shape[1]\n\n msb = max_blocks // ratio # uniform 128-page count per seq (== history sparse blocks)\n # Guard (sync-free, host ints): super-page scorers (e.g. fp8_indexer_opt, N=256) pack\n # PAGES_PER_SEQ_MULTIPLE consecutive 128-pages into one TMA super-page indexed by\n # page_begin // mult (page_begin = b*msb). If msb is not a multiple of mult, a super-page\n # would straddle a sequence boundary (scoring one seq vs another's K). msb is a power of 2,\n # so only the degenerate msb==1 (<=128-token seqs) under batched super-page use trips this\n # -> fall back to Triton (return None) rather than fail the request; it handles tiny shapes\n # anyway. Baseline (mult=1) never trips. B==1 is always safe (one sequence, no straddle).\n if B > 1 and msb % getattr(mod, \"PAGES_PER_SEQ_MULTIPLE\", 1) != 0:\n return None\n use_fused = _prefill_fp8_use_fused(total_q, msb)\n fused_mod = _fp8_prefill_fused_module()\n if fused_mod is None:\n use_fused = False\n # Compile scorers once (covers the startup-warmup gap; shape-dynamic).\n _warmup_prefill_scorers(device, H, D, ratio, block_size, mod, fused_mod)\n # Short-prefill guard (sync-free): the cute kernel only beats Triton above a\n # work threshold. block_tables is [num_seqs, max_num_blocks_per_seq] (per-batch),\n # so msb tracks the actual KV history -> the proxy total_q * msb * heads is\n # correct for both full prefill AND chunked (small chunk, large history).\n # All factors and the threshold are host-known, so the guard adds no sync.\n if total_q * msb * H < _FP8_PREFILL_MIN_WORK:\n return None\n topk = min(sparse.sparse_topk_blocks, msb)\n\n # Sync-free page assembly: pair consecutive 64-token blocks into contiguous\n # 128-token pages with a single custom Triton kernel (one program per\n # (seq, sparse-block, half)). This replaces the ATen ``layer_cache[bt]`` int64\n # advanced-index gather, which is launch/index-bound (~134 GB/s); the custom\n # kernel does contiguous int32 copies near HBM bandwidth (~15x faster).\n # Padding/invalid entries clamp to block 0; those pages are causally masked.\n # Reused scratch (grow-on-demand, per shard) instead of a per-layer\n # torch.empty: _assemble_pages_kernel fully overwrites it each call, so\n # reuse is safe and avoids the allocator churn (num_alloc_retries).\n k_pages = mod.get_prefill_scratch(\"k_pages\", (B * msb, ratio * block_size, D), layer_cache.dtype, device)\n _assemble_pages_kernel[(B, msb, ratio)](\n block_tables,\n layer_cache,\n k_pages,\n block_tables.stride(0),\n block_tables.stride(1),\n layer_cache.stride(0),\n layer_cache.stride(1),\n k_pages.stride(0),\n k_pages.stride(1),\n MSB=msb,\n RATIO=ratio,\n BLOCK_SIZE=block_size,\n D=D,\n )\n\n # Per-seq causal history prefix sum, fused into a single kernel (no host sync).\n cu_q = q_seq_len_cumsum.to(torch.int32)\n cu_k = torch.empty(B + 1, dtype=torch.int32, device=device)\n # B <= max_batch_size << _CU_K_MAX_B; the kernel masks with i < B so the fixed\n # width is correct and gives a single warmup-covered Triton specialization.\n _build_cu_k_kernel[(1,)](seq_lens_per_q, cu_q, cu_k, B, MAX_B=_CU_K_MAX_B)\n # cu_page is the static 128-page prefix sum (B+1 of arange*msb); cache it so the\n # hot path doesn't relaunch an arange + scalar-mul every call.\n cu_page = _static_cu_page(B, msb, device)\n max_seqlen_q = int(q_largest_seq_len) # host int already available (no sync)\n max_seqlen_k = msb * (ratio * block_size) # static upper bound -> max_k_tiles == msb\n\n if _bench_scorer_only:\n # Benchma"} -{"text": "The Phillie Phanatic is the star of children's books and as a result has turned his love of reading into the exciting Be a Phanatic About Reading literacy program presented by Comcast. Founded in 2004, the program encourages students in grades K-8 to read for a minimum of 15 minutes a day to improve their literacy skills. Area teachers can enroll their classrooms now and join the nearly 50,000 already reading with the Phanatic!\nFor information on how your classroom can be a part of Be a Phanatic About Reading during the 2015-2016 school year, email firstname.lastname@example.org.\nThe program is divided into two levels: one for children in grades K through 3 and the other for grades 4 through 8. Children will be asked to spend a minimum of 15 minutes a day reading whatever book they select. Younger children will be given Phanatic coloring sheets to color in once they have attained their goal while older children will be asked to record the book they read and write a few sentences on their favorite part of the book. The Phillie Phanatic will make a special visit to the top performing schools. To qualify for a Phanatic visit, children will report their progress to their teachers who in turn will tell the Phillies how the children have done in their reading endeavors. From that progress report, schools will be selected for a school visit.\nThe Phanatic does not want you to miss out on the fun that the 2015/16 Be a Phanatic About Reading program has to offer. For information on how to register, e-mail email@example.com or call 215-463-1000.\nClassrooms have the opportunity to win a special visit from the Phillie Phanatic. To qualify for a Phanatic visit, children will report their progress to their teachers who in turn will tell the Phillies how the children have done in their reading endeavors. From that progress report, the top performing classrooms/schools will be selected for a Phanatic visit. Visits will be scheduled between January and May.\nOn Saturday, May 21, 2016 during the 3:05 p.m. game against the Atlanta Braves, The Phillies and the Phanatic will host their annual Be a Phanatic About Reading Night presented by Comcast. Fans 14 and under will receive a copy of the The Phillie Phanatic's Galapagos Gang, the newest book in his children's book series. Students, teachers and parents involved in the Be a Phanatic About Reading program will receive an $8 discount off tickets in locations regularly priced $53 and under.\nAs part of the night, the Phanatic will celebrate readers selected from the program during a special onfield pregame ceremony.\nFans can help children across the region enjoy reading a little bit more by donating a new or gently used children's book, benefitting PHILADELPHIA READS, when they enter the gates.\nThis program has been terrific for reluctant readers. It has been especially rewarding for students that were not motivated readers. It has been rewarding to watch these young readers become more fluent readers.\nI used the reading program as an incentive to motivate my students to read. The program was just, simply, fun! Everyone loves the Phanatic and anything to do with him.\nI have used the program since September. My students have actively kept the reading log to show their reading. Thank you very much. I will look forward to doing this awesome program again next year.\nI would like to commend you and the Phillies organization for taking part in such an important area of student development. As a Reading Specialist, I am thrilled to see organizations that kids so passionately care for develop programs to encourage the whole child! I am equally as impressed with the knowledge of reading research that is included in your letter.\nThank you for providing my class with this opportunity. They are really enjoying the challenge. I am proud to see that I am seeing many of my students showing a greater interest in reading.\nIf you don't see your School District, enroll your school and your district will be added to the list!\nThe Phanatic's favorite thing to do is to cheer on the Phillies but reading a good book is a close second. The Phanatic is always looking for a new book that he can curl up with and welcomes your suggestions. Share what you like to read by emailing firstname.lastname@example.org with the book's title, author and a description of why you love the book. If you do, you could find your recommendation on the Phanatic's Book Corner.\nMake sure to check out all the books in the Phanatic book series including the newest book, \"The Phillie Phanatic's One-Man Band.\" The book details how the Phillie Phanatic and his musical friends came to the rescue to keep the Phillies and their fans rockin' and rollin' during another memorable night at the ballpark.\nTo learn how to enroll your school in the 2015/16 Be a Phanatic About Reading program presented by Comcast email email@example.com or call 215-463-1000."} -{"text": "Lately, Republican candidates are taking shots at Mitt Romney because in his private equity life he had some failures. Democrats have made no secret that they are going to go after Romney because in his private equity life, he had to shut down some unprofitable plants to save businesses. Heaven forbid, other businesses he invested in went belly up. I am not here to defend or advocate for any particular candidate, but I do think that Americans need a much better perspective on failure.\nWhy are we so hard on failure?\nOne of the things the start up community does is embrace failure. When a company goes under, you learn from it. I have invested after tax dollars that were hard to earn into many companies, and not all of them have worked out. One went belly up. One is marginal, one is on fumes, and the rest are operating, but like any company they have challenges. I have had some exits too. But, even those had many twists and turns along the way and the company could have gone under.\nBeing in business isn’t easy. It’s risky. If it were easy, we’d all leave our cushy government and corporate jobs and go on our own and start entrepreneurial companies. But, statistics show that fewer than 30% of all start up businesses make it ten years. Starting a business isn’t rocket science, but it’s a heckuva lot tougher. But, encouraging people to take that risk leads to gigantic gains for our entire society.\nTo give you a little perspective, you need to know what Romney engaged in. He was in what is called Private Equity (PE). Most people confuse Private Equity with Venture Capital (VC). Venture invests in newer companies that have a new technology. Private Equity invests in an existing company that has been operating and reinvents that company. Usually, PE firms use a lot of leverage (debt), to generate returns. Extra leverage on the balance sheet magnifies the rate of return if the company can afford the debt load. If the company can’t afford it, it either restructures again or goes bankrupt. The reason it’s called Private Equity is that the money for the fund comes from private sources, not government sources. The companies that the PE firm buy and run are not listed on public markets, but closely held. The big payoff for PE comes when they spin the companies back out into the open market through an IPO or acquisition. Private Equity firms take risk.\nWith the assumption of risk comes the chance that occasionally things won’t turn out for the best. Sometimes, companies the PE firm buys fail. There can be a huge cadre of reasons for that, and if you listen to a PE guy talk about their failures it generally centers around some of the business decisions the firm made to engage with the marketplace. Sometimes, it’s even a bad market.\nToday, Eric Lekofsky($GRPN) wrote an interesting piece on one of his firms, Innerworkings($INWK). Innerworkings has been a very good business, but for awhile the stock cratered. The decline didn’t have a lot to do with the company operations, but demand for the line of business that the company was in. Printing decreased significantly in 2008. Not a lot Innerworkings could do to avoid the tsunami of the banking crisis. Other firms ($CME) were directly affected too, and we know how that turned out.\nHow firms responded to the crisis and how they were managed after says a lot about them. It’s also reflected in their stock price. Look at the following chart and you would have to conclude management did a helluva job, even with the failure in 2008-09. They were down 88%!\nWhat do you think INWK’s management team did in December of 2009? My guess is they embraced their failure and learned from it. Failure was accepted and put behind them. They adapted and then ran with a new business plan. No doubt, Mr. Private Equity Romney was faced with similar circumstances with companies he had poured money into. Sometimes he failed, but the scorecard says he made the right decisions more often than not.\nIn the case of the candidates that are lining up to take shots at him, Gingrich, Santorum, Paul, Huntsman and Obama, only one, Jon Huntsman, has run a real live on the ground business. The rest are political operatives and we know that politicians don’t know very much when it comes to analyzing profit/loss businesses. (think Solyndra, Fannie Mae $FNM, Freddie Mac)\nIn America, we need to learn to learn how to appropriately deal with failure. That doesn’t mean we celebrate it. It does mean we encourage people to go out into the world and take calculated risks to try and create businesses that make society more productive. In the process, some will hit, and their founder will get rich. Most will fail, but we learn from those failures, pick up the pieces and start again. Lashing out at people that have had failures make us more risk averse and less willing to take a chance. That sort of attitude doesn’t lead to a better American society."} -{"text": "rk hook: prep (page assembly, cu_k/cu_page) is done above; return a\n # zero-arg closure that runs ONLY the score kernel (no select) for cudagraph +\n # CUDA-event scorer-isolated timing.\n return lambda: mod.fp8_prefill_block_scores_varlen(\n idx_q, k_pages, cu_q, cu_k, cu_page, max_seqlen_q, max_seqlen_k\n )\n\n if use_fused:\n return fused_mod.fp8_prefill_block_select_varlen(\n idx_q,\n k_pages,\n cu_q,\n cu_k,\n cu_page,\n max_seqlen_q,\n max_seqlen_k,\n topk=topk,\n init_blocks=sparse.sparse_init_block,\n local_blocks=sparse.sparse_local_block,\n )\n\n fp8_scores = mod.fp8_prefill_block_scores_varlen(idx_q, k_pages, cu_q, cu_k, cu_page, max_seqlen_q, max_seqlen_k)\n # Scores layout is kernel-dependent: the baseline writes [H, total_q, msb] (block axis\n # contiguous); the optimized kernel writes [H, msb, total_q] (query axis contiguous,\n # flagged by SCORES_QUERY_CONTIGUOUS). Feed _select_kernel the matching strides. The\n # contiguous-block read (~1.8x select, INDEXER_SELECT_OPT) holds for the baseline; for\n # the opt layout adjacent (q, h) programs still read coalesced across the query axis.\n if getattr(mod, \"SCORES_QUERY_CONTIGUOUS\", False):\n sc_q_stride = fp8_scores.stride(2) # query axis (== 1)\n sc_block_stride = fp8_scores.stride(1) # msb axis (== total_q)\n else:\n sc_q_stride = fp8_scores.stride(1) # query axis (== msb)\n sc_block_stride = fp8_scores.stride(2) # msb axis (contiguous, == 1)\n selected = torch.full((total_q, H, topk), -1, dtype=torch.int32, device=device)\n _select_kernel[(total_q, H)](\n fp8_scores,\n seq_lens_per_q,\n selected,\n sc_q_stride, # q/batch axis\n fp8_scores.stride(0), # head axis\n selected.stride(0),\n selected.stride(1),\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n TOPK=topk,\n MSB=msb,\n INIT_BLOCKS=sparse.sparse_init_block,\n LOCAL_BLOCKS=sparse.sparse_local_block,\n STRIDE_SC_SB=sc_block_stride,\n num_warps=1,\n )\n return selected\n\n\ndef _fused_score_select_prefill(\n idx_q: torch.Tensor,\n index_k_cache: torch.Tensor,\n layer_local_idx: int,\n block_tables: torch.Tensor,\n positions: torch.Tensor,\n q_seq_len_cumsum: torch.Tensor,\n q_largest_seq_len: int,\n seq_lens_per_q: torch.Tensor,\n sparse: MiniMaxM3SparseAttentionConfig,\n kv_largest_seq_len: Optional[int] = None,\n) -> torch.Tensor:\n fp8_sel = _maybe_fp8_prefill_score_select(\n idx_q,\n index_k_cache,\n layer_local_idx,\n block_tables,\n q_seq_len_cumsum,\n q_largest_seq_len,\n seq_lens_per_q,\n sparse,\n kv_largest_seq_len=kv_largest_seq_len,\n )\n if fp8_sel is not None:\n return fp8_sel\n\n T, H, D = idx_q.shape\n max_blocks = block_tables.shape[1]\n ratio = sparse.sparse_block_downshard_ratio\n msb = triton.cdiv(max_blocks, ratio)\n block_size = sparse.kv_cache_block_size\n topk = min(sparse.sparse_topk_blocks, msb)\n\n layer_cache = index_k_cache[layer_local_idx, :, 0]\n\n block_q = _ceil_power_of_2(_PREFILL_SCORE_BLOCK_Q)\n q_chunks = max(1, triton.cdiv(q_largest_seq_len, block_q))\n target = max(\n 1,\n min(_SCORE_MAX_CHUNKS, _PREFILL_SCORE_TARGET_CTAS // max(1, block_tables.shape[0] * H * q_chunks)),\n )\n num_chunks = min(msb, 1 << (target.bit_length() - 1))\n sparse_block_tokens = block_size * ratio\n block_n = max(sparse_block_tokens, _PREFILL_SCORE_BLOCK_N)\n block_n = triton.cdiv(block_n, sparse_block_tokens) * sparse_block_tokens\n block_d = max(32, triton.next_power_of_2(D))\n\n scores = torch.full((T, H, msb), -1e30, dtype=torch.float32, device=idx_q.device)\n _prefill_score_kernel[(block_tables.shape[0], H, q_chunks * num_chunks)](\n idx_q,\n layer_cache,\n block_tables,\n positions,\n q_seq_len_cumsum,\n scores,\n idx_q.stride(0),\n idx_q.stride(1),\n positions.stride(0),\n layer_cache.stride(0),\n layer_cache.stride(1),\n block_tables.stride(0),\n scores.stride(0),\n scores.stride(1),\n D=D,\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n NUM_KV_CHUNKS=num_chunks,\n BLOCK_Q=block_q,\n BLOCK_D=block_d,\n BLOCK_N=block_n,\n )\n\n selected = torch.full((T, H, topk), -1, dtype=torch.int32, device=idx_q.device)\n _select_kernel[(T, H)](\n scores,\n seq_lens_per_q,\n selected,\n scores.stride(0),\n scores.stride(1),\n selected.stride(0),\n selected.stride(1),\n BLOCK_SIZE=block_size,\n RATIO=ratio,\n TOPK=topk,\n MSB=msb,\n INIT_BLOCKS=sparse.sparse_init_block,\n LOCAL_BLOCKS=sparse.sparse_local_block,\n )\n return selected\n\n\ndef _attention_reuse(meta: \"IncrAttentionMeta"} -{"text": "If Alexis de Tocqueville were to have written Democracy in America today, he might have shared an entirely different perception of America. He would have found too many of our citizens suffering from the depression of our age--\"Learned helplessness.\" Rather than believing that they have what it takes to invent their own future and claiming the mantle of self-reliance and earned opportunity that made America great, they look to government for support.\nAmerica was built on \"inalienable,\" God-given rights that for the first time in recorded history affirmed that all men are created equal. An individual's fate was not determined by who his father or country of origin was, but by his own freely chosen pursuit of his own ambitions.\nIn Thomas Jefferson's original draft of the Declaration of Independence, he used the word \"property\" instead of \"pursuit of happiness.\" Americans wanted the freedom to apply their own talents, character and initiative to produce the unequal outcomes they earned in their own \"pursuit of happiness.\" As a result, we've beckoned to those in the world willing to dream to come, work hard, and share in the limitless opportunities our country offered. And they came.\nAmericans railed against confiscatory taxes. They were a strong, confident people who unleashed the most powerful economy in history. They weren't enticed by the egalitarian spread of socialism and communism. They didn't hate the rich; they wanted to join their ranks. Why? Because they knew of millions who had bettered their lot in this great country.\nWhile our mainline news focuses on negative news and what's wrong with America and many churches clamor for social justice and policies of redistribution, the American Dream is sold as an outdated myth! \"Experts\" say that \"trickle-down\" economics doesn't work.\nBut they can't refute the facts that a growing economy does raise all boats and that becoming \"rich\" in America is not a closed private club. Empirical evidence shows that people still move up and down the earnings ladder. Michael Cox and Richard Alm of the Federal Reserve Bank of Dallas published \"By Our Own Bootstraps\" analyzing the income of \"poor\" Americans over time.\n“The University of Michigan Panel Survey of Income Dynamics tracks the income of 3,725 individuals...for the 17 years from 1975 to 1991. And the U.S. Treasury similarly tracked income patterns over a nine-year period--1979 to 1988--using an entirely different database, the income tax returns from 14,351 representative households. Both tracking studies reveal overwhelming upward mobility for almost all Americans. In the Michigan study, only 5 percent of those in the bottom quintile in 1975 were still there in 1991. In contrast, over 80 percent of this original 'poor' segment made it to the middle class or better.... Indeed, 29 percent of them reached the top quintile. To generalize from this study, over several decades only 1 out of 20 'poor' Americans will stay poor, while 13 will become 'middle class' and 6 will become 'rich.'\"\nThey continue: \"Similarly, the Treasury study showed that 86 percent of the bottom quintile moved to a higher one, with two-thirds reaching the `middle class’ or above, and almost 15 percent making it to the top quintile. Since the Michigan study covered a period almost twice as long as the Treasury study, it’s not surprising that its results were more dramatic. Upward mobility is an ongoing process that gathers momentum with time. The message is clear: This is the land of opportunity, and if you're not getting yours, don't complain. Go to school.\"\nTry a more recent study of income mobility during the Clinton/Bush years. The U.S. Treasury Study--\"Income Mobility in the US from 1996 to 2005\"--found that those with very high incomes in 1996--the top 1/100 or 1 percent--had their incomes halved by 2005. They were not getting ahead at the expense of others; many were making less. Those in the top 20% increased 10 percent. Those originally in the bottom 20 percent saw a 91 percent increase in income. In short, there is no permanent over-class, and once \"poor\" Americans do improve their position over time.\nI and others are working with the Napoleon Hill Foundation to update his message for a new generation. Napoleon Hill's \"Think and Grow Rich\" was a tonic for those dreamers who were willing to find their own way out of the Great Depression. What he said then could be said today:\n\"There is a theory which pops up again and again that the opportunities for success are fewer not what they were in the past, that our nation has reached the plateau of its success, that the world is dominated by people who already have money, and that success is a finite realm already filled to capacity. This is nothing more than a theory. There is no scarcity of opportunity. There is only a shortage of imagination. Countless people gain new wealth every year, whether the economy is prospering or ailing. The only limits they recognize are those within their own minds. Anyone who cries, 'no opportunity' is simply issuing an alibi for his or her own unwillingness to assume responsibility and use imagination. Offering a useful good or service is just as valuable now as it ever was, and new areas in which to do so open up every day.\"\nPresident Obama may be making it tougher with policies that entice people to depend more on the government and take more from those who have applied their own initiative and drive to succeed. But the man in the White House does not determine your future. You do. Spend less time watching and waiting on Washington and get busy finding your place in America's still promising future!"} -{"text": "Live in San Francisco? Don’t put your compostables in your green bin? You should. Don’t have a green bin? Ask and it shall be delivered!\nMore information on San Francisco’s composting program.\nAnd look! what happens to all those kitchen bits and garden bits and bones and wood and stuff. COMPOST! That’s right, and once a year you can stop on by and get some for free. (Even if you don’t recycle your compostables. …)\nCompost program comes full circle Saturday\nYou’re allowed up to two 5-gallon buckets’ full.\nSaturday 9 Jun 2007 8 a.m. to noon\n– City Dump (S.F. Recycling and Disposal) at 401 Tunnel Ave. (Take your hazardous waste down while you’re at it.)\n– John McLaren Park, at the parking lot of the Jerry Garcia Amphitheater, at John F. Shelley Drive and Mansell Street.\n– West Sunset Playground, at Quintara Street and 40th Avenue\n– Herbst Road (runs along the east side of the zoo) and Zoo Road.\nThe raw materials, about 300 tons a day from San Francisco and Oakland, arrive at the plant near Vacaville in large trucks. (San Francisco’s 2,100 restaurants contribute a large part of the San Francisco materials, including everything from broccoli to fish bones, and their compostable paper waste as well.)\n300 tons A DAY! How cool is that?\nReed encourages us all to use our green bins for yard trimmings or food scraps we don’t compost ourselves. You can purchase special biodegradable plastic bags to hold food scraps, but Reed says he’d just as soon you put them in paper bags, milk cartons or other food boxes. Fold over the tops.\nExcept that that’s something we can’t do because compostables are soggy and the bottom would fall out of any paper bag before we got it down the steps to the nearest green bin. (That bin actually “belongs,” I think, to the publishing house at the bottom of the steps, but they don’t seem to mind and always have room to spare.)\nHow about the City making it easier for folks like us to do this green bin thing? They want higher participation, but ’tain’t easy for some of us.\nHere’s our current operation.\n- Large glass measuring bowl with handle on kitchen counter. Stuff goes in that.\n- After meals, dump stuff from measuring bowl into menudo pot lined with plastic grocery bag. Pot is stashed on the floor at far end of kitchen (not that we have far to go) next to the other recyclables &c. Put lid back on pot to minimize funky smells.\n- When menudo pot gets a certain amount of compostables in it or gets too funky, put grocery bag into even bigger (and more leak-proof) shopping bag (a bright garish giveaway bag from Pier 39) and schlep it down the steps to the green bin along with the yard clipping bits (this time of year mostly consisting of dropped unripened figs that scatter across the walking path and snaky vines trimmed back from the fire escape) that we’ve stashed in the garish bag.\n- Empty grocery bag in green bin. Empty yard clippings from garish bag. Roll up grocery bag and put in garish bag.\n- Hike back up steps.\nWhere do our other recyclables go? The garbage collectors come down the steps and pick up the garbage here twice a week (bless them…), but they don’t deal with recyclables.\nTwice a week, we haul the recyclables up to the blue recycle bin located where the steps meet Montgomery. We share that bin with neighbors and the closer it is to pickup day, the fuller the bin is — sometimes too full and then we have to take our recyclables back home and haul them up again after the bin is emptied.\nWhy don’t we put a green bin up there, you ask? Why? Because “there might be some pushback” as a neighbor nearby who shares the blue bin said.\nThe folks living on Montgomery are cranky enough about the blue recycle bin. No kumbayah moments here: One set of neighbors moves the bin away from their side of the steps because they don’t like the noise of people putting stuff in the bin and they don’t like the noise of it being picked up. Over to the other side! and let those folks deal with the noise. The neighbors on the other side move the bin back. Sometimes it winds up on the flat area halfway up to Montgomery.\nCan’t we all just get along? (and recycle? and all that good-for-all-of-us stuff?)"} -{"text": "\") -> dict[str, Any]:\n \"\"\"Lazily-create a per-forward ``meta.reuse`` scratch dict.\n\n Mirrors DeepSeek V4 (``fireworks.nn.deepseek4.utils._attention_reuse``):\n derived tensors that are identical across every sparse layer in a forward\n pass are cached here so only the first layer computes them. The dict is\n reset per forward in ``MiniMaxM3CausalTextModel.forward_transformer`` so\n CUDA-graph capture records the compute kernels exactly once.\n \"\"\"\n reuse = getattr(meta, \"reuse\", None)\n if reuse is None:\n reuse = {}\n meta.reuse = reuse\n return reuse\n\n\n@dataclass(frozen=True)\nclass _CompactSeqLens:\n seq_lens: torch.Tensor\n seq_lens_for_timestep: torch.Tensor\n seq_lens_for_causal: torch.Tensor\n\n\ndef _compact_seq_lens(meta: \"IncrAttentionMeta\", max_tokens_selected: int) -> _CompactSeqLens:\n \"\"\"Clamp the three decode seq_len tensors to the compacted block span, once.\n\n The result depends only on ``meta``'s seq_lens and ``max_tokens_selected``\n (``topk * ratio * block_size``), which are identical across every sparse\n decode layer in a forward pass, so it is computed by the first layer and\n cached on ``meta.reuse`` for the rest. All-device arithmetic keeps it\n CUDA-graph-capture safe.\n \"\"\"\n reuse = _attention_reuse(meta)\n key = (\"m3_sparse_compact_seq_lens\", max_tokens_selected)\n cached = reuse.get(key)\n if (\n isinstance(cached, _CompactSeqLens)\n and cached.seq_lens.shape == meta.seq_lens.shape\n and cached.seq_lens.device == meta.seq_lens.device\n ):\n return cached\n\n def _compact(seq: torch.Tensor) -> torch.Tensor:\n seq_mod = seq % 128\n partial = torch.where(seq_mod == 0, seq_mod + 128, seq_mod) # 128 if aligned else remainder\n c = (max_tokens_selected - 128) + partial\n c = torch.minimum(c, seq)\n return torch.clamp(c, max=max_tokens_selected)\n\n compact = _CompactSeqLens(\n seq_lens=_compact(meta.seq_lens),\n seq_lens_for_timestep=_compact(meta.seq_lens_for_timestep),\n seq_lens_for_causal=_compact(meta.seq_lens_for_causal),\n )\n reuse[key] = compact\n return compact\n\n\ndef _slice_kv_cache_head(cache, kh: int):\n \"\"\"Slice a paged KV cache (and optional scale) to a single KV head ``kh``.\n\n Cache layout is ``[num_blocks, num_kv_heads, block_size, head_dim]``; the\n decode kernel infers the GQA ratio from (q heads : cache kv heads), so the\n per-KV-head sparse loop must hand it a single-head view. Only matters when\n num_kv_heads > 1 locally (world_size < n_head_kv); a no-op at full sharding.\n \"\"\"\n if isinstance(cache, tuple):\n quant, scale = cache\n return (quant[:, kh : kh + 1], None if scale is None else scale[:, kh : kh + 1])\n return cache[:, kh : kh + 1]\n\n\ndef sparse_decode_paged(\n q: torch.Tensor,\n k: torch.Tensor,\n v: torch.Tensor,\n idx_q: torch.Tensor,\n meta: \"IncrAttentionMeta\",\n m3_meta: \"MiniMaxM3AttentionMeta\",\n attn_module: torch.nn.Module,\n *,\n layer_local_idx: int,\n sparse: MiniMaxM3SparseAttentionConfig,\n num_kv_heads: int,\n qk_scale: float,\n activation_dtype: torch.dtype,\n idx_q_full: Optional[torch.Tensor] = None,\n) -> torch.Tensor:\n \"\"\"Sparse decode attention. ``idx_q`` carries this rank's index heads;\n ``idx_q_full`` (when given) carries ALL index heads, rank-replicated, and\n enables the sequence-sharded DP scorer (see\n ``_dp_sharded_decode_score_select``).\"\"\"\n num_q_heads = q.shape[1]\n gqa_group_size = num_q_heads // num_kv_heads\n\n # Per-token sparse selection. Under speculation the base paged metadata\n # (block_tables/seq_lens) is already flattened to B*T rows, one per query\n # token with its own causal range. Block choice is query-dependent, so each of\n # the B*T rows selects against its own scores; the KV write via slot_mapping is\n # unchanged. At T=1 this is the non-spec path.\n #\n # Spec dedup: the T spec positions of a sequence share one index-K history, so\n # the grouped scorer loads it once and scores all T positions, vs the per-row\n # scorer re-reading it T x (the dominant decode HBM cost at long context).\n # Per-row top-k selection is preserved (validated bit-identical). Used when the\n # B*T layout factors into per-sequence groups; T=1 takes the per-row path.\n # block_tables_for_timestep is a required IncrAttentionMeta field (one row per\n # sequence), so num_seq is the sequence count and T = rows / num_seq.\n num_seq = meta.block_tables_for_timestep.shape[0]\n spec_T = idx_q.shape[0] // num_seq\n grouped_layout = num_seq * spec_T == idx_q.shape[0]\n # CuteDSL scorer (bf16 HMMA / fp8_cast QMMA) when eligible; per-row top-k\n # selection semantics are identical to the Triton scorers. At T=1 the\n # per-token base table is already one row per sequence.\n selected = None\n if grouped_layout:\n if spec_T > 1:\n bt_seq = meta.block_tables.view(num_seq, spec_T,"} -{"text": "Hurricane Sandy makes landfall in Bahamas\nNASSAU, Bahamas - Hurricane Sandy barreled into the Bahamas on Thursday after slashing across eastern Cuba, where it ripped off roofs and forced postponement of a hearing at the Guantanamo naval base but caused no reported deaths.\nThe Category 2 hurricane killed four people elsewhere in the Caribbean, and forecasters warned it will likely cause a super storm in the U.S. next week, mixing with a winter storm whose effects will be felt along the entire East Coast from Florida to Maine and inland to Ohio.\nThe hurricane was located about 25 miles east of Great Exuma Island early Thursday afternoon and it was moving north at 20 mph, with maximum sustained winds of 105 mph.\nPower was already out on Acklins Island and most roads there were flooded, said government administrator Berkeley Williams.\nHe said his biggest concern is that a boat filled with basic supplies for the island canceled its trip until next week.\n\"Supplies were low before, so you can imagine what we are going through now,\" Williams said.\nOn Ragged Island in the southern Bahamas, the lone school was flooded, \"we have holes in roofs, lost shingles and power lines are down,\" said Charlene Bain, local Red Cross president. \"But nobody lost a life, that's the important thing.\"\nPeople across the Bahamas formed long lines to stock up on water, canned goods, flashlights and other items, leaving grocery store shelves nearly empty.\nSooner Halvorson, a 36-year-old hotel owner from Colorado who recently moved to the Bahamas, said she and her husband, Matt, expect to ride out the storm with their two young children, three cats, two dogs and a goat at their Cat Island resort.\n\"We brought all of our animals inside,\" she said, though she added that a horse stayed outside. \"She's a 40-year-old horse from the island. She's been through tons of hurricanes.\"\nHurricane Sandy was expected to churn through the central and northwest Bahamas late Thursday and early Friday. It also might bring tropical storm conditions along the southeastern Florida coast, the Upper Keys and Florida Bay by Friday morning.\nWith the storm projected to hit New Jersey with tropical storm-force winds on Tuesday, there is a 90 percent chance that most of the East Coast will get steady gale-force winds, flooding, heavy rain and maybe snow starting Sunday and stretching past Wednesday, said U.S. forecaster Jim Cisco.\nIn the Bahamas, the massive Atlantis resort went into lockdown mode after dozens of tourists left Paradise Island before the airport closed, said George Markantonis, president and managing director of Kerzner International, which manages the resort. He said the resort is now less than half full, but all its restaurants, casinos and other facilities are still operating.\nBut other businesses on Paradise Island, where the capital of Nassau is located, remained closed.\nSandy was blamed for the death of an elderly man in Jamaica who was killed when a boulder crashed into his clapboard house, police said. Another man and two women died while trying to cross storm-swollen rivers in southwestern Haiti.\nOfficials reported flooding across Haiti, where many of the 370,000 people still displaced by the devastating 2010 earthquake scrambled for shelter. More than 1,000 people were evacuated from 11 quake settlements, according to the International Organization for Migration.\nIn Cuba, authorities said they were worried about the damage Hurricane Sandy might have inflicted in small mountain villages still unheard from, but no deaths were reported.\n\"It crossed the entire eastern region practically without losing intensity or structure,\" said Jose Rubiera, the island's chief meteorologist.\nSantiago, Cuba's second largest city near the eastern tip of the island, was spared the worst of the storm, which slammed into the provinces of Granma, Holguin and Las Tunas.\nCuban President Raul Castro ordered authorities to evaluate damage throughout eastern Cuba, and state media said they expected to release more information throughout the day.\nThere were no reports of injuries at the U.S. naval base at Guantanamo Bay in Cuba, but there were downed trees and power lines, said Kelly Wirfel, a base spokeswoman. Officials had canceled a military tribunal session scheduled for Thursday for the prisoner charged in the 2000 attack on the Navy destroyer USS Cole.\nFar out in the Atlantic, Tropical Storm Tony was weakening and posed no threat to land. The storm had maximum sustained winds of about 40 mph and was moving east-northeast at 21 mph. Its center was about 715 miles southwest of the Azores."} -{"text": "ESPN Films’ ‘The Book of Manning’ to Premiere September 24 on ESPN\nvia press release:\nESPN Films “SEC Storied” Documentary The Book of Manning to Premiere September 24 on ESPN\nThe film, narrated by John Goodman, explores how tragedy shaped one of the most influential families in professional sports history\nThe third season of ESPN Films’ “SEC Storied” documentary series will kick off with The Book of Manning Presented by Chick-Fil-A on Tuesday, Sept. 24, at 8 p.m. ET on ESPN. The film will explore the personal and professional life of former NFL and Ole Miss quarterback Archie Manning and how the sudden loss of his father impacted his life and the way he and his wife raised their three sons.\nA father-and-son story written into the pages of football folklore, it can be argued that no family has had more influence on a sport than the Mannings. Archie – the patriarch – a star quarterback at the University of Mississippi and then with the New Orleans Saints, followed by oldest son Cooper, whose football dreams were cut short by a spinal condition, then sons Peyton and Eli – both of them quarterbacks, All-SEC, number one draft picks, back-to-back Super Bowl champions and MVPs.\nNarrated by actor John Goodman, The Book of Manning features revealing interviews with Archie, Olivia, Cooper, Peyton and Eli Manning along with other family members, friends, former teammates and coaches as well as never-before-seen photos and home movie footage of Archie and his sons. Through it all, director Rory Karpf explores how a tragedy shaped the course of not only Archie’s life, but his family’s as well.\n*Digital screeners and promotional photos for The Book of Manning available upon request*\nFollowing the film’s debut on ESPN, ESPNU will air Story Behind Storied, a special director’s cut of the making of the ESPNU “SEC Storied” series of films. The special will recap all nine of the films in the series thus far and show never-before-seen footage from certain films. ESPNU will then re-air The Book of Manning at 10 p.m. followed by a classic Ole Miss game featuring NFL MVP quarterback Eli Manning and a Tennessee game with NFL MVP Peyton Manning.\nESPN Films launched the Storied documentary series in September 2011, presenting fans the opportunity to explore the rich athletic history of the Southeastern Conference. From extraordinary athletes and coaches to defining games and moments, the Storied series features films that focus on the SEC’s recent and more distant past.\nAbout ESPN Films\nCreated in March 2008, ESPN Films produces high-quality films showcasing some of the most compelling stories in sports. In October 2009, ESPN Films launched the Peabody Award-winning, Producer’s Guild Award-winning and Emmy-nominated 30 for 30 film series. Inspired by ESPN’s 30th Anniversary, the films that made up the series were a thoughtful and innovative reflection on the past three decades told through the lens of diverse and interesting sports fans and social commentators. The strong reaction from both critics and fans led to the launch of 30 for 30 Volume II, which is currently underway. Additional projects from ESPN Films include the critically acclaimed Nine for IX series, SEC Storied and the webby award winning 30 for 30 Shorts. For more information on 30 for 30, go to espn.com/30for30/.\nSEC on ESPN\nESPN, Inc., and the Southeastern Conference entered into a landmark 15-year agreement for extensive football, men’s and women’s basketball, Olympic sports and conference championship content across multiple ESPN entities beginning with the 2009-10 academic year. As a result, ESPN Regional Television became the over-the-air syndication home for Southeastern Conference programming and the largest college sports syndication television package in the country. In 2012, SEC Network basketball games were distributed in 77 local television markets, representing 50.4 million homes, which is 44% of the U.S.; 2011 SEC Network football games were distributed in 99 local television markets, representing 79.1 million homes, which is 69% of the U.S."} -{"text": " meta.block_tables.shape[1])[:, spec_T - 1, :]\n else:\n bt_seq = meta.block_tables\n # Sequence-sharded DP scorer first (needs the rank-replicated\n # all-heads index Q); identical results to the local path.\n if idx_q_full is not None:\n selected = _dp_sharded_decode_score_select(\n idx_q_full,\n m3_meta.m3_index_k_cache,\n layer_local_idx,\n bt_seq,\n meta.seq_lens,\n sparse,\n spec_T,\n num_kv_heads,\n )\n if selected is None:\n selected = _maybe_cute_score_select_grouped(\n idx_q,\n m3_meta.m3_index_k_cache,\n layer_local_idx,\n bt_seq,\n meta.seq_lens,\n sparse,\n spec_T,\n )\n if selected is None:\n if spec_T > 1 and grouped_layout:\n selected = _fused_score_select_grouped(\n idx_q,\n m3_meta.m3_index_k_cache,\n layer_local_idx,\n bt_seq,\n meta.seq_lens,\n sparse,\n spec_T,\n )\n else:\n selected = _fused_score_select(\n idx_q,\n m3_meta.m3_index_k_cache,\n layer_local_idx,\n meta.block_tables,\n meta.seq_lens,\n sparse,\n )\n\n # Vectorized, CUDA-graph safe block table compaction to fix FlashInfer's -1 sentinel softmax dilution bug\n B, H, topk = selected.shape\n ratio = sparse.sparse_block_downshard_ratio # 2\n block_size = sparse.kv_cache_block_size # 64\n\n stats_dir = _os.environ.get(\"FIREWORKS_M3_SPARSE_STATS_DIR\")\n if stats_dir:\n _record_sparse_decode_stats(\n stats_dir,\n selected=selected,\n seq_lens=meta.seq_lens,\n # The per-row scorer treats every row as its own sequence (no\n # cross-row KV sharing assumption), so dedup at row granularity.\n num_seq=num_seq if grouped_layout else B,\n spec_T=spec_T if grouped_layout else 1,\n # ceil-div to match the score/select kernels (triton.cdiv); floor here\n # would undersize the per-seq stride and collide batch-global block ids.\n msb=max(1, triton.cdiv(meta.block_tables.shape[1], ratio)),\n layer_local_idx=layer_local_idx,\n )\n\n # Gather only the selected physical block IDs for each head. FlashInfer sees\n # a compact logical sequence, so it only needs topk*ratio page columns, not\n # the original max-seq block table width. We compact the (per-token) base\n # table and feed it as the read table for a num_timesteps=1 decode.\n compact_bt = compact_block_tables(\n meta.block_tables,\n selected,\n ratio,\n topk,\n )\n\n # Clamp seq_lens to the valid tokens spanning the selected (compacted) blocks.\n # = (topk-1) full sparse blocks (1920) + the partial local block (seq%128, or\n # 128 if aligned); for short seqs (<= 2048) every block is selected so the real\n # seq_len bounds it. This avoids FlashInfer reading the partial block's\n # unwritten tail (dilution). Proven exact (cos 1.0) on all 256 seq_lens across\n # the +-128 dropping boundary; see do_not_commit/test_compaction_seqlen.py.\n # All device-tensor arithmetic — no torch.tensor(scalar, device=...) (illegal\n # during CUDA-graph capture).\n max_tokens_selected = topk * ratio * block_size # 2048\n\n # Computed once per forward by the first sparse decode layer and shared by\n # the rest via ``meta.reuse`` (see ``_compact_seq_lens``). We only need the\n # base (per-token) compacted seq_lens for the num_timesteps=1 read.\n compact_seq_lens = _compact_seq_lens(meta, max_tokens_selected).seq_lens\n\n out = q.new_empty(q.shape)\n for kh in range(num_kv_heads):\n # num_timesteps=1: treat each of the B*T query rows as its own single-step\n # decode against its own (compacted, per-token) block table. The read path\n # (kv_cache_params -> incr_attn) consumes block_tables_for_timestep /\n # seq_lens_for_timestep + num_timesteps, so point those at the per-token\n # compacted base table.\n meta_kh = replace(\n meta,\n num_timesteps=1,\n block_tables=compact_bt[kh],\n seq_lens=compact_seq_lens,\n block_tables_for_timestep=compact_bt[kh],\n seq_lens_for_timestep=compact_seq_lens,\n block_tables_for_causal=compact_bt[kh],\n seq_lens_for_causal=compact_seq_lens,\n )\n qs = kh * gqa_group_size\n qe = qs + gqa_group_size\n o = attn_module(\n meta_kh,\n qkv=None,\n rope=None,\n qk_scale=qk_scale,\n split_qkv=(q[:, qs:qe, :], k[:, kh : kh + 1, :], v[:, kh : kh + 1, :]),\n activation_dtype=activation_dtype"} -{"text": "|By PR Newswire||\n|January 4, 2013 02:00 AM EST||\nLONDON, January 4, 2013 /PRNewswire/ --\nWeight Watchers® New Approach to Weight Loss\nThese days we live in a world full of tempting, tasty food everywhere we turn. New research from Weight Watchers reveals that it's this overloaded food environment that causes us to overeat- it's not just about lack of willpower! Coupled with this, is the breakthrough science of 'hedonic hunger', which proves that sensory exposure to these hard to resist foods - even just thinking about them - creates a physical 'urge to eat', regardless of whether you've just eaten, encouraging us to give way to temptation.\nFrom browsing for breakfast cereals in our kitchen cupboards to grabbing a coffee on the go or piling on the pasta at dinner, we make an average of 200 food decisions every day. Around 90% of these decisions are unconscious - we don't even notice them. Find out more about the overloaded environment and temptation triggers with this Weight Watchers infographic.\nThese food decisions are especially challenging for the residents of the Twenty Toxic Cities in the UK. Research from Weight Watchers has revealed Manchester to be the most toxic city, in a leaderboard based on the highest level of fast food outlets in 2012 for the population density*.\nNo. of people per fast food outlet* Most Toxic Cities in the UK in 2012 1. Manchester 492 2. Bristol 623 3. Edinburgh 725 4. Brighton 768 5. London 830 6. Glasgow 921 7. Liverpool 1,002 8. Leicester 1,081 9. Newcastle upon Tyne 1,146 10. Leeds 1,148 11. Sheffield 1,293 12. Cardiff 1,366 13. Hull 1,485 14. Nottingham 1,749 15. Belfast 1,854 16. Birmingham 2,255 17. Wakefield 2,508 18. Coventry 2,798 19. Sunderland 3,146 20. Bradford 4,477\nToday, Weight Watchers will be helping its members tackle the issue head on, by launching a brand new approach to its highly successful ProPoints plan.\nZoe Hellman, Head of Public Health, Weight Watchers explains the new approach... \"Our new approach ProPoints plan gives you practical, realistic and simple solutions to create an environment that works for your weight loss, not against it, reducing the need for willpower.\"\nWeight Watchers New Approach offers members the tools and tactics to help them reclaim control of their environments and weight. It combines the very best of the tried and tested ProPoints plan with a new focus on the impact of your surroundings and how to make them work for, not against, your weight loss.\nThese include Places and Routines, two brand-new, exciting tools on the Weight Watchers website that have been developed to help you reclaim control of your overloaded food environment, and easily build healthy habits into your daily life. To find out more about Places and Routines just visit the Weight Watchers website.\nNotes to Editors\nThe Weight Watchers ProPoints plan takes all the best nutritional science from around the world to provide members with a simple to learn, flexible counting system that helps guide people towards healthier more satisfying food choices. Weight Watchers is the first organisation to offer a better, more accurate and flexible weight management formula than the outdated method of calorie counting.\n*Chart has been based on a criteria of the highest level of fast food outlets* for the population density and features the UK's 20 highest populated UK cities.\n*Café and tearooms, Coffee shops, Fast food takeaways, Fish and chips shops, Indian takeaway, Take away food shops. Data from The Local Data Company\nFor more information on Weight Watchers visit http://www.weightwatchers.co.uk\nFind Weight Watchers on Facebook http://www.facebook.com/weightwatchersuk\nFollow Weight Watchers on Twitter https://twitter.com/ww_uk\nPlease contact the Weight Watchers Press Office Team for more information and images:\nLucy Tinley: +44-(0)1628-415-216, firstname.lastname@example.org\nCatrin Hollely: +44-(0)1628-415-267, email@example.com\n- \"All It Took Was One E-Mail to Larry,\" Says Former eBay Research Director As He Moves to Google\n- Google Ramps Up Its Mobile Reach: Launches \"Mobile Web Search\"\n- Ericsson + Napster = World's First \"Wireless Digital Music\" Brand\n- VoIP Update: Yahoo! Buys DialPad\n- Free Guest Passes for the SOA World Conference & Expo in NYC\n- SYS-CON i-Technology Podcast August 30, 2005\n- A Flair for Food - Health-Conscious Cooking Is This Chef's Cup Of Tea\n- Sony PSP May Feature Porn\n- Kapow Helps Seiko UK, Provides SMS Text-Alert Services\n- South Korea is World's Largest Phisher"} -{"text": "Sunday, 5:30 am. McCarran Airport in Las Vegas. It still hasn’t sunk in that for the first time since 2006, there is a new middleweight champion in the UFC. That’s not melodrama, not a moment to sigh for the “good ol’ days,” just a realization that the MMA landscape has changed quite considerably since Chris Weidman’s second round knockout of Anderson Silva on Saturday night.\nYou could go even further and say the sports landscape has changed, because I’ve never woke up to so many texts from friends who are casual fans at best asking about the fight, or had so many people at the airport see the UFC on my bag and ask what happened with that Silva guy.\nSo what happened? He gave Weidman his chin on a platter and the New Yorker took it. It doesn’t get any simpler than that. Silva didn’t show up to the MGM Grand Garden Arena and fight like a 38-year-old is expected to, aging overnight. He wasn’t steamrolled by the New Yorker and pounded into a one-sided defeat. No. He dropped his hands, showboated, and stuck out his chin like he had so many times before. But this time his sin of leaning straight back to avoid a punch caught up to him.\nThis wasn’t the Forrest Griffin fight, where he pulled off the same antics and wound up knocking the newly minted UFC Hall of Famer out. This wasn’t his bout with Demian Maia, where his venomous taunts were only addressed in the closing stages of the fight, when it was too late. Weidman was young, fast, determined, and – for the moment – angry at being clowned by the Brazilian legend. He was going to keep punching until he hit something, and when I spoke to Weidman’s longtime coach Ray Longo Saturday night, he said his advice to his charge was to stop aiming for Silva’s chin and instead “punch a hole in his chest.” When Weidman followed that advice, his hole punching intentions strayed upward, found Silva’s jaw, and seconds later, it was game over for a reign that lasted over seven years and ten successful title defenses.\nThat’s the bad news. The good news is that the 185-pound weight class is suddenly wide open, Silva’s Hall of Fame worthy legacy doesn’t take a hit, and he appears that he is still a threat to not just return to his winning ways, but to regain his title should a rematch take place. And yeah, that rematch will make him a boatload of money.\nThe other positive to take from the upset is an obvious one - the arrival of Chris Weidman.\nAs a New Yorker, I’ve been hearing about Weidman long before he made his UFC debut, and when there were some scoffing at him making his UFC debut after just four fights (and on short notice no less), those here on the east coast smirked. He was ready for the UFC, and his first five fights (and wins) here proved it.\nBut after nine pro bouts, is anyone ready for Anderson Silva?\nWhen asked about the fight in the days and weeks leading up to UFC 162, I said that Weidman has the talent to beat Silva, but I wasn’t sure that he had the experience. When all you’ve seen since June of 2006 is brilliance, with the exception of two rough outings with Chael Sonnen (both of which Silva finished anyway), there wasn’t much to hang your hat on when it came to calling for the upset other than Weidman’s wrestling-based style and the idea that eventually Father Time catches up to all fighters.\nMy theory was that the only one that could beat Anderson Silva was Anderson Silva. And I was right. Just not in the way I expected. The way I saw it, Silva’s greatest tool was his ability to translate his talent into a confidence in the Octagon where he didn’t believe that someone had the nerve to, as Mike Tyson once said, “challenge me with their primitive skills.” The man Silva dethroned for the 185-pound title, Rich Franklin, told me that Silva makes “good fighters look bad,” and I’ve never heard a more accurate breakdown of the 16-0 start to his UFC career.\nWeidman believed though, and as early as his first couple UFC fights, he knew he had what it took to beat Silva. It wasn’t a ploy to get the fight made, pick up a nice payday, and fade away into life as a mid-tier contender. He really thought he could win. Even through all the pre-fight hype, through being picked by several peers to win, and through all the fight week festivities, Weidman kept focused and stuck to what he had envisioned a thousand times in his head: winning the title.\nAnd while the first round went well enough for Weidman on the ground, by the end of the round, Silva was standing, taunting, whipping the crowd into a frenzy, and appearing to get into Weidman’s head.\nThe Brazilian looked to be in complete control at the moment, and it carried over into the second round. And that’s where he lost his way and lost his title, allowing his confidence to sway into arrogance. You could say that his reflexes aren’t as sharp at 38 as they were ten years ago, but I’m not buying that as an excuse. What I saw was a Silva forgetting that as good as he is, everyone he faces in the Octagon with four ounce gloves has the talent to put his lights out. On Saturday night, Chris Weidman did just that. It was shocking, but it wasn’t a fluke. And while it’s not the way you want to see any great champion go out, I’ve got a feeling it won’t be his final exit.\nSee the photo gallery of UFC 162\nLooking back at Saturday's shocking Chris Weidman vs. Anderson Silva bout..."} -{"text": ",\n )\n out[:, qs:qe, :] = o\n return out\n\n\nimport os as _os\nimport json as _json\nimport time as _time\n\n\ndef _selection_head_stats(selected: torch.Tensor, row_to_seq: torch.Tensor, msb: int, num_slots: int) -> list[dict]:\n \"\"\"Per local KV head: distinct selected blocks + per-block query counts.\n\n ``selected`` is [rows, Hkv, topK] int32 block ids (-1 padded), block ids local\n to each row's sequence; ``row_to_seq`` maps each row to its sequence so blocks\n are made batch-global (seq_id * msb + block) -- the same block index in two\n different sequences counts as two distinct blocks.\n \"\"\"\n block_offset = (row_to_seq * msb).view(-1, 1)\n heads = []\n for h in range(selected.shape[1]):\n sel_h = selected[:, h, :].long()\n valid = sel_h >= 0\n global_blocks = (sel_h + block_offset)[valid]\n counts = torch.bincount(global_blocks, minlength=num_slots)\n qlens = counts[counts > 0].tolist()\n n = len(qlens)\n heads.append(\n {\n \"num_selected_kv_blocks\": n,\n \"qlen_per_selected_kv_block\": qlens,\n \"qlen_min\": min(qlens) if n else 0,\n \"qlen_max\": max(qlens) if n else 0,\n \"qlen_avg\": round(sum(qlens) / n, 2) if n else 0.0,\n }\n )\n return heads\n\n\ndef _append_stats_record(out_dir: str, filename_prefix: str, rank: int, record: dict) -> None:\n _os.makedirs(out_dir, exist_ok=True)\n path = _os.path.join(out_dir, f\"{filename_prefix}_rank{rank}.jsonl\")\n with open(path, \"a\") as f:\n f.write(_json.dumps(record) + \"\\n\")\n\n\ndef _record_sparse_prefill_stats(\n out_dir: str,\n *,\n selected: torch.Tensor, # [Tq, Hkv, topK] int32 block ids (-1 padded)\n varlen: Any,\n msb: int,\n layer: int,\n) -> None:\n \"\"\"Append one JSONL record per sparse layer describing the prefill selection pattern.\n\n Debug/analysis instrument, gated by FIREWORKS_M3_SPARSE_STATS_DIR (the output\n directory). Synchronizes device->host once per call, so leave it off in\n production. One file per rank: sparse_prefill_stats_rank.jsonl.\n\n Per record: total_q (query tokens in the chunk), total_kv (sum of real per-seq\n KV lengths), and per local KV head the number of distinct selected KV blocks\n plus the per-block query counts (how many queries selected each block) with\n min/max/avg.\n \"\"\"\n if torch.cuda.is_current_stream_capturing():\n return\n tq, hkv, topk = selected.shape\n device = selected.device\n batch_size = varlen.q_seq_len_cumsum.shape[0] - 1\n q_seq_lens = (varlen.q_seq_len_cumsum[1:] - varlen.q_seq_len_cumsum[:-1]).to(torch.long)\n seq_row_idx = torch.repeat_interleave(torch.arange(batch_size, device=device), q_seq_lens, output_size=tq)\n rank = torch.distributed.get_rank() if torch.distributed.is_initialized() else 0\n record = {\n \"ts\": round(_time.time(), 3),\n \"layer\": layer,\n \"rank\": rank,\n \"batch_size\": batch_size,\n \"total_q\": tq,\n \"total_kv\": int(varlen.kv_seq_lens.sum().item()),\n \"topk\": topk,\n \"heads\": _selection_head_stats(selected, seq_row_idx, msb, batch_size * msb),\n }\n _append_stats_record(out_dir, \"sparse_prefill_stats\", rank, record)\n\n\ndef _record_sparse_decode_stats(\n out_dir: str,\n *,\n selected: torch.Tensor, # [B*T, Hkv, topK] int32 block ids (-1 padded)\n seq_lens: torch.Tensor, # [B*T] per-row causal KV length\n num_seq: int,\n spec_T: int,\n msb: int,\n layer_local_idx: int,\n) -> None:\n \"\"\"Decode-side twin of :func:`_record_sparse_prefill_stats` (same env gate,\n separate sparse_decode_stats_rank.jsonl files).\n\n Decode rows are one per (sequence, spec position): total_q = B*T. The T spec\n rows of a sequence share its KV, so blocks are deduped within a sequence but\n not across sequences; total_kv sums each sequence's current KV length (its\n last spec row). NB: decode is CUDA-graph captured by default -- graph REPLAYS\n never run this Python, so steady-state steps are invisible unless the server\n runs with FIREWORKS_DISABLE_CUDA_GRAPH=1 (recording is skipped during capture\n to keep graph capture legal).\n \"\"\"\n if torch.cuda.is_current_stream_capturing():\n return\n rows, hkv, topk = selected.shape\n device = selected.device\n row_to_seq = torch.arange(rows, device=device) // spec_T\n per_seq_kv = seq_lens.view(num_seq, spec_T)[:, -1]\n rank = torch.distributed.get_rank() if torch.distributed.is_initialized() else 0\n record = {\n \"ts\": round(_time.time(), 3),\n \"layer_local_idx\": layer_local_idx,\n \"rank\": rank,\n \"batch_size\": num_seq,\n \"spec_T\": spec_T,\n \"total_q\": rows,\n \"total_kv\": int(per_seq_kv.sum().item()),\n \"topk\": topk,\n \"heads\": _selection_head_stats(selected, row_to_seq, msb, num_seq * msb),\n }\n _append_stats_record(out_dir, \"sparse_decode_stats\", rank, record)\n\n\ndef _kvouter_pr"} -{"text": "A Satyr's Tragedy\nFrom Uncyclopedia, the content-free encyclopedia\n| Attempt to explain joke|\nBefore I tell the story, it is imperative I explain what a Satyr is, as the public school system doesn't believe in teaching all kids about Greek Gods, any more. Blame McCartneyism. I do. Anyway, according to Greek mythology, satyrs are the male companions of Pan and Dionysus that roamed the woods and mountains. They were often associated with sex drive and apparently had perpetual erections. I know. It's fucking magical or something.\nedit It's story time, kiddies\nThere was once a satyr named... Stan. Yeah. Anyway, Stan was very different from other satyrs. You see, he suffered from ED. This made all of the other satyrs, with their perpetual erections and abilities to balance cups of wine on said erections, to make fun of him constantly (think Rudolph, but not a bastardized mix of Judaism, Paganism, and Christianity). Even the satyr named Phil, the one who trained Hercules and had a penis so small it wasn't visible to the naked eye, was more popular than Stan.\nedit Early childhood\nWhen Stan was very young, his only friend was his brother. This all changed when his brother had his penis beaten by Perseus. After having his penis beaten by a baby God, his brother became extremely popular. He never hung out with Stan again. This made Stan very suicidal. Due to his suicidal tendencies, the satyrs god Dionysus abandoned them on an island off the coast of Greece called Sicily. The satyrs were then made the slaves of Cyclops. This made Stan even more hated.\nOne day an adventurer named Odysseus, along with his crew, landed in Sicily at Mount Aetna near the location of the satyrs. When Stan's father encountered the hungry travellers, he traded some of Cyclops's food for liquor without permission from Cyclops. When Cyclops saw Odysseus eating his food, he became very frustrated and tried to kill him. Stan tried to tell Cyclops what happened, but he was thoroughly beaten by the one-eyed giant, who claimed he was a lying phony. While Cyclops beat the shit out of Stan, Odysseus and his crew retreated to their ship and left. They didn't even bother to thank Stan for saving them.\nAll of the satyrs made fun of Stan for helping a human for the next three months.\nedit Later childhood\nAfter being betrayed by both humans and satyrs, Stan realized that everyone was a douche, even writing an entire journal about it. He stopped trying to be cool. He wrote a few songs about being \"artsy and misunderstood\" and also founded a My Chemical Romance fansite.\nOn the weekends, he would go to comic book stores and pick fights about if the entire Green Lantern Corps could beat Jay Garrick, the original Flash. Usually, the fight would end with Stan getting shoved into a garbage can and rolled down the street. The store owner, a fat balding man by the name of Comic Book Guy, hated him, but Stan was his best customer. One day though, the other satyrs broke into Stan's house and destroyed all of Stan's first-edition Lois Lane comics from World War II and left X-Men comics in their place. The X-Men comics only served as a reminder of when he was a child and his father was raped by Cyclops. Forever scarred, Stan no longer would read another comic book. The loss of comic books caused Stan to become even more depressed.\nStan was stil very lonely.\nWhen all of the other satyrs spent their free time drinking alcohol, dancing, and gang-raping Helen, Stan would be in his room, alone, trying to get an erection. Stan was very smart (So smart in fact everyone in his geometry class cheated off him every fucking day.), but no matter what he learned, he still couldn't find a way to get an erection. All that porn he looked at only made him hornier, but he was incapable of getting it up.\nHe fell in love with a satyress in his film class. This female satyress was very artistic and was also a member of the choir. She wasn't at all attracted to him (Why would she be? Seriously...), but Stan had a plan! He was learning some game by listening to the advice of people on Yahoo! Answers and was learning pick up chicks. Of course, it didn't matter how much he improved his game as he was still ugly and couldn't get it up. Then, a miracle happened! Some guy invented a pill that gives erections!!! Stan ordered a full box of the magical pills. He was going to get lucky, dammit!\nHe started using the game he learned to get the satyress to like him. Eventually, Stan managed to get her to even give him hugs. Whenever she would hug him, Stan would get a tingling in his pants. One day, Stan decided it was now or never. He was going to get laid. He had asked the satyress to the movies. She accepted. Stan prepared his arsenal. Chloroform rag, some money, a pack of Trident, one extra small Trojan, and the full bottle of the magical pills. Stan swallowed the full bottle.\nHe got to the movies just 30 minutes later, and he ran up to where she was standing. She was very much impressed by his lack of limpness. They proceeded to enter the theatre. Two tickets to see Wolverine: The Musical, a bag of gummi bears, two Dr. Peppers, and a small box of nachos for the lady. They sat down in the third to last row. It was clean for once. Plus, there weren't many people around. It was all going Stan's way for once (Priceless!!!).\nThirty minutes into the movie, Stan was still hard, but the satyress was too into the movie, which would last for another four hours, to do anything about it.\nWhen the movie ended, the satyress looked at Stan and told him she was ready. Stan gave no response. He sat there with a blank stare. Stan had died due to how long the bloodflow had been redirected from his brain to his penis. Also, blood started oozing from the head of Stan's penis.\nThat, kids, is why you should see a doctor if you have an erection that lasts longer than four hours. I'm serious."} -{"text": "Hopes for a quick resolution of the writers strike are fading fast.\nBack-channel efforts have resumed to avert what’s now looking like a long and painful work stoppage. But those moves aren’t gaining much traction amid continued hardline public stances by both the WGA and the Alliance of Motion Picture & Television Producers.\nWorries have risen that without reviving the WGA talks, the scribes’ work stoppage could easily bleed into the middle of next year.\nThe DGA’s expected to launch talks within the next few weeks while SAG’s negotiations would probably start in the late winter or early spring. Both the DGA and SAG contracts expire June 30.\nWGA negotiations collapsed Sunday night, dashing a brief burst of optimism over the weekend that both sides had softened their stances and narrowed their proposals. And since the talks crashed and burned, both sides have ditched diplomacy.\nAMPTP topper Nick Counter has insisted that the companies aren’t interested in new talks as long as the WGA’s on strike. And WGA West president Patric Verrone has declared in an email to members that the guild is no longer committed to taking its DVD residuals proposal off the table — even though it did so Sunday to address the AMPTP’s assertion that the DVD proposal was a roadblock to a deal.\n“Our new comprehensive proposal (including the DVD removal) was presented in an off-the-record session; our new proposal was then rejected,” Verrone said. “Based on what I saw and heard on the picket lines today, therefore, all bets are off and what we achieve in this negotiation will be a function of how much we are willing to fight to get our fair share of the residuals of the future, no matter how they are delivered.”\nIn other developments:\n- The WGA’s considering offering waivers, or “interim agreements,” under which producers could employ writers with the proviso that scribes would be compensated under terms of the new contract. During the 1988 WGA strike, more than 70 such were signed.\n“The question of when to sign interim agreements, and with what employers, depends on an assessment by the Guild leadership of how such agreements will affect our leverage at the bargaining table,” said WGA spokesman Gregg Mitchell.\n- The WGA has quietly backed off its strike rules on animated feature writing.\nThe guild announced nearly a month ago that writers could not work or negotiate for animated features — even though that realm is not under WGA jurisdiction with most writing performed under contracts handled by Local 839 of the Intl. Alliance of Theatrical Stage Employees.\nBut the revised strike rules now permit WGA members to write for animated features covered by Local 839 without being fined or disciplined: “The Rules apply to (1) all network primetime animated series covered by a WGA contract and (2) contracts for writing services in connection with fully animated theatrical features negotiated or entered into during the strike, unless covered by a current collective bargaining agreement with another union.”\nThe AMPTP and IATSE threatened the WGA with legal action over the rule, under which violators could face expulsion, suspension, fines and censure.\n- The Writers Guild of Canada has come out in support of its southern brethren.\nThe Canuck guild said anyone who is a dual member of the two guilds and lives in the U.S. will not be allowed to write for Canadian productions during the strike. But the guild added that dual members living in Canada can write for a Canadian production during the strike.\nThe guild’s governing council passed a resolution stating: “The issues the WGA is addressing will affect every professional artist seeking compensation for their work in the digital age. Their fight is our fight.”\nThere are fewer than 300 dual members, most of whom live and work in Los Angeles. The WGC has 1,900 members altogether.\nWGC executive director Maureen Parker said U.S.-based members of both guilds have to apply to the WGA for a waiver in order to be able to work in Canada.\n“I can’t prevent a producer from hiring a writer for a production,” Parker said. “But that writer is violating strike rules and we will inform the WGA.”\nUnlike the WGA, the WGC’s most recent collective agreement with the Canadian producers association gives writers jurisdiction over new media, but the two sides have yet to agree on a set rate for compensating Canadian writers for work used in new-media platforms.\n(Brendan Kelly in Montreal contributed to this report.)"} -{"text": "efill_enabled(k_cache: torch.Tensor, attn_module: torch.nn.Module) -> bool:\n \"\"\"Use the cuteDSL KV-outer sparse prefill kernel (SM100) when available.\n\n bf16/fp16 caches run natively; fp8 e4m3 caches run the pure-fp8 (no-scaling)\n path and are ONLY valid under kv=fp8_cast (scales pinned to 1.0) -- the\n kernel ignores cache scales, so calibrated fp8 must keep the legacy path.\n Env FIREWORKS_M3_KVOUTER_PREFILL=0 disables.\n \"\"\"\n if _os.environ.get(\"FIREWORKS_M3_KVOUTER_PREFILL\", \"1\") == \"0\":\n return False\n if k_cache.dtype == torch.float8_e4m3fn:\n if not attn_module._fp8_kv_cast:\n return False\n elif k_cache.dtype not in (torch.bfloat16, torch.float16):\n return False\n try:\n from fireworks.nn.attention.cute.m3_sparse_attention.interface import can_run_sparse_kvouter\n except ImportError:\n return False\n return can_run_sparse_kvouter()\n\n\ndef _prefill_block_tables_per_q(\n meta: \"PrefillAttentionMeta\", varlen: \"VarlenAttentionParams\", total_q: int\n) -> torch.Tensor:\n \"\"\"Per-query-row block table: each sequence's block-table row replicated\n across its query positions.\n\n Computed only when the legacy per-head batched-decode path is taken; the\n production kvouter path uses ``meta.block_tables`` directly and returns early,\n so its ``repeat_interleave`` prefix-sum (a ``cub`` DeviceScan) + row gather are\n never launched on that hot path. Not cached across layers on purpose: under\n chunked prefill the same ``meta`` can be reused across chunks with shifted\n positions/block_tables, so a per-forward cache could serve stale rows.\n \"\"\"\n device = meta.block_tables.device\n # total_q is a Python int, so output_size keeps repeat_interleave sync-free\n # (no int(q_seq_len_cumsum[b].item()) D2H). varlen.q_seq_lens is the per-seq\n # new-query count already on the meta (== the q_seq_len_cumsum diff).\n seq_row_idx = torch.repeat_interleave(\n torch.arange(varlen.batch_size, device=device),\n varlen.q_seq_lens.to(torch.long),\n output_size=total_q,\n )\n return meta.block_tables[seq_row_idx]\n\n\ndef sparse_prefill_paged(\n q: torch.Tensor,\n k: torch.Tensor,\n v: torch.Tensor,\n idx_q: torch.Tensor,\n idx_k: torch.Tensor,\n meta: \"PrefillAttentionMeta\",\n m3_meta: \"MiniMaxM3AttentionMeta\",\n attn_module: torch.nn.Module,\n *,\n layer: int,\n layer_local_idx: int,\n sparse: MiniMaxM3SparseAttentionConfig,\n num_kv_heads: int,\n qk_scale: float,\n activation_dtype: torch.dtype,\n) -> torch.Tensor:\n \"\"\"Per-query-position sparse prefill via batched paged decode attention.\n\n Each query token selects its own top-k blocks (matching SGLang's\n block_size_q=1 behaviour) over its causal KV range, then attention runs as\n a batched decode where every query position is its own \"sequence\".\n \"\"\"\n from fireworks.triton.flat_kvcache_ops import write_kv_to_cache\n from fireworks.nn.attention.incr_attention import IncrKVCacheAttentionParams\n\n if m3_meta.m3_index_k_cache is None:\n raise ValueError(\"sparse prefill requires m3_index_k_cache\")\n\n if meta.pre_attention_callback is not None:\n meta.pre_attention_callback(layer)\n\n # Index-K H2D for host-offloaded prefill. Index-K is a separate sub-pool\n # wired on the *dependent* callback, so the main pre_attention_callback above\n # doesn't cover it; the scorer reads m3_index_k_cache below, so bring the\n # host-resident index-K blocks over first. None (no-op) off the offload path.\n dependent_pre_cb = getattr(meta, \"dependent_pre_attention_callback\", None)\n if dependent_pre_cb is not None:\n dependent_pre_cb(layer)\n\n k_cache = meta.k_cache(layer)\n v_cache = meta.v_cache(layer)\n # fp8/fp4 KV cache needs the per-tensor global scale; the non-sparse\n # PagedAttention.forward passes these, so mirror it for the sparse path\n # (sparse layers call write_kv_to_cache directly).\n if attn_module._fp8_kv_cast:\n # fp8_cast: scale is always 1.0. Build a constant so it is valid even\n # before prepare_for_inference (activation-memory estimation runs a\n # forward; the scale buffers are still None at that point).\n k_global_scale = v_global_scale = torch.ones(1, dtype=torch.float32, device=k.device)\n elif attn_module._fp8_cache or attn_module._fp4_cache:\n k_global_scale = attn_module.k_scale\n v_global_scale = attn_module.v_scale\n else:\n k_global_scale = v_global_scale = None\n write_kv_to_cache(\n k,\n v,\n k_cache,\n v_cache,\n meta.slot_mapping,\n cache_format=meta.format(),\n k_global_scale=k_global_scale,\n v_global_scale=v_global_scale,\n )\n if meta.slot_mapping is not None:\n write_index_k_to_paged_cache(\n m3_meta.m3_index_k_cache,\n layer_local_idx,\n idx_k,\n meta.slot_mapping,\n )\n\n varlen = meta.varlen_params\n "} -{"text": "Just over a week ago, The Australian National University decided to sell shares worth approximately $16 million in seven companies, representing just one per cent of our investment portfolio, and a fraction of the market worth of the companies involved, which has sparked an extraordinary reaction.\nFrom one side it has been attacked by elements of industry, media and some political figures as reckless, cowardly, superficial, anti-business, poorly conceived and as destroying jobs.\nOn the other side, my email account has melted down with emails of support, congratulating the University on its action, and the University’s Facebook page is awash with positive comments.\nThe reason for this extraordinary response is because the ANU decision is seen as another domino in the divestment-movement effect, involving individuals and institutions deciding to sell their holdings in fossil fuel-producing companies.\nThirteen US universities have now divested, and a number of cities, districts and foundations (including one linked to the Rockefeller family) in both the US and UK have followed suit. The same trend is also developing in Australia.\nThe University’s position on socially responsible investment is considerably more nuanced than has so far been recognised.\nWe invest for the betterment of its community – students, staff and researchers. The returns on these investments fund scholarships, staff salaries, research projects and new infrastructure.\nIn many cases the funds are donated to the University for these purposes. The University has a responsibility to invest wisely but also in a manner consistent with the desires of our stakeholder students, alumni and staff.\nThere has been growing sentiment from our community to not just get a good financial return from our investments but also to invest in companies which would have activities consistent with the goals of the University, and do not manifestly cause social harm. For instance, the University for many years has not, and would not now, invest in tobacco\nThe initial calls were to divest from all fossil fuels. This is difficult in Australia, as many of our companies are diversified. They may produce coal, oil or gas but they also do many other things. And given the world’s necessary dependence on such fuels for a long time to come, the ethical issues involved are complex. To address these issues ANU established a socially responsible investment policy.\nIn developing this we searched the world for best practice, and ultimately we modelled this policy largely on Stanford University’s, one of the world’s great universities and an institution that invests an endowment of $US19 billion.\nOnce developed, the challenge was to operationalise the policy. We undertook due diligence and engaged an independent environmental, social and corporate governance consultant to review our investment portfolio. Our chosen consultant is internationally accredited and has extensive experience.\nUsing an internationally recognised methodology, our investments were assessed against environmental, social and governance criteria. Our consultants stand by their assessments, which we have found persuasive, but should new information come to hand, or flaws become evident in the methodology involved, we would naturally reconsider the assessments.\nThe process assigns a score between 1 and 5 to each investment. The University decided that, pending a further review of our investment procedures, which are likely to involve the future outsourcing of our equities selection, we would sell those investments which fell into the lowest category. The University will certainly still retain many large resources-company stocks. The approach we have adopted is considered, measured, analytical and appropriately balances the desires of our community and the requirement to achieve an appropriate financial return.\nAlthough the ANU has been attacked for its decision, we are simply part of a much bigger debate about carbon and carbon pricing.\nMy own views are that the world must eventually move away from the use of fossil fuels. This, however, will take decades. In the meantime we will require such fuels.\nFar from destroying jobs, as our action has been described, I hope it goes some small way to do the opposite.\nThe real debate for Australia should be about jobs in a carbon-constrained world. What will our industries be in 20 or 30 years’ time? I am confident they will not be in producing fossil fuels. Australia should not be an adopter of alternative energy, we should be a producer.\nThe real debate in climate should be about producing cost-effective alternative energy. Sticking our collective heads in the sand and ignoring a changing world will ensure we do destroy jobs. Universities like the ANU should be the powerhouses to produce the new technologies for such a world.\nThe key here is for the various parties not to go to their collective corners and throw stones, but rather for us to work together and use the window of transition to ensure Australia is a technological leader in the post-carbon world.\nIf ANU has pushed this debate a small way in this direction we will have acted exactly as a leading Australian, and world, university should.\nThis op-ed was originally published in The Sydney Morning Herald and The Canberra Times on 13 October 2014."} -{"text": "Grappling with torture\nThe torture took place away from hot spots like Abu Ghraib and was conducted not by CIA agents or prison guards but by U.S. soldiers who never expected their tour of duty would present them with these unimaginable conditions. The soldiers participated, witnessed or blew the whistle on the abuse – and however they responded they were badly scarred. In “None of Us Were Like This Before: American Soldiers and Torture,” Joshua E.S. Phillips explores the largely hidden side of the American torture horrors: the effects on soldiers who never signed up for such service. Here he describes the harrowing -- and sometimes tragic -- impact.\nBy Joshua E.S. Phillips\nIt seems each day brings heartbreaking news of American soldiers who’ve perished on the battlefield, and veterans who’ve taken their own lives. We tend to associate wartime trauma with combat, such as bloody firefights. But there are other grueling wartime events beyond the battlefield.\nPresident Barack Obama recognized this last month when he extended veterans’ access for treatment for post-traumatic stress disorder.\n“I’ve met enough veterans to know that you don't have to engage in a firefight to endure the trauma of war,” said Obama.\nThat makes two of us.\nAbout two years ago I met former Army interrogator, Don Dzagulones, who explained how his involvement in detainee abuse had a more harrowing long-term impact on him than surviving deadly ambushes in Vietnam.\n“When you’re attacked, you have to respond,” he said. “But other circumstances, like prisoner abuse for example, you have a choice…[and so] you’re probably more affected by wanton acts of violence than responding to violence.”\nThis kind of wartime trauma remains largely unrecognized and misunderstood by the public. But it isn’t unknown to clinicians.\nAfter four years of research, the National Vietnam Veterans Readjustment Study found that abusive violence -- which included “torturing, wounding, or killing hostages or POWs [prisoners of war]” -- had the strongest correlation with PTSD for the 3,000 veterans interviewed for the study.\nOur wars in Iraq and Afghanistan are different than Vietnam, but they share a common feature: they were marked by U.S. detainee abuse and torture. Some soldiers who served in these wars participated in abuse, some were bystanders, and some blew the whistle and protested.\nHow many of today’s soldiers have been traumatized by their exposure to, or involvement in, abusive violence like detainee abuse?\nSo far there’s no current research that matches the Vietnam veterans’ study findings. But some soldiers were remorseful about their involvement with abuse, and were troubled or traumatized by it.\nArmy combat medic Jonathan Millantz contacted me four years ago to tell me about detainee abuse in Iraq, beyond Abu Ghraib.\n“It’s very tough when you have a conscience that is filled with atrocities [and] you know what you did to people,” said Millantz. “I went to confession, I went to counseling. I still can’t forgive myself for what I did to those poor people.”\nMillantz was attached to a tanking unit, Battalion 1-68, at Forward Operation Base Lion in Balad -- in the “Sunni triangle” -- during 2003-2004. Soldiers with Battalion 1-68 had to swap their tanks for humvees, and conduct sweeps that targeted suspected insurgents in house raids.\nSuddenly, troops who were trained to be tankers were tasked to be jailers. Sometimes they were encouraged and ordered to help “soften up” detainees for interrogations. Sometimes soldiers from Battalion 1-68 admitted they saw, and even participated in, detainee abuse at FOB Lion.\nNot every soldier who engaged in detainee abuse was traumatized by it, and there were other wartime experiences that were damaging. But some members of Battalion 1-68 were gravely distressed by abuse.\nLike Dzagulones, Millantz reconsidered his involvement in prisoner abuse and torture when he returned home, and it drove him to speak out at anti-war events. The distress over wartime experiences lingered for him and fellow unit members long after their return: some had violent outbursts, were plagued by depression and sleeplessness, and some engaged in substance abuse and other self-destructive behavior.\nSergeant Adam Gray exhibited these same patterns of behaviors. Gray was another member of Battalion 1-68 who was also troubled by his involvement in detainee abuse. After he attempted suicide in August 2004, the military documented his emotional state: “He spoke at length of many positive experiences in Iraq, such as rebuilding schools and eating with Iraqis. However, he also made reference to events that bothered him and that he could not speak ... about.”\nHis inability to discuss those “events that bothered him” exacted a devastating toll. On August 29, 2004, Gray was found dead in his barracks room. His Army buddies reflected on his death, and considered what he had been through and how it affected fellow soldiers.\n“It's been hard over the years coming to terms with what actually happened over there,” said Millantz. “It haunts me every day, and it’s something I’ll never get away from.”\nIn the end, he and fellow unit members never did get away from it. The pain and distress of the war damaged soldiers in Millantz’s unit, and the self-destructive behavior ultimately destroyed lives -- including those of Gray, and eventually even Millantz.\nSteven E. Levingston\nAugust 9, 2010; 5:30 AM ET\nCategories: Guest Blogger | Tags: U.S. torture; torture by soldiers; abu ghraib; post-traumatic stress disorder\nSave & Share: Previous: BOOK WORLD - August 8, 2010\nNext: Desegregation’s unintended consequence\nPosted by: IndyGO1 | August 9, 2010 1:09 PM | Report abuse"} -{"text": " num_q_heads = q.shape[1]\n gqa_group_size = num_q_heads // num_kv_heads\n total_q = q.shape[0]\n\n # Per-query causal range (each token is its own \"sequence\").\n # NOTE: the per-query-row block table (block_tables_per_q) and its\n # repeat_interleave prefix-sum are deferred to the legacy path below — the\n # production kvouter path returns early and uses meta.block_tables directly,\n # so it must not pay for that (formerly eager) cub-scan + gather here.\n seq_lens_per_q = (meta.positions[:total_q] + 1).to(torch.int32)\n\n # Per-query top-k block selection. The prefill scorer works on original\n # sequence rows so each K tile is reused across a tile of query positions.\n # NOTE: prefill stays head-sharded (each rank scores its own index heads):\n # the BLOCK_Q-tiled scorer amortizes every K tile over a whole tile of\n # query rows, so it is dot-FLOP bound, and head sharding already divides\n # the FLOPs evenly with zero comm. The sequence-sharded DP path only pays\n # off for the memory-bound decode scan.\n selected = _fused_score_select_prefill(\n idx_q,\n m3_meta.m3_index_k_cache,\n layer_local_idx,\n meta.block_tables,\n meta.positions[:total_q],\n varlen.q_seq_len_cumsum,\n varlen.q_largest_seq_len,\n seq_lens_per_q,\n sparse,\n kv_largest_seq_len=varlen.kv_largest_seq_len,\n )\n\n B_pref, H, topk = selected.shape\n\n stats_dir = _os.environ.get(\"FIREWORKS_M3_SPARSE_STATS_DIR\")\n if stats_dir:\n _record_sparse_prefill_stats(\n stats_dir,\n selected=selected,\n varlen=varlen,\n # ceil-div to match the score/select kernels (triton.cdiv).\n msb=max(1, triton.cdiv(meta.block_tables.shape[1], sparse.sparse_block_downshard_ratio)),\n layer=layer,\n )\n\n out_kvouter = None\n kvouter_dbg = \"\"\n if _kvouter_prefill_enabled(k_cache, attn_module):\n # Fancy prefill: cuteDSL KV-outer sparse attention (one fused call,\n # KV-stationary; PR #29027 + fp8 #29904) replaces the per-head\n # batched-decode emulation below.\n from fireworks.nn.attention.cute.m3_sparse_attention.interface import kvouter_attention\n\n kv_ratio = sparse.sparse_block_downshard_ratio # 2\n kv_page = sparse.kv_cache_block_size # 64\n cu_q = varlen.q_seq_len_cumsum\n # Per-seq real KV length Lk_b: prefill metadata already carries this in\n # varlen.kv_seq_lens (seq.seq_len after chunked-prefill capping). It matches\n # the last query's causal length because prefill always writes every\n # unpopulated token in the step (positions[last_q] + 1 == kv_seq_lens[b]).\n used_kv_lens = varlen.kv_seq_lens.to(torch.int32)\n q_kvouter = q\n if k_cache.dtype == torch.float8_e4m3fn and q.dtype != torch.float8_e4m3fn:\n # Pure-fp8 MMA: Q joins K/V in e4m3 (single ab_dtype); direct cast\n # mirrors kv=fp8_cast semantics (no scaling). Under fp8_cast serving\n # q often arrives already e4m3 (upstream quant) -> skip cast.\n q_kvouter = q.to(torch.float8_e4m3fn)\n out, _ = kvouter_attention(\n q_kvouter.contiguous(),\n k_cache,\n v_cache,\n selected.contiguous(),\n meta.block_tables,\n cu_seqlens_q=cu_q,\n softmax_scale=qk_scale,\n causal=True,\n used_kv_lens=used_kv_lens,\n block_size=kv_ratio * kv_page,\n page_size=kv_page,\n # NB: q may itself be e4m3 under fp8_cast; the combine emits the\n # model activation dtype (bf16) -- _finish_attn casts as needed.\n out_dtype=activation_dtype,\n )\n if _os.environ.get(\"FIREWORKS_M3_KVOUTER_COMPARE\", \"0\") != \"1\":\n if meta.post_attention_callback is not None:\n meta.post_attention_callback(layer)\n if meta.dependent_post_attention_callback is not None:\n meta.dependent_post_attention_callback(layer)\n return out\n # Debug compare mode: keep the kvouter result, fall through to the\n # legacy path, log the divergence, and return the legacy output.\n out_kvouter = out\n kvouter_dbg = (\n f\"T={total_q} B={cu_q.shape[0] - 1} used_kv={used_kv_lens.tolist()[:8]}\"\n f\" q_dtype={q_kvouter.dtype} kv_dtype={k_cache.dtype} topk={topk}\"\n )\n\n ratio = sparse.sparse_block_downshard_ratio # 2\n block_size = sparse.kv_cache_block_size # 64\n\n # Gather physical block IDs for each head via Triton compaction kernel.\n # [Hkv, T, selected_kv_blocks], mapping from Q tokens to selected KV blocks.\n # block_tables_per_q is built lazily here (legacy path only); the kvouter hot\n # path above never reaches this, so its prefix-sum/gather stays off that path.\n block_tables_per_q = _prefill_block_tables_per_q(meta, varlen, total_q)\n compact_bt = compact_block_tables(block_table"} -{"text": "URI brings Radiance Quintet for class, concert\nThe Connecticut-based Radiance Woodwind Quintet will visit the University of Rhode Island not once but twice this semester, first for a Master Class March 16 and then for a full concert April 1 with pianist Laura Hubbard as part of the prestigious University Artist Series. Both events will be held in the URI Fine Arts Center Concert Hall, 105 Upper College Road, Kingston.\nComprised of flute, oboe, clarinet, bassoon and horn, Radiance is described as performing “classic and innovative” wind quintet repertoire with “perfection and poise, style and sass.” Technique tips along with some of the keys to their success and “sassy” style will be shared when they offer their Master Class at 3 p.m. on Friday, March 16. The class is free and open to the public, with students especially encouraged to attend.\nTheir University Artist Series concert on Sunday, April 1, at 8 p.m. will feature works of Ravel, Fine, Hoiby and Piazzolla. The quintet members, Elizabeth Detweiler Jackson, Carla Parodi, Stevi Rehncy, Kelli O’Connor and Bryce Nakaoka will be joined by pianist Laura Hubbard, who has performed in concert at URI on other occasions. Admission is $10 general public, $5 students, with tickets available at the box office on a first-come basis starting 45 minutes before the concert.\nSpecifically, their program will offer Le Tombeau de Couperin by Maurice Ravel (arr. Gunther Schuller), Partita by Irving Fine, Sextet for Piano and Winds by Lee Hoiby, and Libertango by Astor Piazzolla (arr. Jeff Scott). The ensemble’s first recording is due to be released in the fall of this year, featuring the same composers.\nFounded in 2006, Radiance has performed for enthusiastic audiences throughout the Northeastern United States, including in recital on the Newburgh Chamber Music series and at the Newburgh Free Academy in Newburgh, New York. They have performed extensively in Connecticut, including with pianist Simon Holt at the Calvary Church Recital Series in Stonington; for the Sundays in the Parlor at Park series at Park Congregational Church in Norwich; and for the United States Coast Guard Band Chamber Players series in New London. Rehncy and O’Connor are Guest Artist teachers at URI, and all of the quintet members are or were members of the United States Coast Guard Band.\nElizabeth Detweiler Jackson, flute, has received national acclaim for her virtuosic playing. She has performed extensively with orchestras and ensembles in California, Arkansas, and Massachusetts and has won, finaled, or placed highly in a number of regional Flute Association and other solo instrument competitions. She holds a Bachelor’s degree from the University of North Texas, and a Master’s degree in flute performance from the University of Southern California. In 2002 she became co-principal flute of the U S Coast Guard Band.\nClarinetist Kelli O’Connor enjoys a varied and vibrant career as a soloist, educator and chamber and orchestral musician. She is a founding member of the Chameleon Arts Ensemble of Boston and the Radiance Woodwind Quintet, Principal Clarinet of the Eastern Connecticut Symphony Orchestra and Salt Marsh Opera, and a member of the Connecticut Orchestra. Previously a member of the U S Coast Guard Band, she appears frequently with the Hartford Symphony and the Connecticut Virtuosi Chamber Orchestra, and was clarinet soloist on the 2004-2005 national tour of Fiddler on the Roof. She teaches at both URI and the Calvary School of Music and has presented masterclasses at Baldwin-Wallace College and Salem State College. She is also the founder and director of the Waterford High School Clarinet Choir, which has won many distinctions. She holds a Bachelor’s Degree from Baldwin-Wallace College and a Master’s Degree from the New England Conservatory.\nCarla Parodi, oboe, attended the University of Michigan and received a Bachelor of Music degree from the University of Illinois in 1999. She earned a Master of Music degree from Rice University in Houston, Texas in 2003. She has studied with Harry Sargous, Nancy Ambrose King, John Ferrillo, and Robert Atherholt, and has performed with the New World Symphony, the Pacific Music Festival Orchestra, the Aspen Music Festival Orchestra, and the National Repertory Orchestra. Carla joined the U S Coast Guard Band in September 2003.\nStevi Rehncy, bassoon, earned a Bachelor of Music degree from the University of Illinois in 2002 and a Master of Music degree from the New England Conservatory of Music in 2004. During her studies, she played with various groups including the Illinois Symphony, the Louisville Orchestra, the Boston Symphony Orchestra, the Boston Philharmonic, and was a fellow at Tanglewood for two consecutive summers. Combining her love of music and children, Rehncy has worked with the Boston Public Schools as well as the New England Conservatory Youth Philharmonic Orchestra. She was acting principal bassoon with the Eastern Connecticut Symphony Orchestra during the 2005-2006 season and currently plays co-principal bassoon with the U.S. Coast Guard.\nBryce Nakaoka, horn, joined the U.S. Coast Guard Band in March of 2010 and is currently the third-seat horn player. He earned his Bachelor’s of Music degree in Education from the University of Nevada, Las Vegas, and can be heard playing principal horn on four CDs of the UNLV Wind Orchestra. During his undergraduate career, he performed in shows on the Las Vegas Strip including, “Phantom” and “Lion King” and also was the first call sub for the Las Vegas Philharmonic, where he held the Associate Principal position from 2007-2008. While in his home state of Hawaii, he performed with the Royal Hawaiian Band as well as the Honolulu Symphonic Winds.\nThe URI Concert Hall is handicap-accessible, and parking is available in the lot behind the Fine Arts Center, off Bills Road.\nFor more information, contact the URI Department of Music, 874-2431, or check the website www.uri.edu/music."} -{"text": "Visit us for expert pond care advice, weed identification, aeration design and more. We are happy to help answer all of your pond questions.\nSee what other customers are saying about The Pond Guy®. Also check out before and after photos from happy pond customers!\nSee how The Pond Guy® used Airmax® Aeration and MuckAway™ TL to eliminate up to 6″ of muck in a single season.\nLet us do the work for you – The Pond Guy® has licensed applicators familiar with common aquatic weeds and are equipped with the right pond care tools\nSee our showroom of fountains/aerators/water gardens running\nMeet Our Team of Experts\nIn observance of Memorial Day, The Pond Guy local store and customer service department will be closed on Monday, May 30th.\nWe will be available as normal the remainder of the week and on Saturday (9am ET - 4pm ET) for any questions or to place orders. We will reopen on Tuesday, May 31st with our normal business hours.\nWe wish you a safe and happy Memorial Day weekend! ... See MoreSee Less\nIt's Water Garden Wednesday! Let's see what your water garden, koi pond or water feature looks like today!\nHere's our Large Koi Pond today! ... See MoreSee Less\nOur annual Fish Day event was held on Saturday May 7th. Customers came in to stock their ponds with bass, blue gill, perch, minnows and catfish.\nWe have food, games and demos going on throughout the day. Here are just a few photos from the day! ... See MoreSee Less\nOur annual Fish Day event was held on Saturday May 7th. Customers came in to stock their ponds with bass, blue gill, perch, minnows and catfish. We have food, games and demos going on throughout the day. Here are just a few photos from the day!\nOur ponds and fish are ready to greet for you Saturday's Fish Day!\nToday is the last day to pre-order your game fish. weknowponds.com/fishday/\nWe'll also have lunch from 12-2, a Bag Toss Game, and product demos! Have a water garden? We have koi, tadpoles and plants available for purchase. We'd love to see you! ... See MoreSee Less\nIt's a rainy day here at The Pond Guy but we love the green that's starting to come through.\nLet's see what your pond looks like today! ... See MoreSee Less\nAre you planning to do your spring clean-out this month? Check out our How-To-Video on Spring Pond Clean-Outs first!\nWhat is your best tip for cleaning out your water garden or feature in the spring?\nyoutu.be/SxFOqxko_ss ... See MoreSee Less\nWith warm March temps across the country, we are getting lots of questions on String Algae. Just took a walk out to our water gardens and yup, we have it too. Here’s a few things you can do:\n1. Are you fish moving around? Or are they still sitting around the bottom of the pond. If your water temps are into the 40s and your fish are moving, you can remove the string algae by hand. If you have the 3-in-1 Tool, there is algae brush attachment that’s perfect for removing the string algae.\n2. If your water temps are consistently in the 50s and your fish are active, you can use AlgaeOff to kill the string algae. Don’t forget, you still need to remove the dead algae from the pond to prevent muck buildup.\n3. As long as there’s no ice left, go ahead and throw a dose of Seasonal Defense or Barley Extract into your pond. These products can help keep nutrient levels down in your pond.\nFor now, we are not removing the string algae at The Pond Guy. Our koi are still pretty slow moving so we do not want to stress them. With warmer temps this week, that could change! ... See MoreSee Less\nAlthough we’re expecting more snow this week in SE Michigan, we are gearing up for the 2016 season and are excited to help you mange your ponds this year!\nOur local store in Armada, MI is officially open for the season! We’ll be here Mon-Fri 10am - 6pm and Sat 9am - 4pm.\nOur Pond Techs will also be available on the phone longer and open Saturday’s for the season from 9am - 4pm ET. ... See MoreSee Less\nAre you attending the Cottage & Lakefront Living Show in Novi? Be sure to stop by our booth (#1609) to discuss your pond, lake, or lakefront property. We also have show specials! ... See MoreSee Less\nWe are updating our website this morning! If you need to place an order, call us at 866-766-3435 or visit us this afternoon. Thank you! ... See MoreSee Less\nThe Pond Guy will be open our normal business hours tomorrow, Thursday, 12/31. We will be closed on Friday for New Year's Day and reopen Monday 1/4 at 8am.\nFrom all the Pond Guys & Gals, we wish you a safe and happy 2016! ... See MoreSee Less\nAnother quick reminder, for all our Ponders in the SE Michigan area (or anyone with the impending winter storm), your pond netting should be taken down. The expected ice (or snow) can weigh the netting down into the pond and could cause your fish to get tangled in the netting. ... See MoreSee Less\nAll departments at The Pond Guy will be closed Thursday 12/24 and Friday 12/25 for Christmas. We will reopen on Monday 12/28 for our normal business.\nFrom all of us at The Pond Guy, we wish you and your families a safe and happy holiday season. Merry Christmas! ... See MoreSee Less\nThe Pond Guy will be closed on Thanksgiving. Our Customer Service Department will be open Friday from 8am - 5pm ET. ... See MoreSee Less\nWith snow expected in Michigan this weekend, we’re thinking back to the start of the 2015 pond season with this spring photo.\nLet’s see your favorite 2015 pond, water garden or lake photo (so far!) for Throwback Thursday! #TBT ... See MoreSee Less\nOur website is down at this time. If you need to place an order, please give us a call at 866-766-3435. Thank you! ... See MoreSee Less"} -{"text": "s_per_q, selected, ratio, topk)\n compact_bt_ts = compact_bt\n compact_bt_ca = compact_bt\n\n # Clamp seq_lens to the valid tokens spanning the selected (compacted) blocks.\n max_tokens_selected = topk * ratio * block_size # 2048\n\n def _compact_seqlen(seq: torch.Tensor) -> torch.Tensor:\n partial = ((seq - 1) % 128) + 1\n c = (max_tokens_selected - 128) + partial\n c = torch.minimum(c, seq)\n return torch.clamp(c, max=max_tokens_selected)\n\n compact_seq_lens = _compact_seqlen(seq_lens_per_q)\n\n k_cache_scale = meta.k_cache_scale(layer)\n v_cache_scale = meta.v_cache_scale(layer)\n k_cache_param = (k_cache, k_cache_scale) if k_cache_scale is not None else k_cache\n v_cache_param = (v_cache, v_cache_scale) if v_cache_scale is not None else v_cache\n\n out = torch.empty_like(q)\n for kh in range(num_kv_heads):\n # Slice the cache to this KV head so the decode kernel infers GQA from\n # (gqa_group_size q heads : 1 kv head). Passing the full KV-head cache\n # makes it infer GQA=num_kv_heads and misroute the group across heads.\n # No-op when num_kv_heads==1 (world_size >= n_head_kv).\n params = IncrKVCacheAttentionParams(\n k_cache=_slice_kv_cache_head(k_cache_param, kh),\n v_cache=_slice_kv_cache_head(v_cache_param, kh),\n block_tables=compact_bt[kh],\n seq_lens=compact_seq_lens,\n num_timesteps=1,\n block_tables_for_timestep=compact_bt_ts[kh],\n seq_lens_for_timestep=compact_seq_lens,\n block_tables_for_causal=compact_bt_ca[kh],\n seq_lens_for_causal=compact_seq_lens,\n cache_format=meta.format(),\n )\n qs = kh * gqa_group_size\n qe = qs + gqa_group_size\n o_slice = attn_module.incr_attn(\n q[:, qs:qe, :],\n params,\n qk_scale,\n meta.positions[:total_q],\n None,\n activation_dtype=activation_dtype,\n )\n out[:, qs:qe, :] = o_slice\n\n if meta.post_attention_callback is not None:\n meta.post_attention_callback(layer)\n # Index-K lives in a separate (dependent) host-offload sub-pool. Its D2H/H2D\n # is registered as device_seq.dependent_d2h/h2d_callback and recorded into the\n # dependent event maps; fire it here (after the index-K write above) so the\n # index copy is stream-ordered after the data exists and remove_sequence's\n # dependent-map drain can complete it.\n dependent_cb = getattr(meta, \"dependent_post_attention_callback\", None)\n if dependent_cb is not None:\n dependent_cb(layer)\n\n if out_kvouter is not None:\n d = (out_kvouter.float() - out.float()).abs()\n per_q = d.amax(dim=(1, 2))\n import logging\n\n gt_msg = \"\"\n n_seq = varlen.q_seq_len_cumsum.shape[0] - 1\n if n_seq == 1 and total_q <= 64:\n # Arbiter: plain fp32 causal attention over the real cache rows\n # (dense over the full (short) KV range; selection covers it all).\n L = int(seq_lens_per_q[total_q - 1].item())\n kv_page_dbg = sparse.kv_cache_block_size\n npages = (L + kv_page_dbg - 1) // kv_page_dbg\n pages = meta.block_tables[0, :npages].to(torch.long)\n hkv_n = k_cache.shape[1]\n kr = k_cache[pages].permute(1, 0, 2, 3).reshape(hkv_n, -1, k_cache.shape[-1])[:, :L].float()\n vr = v_cache[pages].permute(1, 0, 2, 3).reshape(hkv_n, -1, v_cache.shape[-1])[:, :L].float()\n qf = q[:total_q].float() # [T, Hq, D]\n hq_n = qf.shape[1]\n g = hq_n // hkv_n\n qg = qf.view(total_q, hkv_n, g, -1)\n s = torch.einsum(\"thgd,hsd->thgs\", qg, kr) * qk_scale\n pos = torch.arange(L - total_q, L, device=q.device)\n keep = torch.arange(L, device=q.device)[None, :] <= pos[:, None]\n s = s.masked_fill(~keep[:, None, None, :], float(\"-inf\"))\n p = s.softmax(-1)\n gt = torch.einsum(\"thgs,hsd->thgd\", p, vr).reshape(total_q, hq_n, -1)\n d_leg = (out.float() - gt).abs()\n d_kvo = (out_kvouter.float() - gt).abs()\n gt_msg = (\n f\" | GT: legacy max={d_leg.max().item():.4f} mean={d_leg.mean().item():.5f}\"\n f\" kvouter max={d_kvo.max().item():.4f} mean={d_kvo.mean().item():.5f}\"\n )\n logging.getLogger(__name__).info(\n \"KVOUTER_CMP layer=%d %s max=%.4f mean=%.5f worst_q=%s%s\",\n layer,\n kvouter_dbg,\n d.max().item(),\n d.mean().item(),\n per_q.topk(min(4, per_q.shape[0])).indices.tolist(),\n gt_msg,\n )\n\n return out\n"} -{"text": "Students head back to classes Aug. 18\nChanges at Westside schools include new principals, academic approach\nClasses will start for District 11 public schools - including 13 on the Westside - Thursday, Aug. 18.\nNoteworthy changes for the 2005-06 school year include new principals at Washington and Buena Vista elementaries, a 10,000 square-foot modular addition at Midland Elementary and the start of a pre-Advanced Placement (AP) program at Holmes Middle School.\nIn addition, Montessori is going into its second year at Buena Vista - now as a free program that is available to all age levels - while Ivywild has situated its classes onto the main floor and Coronado High will be getting the help of student teachers from UCCS.\nOtherwise, school operations are basically unchanged from past years, with the same locations, principals, attendance areas, academic offerings and hours.\nWashington's new principal is Terry Martinez, an 18-year teaching/ administration veteran who was Washington's summer school principal the past two years and served as assistant principal for Rudy and Henry schools in District 11 last year. He replaces Pete Cicatelli, who has retired.\nThe new Buena Vista principal is Brenda Smith, a seven-year district administrator who was assistant principal at District 11's Sabin Middle School last year. Former Principal Alan Rasmussen retired.\nThe Midland modular, which District 11 bought from the Renaissance Academy, will help the school handle Midland's increasing enrollment, stemming from its International Baccalaur-eate (IB) program and new housing developments in its attendance area, according to district officials. District crews have been working this summer to prepare a concrete pad for the air-conditioned facility, just southwest of the permanent school.\n“They're working furiously to get it done,” said Lynn Jeffords of the Midland school office. “It should be ready when school starts.”\nAt Holmes, all the staff - teachers as well as administrators - completed training this month in pre-AP strategies, according to Mike Kreidel, the school's gifted and talented head who is also serving as pre-AP director. The training was provided by the College Board, a not-for-profit national association which oversees the program.\nPre-AP in-volves elective classes with teaching strategies aimed at challenging students to learn at a higher level, according to the school. The program at Holmes will dovetail with the AP program at Coronado High School; many universities accept AP classes for college-level credit.\nHolmes and Sabin (also starting pre-AP this year) are the first middle schools in District 11 to offer the program.\nAfter its first year of Montessori in 2004-05 - offering classes for ages 3-9 - Buena Vista has increased its Montessori offerings this year to all grade levels, with the formerly fee-imposed preschool and kindergarten now available at no charge, thanks to a Title 1 grant. Kindergarten is only offered with the Montessori teaching approach starting this year, but traditional classes are still available for grades 1-5 (See adjoining story.)\nIvywild Principal Libby Bailey said her school has completed its plan, announced last May, of realigning all its classes on the main floor of the historic building on South Cascade Avenue.\nThis is allowing plans to move forward for an envisioned “community center” on Ivywild's lower floors. “We're developing a fantastic partnership with the Pikes Peak Community Foundation,” Bailey said. “We're looking forward to additional activities after school to truly make Ivywild into more of a community center.”\nCoronado, the flagship public high school for the Westside, is getting the help of 20 UCCS student teachers this year - on a rotation plan in which half of them will be simultaneously providing similar assistance at District 20's Timberview Middle School. The arrangement, part of a three-year partnership in which CHS is deemed a “professional development site,” will have the side effect of taking a load off classroom teachers. “I think it will be very positive for students in the program and at Coronado,” Humphrey said.\nCoronado began registering enrolled students this week; this will continue through Aug. 11. Boys golf began Aug. 9, while other fall sports will begin Tuesday, Aug. 16.\nNinth-grade orientation will be from 7:50 to 11 a.m. Wednesday, Aug. 17, starting in the school auditorium, according to Humphrey. “This will be a chance for them to see their classes, meet their teachers and get their feet wet,” she said.\nOrientations for sixth-graders will be offered at the Westside's middle schools. Both Holmes and West have scheduled these get-acquainted sessions at their respective schools Tuesday, Aug. 16, at 6:30 p.m.\nThe following are District 11's Westside schools, addresses and phone numbers (principal's name in parentheses).\nWestside Pioneer article"} -{"text": "Daniel A Neff is the co-chairman of the executive committee and partner in the law firm Wachtell, Lipton, Rosen & Katz, which he joined in 1977. He is a corporate and securities lawyer, and has focused on mergers and acquisitions and advice to boards of directors and board committees. During his more than 30 years of practice, Mr Neff has been extensively involved in negotiated as well as hostile acquisitions, and has represented bidders and targets, public and private companies, private equity firms, leveraged acquirers and special committees of directors. He has represented companies in divestitures, cross-border transactions and proxy contests, and has counselled managements and boards of directors concerning acquisition matters, conflict transactions, corporate governance and other significant issues.\nMr Neff lectures frequently on topics relating to his professional interests, was featured in American Lawyer's “Dealmaker of the Year” article in 2001 and 2012, and is listed in Chambers Global Guide, Chambers USA Guide, The Best Lawyers in America and Lawdragon's 500 Leading Lawyers of America.\nAmong other matters, Mr Neff represented Verizon Communications in its $130 billion acquisition of the 45 per cent interest in Verizon Wireless owned by Vodafone Plc. He also represented Airgas in successfully defending against a $5.8 billion hostile takeover bid by Air Products and Chemicals; Rohm and Haas in its $18 billion sale to Dow Chemical; Unocal Corporation in its acquisition by Chevron Corporation for $19 billion and its acquisition of Pure Resources; El Paso in its $38 billion sale to Kinder Morgan; Berry Petroleum in its pending $4.9 billion sale to Linn Energy; Chicago Bridge & Iron in its $3 billion acquisition of The Shaw Group; Cooper Industries in its $11.8 billion combination with Eaton Corporation; Alibaba Group in its $7.8 billion repurchase of stock from Yahoo!; Kellogg Company in its $4.6 billion acquisition of Keebler Foods Company and its $2.7 billion cash acquisition of Procter & Gamble’s Pringles business; Temple-Inland in its $3.7 billion sale to International Paper; Mirant Corporation in its $3.1 billion merger with RRI Energy, Inc. to create GenOn Energy; Smith International in its $11 billion merger with Schlumberger; Centex Corporation in its $3.1 billion merger with Pulte Homes; BEA Systems in its $8.5 billion merger with Oracle; the private equity buyers in the acquisitions of Aramark Corporation, Kinder Morgan, Inc and Harrah's Entertainment Inc; Knight-Ridder, Inc in its merger with the McClatchy Company; Goldman Sachs Capital Partners and Apollo Advisors LP in their acquisition of Nalco Chemical Company; Western Wireless Corporation in its merger with ALLTEL Corporation; VoiceStream Wireless Corporation in its merger with Deutsche Telekom AG; Litton Industries Inc in its merger with Northrop Grumman Corporation; Orion Power Holdings Inc in its sale to Reliant Resources, Inc; Mirage Resorts Incorporated in its merger with MGM Grand Inc; Vivendi Universal SA in its acquisitions of United States Filter Corporation and Cendant Software Corporation; Transamerica Corporation in its merger with Aegon NV and its acquisition of Whirlpool Financial Corporation; Newmont Mining Corporation in its acquisitions of Franco-Nevada Mining Corporation Limited, Normandy Mining Limited and Santa Fe Pacific Gold Corporation. He also represented Western Atlas Inc in its merger with Baker Hughes Incorporated, Vons Companies in its merger with Safeway Inc and represented special board committees of Wausau Insurance, Hayes Wheels International and Enron Oil & Gas Company (now EOG Resources Inc).\nMr Neff graduated magna cum laude from Brown University and from the Columbia University School of Law, where he was notes and comments editor of the Columbia Law Review.\nThis biography is an extract from Who's Who Legal: Corporate which can be purchased from our Shop.\nIt is not possible to buy entry into any Who's Who Legal publication\nNominees have been selected based upon comprehensive, independent survey work with both general counsel and private practice lawyers worldwide. Only specialists who have met independent international research criteria are listed."} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/nn/attention/causal_conv1d_helpers.py. Lines: 936.\n\n\"\"\"Causal conv1d helpers for linear-attention layers (GDN, Mamba-2).\n\nDense prefill and decode call the optional Dao ``causal_conv1d`` wheel.\nVariable-length prefill uses ``torch.ops.firecuda.causal_conv1d_fwd``\n(SGLang-style flattened tokens + ``query_start_loc``).\n\"\"\"\n\nfrom __future__ import annotations\n\nimport functools\nimport importlib\nfrom contextlib import nullcontext\nfrom typing import List, Optional, Sequence, Tuple\n\nimport fireworks.lib.firecuda # noqa: F401 - registers torch.ops.firecuda\nimport torch\nimport triton\nimport triton.language as tl\n\nfrom fireworks.cuda.capability import is_amd\nimport fireworks.util as fireutil\n\n\n@functools.lru_cache(maxsize=1)\ndef load_dao_causal_conv1d():\n \"\"\"Return the Dao ``causal_conv1d`` module, or ``None`` if unavailable.\n\n The wheel ships CUDA-only kernels; ``ImportError`` is expected on\n CPU-only / ROCm dev setups and call sites should raise with context\n when the op is required.\n \"\"\"\n try:\n return importlib.import_module(\"causal_conv1d\")\n except ImportError:\n return None\n\n\ndef alloc_conv_boundary_buffers(\n *,\n template: torch.Tensor,\n num_seqs: int,\n max_boundaries: int,\n conv_dim: int,\n state_len: int,\n num_streams: int = 1,\n) -> list[torch.Tensor]:\n \"\"\"Allocate per-path conv boundary row buffers for pipelined snap capture.\n\n ``num_streams`` is the number of parallel conv paths (1 for GDN, 3 for KDA q/k/v), not a CUDA stream id.\n KDA has logic to compute depthwise conv across the q,k,v sequences concurrently.\n \"\"\"\n return [template.new_empty(num_seqs, max_boundaries, conv_dim, state_len) for _ in range(num_streams)]\n\n\n@triton.jit(\n do_not_specialize=[\n \"R\",\n \"D\",\n \"S\",\n \"stride_cs_seq\",\n \"stride_cs_d\",\n \"stride_cs_s\",\n \"stride_x_d\",\n \"stride_x_t\",\n \"stride_buf_seq\",\n \"stride_buf_b\",\n \"stride_buf_d\",\n \"stride_buf_s\",\n ]\n)\ndef _fill_varlen_conv_boundary_buffers_kernel(\n conv_states,\n x,\n buf,\n row_seq,\n row_dist,\n row_tstart,\n row_b,\n has_initial,\n R,\n D,\n S,\n stride_cs_seq,\n stride_cs_d,\n stride_cs_s,\n stride_x_d,\n stride_x_t,\n stride_buf_seq,\n stride_buf_b,\n stride_buf_d,\n stride_buf_s,\n BLOCK: tl.constexpr,\n):\n # int64 offsets: channel*stride can exceed int32 for wide, long-context tapes.\n offsets = tl.program_id(0).to(tl.int64) * BLOCK + tl.arange(0, BLOCK)\n total = R * D * S\n mask = offsets < total\n\n s = offsets % S\n tmp = offsets // S\n d = tmp % D\n r = tmp // D\n\n seq = tl.load(row_seq + r, mask=mask, other=0).to(tl.int64)\n dist = tl.load(row_dist + r, mask=mask, other=0).to(tl.int64)\n tstart = tl.load(row_tstart + r, mask=mask, other=0).to(tl.int64)\n out_b = tl.load(row_b + r, mask=mask, other=0).to(tl.int64)\n hinit = tl.load(has_initial + seq, mask=mask, other=0)\n\n full_idx = dist + s\n from_carried = full_idx < S\n\n carried_mask = mask & from_carried & (hinit != 0)\n carried_values = tl.load(\n conv_states + seq * stride_cs_seq + d * stride_cs_d + full_idx * stride_cs_s,\n mask=carried_mask,\n other=0.0,\n )\n local_values = tl.load(\n x + d * stride_x_d + (tstart + full_idx - S) * stride_x_t,\n mask=mask & ~from_carried,\n other=0.0,\n )\n values = tl.where(from_carried, carried_values, local_values)\n\n tl.store(\n buf + seq * stride_buf_seq + out_b * stride_buf_b + d * stride_buf_d + s * stride_buf_s,\n values,\n mask=mask,\n )\n\n\ndef fill_varlen_conv_boundary_buffers(\n *,\n conv_states: torch.Tensor,\n conv_inputs: torch.Tensor | Sequence[torch.Tensor],\n buffers: torch.Tensor | Sequence[torch.Tensor],\n q_seq_lens_cpu: List[int],\n seq_boundary_distances: List[List[int]],\n has_initial_state: torch.Tensor,\n capture_stream: torch.cuda.Stream | None = None,\n) -> None:\n \"\"\"Fill conv boundary rows from pre-conv inputs.\n\n ``conv_states`` is ``[num_seqs, dim, state_len]`` (GDN) or\n ``[num_seqs, num_streams, dim, state_len]`` (KDA q/k/v).\n\n One fused Triton launch per conv stream (GDN=1, KDA q/k/v=3). All tensors\n must already live on the same CUDA device.\n \"\"\"\n if len(seq_boundary_distances) != len(q_seq_lens_cpu):\n raise ValueError(\"seq_boundary_distances must have one entry per prefill sequence\")\n if isinstance(conv_inputs, torch.Tensor):\n conv_inputs = (conv_inputs,)\n if isinstance(buffers, torch.Tensor):\n buffers = (buffers,)\n if len(conv_inputs) != len(buffers):\n raise ValueError(\"conv_inputs and buffers must have the same length\")\n\n device = conv_states.device\n assert conv_states.is_cuda, \"fill_varlen_conv_boundary_buffers requires CUDA conv_states\"\n assert (\n has_initial_stat"} -{"text": "Monday, August 10, 2009\nAt the risk of opening myself up to a lot of possibly critical commentary, I'm putting something out here out of sheer curiosity. I'll start and end with the same question: how do you handle money in your household?\nWhen Guy and I moved in together back in 2001, it was for two reasons: 1) to spend time together in a convenient manner, and 2) to save money that was being wasted living apart. I was spending way too much living in a loft in downtown Denver, and Guy helped me realize that I could save money now and in the future by investing in a little real estate. So, I bought a condo on the edge of downtown Denver and we moved in together about a week before 9/11. Thing is, my credit was in great shape while Guy's needed some work. He had credit card debt, car loan debt, and student loan debt; I had literally none of those. I used my investments (from my leftover inheritance for my Dad dying in 1997) as the basis for getting a good mortgage, and I got the Happy Kitten Highrise. (I have since refi'd twice, more recently getting a 20-year fixed rate for less than 6% and only raising my monthly payment about $25--score!)\nSo, the house was in my name, hence I made the mortgage payment as well as the power bill, groceries, phone, and cell phone. Guy took on the HOA payment for the condo, as it was at the time about $100 or so less than his previous rent, and the cable/internet bill, and he began paying down his other debts aggresively. He eventually took on the phone bill and later even the cell phone bill once he got a cell phone added to my plan. About a year or two into our living arrangement, he began splitting the cost of groceries with me. In general, our other expenses were split pretty evenly, like vacation travel and hotels, dinners and evenings out, and so on. When Guy left Design Associates, he went onto my healthcare through DA, which is really good and rather inexpensive (about $25 every few weeks). However, we paid our own medical copays and dental bills out of our own pockets. And biggest of all, we had no shared bank account.\nFast forward a few more years into 2009. Guy makes about $20,000 more than me, and between a big bonus he got at work a few years ago and his own diligent work, he has paid off all of his major debts (you know, the ones you can't take off on your taxes). He has taken over nearly all the bills except for the mortgage; that one's still mine, and the condo is still in my name alone. When we bought a new (used) car in 2006, we saved up for it and split the cost 50/50 (which was also awesome cuz we paid flat cash for the Civic-another score!), but he recently paid outright for the new laptop he found on a super sale that will replace one of our old desktop models, and he also paid for the new wireless router for the HKH that allows me to connect to the internet and write this blog from the living room instead of from the guest room computer. I purchased the Microsoft Office software, and I still buy the weekly groceries, though Guy is the one who pays when we make a run to Sam's Club.\nHe told me recently that he thinks he's been jobbing me for a couple of years and not paying his fair share, especially since he makes so much more than me. For him to offer to contribute more to the household financially almost felt rude, but I got over that pretty quickly when I realized that he sure as hell made more, and him tossing a little more into the kitty would allow me to a) better fund my retirement and b) better afford my every-five-or-six-weeks massages and spa visits, and you know a Shorty likes to get her spa on. But it also occurs to me that when it comes to retirement, I'm already ahead because I have my leftovers from the inheritance--Guy's been playing catchup for the past eight years, and he's seven years older than me to boot.\nBut more than all this, we still don't have joint bank accounts, and that's for the same reason that we almost didn't even get married: we don't see a point. Guy and I are committed to each other for the long haul, and getting married didn't make that \"official\". We got married in order to preserve our legal rights and to benefit from the sweet tax breaks it gives us; we don't need a piece of paper from the State of Nevada to prove that we luuuuv each other and share a deep, lasting commitment to each other. And so, we view joint bank accounts the same way. Having a joint bank account is one more thing we have to keep up with, and it doesn't really represent that we're a team financially. What makes us a financial team is that we regularly discuss what we're doing with our money, how things are working, if this week or month is going to be tight because we sent money to our moms or had a big expense of some sort or our architectural license fees came due during the same month we had to renew our NCARB record, etc. Even though many financial advisors and planners call our arrangement symptomatic of a lack of trust, and that if we really were a team we'd share a bank account, we're just not seeing it. It doesn't make sense for us.\nSo, I ask again: how do you handle money in your household? How do you deal with roommates, partners, whatever?"} -{"text": "There’s one thing that Wil Wheaton wants to make very clear: “Memories of the Future” is not, repeat, NOT a “tell-all” book about his time working on “Star Trek: The Next Generation.”\n“It was extraordinarily important to me that this was not some kind of stupid, gossipy book,” Wheaton said. “I despise that kind of thing. I just hate it. It’s the reality television of literature, and I absolutely cannot stand it.”\nIndeed, “Memories of the Future” is instead a funny review of, and a loving tribute to, the first season of “Next Generation,” which began its television run in 1987.\nI also saw that Happiest Days of Our Lives was used as an example of one of those new-fangled paper-style books:\nThat entire post is really funny and clever, and I think you should read the whole thing. Go ahead, I'll wait.\nSee? Wasn't it funny? I like clever writing that is funny.\nSpeaking of The Happiest Days Of Our Lives, I know a non-zero number of people have been waiting very patiently for the special edition to be released by Subterranean Press. I wanted to explain, again, why it's been a year: After the book was announced, I spent almost two months digging through published and unpublished material for the expanded parts of the book, then I spent another month or so rewriting and polishing the stuff that made the cut. After that, I wrote additional introductions and notes to go with each chapter. That was the first delay (and, honestly, I thought it was entirely reasonable, since the book was announced as a pre-order) The biggest delay, and the first serious problem, though, was a software compatibility issue between me and the copy editor. OpenOffice and Word don't track notes the same way, but neither of us knew this until we'd both spent a lot of time working in our respective suites, completely oblivious to the work of the other. Finally, we realized what was wrong, and had to go all the way back to the beginning of the copy editing process the old way, printing the entire manuscript out on paper and making notes in the margins. It had a certain nostalgic value, but it took forever to get all that shit straightened out.\nSo that process, which should have taken a couple weeks, took close to three months. Then, once we got that all squared away, I had to get a bunch of pictures together, caption them, fact-check the captions with my parents and siblings, then get all that stuff to Subterranean Press. I also held up this part of the process for a couple more weeks while I looked for even more unpublished pictures that neither me nor my mom could find.\nFinally, I asked my son Ryan (who is a creative writing student) if he wanted to write an afterword. He said he would, but it would take some time because he's in college and has his own responsibilities. I was willing to wait, because I thought it would be awesome to have his contribution to in the book, and I figured at this point (August) another couple weeks didn't make that big a difference. It ended up taking about 6 or 8 weeks, but I think it will ultimately be worth the delay (please note that I am not an objective source of information in this regard.)\nFinally, the manuscript was turned in, the pictures were approved, the layout was all set ... and then the signature pages arrived. I had to sign something like 2500 pages, and it was important to me that each one looked like it was the only one I'd signed. I could have blown through it, of course, and gotten it done in a couple of days, but that would have guaranteed disappointment to everyone who bought the book and waited almost a year to get it. So I limited myself to between 50 and 75 pages at a \"session,\" and it took several weeks to work my way through them all.\nOh, also, keep in mind that during all of these months, I was working on other projects, including several television shows that took me away from the Happiest Days project for weeks at a time.\nSo all of those delays stacked up on top of each other, until everything was finally finished about six or eight weeks ago. I realize that this is a very long time to wait for something, and I also realize that I've probably killed any chance of doing other special editions with Subterranean Press because this one took so long, but I sincerely believe that it will be worth the wait, because I've seen it, and it's something very special."} -{"text": "e.is_cuda and has_initial_state.device == device\n ), \"has_initial_state must be on the same CUDA device as conv_states\"\n # len(conv_inputs) is 1 for GDN, 3 for KDA q/k/v — not batch size.\n for inp, buf in zip(conv_inputs, buffers):\n assert inp.is_cuda and inp.device == device, \"conv_inputs must be on the same CUDA device as conv_states\"\n assert buf.is_cuda and buf.device == device, \"buffers must be on the same CUDA device as conv_states\"\n\n multi_stream = conv_states.ndim == 4\n\n row_seq: List[int] = []\n row_dist: List[int] = []\n row_tstart: List[int] = []\n row_b: List[int] = []\n token_start = 0\n max_boundaries = 0\n for seq_idx, q_len in enumerate(q_seq_lens_cpu):\n if q_len <= 0:\n continue\n distances = seq_boundary_distances[seq_idx]\n for b_idx, distance in enumerate(distances):\n d = int(distance)\n if d < 0 or d > q_len:\n raise ValueError(f\"boundary distance {d} out of range for chunk length {q_len}\")\n row_seq.append(seq_idx)\n row_dist.append(d)\n row_tstart.append(token_start)\n row_b.append(b_idx)\n if len(distances) > max_boundaries:\n max_boundaries = len(distances)\n token_start += q_len\n\n for buf in buffers:\n if max_boundaries > buf.shape[1]:\n raise ValueError(f\"{max_boundaries} boundary rows exceed buffer capacity {buf.shape[1]}\")\n\n num_rows = len(row_seq)\n if num_rows == 0:\n return\n\n # Build the [4, num_rows] meta tensor from pinned host memory so the H2D copy\n # is genuinely async. A plain ``torch.tensor(...).to(device, non_blocking=True)``\n # copies from pageable memory, where ``non_blocking`` is a silent no-op.\n meta = fireutil.as_device_tensor(\n [row_seq, row_dist, row_tstart, row_b],\n device=device,\n dtype=torch.int32,\n )\n row_seq_t, row_dist_t, row_tstart_t, row_b_t = meta[0], meta[1], meta[2], meta[3]\n has_initial_dev = has_initial_state.to(dtype=torch.int8)\n\n use_capture_stream = capture_stream is not None\n compute_stream = torch.cuda.current_stream() if use_capture_stream else None\n stream_ctx = torch.cuda.stream(capture_stream) if use_capture_stream else nullcontext()\n block = 256\n try:\n with stream_ctx:\n if use_capture_stream:\n assert capture_stream is not None and compute_stream is not None\n capture_stream.wait_stream(compute_stream)\n for stream_idx, (inp, buf) in enumerate(zip(conv_inputs, buffers)):\n x = inp.squeeze(0) if inp.ndim == 3 else inp\n carried = conv_states[:, stream_idx] if multi_stream else conv_states\n dim = x.shape[0]\n state_len = carried.shape[-1]\n\n stride_cs_seq, stride_cs_d, stride_cs_s = carried.stride()\n stride_x_d, stride_x_t = x.stride()\n stride_buf_seq, stride_buf_b, stride_buf_d, stride_buf_s = buf.stride()\n\n total = num_rows * dim * state_len\n _fill_varlen_conv_boundary_buffers_kernel[(triton.cdiv(total, block),)](\n carried,\n x,\n buf,\n row_seq_t,\n row_dist_t,\n row_tstart_t,\n row_b_t,\n has_initial_dev,\n num_rows,\n dim,\n state_len,\n stride_cs_seq,\n stride_cs_d,\n stride_cs_s,\n stride_x_d,\n stride_x_t,\n stride_buf_seq,\n stride_buf_b,\n stride_buf_d,\n stride_buf_s,\n BLOCK=block,\n num_warps=4,\n )\n finally:\n if use_capture_stream:\n assert compute_stream is not None and capture_stream is not None\n compute_stream.wait_stream(capture_stream)\n\n\ndef to_channel_last_storage(x: torch.Tensor) -> torch.Tensor:\n \"\"\"Materialize channel-last layout for Dao **prefill** (``causal_conv1d_fn``).\n\n Not used on the decode/update path: ``causal_conv1d_update`` accepts the\n standard ``[B, D, T]`` pool layout (``stride(2) == 1``) in place.\n\n The Dao ``causal_conv1d`` prefill kernel has two requirements for a 3-D input\n ``[B, D, T]`` in channel-last layout:\n\n 1. ``x.stride(1) == 1`` — channels are the innermost dimension.\n 2. ``x.stride(0) % 8 == 0`` and ``x.stride(2) % 8 == 0`` — the batch\n and time strides must be multiples of 8 for vectorized loads.\n\n Merely checking (1) is not enough: when ``x`` is a ``torch.split``\n view of a wider projection (``in_proj(hidden_states)``), the inner\n stride inherits the parent width and can fail (2) even though it\n looks \"channel-last-shaped\". In that case we rematerialize the\n tensor via a transpose-c"} -{"text": "WireScope 350 / DualRemote 350 Kit. Hand-held cable analyzer covers Cat5 Cat5e Cat6 & SM MM Fiber. Network Analyzer Supports UTP, STP, Fiber and coaxial Cable\nOn SALE at AAATesters.com\nTo Sell your Fluke DTX-1800 Cable analyzer or other Test Equipment use the contact form at the bottom\nOn Sale WireScope 350 / DualRemote 350 Kit\nInsure your network's continued high performance with Agilent's line of handheld network and cable analysis and troubleshooting tools.\nN2600A WireScope 350\nThe WireScope 350 is a Category 6/Class E hand-held network cable analyzer offering color touch screen, outstanding test performance, ease of use and graphic reporting.\n* Certifies compliance of installed LAN Cabling to TIA Category 6 and ISO Class E Standards\n* Support for Cat 6 Channel & Permanent Link Certification\n* Accuracy beyond TIA level III requirements traceable to laboratory reference standards\n* Tests installed multimode or single-mode optical fiber via Fiber SmartProbe attachments\n* Expandable test result storage on removable compact flash memory cards\n* Automated TIA-606-A Cable Identification Solution\n* Included ScopeData Pro software produces professional quality graphic test reports\n* Easy to use color touch screen interface minimizes training requirements\nReady for Category 6 and Beyond\nThe WireScope 350 provides comprehensive support for all current and emerging LAN cable certification standards including Category 6 / Class E channel and permanent link. Offering outstanding test performance, ease of use and graphic reporting, the WireScope 350 is the ultimate tool for LAN and cabling professionals.\nSuperior Measurement Performance\nWireScope 350 is based on frequency domain testing, the same principle used by the world's most accurate Network Analyzers. Its unmatched hardware accuracy is further augmented by state-of-the-art software algorithms including a novel patent pending Enhanced Auto Cancellation Technology to automatically cancel the interface and adapter effects from the test results. This automatic and dynamic compensation assures superior repeatability and accuracy with continuous usage of the instrument. Major cabling manufacturers in the industry have endorsed the superior measurement performance of WireScope 350.\nColor User Interface\nA bright color touch screen simplifies navigation through menus and improves comprehension of test result data, resulting in faster operation and reduced training times. Test setup advisor screens assist the operator when configuring test options, minimizing the chances of inadvertently testing to the wrong limits. All settings can be defined on a PC and downloaded in a single operation, speeding the process of configuring multiple WireScope 350 sets for the same job site testing requirements\nClick here to view image.\nUniversal SmartProbes Enable Accurate Cat 6 Testing\nThe WireScope 350 supports category 6 testing with Universal Link & Channel SmartProbes which have been designed to maximize Category 6 / Class E certification test margins for virtually all brands & categories of cabling.\nAgilent's Universal SmartProbes guarantee TIA Level III accuracy and optimized test margins when used with standards compliant category 6 cabling may be the only test cords you need for category 6 certification.\nClick here for more details on universal link & channel testing with the WireScope 350.\nGiven the significant improvement in the quality and consistency of category 6 connecting hardware, it may no longer be necessary to purchase manufacturer-specific link test cords to match the connecting hardware in the channel under test. Of course Agilent still offers a large selection of manufacturer-specific category 6 Link and Block SmartProbes.\nClick here to view a list of available manufacturer specific link and block smart probes.\nMeasurement accuracy can also suffer if worn out test adapters are used. To minimize accuracy problems, the WireScope 350 uses \"SmartProbe\" test adapters that contain their own configuration data and a counter that logs the number of tests they have been used for. AAATesters carries a full line of the Wirescope product line here is a list of models and model numbers included:\nN2600A Wirescope 350, FrameScope 350, N2597A, Fiber SmartProbe N2620A, FrameScope Pro N2640A, WireScope Pro N2640A-010, ScopeData Pro Software, N2600A-100 Wirescope, Wirescope 155, Wirescope350, Wirescope155, N2597A-030, N2597A-040, N2597A-031, N2597A-032, N2597A-041, N2597A-042, Multimode Fiber SmartProbe Kit, Singlemode Fiber SmartProbe Kit, N2600A-130, N2600A-150, N2604A-200, N2605A-134, N2605A-135, N2596A, N2605A-050, N2595A-091, N2604A-301, N2605A-137, N2595A-095, N2597A-040, 2-Way Singlemode Fiber SmartProbe, N2605A-135, N2605A-132\nFor Sales Email at: firstname.lastname@example.org\nVisit us at: http://www.AAATesters.com\nAgilent WIRESCOPE 350 Cable Certifier"} -{"text": "New ACLU Report Shows Unnecessary and “Alarming” Use of Head Strikes….And the Grand Jury Subpoenas Roll In for LASDSeptember 26th, 2012 by Celeste Fremon\nACLU CORRECTIONS EXPERT SAYS CJ DEPUTIES USE OF HEAD STRIKES “ALARMING” AND UNNECESSARY\nIn anticipation of the final report on Friday by the Citizens’ Commission on Jail Violence—and the Sheriff’s reaction to that report— the So Cal ACLU issued its own report Wednesday morning, contending that jail deputies frequently use head strikes—many causing serious injuries—at a rate that is fundamentally out of line with the national standard among corrections officers.\nCorrections expert Steve J. Martin, a former Texas correctional officer, turned attorney, turned nationally-known corrections consultant, examined the ACLU’s report and weighed in under oath. Martin said, among other things, that “….the number and extent of head injuries sustained in these use of force incidents strongly suggest’ that the deputies working in Men’s Central Jail “employ hard impact head strikes during force incidents”…”at alarming levels.”\nInterestingly, Martin also said that, after reviewing the department’s own use of force stats compiled by the Jails Commission, he concluded “…that there were many more serious injuries, including head injuries, between 2009 and 2012 that the ACLU is aware of.”\nHere’s a link to Martin’s full testimony.\nAnd here’s more from Wednesday’s ACLU report:\n…There is clear evidence that the Los Angeles County Sheriff’s Department (“LASD”) deputies have used head strikes with alarming regularity in the Los Angeles County jails. In many of those incidents the head strikes have caused significant injuries. The manner and frequency of such head strikes strongly suggests an inappropriate use of force by\nIn recent years, Los Angeles Sheriff’s deputies have stomped on inmates’ heads, even after shackling those inmates’ hands. They have bashed inmates’ faces into concrete walls. They have fractured inmates’ facial bones – noses, jaws, cheekbones, or eye sockets. The ACLU is aware of least 11 inmates who have had their facial bones broken by LASD deputies in the past three years. One inmate has lost vision in one eye. Others have undergone surgery. Sixty-four people have made sworn statements describing incidents in which deputies targeted inmates’ heads for attack between 2009 and 2012. These are not mere unsubstantiated complaints. The ACLU has corroborated 12 of these allegations of head injuries with secondary evidence, such as medical records, photographic documentation, or civilian reports. In several other instances, inmate witnesses have corroborated reports of deputy-on-inmate head strikes.\nIf history is any guide, LASD will respond to this evidence by attacking the ACLU and blaming inmates. They will argue that inmates’ accounts of deputies using unjustified force are false, and they will allege that inmates were the aggressors.\nBut even assuming that the LASD is correct that the inmates were aggressive towards deputies, the attempt to blame inmates does not absolve the LASD from its use of excessive and illegal force. For even where inmates are the aggressors, the fundamental widely recognized rule regarding use of force by a custodial officer is that head strikes are almost never permissible. Accordingly, head injuries should be an exceedingly rare consequence of a use of force incident, even when inmates are aggressive.\nThere are some disturbing accounts of the use of head strikes in the report itself, like the story of “Mr. NN” picture above.\nMEANWHILE….GRAND JURY SUBPOENAS AND MORE GRAND JURY SUBPOENAS ARE DELIVERED TO SHERIFF’S DEPARTMENT MEMBERS\nSeveral rounds of grand jury subpoenas have been delivered to members of the Los Angeles Sheriff’s department, some this week, some last week, and some reportedly trickling in still earlier.\nThis week’s flurry caused the Sheriff’s Department to send around a memo on Tuesday telling those receiving the things and not to go around bringing in any LASD documents or paperwork—even if the feds ask for them—without consulting the department’s legal watchdogs on the matter.\nHere’s a clip from the memo:\n…A SUBPOENA MAY REQUEST A PRODUCTION OF DOCUMENTS IN ADDITION TO AN INDIVIDUAL’S PERSONAL APPEARANCE. REQUESTS FOR DOCUMENTS IN AN INDIVIDUAL’S POSSESSION SHOULD BE VETTED THROUGH APPROPRIATE LEGAL COUNSEL AND BROUGHT WITH THE EMPLOYEE TO THEIR APPEARANCE IF SO DIRECTED BY COUNSEL. REQUESTS FOR THE PRODUCTION OF DEPARTMENT MATERIALS, RECORDS, REPORTS, AND/OR DOCUMENTS SHOULD BE REFERRED TO THE RISK MANAGEMENT BUREAU’S DISCOVERY UNIT WHO WILL BE RESPONSIBLE FOR IDENTIFYING, OBTAINING, AND PRODUCING THE RESPONSIVE DEPARTMENT DOCUMENTS AND/OR MATERIALS.\nPERSONNEL WHO HAVE BEEN SERVED A SUBPOENA ARE ENCOURAGED TO CONTACT THE DISCOVERY UNIT AT (323) 890-5000 FOR ASSISTANCE AND/OR REFERRAL TO LEGAL COUNSEL. THIS DOES NOT PROHIBIT YOU FROM SEEKING YOUR OWN LEGAL COUNSEL.\nQUESTIONS REGARDING THIS MATTER SHOULD BE DIRECTED TO THE DISCOVERY UNIT AT (323) 890-5000.\nIt should be an interesting week."} -{"text": "ontiguous-transpose round-trip so the\n resulting strides are ``(D*T, 1, D)`` — both multiples of 8 whenever\n ``D`` is (which it is for any realistic Mamba-2 / GDN conv_dim).\n \"\"\"\n if x.stride(1) == 1 and x.stride(0) % 8 == 0 and x.stride(2) % 8 == 0:\n return x\n return x.transpose(1, 2).contiguous().transpose(1, 2)\n\n\ndef _causal_conv1d_varlen_fwd(\n x: torch.Tensor,\n weight: torch.Tensor,\n bias: torch.Tensor | None,\n conv_state: torch.Tensor,\n query_start_loc: torch.Tensor,\n cache_indices: torch.Tensor,\n has_initial_state: torch.Tensor,\n silu_activation: bool,\n) -> None:\n torch.ops.firecuda.causal_conv1d_fwd(\n x,\n weight,\n bias,\n conv_state,\n query_start_loc,\n cache_indices,\n has_initial_state,\n silu_activation,\n -1,\n )\n\n\n@triton.jit(\n do_not_specialize=[\n \"B\",\n \"D\",\n \"T\",\n \"S\",\n \"stride_init_b\",\n \"stride_init_d\",\n \"stride_init_s\",\n \"stride_hidden_b\",\n \"stride_hidden_d\",\n \"stride_hidden_t\",\n \"stride_buffer_b\",\n \"stride_buffer_t\",\n \"stride_buffer_d\",\n \"stride_buffer_s\",\n ]\n)\ndef _cache_intermediate_conv_states_kernel(\n initial_conv_state,\n hidden_states,\n intermediate_conv_buffer,\n intermediate_state_indices,\n B,\n D,\n T,\n S,\n stride_init_b,\n stride_init_d,\n stride_init_s,\n stride_hidden_b,\n stride_hidden_d,\n stride_hidden_t,\n stride_buffer_b,\n stride_buffer_t,\n stride_buffer_d,\n stride_buffer_s,\n HAS_INDICES: tl.constexpr,\n BLOCK: tl.constexpr,\n):\n offsets = tl.program_id(0) * BLOCK + tl.arange(0, BLOCK)\n total = B * T * D * S\n mask = offsets < total\n\n j = offsets % S\n tmp = offsets // S\n d = tmp % D\n tmp = tmp // D\n t = tmp % T\n b = tmp // T\n\n src_pos = t + 1 + j\n hidden_t = src_pos - S\n from_initial = src_pos < S\n initial_values = tl.load(\n initial_conv_state + b * stride_init_b + d * stride_init_d + src_pos * stride_init_s,\n mask=mask & from_initial,\n other=0.0,\n )\n hidden_values = tl.load(\n hidden_states + b * stride_hidden_b + d * stride_hidden_d + hidden_t * stride_hidden_t,\n mask=mask & ~from_initial,\n other=0.0,\n )\n values = tl.where(from_initial, initial_values, hidden_values)\n\n cache_b = b\n store_mask = mask\n if HAS_INDICES:\n cache_b = tl.load(intermediate_state_indices + b)\n store_mask = mask & (cache_b >= 0)\n tl.store(\n intermediate_conv_buffer\n + cache_b * stride_buffer_b\n + t * stride_buffer_t\n + d * stride_buffer_d\n + j * stride_buffer_s,\n values,\n mask=store_mask,\n )\n\n\n@triton.jit(\n do_not_specialize=[\n \"B\",\n \"D\",\n \"T\",\n \"stride_hidden_b\",\n \"stride_hidden_d\",\n \"stride_hidden_t\",\n \"stride_pool_b\",\n \"stride_pool_d\",\n \"stride_pool_s\",\n \"stride_weight_d\",\n \"stride_weight_w\",\n \"stride_out_b\",\n \"stride_out_d\",\n \"stride_out_t\",\n \"stride_inter_b\",\n \"stride_inter_t\",\n \"stride_inter_d\",\n \"stride_inter_s\",\n ]\n)\ndef _causal_conv1d_pool_update_fused_kernel(\n hidden_states,\n conv_pool,\n slot_ids,\n weight,\n bias,\n out,\n intermediate_conv_buffer,\n B, # batch size\n D, # channels\n T, # time steps\n stride_hidden_b,\n stride_hidden_d,\n stride_hidden_t,\n stride_pool_b,\n stride_pool_d,\n stride_pool_s,\n stride_weight_d,\n stride_weight_w,\n stride_out_b,\n stride_out_d,\n stride_out_t,\n stride_inter_b,\n stride_inter_t,\n stride_inter_d,\n stride_inter_s,\n KERNEL_SIZE: tl.constexpr,\n HAS_BIAS: tl.constexpr,\n SILU: tl.constexpr,\n CACHE_INTERMEDIATE: tl.constexpr,\n BLOCK: tl.constexpr,\n):\n # One program lane owns a single (batch_idx/b, dim_idx/d) channel and processes every timestep\n # plus the ring-buffer state shift in one sequential pass. This fuses the old\n # two-kernel (output + state) design.\n # Read after Write Race free: all reads of the old conv_pool window\n # (output + intermediate) happen in the timestep loop before any state write,\n # and within the shift the source pool[T + s] is always strictly ahead of\n # the write target s (T > 0), so it is never clobbered by an earlier write.\n # Different lanes touch disjoint (slot(b), d) windows, so there is no cross-lane hazard either.\n S: tl.constexpr = KERNEL_SIZE - 1\n offsets = tl.program_id(0) * BLOCK + tl.arange(0, BLOCK)\n total = B * D\n mask = offsets < total\n\n d = offsets % D\n b = offsets // D\n slot = tl.load(slot_ids + b, mask=mask, other=0).to(tl.int64)\n\n if HAS_BIAS:\n bias_val = tl.load(bias + d).to(tl.float32)\n\n for t in range(T):\n acc = tl.zeros([BLOCK], dtype=tl.float32)\n for j in tl.static_range(0, KERNEL_SIZE):\n pos "} -{"text": "Clearly, WNST.net is throwing the biggest parties in New Orleans this weekend for the Super Bowl and the amazing fun we all plan to have here in The Big Easy is made even better when you participate and join us for biggest Baltimore Ravens fan celebrations ever.\nYou can purchase our WNST V.I.P. Super Party wristbands that give you special access at ALL of our parties as well as several bars on Bourbon Street for $115.70 by clicking here: http://wnst.net/brian-billick/buy-our-wnst-super-v-i-p-party-pass-and-soak-up-the-excitement-of-new-orleans/\nWe have FREE EVENTS every day and you can buy tickets at the door with cash only at all of our ticketed events as well. So, if you’re feeling spontaneous and looking to spend quality, memorable time with Baltimore Ravens fans, this is our schedule of events:\nA free event from 6 p.m. til ??? at Empire (located at 300 Decatur) in the French Quarter. This bar is COMPLETELY purple and will be the pickup site for all who purchased WNST V.I.P. Party wristbands for admission to all of our weekend activities. Great food, cold beer and awesome music. This is our “meet and greet” but you’re welcomed and encouraged to party all night with us in the heart of New Orleans. And, yes, the picture here is what Empire looks like on the inside. It’s all purple already!\nSATURDAY (Two events)\nDAY: Our purple pep rally and outdoor cookout begins at noon and is FREE AND OPEN to all Baltimore Ravens fans. WNST partner and Super Bowl-winning head coach Brian Billick will be on hand to meet and greet all of the purple faithful. Come to Toulouse at The River and we’ll be under the green and white pavilion that sits behind Jackson Brewery and the Famous Gumbo Pot. If you can see the giant Houston Oilers-style derrick, you’re almost there. Just walk to the water past Decatur and look for the Steamboat Natchez riverboat! This is also the site of Sunday’s party!\nOur cruise on the Steamboat Natchez is a ticketed event and you’re welcome to join us for a delicious jazz lunch and cruise from 2:30 ’til 4:30 on the Mississippi. Boarding begins at 2 p.m. and tickets are $60. For more information is available here: http://wnst.net/top-story/crabs-n-beer/cruise-mississippi-natchez-on-super-saturday-in-nola-with-billick-wnst/\nNIGHT: Doors open at 7 p.m. at The Howlin’ Wolf for a gigantic Baltimore Ravens fan celebration and concert with New Orleans locals and Grammy Award winning Rebirth Brass Band (show starts at 11 p.m.). Cold beer, great Cajun food and awesome music and dancing all night. This is a ticketed event ($25) and a two-day pass can be purchased for $40 for both big nights at the “purple ground zero” for all Ravens fans in New Orleans here: http://wnst.net/nfl/legendary-howlin-wolf-will-be-purple-ground-zero-for-all-baltimore-ravens-fans-in-nola/\nSUNDAY (Three events)\nOur pre-game tailgate and purple march are ABSOLUTELY FREE AND OPEN TO ALL BALTIMORE RAVENS FANS!!!\nBeginning at 10 a.m. on gameday, we’ll have cold beer, drinks, great food and awesome purple music from legendary DJ Bobby Nyk at the foot of Woldenberg Park. Come to Toulouse at The River and we’ll be under the green and white pavilion that sits behind Jackson Brewery and the Famous Gumbo Pot. If you can see the giant Houston Oilers-style derrick, you’re almost there. Just walk to the water past Decatur and look for the Steamboat Natchez riverboat!\nThe Natchez will serve as a giant bar all day and all Baltimore Ravens fans are welcome to board the boat, dance and drink all afternoon leading up to our big purple stampede up Poydras Street to win the Lombardi Trophy.\nThere will be five hours of partying before we begin our historic Mardi Gras march to the Superdome at 2:52 p.m. to honor Ray Lewis. All details, maps and information regarding the march are here: http://wnst.net/nfl/gigantic-purple-march-to-honor-ray-lewis-set-for-252-p-m-sunday-in-new-orleans/\nIf you are NOT going to the Super Bowl and want to watch the game with all Baltimore Ravens fans, you’ll want to head to The Howlin’ Wolf (S. Peters & St. Joseph) in The Warehouse District where the game will be shown on the big screen.\nOur post-game celebration will commence at 10 p.m. and this is a TICKETED event with the 8 Ball Brass Band playing the victory party. Advance tickets are $25 but you can purchase a two-day pass for Saturday/Sunday nights concerts here: http://wnst.net/nfl/legendary-howlin-wolf-will-be-purple-ground-zero-for-all-baltimore-ravens-fans-in-nola/\nNew Orleans never seems to shut down or sleep.\nAnd when the Baltimore Ravens win this Super Bowl title, we expect it to be a long, long night of partying at The Howlin’ Wolf into the wee hours."} -{"text": "The 2013 Major League Soccer season shoved off from the shores of the Delaware River on Saturday. The host Philadelphia Union were the dominant team in the match, but Sporting Kansas City took better advantage of their fewer chances and ended victorious 3-1 on a chilly March afternoon.\nThe story of this match for the Philadelphia Union was the return of Sebastien Le Toux. It was a cinch that he would start, but the questions were, “Where?” and, “In what formation?” Le Toux was the lone forward in a 4-2-3-1 formation. The Farfan twins flanked Keon Daniel in the attacking midfield, and that left Jack McInerney and Conor Casey to bench work. Newcomer Jeff Parke dropped straight into the lineup, pairing with Amobi Okugo in central defense.\nThe Next Chapter For KC\nSome offseason moves have left KC plugging a few holes in their lineup. Their back 5 was their one area of solidity, a defensive corps that has been relatively static for two years. Jimmy Nielsen kept net with a Chance Myers-Aurelien Collin-Matt Besler-Seth Sinovic backline. The losses of Kei Kamara and Roger Espinoza to the Barclay’s Premier League were met with the purchase of Ecuadorian striker Claudio Bieler, and the acquisition of Benny Feilhaber from New England. Peter Vermes stayed with his usual 4-5-1, using Bobby Convey and Graham Zusi as flanking midfielders to Bieler’s forward position.\nThe entire match had to leave Union fans remembering 2011, at least from an attacking viewpoint. The team had one of its strongest matches from an attacking perspective since the departure of Le Toux. It could be a function of their opponent – last season, the Union put 4 goals past Kansas City, and thus Sporting may be a good matchup for the Union.\nFrom the get-go the Union looked dangerous. Gabe Farfan forced Nielsen to make a solid save in the 4th minute, and the left winger spent plenty of time pestering Myers down KC’s right side. In the 17th minute, it was some interplay between Gabe Farfan and Keon Daniel that set up the Union’s opening goal. Daniel faked a pass to Farfan down the left flank, and quickly floated a ball behind the KC defense. Le Toux controlled the ball near the penalty spot, and powered a shot off Nielsen and into the goal for the 1-0 lead.\nLe Toux then had another great chance one-on-one with Nielsen 6 minutes later, but the French forward scuffed his shot to the left of goal. The 25th minute saw Raymon Gaddis hacked down just outside the area by Collin, drawing a yellow. The resulting free kick by Michael Farfan from the left forced a great save by Nielsen.\nKC Wakes Up\nPhiladelphia appeared to be in control through the half-hour mark, but that was when Sporting began to exploit the Union’s attacking intent. A warning shot was fired on a through ball in the 31st minute, as Parke had to clear the chance away from Convey.\nSome sloppy coverage led to the equalizer within 5 minutes of halftime. Convey was able to swing a cross in from the left, and Bieler got the ball down out of the air to a wide open Feilhaber. His laser shot was stopped by MacMath, but the rebound came out 3 yards in front of the young keeper. Zusi was in the right position to send the bouncing ball into the top half to knot the score at 1.\nSecond Half To Sporting\nThe first 15 minutes of the second half were guarded for both teams. The game changed in the 66th minute though, three minutes after Convey was brought off for Sapong. Sapong drew a free kick about 25 yards from MacMath’s goal as Sheanon Williams dragged him down. Zusi swung in the free kick, and Uri Rosell flashed a few yards in front of MacMath. The Spaniard headed the ball past MacMath to grab the lead at 2-1.\nAs the Union chased the game with attacking substitutions (McInerney for Gabe Farfan and Roger Torres for Michael Lahoud), Kansas City pounced on another opportunity. This time, Bieler earned his first goal in the light blue. Myers cut a ball back from the right flank to Bieler just inside the area. He controlled it, and had enough time to place his shot to the far post. The third KC goal put an end to the Union’s hopes, and gave Sporting a good road victory to open the season.\nSporting Kansas City (1-0-0) will travel to Rogers Centre in Toronto to face TFC on Saturday next week. The Union (0-1-0) will also be on the road Saturday, and will look for their first victory against the Colorado Rapids. Both teams have some room for optimism. KC was not dominant, but were clinical and got their new Designated Player on the score sheet. Philadelphia looked dangerous and played well against a better team. If their finishing improves and limit mistakes, they could work their way into playoff contention."} -{"text": "= t + j\n from_pool = pos < S\n pool_values = tl.load(\n conv_pool + slot * stride_pool_b + d * stride_pool_d + pos * stride_pool_s,\n mask=mask & from_pool,\n other=0.0,\n )\n hidden_t = pos - S\n hidden_values = tl.load(\n hidden_states + b * stride_hidden_b + d * stride_hidden_d + hidden_t * stride_hidden_t,\n mask=mask & ~from_pool,\n other=0.0,\n )\n values = tl.where(from_pool, pool_values, hidden_values)\n acc += values.to(tl.float32) * tl.load(weight + d * stride_weight_d + j * stride_weight_w).to(tl.float32)\n\n if HAS_BIAS:\n acc += bias_val\n if SILU:\n acc = acc / (1.0 + tl.exp(-acc))\n tl.store(out + b * stride_out_b + d * stride_out_d + t * stride_out_t, acc, mask=mask)\n\n if CACHE_INTERMEDIATE:\n for s in tl.static_range(0, S):\n pos = t + 1 + s\n from_pool = pos < S\n pool_values = tl.load(\n conv_pool + slot * stride_pool_b + d * stride_pool_d + pos * stride_pool_s,\n mask=mask & from_pool,\n other=0.0,\n )\n hidden_t = pos - S\n hidden_values = tl.load(\n hidden_states + b * stride_hidden_b + d * stride_hidden_d + hidden_t * stride_hidden_t,\n mask=mask & ~from_pool,\n other=0.0,\n )\n values = tl.where(from_pool, pool_values, hidden_values)\n tl.store(\n intermediate_conv_buffer\n + b * stride_inter_b\n + t * stride_inter_t\n + d * stride_inter_d\n + s * stride_inter_s,\n values,\n mask=mask,\n )\n\n # Ring-buffer state shift: conv_pool[s] <- source[T + s] for s in [0, S).\n for s in tl.static_range(0, S):\n pos = T + s\n from_pool = pos < S\n pool_values = tl.load(\n conv_pool + slot * stride_pool_b + d * stride_pool_d + pos * stride_pool_s,\n mask=mask & from_pool,\n other=0.0,\n )\n hidden_t = pos - S\n hidden_values = tl.load(\n hidden_states + b * stride_hidden_b + d * stride_hidden_d + hidden_t * stride_hidden_t,\n mask=mask & ~from_pool,\n other=0.0,\n )\n values = tl.where(from_pool, pool_values, hidden_values)\n tl.store(\n conv_pool + slot * stride_pool_b + d * stride_pool_d + s * stride_pool_s,\n values,\n mask=mask,\n )\n\n\ndef causal_conv1d_pool_update(\n hidden_states: torch.Tensor,\n conv_pool: torch.Tensor,\n slot_ids: torch.Tensor,\n weight: torch.Tensor,\n bias: torch.Tensor | None = None,\n activation: str | None = None,\n intermediate_conv_buffer: Optional[torch.Tensor] = None,\n) -> torch.Tensor:\n \"\"\"Depthwise causal conv update that reads/writes indexed rows in ``conv_pool`` directly.\"\"\"\n batch, dim, seq_len = hidden_states.shape\n state_len = conv_pool.shape[-1]\n if seq_len == 0:\n return hidden_states\n if state_len + 1 != weight.shape[-1]:\n raise ValueError(f\"conv pool state_len={state_len} incompatible with weight shape={weight.shape}\")\n if weight.dtype != hidden_states.dtype:\n weight = weight.to(hidden_states.dtype)\n if bias is not None and bias.dtype != hidden_states.dtype:\n bias = bias.to(hidden_states.dtype)\n slot_ids_i32 = slot_ids.to(device=hidden_states.device, dtype=torch.int32)\n out = torch.empty_strided(\n hidden_states.shape, hidden_states.stride(), device=hidden_states.device, dtype=hidden_states.dtype\n )\n\n stride_hidden_b, stride_hidden_d, stride_hidden_t = hidden_states.stride()\n stride_pool_b, stride_pool_d, stride_pool_s = conv_pool.stride()\n stride_weight_d, stride_weight_w = weight.stride()\n stride_out_b, stride_out_d, stride_out_t = out.stride()\n if intermediate_conv_buffer is None:\n stride_inter_b = stride_inter_t = stride_inter_d = stride_inter_s = 0\n else:\n if intermediate_conv_buffer.shape[1] < seq_len:\n raise ValueError(\n \"intermediate_conv_buffer does not have enough step capacity \"\n f\"({intermediate_conv_buffer.shape[1]} < {seq_len})\"\n )\n intermediate_conv_buffer = intermediate_conv_buffer.narrow(1, 0, seq_len)\n stride_inter_b, stride_inter_t, stride_inter_d, stride_inter_s = intermediate_conv_buffer.stride()\n\n block = 256\n _causal_conv1d_pool_update_fused_kernel[(triton.cdiv(batch * dim, block),)](\n hidden_states,\n conv_pool,\n slot_ids_i32,\n weight,\n bias,\n out,\n intermediate_conv_buffer,\n batch,\n dim,\n seq_len,\n stride_hidden_b,\n stride_hidden_d,\n "} -{"text": "Folks from all walks of life shared their very passionate views with me. Heterosexuals, homosexuals, and immediate relatives of homosexuals all took the time to share some very poignant, well-thought-out words. I felt very humbled as I read them, as if I somehow didn't deserve to be mixed into this debate. All I did was write: they live this every day.\nSo as I scan through the words below, the comments you have all left, and the messages you have sent me via e-mail, I can't help but feel that my 638 words changed the world just a little bit. I'll keep your words in mind when I pick up my pen to write my next article. Everything I publish should be an opportunity to challenge, teach, and ultimately enlighten. Thank you all for confirming that this is the path I should take. Here goes (and, again, apologies for the length):\nThanks for your thoughtfully composed article on same sex marriage. I'm always moved by your ability to string words together into a heartfelt piece about important issues in the world today. You say so much but the deep feeling I always come away with is \"love one another.\" A simple admonishment that isn't easy to practice.---\nI just wanted to send you a note to thank you so much for today's article on gay marriage!! I am so heartily sick of people arguing over issues they know nothing about and who assume that because they are RIGHT, they can say whatever they like with little regard for \"the other side's\" opinions, convictions or personal feelings.\nI can assure the RIGHTS group that there are very few families who do not have at least one gay family member (in or out of the closet) within their extended clan. Before they get even more offensive about something that is really none of their business, perhaps they should speak to their gay relatives to find out what type of discrimination they face every day!\nThank you, thank you, thank you for your column in today's Free Press. Your words are right on. I wish your column could be reprinted in newspapers all over the U.S. and Canada.---\nWow - loved your column today! I couldn't of said it better. Religion in my opinion is for people who can't think for themselves. I live in an openly gay relationship. Most of our friends are straight married couples. Next year I will have been with my partner for 25 years. If we chose to marry - whose lives would be affected?---\nI saw your article in the London Free Press the other day. What an wonderful piece. You said it all. Amen. God Bless You and Your Family---\nThanks so much for telling the truth, even when it's not the most popular viewpoint! How refreshing. It may seem obvious to most of us, that homosexuals have nothing to do with the downfall of marriage, but apparently, in this twilight zone that is our society, that's not the case.---\nFinally. Someone who has commom sense about this issue. Someone who also realizes that if straights could be put in jail for failing to keep their marriage vows, most of them would be inside rather than outside the bars.---\nStraights use the bible only as a convenience, only when it serves their purpose to pick and choose what they what to believe. Well let them throw their stones because there is a higher power that will pass judgement on their hate and discrimination.\nThanks Carmi. Well done.\nUnfortunately you probably will not receive many positive comments to your column on same sex marriage, but here is one: \"Well said ! Well written ! Good for you !\"---\nI do not feel, nor does my wife, that our healthy, 42 year heterosexual marriage is in any way threatened by this legislation. Nor do we feel that our God supports the hypocrisy and strident whining from the closet homophobes who oppose it.\nWhat you wrote needs to be said. Our thanks for a job well done.\nYour argument involving religion and discrimination was very effectively written. I have never understood how happily married couples in a traditional marriage could ever feel threatened if their legal union was equal to a same-sex union. To drag religion into the equation is just poppy-cock!!---\nI appreciate your comment that building bridges rather than walls would bring us all closer together, and agree that is what God would ultimately want for us as a society. We finally accepted that the concept of unwed moms, legal common-law marriages with children, families not led by a mom or dad (children raised by other relatives) and married couples without children, by choice or infertility, are still considered families.\nI find it impossible to swallow that some people can find a way to generalize an entire group of minorities and label them with falsified arguments. Ignorance is a tragedy that happens in many degrees and seems to be conditioned to human nature.---\nCarmi again: I suspect the debate doesn't end here. I invite you all to continue to use Comments, e-mail and any other tool you've got to share your thoughts, both with me and with each other. I'll be watching the paper in the days to come in case any additional letters to the editor are published. I'll share whatever else I come across in future postings.\nIn the meantime, I offer you all my heartfelt thanks for supporting me through this process. I am once again thanking my lucky stars that I decided to do this for a living. What an experience."} -{"text": "With computer power increasing, are UAD plugins worth the hassle?\nTo clarify that question, let me bring up a little....\nFalling under the Universal Audio company umbrella, UAD plugins rely on an external accelerator. This happens three ways:\nThe PCI-e option is the best option as it provides the most reliable speeds. This is in my system. It’s available for the PC or Mac.\nThe Satellite is an external based option connecting via Firewire.\nThe Apollo, like the Satellite, connects externally via Firewire. It also connects via Thunderbolt and includes an audio interface. As of early 2012, the external options are currently only available on the Mac.\nThere was also an ExpressCard option for laptops available for both PC and Mac.\nSo the idea is to have these external accelerators handle the complex number crunching chores, freeing up your native CPU. This idea makes a lot of sense.\nBut the question remains: what happens when computer power catches up?\nIt certainly pays to keep an eye (and ear) on future trends, but what matters most is the present.\nWith that in mind let me share with you what’s presently in the UAD plugins portion of my toolset:...\nUAD’s audio mastering software tools called the Precision Series. These are:\nThe Precision EQ has wide gentle curves that allow me to subtly give a mix what it needs while being as transparent and ‘complementary’ as possible. Important when respecting and preserving the artists mix intentions.\nIt’s also what I use for my bass enhancement trick without actually boosting any bass!\nI hate multiband compression! I try to avoid it as much as possible.\nI have to use it, I start with the Precision Multiband.\nIt does what it’s supposed to, the way I expect it to, and...it does it extremely well!\nCalling it a bread-and-butter tool is not an insult. It performs and operates simply.\nI generally use this as a dynamic equalizer. I love how it can gently soften stray peaks in offending frequency regions when set correctly. A great mix balancer.\nAdmittedly, the Limiter and Maximizer don’t get as much use as they used to.\nI find myself reaching for PSP Xenon more often to shape the final sound of a master the way it needs to be. If that fails, it’s over to Voxengo’s Elephant.\nThe Maximizer provides brickwall limiting with an analog flavour. But it’s main feature is harmonic enhancement. Again, if I use this, I prefer to use it as a spice to a track, not for volume boosts.\nThis is nothing against the Maximizer. It’s simply that for more character I prefer to use these...\nThe Pultec EQ's, and the classic Fairchild limiter are legendary.\nWith the UAD Pultec, just running a mix through it can produce magic (and a nice volume gain!) And it too can provide some nice bass enhancement without muddying up the low end.\nAnother magic spot on the Pultec is the 8 kHz region. A subtle, gentle and wide boost here can open up many mixes that may lack air or clarity. I’ve also found this setting to be a great restorative EQ on cassette transfers!\nThe UAD Fairchild is another 'magic box' when just running a mix through it.\nI love to use its mid-side compression. This puts a nice glue to vocals, and the rhythm tracks. It also gently opens up the soundstage. When set just right, it gives a mix a wonderfully, almost subliminal dynamic enhancement.\nWhile the Pultec and Fairchild can have a home in either full band mixes or lighter acoustic settings, the LA2A is best mostly on lighter acoustic tracks with small accompaniments.\nReally! The LA2A can work as a mastering tool! Pleasant surprise for me and my clients!\nI've been finding recently that the LA2A can work quite well on light acoustic mixes with just a gentle 1–2 dB gain reduction. My test for if it works: if something goes missing when I take it out, back in it goes!\nAnother compressor that gets occasional use is the Neve 33069.\nIt has nice gain enhancement with its built harmonics. It’s performed rather well for some of the jazz masters I do. However this plugin is a real power hog, and no doubt the catalyst for the increased power of the current UAD-2 accelerator.\nWithout the UAD-2, tools like these would be impossible:\nExclusive to UAD plugins, the Manley Massive Passive Mastering EQ is worth the price of admission. Certainly more ‘quirky’ in its operation than other EQ’s the results are worth it. I’ve used as successfully on Classical work as well as the more ‘standard’ rock and hip-hop tracks.\nAnd while I love my Pultec-Fairchild chain, for ultimate character UAD's emulation of Dave Derr's Fatso unit is it! I prefer the Sr. version for control of its transformer and compressor section. This thing just makes everything bigger and warmer! Bass - Stereo Image - you name it!\nIn mastering, I rarely use reverbs - even less than multiband compression. That's because, even at 1 per cent settings, they can take off that edge and precision a mix has.\nHowever when a mix is just too dry, or needs space, the presets in the RealVerb Pro and DreamVerb are where I go. For small spaces, the Jazz Club and Small Room presets in the RealVerb Pro are perfect. For larger ones, both units have great Warm Ambiance settings.\nReverbs are the one exception I have in my work where I rely on presets. And these UAD plugins solutions are my go to choice.\nAll issues about native and accelerator power aside, I wouldn’t be without UAD plugins.\nThey’re absolutely capable of providing superb masters.\nAnd superb masters are all my clients are concerned about.\nProud to be affiliated with these organizations:"} -{"text": " stride_hidden_t,\n stride_pool_b,\n stride_pool_d,\n stride_pool_s,\n stride_weight_d,\n stride_weight_w,\n stride_out_b,\n stride_out_d,\n stride_out_t,\n stride_inter_b,\n stride_inter_t,\n stride_inter_d,\n stride_inter_s,\n KERNEL_SIZE=state_len + 1,\n HAS_BIAS=bias is not None,\n SILU=activation in (\"silu\", \"swish\"),\n CACHE_INTERMEDIATE=intermediate_conv_buffer is not None,\n BLOCK=block,\n num_warps=4,\n )\n return out\n\n\ndef cache_intermediate_conv_states(\n *,\n initial_conv_state: torch.Tensor,\n hidden_states: torch.Tensor,\n intermediate_conv_buffer: torch.Tensor,\n intermediate_state_indices: torch.Tensor | None,\n) -> None:\n \"\"\"Populate the speculative-decode conv-state cache for all draft timesteps.\n\n ``causal_conv1d_update`` doesn't expose intermediate state views so we\n reconstruct them by unfolding a concatenation of the initial state and\n the current-step hidden states.\n \"\"\"\n seq_len = hidden_states.shape[-1]\n if seq_len == 0:\n return\n\n state_len = initial_conv_state.shape[-1]\n if state_len == 0:\n return\n\n if intermediate_conv_buffer.shape[1] < seq_len:\n raise ValueError(\n \"intermediate_conv_buffer does not have enough step capacity \"\n f\"({intermediate_conv_buffer.shape[1]} < {seq_len})\"\n )\n\n buffer_view = intermediate_conv_buffer.narrow(1, 0, seq_len)\n batch, dim, _ = hidden_states.shape\n stride_init_b, stride_init_d, stride_init_s = initial_conv_state.stride()\n stride_hidden_b, stride_hidden_d, stride_hidden_t = hidden_states.stride()\n stride_buffer_b, stride_buffer_t, stride_buffer_d, stride_buffer_s = buffer_view.stride()\n if intermediate_state_indices is not None:\n intermediate_state_indices = intermediate_state_indices.to(device=hidden_states.device, dtype=torch.int32)\n total = batch * seq_len * dim * state_len\n block = 256\n _cache_intermediate_conv_states_kernel[(triton.cdiv(total, block),)](\n initial_conv_state,\n hidden_states,\n buffer_view,\n intermediate_state_indices,\n batch,\n dim,\n seq_len,\n state_len,\n stride_init_b,\n stride_init_d,\n stride_init_s,\n stride_hidden_b,\n stride_hidden_d,\n stride_hidden_t,\n stride_buffer_b,\n stride_buffer_t,\n stride_buffer_d,\n stride_buffer_s,\n HAS_INDICES=intermediate_state_indices is not None,\n BLOCK=block,\n num_warps=4,\n )\n\n\ndef dao_causal_conv1d_prefill(\n hidden_states: torch.Tensor,\n weight: torch.Tensor,\n bias: torch.Tensor | None = None,\n conv_state: torch.Tensor | None = None,\n activation: str | None = None,\n) -> Tuple[torch.Tensor, torch.Tensor]:\n \"\"\"Fused causal conv for a full prompt. Returns ``(output, new_conv_state)``.\"\"\"\n dao_causal_conv1d = load_dao_causal_conv1d()\n if dao_causal_conv1d is None:\n raise ImportError(\"causal_conv1d is not installed\")\n actual_out, actual_state = dao_causal_conv1d.causal_conv1d_fn(\n x=to_channel_last_storage(hidden_states),\n weight=weight,\n bias=bias,\n initial_states=None if conv_state is None else to_channel_last_storage(conv_state),\n return_final_states=True,\n activation=activation,\n )\n return actual_out.to(hidden_states.dtype), actual_state\n\n\ndef prepare_varlen_conv_state(\n *,\n conv_state: torch.Tensor | None,\n num_seqs: int,\n conv_dim: int,\n state_len: int,\n device: torch.device,\n dtype: torch.dtype,\n query_start_loc: torch.Tensor,\n) -> tuple[torch.Tensor, torch.Tensor]:\n has_initial_state = conv_state is not None\n if conv_state is None:\n conv_state = torch.zeros(\n num_seqs,\n conv_dim,\n state_len,\n device=device,\n dtype=dtype,\n )\n elif conv_state.dtype != dtype:\n conv_state = conv_state.to(dtype)\n\n return conv_state, torch.full(\n (num_seqs,),\n has_initial_state,\n device=query_start_loc.device,\n dtype=torch.bool,\n )\n\n\ndef firecuda_causal_conv1d_varlen_prefill(\n hidden_states: torch.Tensor,\n weight: torch.Tensor,\n bias: torch.Tensor | None = None,\n conv_state: torch.Tensor | None = None,\n activation: str | None = None,\n *,\n query_start_loc: torch.Tensor,\n cache_indices: torch.Tensor,\n has_initial_state: torch.Tensor,\n seq_lens_cpu: List[int] | None = None, # AMD: aiter grid sizing; CUDA: max-seqlen grid-z\n return_token_major: bool = False,\n) -> Tuple[torch.Tensor, torch.Tensor]:\n \"\"\"Causal conv for a flattened variable-length prefill batch.\n\n ``hidden_states`` is shaped ``[1, conv_dim, total_tokens]`` and\n ``query_start_loc`` partitions that flattened token axis by sequence.\n\n Uses ``torch.ops.firecuda.causal_conv1d_fwd`` on CUDA and aiter Triton on AMD.\n"} -{"text": "Submitted by slavemeeting on Wed, 23/03/2016 - 12:49am\nOther special requirements:\nLooking for a fosamax? Not a problem! If you would certainly like to receive additional facts relating to fosamax kindly see ---- http://company-article.info/med/fosamax ---- Guaranteed Worldwide Shipping Discreet Package Low Prices 24/7/365 Customer Support 100% Satisfaction Guaranteed. Tags: best price fosamax free shipping moneygram no prescription fosamax alendronate sodium in internet paypal fast maryland cheapest generic fosamax melbourne buying fosamax general health in internet medicine cod accepted new mexico synthroid and fosamax empty stomach low cost fosamax in internet drugs saturday shipping california buy overnight fosamax low price fosamax online mastercard no rx west virginia https://jsfiddle.net/v0408stw/ online fosamax and fedex garden grove generic fosamax canadian pharmacy low price fosamax american express online fosamax avascular necrosis can i buy fosamax in internet moneygram saturday shipping utah #fosamax generic fosamax manufacturing fosamax dental side effects bone loss buy fosamax rx online get fosamax 10mg online visa no script ohio where to get fosamax 35mg online shop fedex north carolina can i purchase fosamax online tab priority mail virginia want to buy fosamax in internet coupon fedex canada order fosamax online approval buy brand fosamax alendronate sodium in internet tablet free shipping malaysia generic fosamax sold in the us fosamax in internet no doctors tennessee fosamax online legitmate canada netherlands pharmacy fosamax monthly fosamax buy cod fosamax in internet pills priority mail manufacturer of generic fosamax fosamax rebate coupons fosamax 500 mg bestellen indication for fosamax buy cod fosamax in internet jcb fast iowa buy brand fosamax western union without script buy brand fosamax in internet medicine saturday delivery rhode island buying fosamax in internet check fast maine fosamax online fedex fosamax and buy i want alendronic acid fosamax online saturday shipping canada discount alendronate fosamax fosamax and coumadin drug where to buy fosamax alendronate sodium fedex maine wholesale fosamax without a perscription shipped overnight i want fosamax paget's disease in internet no prescription pharmacy fosamax online jcb fast delivery pennsylvania want to buy fosamax in internet rx fedex oklahoma abuse of fosamax 70mg in internet shop without script new york conditions for which doctors prescribe fosamax low prices for generic fosamax next day no prescription needed how to buy fosamax in internet amex no prescription new york purchase online fosamax 70 mg ordering fosamax without prescription fosamax rx side effects order ditropan ointment online fosamax interaction corporation share price best price alendronate sodium fosamax jcb maine can i buy fosamax in internet diners club fedex indiana fosamax treatment for seborrheic dermatitis fosamax study low cost fosamax online moneygram saturday delivery wyoming when will fosamax generic be available? abuse of fosamax in internet western union overnight alabama no prescription saturday delivery fosamax fosamax patient information bone loss find fosamax samples with check actually on line need fosamax in internet visa saturday shipping south carolina want to buy fosamax online american express fast usa buy brand fosamax 35mg in internet tablets mississippi cheap fosamax in internet drugs no rx massachusetts how to get alendronate sodium fosamax drugs no script buying generic fosamax from yp healthcare from india can i buy fosamax general health online pharmaceutical priority mail nevada alendronic acid fosamax online no prescription new mexico get fosamax alendronic acid online pills saturday shipping idaho get alendronate sodium fosamax priority mail get fosamax online buy fosamax at a discount where to order fosamax online purchase fosamax alendronic acid online wire transfer podcast boniva fosamax alternatives Online pharmacy drugs do not fall on this category. No, not the canned meat variety - spam is like the junk mail that you receive inside mail box, just in the electronic form. Choose cloth napkins at home and bring your own personal reusable water and occasional cups to operate. If you're interested in certification to improve your career potential being a Georgia pharmacy tech, then look into the Pharmacy Technician Certification Board certification program. Some like to help people, others just like the science aspect of the job. Chances are there is going to be only one person working the drive-thru at any time whereas there will likely be multiple people working inside. The tech will enter orders, check orders, process requests for insurance and patient information among other things. Many require math and science coursework, and prospective students should know about what those prerequisites are and whether they meet them. In the situation of pharmacy specialist jobs, giving the wrong prescription is the widespread error that is certainly certainly mostly documented. By giving your pharmacy the complete name of the medication you are able to better safe guard your health. Important point being noticed is always that cost can't be the first consideration. Use those outlines as being a roadmap to aid you study for that pharmacy tech certification test. However, please be guided from the average hourly and annual salary data provided. If the trouble is not treated on an extended period of time, it might lead to serious complications including cancer. This institute is situated in Mohali, Punjab and is also completely dedicated towards advanced studies and new researches on pharmaceutical science.\nWhat region are you from?:Scotland"} -{"text": "Tums manifests its antacid magic in \"Angry Bear,\" where the aforementioned animal steals food, overeats and goes back in for one more score: the Tums.\nThere's something about the sight of a bear, far-off and out of decapitation range, that totally numbs us to its potential malevolence. It's like, \"Aww, look at the bear eating all the pizza. Look at the bear breaking the watermelon. Look at the bear getting the Tums for its tummy.\"\nYou kind of want to curl up around it and fall asleep while it's lying against one of those gutted cars, nursing a food hangover.\nTo make kids act more energy-smart, the Department of Energy launched Lose Your Excuse, a painfully cute website* that encourages engagement and boasts a 10-step energy \"action plan\" to download.\nTwo quirky little ads drive traffic in its direction. Each features a kid getting caught in a lie about why s/he hasn't become more energy efficient. (I know that vibes like the Spanish Inquisition, but the execution is feel-good and funny).\nExcept there's no Coke, and lots of Domos.\n\"Jump Rope\" -- chock full of delicious images and noises -- was put together for client Nike by AKQA. Creativity Online pegged its position \"the escapism of exercise.\" Well-said.\n- Somebody just sent us a link to KillaBanker.com, a little CafePress store where you can buy knee-jerk reactions to economic despair.\n- Hanzi Smatter, a site \"dedicated to the misuse of Chinese characters in Western culture,\" is hilarious. See awkward interpretation of tattoo on a model featured in AussieBum's Commando ad.\n- Kellogg's brand rep suffers following Phelps fallout.\n- What ho, a Dairy Queen blog.\n- More jibjab over Arnell/Tropicana.\nWitness with a growing sense of unease as a couple on its first date quotes lines from Romeo & Juliet.\n$5 says they met on eHarmony.\n\"How Romeo Pulls Juliet,\" which vibes like a middling tribute to Baz Luhrmann's '96 oeuvre, was put together by Madeinmilan Wine. The company wanted to \"tell a story about having fun with wine, indulging in intense pleasure\" while incidentally promoting a suite of wines named after iconic characters, like Romeo. (There's also a bottle marked Brutus. Hrm.)\nFor requisite engagement purposes, check out the \"wine pairing\" section, where you (apparently...?) pair wine to other things, like \"travel\" or \"chill out.\" (We have NO idea.)\nClick on \"sex\" for an exciting shot of a mad couple crawling around on all fours. We're not sure why it's there, but it struck us as one of the few things worth mentioning at all.\nRemember those Little Thickburger commercials from last year? Riffing off that, Hardee's launched an ad generator app so fans could create their own Thickburger comparisons.\nThe company expected maybe one or two to shine, but it turns out about 16 spots turned out to be broadcast-quality. (Though when you think about it, it's a pretty tough formula to screw up: [Big thing. Little thing.] Extra points for wordplay.) See them here.\n\"And we didn't even offer them a million dollars. Or anything for that matter,\" Hardee's added, puffing its chest out for extra effect.\nWith help from Cactus, ONE Step focuses on protecting the health of young children by encouraging smoker parents to go outside before lighting up.\nThe narration is soothing and the message doesn't direct smoking wholesale, although the smoke dragons and flesh-eating ravens -- which malevolently circle and eventually engulf the kiddies -- make things just uncomfortable enough.\nWe'll step outside, and we don't even have kids. Though this doesn't provide a gameplan for what to do when little kids walk by, but hey, those ones aren't yours.*\nMore on this at raisesmokefreekids.com.\nCNBC does the financial thing by day but they get all \"original programming\" at night. To let people know, they've launched some Woods Witt Dealy & Sons-created, program-specific ads to hype the shows. With the headline, \"Show Me the Money,\" one ad touts American Original: Westminster Dog Show, a backstage look at the inner workings of the $43 billion pet industry. PETA?\nAnother ad carrying the ever-appropriate headline, \"Demolished,\" examines \"how the American dream became a nightmare\" in a show called How the American Dream Became A Nightmare. Hmm, now that sounds like some seriously depression-inducing programing.\nBut, hey, we gotta face facts. Pet shows are stupid and the American Dream does not mean everyone should own a home.\nSee both ads here and here.\nDIRECTV reminds us all of its relevance (...?) with help from fictional rival Cable Corp Inc. In this latest installment of boardroom bumbling, Cable Corp decides to battle DIRECTV with a new tagline: \"Get Youthenized!\"\nEnter creepy puns. By Deutsch/LA.\nCollegeClickTV.com hopes to encourage more kids to get a college education -- and possibly get into football? -- by broadcasting soothing pro-college messages, spoken by President Obama, on network TV.\nHear everyone's favourite political personality wax poetic about the merits of an education -- and football -- while a static image reads, \"And now a message about... COLLEGE ...the best investment that you can make.\" CollegeClickTV's URL appears at the end of each clip."} -{"text": " ``seq_lens_cpu`` is required on AMD (aiter Triton grid sizing); on CUDA it supplies the\n max per-batch seqlen so the channel-contig kernel can size grid-z without a host readback.\n When ``return_token_major`` is true, returns ``[1, total_tokens, conv_dim]``.\n \"\"\"\n if hidden_states.ndim != 3 or hidden_states.shape[0] != 1:\n raise ValueError(\n \"firecuda_causal_conv1d_varlen_prefill expects hidden_states with shape \"\n f\"[1, conv_dim, total_tokens], got {tuple(hidden_states.shape)}\"\n )\n\n if conv_state is None:\n raise ValueError(\"firecuda_causal_conv1d_varlen_prefill requires conv_state\")\n\n x = hidden_states.squeeze(0)\n channel_contiguous = (not is_amd()) and x.stride(0) == 1 and x.stride(1) == x.shape[0]\n if x.stride(-1) != 1 and not channel_contiguous:\n x = x.contiguous()\n if weight.dtype != x.dtype:\n weight = weight.to(x.dtype)\n if bias is not None and bias.dtype != x.dtype:\n bias = bias.to(x.dtype)\n\n silu_activation = activation in (\"silu\", \"swish\")\n if is_amd():\n from aiter.ops.triton.causal_conv1d import causal_conv1d_fn\n\n if seq_lens_cpu is None:\n raise ValueError(\"firecuda_causal_conv1d_varlen_prefill requires seq_lens_cpu on AMD\")\n x = causal_conv1d_fn(\n x,\n weight,\n bias,\n conv_state,\n query_start_loc,\n seq_lens_cpu,\n cache_indices=cache_indices,\n has_initial_state=has_initial_state,\n activation=activation,\n )\n elif channel_contiguous:\n # max_seqlen: longest single sequence, used to size the channel-contig kernel's\n # grid-z. When the caller supplies CPU seq lens (GDN prefill path) pass it directly\n # so the kernel avoids a query_start_loc host readback (keeps the op CUDA-graph\n # captureable). Fall back to -1 (kernel reads back) when unavailable.\n max_seqlen = max(seq_lens_cpu) if seq_lens_cpu is not None else -1\n x = torch.ops.firecuda.causal_conv1d_fwd_channel_contig_out(\n x,\n weight,\n bias,\n conv_state,\n query_start_loc,\n cache_indices,\n has_initial_state,\n silu_activation,\n -1,\n max_seqlen,\n )\n else:\n _causal_conv1d_varlen_fwd(\n x,\n weight,\n bias,\n conv_state,\n query_start_loc,\n cache_indices,\n has_initial_state,\n silu_activation,\n )\n\n selected_indices = cache_indices.to(device=conv_state.device, dtype=torch.long)\n actual_state = conv_state.index_select(0, selected_indices)\n if return_token_major:\n x = x.transpose(0, 1)\n return x.unsqueeze(0).to(hidden_states.dtype), actual_state\n\n\ndef _apply_causal_conv1d_update(\n hidden_states: torch.Tensor,\n conv_state: torch.Tensor,\n weight: torch.Tensor,\n bias: torch.Tensor | None = None,\n activation: str | None = None,\n) -> torch.Tensor:\n if is_amd():\n from aiter.ops.triton.causal_conv1d import causal_conv1d_update\n\n actual_out = causal_conv1d_update(\n hidden_states,\n conv_state,\n weight,\n bias=bias,\n activation=activation,\n )\n else:\n dao_causal_conv1d = load_dao_causal_conv1d()\n if dao_causal_conv1d is None:\n raise ImportError(\"causal_conv1d is not installed\")\n actual_out = dao_causal_conv1d.causal_conv1d_update(\n x=hidden_states,\n conv_state=conv_state,\n weight=weight,\n bias=bias,\n activation=activation,\n )\n\n if actual_out.dtype != hidden_states.dtype:\n actual_out = actual_out.to(hidden_states.dtype)\n return actual_out\n\n\ndef dao_causal_conv1d_update(\n hidden_states: torch.Tensor,\n conv_state: torch.Tensor,\n weight: torch.Tensor,\n bias: torch.Tensor | None = None,\n activation: str | None = None,\n) -> torch.Tensor:\n \"\"\"Single-step causal conv update that advances ``conv_state`` in place.\"\"\"\n return _apply_causal_conv1d_update(\n hidden_states,\n conv_state,\n weight,\n bias=bias,\n activation=activation,\n )\n\n\ndef dao_causal_conv1d_decode_sequence(\n hidden_states: torch.Tensor,\n conv_state: torch.Tensor,\n weight: torch.Tensor,\n bias: torch.Tensor | None = None,\n activation: str | None = None,\n intermediate_conv_buffer: Optional[torch.Tensor] = None,\n intermediate_state_indices: Optional[torch.Tensor] = None,\n) -> torch.Tensor:\n \"\"\"Speculative / multi-token decode: apply causal conv over every draft timestep.\n\n ``causal_conv1d_update`` advances state for every timestep in\n ``hidden_states`` in causal order (equivalent to repeated single-step\n updates), not only the last token. Parity with stepping one position\n at a time is asserted in\n ``test_dao_ca"} -{"text": "Artist Spotlight: Alexander Guerra\nAlexander Guerra is an artist and photographer from Miami specializing in self-portraiture. Currently he is engulfed in his alter ego The Rabbit. The Rabbit is the central character in his images, set in both surreal scenes and real environments. His work is a provocative mix of bizarre travel stories as well as more offbeat contemplative pieces. Guerra's Rabbits are awkwardly posing, sometimes suggestively sexual and mysterious, while other times playful and mischievous. Guerra builds a tension between the innocence of a bunny and a sexually aggressive, very male hare. The Rabbit is Guerra's demanding inner exhibitionist. And yep, we are there to be his audience.\nOver the past year and a half, Guerra has unleashed his Rabbit army on the world, immortalizing his Rabbit in Paris, Tokyo, Rome, Beijing, and Sydney. His self-portraits become both his souvenir and the postcard sent home.\nThe Advocate: Why are you a photographer?\nAlexander Guerra: The \"why?\" I do not know. I do know that my memory/mind is very photographic — always has been — and I've always seen things in these imaginary frames. That said, my images are an extension of my mind. A backup drive, if you will. A kind of flash drive that I share with others.\nWhat started you on this particular series?\nI started the Rabbits last summer in Paris (Le Lapin, La Nuit). My boyfriend is French, and this was the second time that we visited the city. The first time was a short trip and a rat race for me to see all the sites. This second trip was going to be a week long. Being a fan of fashion magazines, I knew I couldn't waste the scenery. I knew that I wanted to shoot around the city with a sense of a high-fashion editorial. I'd have this opportunity to immortalize my alter-self in arguably the most beautiful city in the world. The city of lights. So I did.\nI get asked this question all the time. Recently, I was at my mom's house and, while cleaning out a closet, we found two pieces of artwork I made as a child. One was a rabbit I made out of paper plates and crayons, and the other was a story I wrote about an Easter Bunny. Since childhood I've been drawn to rabbits, but it was subconsciously as an adult that I would rediscover, accept, and evolve that desire to my alter ego.\nAny interesting things happen while shooting on location?\nThis summer I was in Lisbon. A beautiful city and an amazing backdrop for my \"LisBunnies.\" While shooting one night in front of yellow trolleys, these taggers began tagging the trolleys. What were my boyfriend and I to do? I could chase them in a bunny mask — and do what? We gave in to the moment. I shot some pictures of them, finished my shoot, and we hopped along.\nDo you need to be sure to pack rabbit stuff whenever you travel?\nYrs! (Cue my boyfriend's eye roll.) This year I started making my own masks with lots of thought given to locations. I'm borderline obsessive-compulsive when it comes to my art. Like a celebrity wouldn't wear the same outfit twice on the red carpet, I find it hard to shoot the same mask in different countries and cities. Since I make them, there's nothing stopping me from making a new mask for each location, and I do. This summer I took a Mediterranean cruise. I packed four masks with potential wardrobes for each, including a girl's uniform skirt for my Roman the Rabbit. I also packed four Ziploc bags with enough thread, safety pins, and fabric to make four more masks while on the trip. I also like to incorporate local clothing bought while visiting the city. The red vest in Marry the Night was a purchase I made in Tokyo, which was way better than the tank top I originally brought for the shoot.\nWhat do you still want to do with your rabbit-oriented work?\nI want to create Rabbit sculptures and would also like to create multimedia work incorporating my childhood portraits in Rabbit masks. I'm currently working on the latter, which is a tie in to a childhood memory.\nWhen I was little I loved to put on a show. My dad would take my brother and me to the movies and I would dance with my eyes closed in front of the screen and I wouldn't stop till the music stopped and the people would clap. I lost that around puberty and became self-conscious. The rabbit mask allows me to revisit that kid at the theater, and the multimedia work of meshing my childhood pictures and Rabbit masks is a visual extension of my childhood memory."} -{"text": "During this summer PepsiCo has been in agricultural news for a number of projects that portrays the mega-food and drink company as an expert in sustainable agricultural production of nearly any and every type of crop grown in the world.\nTwo years ago, Coca Cola Company had speakers making presentations to groups about sustainable agriculture with a focus on improving the production of ingredients used in the company’s focus of beverages, mainly juices. Now, PepsiCo has taken the lead in promoting itself as a leader in sustainable agriculture of a wider variety of crops, which is natural because of its ownership of 19 different product lines with the biggest being Quaker, Frito-Lay and beverage brands. Similar to most large multinational corporations, PepsiCo has its charitable foundation, and agricultural projects appear to be the beneficiaries of more foundation funding.\nYesterday, the PepsiCo Foundation announced a public-private partnership aimed at dramatically increasing chickpea production and increasing food security of Ethiopia. The other partners are the United Nations World Food Programme (WFP) and the United States Agency for International Development (USAID).\nThe program, being called Enterprise EthioPEA, will support the Ethiopian government’s agriculture sector development plans. The EthioPEA program aims to help 10,000 Ethiopian farmers to double their chickpea production by “applying more modern agricultural practices and irrigation techniques” so that chickpeas are available for the country’s population and for export.\nThe news release explains that this program fits within PepsiCo’s long-range agricultural plans. “For PepsiCo, chickpea-based products are an important part of the company’s strategy to build a $30 billion global nutrition business by 2020.”\nThe company sways toward crop production being more appropriate for investment than animal, meat production. “With an average of 22 percent protein, chickpeas are a more sustainable alternative to meat and have the potential to reduce the risk of coronary artery disease and diabetes,” it was announced.\nThe full explanation of PepsiCo’s agricultural focus was provided in a one-sentence statement. “PepsiCo’s investment in Enterprise EthioPEA is part of a global strategy to make the company a leader in sustainable agriculture around the world, and the latest example of the company’s proven and transferable market-based model, which advances healthy nutrition and long-term financial performance.”\nEarlier in the week prior to the EthipPEA announcement, PepsiCo announced it will work with the Chinese government to “help Chinese farmers learn the latest techniques in agriculture,” reported the Associated Press. This arrangement was finalized with the signing of a memo with China’s Ministry of Agriculture.\nThe Chinese project will take the form of building “demonstration farms” to test and showcase the newest “techniques in irrigation, fertilization and crop management.” One of the goals is to improve the Chinese farmers’ standard of living.\nPepsiCo noted it had already assisted Chinese potato farmers to reduce the amount of water used while also increasing yields. With past and present investment, PepsiCo reported it will have invested $3.5 billion from the beginning of 2008 through the new demonstration farms project.\nIn mid-summer, PepsiCo announced it was rolling out its new i-crop farming technology Web-based tool developed in conjunction with Cambridge University, for first use in the United Kingdom and Europe. Successful implementation will eventually result in the program being part of the Chinese demonstration farms plus become part of PepsiCo’s involvement in agricultural production in Australia, India and Mexico. There also have been rumors fanned by PepsiCo executives about U.S. projects.\nThe i-crop was described as “a crop management system that will enable PepsiCo’s farmers around the world to monitor, manage and reduce their water use and carbon emissions, while also maximizing potential yield and quality.”\nIt was reported with the announcement of i-crop that the company had developed 15 global goals and commitments to guide its goals of protecting the earth’s natural resources “through innovation and more efficient use of land, energy, water and packaging.”\nPepsiCo executive’s express the reason for PepsiCo’s involvement in showing farmers how to grow crops in statements similar to that attributed to Richard Evans, president of PepsiCo U.K. and Ireland. “Farming is in the DNA of our business. We rely on fresh produce every day. Finding ways to produce more food with less environmental impact is essential to our future.”\nA PepsiCo executive is scheduled to address the Agricultural Retailers Association annual conference November 30."} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/nn/moe/openai_moe.py. Lines: 880.\n\nfrom sklearn.utils.discovery import all_estimators\nimport torch\nfrom torch.profiler import record_function\nfrom torch import nn\nfrom typing import Callable, Tuple\nfrom contextlib import contextmanager\nimport math\n\nimport triton\nimport triton.language as tl\nimport triton_kernels\nfrom triton_kernels.topk import topk as triton_kernels_topk\nfrom triton_kernels.tensor import make_ragged_tensor_metadata, SparseMatrix\nfrom triton_kernels.tensor_details.dtype import BIT\nimport triton_kernels.swiglu\nfrom triton_kernels.numerics_details.mxfp import (\n downcast_to_mxfp,\n MXFP_BLOCK_SIZE,\n upcast_from_mxfp,\n)\nfrom triton_kernels.matmul import PrecisionConfig, FlexCtx, FusedActivation, FnName, Epilogue, matmul\nfrom triton_kernels.specialize import FnSpecs\nfrom triton_kernels.numerics import InFlexData\nfrom triton_kernels.tensor import convert_layout\nfrom triton_kernels.tensor_details.layout import (\n StridedLayout,\n HopperMXValueLayout,\n BlackwellMXScaleLayout,\n BlackwellMXValueLayout,\n HopperMXScaleLayout,\n)\nfrom triton_kernels.tensor_details import layout\nfrom triton_kernels.tensor import wrap_torch_tensor, FP4, torch_dtype_to_dtype\nfrom triton_kernels.tensor import Tensor as TritonTensor, Storage as TritonStorage\nfrom triton_kernels.compaction import compaction\nimport triton_kernels.matmul_details.opt_flags as opt_flags\nfrom fireworks.triton.silumul.silumul_details import _silumul_fn\nimport fireworks.nn as firenn\nfrom fireworks.nn.score_processor import TopkScoreProcessor, call_score_processor\n\nfrom ..linear import Linear as FwLinear\nfrom .fused_moe import FusedMoEBase, ConvertableFusedMoEBase, FusedMoeOutput\nfrom .sharded_moe import ShardedMoE\nfrom ..all_reduce import AllReduce\nimport fireworks.nn.shard as fireshard\nfrom fireworks.nn.moe.transforms import interleave_hidden_dim # for torch.ops.fireworks\nfrom fireworks.cuda.capability import get_compute_capability, is_hopper, is_blackwell_and_higher\nfrom fireworks.nn.pllt import Manifestable, UninitializedTensorLoader, collect_loaders\n\nfrom triton_kernels import target_info\n\n\n@contextmanager\ndef opt_flags_scope(constraints: dict):\n try:\n opt_flags.update_opt_flags_constraints(constraints)\n yield\n finally:\n opt_flags.reset_opt_flags_constraints()\n\n\n@triton.jit\ndef pack_bitmatrix(\n bitmatrix,\n expt_indx,\n n_rows,\n n_cols,\n n_expts_act,\n BLOCK_SIZE_M: tl.constexpr,\n BLOCK_SIZE_K: tl.constexpr,\n sentinel: tl.constexpr,\n):\n \"\"\"\n Packs expert indices into a row-wise bitmatrix. Each row corresponds to a token; bits mark selected experts.\n \"\"\"\n pid_m = tl.program_id(0)\n offsets_m = pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M)\n offsets_k = tl.arange(0, BLOCK_SIZE_K)\n offsets = offsets_m[:, None] * n_expts_act + offsets_k[None, :]\n mask = (offsets_m < n_rows)[:, None] & (offsets_k < n_expts_act)[None, :]\n indices = tl.load(expt_indx + offsets, mask=mask, other=sentinel)\n div = indices // 32\n rem = indices % 32\n iters = tl.cdiv(sentinel, BLOCK_SIZE_K)\n for i in range(iters):\n offs = tl.arange(0, BLOCK_SIZE_K // 32) + i * (BLOCK_SIZE_K // 32)\n x = tl.where(div[:, :, None] == offs[None, None, :], (1 << rem)[:, :, None], 0)\n y = tl.reduce_or(x, axis=1)\n bitmatrix_ptrs = bitmatrix + offsets_m[:, None] * n_cols + offs[None, :]\n tl.store(bitmatrix_ptrs, y, mask=offsets_m[:, None] < n_rows)\n\n\n@triton.jit\ndef _routing_clear_bitmatrix(Bitmatrix, stride_bm, stride_bn, shape_bn, cutoff, BLOCK_N: tl.constexpr):\n pid_m = tl.program_id(0)\n cutoff_word = cutoff // 32\n cutoff_bit = cutoff % 32\n cutoff_mask = (1 << (cutoff_bit)) - 1\n for start_n in range(0, shape_bn, BLOCK_N):\n offs_n = start_n + tl.arange(0, BLOCK_N)\n values = tl.load(Bitmatrix + pid_m * stride_bm + offs_n * stride_bn, mask=offs_n < shape_bn)\n values = tl.where(offs_n == cutoff_word, values & cutoff_mask, values)\n values = tl.where(offs_n > cutoff_word, 0, values)\n tl.store(Bitmatrix + pid_m * stride_bm + offs_n * stride_bn, values, mask=offs_n < shape_bn)\n\n\ndef _routing_from_bitmatrix(\n bitmatrix, expt_scal: torch.Tensor, expt_indx: torch.Tensor, n_expts_tot: int, n_expts_act: int\n):\n sparse_logits = SparseMatrix(indx=expt_indx, vals=expt_scal, mask=bitmatrix)\n metadata = sparse_logits.mask_metadata\n col_sorted = metadata.col_sorted_indx\n ragged = make_ragged_tensor_metadata(metadata.col_sum, col_sorted.shape[0])\n gather_indx = torch.div(col_sorted, n_expts_act, rounding_mode=\"trunc\")\n scatter_indx = col_sorted\n gate_scal = sparse_logits.vals.flatten()[col_sorted]\n return ragged, gather_indx, scatter_indx, gate_scal\n\n\ndef _make_gate_up_proj_list(\n gate_proj_weights_list: nn.ParameterList, up_proj_weights_list: nn.ParameterList\n) -> list[torch.Tensor]:\n ret = "} -{"text": "A proposal in the state Senate would make it illegal for young drivers to use a cell phone while driving, and would also ban anyone from using a cell phone while driving in a school zone.\nSenate Bill 459 was introduced by Sen. Vince Sheheen, D-Kershaw, in February and has gone on to the Senate Judiciary Committee and Subcommittee.\nThe bill would make it illegal for a person with a beginner's permit or restricted driver's license to drive while using a “cellular telephone or text messaging device,” and would also make it illegal for a person to drive through a school zone while using a cell phone or text messaging device when the school zone's warning lights have been activated.\n“The goal is to focus on particularly risky situations involving distracted driving. It's like a laser beam focus,” Sheheen told the Aiken Standard. “My kids are 16 and a half. The last thing as a parent I think should be happening is that my sons should be texting while they're driving down the road. They're still perfecting their driving skills.”\nSheheen said he was motivated to push for a texting and driving ban after a visit from a police officer.\n“He said, 'Mr. Sheheen, I was almost hit by a parent who was texting while they were dropping their kids off at the school,'” Sheheen recalled.\nThe General Assembly has grappled with texting while driving before, including a similar bill last year that Sheheen sponsored. It was approved by the committee but failed when it went to the full Senate.\nSheheen said the legislature has had particular trouble getting such bills through the Senate, but said some new faces will be helpful in getting the bill passed.\n“There's a large number of senators who are a little more to the right of your average person in South Carolina who generally have blocked that bill from passing,” he said. “I think the change in personality and governance makes it possible. There's a younger group of people who represent the state. A lot of younger people understand that, while texting is a convenience, we need to be careful in its use.”\nSen. Shane Massey, R-Edgefield, said limiting the use of hand-held devices for inexperienced drivers is “easy” to support. He also supports a statewide ban on texting for all drivers.\n“There's no way that you can give proper attention to the roadway if you are holding something in one hand and simultaneously looking down at it,” he said.\nMassey agreed with Sheheen that the Senate has been a “roadblock” for texting while driving bans, but said he's encouraged by the Senate's new makeup.\n“The opposition to a texting ban has been pretty interesting,” he said. “… There are those folks who say that it doesn't go far enough, that if you're going to address texting while driving, you ought to address all forms of distracted driving, whether that be eating, reading, putting on makeup – whatever. There are also those who say it goes too far, that we should not be limiting experienced drivers in that way.”\nSen. Tom Young, R-Aiken, voted for a similar ban in 2010 while in the House of Representatives, and, like Massey, supports a ban on texting for all drivers.\n“I support a ban on all texting while driving because it is a safety issue – texting while driving is dangerous,” Young said. “Banning texting while driving is one way that we can make our roads safer.”\nIf the bill becomes a law, violators could face a fine of up to $500. Sheheen said such a law would be easier to enforce in a school zone.\n“Parents and other drivers are close to the officer,” he said. “They're going slower and the officer can observe what they're doing.”\nSgt. Jake Mahoney, a spokesman for the Aiken Department of Public Safety, said seeing people texting while driving is a “routine occurrence.” He said enforcing such a ban would be similar to seat belt enforcement, which depends on what an officer can see inside a vehicle from his position on the roadway or from a stationary standpoint.\n“I've responded to several vehicle collisions over the past year or more where texting or talking on a cell phone was listed as a contributing factor to the collision,” he said. “Any activity in the vehicle, or anything a driver does while driving that takes his eyes off the road and attention off driving, is extremely dangerous.”\nSouth Carolina is one of six states that doesn't have a ban on texting while driving, according to the Insurance Institute for Highway Safety. Several other states have partial bans.\nSeveral cities in South Carolina, including Clemson, Columbia, Beaufort and Sumter, have implemented their own local bans on texting while driving."} -{"text": "COLUMBIA — With the personnel decisions for his South Carolina basketball team complete, Frank Martin will leave on Monday for a trip where he’ll get to make a more unusual choice.\nMartin’s an assistant coach for the United States’ World University Games team, which means tryouts at the U.S. Olympic Training Center in Colorado Springs, Colo., starting Monday, and then a long flight to Kazan, Russia, for the Games, July 7-16.\n“They say the popular dish over there is bear,” Martin said.\nMartin isn’t sure if he’ll try it. If he gets the chance, he said he’ll wait to see where the moment takes him. For as wary as Russian cuisine might make him, Martin begins the trip feeling hopeful about what he leaves behind.\nSince becoming a head coach in 2007, at Kansas State, he has never been away from his program for this long. He enters his second season at South Carolina preparing to debut eight players, including a transfer point guard, compared to six returning players, because four guys left in the offseason with eligibility remaining. Martin also has a new assistant coach, former Miami head coach Perry Clark, who replaced Brad Underwood, now the head coach at Stephen F. Austin.\nWith summer workouts underway, everything’s in place for Year 2. But many questions remain about these Gamecocks, as they try to avoid their fifth straight losing overall record and rebound from Southeastern Conference records of 2-14 and 4-14 the past two seasons.\nCan highly regarded shooting guard recruit Sindarius Thornwell contribute immediately? What will point guard Tyrone Johnson, a Villanova transfer who will be eligible after the first semester, bring to the backcourt? And will the Gamecocks be able to rebound while playing rising sophomore wing Michael Carrera more on the perimeter, as Martin wants to do?\nWhat’s clear to Martin, at the very least, is his team is longer. That was perhaps the most obvious part of USC’s recent individual workouts. Thornwell, who is 6-foot-5, could add perimeter defense. Ditto for Johnson, who’s 6-3. Three freshmen forwards will also offer length: Demetrius Henry (6-9, 210 pounds), Reggie Theus Jr. (6-6, 190) and Desmond Ringer (6-9, 260).\n“We’re bigger,” Martin said. “It’s the first thing you notice when you’re on the court. That’s something that was important. You’ve got to have size, either at the rim or on the perimeter. Last year, we didn’t have size on the perimeter or at the rim. That’s a problem when that’s how you play. If you have size on the perimeter, then it helps protect the paint. If you don’t have size on the perimeter, then you’ve got to have size at the rim to compensate for lack of size on the perimeter. I think we’re longer, both on the perimeter and in the front line.”\nLast season, USC ranked 11th in the 14-team SEC in rebounding margin during league play (minus-1.8). Carrera was by far the Gamecocks’ best rebounder. He ranked sixth in the league with 7.3 rebounds per game against SEC competition. Carrera, who’s 6-5 and 212 pounds, performed admirably while fighting through a hip injury and playing against bigger men in the post, where USC needed him because of its size deficiencies.\nMartin has said Carrera’s future is farther away from the basket, because it will be hard for him to endure the rigors of frequent post play for the rest of his career. To that end, Martin has noticed encouraging improvements in Carrera’s outside shooting recently, but he is still not yet a polished perimeter player.\n“He’s got to learn, when he catches the ball on the perimeter, not to stand there and hold it with one hand, as you saw during the year last year,” Martin said. “You can’t be any good out there like that. Or put the ball over your head. He’s been asked to play out there, but he’s never been taught to play out there, which is a big difference. His ball handling is good enough to play out there. It’s not great. But his passing and his decision making and his perimeter defense have to get a lot better.”\nIf Carrera is USC’s most intriguing returning player and senior point guard Bruce Ellington remains the team’s leader, then Johnson is probably the most interesting newcomer, along with Thornwell. Johnson, a junior, must form a cohesive backcourt with Ellington and/or shooting guard Brenton Williams, who led USC in scoring last season, ahead of Carrera and Ellington – with 11, 9.9 and 9.9 points, respectively.\nJohnson isn’t an elite perimeter shooter, and Martin wants him to work on developing a mid-range game, rather than slashing to the basket so often. But Johnson’s size is a welcome addition to the backcourt – Ellington is 5-9, Williams 5-11 – on defense, which has long formed the foundation of Martin’s programs.\n“Ty understands angles,” Martin said. “He might not be the most gifted athlete from a side-to-side or speed (standpoint), but his mind allows him to get to the right spot most of the time. That’s what you’ve got to have.”"} -{"text": "[]\n for i in range(len(up_proj_weights_list)):\n gate_up_proj_weight = torch.ops.fireworks.interleave_hidden_dim(\n gate_proj_weights_list[i], up_proj_weights_list[i]\n )\n ret.append(gate_up_proj_weight.transpose(0, 1).contiguous())\n return ret\n\n\ndef _make_gate_up_proj_weight(\n gate_proj_weights_list: nn.ParameterList, up_proj_weights_list: nn.ParameterList\n) -> torch.Tensor:\n return torch.stack(_make_gate_up_proj_list(gate_proj_weights_list, up_proj_weights_list))\n\n\ndef _make_gate_up_proj_bias_list(\n gate_proj_bias_list: nn.ParameterList, up_proj_bias_list: nn.ParameterList\n) -> list[torch.Tensor]:\n ret = []\n for i in range(len(gate_proj_bias_list)):\n ret.append(torch.ops.fireworks.interleave_hidden_dim(gate_proj_bias_list[i], up_proj_bias_list[i]))\n return ret\n\n\ndef _make_gate_up_proj_bias(\n gate_proj_bias_list: nn.ParameterList, up_proj_bias_list: nn.ParameterList\n) -> torch.Tensor:\n return torch.stack(_make_gate_up_proj_bias_list(gate_proj_bias_list, up_proj_bias_list))\n\n\ndef _make_down_proj_weight_list(down_proj_weights_list: nn.ParameterList) -> list[torch.Tensor]:\n ret = []\n for i in range(len(down_proj_weights_list)):\n ret.append(down_proj_weights_list[i].transpose(0, 1).contiguous())\n return ret\n\n\ndef _make_down_proj_weight(down_proj_weights_list: nn.ParameterList) -> torch.Tensor:\n return torch.stack(_make_down_proj_weight_list(down_proj_weights_list))\n\n\ndef _make_down_proj_bias_list(down_proj_bias_list: nn.ParameterList) -> list[torch.Tensor]:\n return [p for p in down_proj_bias_list]\n\n\ndef _make_down_proj_bias(down_proj_bias_list: nn.ParameterList) -> torch.Tensor:\n return torch.stack(_make_down_proj_bias_list(down_proj_bias_list))\n\n\n@torch.library.custom_op(\"fireworks::quantize_mxfp4_hopper\", mutates_args=())\ndef _quantize_mxfp4_hopper_op(w: torch.Tensor) -> Tuple[torch.Tensor, torch.Tensor]:\n w, w_scale = downcast_to_mxfp(w.to(torch.bfloat16), torch.uint8, axis=1)\n w = convert_layout(wrap_torch_tensor(w, dtype=FP4), HopperMXValueLayout(mx_axis=-2, mma_version=3))\n w_scale = convert_layout(wrap_torch_tensor(w_scale), HopperMXScaleLayout(mx_axis=-2, num_warps=8))\n return w.storage.data, w_scale.storage.data\n\n\n@_quantize_mxfp4_hopper_op.register_fake\ndef _(x: torch.Tensor) -> Tuple[torch.Tensor, torch.Tensor]:\n lead_dims = x.shape[:-2]\n # NB: we are transposing x tensor (making it column-major).\n m = x.shape[-1]\n k = x.shape[-2]\n assert k % 2 == 0 # 1 uint8 value fits 2 fp4 values.\n\n # See docs on HopperMXValueLayout for details.\n shape = (*lead_dims, ((m + 16 - 1) // 16) * 4, ((k + 64 - 1) // 64) * 128)\n x_fp4 = x.new_empty(shape, dtype=torch.uint8).transpose(-2, -1)\n\n mx_scale_shape = (*lead_dims, ((m + 256 - 1) // 256) * 8, ((k + 64 - 1) // 64) * 64)\n mx_scale = x.new_empty(mx_scale_shape, dtype=torch.uint8).transpose(-2, -1)\n\n return x_fp4, mx_scale\n\n\n@torch.library.custom_op(\"fireworks::quantize_mxfp4_blackwell\", mutates_args=())\ndef _quantize_mxfp4_blackwell_op(w: torch.Tensor) -> Tuple[torch.Tensor, torch.Tensor]:\n value_layout = layout.make_default_matmul_mxfp4_w_layout(mx_axis=1)\n scale_layout = layout.make_default_matmul_mxfp4_w_scale_layout(mx_axis=1, num_warps=4)\n w, w_scale = downcast_to_mxfp(w.to(torch.bfloat16), torch.uint8, axis=1)\n w = convert_layout(wrap_torch_tensor(w, dtype=FP4), value_layout)\n w_scale = convert_layout(wrap_torch_tensor(w_scale), scale_layout)\n return w.storage.data, w_scale.storage.data\n\n\n@_quantize_mxfp4_blackwell_op.register_fake\ndef _(x: torch.Tensor) -> Tuple[torch.Tensor, torch.Tensor]:\n lead_dims = x.shape[:-2]\n # NB: we are transposing x tensor (making it column-major).\n m = x.shape[-1]\n k = x.shape[-2]\n assert k % 2 == 0 # 1 uint8 value fits 2 fp4 values.\n\n shape = (*lead_dims, m, k)\n x_fp4 = x.new_empty(shape, dtype=torch.uint8).transpose(-2, -1)\n\n k_mx = (k + 32 - 1) // 32\n B = math.prod(lead_dims)\n K_pad = (k_mx + 8 - 1) // 8 * 8\n N_pad = (m + 128 - 1) // 128 * 128\n mx_shape = (1, B * N_pad // 128, K_pad // 4, 2, 256)\n x_scale = x.new_empty(mx_shape, dtype=torch.uint8)\n\n return x_fp4, x_scale\n\n\n@torch.library.custom_op(\"fireworks::upcast_from_mxfp\", mutates_args=())\ndef _upcast_from_mxfp_op(\n blocks: torch.Tensor,\n scales: torch.Tensor,\n *,\n dtype: torch.dtype,\n axis: int,\n) -> torch.Tensor:\n return upcast_from_mxfp(blocks, scales, target_dtype=dtype, axis=axis)\n\n\n@_upcast_from_mxfp_op.register_fake\ndef _(\n blocks: torch.Tensor,\n scales: torch.Tensor,\n *,\n dtype: torch.dtype,\n axis: int,\n) -> torch.Tensor:\n out_shape = list(blocks.shape)\n rank = len(out_shape)\n resolved_axis = axis if axis >= 0 else axis + rank\n if not (0 <= resolved_axis < rank):\n raise ValueError(f\"Invalid axis {axis} for blocks of rank {rank}\")\n out_shape[resolved_axis] = out_shape[resolved_axis] * 2\n return blocks.new_empty(out"} -{"text": "A pastor from Fayetteville, N.C., said he feels drawn to Aiken to spread his message – “Save America First: Evangelize the World.”\nPastor George Lucas Jr., originally from New York, dedicated 22 years to the military, and now he is dedicating his life to spreading the word of God.\nLucas’ mission all comes down to verse John 3:16 “the flagship verse of the Bible,” Lucas said.\nThe verse as stated in the “New Living Translation of the Bible” reads, “For God loved the world so much that he gave his one and only Son, so that everyone who believes in him will not perish but have eternal life.”\nLucas has traveled from Vermont to Texas to deliver this message that America can be saved through the hands of Jesus Christ and by John 3:16.\nNow, his current mission is to circulate that message throughout South Carolina through putting up billboards and selling T-shirts and other merchandise.\nThe state has a “jaded history” due to instances like those surrounding the Civil War, he said.\n“The Lord has chosen South Carolina (and Aiken) to help spread this message,” he said.\nAiken came on his radar because of his wife, Augusta native Wilhelmenina Jennings-Lucas.\nHer father is from Aiken and has ties with Mount Canaan Church.\n“He’s one of the most dynamite Christian men I’ve ever met,” Lucas said.\nTwo billboards have already been erected – one by the University Parkway Church of God Church and the other by Johnson Motor in Graniteville.\n“I want to spark something in South Carolina,” Lucas said.\nThe 78-year-old has been a U.S. Army veteran for nearly 22 years and an ordained minister for more than 40 years. He said that when he heard the John 3:16 verse on Feb. 25, 1968, something in him changed.\nThe next day, he asked God to “save his soul.”\n“(This verse) became the most important verse in my whole life,” he said.\nThe day he got saved, he made a promise.\n“If the Lord ever gave me an opportunity to go to Washington, D.C., and lift up his name, I would do so,” he vowed.\nThat opportunity happened in 1987. At the time, he was preaching at the Race Road Baptist Church in Farmville, Virginia. A woman came down to speak for the church’s Woman’s Day service. Little did Lucas know that this woman was connected to the White House.\nA few days after she presented, she called Lucas to ask him to come to the White House.\n“I thought she was joking,” Lucas said.\nOn Sept. 30. 1987, Lucas sat in the Old Executive Office Building auditorium. Then-President Ronald Reagan was speaking on behalf of Judge Robert Bork and his nomination to the Supreme Court, according to the Richmond Times-Dispatch newspaper in 1987.\nThe day might have been for Bork, but it was Lucas who left an impression.\n“I told President Ronald Reagan that we needed revival in our country and that brought on pandemonium at the White House,” Lucas said.\nBork even later confessed to Lucas that “when he raised his hand (to speak), he scared the (heck) out of Reagan.”\nHowever, Lucas won over Reagan and his staff.\n“He was grinning like a Chester cat,” Lucas said.\nThe preacher was even asked to come up in front of the room to give “a brief, emotional speech,” the Richmond Times-Dispatch reported.\nThis moment lit his “Save America First” cause, Lucas said.\nHowever, the spark died down for many years. It reignited in 2009 when a man named Jim Cooke came into his life.\nCooke was the program director at the WFNC-AM radio station in Fayetteville, N.C. Lucas was 75 with his sights set on the “old soldiers’ home” in Washington, D.C. Something in him, though, caused him to call Cooke.\nFrom that phone call, Lucas appeared on the station on a monthly basis.\n“The Lord kept me there, of course,” he said.\nIn 2010, the American Atheists organization posted a billboard in New Jersey that sent out an anti-Christmas message.\n“You KNOW it’s a myth; This Season, Celebrate REASON!” it read according to the April 2011 Boiling Springs magazine.\nDavid Silverman, the organization’s president, said the spot was perfect because commuters were going to see it on their way to do Christmas shopping in New York City.\nSilverman and his group’s message fueled Lucas’ fire.\n“None was more outraged than 77-year-old pastor Lucas … (who) could not and would simply stand by and do nothing,” the article stated.\nOn Jan. 14, 2011, Lucas’ first billboard went up on I-95 in Fayetteville.\nTo fund these billboards, Lucas sells white T-shirts. The shirts sport either a picture of the Earth in the center or just the “Save America First” organization’s logo written across the center.\nHe also sells buttons, hats and plates, according to his website.\n“I like to be called a patriot, because I love my country,” he said. “I believe in America.”\nLucas was born in Manhattan, the oldest of 10 children. He went on to fight in the Korean and Vietnam wars, earning a Bronze Star on June 3, 1970.\nIn addition to his ministry work, he has at least 40 years of experience in broadcasting.\nAbout four years ago, he married Wilhelmenina.\nAt first, Lucas was skeptical of meeting someone so late in life, but, when they met, his mind was changed.\nOn Christmas Day, he asked her 91-year-old father for her hand in marriage. Now the two travel to spread the John 3:16 message.\nFor more information, visit www.saf-etw.com or 910-778-3683.\nStaff Photo by Stephanie Turner Pastor George Lucas Jr., with his wife Wilhelmenina Jennings-Lucas represent Lucas’ “Save America First” campaign.×\nSubmitted Photo Pastor George Lucas Jr. stands by one of his earlier billboards.×\nSubmitted Photo Pastor George Lucas Jr. speaking at the White House on Sept. 30, 1987.×"} -{"text": "In 2010, Samsung was the first to launch a full range of SMART TVs in the region. In 2011, Samsung introduced a new era of home entertainment with the new D series of SMART TVs, the ultimate entertainment technology. Despite stiff competition in this segment, where outstanding and superbly-designed products make a huge impact on consumers’ purchasing decisions, Samsung was able to firmly establish its leadership. According to industry reports, Samsung secured a whopping 45 percent market share by the end of Q3 making Samsung the brand of choice for the Gulf.\nSamsung’s outstanding performance in the region and the fact that Samsung Smart TVs offer a range of over 1000 applications through their dedicated apps store, “Samsung Apps” gives companies throughout all industries an incentive to develop, launch and sustain an application. So now the company knows it wants an application, but where does it start?\nTo begin with, the company needs to ask itself what kind of application it wants to develop and what the purpose is for developing the app. Will the application serve a business purpose? Will it be an addition to the company’s social media platforms? Or will the application interact with its users? Samsung techies advise that to develop a successful app, also dubbed ‘killer app’, companies must look at three main points: innovative idea; works on the latest technology; and serves a purpose. Applications such as Angry Birds is a live example of a killer app where the game notches up 200 million minutes of play time every day, which is close to the number of minutes viewers in the United States spend watching the average prime-time television program.\n“Producing applications that run on TVs or handsets is a great way to interact with your consumers. People nowadays are truly living a fast-paced lifestyle and applications that serve consumers are guaranteed to serve businesses as well. Developing apps will be a must for organizations to sustain their presence in the near future,” said Vinod Nair, General Manager, CTV Business, Samsung Gulf Electronics. “Samsung products are designed to make consumers’ lives ‘smarter’. With applications running on a user’s TV, he or she will be able to enjoy traditional programming as well as check off a few tasks from their lists all from the comfort of their couch. ”\nNow that the company has decided to launch an app, it’ll need to know what content the application will provide for its users. Content material is a crucial part of sustaining an application. The content needs to be relevant to users; provide interactive features; and offer an experience that can’t be found with traditional outlets.\nRecently, Samsung partnered with major government and private companies to launch locally tailored applications targeting existing users and potential new ones. The Dubai Electricity and Water Authority (DEWA), with Samsung, developed the region’s first business-solution application. DEWA’s application allows users to check their bills and access DEWA’s range of services. Samsung also partnered with the Arabian Radio Network (ARN) and Dubai Media Incorporated (DMI) to stream all of their radio and television channels for all Samsung Smart TV users to enjoy. “Video-on-demand has been the most popular reason for companies to develop Smart TV applications. Consumer behavior and attitudes are shifting, with viewers increasingly expecting to access content wherever and whenever they want. We believe that in the future every viewer will have access to 3D content in the comfort of their own living room through a SMART TV.” Nair added.\nOnce the app is up and running, the company gets to relax and savor the final product. You can’t get too lazy though. Applications need to be sustained in order to keep the user interested in the application. At this time, companies need to ensure that they have content lined up and a calendar highlighting launches of new additions and features to the application. Just in case you feel a little overwhelmed, rest assured that the great people at Samsung will be on hand to share their expertise and provide support."} -{"text": "_shape, dtype=dtype, device=\"meta\")\n\n\ndef _manifest_if_uninitialized(w: torch.Tensor) -> torch.Tensor:\n \"\"\"Manifest only fake-weight (uninitialized) PLLTs before quantization.\n\n For fake weights, the PLLT dispatch wraps quantize results in a derived PLLT\n that ``manifest_uninitialized`` later replaces with row-major zeros, losing\n the column-major layout the matmul kernel requires. Manifesting here forces\n the quantize op to run on concrete zeros and produce correct strides.\n\n Real-weight PLLTs are left untouched — they flow through the normal manifest\n DAG which handles parallel I/O efficiently.\n \"\"\"\n if not isinstance(w, Manifestable):\n return w\n loaders = collect_loaders(w)\n if loaders and all(isinstance(l, UninitializedTensorLoader) for l in loaders):\n return w.manifest()\n return w\n\n\ndef quantize_mxfp4(w):\n w = _manifest_if_uninitialized(w)\n if is_blackwell_and_higher():\n x_fp4, x_scale = torch.ops.fireworks.quantize_mxfp4_blackwell(w)\n return x_fp4, x_scale\n elif is_hopper():\n x_fp4, x_scale = torch.ops.fireworks.quantize_mxfp4_hopper(w)\n return x_fp4, x_scale\n else:\n raise ValueError(f\"Unsupported compute capability: {get_compute_capability()}\")\n\n\ndef quantize_mxfp8(w: torch.Tensor, weight_dtype: torch.dtype = torch.float8_e4m3fn):\n \"\"\"\n Quantize weights to MXFP8 with Strided layouts for values and scales.\n\n By default, MXFP8 uses e4m3fn for weights.\n \"\"\"\n w = _manifest_if_uninitialized(w)\n return torch.ops.fireworks.quantize_mxfp8(w, weight_dtype)\n\n\n@torch.library.custom_op(\"fireworks::quantize_mxfp8\", mutates_args=())\ndef _quantize_mxfp8_op(\n w: torch.Tensor, weight_dtype: torch.dtype = torch.float8_e4m3fn\n) -> Tuple[torch.Tensor, torch.Tensor]:\n w_q, w_scale = downcast_to_mxfp(w.to(torch.bfloat16), weight_dtype, axis=1)\n w_q = convert_layout(wrap_torch_tensor(w_q, dtype=weight_dtype), StridedLayout(-2))\n w_scale = convert_layout(wrap_torch_tensor(w_scale), StridedLayout(-2))\n return w_q.storage.data, w_scale.storage.data\n\n\n@_quantize_mxfp8_op.register_fake\ndef _(x: torch.Tensor, weight_dtype: torch.dtype = torch.float8_e4m3fn) -> Tuple[torch.Tensor, torch.Tensor]:\n lead_dims = x.shape[:-2]\n k = x.shape[-2]\n n = x.shape[-1]\n x_fp8 = x.new_empty((*lead_dims, k, n), dtype=weight_dtype)\n x_scale_shape = (*lead_dims, triton.cdiv(k, MXFP_BLOCK_SIZE.value), n)\n x_scale = x.new_empty(x_scale_shape, dtype=torch.uint8)\n return x_fp8, x_scale\n\n\ndef to_triton_tensors(\n x_fp4: torch.Tensor, x_scale: torch.Tensor, shape: torch.Size\n) -> Tuple[TritonTensor, TritonTensor]:\n if is_blackwell_and_higher():\n x_fp4_tensor = TritonTensor(TritonStorage(x_fp4, BlackwellMXValueLayout()), FP4, shape=shape)\n x_scale_shape = (*shape[:-2], triton.cdiv(shape[-2], MXFP_BLOCK_SIZE.value), shape[-1])\n x_scale_tensor = TritonTensor(\n TritonStorage(x_scale, BlackwellMXScaleLayout()), torch_dtype_to_dtype(x_scale.dtype), shape=x_scale_shape\n )\n elif is_hopper():\n x_fp4_tensor = TritonTensor(\n TritonStorage(x_fp4, HopperMXValueLayout(mx_axis=-2, mma_version=3)), FP4, shape=shape\n )\n x_scale_shape = (*shape[:-2], (shape[-2] + 32 - 1) // 32, shape[-1])\n x_scale_tensor = TritonTensor(\n TritonStorage(x_scale, HopperMXScaleLayout(mx_axis=-2, num_warps=8)),\n torch_dtype_to_dtype(x_scale.dtype),\n shape=x_scale_shape,\n )\n else:\n raise ValueError(f\"Unsupported compute capability: {get_compute_capability()}\")\n return x_fp4_tensor, x_scale_tensor\n\n\ndef to_triton_tensors_fp8(\n x_fp8: torch.Tensor, x_scale: torch.Tensor, shape: torch.Size, weight_dtype: torch.dtype = torch.float8_e4m3fn\n) -> Tuple[TritonTensor, TritonTensor]:\n if is_blackwell_and_higher():\n value_layout = BlackwellMXValueLayout()\n value_transform = value_layout.make_transformation(list(shape), False)\n x_fp8_tensor = TritonTensor(\n TritonStorage(value_transform.swizzle_data(x_fp8), value_layout),\n torch_dtype_to_dtype(weight_dtype),\n shape=shape,\n )\n x_scale_shape = (*shape[:-2], triton.cdiv(shape[-2], MXFP_BLOCK_SIZE.value), shape[-1])\n scale_layout = BlackwellMXScaleLayout()\n scale_transform = scale_layout.make_transformation(list(x_scale_shape), False)\n x_scale_tensor = TritonTensor(\n TritonStorage(scale_transform.swizzle_data(x_scale), scale_layout),\n torch_dtype_to_dtype(x_scale.dtype),\n shape=x_scale_shape,\n )\n else:\n x_fp8_tensor = wrap_torch_tensor(x_fp8, dtype=weight_dtype)\n x_fp8_tensor = convert_layout(x_fp8_tensor, StridedLayout(-2))\n x_scale_tensor = wrap_torch_tensor(x_scale)\n x_scale_tensor = convert_layout(x_scale_tensor, StridedLayout(-2))\n return x_fp8_tensor, x_scale_tensor\n\n\ndef swiglu(x: torch.Tensor, alpha: "} -{"text": "The Animal Page\n| Home Page | Animal Rights |\nHollywood Hooves and Darlynn's Darlins\nBy: Ron Caldwell\n(This story was originally published in the first edition of Darlins Ledger)\nI started my day by arriving at the Sunrise house to pick up Hollywood. He is a black pot with long hair and overweight. I guessed his weight around 190.\nWhen I first went into the back yard the husband said to not get to close. I knelt down in front of Hollywood and said “Hi Hollywood, what a handsome looking boy.” He was nervous but gave me a welcome grunt. I rubbed his nose and his ears went back to normal. The wife said I must be some kind of “pig talker”. I said I just know pigs return love when given love.\nHe backed into the Varikennel after a fight over having a bucket placed over his head. Thanks Lana for all your instructions. It worked great. We loaded Hollywood and off I went. The trip was around 2 ˝ hours.\nWhen I arrived all I saw was Pigs. I was in heaven. I was greeted by Darlynn and Butch at the gate. We chatted a bit and I was given the full tour with stories of all the rescues. Several pigs greeted me with that wonderful oofing sound of welcome. I got down to pet them and talk to them. (to enlarge the photo of the sanctuary side yard, click on the photo or link)\nIn the background was the jealous sound of a variety of squeals and oofs. Such music to this piggy papa. When we got to the 2 big girls, Lavern and Shirley, we went into their pen and I got the story on their rescue. As I was engrossed in the story Lavern decided to put her wet muddy snout in my crotch. Then she decided to push me into her mud hole to play. Well I stepped aside and was listening to another story when Shirley decided to put her mouth gently around my bare calf and gum me a welcome to her abode.\nI have to say that Darlynn and Butch have done a wonderful job of caring for these rescues. They are wonderful, kind people. The world should have more of these hard working, loving friends. I have decided to try and visit them as much as possible and help out around the ranch. As I said my goodbyes and was going over the visit in my mind I looked down at my shorts and legs and saw the snouties on my shorts and kisses on my legs and tears came to my eyes as I knew God had blessed me with the love of all those wonderful creatures.\nA Weekend For Life\nLast weekend I went to spend a couple of days at Darlynn and Butch's Sanctuary. It was Friday morning about 8:30 AM when I arrived and I was ready to work. I was greeted by them both and received some welcome muddy snouts on my socks, shoes and legs.\nAfter changing into my work pants we went to see Hollywood. I climbed into his pen and gave him a hug and kiss. We decided to cut his tusks since they were penetrating his lip. Butch held him down and I held his lip while Darlynn used that wire cutter and \"ping\" off they came. Hollywood was such a good pig. I gave him more hugs and belly rubs and we began the weekend cleanup. (to enlarge the photo of Ron building Hollywood's pen, click on the photo or link)\nI had the honors of shoveling all that wonderful pig berries. I can relate to the word pig berry as I have only 1 pig. With over 150 pigs of varying variety \"berry\" is not in that category. After cleaning the 2 acres it was feeding and watering time. I was the waterer. I got to hear the most wonderful sounds of more than 150 pigs sing those tunes of \"BRING ME MY DINNER FIRST\". I got to visit with all of them as I filled the bowls and pools.\nThe day ended around 8PM and I tell you I was tired. After a shower and a wonderful dinner from Darlynn off to bed I went. Day 2 started with increasing squeals from the inside pigs asking for breakfast around 5:30 AM. Usually a person is awakened by the smell of coffee. This morning it was the sound and smell of air popped corn. It was a drizzly rainy day but Butch performed the daily task of feeding the herd. I spent the day reloading and repairing problems on Darlynn's computer so she could get her web site in shape.\nThe farm relies on their paychecks alone and with over 150 mouths to feed extra donations would be a great relief. Sunday morning came fast and the routine played again.\nBefore I left I helped Butch take down and move a bedding area to the front side of the porch under a big Oak tree because the pigs that shared it wanted to be closer to the house and them. I have never met such warm, giving people as I met in Darlynn and Butch. The love they have for all their animals is shown in the love returned by the oinks,ah ah, grunts, flop-overs, baaahs (Goats), Quaacks (Ducks), Puurrrs (Kittens), and loving eyes from all of them. (to enlarge the photo of Hollywood taking a nap, click on the photo or link)\nI drove off after brief goodbyes and well wishes (and of course a donation). As I was driving down the road I vision all the faces I met and talked to and knew that Rescue was very hard work. It takes a special person(s) who gives up what we all consider a normal life to dedicate their love and devotion to bringing love, caring and healing to unwanted, abused and abandoned animals. I falter when I think of how I would love to start a refuge for animals. Their devotion is unquestionable. My time spent in the daily routine caring for these loving animals has taught me that all sanctuaries have my greatest respect.\nGOD BLESS YOU ALL.\nWhat are YOU eating today?\nSave an animals' life. Don't eat them.\nPlease Visit My Site\n| Animal Stories |\nYour comments are welcome:\n| Home Page | Animal Issues | Archive | Art and Photos | Articles | Bible | Books | Church and Religion | Discussions | Health | Humor | Letters | Links | Poetry and Stories | Quotations | Recipes | What's New? |\nThank you for visiting all-creatures.org."} -{"text": "Coincidentally or not, the reality-show commercial led directly into a summary of the day’s sports news, which concerned the adventures of the pitcher Roger Clemens, accused of using performance-enhancing substances, and the football coach Bill Belichick, accused of videotaping an opponent’s practice session in violation of National Football League policy. Both men vehemently deny the accusations. If they are innocent, they should, of course, pursue every avenue to prove it. But you almost have to wonder why they would bother.\nThere is a pretty good case to be made that fair play always has been more of an ideal than a working principle in American society. From Standard Oil to Microsoft, American companies have been accused of dispensing with fairness in their will to win greater riches. Politicians from both parties, running for offices grand and local, have been known to cross the boundaries of fairness to win an election or get a piece of legislation passed. I’m told, and I find this hard to believe, that people in the publishing business have been known to fudge circulation figures in pursuit of greater advertising revenue.\nIt’s not about playing fair. It’s about winning.\nWhen it comes to our games, however, we dispense with Machiavelli and instead embrace our inner Jeremiah, demanding purity and calling out those who fall short of our ideals. We believe in what sports bureaucrats call the “integrity of the game,” that is, the charming notion that the playing field is level and pure for all, and that the games are played within a recognized set of rules that are the same for every competitor.\nWhat a quaint notion! It seems positively Victorian, at odds with our distinctly un-Victorian attitude toward anything that smacks of self-restraint in pursuit of indulgence. As the Outback Steakhouse commercial says, “No Rules. Just Right.” I’ve often wondered precisely what rules Outback has dispensed with in order to lure steak-loving anarchists to its dining rooms. Surely the rule that requires payment after consumption remains in place, and one suspects that the use of knives and forks is encouraged if not actually required.\nIn any case, no serious athletic organization could ever get away with the Outback ethic. Rules are the essence of sports. Break them on the field, and you are penalized. Break them off the field, and you are liable to be denied employment or, in the case of athletes like Pete Rose and Joe Jackson, you are barred from the highest accolade your sport can confer, a place in the Hall of Fame.\nSports fans may be this country’s last innocents. Political junkies tend to be among the most cynical of humans, for they know how the legislative and electoral sausage is made. Few consumers are surprised to learn that large corporations occasionally cut legal and moral corners to make a few extra dollars. But sports fans are eternally wide-eyed. They passionately believe in the meritocratic purity of the baseball diamond, the hockey rink, the gridiron, the boxing ring.\nOn second thought, skip the boxing ring. Nobody is that innocent.\nThat’s why athletes find it so difficult to admit that they’ve rigged the competition, that they have not played fairly in pursuit of victory. A reality show like “Survivor” can boost its ratings by highlighting the ruthlessness of its contestants because, at the end of the day, it’s just an entertainment vehicle. The shows are not about reality, no matter that they are billed as precisely that.\nSports, however, are real, at least in our culture. The men and women who perform at the highest levels are admired for what they achieve on a playing field governed by rules fairly applied to all competitors. The victor supposedly earns his or her laurels not by manipulation, but by performance. When that proves false, when rules are broken in pursuit of victory, glory is rescinded and public affection withheld.\nIt seems, however, that only athletes are held to these high standards. Few people condemned Bill Gates when Microsoft was fined for violating fair trade practices in Europe. Presidential candidates rarely suffer when their campaigns are found to have violated election laws—a fairly frequent occurrence. But if an athlete or coach bends a rule, he or she not only faces the public’s censure, but may actually go to prison. Marion Jones, the disgraced sprinter, denied taking steroids for years, but when she finally admitted that yes, she had taken drugs to improve her performance, she was stripped of her Olympic medals and dispatched to prison for perjury. No rules, just right? Not in the world of sports.\nAnd that, I believe, is the beauty of the games we play or, in the vast majority of cases, watch. That’s why the ongoing Congressional investigations of both baseball and football are important, because millions of sports fans really do believe in the integrity of the games they watch and the teams they follow. They may no longer associate integrity with public life; they may question the ethics of Wall Street; but they expect fairness and equity on the field.\nA quaint notion, for sure. But an admirable one as well."} -{"text": "float = 1.702, limit: float = 7.0, interleaved: bool = True) -> torch.Tensor:\n if interleaved:\n x_glu, x_linear = x[..., ::2], x[..., 1::2]\n else:\n x_glu, x_linear = torch.chunk(x, 2, dim=-1)\n\n x_glu = x_glu.clamp(min=None, max=limit)\n x_linear = x_linear.clamp(min=-limit, max=limit)\n out_glu = x_glu * torch.sigmoid(alpha * x_glu)\n return out_glu * (x_linear + 1)\n\n\ndef silu(x: torch.Tensor, interleaved: bool = True) -> torch.Tensor:\n if interleaved:\n x_glu, x_linear = x[..., ::2], x[..., 1::2]\n else:\n x_glu, x_linear = torch.chunk(x, 2, dim=-1)\n return x_glu * torch.sigmoid(x_linear)\n\n\ndef _local_ep_r(\n expert_scores: torch.Tensor,\n expert_indices: torch.Tensor,\n n_expts_tot: int,\n ep_rank: int = 0,\n ep_world_size: int = 1,\n) -> tuple[object, torch.Tensor, torch.Tensor, torch.Tensor]:\n\n # Adapted from https://github.com/triton-lang/triton/blob/7ec17cd37730d22c5eb24bc5305b8ee0a8ca3b64/python/triton_kernels/bench/distributed.py#L20\n\n # Ensure expected dtypes/layout\n expt_indx = expert_indices.to(torch.int32).contiguous()\n expt_scal = expert_scores.contiguous()\n\n assert n_expts_tot % max(ep_world_size, 1) == 0, \"num_experts must be divisible by ep_world_size\"\n chunk_size = n_expts_tot // max(ep_world_size, 1)\n start = ep_rank * chunk_size\n end = start + chunk_size\n sentinel = chunk_size + 1 # allocate one extra word to avoid overflow in bit packing\n\n if ep_world_size > 1:\n local_mask = (expt_indx >= start) & (expt_indx < end)\n expt_indx = (expt_indx - start).masked_fill(~local_mask, sentinel)\n expt_scal = expt_scal.masked_fill(~local_mask, 0)\n\n # Build bitmatrix of token->local expert selections\n n_rows = expt_indx.size(0)\n n_expts_act = expert_scores.shape[-1]\n BLOCK_SIZE_M = 512\n BLOCK_SIZE_K = 32\n n_cols = triton.cdiv(sentinel, BLOCK_SIZE_K)\n bitmatrix_tensor = torch.zeros((n_rows, n_cols), dtype=torch.uint32, device=expt_indx.device)\n grid = (triton.cdiv(n_rows, BLOCK_SIZE_M),)\n\n pack_bitmatrix[grid](\n bitmatrix_tensor,\n expt_indx,\n n_rows,\n n_cols,\n n_expts_act,\n BLOCK_SIZE_M=BLOCK_SIZE_M,\n BLOCK_SIZE_K=BLOCK_SIZE_K,\n sentinel=sentinel,\n )\n\n # Clear bits beyond local expert cutoff and compact selections\n _routing_clear_bitmatrix[(n_rows,)](\n bitmatrix_tensor,\n bitmatrix_tensor.stride(0),\n bitmatrix_tensor.stride(1),\n bitmatrix_tensor.shape[1],\n chunk_size,\n BLOCK_N=512,\n )\n\n bitmatrix_shape = [n_rows, triton.cdiv(chunk_size, BLOCK_SIZE_K) * 32] if chunk_size > 0 else [n_rows, 0]\n bitmatrix_shape_max = [n_rows, None]\n bitmatrix = wrap_torch_tensor(bitmatrix_tensor, dtype=BIT, shape=bitmatrix_shape, shape_max=bitmatrix_shape_max)\n\n if chunk_size > 0:\n expt_scal, expt_indx = compaction(expt_scal, expt_indx, bitmatrix)\n bitmatrix.shape[-1] = chunk_size\n\n # Build routing structures using compacted selections and mask metadata\n ragged, gather_indx, scatter_indx, gate_scal = _routing_from_bitmatrix(\n bitmatrix, expt_scal, expt_indx, chunk_size, n_expts_act\n )\n return ragged, gather_indx, scatter_indx, gate_scal\n\n\ndef legacy_routing(logits, n_expts_act, apply_softmax=True, sm_first=False, expt_indx=None, n_rows=None):\n if sm_first:\n logits = torch.softmax(logits, dim=-1)\n apply_softmax = False\n sparse = triton_kernels_topk(logits, n_expts_act, apply_softmax=apply_softmax, y_indx=expt_indx, n_rows=n_rows)\n metadata = sparse.mask_metadata\n col_sorted = metadata.col_sorted_indx\n ragged = make_ragged_tensor_metadata(metadata.col_sum, col_sorted.shape[0])\n gather_indx = torch.div(col_sorted, n_expts_act, rounding_mode=\"trunc\")\n scatter_indx = col_sorted\n gate_scal = sparse.vals.flatten()[col_sorted]\n return ragged, gather_indx, scatter_indx, gate_scal\n\n\ndef moe(\n x,\n wg,\n w1,\n w1_mx,\n w2,\n w2_mx,\n bg,\n b1,\n b2,\n experts_per_token=4,\n fused_act=True,\n ep_rank: int = 0,\n ep_world_size: int = 1,\n score_processor: Callable[[torch.Tensor], Tuple[torch.Tensor, torch.Tensor]] = None,\n score_processor_input_ids: torch.Tensor | None = None,\n activation=\"swiglu\",\n):\n if x.numel() == 0:\n return x\n assert len(x.shape) == 2\n\n pcg = PrecisionConfig(flex_ctx=FlexCtx(rhs_data=InFlexData()))\n logits = matmul(x, wg, bg, precision_config=pcg)\n\n if score_processor is None:\n score_processor = TopkScoreProcessor(experts_per_token, normalize_topk=True)\n\n expert_scores, expert_indices = call_score_processor(\n score_processor,\n logits,\n input_ids=score_processor_input_ids,\n )\n n_expts_tot = int(logits.shape[-1])\n ragged, gather_indx, scatter_indx, gate_scal = _local_ep_r(\n expert_scores, expert_indices, n_expts_tot, ep_rank=ep_rank, ep_world_size=ep_world_size\n )\n\n is_act_fp8 = is_bl"} -{"text": "Complaints Alleging Non-Compliance with the Standards\nRules 42-48 of the ABA Rules of Procedure for Approval of Law Schools governs the filing of complaints against law schools. The complaint process is designed to bring to the attention of the Council any facts and allegations that may indicate that an approved law school is operating its program of legal education out of compliance with the ABA Standards for the Approval of Law Schools. This process is not available to serve as a mediating or dispute-resolving process for a person with complaints about the policies or actions of an approved law school. The Council will not intervene with an approved law school on behalf of an individual with a complaint against or concern regarding action taken by a law school that adversely affects that individual. The outcome of this process will not be the ordering of any individual relief for any person or requiring specific action by a law school with respect to any individual.\nA complaint must meet the following requirements:\n(1) Except in extraordinary circumstances, the complaint must be filed within one calendar year of the facts on which the allegation is based. Pursuit of other remedies does not toll this one calendar year limit.\n(2) Complaints must be in writing using the form \"Complaint Against an ABA-Approved Law School\" and must be signed. The form can be downloaded here: Complaint Form.\n(3) As outlined in the Complaint Form, the complaint must include the following information:\n(i) A clear and concise description of the nature of the complaint and any evidence upon which the allegation is based, with relevant supporting documentation. The description and supporting evidence should include relevant facts that support the allegation that the law school is out of compliance with the Standards referenced in the complaint.\n(ii) The section(s) of the Standards alleged to have been violated and the time frame in which the lack of compliance is alleged to have occurred.\n(iii) A description of the steps taken to exhaust the law school's grievance process and the actions taken by the law school in response to the complaint as a result of prescribed procedures.\n(iv) Disclosure of any other channels the complainant is pursuing, including legal action.\n(v) A release authorizing the Consultant's Office to send a copy of the complaint to the dean of the law school.\nProcess upon receipt of a complaint\nThe Consultant or designee shall determine whether the complaint alleges facts that raise issues relating to an approved law school’s compliance with the Standards. This determination shall be made within six weeks of receiving the complaint. The Consultant or designee may request additional information from the complainant if appropriate. If the Consultant or designee concludes that the complaint does not raise issues relating to an approved school’s compliance with the Standards, the matter will be closed.\nIf a law school that is the subject of a complaint is due to receive a regularly scheduled sabbatical site visit within a reasonable amount of time after the complaint is received, usually within one year, the complaint may be handled as part of the sabbatical site visit.\nIf the Consultant or designee determines that the complaint may raise possible compliance issues, the complaint shall be sent to the school and a response requested. The Consultant or designee ordinarily will request the dean of the school to respond within 30 days.\nIf the response from the school establishes that the school is not out of compliance with respect to the matters raised in the complaint, the Consultant or designee will close the matter.\nIf the school’s response does not establish that it is operating in compliance with the Standards on the matters raised by the complaint, the Consultant or designee, with the concurrence of the chairperson of the Accreditation Committee, may appoint a fact-finder to visit the school to investigate the issues raised by the complaint and the school’s response. The complaint, the school's response, and fact-finder’s report, if any, shall be referred to the Accreditation Committee and considered in the same manner as complaints and reviews that fall under Rule 13(a) of the Rules of Procedure.\nThe person making the complaint will be notified promptly regarding the conclusion of the matter. The person filing the complaint will not be provided with a copy of the school’s response, if any, and will not receive any further report on the matter.\nThere is no appeal to the Council or the Accreditation Committee, or elsewhere in the American Bar Association, in connection with a conclusion by the Consultant or designee that a complaint does not raise issues under the Standards.\nComplaints should be sent to:\nOffice of the Consultant on Legal Education, American Bar Association, 321 N. Clark Street, 21st Floor, Chicago, IL 60654.\nLearn more about the Accreditation Process or the Standards and Rules of Procedure for Approval of Law Schools"} -{"text": "Miami Herald - Drama Queen Blog\nA classic season\nPalm Beach Dramaworks has just spilled the details of its 2008-2009 season, and three of the four plays are by theatrical giants.\nOrlando Sentinel - Attention Must Be Paid Blog\nOn conversations between theaters and audiences\nChad Jones' Theater Dogs Blog\nChicago Tribune - Theater Loop Blog\n'First Breeze of Summer': life, and no regrets, in the bones\n'A Steady Rain' to end its fall\nBroadway Boys Perform Show Tunes With Pop Twist\nLeslie Uggams stars in `First Breeze of Summer'\nPHOTO CALL: Chita Rivera and George Hearn Pay D.C. a Visit\nBlum Is Roger in Broadway's Grease\nBroadway Grosses: May 19-25\nGypsy's LuPone, Benanti and Gaines to Perform on \"Good Morning America\"\nCelebutant: Don't You Know Who I Think I Am? to Play Club Café in Boston\nBroadway Belter Sengbloh to Makes a Splash June 9\nONSTAGE & BACKSTAGE: A Tale of Two Seths\nEpstein, Richards, Feldman and More to Join Riedel for Tony Talk 2008\nAcosta, Canavan, Grant, Gottesman and Puzzo to Star in LAB's Penalties & Interest\nCasting Announced for Other Side of Newark at NJPAC\nLeague of Professional Theatre Women to Present Awards June 12 at Sardi's\nDilly Joins Streep, Adams and Tucci in \"Julie & Julia\" Film\nStewart, Downie and Ford-Davies Will Join Tennant in RSC's Hamlet\nFreeman to Reprise I'm Every Woman at the Cutting Room June 13\nAuberjonois Is Imaginary Invalid in DC June 10-July 27; Baxter Directs\nDarragh, Narciso and Weixler Will Play It Safe Off-Broadway\nSydney Pollack, Hollywood Film Director, Is Dead at 73\nLaBute's Fat Pig, with Marshall, Page and Webb, Opens in London May 27\nAttorney for the Damned Will Play Open-Ended Run at the Kraine\nWong, Warren and Zbornik Will Join Adding Machine's Blair at the Zipper\nNew European Directive Outlaws Misquotes of Critics\nReview: EST Marathon 2008 Series B\nStrong entries from Neil LaBute, David Zellnik, Taylor Mac, and Anne Washburn highlight this solid line-up of one-acts.\nReview: A Chorus Line\nThe legendary musical's national tour is likely to delight both old fans and new audiences.\nFull Casting Announced for Intiman's Streetcar and Little Dog Laughed\nMathison and Shepherd to Co-Host Daytime Emmy Awards; Hansis, Kerwin, Kitt, Tartaglia Among Nominees\nJonathan Kent to Stage Santa Fe Opera's Marriage of Figaro\nFull Cast, Creative Team Set for Prince Music Theater's Jamaica\nCanavan, Grant, Puzzo, et al. Cast in LAByrinth's Penalties & Interest\nPassing Strange Recording Gets iTunes Release on May 27\nDownie, Stewart, Tennant, et al. Set for RSC's Hamlet\nFIRST PERSON: David Javerbaum: Dear Tony Voters...\nBroadway Grosses: In the Heights Still Climbing; Macbeth Takes Final Bow\nThose 13 Tony nominations continue to help the grosses of In the Heights, which climbed above 91% of capacity at the Richard Rodgers Theatre, bringing in $80,000+ over the previous week in the process. Of course, awards aren't everything, as the folks at Cat on a Hot Tin Roof, which jumped\nFierce! Project Runway's Christian Siriano Will Design Whoopi's Tony Gown\nProject Runway winner Christian Siriano has his next star-studded assignment: dressing Whoopi Goldberg for her hosting duties at the 2008 Tony Awards. The 22-year-old wunderkind designer showed off sample sketches on a Whoopi paper doll during the May 27 broadcast of ABC's The View.\nReview: 'The Internationalist' at Studio Theatre, DC\nReview: 'The Milk Train Doesn't Stop Here Anymore' at Hartford Stage\nReview: 'Jersey Boys' in Cincinnati\nThe Siegel Column: Musical Revivals and Encores!\nReview: 'Prisoner of the Crown'\nReview: 'The Hiding Place'\nReview: 'Taking Steps\nReview: 'The Hiding Place'\nReview: Two Unrelated Plays by David Mamet\nThe Times UK\nReview: Fat Pig, Trafalgar Studios, London\nBloated prejudice and everyday cruelties exposed in a touching portrait in Neil LaBute's latest offering\nReview: Lifecoach, Trafalgar Studios, London\nAmy Darcy is wonderfully watchable as she turns from tremulous klutz into confident and capable young woman\nPatricia Routledge Dons Crown, Joins WOS Network\nNew European Directive Outlaws Critical Misquotes\nFull Casting Announced for Tennant’s RSC Hamlet\nThree Oliver! Boy Stars Confirmed, Nancy Finalists\nLondon Theatre Guide\nBogosian’s SubUrbia staged in Southwark\nEric Bogosian’s gritty drama of small town dreams, SubUrbia, is to be staged by LOST Theatre at the Southwark Playhouse in June.\nRivers celebrates birthday with London show\nAmerican comedy icon Joan Rivers will celebrate her 75th birthday by making her London acting debut in a self-penned autobiographical play in September.\nNational revives War Horse with Sunday schedule\nWar Horse, the National Theatre’s hit family show of Christmas 2007, is to be revived in autumn 2008, when it will become the first show at the National to feature Sunday performances.\n|« 5/28/08 AM Clips - UK||ATW Review: 'Port Authority' »|"} -{"text": "ackwell_and_higher()\n if is_act_fp8:\n constraints = {\n \"is_persistent\": True,\n }\n else:\n constraints = {\"is_persistent\": target_info.has_native_mxfp()}\n\n with opt_flags_scope(constraints):\n # up_gate\n pc1 = PrecisionConfig(b_mx_scale=w1_mx, flex_ctx=FlexCtx(rhs_data=InFlexData()))\n pc2 = PrecisionConfig(b_mx_scale=w2_mx, flex_ctx=FlexCtx(rhs_data=InFlexData()))\n if is_act_fp8:\n x = x.to(torch.float8_e5m2)\n\n if fused_act:\n if is_act_fp8:\n pc1.out_dtype = torch.float8_e5m2\n else:\n pc1.out_dtype = torch.bfloat16\n pc2.out_dtype = torch.bfloat16\n if activation == \"swiglu\":\n act = FusedActivation(\n FnSpecs(\"swiglu\", triton_kernels.swiglu.swiglu_fn, (\"alpha\", \"limit\"), reduction_n=2), (1.702, 7.0)\n )\n else:\n act = FusedActivation(FnSpecs(\"silu\", _silumul_fn, (\"alpha\", \"limit\"), reduction_n=2), (1, None))\n x = matmul(\n x,\n w1,\n b1,\n a_ragged_metadata=ragged,\n gather_indx=gather_indx,\n precision_config=pc1,\n fused_activation=act,\n )\n else:\n pc1.out_dtype = torch.bfloat16\n pc2.out_dtype = torch.bfloat16\n\n x = matmul(x, w1, b1, a_ragged_metadata=ragged, gather_indx=gather_indx, precision_config=pc1)\n if activation == \"swiglu\":\n x = swiglu(x, interleaved=True)\n elif activation == \"silu\":\n x = silu(x, interleaved=True)\n else:\n raise ValueError(f\"Unsupported activation: {activation}\")\n\n if is_act_fp8:\n x = x.to(torch.float8_e5m2)\n\n # down\n x = matmul(\n x, w2, b2, a_ragged_metadata=ragged, scatter_indx=scatter_indx, precision_config=pc2, gammas=gate_scal\n )\n\n x = x.view(-1, experts_per_token, x.shape[-1]).sum(dim=1)\n return x\n\n\nclass OpenAIMxMoEBase(FusedMoEBase):\n def __init__(\n self,\n base: FusedMoEBase,\n gate_up_proj: torch.Tensor | list[torch.Tensor],\n down_proj: torch.Tensor | list[torch.Tensor],\n gate_up_proj_bias: torch.Tensor | list[torch.Tensor] | None,\n down_proj_bias: torch.Tensor | list[torch.Tensor] | None,\n ):\n super().__init__(\n n_embd=base.n_embd,\n n_hidden=base.n_hidden,\n num_experts=base.num_experts,\n num_experts_per_tok=base.num_experts_per_tok,\n gate_bias=base.gate_bias is not None,\n gate_fp32=base.gate_fp32,\n )\n\n self.activation = base.activation\n self.moe_bias = base.moe_bias\n self.moe_group_id = 0\n self.num_ep_ranks = 1\n\n self.gate_weight = base.gate_weight\n self.gate_bias = base.gate_bias\n\n self._gate_up_proj = gate_up_proj\n self._down_proj = down_proj\n self._gate_up_proj_bias = gate_up_proj_bias\n self._down_proj_bias = down_proj_bias\n\n self._register_buffers()\n\n def _register_buffers(self):\n self.register_buffer(\"gate_up_proj\", None)\n self.register_buffer(\"gate_up_proj_mx\", None)\n self.register_buffer(\"down_proj\", None)\n self.register_buffer(\"down_proj_mx\", None)\n if self.moe_bias:\n self.register_buffer(\"gate_up_proj_bias\", None)\n self.register_buffer(\"down_proj_bias\", None)\n\n def prepare_for_inference(self):\n if self.gate_up_proj is not None:\n return\n\n gate_up_proj = (\n self._gate_up_proj\n if isinstance(self._gate_up_proj, torch.Tensor)\n else torch.stack(tuple(self._gate_up_proj))\n )\n\n # Transpose the gate weight for matmul_ogs and cast to the\n # computation dtype so matmul_ogs never sees a dtype mismatch on weights.\n compute_dtype = gate_up_proj.dtype\n self.gate_weight = self.gate_weight.t().contiguous().to(compute_dtype)\n # Keep gate bias in fp32: matmul_ogs' Triton epilogue uses fp32 bias loads on all\n # paths; bf16 bias triggers \"Mismatched type for bias between then/else block\".\n self.gate_bias = self.gate_bias.float() if self.gate_bias is not None else None\n\n down_proj = (\n self._down_proj if isinstance(self._down_proj, torch.Tensor) else torch.stack(tuple(self._down_proj))\n )\n if self.moe_bias:\n gate_up_proj_bias = (\n self._gate_up_proj_bias\n if isinstance(self._gate_up_proj_bias, torch.Tensor)\n else torch.stack(tuple(self._gate_up_proj_bias))\n )\n down_proj_bias = (\n self._down_proj_bias\n if isinstance(self._down_proj_bias, torch.Tensor)\n else torch.stack(tuple(self._down_proj_bias))\n )\n else:\n gate_"} -{"text": "Walt was 81 years old when he had what was called a “heart event” and admitted to a hospital via ambulance late evening of July 26, 2011. They could not call it a heart attack and so they ordered an EP study. He was diagnosed with a lower heart chamber arrhythmia/rapid beat. It was then they decided to implant and ICD (internal cardiac defibrillator).\nDad had recovered nicely and had no incident until the evening of September 4, 2011. My father was experiencing some chest pressure and advised my brother. He waved the wand over my fathers ICD and it read that his pulse was 160 and again, my father was rushed to the ER. My father’s ICD was set too high and it never shocked my father’s heart back to rhythm. At the emergency room my father was shocked back into his normal beat. The Medtronic team monitoring his ICD came to the ER and reset it to 140. I’d like to know who would set an ICD for an 81 year old that high anyway!\nAfter my father was shocked back to normal rhythm, an ER physician decided to start my father on IV Amiodarone. At that moment, a nurse pulled my brother and sister in law aside and told them that this drug was extremely toxic and that he should not be on it very long. They researched it and advised me of its toxicity.\nMy father was then transferred to another floor where he waited for his discharge. He was healthy and walked the entire floor with my brother laughing and joking. Later that night, less than 48 hours after his initial dose of Amiodarone, my father went into respiratory failure coughing up blood. He was brought down to the ICU unit and immediately put on a bi-pap machine while I watched in horror of his condition that had declined so rapidly. I notified the nurses that he had recently been put on Amiodarone and that the side effects were exactly what my father was experiencing and that we should discontinue its use. They felt it was pulmonary edema. We had to wait until he was stable to send him for a CT scan. He was struggling with every breath. The CT scan showed no blood clot but they felt he had double pneumonia.\nAt that time they started 5 IV antibiotics and took cultures from urine, blood, stool and anything else they could. He began lasix to help rid fluids that seemed to be building up in his lungs/heart area. All my family members were united and spoke with the pulmonary and cardiologists that saw my dad on a daily basis and told them we believed it was Lung Toxicity due to Amiodarone. They said that it was impossible for reactions to be so soon after taking it. My father developed thrush in his throat and mouth and was put on a 6th IV antibiotic and had to have his mouth rinsed three times a day. It was already hard to breath and he could barely swallow or eat.\nOn the 7th day the Amiodarone was discontinued (quietly) and a steroid was introduced. All the cultures had come back negative for pneumonia or infection. The IV antibiotics were slowly being discontinued. It wasn’t until we asked that we were told the Amiodarone was discontinued. My father was developing a bluish tint to his skin. His eyes were yellow and he had a rash on his entire back. He was having horrible nightmares and could not sleep. He rotated between, bi-pap, nasal cannula and mask. We were able to assist him to a chair from bed but his oxygen would drop drastically when he did. My strong father was deteriorating right before our eyes. He was exhausted and confused….so were we.\nSlowly the visible side effects were subsiding but there was absolutely no improvement elsewhere. On September 21st (two weeks later) my dad was told there was nothing else they could do for him and he was transferred to another hospital. The doctor that signed his paperwork had written a note about possible Amiodarone Toxicity, along with all the other things he felt it really was. Respiratory failure, acute heart failure, extreme tachycardia.\nAfter arriving at the new hospital he was introduced to new doctors and all of them had never seen Amiodarone Toxicity and did not believe that is what he had. Still the steroids continued as well as the round the clock oxygen my father could not live without. Doctors came and doctors went…painful to explain my fathers story over and over to them. A pulmonary doctor had been assigned to my father. His diagnosis was that my father had COP (Cryptogenic Organizing Pneumonia) brought on by the Amiodarone. He felt he would be alright but would need steroids for months to come. I asked that he please investigate Amiodarone toxicity. He decided to present my father’s entire case to the Pulmonary Department of University of Cincinnati with our permission.\nAt this point my father had been in the new hospital just 10 days. His oxygen needs were so high they had to transfer him to a respiratory unit on September 30, 2011. On October 3, 2011 his pulmonary doctor returned after presenting my father’s case to find him moved to the respiratory unit and my father failing fast. He finally agreed that my father most likely had Lung Toxicity from Amiodarone. He gave my father less than a week to live.\nOn the afternoon of October 5, 2011 my father asked me if there was a cure for what he had. I had to tell him no, but I didn’t want him to stop fighting. His family and close friends filled his room that day. He was able to hold his first great grandchild that had been born weeks earlier.\nOn the morning of October 6, 2011 my fatherly quietly passed 8 hours after we moved him to the hospice floor. He was no longer attached to a heart and oxygen monitor. The oxygen alarms were no longer going off. There were no more medicines being put into his picc line. No more buttons to push to ask for assistance. No more food trays with cold food being delivered. No more bed pans. He was not being poked or prodded or questioned. There was finally peace and quiet.\nR.I.P. Walter Edward Maher 12-20-1929 to 10-6-2011"} -{"text": "I’m in the midst of my fourth summer of field work, and over the course of this time, I have spent many hours filming male Anolis carolinensis. I’ve done this work under several conditions; one project involved filming known animals in the field, a second required filming staged encounters between males in the lab, and the final (and current) project has me filming animals in semi-natural enclosures. These experiences prompted me to create this post, which I hope will be useful to anole researchers and enthusiasts who are embarking on projects that involve capturing video of lizards doing the things that fascinate us. Today, I’ll begin with a discussion of cameras and in a later post, I will write about other equipment as well as some of the techniques I’ve employed to capture useful images.\nThe most important piece of equipment. With the dizzying array of options available (amazon.com lists 839 results in its ‘Camcorders’ section), choosing a camera can be a daunting task. Nearly all of my work has used two different cameras, so while I can’t comment very broadly, there are some key features that I recommend.\nThe single most important feature is the ability to manually focus the image. Filming a lizard is done from a distance, and consequently, the animal takes up a very small amount of screen real estate. If the animal is on a twig or any other small perch, you may drive yourself crazy trying to get the auto-focus to pick it up. More likely you’ll end up with a clear image of the background and at worst, you’ll be unable to see what the focal animal is up to at all.\nFortunately, many modern camcorders have manual focus capabilities. Be warned that these work to varying degrees. For example, the camera I own allows the operator to focus by touching the viewfinder screen, but this method lacks the precision needed to get a clear picture of such a small target. The second camera I use regularly is on loan from my University’s Natural History Collection. It largely solves the problem by using a wheel for manual focus, which allows me to get a sharp image of the animal regardless of the background, or the lizard’s size relative to the frame.\nBeyond focusing mechanism, there are other important choices regarding the camera. For example, high-def or standard? Hard-disk, digital DVD, or another format for capturing files. Do you need your videos GPS-tagged? What about still photos? Image stabilizing? Zoom capabilities? I can’t address each of these options in detail, but here’s a quick rundown of my experience.\nThe option for shooting in HD is nice, but there are drawbacks. The files are huge, so have a lot of hard drive space to back them up. As a tech-geek with a shiny new camera in hand, I started shooting films in HD in anticipation of creating the next viral youtube video, cashing in on the Hollywood movie rights, and going into early retirement, but I quickly ran into a major complication: it’s hard to do anything to these files. Want to edit some down for a talk? Need to score behaviors using other software? Want to watch them on your computer? If you answered yes to any of these, you may consider going standard definition. Except for the (terrible) software that came with my camera, most playback programs refused to play the files I created in HD (for the record, their extension is .mts). VLC is one exception, sort of. It’s free software and known to play many, many types of files, but playback of the HD video was jerky, bogged my computer down, and was, at worst, unusable. So I was forced to invest in a video conversion program, which gave me a great many choices of file type, but severely reduced the quality of the image to the point that they were worse than films shots in standard definition. Bottom line: until hardware and software advance enough to easily process these files, go with standard definition.\nRegarding the actual physical storage of the images as they are captured, I prefer a hard disk drive (HDD) in the camcorder. The drives can be quite large (mine is 120 GB), and usually can be hooked to any computer via a USB connection, whereupon they appear as an external hard drive, allowing easy file storage and back up. Very convenient. Of course an HDD will fail eventually: caveat emptor. Solid state / flash memory card are available in some camcorders, and while their lack of moving parts makes them generally more durable, they offer less storage capacity and are more expensive.\nGPS – Anolologists’ choice. I have it but keep it off to preserve battery life. If your research involves geographic variation or any other macro-spatial component, this may be a handy feature.\nStill photos are very important to me. Many camcorders have the ability to capture still images of relatively high quality. I also prefer the option of snapping some stills as I’m recording. You never know what you might see.\nImage stabilization in not necessary, but is likely to be integrated into any higher-end camcorder. It will definitely make things a little nicer for the\npoor undergrad whomever is watching/scoring the videos.\nZoom requirements may vary depending on which animals one is filming. Look especially at a camera’s optical zoom, as digital zoom invariably reduces image quality. For filming carolinensis, I’ve found that 12x optical zoom is adequate.\nSo, for those of you anole annal readers that have done filming of animals: what did you use? Any advice or experiences you’d care to share?\nStay tuned for the conclusion of this post, in which I’ll discuss techniques and additional equipment that I’ve found useful for capturing the behavior of our favorite lizards. I’ll try to dig up some video and more images to share as well."} -{"text": "up_proj_bias = None\n down_proj_bias = None\n\n self.gate_up_proj_shape = gate_up_proj.shape\n self.down_proj_shape = down_proj.shape\n\n self.gate_up_proj, self.gate_up_proj_mx = self._quantize_weight(gate_up_proj)\n self.down_proj, self.down_proj_mx = self._quantize_weight(down_proj)\n\n if self.moe_bias:\n self.gate_up_proj_bias = gate_up_proj_bias.float()\n self.down_proj_bias = down_proj_bias.float()\n\n del self._gate_up_proj\n del self._down_proj\n if self.moe_bias:\n del self._gate_up_proj_bias\n del self._down_proj_bias\n\n def _quantize_weight(self, weight: torch.Tensor) -> tuple[torch.Tensor, torch.Tensor]:\n raise NotImplementedError(\"Not implemented\")\n\n\ndef _make_weights(\n base: ConvertableFusedMoEBase,\n as_list: bool = False,\n) -> tuple[\n torch.Tensor | list[torch.Tensor],\n torch.Tensor | list[torch.Tensor],\n torch.Tensor | list[torch.Tensor] | None,\n torch.Tensor | list[torch.Tensor] | None,\n]:\n if as_list:\n gate_up_proj = _make_gate_up_proj_list(base.gate_proj_weights_list, base.up_proj_weights_list)\n down_proj = _make_down_proj_weight_list(base.down_proj_weights_list)\n if base.moe_bias:\n gate_up_proj_bias = [\n t.float() for t in _make_gate_up_proj_bias_list(base.gate_proj_bias_list, base.up_proj_bias_list)\n ]\n down_proj_bias = [t.float() for t in _make_down_proj_bias_list(base.down_proj_bias_list)]\n else:\n gate_up_proj_bias = None\n down_proj_bias = None\n else:\n gate_up_proj = _make_gate_up_proj_weight(base.gate_proj_weights_list, base.up_proj_weights_list)\n down_proj = _make_down_proj_weight(base.down_proj_weights_list)\n if base.moe_bias:\n gate_up_proj_bias = _make_gate_up_proj_bias(base.gate_proj_bias_list, base.up_proj_bias_list).float()\n down_proj_bias = _make_down_proj_bias(base.down_proj_bias_list).float()\n else:\n gate_up_proj_bias = None\n down_proj_bias = None\n return gate_up_proj, down_proj, gate_up_proj_bias, down_proj_bias\n\n\nclass OpenAIMxfp4MoE(OpenAIMxMoEBase):\n def forward(\n self,\n x: torch.Tensor,\n score_processor: Callable[[torch.Tensor], Tuple[torch.Tensor, torch.Tensor]] = None,\n active_tokens_mask: torch.Tensor = None,\n score_processor_input_ids: torch.Tensor | None = None,\n ) -> torch.Tensor:\n gate_up_proj_ttensor, gate_up_proj_mx_ttensor = to_triton_tensors(\n self.gate_up_proj, self.gate_up_proj_mx, self.gate_up_proj_shape\n )\n down_proj_ttensor, down_proj_mx_ttensor = to_triton_tensors(\n self.down_proj, self.down_proj_mx, self.down_proj_shape\n )\n\n with record_function(\"moe\"):\n x = moe(\n x,\n self.gate_weight,\n gate_up_proj_ttensor,\n gate_up_proj_mx_ttensor,\n down_proj_ttensor,\n down_proj_mx_ttensor,\n self.gate_bias,\n self.gate_up_proj_bias if self.moe_bias else None,\n self.down_proj_bias if self.moe_bias else None,\n experts_per_token=self.num_experts_per_tok,\n ep_rank=self.moe_group_id,\n ep_world_size=self.num_ep_ranks,\n score_processor=score_processor,\n score_processor_input_ids=score_processor_input_ids,\n activation=self.activation,\n )\n\n return x\n\n def _quantize_weight(self, weight: torch.Tensor) -> tuple[torch.Tensor, torch.Tensor]:\n return quantize_mxfp4(weight)\n\n @classmethod\n def from_convertable_moe(cls, base: ConvertableFusedMoEBase):\n weights = _make_weights(base, as_list=True)\n return cls(base, *weights)\n\n\nclass OpenAIMxfp8MoE(OpenAIMxMoEBase):\n def __init__(\n self,\n base: FusedMoEBase,\n gate_up_proj: torch.Tensor,\n down_proj: torch.Tensor,\n gate_up_proj_bias: torch.Tensor | None,\n down_proj_bias: torch.Tensor | None,\n weight_dtype: torch.dtype = torch.float8_e4m3fn,\n ):\n super().__init__(base, gate_up_proj, down_proj, gate_up_proj_bias, down_proj_bias)\n\n self.weight_dtype = weight_dtype\n\n def forward(\n self,\n x: torch.Tensor,\n score_processor: Callable[[torch.Tensor], Tuple[torch.Tensor, torch.Tensor]] = None,\n active_tokens_mask: torch.Tensor = None,\n score_processor_input_ids: torch.Tensor | None = None,\n ) -> torch.Tensor:\n gate_up_proj_ttensor, gate_up_proj_mx_ttensor = to_triton_tensors_fp8(\n self.gate_up_proj, self.gate_up_proj_mx, self.gate_up_proj_shape, weight_dtype=self.weight_dtype\n )\n down_proj_ttensor, down_proj_mx_ttensor = to_triton_tensors_fp8(\n self.down_proj, self.down_proj_mx, self.down_proj_shape, weight_dtype=self.weight_dty"} -{"text": "Devotion and an Old Icon\nHave you heard the story about the Tikhvin icon of the Mother of God? This icon measures 34 inches by 43 inches, and is named for a village in northwestern Russia that is its current home. It has been a source of great veneration and comfort to the Russian people, especially during times of great suffering.\nAccording to Orthodox Christian tradition, the icon was painted by the Apostle and Evangelist Luke—as in Matthew, Mark, Luke, and John—and after its completion it stayed in Jerusalem for five hundred years. In the sixth century, the icon was taken to Constantinople, where it became a reassuring sign of the tenderness of the Mother of God for the inhabitants of that city.\nThe icon made its way north to the land of Russia. In 1383, fisherman on the northern Russian Lake Ladoga witnessed the icon hovering above the waters. It appeared in various locations, and eventually came to rest near the Tikhvin River where, in 1560, the Russian Czar Ivan the Terrible ordered that a monastery be built specifically to house the icon—a monastery dedicated to the Dormition of the Mother of God, the feast celebrated on August 15th.\nOver the course of the centuries, the Tikhvin Monastery became the site of pilgrimage to which all kinds of people came to pray, and where countless miracles occurred as the Theotokos interceded for her children.\nThen, in 1917, tragedy struck the Russian people. Churches and monasteries were destroyed, millions of Orthodox Christians were killed, and a cold, dark cloud of hostility toward the things of God spread over the Russian land. The Revolution of 1917 brought brutal changes to the Russian Church, and the Tikhvin Monastery was shut down in 1924.\nConscious of the extraordinary treasure in their midst, some Russian Orthodox people confiscated the icon. After its escape from the monastery, the icon was taken to Latvia and Poland and Czechoslovakia and Germany. This treasure came to be cared for by a bishop whose name was John.\nBishop John eventually traveled to America, and resided in New York City. When he was elected Archbishop of Chicago and Minneapolis of the Russian Orthodox Church in North America in 1949, Bishop John brought the icon with him and placed it in Holy Trinity Cathedral in Chicago.\nBefore he died in 1982, Bishop John entrusted the care of this wonderworking icon to his adopted son, the priest Serge, with this instruction: when the dark cloud of secularism and indifference toward God lifts over Russia, take the icon back to the land where it belongs. Like the prophet Moses of old, Bishop John did not live to see his precious possession reach its Promised Land.\nThe Tikhvin Icon of the Mother of God made one last tour through the United States before its historic departure for the re-opened Tikhvin Monastery in northwestern Russia. On that tour, the icon was even brought to St Tikhon’s Orthodox Theological Seminary in Pennsylvania when I was a seminarian there not too long ago.\nWhen the icon finally arrived in Russia, the event was unlike anything the land had seen for decades. President Putin and leaders of the Russian Orthodox Church arranged the celebrations. The icon was taken with processions to visit churches and monasteries throughout Russia. In Moscow, the icon stood for days in the huge Cathedral of Christ the Savior—the church that Joseph Stalin had destroyed (installing a swimming pool in its place) and Boris Yeltsin had restored. In St Petersburg, 150,000 people showed up to welcome the icon. All over Russia, as in centuries passed, many miracles occurred for those who venerated the icon “in the fear of God, with faith and love.”\nThe day arrived when the icon arrived by train at the end of its journey at the Dormition Monastery in Tikhvin. Hundreds of tents were set up to provide shelter for overnight services. More than 1500 police were on hand to ensure security for dignitaries and important guests.\nNow, listen to this: as its journey came to an end, a line of pilgrims formed to venerate the Tikhvin Icon of the Mother of God – a line that was four miles long and took three days to go through. Did you catch that? Christians coming to venerate this precious icon formed a line that was four miles long and took three days to get through!\nTake a moment to imagine four miles, in any direction, from where you are right now. Now, imagine a line of people winding its way along the route you’ve just drawn in your mind; they are children and men and women – all ages and shapes and conditions – shuffling along for three days. And finally, imagine this: what – or whom – would you wait in line four miles and three days to see? A celebrity? A sporting event? A book release? A rock concert? A miracle-working icon? We must ask ourselves: What is worth four miles on our feet and three days of our time?\nIn too many places of our fallen world we do not know how to venerate the holy. Take America, for example: some of what we venerate, God finds detestable; some of what we ignore, God finds precious. So, we who are both American and Christian will, automatically, be in conflict with our culture when it comes to what is worth our deepest devotion. And that’s okay: we expect it, we accept it, and we strive to live in such a way as to make our Christian faith attractive to others.\nIs your faith worth four miles on your feet and three days of your life? Do you take the really important things for granted? I do, from time to time. But, to take for granted, is to miss the granted. To take for granted means that we miss the really good things God has given to us—His Church, His liturgy, His Body and His Blood, His bible, His grace, His forgiveness, His creation, His children, and, if we are not careful, His heaven.\nMay each of us strive to value the really important things more and more as the days and months and years pass. That is my prayer for me; that is my prayer for you, too."} -{"text": "LONDON - The invasion of Iraq rebounded a little on the government of British\nPrime Minister Tony Blair to dent his majority as he returned to a third term\nas prime minister.\nBut it was not serious damage. Iraq did not prevent Blair from returning with\na comfortable enough majority, and this is the first time in its history that\na Labour government has been reelected for a third successive term.\nNonetheless, Iraq was still an issue, and it came home to Blair in his own\nconstituency Sedgefield. The incumbent prime minister was challenged by an independent\ncandidate Reg Keys, whose son was killed during the Iraq war.\nBlair got 24,421 votes, and Keys 4,252. That means that for every six votes\nBlair got, Keys got at least one. Compared to the last general election in 2001,\nthe votes for Blair dropped by about six percent. A member of the Blair campaign\nteam Derek Cattel had quit midway through the campaign to support Keys.\n\"I know Iraq has been a divisive issue,\" Blair said as he was announced\nwinner. \"I hope we can unite again and look to the future, there and here.\"\nThe remark seemed an indication that despite the opposition over Iraq he ran\ninto, he intended to stay the controversial course.\nKeys came up to the stage in Sedgefield to explain why he had contested. \"I\nwould have grieved and not campaigned if that war had been fought under international\nlaw,\" he said. \"I would have grieved and not campaigned if weapons\nof mass destruction had been found in Iraq.\"\nKeys added: \"I am hoping in my heart that one day the prime minister will\nbe able to say sorry.\"\nIf Keys was a constant reminder of Iraq to Blair through his election campaign\nin his constituency, he faces far more formidable opposition in parliament through\nGeorge Galloway, who beat the Labour candidate in the Bethnal Green constituency\nFor Galloway, who was expelled from the Labour Party for what the party described\nas his support for Saddam Hussein, Iraq was the key issue. He got much support\nthrough his campaign from the very large number of Muslim voters in the constituency.\nGalloway is certain to confront Blair through his third term over Iraq, and\nGalloway is nothing if not strident, as he showed in his victory speech.\n\"Mr. Blair, this is for Iraq, and all your other defeats your Labour Party\nhas suffered this day is [sic] for Iraq. All the people you have killed, and\nall the lies that you've told have come back to haunt you. The best thing you\ncan do is to resign.\"\nThe only political party that had opposed the invasion of Iraq, the Liberal\nDemocrats, saw their votes go up 3.9 percent from 22.6 percent in 2001. The\npercentage of Labour votes dropped 5.8 percent to 36.4 percent. The Conservatives,\nwho firmly backed the invasion of Iraq, got 33.1 percent of the vote, a small\ngain of 0.6 percent over 2001.\nThe Liberal Democrat gain did not, however, translate into a proportionate\nrise in the number of members of parliament. In Britain's first-past-the-post\nsystem in which the winner is the one with the plurality of votes, votes won\nare often not reflected in seats gained.\nWith 619 of 646 seats declared, Labour had 353, losing 47 in relation to the\nlast parliament. The Conservative Party had 195, a gain of 33, and the Liberal\nDemocrats had 59, a gain of 11 seats.\nThe significance of Iraq surfaced through the election results. During the\ncampaign, it was one among several issues that came up and subsided. The Liberal\nDemocrats claimed they had got it right on Iraq, and the Conservatives attacked\nBlair over what they called lies over the invasion. But there was little indication\nhow far people were going to think about the invasion when they voted.\nLabour is believed to have lost many votes and seats in constituencies with\na high Muslim population such as Bethnal Green and in constituencies\nwith a high number of students. Both these groups were at the forefront of the\nBlair said that his new government will take on board the verdict of the people,\nreflected in some loss of support for his party. But that is not expected to\nlead to any sudden or significant change in his Iraq policy.\n(Inter Press Service)"} -{"text": "pe\n )\n with record_function(\"moe\"):\n x = moe(\n x,\n self.gate_weight,\n gate_up_proj_ttensor,\n gate_up_proj_mx_ttensor,\n down_proj_ttensor,\n down_proj_mx_ttensor,\n self.gate_bias,\n self.gate_up_proj_bias if self.moe_bias else None,\n self.down_proj_bias if self.moe_bias else None,\n experts_per_token=self.num_experts_per_tok,\n ep_rank=self.moe_group_id,\n ep_world_size=self.num_ep_ranks,\n score_processor=score_processor,\n score_processor_input_ids=score_processor_input_ids,\n activation=self.activation,\n )\n\n return x\n\n def _quantize_weight(self, weight: torch.Tensor) -> tuple[torch.Tensor, torch.Tensor]:\n return quantize_mxfp8(weight, weight_dtype=self.weight_dtype)\n\n @classmethod\n def from_convertable_moe(cls, base: ConvertableFusedMoEBase, weight_dtype: torch.dtype = torch.float8_e4m3fn):\n weights = _make_weights(base, as_list=True)\n return cls(base, *weights, weight_dtype=weight_dtype)\n\n\ndef _redistribute_weights(\n base: OpenAIMxMoEBase, sharded_moe: ShardedMoE\n) -> tuple[torch.Tensor, torch.Tensor, torch.Tensor | None, torch.Tensor | None]:\n gate_up_proj = sharded_moe.redistribute_weights(base._gate_up_proj, chunk_dim=2)\n down_proj = sharded_moe.redistribute_weights(base._down_proj, chunk_dim=1)\n\n if base.moe_bias:\n # NB: it works for up_gate because it's stored in the interleaved columnar layout.\n gate_up_proj_bias = sharded_moe.redistribute_biases(base._gate_up_proj_bias, chunk=True)\n down_proj_bias = sharded_moe.redistribute_biases(base._down_proj_bias, chunk=False)\n else:\n gate_up_proj_bias = None\n down_proj_bias = None\n\n return gate_up_proj, down_proj, gate_up_proj_bias, down_proj_bias\n\n\nclass ShardedOpenAIMxfp4MoE(OpenAIMxfp4MoE, ShardedMoE):\n def __init__(\n self,\n base: OpenAIMxfp4MoE,\n sharding_config: fireshard.ShardingConfig,\n all_reduce_module: AllReduce | None = None,\n ):\n sharded_moe = ShardedMoE(sharding_config, base.num_experts)\n weights = _redistribute_weights(base, sharded_moe)\n OpenAIMxfp4MoE.__init__(self, base, *weights)\n ShardedMoE.__init__(self, sharding_config, base.num_experts, all_reduce_module)\n\n def forward(\n self,\n x: torch.Tensor,\n score_processor: Callable[[torch.Tensor], Tuple[torch.Tensor, torch.Tensor]] = None,\n active_tokens_mask: torch.Tensor = None,\n score_processor_input_ids: torch.Tensor | None = None,\n ) -> torch.Tensor:\n x = super().forward(\n x,\n score_processor,\n active_tokens_mask,\n score_processor_input_ids=score_processor_input_ids,\n )\n if self.reduce and self.all_reduce_module is not None:\n x = self.all_reduce_module(x)\n return x\n\n\nclass ShardedOpenAIMxfp8MoE(OpenAIMxfp8MoE, ShardedMoE):\n def __init__(\n self,\n base: OpenAIMxfp8MoE,\n sharding_config: fireshard.ShardingConfig,\n all_reduce_module: AllReduce | None = None,\n weight_dtype: torch.dtype = torch.float8_e4m3fn,\n ):\n sharded_moe = ShardedMoE(sharding_config, base.num_experts)\n weights = _redistribute_weights(base, sharded_moe)\n OpenAIMxfp8MoE.__init__(self, base, *weights, weight_dtype=weight_dtype)\n ShardedMoE.__init__(self, sharding_config, base.num_experts, all_reduce_module)\n\n def forward(\n self,\n x: torch.Tensor,\n score_processor: Callable[[torch.Tensor], Tuple[torch.Tensor, torch.Tensor]] = None,\n active_tokens_mask: torch.Tensor = None,\n score_processor_input_ids: torch.Tensor | None = None,\n ) -> torch.Tensor:\n x = super().forward(\n x,\n score_processor,\n active_tokens_mask,\n score_processor_input_ids=score_processor_input_ids,\n )\n if self.reduce and self.all_reduce_module is not None:\n x = self.all_reduce_module(x)\n return x\n"} -{"text": "Ferrari World’s long-awaited new instalment is finally set to be unveiled on February 24, it has been announced.\nFerrari World on Yas Island has built the first bi-plane themed roller coaster called Flying Aces. The triple record-breaking ride, acclaimed for having the world’s tallest loop and fastest and steepest starting hill inclination, mimics the movements of the 1900s bi-planes to offer extreme gravity defying flight acrobatics that include a 52 metre non-inverted loop, down flips and plenty of airtime.\n“There are very few theme parks that have undertaken such a significant expansion as Ferrari World Abu Dhabi,” said general manager of Ferrari World Abu Dhabi Jesse Vargas. “Flying Aces will be another one-of-a-kind ride that you can only find at Ferrari World Abu Dhabi. Its design and storyline are deeply rooted in the rich history of Ferrari.”\nIn keeping with Ferrari World’s theme of telling the history of the famous car manufacturer through rides and simulators, this new instalment brings to life the story of Ferrari’s legendary Prancing Horse emblem, which was inherited by Enzo Ferrari for good luck and first used by the famous Italian aviator Count Francesco Baracca.\nThose brave enough to step foot on the monster coaster will travel at speeds of 120kmph along the 1.5km track.\nFive more at Ferrari World\nThe indoor theme park with the famous red roof is planning to bring in more rides after Flying Aces is launched. In the meantime, here are five rides that you just shouldn’t miss out on at Ferrari World Abu Dhabi…\n1 Formula Rossa\nThe world’s fastest roller coaster provides thrill-seekers the ultimate adrenaline rush with a turbo-charged Ferrari experience. Get strapped in to a Ferrari F1 carriage that rockets along the tracks reaching 0-100 kmph in less than two seconds, accelerating to 240 km/h. Formula Rossa simulates the heart-pounding rush of what it’s like to drive a Ferrari F1 racer and you’ll see Yas Island vistas at high speeds and from more than 50 metres off the ground. You’ll be required to don protective eyewear to shield your peepers from the wind force generated by the coaster’s g-force and mind-blowing speeds, in a coaster powered by the same kind of hydraulic winch system used to launch jet planes. Some might just want to shut their eyes, anyway. For speed-freaks and thrill-seekers who absolutely must ride the fastest roller coaster on earth, this is a must. The world-famous attraction is the ultimate, high-intensity goal, so make sure you persevere with the queue – it’s well worth the wait.\nThis cute little ride is a miniature recreation of famous Italian cityscapes and structures. The slow-moving ride is reminiscent of “It’s a Small World” in California’s original Disneyland Park and is a welcome relief from the faster moving rides in the indoor theme park. Bell’Italia features 17 stops over a 6,300 metre squared area passing the picturesque Portofino and the Amalfi Coast, proceeding to the Monza racetrack, the Colosseum in Roma, the canals of Venezia and Maranello, the home of Ferrari. The course can be covered on foot or in small-scale Ferrari 250 California Spider cars that allow you to control the pace of the Italian touring experience.\n3 Karting Academy\nLaunched during the F1 season in November 2014, Karting Academy is a hands-on, adrenaline-fuelled racing experience. Whether a beginner or a serious sprinter, visitors to Ferrari World can test their racing skills aboard advanced electric powered go-karts and challenge family and friends around a 290m track. You’ll reach speeds of up to 80kmph. Amongst the safest rides of its kind in the world, Karting Academy is guaranteed fun and offers up some serious bragging rights. You’ll want to queue up for this one more than once.\n4 Fiorano GT Challenge\nThis exciting ‘duelling’ coaster sends two trains of three Ferrari F430 Spider carriages careering along parallel tracks in a high octane race to the finish line. The first thrill ride of its kind in the region, Fiorano GT Challenge rips around hairpin turns in a high-speed duel between two trains to reach the finish line. There is never a tie and always a winner (and a loser) on this ride.\n5 Scuderia Challenge\nThis is the closest you will get to becoming an F1 driver without actually stepping into a car. The Scuderia Challenge is a state-of-the-art simulator based on the professional training simulators used by the Scuderia Ferrari drivers. This is a level of realism way beyond an arcade game, giving guests a taste of a real life racing experience. Sitting behind authentic Ferrari F1 steering wheels in real Ferrari seats, you can navigate the nearby Yas Marina Circuit, either racing against your friends in a group of eight or in an individual time trial."} -{"text": "Home › Women's\n› Senna Tank\nClick to Zoom\nTrim fit, quick drying women’s tank top with comfort straps and a built-in shelf bra. Designed for hiking and daily adventure.\nALL PRODUCTS;all;everything;entire;collection;ACTIVITY/ MOBILITY;active;activity;aerobic;anatomical;aroebic;articulated;articulation;athletic;comfort;dynamic;endurance;ergonomic;fast moving activity;gardening;mobility;motion;movement;performance;range of motion;stretch mobilityARC; all products;arc teryx;arcteryx;arc'teryx;B.C.;bc;british columbia;canada;equipment;gear;innovation;innovative;outdoor;outdoor gear;performance;quality;sports equipment;technical;vancouver;HIKING;adventure hiking;alpine;alpinist;alpinists;apparel;backcountry;backpacker;backpacking;equipment;gear;high alpine;hike;hiker;hikers;hiking;hiking climbing;hiking equipment;hiking route;hiking trip;hiking trips;mountain;mountain hiking;mountain top;mountaineering;mountains;outdoor adventures;peak;rambling;road hiking;scenic hiking;scramble;scrambling;trail;trail walking;trailhead;trailhead hiking;trails;walking;walking trails;wilderness;Randonnée;Randonnee;Randonée;Randonee;TREKKING/ BACKPACKING;adventure trekking;alpinist;alpinists;apparel;backcountry backpacking;backcountry trekking;backpacker;backpacking;backpacking trails;backpacking trip;backpacking trips;equipment;gear;high alpine;mountain;ski backpacking;travel;traveling;travelling;treking;trekker;trekking;trekking trails;trekking trips;trekking trips;Wandern;ENDORPHIN FITNESS;active;activity;aerobic fitness;aerobics;apparel;body fitness;cardio fitness;endurance;equipment;excercise;excercises;exercise equipment;exercise fitness;female fitness;fitness;fitness equipment;fitness sports;fitness training;fitness workout;gear;gym;gyms;health & fitness;health and fitness;health clubs;ladies fitness;personal fitness;physical fitness;pilates;sports and fitness;technical;training;treadmill;wellness;workout;workouts;yoga;excercise clothing;running clothing;runnCLIMBING;abseil;abseiling;adventure climbing;aid climbing;alpine climbing;apparel;ascent;belay;bouldering;climber;climbers;climbing;climbing equipment;climbing gear;climbing gym;climbing route;climbing routes;climbing wall;clothing;crag;cragging;equipment;face;free climbing;gear;holds;ice;ice climb;ice climbing;indoor rock climbing;lead climbing;mountain climbing;mountaineering;Rappel;rappelling;rock;rock climbing;rock climbing wall;scaling;scrambling;sport;sport climbing;summit;trad climbing;CASUAL;urban;urban play;city life;lifestyle;stylish;\nXS, M, L, XL\n130 g / 4.6 oz\nTrim fit, Hip Length\nWith a design focused on moving from outdoor to casual adventure, the Senna Tank offers a combination of technical performance and easy style that makes it a go to piece all summer long. Made from soft, stretchy Haven™ fabric, the Senna wicks moisture, dries quickly, provides UPF 50+ sun protection, is highly air permeable and feels excellent next to the skin.\nAnatomical shaping, the Trim fit and the fabric’s stretch combine to deliver clean lines and a high level of ergonomic performance. The built in shelf bra with insert pockets integrates support into the tank’s construction. Made from Aerial™ polyester, the bra is soft, air permeable and has superior moisture wicking properties. Cross back straps offer a secure fit, and the classic scooped neckline enhances airflow and elevates the style.\nFull Feature List\n- Supportive construction\n- Cross back strap configuration\n- Stretchy fabric allows you to move more freely\nNeckline ConfigurationIntegrated Features\n- Anatomical shaping for fit and comfort\n- Built-in breathable shelf bra with inset pockets to accommodate padded inserts\n- Haven™—84% polyester, 16% elastane, 194 g/m². A stretchy polyester/spandex blend textile with a brushed face that is soft and comfortable next to the skin.\n- Aerial™—100% polyester, 150 g/m². Lightweight, slightly stretchy mesh textile with high air permeability, enhanced wicking properties and Polygiene® odour control technology.\n- Machine wash in cold water.\n- Wash dark colours separately.\n- Tumble dry on low heat.\n- Iron on low heat.\n- Do not use fabric softener."} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/serving/audio/__main__.py. Lines: 1857.\n\nfrom fireworks.serving.audio.__main__import_start import IMPORT_START_TIME # must be the leading import\nimport time\nimport base64\nimport copy\nimport io\nimport os\nimport uuid\nimport falcon\nimport torch\nimport prometheus_client\nimport uvicorn\nimport fireworks.util as fireutil\nimport asyncio\nimport json\nimport traceback\nfrom typing import Dict, List, Optional, Tuple, Union, Coroutine\nfrom concurrent import futures\nfrom dataclasses import replace\nfrom functools import cached_property, partial\nfrom pydantic import BaseModel\nfrom http import HTTPStatus\nfrom google.protobuf import duration_pb2\nfrom dateutil import relativedelta\nfrom falcon import (\n Request,\n Response,\n HTTPInternalServerError,\n CORSMiddleware,\n MEDIA_MULTIPART,\n http_status_to_code,\n WebSocketDisconnected,\n)\nfrom whisper.utils import WriteSRT, WriteVTT\nfrom falcon.asgi import App, WebSocket\nfrom falcon.media.multipart import MultipartFormHandler\nfrom fireworks.client.audio_api import (\n Error,\n ErrorResponse,\n TranscriptionResponse,\n TranscriptionVerboseResponse,\n TranscriptionSegment,\n TranscriptionWord,\n)\nfrom fireworks.distributed.fire_cluster import Batch, OverloadedException, FireCluster, FireClusterClient\nfrom fireworks.distributed.fire_sessions import (\n CreateSessionResponse,\n EgressEvent,\n FireSessions,\n FireSessionsClient,\n SessionAlreadyExistsException,\n TerminateSessionResponse,\n)\nfrom fireworks.protos.generated.billing_subscriber import billing_subscriber_pb2\nfrom fireworks.serving.audio.metrics import metrics, RequestMetrics\nfrom fireworks.text import UserError\nfrom fireworks.util.multiprocessing import enable_term_on_exception\nfrom fireworks.util import serialization\nfrom fireworks.models.audio.diarization.clustering import DiarizeConfig\nfrom fireworks.models.audio.asr.types import TranscribeSegment, TranscribeText, TranscribeWord\nfrom fireworks.models.audio.asr.base_pipeline import SAMPLE_RATE\nfrom fireworks.serving.audio.args import parse_args, AudioArgs\nfrom fireworks.serving.audio.cluster import (\n build_stt_cluster,\n build_diarization_cluster,\n build_diarization_clustering_cluster,\n)\nfrom fireworks.serving.audio.tasks.types import (\n AudioBatchRaw,\n EmissionBatch,\n TranscriptBatch,\n AlignedTranscriptBatch,\n AudioBatch,\n EmbeddingBatch,\n ReducedEmbeddingBatch,\n ClusteringBatch,\n)\nfrom fireworks.serving.audio.tasks.vad import NoVoiceDetectedException\nfrom fireworks.serving.audio.utils.alignment import refine_alignment\nfrom fireworks.serving.audio.utils.diarization import merge_transcription_diarization\nfrom fireworks.serving.audio.load import AudioLoadError, load_audio_duration\nfrom fireworks.serving.audio.schema import (\n AlignmentParams,\n TimestampGranularity,\n TranscriptionParams,\n StreamingTranscriptionParams,\n TranslationParams,\n build_audio_task,\n)\nfrom fireworks.serving.audio.registry.registry import update_language_model_map\nfrom fireworks.serving.audio.utils.running_sum import RunningSum\nfrom fireworks.serving.audio.timings import LatencyType, Timings, TimingType\nfrom fireworks.serving.audio.sessions import build_stt_streaming, build_tts_streaming\nfrom fireworks.distributed.platform import AsyncLocalQueue\nfrom fireworks.distributed.fire_sessions import (\n CreateSessionResponse,\n EgressEvent,\n FireSessions,\n FireSessionsClient,\n NotFoundException,\n SessionAlreadyExistsException,\n)\nfrom fireworks.serving.audio.streaming.session import (\n StreamingTextToSpeechSessionParams,\n StreamingTranscriptionSessionParams,\n)\nfrom fireworks.serving.audio.streaming.schema import SttInputTrace, SttOutputTrace, SttIngress, TtsIngress\nfrom fireworks.serving.billing import BillingPublisher, BillingRequestMetadata, create_billing_metadata\nfrom fireworks.serving.logging import UVICORN_LOGGING_CONFIG, logger\nfrom fireworks.serving.metering import start_metering, StandaloneMetering\nfrom fireworks.serving.util.falcon_ws import WebsocketBinaryMediaHandler\nfrom fireworks.serving.util.sansio_ws import WebSocketsSansIOProtocol\nfrom fireworks.serving.ratelimit_verifier.ratelimit_verifier import RatelimitVerifier, RatelimitResponse\nfrom fireworks.serving.utils import (\n BackgroundTaskRunner,\n download_or_bytes,\n parse_falcon_media,\n DownloadFailedException,\n build_request_id,\n)\nfrom fireworks.serving.util.auth import UnkeyAuthServer, is_direct_request\nfrom fireworks.serving.util.imports import ImportsTakeTooLong\nfrom fireworks.serving.util.asyncio_lag_monitor import start_asyncio_lag_monitor\nfrom fireworks.serving.util.system_metrics_monitor import start_system_metrics_monitor\nfrom fireworks.serving.util.traces.trace_logger import TraceLogger\nfrom fireworks.serving.audio.resource_validator import ResourceValidator\nfrom fireworks.models.audio.asr.config import BeamCo"} -{"text": "What is it that makes plants green? Chlorophyll! This is the magic substance that plants use to capture and store the energy from sunlight. Without this mechanism there would be no life on earth as every living thing directly or indirectly derives its energy from plant sources.\nThe chlorophyll molecule is almost identical to the oxygen-carrying haemoglobin molecule in our own blood. Remarkably, chlorophyll is an excellent tonic and cleansing agent for our blood. It is one of the key substances that give wheatgrass, barley grass and chorella their well-known healing properties.\nHowever it is not only the green in greens which makes them such an important food. As we can see in autumn leaves, chlorophyll actually masks many other pigments. These colours indicate the presence of‘ a huge array of ‘phytonutrients’, or beneficial plant compounds. Phytonutrients have an assortment of subtle effects that keep our energy flowing and balanced.\nHow do green vegetables help your body to be healthy?\nEating green vegetables provides many health benefits. They help your immune system, provide antioxidant protection and rejuvenate your cells. Green leafy vegetables also contain significant amounts of protein, minerals and fibre. As we naturally eat heavier, richer, cooked foods in winter it is important to keep eating a proportion of raw greens. They provide balance to our meals and aid digestion and detoxification.\nSo remember to get your greens! There are many green vegetables available through the winter and they go abundantly crazy in the spring. Dark greens such as kale, broccoli and the Chinese greens are particularly fortifying. Let yourself become accustomed to stronger, bitter tastes in greens – these can indicate powerful cleansing properties. Have a look at the organic stall at the local farmers market and try something different. Just ask if you are not sure how to prepare them.\nYummy Recipes with Leafy Greens\nGreens, Bacon and Poached Eggs\nThis makes a deliciously satisfying and nutritious lower carb breakfast. You’ll get lots of essential minerals from the leafy greens, plus good protein from the bacon and eggs.\nThis is my idea of weekend breakfast heaven! However it’s equally ideal for lunch or dinner. Use organic free range bacon and eggs for better flavour. You'll also be supporting more wholesome farming practices.\n2 T olive oil or organic butter\n1 large bunch dark leafy greens [kale, chard (silverbeet) or Chinese greens]\n4 rashers organic (or wild) free range bacon\n1 medium onion\n1 clove crushed garlic\n2 T soy sauce\n½ squeezed lemon\n½ capsicum (bell pepper), red or green, chopped\nPinch of Cayenne pepper\n1. Gently saute the onions, garlic and bacon with the olive oil in a wok.\n2. Remove stems and roughly chop greens. Place in wok and cover with a lid. Steam until tender.\n3. Meanwhile poach the required number of poached eggs.\n4. Dice the tomatoes and add to wok with remaining ingredients.\n5. Serve on warm plates and top with the poached eggs. Add a grind of black pepper to taste.\nBok Choi Stir-fry\nStir-frying requires fast intense heat. Moisture in the leaves creates steam, rapidly wilting the greens. Spicy white pepper compliments the earthy/sweet flavour of the leaves.\nSeveral small bunches of bok choi (or other Chinese Greens)\n2 tsp sesame oil\nShoyu (good quality fermented soy sauce)\nSeparate the leaves by cutting the bottom stalk of each bunch. Slice he stalks and leaves into 3cm lengths.\nWash the chopped bok choi by putting it into a sink or large bowlful of water. Massage gently to loosen any dirt and allow it to drop to the bottom. Use your hands to life out the greens into a colander and allow it to drain.\nHeat a wok or large frypan over a high heat. Add the sesame oil. When the oil is very hot (but not smoking) add the bok choi. Keep the heat high and stir the greens until wilted – this should take less than two minutes.\nSeason with pepper and shoyu, toss for a few more seconds and remove from the wok into a serving dish.\nCopyright Wild Health and Anna Wilde 2007\nAnna Wilde works with people who want to improve their health naturally.\nGet recipes and straight forward advice to stay motivated, eat well and be healthy.\nCheck out her ‘Healthy food made easy’ website\nSign up and get free simple healthy recipes like: Bircher Muesli and articles like: The War on Fat\nWhat people say about Wild Health:\n“Fantastic quantity and quality of information.\nThanks for a lot of new healthy food ideas I wouldn’t have found anywhere else. \" Maria\n“This changed my life. I lost weight and feel better than ever” Brian\n“I am buzzing with ideas!” Sarah"} -{"text": "Bank of Ceylon amongst Top 1,000 Global Banks\nSri Lanka’s leading Bank with 73 years of strength, trust and stability, the Bank of Ceylon is proud to receive the global recognition as one of the top 1,000 banks in the world, by the world’s premier banking and finance Magazine, “The Banker”.\nThe Top 1,000 banks were selected in recognition of global leaders in the industry for their achievements. The rankings are one of the industry’s most widely used index of global banking, and are internationally recognized as the definitive guide to the soundness, strength and profitability of banks. The Banker Magazine first published in January 1926 in U.K, circulated over 180 countries is the key source of data and analysis for the industry in international finance affairs.\nBank of Ceylon serves over ten million customers island wide and our commitment to each of them remains steadfast. Fitch Rating Lanka Ltd has upgraded Bank of Ceylon’s national long-term rating to AA+ (lka) stable outlook which is the highest rating awarded to a local commercial bank. Brand Finance Lanka ranked BOC as the number 1 brand in Sri Lanka for the last four consecutive years.\nIn a press statement Bank of Ceylon revealed that, Our multi-faceted offering is one of our greatest strengths. From the children’s savings account to corporate credit, for state sector and private companies, we serve at every level.\nThe statement further adds: The bank has the strength and the diversity of resources to offer its customers a range of financial solutions; such as Corporate Banking, Personal Banking, Islamic Banking, Investment Banking, Off-shore Banking, Development Banking, International and Treasury operations and Trade Financing services, through its widely spread branch network and extension offices close to 600 covering all parts of the country. At the moment the bank has over 1,000 customer touch points covering branches, extension offices, ATMs and over 800 foreign corresponding agents.\nCommenting on this achievement, Bank of Ceylon Chairman Dr. Gamini Wickramasinghe stated that “bank has reached this milestone with a clear vision to make the impossible possible.”\nDr. Gamini Wickramasinghe also said, “That is “One Ten Twelve”, the corporate agenda for 2012 which translate into one trillion assets, Rs.10 billion profit in year 2012. This task was achieved well before the target date, in mid 2012. Therefore BOC became the first bank in Sri Lanka to reach a prodigious milestone by achieving Rs. 1.0 trillion in assets.”\nDr. Wickramasinghe stressed that, ” if you have a clear vision anything is possible to achieve”.\nBOC possess the strength and the diversity of resources to offer a complete range of financial solutions to its customers. BOC has further expanded its unprecedented banking and financial services to overseas branches in Chennai and Male and banking operations in London.\nFurther, commenting on this global recognition, Bank of Ceylon General Manager Mr. K. Dharmasiri stated that “bank has reached its pinnacle in 2012 by achieving key milestones in terms of growth in the bottom-line of the bank and expansion in all business areas. Bank has touched more than 10 million lives in the country. We are leading in every aspect of banking and financial services”.\nMaintaining solid partnerships with the private sector, BOC supports infrastructure development activities, provision of working capital and significant investments in Government projects. Aligned with the Government’s pursuit of socio-economic development, bank took major strides to assist in the country’s unprecedented demand for monetary support by easing loans as well as service provisions across the economy, especially in the North and East.\nOn the 1st of August 2012, Bank of Ceylon celebrated its 73rd Anniversary –a voluminous period of strength, success and stature. Leading the banking and financial sector since 1939, BOC has constantly succeeded in contributing to the growth of our nation and continues to assist the development of the country and guiding entrepreneurs to reach greater heights which makes Bank of Ceylon the “bankers to the nation”. We thank our loyal customers for the trust and confidence placed on us.\n- Asian Tribune -"} -{"text": "nfig\n\n# ############################################################\n# IMPORTS END. DO NOT ADD IMPORTS BELOW THIS LINE (only above)\n# ############################################################\n\nmax_import_time = int(os.environ.get(\"AUDIO_API_MAX_IMPORT_TIME_S\", \"999\"))\ntotal_import_time = time.time() - IMPORT_START_TIME\nif total_import_time > max_import_time:\n raise ImportsTakeTooLong(total_import_time, max_import_time)\nelse:\n logger.info(f\"Total import time: {total_import_time:.2f}s < {max_import_time}s\")\n\nVERBOSE = int(os.environ.get(\"AUDIO_API_VERBOSE\", \"0\")) > 0\nAUDIO_FFPROBE_THREADS_PER_GPU = int(os.environ.get(\"AUDIO_FFPROBE_THREADS_PER_GPU\", \"16\"))\nAUDIO_PREPROCESSOR_THREADS_PER_GPU = int(os.environ.get(\"AUDIO_PREPROCESSOR_THREADS_PER_GPU\", \"16\"))\nASYNCIO_SLOW_CALLBACK_DURATION = float(os.environ.get(\"ASYNCIO_SLOW_CALLBACK_DURATION\", \"0\"))\nAUDIO_STREAMING_STT_TRACE_ENABLED = os.environ.get(\"AUDIO_STREAMING_STT_TRACE_ENABLED\", \"false\").lower() == \"true\"\nFIREWORKS_REPORT_BILLING = os.environ.get(\"FIREWORKS_REPORT_BILLING\", \"true\").lower() == \"true\"\nFIREWORKS_MOCK_BILLING = os.environ.get(\"FIREWORKS_MOCK_BILLING\", \"false\").lower() == \"true\"\nFIREWORKS_TEST_SKIP_AUTH = os.environ.get(\"FIREWORKS_TEST_SKIP_AUTH\", \"false\").lower() == \"true\"\nAUDIO_ENABLE_TTS = os.environ.get(\"AUDIO_ENABLE_TTS\", \"true\").lower() == \"true\"\nWARNING_LATENCY_OVERALL_MS_THRESHOLD = int(os.environ.get(\"AUDIO_API_WARNING_LATENCY_OVERALL_MS_THRESHOLD\", \"1000\"))\n\nBYTES_PER_SAMPLE = 2 # 16-bit audio\n\n_args: Optional[AudioArgs] = None\n_billing_publisher: Optional[\"AudioBillingPublisher\"] = None\n_ratelimit_verifier: Optional[RatelimitVerifier] = None\n_auth_server = UnkeyAuthServer()\n_inference: Optional[FireCluster] = None\n_inference_client: Optional[FireClusterClient] = None\n_diarization: Optional[FireCluster] = None\n_diarization_client: Optional[FireClusterClient] = None\n_diarization_clustering: Optional[FireCluster] = None\n_diarization_clustering_client: Optional[FireClusterClient] = None\n_stt_streaming: Optional[FireSessions] = None\n_stt_streaming_client: Optional[FireSessionsClient] = None\n_tts_streaming: Optional[FireSessions] = None\n_tts_streaming_client: Optional[FireSessionsClient] = None\n_audio_duration_executor = None\n_audio_input_running_duration = RunningSum(window_seconds=60)\n_audio_streaming_running_duration = RunningSum(window_seconds=60)\n_metering: Optional[StandaloneMetering] = None\n_background_tasks: Optional[BackgroundTaskRunner] = None\n_FAKE_RESPONSE_TEXT = \"This is a test response. If you see this response, please contact the Fireworks team.\"\n\n\nclass LifespanMiddleware:\n async def _init_helpers(self):\n logger.info(\"Initializing helpers\")\n\n # Asyncio monitor\n asyncio.create_task(start_asyncio_lag_monitor())\n # System metrics monitor\n asyncio.create_task(start_system_metrics_monitor(environment=_args.environment))\n if ASYNCIO_SLOW_CALLBACK_DURATION:\n asyncio.get_running_loop().set_debug(True)\n asyncio.get_running_loop().slow_callback_duration = ASYNCIO_SLOW_CALLBACK_DURATION\n\n global _audio_duration_executor, _background_tasks, _metering\n start = time.time()\n num_gpus = torch.cuda.device_count()\n\n _audio_duration_executor = futures.ThreadPoolExecutor(\n max_workers=torch.cuda.device_count() * AUDIO_FFPROBE_THREADS_PER_GPU,\n thread_name_prefix=\"audio_ffprobe\",\n )\n _background_tasks = BackgroundTaskRunner()\n _metering = start_metering(num_gpus, metrics)\n\n took = time.time() - start\n logger.info(f\"Initialized helpers. {took=:.2f}s\")\n\n async def _init_compute(self):\n logger.info(\"Initializing compute\")\n\n global _inference, _inference_client, _diarization, _diarization_client, _diarization_clustering, _diarization_clustering_client, _stt_streaming, _stt_streaming_client, _tts_streaming, _tts_streaming_client\n start = time.time()\n num_gpus = torch.cuda.device_count()\n startup_tasks: List[Coroutine] = []\n\n resource_validator = ResourceValidator(audio_model_dir=_args.model_dir)\n diarization_validation_result = resource_validator.validate_diarization_model_resources()\n stt_validation_result = resource_validator.validate_stt_model_resouces()\n vad_validation_result = resource_validator.validate_vad_model_resources()\n alignment_validation_result = resource_validator.validate_alignment_model_resources()\n tts_validation_result = resource_validator.validate_tts_model_resources()\n upsampling_validation_result = resource_validator.validate_upsampling_model_resources(\n bwe_config_name=_args.bwe_config_name\n )\n\n services_mis_configured = False\n if diarization_validation_result.is_valid():\n logger.info(\"Initializing diarization cluster\")\n # Init diarization cluster\n _diarization, _diarization_client = build_diarization_cluster(n_stac"} -{"text": "Read about Erin’s travels in Girl-on-Greece: The Incredibly True Adventures of a Gay History Nerd in Love with Mount Olympus. Girl-on-World is written by hot young women just like you! If you’ve got a story you’d like to share, email green[at]autostraddle[dot]com.\nThen Stef Defaced Public Property with Amanda Tannen from stellastar* and wasn’t that fun?? Yes! And do you also recall when Music Was Your Hot Hot Fix with Crystal and Intern Emily? But wait! That’s not all!\nDon’t forget the heartwarming piece on The Suckage of BlueHost: The Fempire Strikes Back!\nRiese and Alex have left their cubby holes yet again to venture into the hippie-scented world of Somewhere In Upstate New York! But the funny thing is, they still brought you today’s Sunday Funday Daily Fix because I, Laneia, was Team Sleeping In! I’m probably fired forever so if you’re looking for someone to pass out business cards or something, shoot me an email! Ok!\nHATRED CAN BE LIKE FOOD. IT GIVES YOU THIS ENERGY YOU CAN LIKE, LIVE OFF IT: Do you have Anglea Chase syndrome? “Much like Angela Chase, I can not, like, get through like, a sentence, without like, adding the word like, about like 9 million times, or whatever.” (@jezebel)\nGOING TO THE EPISCOPALIAN CHAPEL AND WE’RE GONNA GET MARRIED: Episcopal Church officials voted yesterday to allow bishops the latitude to bless same-sex unions — the second vote this week in favor of gay rights and one that may further divide the worldwide Anglican community. (@the washington post) And, at The New York Times, the Episcopalian’s First Openly Gay Bishop is interviewed:\n“The most significant thing that happened was [when] … a smaller group of bishops met to discuss [the same sex blessings] further. They said anyone could come, and it turned out it wasn’t a small group at all. There were 25 to 30 of us, and it turned out to be the most significant interaction I’ve had with the bishops since I’ve been elected. It was profound and it was inspiring. People stood up and spoke their own truth, both the pain and the joy. Everyone spoke honestly about what they needed to go home with, what they could live with and what they couldn’t.”\nMARISSSA!!: This counts as Sunday FUNday ’cause even though it’s sad, I’m happy they got her to the psychiatric hospital and that the 72-hour hold exists. They needed that shit for Britney. Save Marissa! – Mischa Barton Hospitalized on the ‘Brink of Disaster’ (@foxnews)\nGAGA: There’s this French German lady talking, but also there’s a Kermit the Frog outfit!\nGIGANTIC SURPRISE: Protect Marriage Washington is paying for signatures. Where are these motherf*ckers getting all this g*ddamn money from? Bluehost?\nGOING TO THE STRAIGHT CHAPEL AND WE’RE NOT GONNA GET MARRIED BUT IT’S GOOD TO GO ANYWAY: Changing Hearts and Minds One Wedding at a Time: “I’ll admit to being a bit wary to travel to Milwaukee to a wedding that would be populated by somewhat conservative Midwesterners and ex-frat boy football players. I tend to stick out like a big gay thumb in situations like this- the gender variant, out of the binary, sissy boy with a fauxhawk and rather fierce eyebrows (if I do say so myself) … Little did I realize that by going and just being ourselves at the wedding, we would change so many people’s views about gay couples.” (@pamshouseblend)\nLUCKILY WE LOVE EGGS: Dear Keira Knightley, no matter what anyone says, we love your boobs. Itty Bitty etc. Committee 4-EVA.\nWIZARDS! Harry Potter just keeps getting gayer. (@queerty)\nA 2005 interview with Rachel Maddow at Velvetpark “Rachel Maddow Before the Big Time” — she talks about leaving a trial of “happy hearts” like Shane, discovering “Oh, that’s what’s going on below my chin!” while at Stanford and sleeping with girls for the first time, and SO MUCH MORE!!\nMICHAEL F*CKING JACKSON: The Jackson 5 (or 4! jk!) have a reunion tour in the works.\nLIL FEMINIST: Emma Watson is probably the cutest thing ever. Here she describes herself as ‘a bit of a feminist.’\nM4W LEZ: Third Eye Blind is releasing a new album in August, so Stephen Jenkins plays some songs for us — including a song about being in love with a lesbian, which is awesome. It’s probs written about Rachel Maddow (who Jenkins has “an overwhelming and tragic crush on.”) but we’re not 100% sure.\nAuto-Straddler of the Day\nWe usually don’t have Team Picks on our Sunday Fundays, but I feel like stumbling across this‘List of Unusual Deaths’equires me to share it with you. (wikipedia)"} -{"text": "Last week's setup for Restaurant Wars prepped me for what I thought was sure to be an excellent rendition of the classic Top Chef challenge. I can always skip the infighting that happens at the start of these challenges, when the pushier chefs steamroll others into submission. Picking team captains from a restaurant pitch seemed like a good step forward—everyone had a fighting chance to put their ideas forward and sell the judges on their concepts and archetypal dishes. Winners Sheldon and Kristen got to choose their teammates and apparently accidentally chose along gender lines—a nice shift of power from the arbitrary please-draw-knives team selections. This all puts ownership of the challenge back on the chefs, which seemed brilliant until the last few minutes of tonight's episode, which resulted in one of the most disappointing eliminations of the season.\nThat's part of the beauty of Restaurant Wars, though. It takes the basic conceit of Top Chef—cooking well under often artificial constraints and with ridiculous time limits—and pushes it to its absolute extreme. By choosing a single executive chef to run the show, the challenge becomes necessarily personal. This typically works well for Top Chef—dip into the chefs hopes and dreams a little and it inspires them to stretch harder than they might otherwise. The problem, though, with this particular setup for Restaurant Wars, is that it creates only one person with a serious stake in the vision. Everyone else, as Josie puts it, becomes a soldier.\nThere are many things wrong with Josie. She's an ass, for one. She wears a headband all the fucking time, and that headband has her name on it, for two. But she's not wrong in this episode, and that's what kills me. I was so psyched for this installment of Restaurant Wars because I thought the setup would give the restaurants a clear direction and that we'd get to see more of the execution. What I didn't see coming was that it would suck any serious investment out of other team members and turn them into employees*. Or that Kristen would play the role of a noble ship captain, hanging on to the helm while her ship sinks, biting her tongue even though one of her asshole crew members ignited some dynamite in the hold and was like, \"Your ship, your problem!\"\nThat's only a slight exaggeration. Kristen is a tragic hero, but here's the thing: Now ain't the time, Kristen! Reality TV is no place for nobility. Josie knows this, and it's not because she's been on Top Chef before. It's because she's playing meaner, but also smarter. The judges were practically begging Kristen for a reason to send Josie home. They were almost shouting, \"Please tell us why we should send her home!\" But Kristen nobly (and stupidly) took all of the responsibility, putting the onus on the judges to do the right thing. The judges, though, didn't and couldn't have all of the information. If I've ever wanted to hit a trap-door button and see Padma disappear down a chute, it was tonight. She laid all of the responsibility on Kristen, when we've seen the opposite happen at judge's table a million times. \"You're responsible for your own dish\" is one of the mantras of judge's table. So here too the challenge's conceit comes back to bite; Kristen takes the fall for the dish, simply because she was in charge of the restaurant as a whole. (And she wasn't willing to let the blame fall elsewhere.) To be fair, I think Tom was mostly right when he said this vision existed only in Kristen's head. It's a hard thing to judge from the way the episode was cut, though—we didn't see a lot of direction from Sheldon on the finer points of Filipino cuisine, but that doesn't mean he didn't provide it. Stefan and Josh admittedly had little experience with it.\nThat's perhaps where Kristen's classic-French-with-a-twist concept fails, too. Everyone on her team had experience with classic French cooking, and therefore had a point of reference from which they could agree or disagree. Since Josie had experience cooking bouillabaisse, she had her own ideas about how long the stock should simmer, or how it should be plated. She doubted Kristen's leadership decisions from the offset, even bitching about Kristen to the other team, and then proceeded to half-assedly execute, sure that things were bound to fail… thereby causing them to fail.\n- * Lucky for Kristen and Sheldon, most everyone seems like they'd be excellent employees. The teams played hard in the kitchen, where it counted, and Stefan's assholery had nothing to do with Sheldon. His assholery and general skeeziness exists everywhere, all the time, independent of anyone else.(I'm still grossed out by his overuse of \"sloppy seconds\" last week and his comments about Carla's butt.) Brooke deserves serious credit for handling the front of the house like a pro and containing the disastrous Josie-Kristen fire to the kitchen. Josh and Stefan threw their full weight into prep and started service in great shape; Lizzie managed to deliver arguably the best dish of the night, a hot-soup version of charcuterie.\n- Last night I dreamed about leeches covering my feet and sucking the life out of me. They were all named Josie.\n- From the judge's comments, I was expecting Urbano to end up on the bottom. It almost sounded like a tossup, with the deciding factor falling to the food instead of the service. As much as I was disappointed at the elimination, I was glad to see Sheldon really step it up this episode. Judging from the menu, I'd eat at Urbano in a heartbeat.\n- The grade here doesn't reflect my feelings about who was eliminated—only how this episode stands up to the rest of the season. And while I felt like the challenge backfired a bit, it largely left the chefs alone to self-destruct. I don't think the judge's were wrong to eliminate Kristen. I think she did herself in."} -{"text": "ks=num_gpus, args=_args)\n startup_tasks.extend([_diarization.start(), _diarization_client.start()])\n\n # Init clustering cluster\n _diarization_clustering, _diarization_clustering_client = build_diarization_clustering_cluster(\n n_stacks=num_gpus, args=_args\n )\n startup_tasks.extend([_diarization_clustering.start(), _diarization_clustering_client.start()])\n elif diarization_validation_result.is_mis_configured():\n logger.warning(\n \"Diarization model resources are misconfigured, skipping diarization cluster initialization\"\n )\n services_mis_configured = True\n\n if (\n not services_mis_configured\n and stt_validation_result.is_valid()\n and vad_validation_result.is_valid()\n and alignment_validation_result.is_valid()\n ):\n logger.info(\"Initializing STT cluster and STT streaming\")\n\n _inference, _inference_client = build_stt_cluster(n_stacks=num_gpus, args=_args)\n startup_tasks.extend([_inference.start(), _inference_client.start()])\n\n # Init STT sessions\n _stt_streaming, _stt_streaming_client = build_stt_streaming(\n n_pools=num_gpus * 4, inference=_inference, diarization=_diarization\n )\n startup_tasks.extend([_stt_streaming.start(), _stt_streaming_client.start()])\n elif stt_validation_result.is_mis_configured():\n logger.warning(\"STT model resources are misconfigured, skipping STT cluster initialization\")\n services_mis_configured = True\n elif vad_validation_result.is_mis_configured():\n logger.warning(\"VAD model resources are misconfigured, skipping STT cluster initialization\")\n services_mis_configured = True\n elif alignment_validation_result.is_mis_configured():\n logger.warning(\"Alignment model resources are misconfigured, skipping STT cluster initialization\")\n services_mis_configured = True\n\n if not AUDIO_ENABLE_TTS:\n logger.info(\"TTS is disabled via AUDIO_ENABLE_TTS=false\")\n elif (\n not services_mis_configured\n and tts_validation_result.is_valid()\n and upsampling_validation_result.is_valid()\n ):\n logger.info(\"Initializing TTS streaming\")\n # Init TTS sessions\n _tts_streaming, _tts_streaming_client = build_tts_streaming(\n n_pools=num_gpus,\n args=_args,\n )\n startup_tasks.extend([_tts_streaming.start(), _tts_streaming_client.start()])\n elif tts_validation_result.is_mis_configured():\n logger.warning(\n \"TTS model resources are misconfigured, skipping TTS cluster and TTS streaming initialization\"\n )\n services_mis_configured = True\n elif upsampling_validation_result.is_mis_configured():\n logger.warning(\"Upsampling model resources are misconfigured, skipping TTS cluster initialization\")\n services_mis_configured = True\n\n if _inference_client is None and _stt_streaming_client is None and _tts_streaming_client is None:\n logger.warning(\"No resources are configured. The service will shutdown\")\n services_mis_configured = True\n\n if services_mis_configured:\n for task in startup_tasks:\n task.cancel()\n raise RuntimeError(\"Service resources are misconfigured\")\n\n await asyncio.gather(*startup_tasks)\n\n await StreamingSttResource.init()\n\n took = time.time() - start\n logger.info(f\"Initialized compute. {took=:.2f}s\")\n\n async def process_startup(self, *args, **kwargs):\n logger.info(\"API lifespan process startup starting\")\n start = time.time()\n\n TraceLogger.global_start()\n\n await self._init_helpers()\n await self._init_compute()\n\n took = time.time() - start\n took_with_imports = time.time() - IMPORT_START_TIME\n logger.info(f\"API lifespan process startup complete. {took=:.2f}s, {took_with_imports=:.2f}s\")\n\n async def process_shutdown(self, *args, **kwargs):\n await StreamingSttResource.terminate()\n\n await _stt_streaming_client.terminate()\n await _stt_streaming.terminate()\n\n await _inference_client.terminate()\n await _inference.terminate()\n await _diarization_client.terminate()\n await _diarization.terminate()\n await _diarization_clustering_client.terminate()\n await _diarization_clustering.terminate()\n\n if _tts_streaming_client is not None:\n await _tts_streaming_client.terminate()\n if _tts_streaming is not None:\n await _tts_streaming.terminate()\n\n _background_tasks.terminate()\n\n TraceLogger.global_shutdown()\n\n\napp = App()\n\n# Increase body part size limit to 1GB\nmedia_handler: MultipartFormHandler ="} -{"text": "The balance between technology and humanity is finally reaching equilibrium, thanks to data analysis. For decades, bankers have persuaded customers to use self-service channels. Now that people are banking online and through mobile channels, and accessing their cash from convenient stores and ATMs, there is a personal information gap that needs to be filled. The lack of personal interaction that gives e-banking its cost advantage and saves customers time can also be a detriment to cross-sale and marketing opportunities.\nAs an industry we have successfully minimized the situations that return sales and marketing insights, such as teller-customer conversations during deposits. Instead, we offer fast, efficient means of banking that have been widely adopted, now budgeting a couple minutes for tasks that once took five times that. While the benefits of self-service advancements are necessary to be competitive, and are for the greater good of the industry, we must not forget the need for those intersections of opportunity to derive a wealth of knowledge from the most fleeting amount of time. Data analysis can meet this need.\nThe pairing of big data and small data can detect when and how consumer behavior changes, alerting banks for both everyday opportunities and the major moments that only come a few times in a customer’s lifetime. There is more information available from online and mobile banking customers than one might think. We are habitual by nature, like it or not. So when normal banking behaviors change in the slightest, then it will typically serve the bank well to look into why there has been that change. Tapping into this data is not hard, but does require a complete shift for bank personnel and the management of e-banking channels. The two entities must work closely together.\nToday most banks have informative sites and a “contact us” form. Until they can get a sense of what customers are really doing online, banks’ Web presence amounts to little more than an advertising pamphlet. Even for banks that may review their analytics – at month’s end – to see that 14 people clicked through to their home equity loan page, what does that really amount to by then? Probably not new loans.\nWe have educated consumers to seek self-service tools, and they are inclined to check rates and research before making any big life decisions. The first place they will likely look is their primary financial institution, and banks have a chance to gain more market share at that very moment. After that moment passes, it is off to Google to search for additional offers. Most consumers are not confident in the best rate, for example, until they talk to someone.\nSince we’ve dwindled physical service channels, the current customer does not want to call his or her bank to request information. That would risk 15 minutes on hold, or a plethora of tedious automated responses. Instead banks should have the data that their customer has looked at mortgage rates, stopped logging into bill pay or clicked on an ad. From there it is up to the bank to respond to that change and provide assistance. Even educated consumers can benefit from some personal financial guidance. Maybe paying off a credit card bill can help lower their APR, or perhaps waiting three more months to accrue additional savings is all they need to forego an additional PMI fee.\nBanks are still service organizations; it takes human intervention to get results. Big data promises to connect these self-service inquiries to a service environment that closes deals. With it we can recognize these changes in a virtual environment and react accordingly. It is no different than traditional bank personnel’s training to react on their in-branch observations.\nBig data identifies the insights that were previously only available in branches. It’s a sales funnel that picks up on trend lines to replace the personal interaction we’ve lost. The next step is to make sure branch personnel know how to -- and are willing -- to leverage the information.\nHuman interaction must be ported over to the digital channel, and the use of big data is the essence of our transition to true omnichannel banking. If you could have a conversation with anyone that showed interest with any of your products, what would you do with that? The successful banks will have managed leads as leads, regardless from where they originate. Consumers need to trust their bank as a single, unified brand rather than as having different channels as part of a brand. At the same time, the institution needs to leverage a single view of the customer by eliminating the siloed functions of those channels.\nThere is a natural demographic maturation of consumers’ needs for different banking services, and big data provides accurate self-segmentation due to their behavioral changes. You can better identify the individuals who are actually in the market to buy, and know when to follow up with them. Collecting data over and over, time after time, to detect patterns and find anomalies creates unrealized gains for the bank; however, to capitalize on it, you must know where to look for it and what to do with it. We do have the power to end the interaction v. self-service contradiction, and move between those cross-sections of opportunity freely and without hesitation. Just step on the gas and go.\nWade Arnold is the CEO of Banno, which provides a data-enrichment and interpretation platform for financial services providers."} -{"text": "Roget's Int'l Thesaurus\nFowler's King's English\nThe King James Bible\nBrewer's Phrase & Fable\nFrazer's Golden Bough\nShelf of Fiction\nProse and Poetry: Sir Thomas North to Michael Drayton\n> His Position and Influence\nINDEX OF ALL CHAPTERS\nThe Cambridge History of English and American Literature in 18 Volumes\nVolume IV. Prose and Poetry: Sir Thomas North to Michael Drayton.\n§ 15. His Position and Influence.\nThe relation of Donne to Elizabethan poetry might, with some justice, be compared with that of Michael Angelo to earlier Florentine sculpture, admitting that, both as man and artist, he falls far short of the great Italian. Just as the grace and harmony of earlier sculpture were dissolved by the intense individuality of an artist intent only on the expression in marble of his own emotions, so the clear beauty, the rich ornament, the diffuse harmonies of Elizabethan courtly poetry, as we can study them in\nThe Faerie Queene, Hero and Leander, Venus and Adonis, Astrophel and Stella\ndisappear in the songs and satires and elegies of a poet who will not accept Elizabethan conventions, or do homage to Elizabethan models, Italian and French; but puts out to discover a north-west passage of his own, determined to make his poetry the vivid reflection of his own intense, subtle, perverse moods, his paradoxical reasonings and curious learning, his sceptical philosophy of love and life. It cannot be said of Donne, as of Milton, that everything, even what is evil, turns to beauty in his hands. Beauty, with him, is never the paramount consideration. If beauty comes to Donne, it comes as to the alchemist who\nglorifies his pregnant pot,\nIf by the way to him befall\nSome odoriferous thing, or medicinal.\nFrom the flow of impassioned, paradoxical argument, there will suddenly flower an image or a line of the rarest and most entrancing beauty. But the tenor of his poetry is witty, passionate, weighty and moving; never, for long, simply beautiful; not infrequently bizarre; at times even repellent.\nAnd so, just as Michael Angelo was a bad model for those who came after him and had not his strength and originality, Donne, more than any other single individual, is responsible for the worst aberrations of seventeenth century poetry, especially in eulogy and elegy. The metaphysical lyrists learned most from himthe conquering, insolent tone of their love songs and their splendid cadences. In happy conceit and movement, they sometimes excelled him, though it is only in an occasional lyric by Marvell or Rochester that one detects the same weight of passion behind the fantastic conceit and paradoxical reasoning. But it is in the complimentary verses and the funeral elegies of the early and middle century (as well as in some of the religious poetry and in the frigid love poems of Cowley) that one sees the worst effects of Donnes endeavour to wed passion and imagination to erudition and reasoning.\nAnd yet it would be a mistaken estimate of the history of English poetry which either ignored the unique quality of Donnes poetry or regarded its influence as purely maleficent. The influence of both Donne and Jonson acted beneficially in counteracting the tendency of Elizabethan poetry towards fluency and facility. If Donne somewhat lowered the ethical and ideal tone of love poetry, and blighted the delicate bloom of Elizabethan song, he gave it a sincerer and more passionate quality. He made love poetry less of a musical echo of Desportes. In his hands, English poetry became less Italianate, more sincere, more condensed and pregnant in thought and feeling. The greatest of seventeenth century poets, despite his contempt for our late fantastics, and his affinities with the moral Spenserians and the classical Jonson, has all Donnes intense individuality, his complete independence, in the handling of his subjects, of the forms he adopts, even of his borrowings. He has all his frequency and fulness of thought. He is not much less averse to the display of erudition, though he managed it more artfully, or to the interweaving of argument with poetry. But Milton had a far less keen and restless intellect than Donne; his central convictions were more firmly held; he was less conscious of the elements of contradiction which they contained; his life moved forward on simpler and more consistent lines. With powers thus better harmonised; with a more controlling sense of beauty; with a fuller comprehension of the science of his art, Milton, rather than Donne, is, in achievement, the Michael Angelo of English poetry. Yet there are subtle qualities of vision, rare intensities of feeling, surprising felicities of expression, in the troubled poetry of Donne that one would not part with altogether even for the majestic strain of his great successor.\nINDEX OF ALL CHAPTERS"} -{"text": " app.req_options.media_handlers[MEDIA_MULTIPART]\nmedia_handler.parse_options.max_body_part_buffer_size = 1024 * 1024 * 1024\n\napp.add_middleware(LifespanMiddleware())\n\n\nasync def _fail(\n request: Request,\n outcome: Union[Response, WebSocket],\n exc: Exception,\n status: HTTPStatus,\n message: str,\n):\n status = int(status)\n if status <= 499:\n logger.info(f\"{traceback.format_exc()}\\n{message}\") # Info because not an error\n else:\n logger.exception(message)\n if hasattr(request.context, \"metrics\"):\n exc_string = traceback.format_exception(exc)\n request.context.metrics.error_stacktrace = \"\\n\".join(exc_string)\n request.context.metrics.error_message = message\n\n if isinstance(outcome, Response):\n outcome.status = status\n outcome.media = ErrorResponse(error=Error(message=message)).dict()\n elif isinstance(outcome, WebSocket):\n if outcome.ready:\n if VERBOSE:\n logger.info(f\"Sending error to websocket: {message}\")\n await outcome.send_media({\"status\": status, \"error\": message})\n else:\n if VERBOSE:\n logger.info(f\"Closing websocket with error: {message}\")\n # Falcon convention is to add 3000 to the code to indicate a websocket error:\n # https://falcon.readthedocs.io/en/stable/api/websocket.html#error-handling\n await outcome.close(code=status + 3000, reason=message)\n else:\n raise ValueError(f\"Unknown outcome type: {type(outcome)}\")\n\n\nclass UnauthorizedException(Exception):\n pass\n\n\nasync def _unauthorized_401(request: Request, response: Response, exc: Exception, _, ws: WebSocket = None):\n message = f\"Unauthorized request\"\n await _fail(request, response or ws, exc, HTTPStatus.UNAUTHORIZED, message)\n\n\nasync def _bad_request_400(request: Request, response: Response, exc: Exception, _, ws: WebSocket = None):\n message = f\"Encountered an error while processing input: {str(exc)}\"\n await _fail(request, response or ws, exc, HTTPStatus.BAD_REQUEST, message)\n\n\nasync def _overloaded_503(request: Request, response: Response, exc: Exception, _, ws: WebSocket = None):\n message = \"Server overloaded, please try again later\"\n await _fail(request, response or ws, exc, HTTPStatus.SERVICE_UNAVAILABLE, message)\n\n\nasync def _ise_500(request: Request, response: Response, exc: Exception, _, ws: WebSocket = None):\n message = \"The server encountered an error while processing your request\"\n await _fail(request, response or ws, exc, HTTPStatus.INTERNAL_SERVER_ERROR, message)\n\n\n# Client-side errors\napp.add_error_handler(UserError, _bad_request_400)\napp.add_error_handler(AudioLoadError, _bad_request_400)\napp.add_error_handler(DownloadFailedException, _bad_request_400)\napp.add_error_handler(json.decoder.JSONDecodeError, _bad_request_400)\napp.add_error_handler(ValueError, _bad_request_400)\napp.add_error_handler(NotImplementedError, _bad_request_400)\napp.add_error_handler(OSError, _bad_request_400) # From PIL if image is corrupted\napp.add_error_handler(UnauthorizedException, _unauthorized_401)\n\n# Server-side errors\napp.add_error_handler(Exception, _ise_500)\napp.add_error_handler(HTTPInternalServerError, _ise_500)\napp.add_error_handler(RuntimeError, _ise_500)\napp.add_error_handler(AssertionError, _ise_500)\napp.add_error_handler(OverloadedException, _overloaded_503)\n\n\nclass RootResource:\n async def on_get(self, request: Request, response: Response):\n \"\"\"Readiness check endpoint\"\"\"\n\n\napp.add_route(\"/\", RootResource())\napp.add_route(\"/healthz\", RootResource())\n\n\nclass MetricsResource:\n async def on_get(self, request: Request, response: Response):\n \"\"\"Prometheus will hit this endpoint to pull metrics\"\"\"\n if _auth_server.enabled():\n # ToDo: enable once middleware migrated to the on-the-node reverse proxy.\n # Currently, metrics aren't supported for auth-on-the-node mode.\n pass\n else:\n response.content_type = prometheus_client.CONTENT_TYPE_LATEST\n response.text = prometheus_client.generate_latest()\n\n\napp.add_route(\"/metrics\", MetricsResource())\n\n\nclass PreStopResource:\n async def on_get(self, request: Request, response: Response):\n \"\"\"Kubernetes will hit this endpoint before stop\"\"\"\n if _auth_server.enabled():\n # ToDo: enable once middleware migrated to the on-the-node reverse proxy.\n # Currently, metrics aren't supported for auth-on-the-node mode.\n pass\n else:\n if _metering is not None:\n logger.info(\"Handling kubernetes termination gracefully from prestop hook.\")\n try:\n fut = _metering.report()\n # Wait for the publish future to resolve before exiting.\n futures.wait([fut], return_when=futures.ALL_COMPLETED)\n except Exception as e:\n # Report it without faili"} -{"text": "Microsoft Corp.: Penny-Pinchers' ChoiceBy Steven Vonder Haar | Posted 2002-07-10 Email Print\nDossier: To gain traction in the streaming media market, Microsoft Corp. is using a time-tested strategy: It's bundling its technology into the operating system.\nTo gain traction in the streaming media market, Microsoft Corp. is using a time-tested strategy: It's bundling its technology into the operating system.\nMicrosoft's Windows Media platform is woven into the Windows operating system, creating an environment where companies looking to deploy online audio and video applications can do so using \"free\" applications incorporated into key Windows products. Likewise, streaming publishing tools are offered as a downloadable add-on to Microsoft's popular Office suite. As a result, Microsoft's streaming software platform is an attractive choice for cost-conscious corporate technology managers.\n\"I'm not a Bill Gates advocate or bigot,\" says Allen Meyers, chief network architect for San Diego Data Processing Corp., the nonprofit entity that manages technology for the city of San Diego, Calif., including its growing usage of streaming media. \"I'm just a keep-it-simple person and having everything in the operating system does simplify things.\"\nBut even simplicity can have its costs. Network managers who have used streaming systems from both Microsoft and its chief rival, Real-Networks Inc., say that Real updates its technology more frequently and provides better customer support.\n\"If you need support information on Windows Media, your best bet is to scrounge the news groups,\" says Jason Flenniken, lead multimedia developer with Vignette Corp. And because the Windows Media server is bundled into Windows NT, the upgrades to Microsoft's streaming server can be limited to upgrades in the overall server operating system.\"Microsoft does a million things, and Real can focus just on streaming,\" Flenniken says.\nOther corporate users are satisfied with improvements in Microsoft's streaming offerings. Findlay, Ohio-based Marathon Ashland Petroleum, for instance, uses the Windows Media platform to Webcast employee meetings and executive speeches to its workforce nationwide. The company has noticed significant improvements in the technology since first using it three years ago, according to Robert Calmus, media producer at Marathon.\n1 Microsoft Way, Redmond, WA 98052\nGroup Vice President, Platforms\nHeads unit responsible for the Windows franchise, which integrates streaming applications developed by Windows Media division. He joined Microsoft in 1990 to work on the company's network product strategy.\nCorporate Vice President, Windows New Media\nPoole was co-founder of eShop Inc., which was acquired by Microsoft in 1996. He oversees Microsoft's streaming efforts in addition to the content security business unit and its recently formed eHome division.\nGeneral Manager, Windows Digital Media Division\nOversees operations of the streaming technologies unit.\nAnchored by revenues from Windows PC operating system and Office productivity software, the company is establishing beachheads with Web applications and digital device platforms. In streaming, it develops a player, server and tools for producing and distributing digital audio and video.\nMarathon Ashland Petroleum\nProject: Petroleum refiner uses Windows Media technology platform to make department meetings, speeches and more available to its workforce.\nWharton School, University of Pennsylvania\nDirector, Advanced Technology Development\nProject: Makes selected classes and guest lectures available online using Windows Media platform.\nSenior Systems Analyst\nProject: Heavy-equipment manufacturer is in midst of expansion of its use of streaming technology.\nMedia Development, E-Learning Specialist\nProject: Carmaker uses Windows Media platform to deliver on-demand training clips to 4,500 technicians in dealerships nationwide.\nSafeco Life and Investment\nRelationship Manager for Financial Services Distribution\nProject: Using Windows Media platform to develop up to 40 Webcasts annually featuring interviews with portfolio managers.\nLead Multimedia Developer\nProject: Uses Windows Media technology platform to distribute up to three corporate Webcasts developed weekly.\nExecutives listed here are all users of Microsoft's Windows Media technology platform. Their willingness to talk has been confirmed by Baseline."} -{"text": "Maine Honors Bates’ 150th\nPresident Hansen accepts proclamation from Gov. Baldacci as State Sen. Peggy Rotundo and Jane Ault Lindholm ’37 (seated) applaud.\nThe state of Maine’s pivotal role in the founding of Bates College 150 years ago made Monday afternoon’s Statehouse celebration, featuring a “Bates College Day” proclamation by Maine Gov. John Baldacci and a legislative joint resolution sponsored by State Sen. Peggy Rotundo, D-Androscoggin, a proud event for both college and state.\nThe 2 p.m. gathering took place at the Augusta Statehouse in the Legislative Council Chambers.\n“We are fortunate to have Bates College in our state,” Baldacci said in his remarks. “Not only for the good work it does in Lewiston-Auburn, but throughout the state, and for the recognition that we get because of the greatness of the institution throughout the country.”\nBaldacci’s proclamation compared the motto of Bates College, Amore ac Studio, translated “with ardor and devotion,” to “the spirit evoked by the state of Maine motto, Dirigo, ‘I lead,’ admirable qualities embodied by Bates graduates who have served the public good of our state and our nation, epitomized by the late Edmund S. Muskie of the Class of 1936, Maine governor, U.S. senator, U.S. Secretary of State, and son of Maine….”\nBaldacci, in his remarks, noted that “sometimes what seems like a modest bill can have wonderful long-term effects for Maine. The 1855 charter that authorized the institute that later became Bates College is a signal example…. Starting as almost entirely a Maine institution, it has become a world-renowned institution, and part of Maine’s reputation for excellence and productivity.”\nBaldacci noted also that Bates was recently named the No. 1 “Best Value” college in America by The Princeton Review “for its combination of superb academic offerings, high graduation rates, and reliable and generous financial aid awards.”\nElaine Tuttle Hansen, president of Bates, noted Bates founder Oren Cheney’s efforts to seek passage of the bill to establish what was then called the Maine State Seminary. While the final act of passage took only a few hours in March 1855, he toiled for months to secure its approval.\n“Then as perhaps now, the bill addressed primarily the State’s commitment of an allocation of funds for the Maine State Seminary,” she said. “The simple truth is that probably Bates would not have existed without some sustained lobbying and some state seed money. Some things never change.”\nHansen also invited the gathered guests to “take part in Sesquicentennial events and celebrations, to learn more of the history of the College, and to join us in an ongoing discussion of how Bates, founded on principles of academic rigor and human egalitarianism, can honor its founders’ dreams as it continues to become one of the finest liberal arts colleges in the world.”\nIn comments prior to today’s event, Baldacci reflected on Bates’ contemporary mission, both in Maine and around the world. “Each successive generation grows up to face a new set of challenges, whether here in Maine or across the nation and globe,” he said. “What should hearten us all is that great liberal arts colleges like Bates College excel at giving men and women adaptable skills to succeed in a rapidly changing world and to contribute to its betterment. At 150 years old, Bates has never been more relevant and important.”\nWith 37 legislators joining Rotundo as co-sponsors of the joint resolution, the Maine Legislature, with its vote on April 28, honored the public-spirited efforts to found the College in 1855.\nThose efforts were led by Cheney, a former member of the Maine Legislature, who, in the words of today’s resolution, “saw a great, unmet need in the State: to broaden the educational opportunities for young men and women through the founding of a new institution of higher learning….”\nIn its conclusion, the joint resolution honors Bates as a college that “prizes the inherent values of a demanding education and the profound usefulness of learning and understanding and is committed to academic rigor and ensuring in all its efforts the dignity of the individual and…for its unswerving commitment to providing an education in the liberal arts and sciences, recognizing their critical role in a just and civil society….”\nRotundo is associate director of the Center for Service-Learning at Bates, and among the joint-resolution cosponsors are five Bates alumni (Sen. Kevin Raye ’81, R-Washington, and representatives Gerald Davis ’59, R-Falmouth; Kenneth Lindell ’86, R-Frankfort; Elaine Makas ’67, D-Lewiston; and Sawin Millett ’59, R-Waterford) and a Bates parent, Sen. Michael Brennan, D-Cumberland, whose son Ryan is a member of the Class of 2007."} -{"text": "ng the service\n logger.exception(f\"Failed to report container usage\", exc_info=VERBOSE)\n else:\n logger.info(\"Skipping kubernetes termination gracefully from prestop hook.\")\n\n response.media = {\"result\": \"succeeded\"}\n response.status = HTTPStatus.OK\n\n\napp.add_route(\"/prestop\", PreStopResource())\n\n\nasync def _load_audio_duration(request: Request, value: bytes) -> float:\n def run() -> float:\n with fireutil.log_time(f\"Loading audio duration of size {len(value)}\"):\n try:\n audio_len_seconds = load_audio_duration(value)\n except RuntimeError as e:\n base64_preview = base64.b64encode(value[:128]).decode(\"utf-8\")\n raise UserError(\n f\"Could not load audio. Please check your audio and try again. \"\n f\"Ensure you are uploading the raw binary audio and not an encoded \"\n f\"version (e.g. base64) or a file path or URL. First 128 bytes in base64: {base64_preview}\"\n ) from e\n\n return audio_len_seconds\n\n loop = asyncio.get_running_loop()\n return await loop.run_in_executor(_audio_duration_executor, run)\n\n\ndef _preprocess_segments_for_captions(segments: List[TranscribeSegment]):\n # HACK: the Whisper result writers (https://github.com/openai/whisper/blob/90db0de1896c23cbfaf0c58bc2d30665f709f170/whisper/utils.py#L200)\n # join together text from words without any separator. There seems to be some\n # sort of misaligned contract of whether the words returned in the `segment`\n # structure have whitespace embedded (as in the output of e.g. TikToken)\n #\n # The OAI API returns `words` without any whitespace. This leads me to\n # believe that their API may internally process words on the original\n # tiktoken tokens, then calls strip() on them before returning to the\n # user\n #\n # Nevertheless, we are going to try to make the SRT/VTT writers\n # work by prepending a space to each word after the first word, in each\n # segment\n new_segs = [copy.copy(seg) for seg in segments]\n\n for segment in new_segs:\n new_words: List[TranscribeWord] = []\n for i, word in enumerate(segment.words):\n if word.start is None:\n word.start = segment.start\n if word.end is None:\n word.end = segment.end\n\n if i > 0:\n word = replace(word, word=f\" {word.word}\")\n\n new_words.append(word)\n segment.words = new_words\n\n return new_segs\n\n\ndef _format_transcription_verbose_json(\n request_id: str,\n transcribe_text: TranscribeText,\n duration_sec: Optional[float],\n params: Union[TranscriptionParams, StreamingTranscriptionParams, TranslationParams, AlignmentParams],\n) -> Dict:\n timestamp_granularities = []\n if isinstance(params, (TranscriptionParams, TranslationParams)):\n timestamp_granularities = params.timestamp_granularities\n elif isinstance(params, (AlignmentParams, StreamingTranscriptionParams)):\n timestamp_granularities = [TimestampGranularity.WORD, TimestampGranularity.SEGMENT]\n else:\n raise UserError(f\"Unknown params type: {type(params)}\")\n\n # Serialize\n words = None\n segments = None\n if timestamp_granularities:\n include_words = TimestampGranularity.WORD in timestamp_granularities\n segments_dicts = [s.to_dict(include_words=include_words) for s in transcribe_text.segments]\n if TimestampGranularity.WORD in timestamp_granularities:\n words = [w for s in segments_dicts for w in s[\"words\"]]\n if TimestampGranularity.SEGMENT in timestamp_granularities:\n segments = segments_dicts\n\n text_dict = {\n \"task\": \"transcribe\",\n \"language\": transcribe_text.language,\n \"text\": transcribe_text.text,\n \"request_id\": request_id,\n }\n if words is not None:\n text_dict[\"words\"] = words\n if segments is not None:\n text_dict[\"segments\"] = segments\n if duration_sec is not None:\n text_dict[\"duration\"] = duration_sec\n if transcribe_text.embeddings is not None:\n text_dict[\"embeddings\"] = transcribe_text.embeddings\n\n return text_dict\n\n\ndef _format_transcription(\n request_id: str,\n transcribe_text: TranscribeText,\n duration_sec: Optional[float],\n params: Union[TranscriptionParams, StreamingTranscriptionParams, TranslationParams, AlignmentParams],\n) -> Tuple[Optional[str], Optional[Dict], HTTPStatus, str]:\n if params.response_format == \"json\":\n text = None\n media = TranscriptionResponse(text=transcribe_text.text).dict()\n status = HTTPStatus.OK\n content_type = \"application/json\"\n elif params.response_format == \"verbose_json\":\n text = None\n media = _format_transcription_verbose_json(request_id, transcribe_text, duration_sec, params)\n status = HTTPStatus.OK\n content_type = \"applicatio"} -{"text": "There could be something shocking going on in our bodies. Well, perplexing at least. A team of mechanical engineers has found that the tough, flexible tissue that makes up blood vessels has surprising electrical properties – at least in pigs.\nWhat this could possibly mean for us, I will come to later. But the reason this result is surprising is that the property in question – what scientists call ferroelectricity – is usually found in artificial crystals and synthetic materials used for TVs, displays, computer memory and sensors.\nFerroelectricity is rather like an electrical equivalent of magnetism. In a ferroelectric substance, one side of the material has a positive electrical charge and the other a negative charge, created through an uneven distribution of electrical charges in its constituent atoms or molecules. Just as a magnetic field can make a compass needle change direction, so an electric field can pull all the little electrical charges into a different alignment, switching the charge in the opposite direction.\nThis “switchability” is what makes these ferroelectric crystals highly sought after for the likes of liquid-crystal displays. The researchers who discovered this strange effect - Yuanming Liu and colleagues at the University of Washington, Seattle and the University of Boston - usually work on synthetic materials like these to build energy harvesting and storage devices. But Liu knew that other unexpected electrical phenomena had been found in bone and other biological substances. And ferroelectricity was reported last year in the hard mineral coating of seashell. Li wondered whether soft biological tissues like blood vessels might show the effect too.\nShot to the heart\nHe and his colleagues took a thin slice of the main artery transporting blood from the heart, called the aorta, and placed it in a special microscope containing a sensitive needle tip. The tip detected the tell-tale signal associated with ferroelectricity, and what is more, they found that they could switch this polarization with an electric field.\nWhy on earth should any animal tissue be ferroelectric? Well, as I mentioned, the living world does make use of some unexpected material properties. Bone, for example, is piezoelectric, which as it happens is another useful kind of behaviour we rely on for everyday technologies. It is exploited, for instance, in pressure and vibration sensors like those in your computer keyboard, because piezoelectric materials produce an electrical charge when pressure is applied to it. It seems that bony creatures use this principle too: the electrical response to squeezing of bone helps tissues gauge the forces they experience. In seashells, meanwhile, piezoelectricity helps prevent cracks and fractures by dissipating the energy of a shock impact as electricity.\nOK – but ferroelectricity? Who needs that? Engineers Bin Chen and Huajian Gao have speculated that the property might provide another way for the tissue to register forces, and perhaps monitor blood pressure. Or perhaps the property could sense blood temperature (because ferroelectricity is temperature-sensitive), or, as in seashells, disperse mechanical energy and prevent damage. Or maybe it could even act as a sort of “tissue memory” in conjunction with nerves. Liu, meanwhile, speculates that ferroelectricity switching might alter the way cholesterol, sugars or fats stick to and harden blood vessels.\nNotice, though, how these researchers have no sooner identified a new characteristic of a living organism than they start to wonder what it is for. The assumption is that there must be some purpose: that evolution has selected the property because it confers some survival benefit. In other words, the property is assumed to be adaptive. This is a good position to start from, because most material properties of tissues are indeed adaptive, from the flexibility of skin to the transparency of the eye’s cornea. But it is possible that ferroelectricity could be just a side-effect of some other adaptive function of the tissue – a result of the way the molecules just happen to be arranged, which, if it does not interfere with other functions, will go unnoticed by evolution. Not every aspect of biology has a “purpose”.\nAll the same, tissue ferroelectricity could be handy. If Liu is right to suspect that ferroelectricity can influence the way blood vessels take up fats, sugars or lipids, then switching it with an applied electric field might help to combat cardiovascular conditions that result from build-up, such as thrombosis and atherosclerosis. If true, then what seems like an esoteric phenomenon could help tackle conditions that kill millions of people worldwide every year.\nIf you would like to comment on this story or anything else you have seen on Future, head over to our Facebook page or message us on Twitter."} -{"text": "I almost got to do big-person, grown-up, adult-type stuff the other day. Almost.\nYou see, several weeks ago, I received a summons from my county courthouse for jury duty. Throughout the years, I have gotten several of these letters in the mail asking me to serve as a juror, but each and every other previous time, for some reason or another, the case on the day I was scheduled to appear had been settled out of court, and I didn't even have to show up.\nI had gotten so used to this scenario, that I was kind of shocked last Sunday evening when I called the courthouse and the automated answering machine told me that, in fact yes, there was a case to be decided, and yes, my presence was required.\nI had mixed emotions. On one hand, I have always been curious about how our country's legal system works, and I always want to do my part as an American citizen. But on the other hand, I don't know of anyone who wants to willingly step foot in a courtroom. Especially when this person may or may not possess 23-year-old illegal bottle rockets that he attained before he was married, that he may or may not have gotten on a trip to Gatlinburg.\nAdd to this the fact I am presently suffering from allergies, and you can see why I dreaded the thought of sitting in a solemn, quiet courtroom. Every 10 to 16 seconds, I feel a compelling need to blow my nose. And not just a pleasant little puff of air into a tissue followed by a polite, \"You'll have to excuse me. I'm a little stuffed up.\" No, this is the kind of proboscis clearing that produces a sound similar to that of the Heimlich maneuver being applied to a large Canada Goose. This procedure is always loud and occasionally messy. A sound that a defendant doesn't want to hear in a court of law.\nBut come Monday morning, I put all this behind me. It was time to act like a big boy and do my civic duty. I stuffed my pockets with cough drops and Kleenex, and drove to the courthouse to dispatch justice. It was kind of exciting.\nSniffling and clearing my throat, I entered the large room where everyone that gets summoned waits to receive further instructions, I told the check-in lady what my last name was and how many miles it was from my home to the courthouse. With that, she checked some stuff on a piece of paper, handed me a pamphlet on what would be required of me, and gave me my juror badge. From this point on in life, I pretty much plan on always introducing myself as \"Juror 86.\"\nAs I turned my mucus-filled head to find a seat to plant myself, I did what I used to do back in high school. I searched out the seat that was the farthest from the front of the room and the closest to the door. I spied an empty chair between two other gentlemen in the back of the room, and I made a beeline for it. I probably would have had my own court case if anyone had tried to beat me to that chair.\nAs I sat there in that room, waiting for something to happen, I started reading the little pamphlet they gave me. I didn't finish reading it because the third sentence had a big word in it. After a few minutes, they played a VHS tape again telling us of our duties. With my eyes watering and a constant tickle in my throat, I sat there relishing in the fact that I was about to take part in assisting the American legal system, helping to preserve the very Constitution that makes this country the greatest place in the world. I contentedly leaned back in my chair.\nI will give this one warning to anyone who is called to serve as a juror in Bureau County, Illinois. Be wary of the chairs. The particular chair that I was in, was made of a particularly sturdy kind of wooden construction with rollers on the bottom. The kind of chair that I can picture Gregory Peck using in \"To Kill a Mockingbird.\" I think it was pretty much exactly like everybody else's chair in the room, but to tell you the truth, I didn't pay that much attention. My chair swiveled, and I think that it squeaked a little when I rotated to the left. Other than that, it was a good chair. Or so I thought.\nWhen I leaned back in that chair, everything at first seemed fine and dandy. However, and I'm sure that anyone who has leaned back too far in a chair can attest, there is that certain tipping point when every thing rapidly changes from \"peachy keen\" to, \"Oh my gosh! I'm going to look like an idiot when I fall out of this chair in the back row of the Bureau County Board of Supervisors board room!\"\nThere is no more terrifying of a feeling in this world than thinking you have leaned back in a chair too far. Fortunately, I was able to pull myself out of this free fall and kept my seated altitude. Looking back, I doubt if I ever was in danger of going all the way to the floor, but that chair sure did give that immediate impression.\nIn fact, in mid-descent, as my head snapped back and my terrified, bloodshot eyes focused on the ceiling tiles of the room, I audibly uttered three-quarters of a four-letter word that I usually reserve for home repair projects and our cat. Luckily for me, my allergies were apparent to most of the potential jurors in the room, and the rows of people who sat in front of me just thought I sneezed. But those two guys I was sitting between ... I'm pretty sure they know I'm an uncoordinated, foul-mouthed idiot that wreaks of Hall's cherry, triple soothing action cough drops.\nTo finish the story, after about 45 minutes of waiting, the judge came out and told all of us that due to some unforeseen circumstances, there would not be a case that morning, thanked us for our service and dismissed us. This was the closest to being an actual adult I've ever got.\nYou will have to excuse me now. I have a goose to squeeze.\nYou can contact Wallace at firstname.lastname@example.org. You can follow him on his blog at http://gregwallaceink.blogspot.com."} -{"text": "n/json\"\n elif params.response_format == \"text\":\n text = transcribe_text.text\n media = None\n status = HTTPStatus.OK\n content_type = \"text/plain; charset=utf-8\"\n elif params.response_format == \"srt\":\n f = io.StringIO()\n writer = WriteSRT(output_dir=None)\n segments = serialization.dumps(\n _preprocess_segments_for_captions(transcribe_text.segments),\n filter_none_=True,\n keep_keys={\"start\", \"end\"},\n )\n writer.write_result({\"segments\": segments}, file=f)\n\n text = f.getvalue()\n media = None\n status = HTTPStatus.OK\n content_type = \"text/plain; charset=utf-8\"\n elif params.response_format == \"vtt\":\n f = io.StringIO()\n writer = WriteVTT(output_dir=None)\n segments = serialization.dumps(\n _preprocess_segments_for_captions(transcribe_text.segments),\n filter_none_=True,\n keep_keys={\"start\", \"end\"},\n )\n writer.write_result({\"segments\": segments}, file=f)\n\n text = f.getvalue()\n media = None\n status = HTTPStatus.OK\n content_type = \"text/plain; charset=utf-8\"\n else:\n raise UserError(f\"Response type {params.response_format} not supported\")\n\n return text, media, status, content_type\n\n\nasync def _return_transcription(\n request: Request,\n outcome: Union[Response, WebSocket],\n params: Union[TranscriptionParams, TranslationParams, AlignmentParams],\n batch: Union[TranscriptBatch, AlignedTranscriptBatch],\n duration_sec: Optional[float],\n):\n transcription_text = batch.texts[0]\n\n # Response\n text, media, status, content_type = _format_transcription(\n request.context.request_id, transcription_text, duration_sec, params\n )\n\n # We put POSTPROCESSING_FINISHED here after all cpu intensive tasks are done\n batch.timings.add_timestamp(TimingType.POSTPROCESSING_FINISHED, time.time())\n batch.timings.add_latency(LatencyType.POSTPROCESSING_MS)\n batch.timings.add_latency(LatencyType.CUMULATIVE_GPU_TIME)\n\n # Request\n request.context.metrics.model = getattr(params, \"model\", None)\n request.context.metrics.vad_model = getattr(params, \"vad_model\", None)\n request.context.metrics.alignment_model = getattr(params, \"alignment_model\", None)\n request.context.metrics.timings = batch.timings\n request.context.metrics.token_latency_seconds = batch.token_latency_seconds\n request.context.metrics.tokens_per_second = batch.tokens_per_second\n request.context.metrics.vram_start_bytes = transcription_text.vram_start_bytes\n request.context.metrics.vram_end_bytes = transcription_text.vram_end_bytes\n request.context.metrics.output_len_bytes = len(transcription_text.text)\n request.context.metrics.output_len_tokens = sum(len(s.tokens) for s in transcription_text.segments)\n request.context.metrics.output_language = transcription_text.language\n request.context.metrics.output_num_segments = len(transcription_text.segments)\n request.context.metrics.output_retry_count = int(\n sum([(s.retry_count or 0) for s in transcription_text.segments]) / len(transcription_text.segments)\n )\n # active count -1 for the randezvous\n request.context.metrics.sessions_asr_concurrent_total = _stt_streaming_client.get_active_count() - 1\n if request.get_header(\"fireworks-test-request\") in {\"true\", \"True\"}:\n request.context.metrics.is_fake_request = True\n\n # Transmission start\n request.context.metrics.timings.add_timestamp(TimingType.TX_STARTED, time.time())\n\n if isinstance(outcome, WebSocket):\n if text is not None:\n await outcome.send_text(text)\n if media is not None:\n await outcome.send_media(media)\n elif isinstance(outcome, Response):\n if text is not None:\n outcome.text = text\n if media is not None:\n outcome.media = media\n outcome.status = status\n outcome.content_type = content_type\n if request.get_header(\"fireworks-test-request\") in {\"true\", \"True\"}:\n outcome.set_header(\"fireworks-test-request\", \"true\")\n else:\n raise ValueError(f\"Unknown outcome type: {type(outcome)}\")\n\n\nasync def _transcribe(\n batch: Batch,\n duration_sec: float,\n offset_sec: float = 0.0,\n batch_diarize: Optional[Batch] = None,\n diarize_config: Optional[DiarizeConfig] = None,\n) -> Union[TranscriptBatch, AlignedTranscriptBatch]:\n try:\n output_type = AlignedTranscriptBatch if batch.task.do_word_timestamps else TranscriptBatch\n if batch_diarize is not None:\n package, package_diarization = await asyncio.gather(\n _inference_client.process(batch.task.id, batch, output_type),\n _diarization_client.process(batch_diarize.task.id, batch_diarize, EmbeddingBatch),\n )\n # Reduce into batch with single item\n reduced_batch = ReducedEmbeddingBatch.from_embedding_batch(batch="} -{"text": "The alleged culprits behind the Boston Marathon bombing have been found. Yet all along, leftist have wanted for nothing other than for it to be revealed that white men are responsible for the attack.\nOnly the self-delusional and the deceptive, the ignoramus and the liar, will deny that over the course of the last five decades, our politically correct zeitgeist has demonized white men while idealizing every other group. The left has been remarkably successful at commandeering the culture with The Script: an anti-white, anti-Christian, and anti-male narrative.\nAccording to The Script, the universe, much like it is depicted in, say, the Star Wars mythos, is a rather simple place. Like the fictional universe of Star Wars, the fictional universe of the leftist’s imaginings is defined by a perpetual contest between the forces of good and the forces of evil. Unlike that of Star Wars, though, the epic battle at the heart of the leftist’s fantasy world is essentially racial in character: White Christian (heterosexual) men constitute the evil Empire from which the rebel alliance of non-whites, non-Christians, women, and homosexuals seek emancipation.\nThe latest script writer is Salon.com writer David Sirota. His article, “Let’s Hope the Boston Marathon Bomber is a White American,” is instructive for several reasons. First, Sirota expresses as loudly and clearly as anyone the left’s wish that the culprits behind the Boston bombing are white. Secondly, trading in such stock leftist ideas as “white privilege,” Sirota supplies us with insight into The Script. Finally, in bringing The Script to bear upon this one episode, Sirota’s piece discloses a truth that far too many on the right still refuse to acknowledge: virtually every episode in American political life is determined by The Script.\nIn other words, every political issue is determined by the left’s obsession to effectively eradicate every last vestige of the culture invented by whites generally, and white men in particular.\nFar from unveiling some idiosyncratic wish on his part, Barack Obama represented his fellow travelers on the left when he pledged to “fundamentally transform” the country, for to transform anything is to destroy it. Take, for instance, a seed. A seed must first die before the new life, the plant or the crop, can spring from it. Or consider a caterpillar. A caterpillar must essentially die, must cease being a caterpillar, before it can come to life as a butterfly. Jesus, too, references the need for “fundamental transformation” when He instructs His disciples that lest they be “born again,” they will not be able to partake of eternal life.\nTransformation necessarily demands the extinction of its subject. Hence, when Obama promised to transform America, he basically promised to perfect the old leftist program of a sort of cultural or symbolic genocide.\nMore accurately, the culture upon which Obama and the left set their sights, the universe that is center stage in The Script, is what we may call John Wayne’s World. Indeed, The Script itself may as well be called, Kill the Duke.\nFrom the leftist’s vantage point, the traditional or historical face of America is basically that of John Wayne’s—and the Duke signifies everything that is wrong in the world. A particularly masculine white Christian man, the persona that Wayne brilliantly succeeded in crafting epitomized the rugged, but law-revering, individualism that leftists detest. “God, Guns, and Guts made America Free,” may be the saying plastered on the memorabilia of many an American patriot, but the Duke is its incarnation.\nWhether battling the Japanese in one of his World War II films, American Indians in one of John Ford’s Western classics, or dragging Maureen O’Hara miles across Ireland before doing battle with her bully of a brother, Wayne was unapologetically, even pathologically, un-politically correct. He resolutely defied The Script. Moreover, he did so without dropping a sweat.\nWhen leftists look back on America, it is John Wayne’s America—Wayne’s World—that they see. And while they have made awesome strides in relegating this America to the dustbin of history, whenever The Script is resisted or thwarted, it is due, as far as they are concerned, to the ghost of the Duke rising again.\nFrom immigration to “gay marriage”; abortion to capital punishment; Obamacare to allowing open homosexuals in the military and women in combat; “gun-control” to “affirmative action,” there is scarcely a conceivable issue over which they fight that the left doesn’t regard as a battle in the war to kill the Duke. It is crucial that we grasp this.\nIt is also crucial that we realize that this is why the left wants to find a new white villain responsible for the Boston Marathon bombing."} -{"text": "I recently had the opportunity to read the book “Bitter is the New Black (Confessions of a condescending, egomaniacal, self-centered Smart-ass, or why you should never carry a Prada Bag to the unemployment office)\", a memoir by Jen Lancaster. After reading the entire book, I really didn’t know what to think or where to start in order to provide a fair assessment. Not really being one to ever be at a loss for words, this was almost a new experience for me. Bitter is the New Black is a book that truly defies explanation. I needed to see what others were saying about it. A glance at the hundreds of reviews on this book ran the full gamut of emotions from absolute hate to delightfully entertaining and terrific. Originally, I was leaning toward the low end.\nThe book starts off entertaining enough. After providing a series of correspondence to set the pace, the book opens with Jen Lancaster (author) aboard a boat on a company trip. Jen works at Corp.com and is making a great deal money. She is a shining star in the organization and is earning almost a quarter of a million dollars a year. Jen is also involved with her current boyfriend/fiancé Fletch, who also earns a very good living. From the very start of the book, we are introduced to a very opinionated, conceited, self serving, egotistical woman who is also a shopaholic with absolutely no self discipline. Bitter is the New Black leads us through Jen’s self-induced, out of control, downward financial spiral after being laid off. Even as her situation gets worse, she gains no insight nor does she try to exercise control over any of her self destructive habits.\nThere were many times that I simply did not want to continue reading the book. I thought the story to be unrealistic and the character to be beyond ridiculous with no self redeeming qualities. Another annoying aspect of the book was that there were footnotes on the bottom of almost every page. Not the normal footnotes one would expect, but the footnotes were additional sarcastic remarks the author (Jen) felt that she needed to make. For example a line in the book read “I still prefer Walsh Park, but it’s a half hour walk”. The footnote reads “Who am I kidding? It’s a five minute drive.” While the comments in the footnotes were applicable to something the author stated, I found the need to continually look at the footnotes for yet another sarcastic comment, to be very distracting for a book of that length.\nWhat I decided to look for instead were the parts of the book that I found people facing unemployment could identify with. The first scene was the manner in which Jen’s layoff was handled. One day, Jen receives a call from a John O’Donnell, Vice President of the Southern sales region, praising her work and giving her a promotion. Two days later, Jen’s supervisor calls her into the office and tells Jen that her position was being eliminated and that she was being laid off. Jen was absolutely astonished, primarily because of her performance in the office and her recent promotion. Jen stated that she was very upset at being fired, in which the supervisor corrected Jen and said she was being laid off, not fired. A reader having been through a similar circumstance would appreciate the tone and emotional depth of the conversation.\nThere were other scenes throughout the book where the story was definitely realistic in dealing with unemployment, but as a reader, I was too annoyed with the writer’s attitude to give much appreciation to that fact. Another such scenario was the end of the book. As to not tell the end of the book, I will leave it at that.\nNow most people will skip certain pages in the book because they have very little to do with the book itself. The author’s note is one such page. I think to truly appreciate this book, one actually had to go back and read the author’s note found in the beginning of the book. I won’t disclose the contents here, but this is what actually turned the book around for me and helped me to write this review. It, in fact, became an “ah-ha” moment where I realized that I had read the book with the wrong attitude. It forced me to remember that there are many people in this world just like the author.\nIn “Bitter is the New Black” the author was telling the tale of who she was when she became unemployed. Sitting here trying to make sense of the book I had to learn to appreciate the tale of a person like the author. Even when things are at their worse, there are people that simply can not make the adjustments that they need to make in order to prevent or stop a continual downhill financial spiral.\nTo appreciate the book, I had to stop judging the author/main character. It’s not an easy jump from having it all to having nothing, especially if you have an attitude or complete lack of control like Jen. It was that one moment for me when I realized that while, yes the author made me mad; and yes the footnotes were very annoying; and yes I wanted to stop reading – the transitional period for someone who is laid off is not an overnight occurrence. That is what the book was all about. We are all a work in progress when dealing with life’s trials and tribulations.\nI can not say if you will love or hate the book. You will need to read it in order to draw your own conclusions of whether or not there was a lesson in it for you as there was for me."} -{"text": "package_diarization.batch)\n # Send clustering task to fire cluster\n package_diarization = await _diarization_clustering_client.process(\n reduced_batch.task.id, reduced_batch, ClusteringBatch\n )\n # Merge timings\n package.batch.timings = Timings.merge([package.batch.timings, package_diarization.batch.timings])\n else:\n package = await _inference_client.process(batch.task.id, batch, output_type)\n\n # Postprocess transcription\n package.batch.timings.add_timestamp(TimingType.TRANSCRIPTION_POSTPROCESSING_STARTED, time.time())\n package.batch.timings.add_latency(LatencyType.TRANSCRIPTION_POSTPROCESSING_QUEUED_MS)\n text = TranscribeText.merge([t for _, t in sorted(package.batch.texts.items())])\n batch = replace(package.batch, texts={0: text})\n refine_alignment(text, duration_sec, offset_sec)\n package.batch.timings.add_timestamp(TimingType.TRANSCRIPTION_POSTPROCESSING_FINISHED, time.time())\n package.batch.timings.add_latency(LatencyType.TRANSCRIPTION_POSTPROCESSING_MS)\n\n # Postprocess diarization\n if batch_diarize is not None:\n batch.timings.add_timestamp(TimingType.DIARIZATION_POSTPROCESSING_STARTED, time.time())\n batch.timings.add_latency(LatencyType.DIARIZATION_POSTPROCESSING_QUEUED_MS)\n merge_transcription_diarization(\n text,\n package_diarization.batch.items[0].labels,\n normalize_sentences=diarize_config.diarize_params.get(\"normalize_sentences\", False),\n )\n if batch.task.return_embeddings:\n text.embeddings = package_diarization.batch.items[0].speaker_embeddings or {}\n batch.timings.add_timestamp(TimingType.DIARIZATION_POSTPROCESSING_FINISHED, time.time())\n batch.timings.add_latency(LatencyType.DIARIZATION_POSTPROCESSING_MS)\n\n except NoVoiceDetectedException as e:\n return AlignedTranscriptBatch.from_text(task=batch.task, text=\"\", avg_logprob=0.0)\n return batch\n\n\nclass PrerecordedTranscriptionsResource:\n async def report_usage(self, account_id: str, bytes_received: int) -> bool:\n accepted = True\n # Skip rate limit check for health check requests\n if account_id == \"health_check\":\n return accepted\n if _ratelimit_verifier is not None:\n try:\n with fireutil.log_time_if(\"Reporting rate limit\", took_more_than=0.1):\n rate_limit_response: RatelimitResponse = await asyncio.wait_for(\n _ratelimit_verifier.check_and_update(\n user_account=account_id,\n metric=_args.prerecorded_rate_limit_metric_name,\n cost=bytes_received,\n default_limit=self._get_rate_limit(\n account_id,\n _args.prerecorded_bandwidth_limit_bytes,\n _args.account_prerecorded_limit_bytes_override,\n ),\n ),\n timeout=_args.rate_limit_timeout_seconds,\n )\n logger.info(f\"Ratelimit response {account_id} {rate_limit_response}\")\n accepted = rate_limit_response.accepted\n except asyncio.TimeoutError:\n logger.warning(\n f\"Ratelimit check timed out after {_args.rate_limit_timeout_seconds}s for {account_id=}, accepting request\"\n )\n accepted = True\n except AttributeError:\n logger.warning(f\"Ratelimit check error for {account_id=}, accepting request\")\n accepted = True\n\n return accepted\n\n def _get_rate_limit(\n self, account_id: str, bytes_limit: int, account_prerecorded_limit_bytes_override: Dict[str, float]\n ) -> int:\n # Override bytes limit by account-specific limit\n if account_id in account_prerecorded_limit_bytes_override:\n bytes_limit = account_prerecorded_limit_bytes_override[account_id]\n return bytes_limit\n\n\nclass TranscriptionsResource(PrerecordedTranscriptionsResource):\n async def on_post(self, request: Request, response: Response):\n params = await parse_falcon_media(request, TranscriptionParams)\n params.file = await download_or_bytes(params.file)\n\n request.context.metrics.timings.add_timestamp(TimingType.RX_FINISHED, time.time())\n request.context.metrics.timings.add_latency(LatencyType.RX_MS)\n\n request.context.metrics.api_type = \"audio.transcriptions\"\n request.context.metrics.is_batch = (\n \"true\" if request.headers.get(\"x-fireworks-request-source\") == \"batch\" else \"false\"\n )\n # Build task\n request_id = build_request_id(request)\n task = build_audio_task(request_id, \"transcribe\", params, cluster_ty"} -{"text": "Eefin and Hambone, Or, What Is Culture?\nHee Haw, CBS-TV, June 15, 1969 – September 19, 1992\nby Justin E. H. Smith\nI mentioned recently that whenever I come back to the US (I’m writing from Chicago), I enjoy immersing myself in this country’s rich cultural history. This, for example:\nMy friends imagined that I was joking, that I was being my usual haughty, hi-culture, Europhile self. How can I get the message across? No matter how often I attempt to explain this, no one believes me: I am essentially a lo-culture kind of guy. Or, rather, I deny the legitimacy of the distinction. I do not believe that there is anything more earnest in Ernstkultur than in Unterhaltung. I believe, quite the contrary, that culture bubbles up from the depths, and that its genius is equally distributed across all places and times. And I have no patience, either, for these incessant reminders that Brahms incorporated Slavonic folk dances into his music, or that Copland was influenced by jazz; to those who bring this up I can only reply: don’t waste my time, then, but give me Slavonic folk dances, and give me jazz.\nWhat gives the appearance of some monopoly on genius to the sort of cultural output that is housed in museums and Lincoln Plaza and so on is just this: that brainless one-percenters are spending huge amounts of money to put their names on these monuments, and the brainless bourgeoisie makes pilgrimages to them, spending medium sums of money to have a brush with cultural objects that supposedly edify by their simple proximity. The illusion that genius is stored up in sites of high culture is sustained by capital and by the laziness and gullibility of culture’s consumers: all the season-ticket holders, all the dupes of the museums’ advertising departments, for their part driven ever further, under the compulsion of capital, to make the Ottoman sultan’s throne, or medieval armor, or Greco-Bactrian statuary, look like so many things to buy– passing them off as a special class of objects, museum objects, that you can buy in a way just by going and standing in front of them.\nNow that that’s out of the way, let’s get back to Eefin and Hambone. I remarked to a friend (who, again, thought I was joking), that what we are witnessing here (and in general are always witnessing on Hee Haw, the show that perhaps more than any other shaped my earliest thoughts about what culture is and how it works) is a performance of musical virtuosity that unites feigned cretinism with real genius (i.e., not the kind that’s only sustained by capital). This is also the marriage of two distinct musical traditions, with affinities to forms we find, among other places, in Arctic Canada, Haiti, and West Africa. ‘Eefing’ is an Appalachian tradition of rhythmic vocal grunts and plosions (of making various noises that sound like ‘eef’), which some people have identified as a sort of Appalachian ancestor of beatboxing. Here, as so often, the chicken-or-egg debate about American cultural forms (where either the chicken or the egg is Euro-American culture, and the other is African-American) is unnecessarily repeated: eefing and beatboxing are two different and perhaps historically interwoven traditions of using the body as a rhythm instrument. In its performance, eefing comes across less like beatboxing than like Inuit vocal games, to my mind. Hambone, in turn, is an originally West African tradition, sometimes called ‘Juba’, which is well-attested throughout the Caribbean and the southern US, and is, like eefing, a percussive use of the body, though it is rather closer to drumming. Here, it is clear that we are looking at a musical form that is in the first instance African-American, or, perhaps better, African-diasporic. That it crosses over so easily and perfectly into the totally white world of Hee Haw shows, yet again, on what a narcissism of minor differences racial boundaries in the US are sustained.\nWhat is particularly engaging about Eefin and Hambone (as opposed to eefing and hambone), is that there’s a certain queerness to them, and I mean this word in both its old-fashioned and its newfangled senses: they are represented as doing something you’re not supposed to be doing, and doing it, as of necessity, together. They are repeatedly caught by the enforcers of hillbilly normativity, and are chased away with a gruff kick in the pants. But it’s clear that they are in the end accepted in the community, and that they’ll be up to it again soon enough. But what is it that they’re up to, exactly? They’re doing something rhythmic, doing it together, with their bodies, something that is ecstatic and grotesque, that is constantly under threat of prohibition, and that they seem, in virtue of their peculiar shared nature, unable not to do. This gets to the heart of the genius of music, as far as I’m concerned.\nPiece crossposted with Justin E. H. Smith’s website"} -{"text": "GREAT BARRINGTON -- On the heels of two successful fundraising efforts for enhanced programming, safety and equipment upgrades, the Mahaiwe Performing Arts Center plans to add more shows to its roster, organize full-year seasons and further diversify its mix of attractions.\nA full house celebrated at the nonprofit's annual gala Sunday night, featuring a powerhouse 90-minute theatrical performance by Broadway stars Patti LuPone and Mandy Patinkin.\nThis week, Executive Director Beryl Jolly announced the hiring of the theater's first in-house artistic consultant, Arnie Malina, who retired recently after 15 years as head of the Flynn Center for the Performing Arts and the Discover Jazz Festival in Burlington, Vt.\nThe goal is to develop programs uniquely tailored to the Mahaiwe audience and dialogues with the community about artistic initiatives.\nThough half of its audience is from outside Berkshire Coun ty, the theater retains the loyalty of longtime area patrons.\n\"I used to go as many of my classmates did on Saturday afternoons,\" recalled Christine Ramsdell Silvernail, now 94 and a resident of Kimball Farms in Lenox. \"We'd settle into the theater and a woman would play the piano accompanying the silent films.\"\nDuring the 1920s, Silvernail, who lived near Monument Mountain, took the trolley line downtown to see the movies. Now, she occasionally attends high-definition Metropolitan Opera telecasts on Saturday afternoons.\nAt Sunday night's gala, state Rep. William \"Smitty\" Pignatelli, presenting honorary citations from Gov. Deval Patrick and the state Legislature to co-founder and major benefactor John Hoyt Stookey, credited the theater for revitalizing downtown Great Barrington. He extolled founding president and chairwoman Lola Jaffe for \"her vision and her dream\" as the driving force behind the restoration of the historic theater.\nPatrick's citation honored Stookey for his \"dedicated service\" to the Mahaiwe and \"commitment to the Berkshire community.\"\n\"The Mahaiwe offers us the opportunity to experiment, to try something new,\" Stookey told the audience. \"I dare you to try something different.\"\nAccording to Jolly, a nearly $100,000 John Hoyt Stookey Fund for Performing Excellence will be aimed at attracting top talent to the theater.\nIn an interview, Jolly explained that an additional $100,000 raised by the theater will match a state cultural-facilities grant to fund technical and structural upgrades.\nExplaining the decision to hire Malina after a fruitful six-year collaboration with executives at the Bardavon 1869 Opera House in Poughkeepsie, N.Y., and the Ulster Performing Arts Center in Kingston, N.Y., Jolly said it reflects \"an awareness that we've come so far, they've helped us build a foundation so strong that it's time to have a Mahaiwe-specific artistic leader.\"\nThe strategy, Jolly added, is to plan full seasons of programming well in advance and to package series of dance, comedy and music performances while adding more events, especially concerts.\n\"We hope to grow local participation,\" Jolly said. She putting an emphasis on affordability, especially through a $15 ticket available to people under 30 for any live performance.\nMalina said he has already started booking events for a 12-month season beginning next July. Programming will continue to include a variety of musical genres, as well as theater, dance and film, a family series and student matinees.\n\"We'll collaborate with community organizations,\" said Malina. \"There's an infinite range of possibilities.\"\nMalina, 67, said he intends to \"make the Mahaiwe an even greater part of the community by using the arts as an exploration of people's creativity and expansion of the social fabric. We'll be bringing clarity and more focus to the mix.\"\nMalina will participate in focus groups on upcoming weekends to take the pulse of the public's feelings about the theater.\nThe musical menu will lean toward more popular events, especially jazz, he said. \"Even in classical music, there are opportunities to present contemporary, edgy work,\" he said.\nThe Mahaiwe at a glance\nHistory: Opened in 1905 as a stage for touring artists, a vaudeville house and movie theater. Renovated and reopened in 2005 after a $9 million rehabilitation.\nAttractions: 145 shows a year, including 25 classical, gospel, jazz, country, folk, Broadway and world music concerts; 38 opera and theater high-def telecasts; 10 dance programs; 28 movies; three comedy shows; 14 lectures; 13 family shows; five education programs; and three master classes\nAnnual attendance: 35,000\nTicket sales: 75 percent of capacity\nAnnual budget: $1.6 million\nStaff (full-time): Seven\nLocation: 14 Castle St., Great Barrington\nInformation: www.mahaiwe.org or (413) 528-0100\nSource: Mahaiwe Performing Arts Center."} -{"text": "pe=\"transcribe\")\n task_diarize = None\n diarize_config = DiarizeConfig.from_params(\n params.diarize, params.min_speakers, params.max_speakers, params.diarize_params\n )\n if diarize_config.enabled:\n task_diarize = build_audio_task(request_id, \"transcribe\", params, cluster_type=\"diarize\")\n request.context.metrics.is_diarization = str(bool(diarize_config.enabled)).lower()\n\n if request.get_header(\"fireworks-test-request\") in {\"true\", \"True\"}:\n out_batch = AlignedTranscriptBatch.from_text(task=task, text=_FAKE_RESPONSE_TEXT, avg_logprob=0.0)\n out_batch.timings = request.context.metrics.timings\n audio_len_seconds = 0.0\n else:\n audio_len_seconds = await _load_audio_duration(request, params.file)\n bytes_received = int(audio_len_seconds * SAMPLE_RATE * 4) # hotfix\n accepted = await self.report_usage(request.context.account_id, bytes_received)\n request.context.metrics.audio_ratelimit_usage_bytes = bytes_received\n if not accepted:\n response.status = HTTPStatus.TOO_MANY_REQUESTS # 429\n response.media = {\n \"error\": \"Too Many Requests\",\n \"message\": \"You have exceeded your usage limits. Please try again later or contact Fireworks to explore dedicated capacity.\",\n }\n return\n\n # Transcription batch\n in_batch = AudioBatchRaw.from_single(task, params.file, timings=request.context.metrics.timings)\n in_batch_diarize = None\n if task_diarize is not None:\n in_batch_diarize = AudioBatchRaw.from_single(task_diarize, params.file) # diarization batch\n out_batch = await _transcribe(\n in_batch, audio_len_seconds, batch_diarize=in_batch_diarize, diarize_config=diarize_config\n )\n\n request.context.metrics.audio_input_size_bytes = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_BYTES, 0\n )\n request.context.metrics.audio_input_size_samples = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SAMPLES, 0\n )\n request.context.metrics.audio_input_size_seconds = audio_len_seconds = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SECONDS, 0\n )\n request.context.metrics.audio_input_size_speech_seconds = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SPEECH_SECONDS, 0\n )\n request.context.metrics.audio_input_seconds_per_second = (\n _audio_input_running_duration.add(audio_len_seconds) / _audio_input_running_duration.window_seconds\n )\n\n out_batch.timings.add_timestamp(TimingType.POSTPROCESSING_STARTED, time.time())\n out_batch.timings.add_latency(LatencyType.POSTPROCESSING_QUEUED_MS)\n\n await _return_transcription(request, response, params, out_batch, audio_len_seconds)\n\n\napp.add_route(\"/v1/audio/transcriptions\", TranscriptionsResource())\n\n\nclass TranslationsResource(PrerecordedTranscriptionsResource):\n async def on_post(self, request: Request, response: Response):\n params = await parse_falcon_media(request, TranslationParams)\n params.file = await download_or_bytes(params.file)\n\n request.context.metrics.timings.add_timestamp(TimingType.RX_FINISHED, time.time())\n request.context.metrics.timings.add_latency(LatencyType.RX_MS)\n\n request.context.metrics.api_type = \"audio.translations\"\n request.context.metrics.is_batch = (\n \"true\" if request.headers.get(\"x-fireworks-request-source\") == \"batch\" else \"false\"\n )\n # Build task\n request_id = build_request_id(request)\n task = build_audio_task(request_id, \"translate\", params)\n\n if request.get_header(\"fireworks-test-request\") in {\"true\", \"True\"}:\n out_batch = AlignedTranscriptBatch.from_text(task=task, text=_FAKE_RESPONSE_TEXT, avg_logprob=0.0)\n out_batch.timings = request.context.metrics.timings\n audio_len_seconds = 0.0\n else:\n audio_len_seconds = await _load_audio_duration(request, params.file)\n bytes_received = int(audio_len_seconds * SAMPLE_RATE * 4) # hotfix\n accepted = await self.report_usage(request.context.account_id, bytes_received)\n request.context.metrics.audio_ratelimit_usage_bytes = bytes_received\n if not accepted:\n response.status = HTTPStatus.TOO_MANY_REQUESTS # 429\n response.media = {\n \"error\": \"Too Many Requests\",\n \"message\": \"You have exceeded your usage limits. Please try again later or contact Fireworks to explore dedicated capacity.\",\n }\n return\n\n # Transcription batch\n in_batch = AudioBatc"} -{"text": "For Immediate Release, September 11, 2012\n||Kassie Siegel, Center for Biological Diversity, (760) 366-2232 x 302\nErik Schlenker-Goodrich, Western Environmental Law Center, (575) 770-1295\nStuart C. Ross, Clean Air Task Force, (914) 649-5037 cell\nAs Climate Warms, Petition Seeks to Stop Methane Leaks at Drilling Operations on America's Public Lands\nSAN FRANCISCO— Companies fracking or drilling for oil and gas on public lands should be required to use pollution controls to cut harmful methane leaks contributing to the global climate crisis, according to a petition filed today to the Bureau of Land Management by the Center for Biological Diversity, Western Environmental Law Center and Clean Air Task Force. About 126 billion cubic feet of gas are unnecessarily vented and flared from federal leases each year.\nMethane is a potent greenhouse gas — 105 times more powerful than carbon dioxide in warming the globe over a 20-year period — that plays a major role in climate change. This past January to August were the warmest eight months on record in the contiguous United States, according to the National Oceanic and Atmospheric Administration.\n“As climate change heats up our planet, many companies still don’t bother to control methane emissions from fracking and drilling on public lands,” said Kassie Siegel, director of the Center’s for Biological Diversity’s Climate Law Institute. “The federal government needs to put a lid on this highly destructive form of pollution. Methane’s far too powerful at driving global warming to let it leak out this way. We can’t sit here fiddling while Rome burns.”\nToday’s petition calls on the BLM to require that oil- and gas-drilling operators install readily available pollution-control measures that would reduce methane gas leaked into the atmosphere during the drilling process. Stopping the leaks would also keep more gas in the pipeline for consumers and add millions of dollars to the federal treasury from royalty payments. The wasted gas is enough to heat 1.7 million homes for a year.\nFracking, a highly controversial drilling technique that involves blasting huge quantities of water and toxic chemicals into the earth, worsens the leakage problem. The oil and gas industry fracks about 90 percent of wells drilled on federal lands, according to the BLM.\nMethane emissions also contribute to higher levels of ground-level ozone pollution, which has serious direct public-health impacts, including increasing the incidence of asthma, lost school and workdays, and premature death.\n“This isn’t about whether oil and gas drilling is good or bad, it’s about whether the Bureau of Land Management is going to clean up sloppy drilling practices that damage our climate,” said Erik Schlenker-Goodrich of the Western Environmental Law Center. “With win-win solutions at our fingertips that will keep more energy in the pipeline for consumers, there’s no reason the agency should not be requiring the industry to use the best proven, available equipment and practices. This is a no-brainer.”\nFederal law requires the BLM to prevent the waste of gas on federal leases, and evidence suggests that operators can economically capture at least 40 percent of leaked gas from federal lands, reducing greenhouse pollution by the same amount as removing 3.1 million cars from the road and increasing royalty payments by $23 million annually. The BLM is also required to protect the environmental, air, atmospheric, water, and other resource values of public lands and prevent their unnecessary or undue degradation. The agency manages more than 245 million acres of public lands and administers about 700 million acres of subsurface mineral estate.\n“Regulating methane from oil and gas production is absolutely essential to protecting both climate and public health in the U.S.,\" said Ann Weeks, senior counsel for Clean Air Task Force and one of the signatories to the petition. “There are many off-the-shelf techniques available today for controlling methane emissions from wells, pipelines and other sources in the production process. We are therefore demanding that BLM take a leadership role in requiring natural gas lessees to minimize their leakage of methane, an enormously potent short-lived climate pollutant.”\nMethane emissions greatly accelerate climate change, the consequences of which Americans experienced this summer: record high temperatures and massive droughts leading to higher food prices.\nBLM has admitted that its regulations have not kept pace with modern oil- and gas-extraction techniques, and has proposed new rules for fracking on federal lands. The proposed regulations do not address air pollution. The agency has stated it intends to address air pollution at a later time.\nThe Center for Biological Diversity is a national, nonprofit conservation organization with more than 375,000 members and online activists dedicated to the protection of endangered species and wild places.\nThe Western Environmental Law Center is a nonprofit public interest law firm that works to protect and restore western wildlands and advocates for healthy environments on behalf of communities throughout the West.\nClean Air Task Force is a non-profit environmental organization with offices throughout the United States and in China that works to protect the earth’s atmosphere by improving air quality and reducing global climate change through scientific research, public advocacy, technological innovation and private sector collaboration. For more information please visit www.catf.us."} -{"text": "TORONTO, ONTARIO--(Marketwired - April 18, 2013) -\nNOT FOR DISTRIBUTION TO U.S. NEWSWIRE SERVICES OR FOR DISSEMINATION IN THE UNITED STATES\nTrimel Pharmaceuticals Corporation (TRL.TO) (the \"Company\" or \"Trimel\") is pleased to announce that in connection with its previously announced public offering, it has entered into an underwriting agreement with a syndicate of underwriters led by RBC Capital Markets and including D&D Securities Inc. and Paradigm Capital Inc. (collectively, the \"Underwriters\") to sell 50,000,000 common shares of the Company (the \"Common Shares\") at a price of $0.80 per Common Share for aggregate gross proceeds of $40.0 million. No warrants of the Company will be offered as part of the transaction.\nThe Company has also granted the Underwriters an option to cover over-allotments and for market stabilization purposes (the \"Over Allotment Option\"), which will allow the Underwriters to purchase up to an additional 7,500,000 Common Shares. The Over Allotment Option may be exercised at any time up to 30 days following the closing of the offering.\nThe Company intends to use the net proceeds from the sale of Common Shares to pay for the costs of completing the CompleoTRT™ New Drug Application, payment of certain milestone payments related to CompleoTRT™, manufacturing scale-up costs and finished goods production related to CompleoTRT™, costs of Tefina™ clinical trials, maintenance of cash amounts to remain in compliance with the Company's existing credit facilities, and for general corporate purposes.\nThe Company will file a final prospectus in each of the provinces of Canada, other than Québec, in connection with the offering. Such prospectus will be available on SEDAR at www.sedar.com.\nThe Offering is expected to close on or about April 24, 2013 and is subject to certain customary conditions and regulatory approvals, including the approval of the Toronto Stock Exchange.\nThis press release does not constitute an offer of securities for sale in the United States or to \"U.S. persons\" (\"U.S. persons\"), as such term is defined in Regulation S promulgated under the United States Securities Act of 1933, as amended (the \"U.S. Securities Act\"). The securities being offered have not been, nor will be, registered under the U.S. Securities Act or any state securities laws, and may not be offered or sold in the United States or to U.S. persons absent registration or an applicable exemption from such registration requirements.\nTrimel Pharmaceuticals Corporation (TRL.TO) - Trimel is a specialty pharmaceutical company actively developing medications for male hypogonadism, female sexual dysfunction and various respiratory disorders. CompleoTRT™, a product utilizing Trimel's licensed bioadhesive intranasal gel technology, has successfully completed its pivotal Phase III study for the treatment of male hypogonadism, a condition commonly referred to as \"Low T\", and Trimel is preparing to file its New Drug Application with the FDA in the second quarter of 2013. For more information, please visit www.trimelpharmaceuticals.com.\nNotice regarding forward-looking statements:\nInformation in this press release that is not current or historical factual information may constitute forward looking information within the meaning of securities laws. Implicit in this information, are assumptions regarding our future operational results. These assumptions, although considered reasonable by the Company at the time of preparation, may prove to be incorrect. Readers are cautioned that actual performance of the Company is subject to a number of risks and uncertainties, and could differ materially from what is currently expected as set out above. For more exhaustive information on these risks and uncertainties you should refer to our amended and restated preliminary short form prospectus dated April 3, 2013 which is available at www.sedar.com. Forward-looking information contained in this press release is based on our current estimates, expectations and projections, which we believe are reasonable as of the current date. You should not place undue importance on forward-looking information and should not rely upon this information as of any other date. While we may elect to, we are under no obligation and do not undertake to update this information at any particular time, whether as a result of new information, future events or otherwise, except as required by applicable securities law.\nTrimel Pharmaceuticals Corporation\nKenneth G. Howling\nChief Financial Officer"} -{"text": "hRaw.from_single(task, params.file, timings=request.context.metrics.timings)\n out_batch = await _transcribe(in_batch, audio_len_seconds)\n\n request.context.metrics.audio_input_size_bytes = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_BYTES, 0\n )\n request.context.metrics.audio_input_size_samples = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SAMPLES, 0\n )\n request.context.metrics.audio_input_size_seconds = audio_len_seconds = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SECONDS, 0\n )\n request.context.metrics.audio_input_size_speech_seconds = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SPEECH_SECONDS, 0\n )\n request.context.metrics.audio_input_seconds_per_second = (\n _audio_input_running_duration.add(audio_len_seconds) / _audio_input_running_duration.window_seconds\n )\n\n out_batch.timings.add_timestamp(TimingType.POSTPROCESSING_STARTED, time.time())\n out_batch.timings.add_latency(LatencyType.POSTPROCESSING_QUEUED_MS)\n\n await _return_transcription(request, response, params, out_batch, audio_len_seconds)\n\n\napp.add_route(\"/v1/audio/translations\", TranslationsResource())\n\n\nasync def _align(\n batch: Batch,\n duration_sec: float,\n params: AlignmentParams,\n) -> Union[TranscriptBatch, AlignedTranscriptBatch]:\n try:\n # Map to emissions\n package = await _inference_client.process(batch.task.id, batch, EmissionBatch)\n\n # Pull transcription from client input\n batch = params.transcribe(package.batch)\n\n # Map to alignment\n output_type = AlignedTranscriptBatch\n package = await _inference_client.process(batch.task.id, batch, output_type)\n\n # Postprocess\n text = TranscribeText.merge([t for _, t in sorted(package.batch.texts.items())])\n batch = replace(package.batch, texts={0: text})\n refine_alignment(text, duration_sec)\n\n except NoVoiceDetectedException as e:\n raise UserError(str(e)) from e\n return batch\n\n\nclass AlignmentsResource:\n async def on_post(self, request: Request, response: Response):\n params = await parse_falcon_media(request, AlignmentParams)\n params.file = await download_or_bytes(params.file)\n\n request.context.metrics.timings.add_timestamp(TimingType.RX_FINISHED, time.time())\n request.context.metrics.timings.add_latency(LatencyType.RX_MS)\n\n request.context.metrics.api_type = \"audio.alignments\"\n\n # Build task\n request_id = build_request_id(request)\n task = build_audio_task(request_id, \"align\", params)\n task.do_word_timestamps = True\n\n if request.get_header(\"fireworks-test-request\") in {\"true\", \"True\"}:\n out_batch = AlignedTranscriptBatch.from_text(task=task, text=_FAKE_RESPONSE_TEXT, avg_logprob=0.0)\n out_batch.timings = request.context.metrics.timings\n audio_len_seconds = 0.0\n else:\n audio_len_seconds = await _load_audio_duration(request, params.file)\n # Transcription batch\n in_batch = AudioBatchRaw.from_single(task, params.file, timings=request.context.metrics.timings)\n out_batch = await _align(in_batch, audio_len_seconds, params)\n\n request.context.metrics.audio_input_size_bytes = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_BYTES, 0\n )\n request.context.metrics.audio_input_size_samples = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SAMPLES, 0\n )\n request.context.metrics.audio_input_size_seconds = audio_len_seconds = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SECONDS, 0\n )\n request.context.metrics.audio_input_size_speech_seconds = out_batch.timings.timestamps.get(\n TimingType.AUDIO_INPUT_SIZE_SPEECH_SECONDS, 0\n )\n request.context.metrics.audio_input_seconds_per_second = (\n _audio_input_running_duration.add(audio_len_seconds) / _audio_input_running_duration.window_seconds\n )\n\n out_batch.timings.add_timestamp(TimingType.POSTPROCESSING_STARTED, time.time())\n out_batch.timings.add_latency(LatencyType.POSTPROCESSING_QUEUED_MS)\n\n await _return_transcription(request, response, params, out_batch, audio_len_seconds)\n\n\napp.add_route(\"/v1/audio/alignments\", AlignmentsResource())\n\n\nclass StreamingSttResource:\n _initialized = False\n\n def __init__(self):\n self._count = 0\n\n @classmethod\n async def init(cls):\n if not cls._initialized:\n logger.info(f\"Creating rendezvous session\")\n\n cls._rendezvous_egress_queue = await _stt_streaming_client.create_session(\n \"randezvous\",\n "} -{"text": "World Series game 4 began as another pitchers’ duel as both Yankee starter ace lefthander C.C. Sabathia and Phillies starter Joe Blanton battled on Sunday as the Yanks led 4-2 in the game through six innings. When 2nd baseman Chase Utley cut into the Yanks lead with a 2 out solo homer on Sabathia’s 1-2 pitch in the seventh, manager Girardi pulled immediately C.C. for bullpen relief. The Phils got new life on tying the game in the eighth inning on 3rd baseman Pedro Feliz’s homer off of Joba Chamberlain on a 2 out, full-count pitch. Closer Brad Lidge got the first 2 outs in the ninth before giving up a full-count base hit to leftfielder Johnny Damon. What occurred after was an apparent mental lapse which cost the Phils the game, and quite possibly the series, which the Yanks now lead by 3 games to 1, as Damon went on to steal 2nd and 3rd on the same play as the Yankees beat the Phillies in the ninth by a 7-4 score after A-Rod’s winning double in World Series game 4.\nWriters such as Yahoo’s Jeff Passan have taken to second-guessing manager Charlie Manuel for not starting Lee in game 4, although I am totally in agreement with Manuel with holding Lee back for game 5 on a full 4 days rest. Blanton’s performance retiring 9 Yanks in order from the second through fifth innings, after being touched for 2 first inning runs, vindicates Manuel’s decision. Further, Blanton, like Lee in game 1, kept the ball in the park and struck out 7 in his six innings of work.\nThe far bigger question these writers ought to be asking is how the NL pennant winners either suffered collective mental lapse or weren’t prepared with a coverage scheme in their shift on Teixeira.\nA talk-backer responding to AP sportswriter Ben Walker’s game recap for Yahoo sports had this take:\nThe game–and perhaps the entire 2009 World Serious–boiled down to Damon’s heads-up double-steal on the same play. The shift was on against Teixeira with Feliz covering second base. So who was covering third base? NOBODY! And Damon noticed. Afterwards, Phillie manager Charlie Manuel said either the pitcher or the catcher HAVE to cover third base on that play. In fact, Manuel said the catcher (Ruiz) should’ve gotten to third base … but, personally, I think Lidge should’ve been there. After all, the pitcher is closer to third base than the catcher!\nThe lack of coverage at 3rd base is more responsible than anything else, for how the Phils lost game 4 and why they now sit with a 1-3 deficit to the Yankees. Damon doesn’t reach 3rd and Lidge isn’t flustered and probably doesn’t hit Teixeira. And maybe, the game doesn’t get to A-Rod and a Yankees lead. Of course, maybe Teixeira goes ballpark on Lidge, or maybe any number of other things. But again, to repeat what the talk-back cited here noting: “Lidge should’ve been there. After all, the pitcher is closer to third base than the catcher!”\nI would agree with the talk-back. Lidge cooked his own goose on the play. He started 1st baseman Mark Teixeira with a ball after Damon’s single. After Damon stole the two bases on the same play, perhaps due to Lidge’s own mental lapse, he got sooo flustered that he hit Teixeira on his next pitch — runners on 1st and 3rd base. Now he’s facing dangerous 3rd baseman Alex Rodriguez who Blanton managed to confound through 3 at-bats, striking him out once. A-Rod took a strike and then nailed Lidge’s next pitch for a double driving in the game-winning run as the Yanks took a 5-4 lead.\nThe whole Damon play was reminiscent of leftfielder Jayson Werth’s steal of home on the Dodgers back in May. That play occurred when Werth noticed catcher Russell Martin’s nonchalant slow tosses back to his pitcher.\nCatcher Jorge Posada followed slamming Lidge’s 2-2 delivery for a single to left centerfield plating 2 insurance runs. Future Hall of Fame closer Mariano Rivera took care of the rest shutting down the Phillies on 8 pitches; 2 grounders and a pop up — all to 1st base.\nThe Yankees had Blanton on the ropes in the first inning as shortstop Derek Jeter opened the game with an infield single and Damon followed with a double to rightfield putting Jeter on 3rd base. Teixeira grounded out to 1st base with Jeter scoring on the play and Damon moving to 3rd. A-Rod was hit by Blanton’s next pitch and Posada followed with a sacrifice fly scoring Damon with the 2nd run. Blanton finally retired the side on a fly ball to centerfield and cruised thru the second through fifth innings.\nThe Phils got a run back against Sabathia in their first inning on back-to-back doubles by centerfielder Shane Victorino and 2nd baseman Chase Utley. They tied the game in the fourth inning as 1st baseman Ryan Howard finally connected, after a string of strikeouts, leading off the inning with a single to centerfield. On a 2-1 pitch to Werth, Howard stole 2nd base. Werth grounded out to 3rd on the ensuing pitch. After Leftfielder Raul Ibanez flied out for the 2nd out, Feliz singled to leftfield scoring Howard. Feliz took 2nd base on an error by catcher Posada on the relay. Sabathia intentionally walked catcher Carlos Ruiz but both were stranded as Sabathia struck out Blanton to end the inning.\nThe tie didn’t last long as Yanks regained the lead scoring twice on a walk and 3 singles. With the score 4-2 Yankees, Utley solo homered with 2 outs in the seventh ending Sabathia’s night. Feliz duplicated in the eighth inning with a solo blast after Chamberlain got Werth and Ibanez on strikes. With the game knotted at 4-4, the scene was set for Lidge, the mental lapse resulting in Damon’s 2 stolen bases on the same play and the Yankees’ winning 3 run rally.\nChamberlain, who blew the save on Feliz’s homer in the eighth inning, was credited with the win while Lidge, who came unglued in the ninth, was charged with the loss.\nIn Monday’s game 5, Phillies ace lefthander Cliff Lee will make his 2nd World Series start and will try to keep the Phils alive. Lee is opposed by A.J. Burnett, who like Sabathia, will be going on 3 days rest."} -{"text": "New city firehouse slashing response times\nPublished: Thursday, June 12, 2014 at 4:30 a.m.\nLast Modified: Wednesday, June 11, 2014 at 8:46 p.m.\nLess than two weeks after becoming operational, Hendersonville's new Fire Station 2 is already cutting response times within its new district by roughly half, fire officials say.\nThe $3 million, nearly 11,000-square-foot fire station on Sugarloaf Road opened for business June 2, although Cooper Construction is still doing some interior work, said Fire Chief Dorian Flowers.\n\"They've still got a punch list they're working on, but we felt it was more important for us to get in here and start providing a better level of service and quicker response times,\" Flowers said. \"They're working around us as much as we're working around them.\"\nCurrently manned by a three-person crew, the new firehouse is served by Engine 2 — which used to be housed at the old station on North Main Street — along with a 23-year-old engine kept there as a reserve.\n\"They've been over there about a week and a half and we've seen our response times cut in half for that area,\" said Deputy Fire Chief Joe Vindigni. \"Where it was taking us about four minutes to get there from this side of town, we're now seeing it in 2 minutes.\"\nFlowers said the fire station responded to a medical call last week in Wolfpen, \"and our engine was on the scene in six, seven minutes from the time of dispatch. We were on scene about seven minutes before EMS.\"\nFire engines responding to calls on the east side of the city have traditionally contended with heavy traffic on Four Seasons Boulevard, Flowers said. \"Or, when we were out on that side of town on a call, we had to fight traffic coming back into town,\" he added.\nNow, engines leaving the Sugarloaf firehouse will cover a new district, which encompasses everything from the intersection of Four Seasons and North Blue Ridge Avenue to the far eastern city limits near Morningside Lane. The district also covers I-26 and Upward Road.\nBut increasing response times and service levels were only two reasons city leaders chose to build the new firehouse, Flowers said. The state fire marshal's office also indicated to the city in 2009 that the city risked lowering its insurance rating if it didn't built a new fire station.\n\"They determined that because of the size and the layout of the city, it was determined that the city would have to open a second station or risk dropping its ISO rating,\" Flowers said. The city currently has an Insurance Service Office rating of Class 4, which puts it in the top 10 percent of the state's 1,256 fire departments.\n\"We're in real good company,\" Flowers said. But without a second station to maintain its ISO rating, the city flirted with a drop of one or two points when it was re-rated. Staying at Class 4 or 5 could potentially save a city resident with a $200,000 home between $200 and $300 a year on insurance premiums, he said.\nThe new fire department was designed with a lifespan of 70 years, Flowers said, and incorporated several features lacking at Station 1 on North Main: a meeting room capable of hosting 47 personnel during training; more storage for turnout gear and a workout room for physical fitness.\nFlowers said one of the biggest killers of firefighters nationwide are heart attacks and other cardiac problems, so physical fitness is a necessity, not a luxury.\n\"It's our policy that every day they work, they've got to work out,\" he said. \"It's a very stressful job anyway. We average 8-10 calls a day and some days we've had as many as 26 calls in a 24-hour period, so if you do the math, those firefighters don't get much sleep. Helping them to maintain a level of physical fitness allows us to provide a better level of service.\"\nAnother new feature built into Station 2 is a decontamination room, where chemicals and toxic soot can be washed safely from turnout gear without mixing it with bunkroom linens or other gear. Architects designed the room to serve double-duty, incorporating a manhole cover and narrow vent so firefighters can train for confined space rescues.\nAn official open house allowing the public to tour the finished station will be held from 4 to 7 p.m. Friday, Aug. 8.\nReach Axtell at firstname.lastname@example.org or 828-694-7860."} -{"text": " StreamingTranscriptionSessionParams(\n request_id=\"randezvous\",\n request_params=StreamingTranscriptionParams(),\n ),\n )\n ack: Optional[CreateSessionResponse] = None\n while not ack:\n logger.info(f\"Waiting for rendezvous STT session create ack...\")\n event = await cls._rendezvous_egress_queue.get(True, 10)\n if isinstance(event, CreateSessionResponse):\n ack = event\n\n logger.info(f\"Rendezvous session created\")\n cls._initialized = True\n\n @classmethod\n async def terminate(cls):\n if cls._initialized:\n logger.info(f\"Terminating rendezvous session\")\n await _stt_streaming_client.terminate_session(\"randezvous\")\n\n ack: Optional[TerminateSessionResponse] = None\n while not ack:\n logger.info(f\"Waiting for rendezvous STT session terminate ack...\")\n event = await cls._rendezvous_egress_queue.get(True, 10)\n if isinstance(event, TerminateSessionResponse):\n ack = event\n\n logger.info(f\"Rendezvous session terminated\")\n\n @cached_property\n def _tracer(self):\n return TraceLogger()\n\n def _build_session_id(self, request: Request) -> str:\n request_id = build_request_id(request)\n session_id = f\"{request_id}:{self._count}\"\n self._count += 1\n return session_id\n\n def _deanonymize_params(self, params_dict: Dict) -> Dict:\n clone = copy.deepcopy(params_dict)\n if \"prompt\" in clone:\n clone[\"prompt\"] = \"\"\n return clone\n\n def _validate_params(self, params: StreamingTranscriptionParams):\n diarization_validator = ResourceValidator(audio_model_dir=_args.model_dir)\n if params.diarize is True and not diarization_validator.validate_diarization_model_resources().is_valid():\n raise UserError(\"Diarization model resources are not valid\")\n\n async def on_websocket(self, request: Request, ws: WebSocket):\n global _stt_streaming_client\n session_id = self._build_session_id(request)\n egress_queue = None\n\n # Tracking\n request.context.metrics.api_type = \"audio.transcriptions.streaming\"\n last_rate_limit_report_bytes = None\n cumulative_bytes_received = 0\n stream_params = {}\n account_id = request.headers.get(\"x-fireworks-account-id\", \"unknown\")\n timeout = _args.account_session_timeout.get(account_id, None)\n\n try:\n # Opening trace\n if AUDIO_STREAMING_STT_TRACE_ENABLED:\n self._tracer.log(\n process_id=type(self).__name__,\n thread_id=f\"{account_id}/{session_id}\",\n event_id=\"on_websocket\",\n start=time.time(),\n metadata=self._deanonymize_params(request.params),\n )\n\n # Init stream\n params = await self._parse_params(request)\n # TODO:Temporarily disable RX_FINISHED timing for streaming STT to avoid skewing metrics.\n # Need to find a proper way to handle RX_FINISHED timing for streaming STT later.\n # request.context.metrics.timings.mapping[TimingType.RX_FINISHED] = time.time()\n\n self._validate_params(params)\n\n egress_queue = await self._create_session(ws, session_id, params, timeout)\n await ws.accept()\n logger.info(f\"STT stream WebSocket accepted. {session_id=} {account_id=}\")\n\n # IO proxies\n async def handle_ingress():\n logger.info(f\"STT stream ingress started. {session_id=} {account_id=}\")\n nonlocal last_rate_limit_report_bytes, cumulative_bytes_received, stream_params\n iterations = 0\n\n while not ws.closed:\n iterations += 1\n data = await ws.receive_media()\n if not data:\n continue\n\n if isinstance(data, Dict): # Command ingress\n if \"checkpoint_id\" in data: # deprecated\n event = SttInputTrace(trace_id=data[\"checkpoint_id\"], old_format=True)\n else:\n event = serialization.loads(data, SttIngress)\n\n if isinstance(event, SttInputTrace):\n event.timings = {time.time(): \"ingress\"}\n try:\n # TODO: remove this hack once the metrics hack around audio seconds is refactored.\n # Hack: Exclude non-timestamp data\n create = float(event.trace_id)\n if create > time.time() - 3600:\n event.timings[create] = \"create\"\n except Va"} -{"text": "My mother lives in a very nice retirement community. Typically for an affluent suburb, the residents are rich and white, while the employees are low-income and represent a variety of races (white, Asian, black, and Hispanic). They’re not downtrodden employees. Many have been there for decades and have strong bonds with the elderly in their care. But they’re definitely not middle or upper class. Economically, they’re working or lower class.\nHere’s another broad statement I can make about the community in which my mother lives: Almost none of the affluent residents smoke cigarettes, while a high percentage of the poorer employees smoke. I know that my statement about the employees is true because I’m there often and I always see a rotating crop of employees hunkered down in the garage or standing out on the streets smoking.\nI have to admit here to hating cigarettes. (And yes, I know that “hate” is a very strong word.) I have an unusually sensitive sense of smell, and cigarettes are very high on my list of unpleasant odors. Just to give you an idea how much I hate the smell, back in the early 1980s, when I’d return to my flat in England after a night of dancing (not drinking, just dancing), I was so repulsed by the cigarette smell that clung to me that I’d instantly take a shower. This doesn’t sound like a big deal until you realize that I was doing this between November and March, when the flat had no hot water after 10 p.m., and the shower water was probably just above freezing. I hate cold water, but I hate the smell of cigarettes even more.\nMy loathing for cigarettes means that I’ve always had two thoughts when I’ve seen the employees puffing away. My first thought is, “God, I hate that smell.” My second thought, always, is “They must be spending a huge percentage of their income to support that habit.”\nToday, my thoughts went one step further. Yes, they are spending a huge percent of their income, but they’re not actually spending it on the cigarette. Instead, they’re spending it on the taxes for that cigarette. Here in California, cigarettes are taxed at a very high rate:\nCigarettes are subject to both the cigarette tax and the cigarette and tobacco products surtax. The tax and surtax are paid by distributors through the use of tax stamps, which are purchased from the Board of Equalization (BOE) and affixed to each package of cigarettes before distribution. The cost of the stamp includes both the cigarette tax and the surtax. Currently, each stamp costs 87 cents per pack of 20 cigarettes, comprising 12 cents for the cigarette tax and 75 cents for the combined surtax.\nTobacco products, not including cigarettes, are subject only to the cigarette and tobacco products surtax. Tobacco products include all forms of cigars, smoking tobacco, chewing tobacco, and snuff, as well as other products containing at least 50 percent tobacco. Effective July 1, 2011, through June 30, 2012, the rate is 31.73 percent.\nI don’t know whether the consumer has to pay the usual county sales tax on top of all those state taxes, but I assume he (or she) does. If that assumption is correct, you can add on an additional 8% or so to every cigarette pack sold in California, depending on the sales tax rate.\nThis is a staggeringly high tax rate. Worse than that, it’s a hugely regressive tax rate, meaning that it falls most heavily on those who can least afford it. The regression is hidden, because it looks as if everyone who purchases cigarettes, rich or poor, pays the same “sin” tax for the product. In fact, though, rich people in California have mostly given up on smoking. This particular sin tax is passing them right by. Poor people, whether they smoke because of peer pressure to smoke, or because they’re immune to government pressure to quit smoking, or because it’s a real pleasure in a life too financially constrained to have many pleasures, end up paying that tax. Worse, because the government relies on this sin tax to fund health programs and education, as people quit, they keep raising the tax to stabilize revenue.\nI hate cigarettes. What I hate even more, though, is a government that funds itself by using regressive taxes. It’s a sleazy practice. How much better, of course, if we would fall back on a non-religious version of tithing, as Dr. Carson so gracefully suggested in the speech he gave before a manifestly bored and uncomfortable President Obama."} -{"text": "A recent email exchange.....\nI strongly urge you to approve and vote yes on the house continuing resolution 2013 bill passed by the house and is now before the senate that fully funds the government and protects the full credit of the United States but delays and de-funds the Affordable Care Act.\nYou must understand that Obamacare is undermining American workers and selling out hard fought for union benefits. It is not fair for businesses to reduce workers' hours to survive. It is time to de-fund the affordable Care Act until such a time when it can be repealed and things can be straightened out and workers protected. I urge you please to delay funding for Obamacare now.\nResponse from Senator Markey:\nThank you for contacting me about the Affordable Care Act (ACA) and H.J. Res. 59 recently approved by the Senate. It was good to hear from you.\nIn June of 2012, the Supreme Court of the United States ruled that ACA is constitutional. This ruling is an historic victory for Americans across the country that will finally have much-needed healthcare security. ACA addresses our nation's growing healthcare costs, provides coverage for millions of previously uninsured Americans, and prevents insurance companies from denying coverage to those who need it most.\nUnder the ACA, Members of Congress and their staffs will be covered by exactly the same plans that will extend health insurance to millions of Americans next year. They will have to buy coverage in the same marketplaces that will begin enrolling new customers on October 1st. These marketplaces are expected to help 24 million uninsured Americans obtain coverage.\nIf the government shuts down, hundreds of thousands of Massachusetts residents would have services and benefits shut off.\nOur seniors and the nearly 1.2 million recipients of Social Security in Massachusetts could be denied services because of the shutdown. And applications for new benefits would be delayed.\nA shutdown could delay military pay and hurt military families. In Massachusetts, there are more than 3,000 active duty personnel, more than 15,000 Reserve and National Guard members and almost 7,000 civilians who would be affected by a shutdown. The Department of Defense estimates that during a shutdown nearly half of the civilian workforce would be sent home without pay, while the rest would continue to work for delayed pay. Service members would also stay on duty without pay.\nFor those receiving energy assistance through the Low Income Home Energy Assistance Program (LIHEAP), the timing of federal funding is critical due to the upcoming winter. Any extended shutdown of the government this year could affect funding availability for the approximately 198,000 Massachusetts residents who receive this assistance.\nA government shutdown could force Head Start Centers around the country to close. During 2012, 29 Head Start programs throughout Massachusetts served approximately 16,500 children and families. Massachusetts Head Start programs were already reeling from funding reductions due to sequestration, with more than 2,000 kids estimated to have been removed from the program.\nDuring the past 11 months, Massachusetts banks made more than 2,000 SBA loans worth more than $602 million to small businesses. A shutdown would put a stop to this critical source of small business credit until the government resumes operation.\nThe processing of new educational, pay, and pension benefits for the 394,000 Massachusetts veterans could be delayed. During the 1995-96 shutdowns, more than 400,000 veterans nationwide saw their disability benefits and pension claims delayed, while educational benefits were delayed for 170,000 veterans.\nColleges could be unable to draw down and disburse to students any campus-based program awards such as work-study or the Federal Perkins Loan Program if the government shuts down on Tuesday. Last school year, 42,000 students in Massachusetts utilized work-study while Perkins impacted over 24,000 students in the Commonwealth.\nIn a shutdown, the more than 400 National Park Service sites nationwide could close. This includes 18 sites in Massachusetts, including Faneuil Hall, John F. Kennedy's birthplace, the Adams National Historical Park, Salt Pond Visitor Center on Cape Cod, and Minute Man National Historical Park.\nAfter the Fiscal Year 1996 shutdown, a survey showed that over 20 percent federal contractors were affected and many employees of federal contractors reportedly were furloughed without pay. In Fiscal Year 2011, 5,430 Massachusetts businesses received approximately $16.7 billion in federal contracts. A shutdown similar to the one in 1996 could affect more than 1,000 Massachusetts businesses and their employees, delaying contract awards and furloughing employees.\nConcerned Citizen’s response:\nSenator, you claim,\n\"Under the ACA, Members of Congress and their staffs will be covered by exactly the same plans that will extend health insurance to millions of Americans next year. They will have to buy coverage in the same marketplaces that will begin enrolling new customers on October 1st. These marketplaces are expected to help 24 million uninsured Americans obtain coverage. \"\nSir I Say Your Lying\nBecause President Obama recently issued a special rule for Congress and congressional staff to get a special subsidy to purchase health insurance on the Obama care Exchange which is unavailable to every other American at similar income levels, means you will not be stung by the financial poison of this law as will the remainder of the American People\nWhat this means is\nCongress's health-care premiums will not rise, but the American people's will.\nMembers of Congress will be able to afford to keep their health-insurance plan, but the American people may be kicked off theirs.\nMembers of Congress will be able to afford to keep their doctors, but the American people will have to find a new one.\nYou sir are DESPICABLE\nDEFUND THIS OBAMA MESS NOW OR START TYPING YOUR RESUME"} -{"text": "lueError:\n pass\n\n await _stt_streaming_client.send(session_id, event)\n continue\n\n if isinstance(data, bytes):\n cumulative_bytes_received += len(data)\n last_rate_limit_report_bytes, accepted = await self._report_usage(\n account_id=request.headers.get(\"x-fireworks-account-id\", \"\"),\n last_rate_limit_report_bytes=last_rate_limit_report_bytes,\n cumulative_bytes_received=cumulative_bytes_received,\n request=request,\n stream_params=stream_params,\n session_id=session_id,\n )\n\n if not accepted:\n if VERBOSE:\n logger.info(f\"STT stream WebSocket closed with error. {session_id=} {account_id=}\")\n logger.info(\n f\"STT stream WebSocket closed with rate limit exceeded. {session_id=} {account_id=}\"\n )\n await ws.close(code=4290, reason=f\"Rate limit exceeded\")\n break\n await _stt_streaming_client.send(session_id, data)\n\n logger.info(f\"STT stream ingress finished. {session_id=} {account_id=} {iterations=}\")\n\n async def handle_egress():\n logger.info(f\"STT stream egress started. {session_id=} {account_id=}\")\n iterations = 0\n\n while not ws.closed:\n iterations += 1\n e: Optional[EgressEvent] = await egress_queue.get(True, 5)\n if not e:\n continue\n\n if isinstance(e, TerminateSessionResponse):\n break\n\n # Command egress\n if isinstance(e.payload, BaseModel):\n if isinstance(e.payload, SttOutputTrace):\n if e.payload.internal:\n continue\n\n try:\n trace = e.payload\n if trace.timings:\n trace.timings[time.time()] = \"egress\"\n trace.timings = dict(sorted(trace.timings.items()))\n\n reverse = {k: t for t, k in trace.timings.items()}\n if \"ingress\" in reverse:\n took = max(trace.timings) - min(trace.timings)\n if took > float(os.environ.get(\"TRACE_LATENCY_THRESHOLD_S\", 10)):\n logger.warning(\n f\"High trace latency. {session_id=} {took=:.3f}s. Timings: {json.dumps(trace.timings, indent=2)}\"\n )\n except Exception:\n logger.exception(f\"Failed to process timing of egress trace\")\n\n e.payload.timings = None\n\n if e.payload.old_format: # Backward compatibility\n command_result = {\"checkpoint_id\": e.payload.trace_id}\n else:\n command_result = serialization.dumps(e.payload, filter_none_=True)\n else:\n command_result = serialization.dumps(e.payload, filter_none_=True)\n\n await ws.send_text(json.dumps(command_result))\n continue\n\n # Error egress\n if e.exception:\n if isinstance(e.exception.with_traceback(), (UserError, ValueError)):\n raise UserError(str(e.exception)) from e.exception.with_traceback()\n else:\n raise RuntimeError(str(e.exception)) from e.exception.with_traceback()\n\n # Data egress\n batch: Union[TranscriptBatch, AlignedTranscriptBatch] = e.payload\n if not batch or not batch.texts[0].text:\n continue\n segments = batch.texts[0].segments\n if batch.task.do_word_timestamps:\n duration = segments[-1].audio_end - segments[0].audio_start\n else:\n duration = None\n await _return_transcription(request, ws, params, batch, duration)\n await self._report_metrics(copy.deepcopy(request.context.metrics), session_id)\n\n logger.info(f\"STT stream egress finished. {session_id=} {account_id=} {iterations=}\")\n\n await asyncio.gather(handle_ingress(), handle_egress("} -{"text": "Let’s Go Rock Collecting\nBefore going on your field trip, be sure and turn in your tour permit and get permission slips from the parents. You will need to be aware of the clothing you wear. You will need to bring lunch, water, collecting bag, notebook labels, tools, goggles and face shields and a FIRST AID KIT.\nClothes: Wear old comfortable clothes you would wear hiking. Ankle high hiking shoes will help prevent bruises from contact with sharp stones. Collecting bag: A knapsack type collecting bag is ideal. Use one with pockets to hold maps, notebooks, small tools and labels. Use lunch-size brown bags to hold specimens. Take along newspaper to wrap the rocks in first.\nField notebooks and labels:\nAs you collect each specimen, give it a number. Put the labels on the rock before you wrap it up. In a small pocket notebook list the following information:\nLater at home you can enter the information in your permanent record.\nFirst Aid Kit :\nAny trip away from home requires a first aid kit. Keep one handy.\nStalagmites are mineral formations on the floor of a cave.\n2 cups water, 1/2 cup Epsom salts, heavy cord, tray or board\nMake Your Own Fossils\nTo make your own fossils, you need a small cardboard box, clay, plaster, and a shell.\nMake A Volcano\n12 inch-square wood for base\nRed food color\nNewspaper and wallpaper paste\nWater, Salt, Nail, a small saucepan, spoon, fine sand (about one quart), a plastic or cardboard container, aluminum food container.\nPour one cup of water into a small saucepan and heat it on the stove over medium heat. As the water heats, add the salt and mix well. Continue adding salt and mixing it well until no more will dissolve in the water. Remove the pan from the heat. Place the sand in a deep, plastic container that is large enough for mixing. Pour the salt solution into the sand and mix thoroughly. The sand should be completely moistened.\nPunch tiny holes into the bottom of an aluminum food container with a nail. Press the sand and salt mixture into the container and pour away any excess water. Keep this experiment in a warm, dry spot for several days. After the sand has dried out, lift the chuck of material from the container and examine it. You have just made sandstone.\nThe sandstone just made was created in much the same way that nature makes it. The salt clings to the particles of the sand and holds them together. If you find sandstone in nature, you will find it is made of several layers. This occurs when one sandy sediment is laid on top of another. These layers are pressed together over time to make the rock you see today.\nThe Earth Bowl\nThe Earth Bowl is a three dimensional, edible representation of the earth in cross section. (If time allows, have scouts participate in measuring the ingredients and constructing the Bowl.)\n4 oz. pkg. raspberry gelatin dessert\n4 oz. pkg. instant vanilla pudding\n8 oz. pkg. black cherry gelatin dessert\n4 cups boiling water (can be boiled and kept hot in thermos)\n4 cups cold water\n3 mixing bowls\n12 graham crackers\n1/2 cup melted margarine\n1/4 cup granulated sugar\n10\" diameter clear glass bowl\n(Small paper cups and spoons for after discussion)\nMake the gelatin desserts in separate bowls and according to the directions on the side of the box. Put in refrigerator to set. Have the Scouts crush the graham crackers into fine crumbs. This can be done by putting the crackers in a zip-lock bag and having the Webelos pound the bag until the crackers are in very fine crumbs.\nMix the graham cracker crumbs with the melted margarine and granulated sugar. Press the mixture on the bottom and along the sides of the glass bowl to form a crust. Set aside.\nAfter two hours the gelatin will set. Spoon the black cherry into the graham cracker crust. Form it so that there is about a five inch pocket in the middle.\nNext, spoon in the lemon gelatin, leaving a two inch hole. Into this center, spoon the raspberry gelatin.\nAllow time for each Scout to take a look at the Earth Bowl and discuss its layers. Then dig in!\nGeologist QuizTrue or False"} -{"text": "July 15, 1999\n\"Every inch a star!\" -- The New York Times\n\"A phenomenon\" -- The New Yorker\n\"A star is born with Lea Delaria.\" -- Entertainment Weekly\n...the first openly gay comic to appear on national television (Arsenio, 1993), she has now busted a move into the world of theater and cabaret! The stocky, cocky, loud-mouthed Italian lesbian stand up comic, musician, actor, singer and civil rights activist has performed her one-woman shows across North America, Europe, Australia and New Zealand. She has been on Rolling Stone's \"Hot List,\" been featured in articles in People, Time, Newsweek, Out Magazine, and Entertainment Weekly. She has played regular roles on Matlock and The John Laroquette Show and can be seen in several movies including The First Wives' Club, Homo Heights, and Edge of Seventeen. A native of Belleville, Illinois and a product of Catholic schooling (\"mandatory training for stand-up comedy\", she explains), Lea is not known for her demure demeanor. Her critically-acclaimed performance in the New York Shakespeare Festival's revival of \"On the Town\" last year prompted the New York Times to dub her \"an Ethel Merman with attitude.\" Lea's one-woman show, \"It's Delightful, It's Delicious, It's DeLaria!\" is currently playing to sold-out houses in major venues across the country. When not performing around the world Lea makes her home in Los Angeles where she is active in the lesbian/gay and women's communities -- and occasionally has sex.\nSo ... thinking of coming out ... in a comedy club? Wondering how Lea conquered everything from society's stigmas to stage fright? Wanna know what Arsenio's like?\nYou asked .. she answered!\nShygrrl asks: \"I'm a 15 year old lesbian in a small midwestern town who'll probably be disowned when/if I come out. I've always admired your candor about your own sexuality (and, well, everything else!) so I was wondering if you could tell me a little about your own experiences growing up/coming out. I feel like a big freak.\"\nLEA: \"I was basically disowned by my Italian Catholic parents when I came out. They didn't speak to me for 5 years. Over a course of time, however--mostly mostly through my rubbing their faces in it--they came around to a place of peace with who I am. After many more years, they actually accept it now. My experience has been that your parents love you and will eventually come around.\"\nLEA: \"Jodie Foster's bedroom. Or Sigourney Weaver's bedroom. No...wait...Uma Thurman's bedroom. No, Susan Sarandon's any room. And then Broadway. \"\nLEA: \"John Coltrane. He spent a lifetime trying to sound unique and to have his own style. As a jazz musician I find it very important to find my own style-- which is why it's very interesting that whenever reviewers review me, they compare me to a laundry list of other singers. We're talking everyone from Bjork to Ethel Merman. When I sing a particular song I try to remain true to its style. Unfortunately, when people here a certain style of song they equate it to a specific singer. When you hear a belter, you think Ethel Merman. When you hear a scat singer, you think Ella Fitzgerald. When you here atonal expressionistic jazz, you think Betty Carter. Now I do all of these things, so they compare me to all of those people. The reality is, I sound like me. I'm just able to sing in a variety of styles. And that's how I try to find my own. \"\nLEA: \"No, and it's gotten me in a lot of trouble! Once when I was in East Texas, it was during the Macarena craze and I was over it. I said, \"Yesterday I played the Macarena backwards, and it said 'I killed Selena.'\" I got so booed for that. And, of course, everyone knows about the Hillary comment...With me saying on the White House steps, \"Finally we have a first lady you can f*ck.\" Congress passed a law against saying \"f*ck\" on the White House steps as a result. My idea as far as comedy goes has always been to push the limits of what's acceptable for a woman to do or say or be. My hero in that would be Lenny Bruce, who teaches us that words have no meaning. It's the intent behind them that is what's important.\"\nLEA: \"Oh please...As a standup, I tried to change the world. As an entertainer, I try to entertain. And as a lesbian, I try to pick up the prettiest girl in the room. Not necessarily in that order.\"\nLEA: \"Well, now that depends doesn't it? I mean, do you only do windows? And...are you looking for a mommy or a daddy? Because I definitely fall into the daddy category! Plus I like to cook my own meals. But I'll definitely let you do the bathroom. When do I get the phone number?\"\nBreakup Girl created by Lynn Harris & Chris Kalb"} -{"text": "))\n\n except WebSocketDisconnected:\n logger.info(f\"STT stream WebSocket disconnected. {session_id=} {account_id=}\", exc_info=VERBOSE)\n finally:\n logger.info(f\"STT stream is terminating. {session_id=} {account_id=}\")\n\n # Closing trace\n if AUDIO_STREAMING_STT_TRACE_ENABLED:\n self._tracer.log(\n process_id=type(self).__name__,\n thread_id=f\"{account_id}/{session_id}\",\n event_id=\"on_websocket\",\n end=time.time(),\n )\n\n # Report usage\n last_rate_limit_report_bytes, _ = await self._report_usage(\n account_id=request.headers.get(\"x-fireworks-account-id\", \"\"),\n last_rate_limit_report_bytes=last_rate_limit_report_bytes,\n cumulative_bytes_received=cumulative_bytes_received,\n request=request,\n stream_params=stream_params,\n flush=True,\n session_id=session_id,\n )\n\n # Terminate session\n if egress_queue:\n try:\n await _stt_streaming_client.terminate_session(session_id)\n except NotFoundException:\n pass\n logger.info(f\"STT stream terminated. {session_id=} {account_id=}\")\n\n async def _report_metrics(self, request_metrics: RequestMetrics, session_id: str):\n request_metrics.http_code = 200\n\n request_metrics.timings.add_timestamp(TimingType.REQUEST_FINISHED, time.time())\n request_metrics.timings.add_latency(LatencyType.TX_MS)\n request_metrics.timings.add_latency(LatencyType.OVERALL_MS)\n\n latency_overall_ms = request_metrics.timings.latencies.get(LatencyType.OVERALL_MS, 0)\n if latency_overall_ms > WARNING_LATENCY_OVERALL_MS_THRESHOLD:\n logger.warning(\n f\"Increased overall latency: {latency_overall_ms:0.2f}ms > {WARNING_LATENCY_OVERALL_MS_THRESHOLD}ms. {session_id=}\",\n extra={\"json\": {\"latency_overall_ms\": latency_overall_ms, \"session_id\": session_id}},\n )\n\n _background_tasks.add(\n partial(\n metrics.report_request,\n request_metrics,\n is_log_struct=False, # Too verbose in streaming mode\n )\n )\n\n def _get_rate_limit_bytes(\n self,\n account_id: str,\n bytes_limit: int,\n connections_limit: float,\n account_streaming_limit_connections_override: Dict[str, float],\n ) -> int:\n # Override connections limit by account-specific limit\n if account_id in account_streaming_limit_connections_override:\n connections_limit = account_streaming_limit_connections_override[account_id]\n\n # Override bytes limit by connections limit\n if connections_limit is not None:\n bytes_limit = int(connections_limit * 16_000 * 2) # 16k 16bit mono audio\n\n return bytes_limit\n\n async def _report_usage(\n self,\n account_id: str,\n last_rate_limit_report_bytes: Optional[int], # bytes transcribed\n cumulative_bytes_received: int,\n request: Request,\n stream_params: Dict,\n flush: bool = False,\n session_id: Optional[str] = None,\n ) -> Tuple[float, bool]: # (updated last recorded time, accepted)\n new_bytes = (\n (cumulative_bytes_received - last_rate_limit_report_bytes)\n if last_rate_limit_report_bytes\n else cumulative_bytes_received\n )\n if new_bytes == 0:\n logger.info(\n f\"No new bytes to report. {account_id=} {session_id=} {last_rate_limit_report_bytes=} {cumulative_bytes_received=}\"\n )\n return (last_rate_limit_report_bytes, True)\n\n if flush or (\n last_rate_limit_report_bytes is None or new_bytes >= _args.streaming_connection_report_period_bytes\n ):\n accepted = True\n if _ratelimit_verifier is not None:\n try:\n with fireutil.log_time_if(\"Reporting rate limit\", took_more_than=0.1):\n rate_limit_response: RatelimitResponse = await asyncio.wait_for(\n _ratelimit_verifier.check_and_update(\n user_account=account_id,\n metric=_args.streaming_rate_limit_metric_name,\n cost=new_bytes,\n default_limit=self._get_rate_limit_bytes(\n account_id,\n _args.streaming_bandwidth_limit_bytes,\n _args.streaming_bandwidth_limit_connections,\n _args.account_streaming_limit_connections_override,\n ),\n ),\n timeout=_args.rate_l"} -{"text": "Hi folks so i'm back after taking quite a bit of time off. Had the unfortunate experience of my dad passing away recently. I truly believe that family comes first so i've been spending my time elsewhere. Thanks for your patients.\nVersions of Ubuntu have changed over the last year so i'm going to give you the run down of the latest version, called Ubuntu 12.10 (Quantal) onto your Beagleboard XM. This procedure will be very similar to installing 11.04 but i'm going to give some more broad answers so if links/URLs die and such you can find your way.\n-Beagleboard XM (mine is rev C)\n-Micro SD card (4GB or higher I recommend)\n-Ubuntu system to install things onto your SD card (i'm using VirtualBox with 12.04)\nNOTE: you might need to get a few ubuntu packages for your system (virtualbox), i've already installed a few\napt-get install uboot-mkimage btrfs-tools pv\nThe first thing i'm doing is referencing Roberts home site and i'm going to look for the latest version of Ubuntu for the beagleboard that I can find.\nI'm going to look into the Quantal folder and look for the latest version of the file, then download it. You might have to do the same.\nUnzip the files...\ntar xJf ubuntu-12.10-console-armhf-2013-06-14.tar.xz\nLets go into the folder... pressing the tab button finishes the folder/file name just in case you are new to linux syntax.\nSo there will be a file located in this folder called 'setup_sdcard.sh' this is a script that sets up the SD card for you, which is pretty neat. All you need to do is call the location of your SD card and away it goes. So I called the following command to see where my SD card was mouted.\nI found that my 4GB SD card was located as /dev/sdb1 but i'm going to use the name /dev/sdb so as not to include just the partition name but the whole drive location.\nNow to install the following, you'll need to start the install process, be sure to add your SD card name correctly!! if you have a beagleboard or beaglebone you need to look for the right syntax instread of 'beagle_xm'.\nsudo ./setup_sdcard.sh --mmc /dev/sdb --uboot beagle_xm\nIt will want to confirm that the right drive is being selected, and ask for verification. Just press 'y' and then hit enter. Now this procedure might take a while depending on your connection to your SD card and the speed of your computer/SD card it could take 5-15 mins so be patient. Just to note I did have one pop up warning me, but all i had to do was click ok and it continued.\nOnce this is complete and you get a message saying everything was complete, unmount your SD card if it hasn't been done in the script already.\nNow take the SD card and insert it into your Beagleboard XM and power it up!\nDefault username/password: ubuntu / temppwd\nThe first thing I recommend is updating the packages and upgrading everthing.\nsudo apt-get update\nsudo apt-get upgrade\nOPTIONAL INSTALLS AFTER:\nEthernet - One of many ways to enable Ethernet connection\nsudo ifconfig -a\nsudo dhclient eth0\nsudo ifconfig -a\nSerial Peripheral Interface (SPI) - How to enable SPI hardware...\nYou'll need to remove the # symbol from in front of buddy=spidev, once this is done save by pressing the ctrl+x and confirm the name with an enter.\nContinue over to my SPI for beagleboard post that shows how to test that everything works. But the short part is you should see the spidev located under the /dev folder like this after rebooting.\nGUI Desktop - How to install a simple GUI desktop\nTo get the GUI installed you can do many different approaches I did a couple, first I started by installing the following, but ran into the problem that xserver no longer made OMAP3 video drivers. I think they're going towards xf86-video-omap. But until that is completely true I did the following.\nsudo apt-get install gdm xfce4 network-manager.\nThen I found Robert's script that took care of the rest. Both the previous and the next commands take a couple hours, but you get a few selections for desktops. LXDE and XFCE.\nThanks for your feedback, and feel free to email or message me."} -{"text": "SONGS OF VISCERA Cabaret Event Premieres at Stage Left Studio, 12/20\nCabaret event SONGS OF VISCERA will premiere at Stage Left Studio, 214 W 30th Street, 7:30 pm. The one-night event is the brainchild of Emmy-nominated composer Garth Koren, Drama Desk-nominated character actor Frank Blocker, and the producer Cheryl King, and is (not unconsciously) scheduled for the night before the Mayan calendar ends.\nIn a counter-holiday-programming move, the show promises stalkers, loners, killers, and the end of the world, but absolutely no Christmas music. Visceral selections and interpretations mirror the grittier days of cabaret sans jazz hands, feather boas and lace gloves.\nSong sources include country, alternative, jazz, folk and Kurt Weill, all reinterpreted musically by Koren and performed in character-style by Blocker.\nKoren is a composer, jazz pianist and improvisation specialist whose influences run the gamut of edgy jazzist John Medeski to the classical Michael Steinberg. He composed the music for best-selling children's book The Kissing Hand and received an Emmy-nomination in 2007. Blocker is best known for comedy and character roles. He's most recently performed as a vocalist for AG Contemporary Art in Soho and appears regularly with Forbidden Kiss LIVE! at Stage Left Studio as a vocalist and comedian. Blocker's current solo play Stabilized Not Controlled goes on hiatus from 9-month run as he prepares to reprise both Southern Gothic Novel (2009 Drama Desk nominee) at The Underground Theatre/Hollywood while also play Larry Parrish in Hollywood premiere of David Bertolino's The Deep Throat Sex Scandal at The Zephyr Theatre.\nSONGS OF VISCERA performs Thursday, December 20, 2012, 7:30 pm, at Stage Left Studio, 214 W. 30th Street, 6th Floor. TICKETS are $20 and available through www.StageLeftStudio.net (For tickets, click HERE.) The performance is billed as a fun end-of-the-world party celebrating this mortal coil.\nGarth Koren (piano) is a jazz improvisationist who enjoys a wide range of musical collaborations, having studied with the John Medeski and Michael Steinberg. He toured with LeeAnne Savage, helms the Garth Koren Trio with bassist Marco Accattatis and drummer?Piergiorgio Marchesini, and was a member of the pop/soul band blue number nine, circa 2000. He composed music for bestselling children's book The Kissing Hand audio CD, and received a 2007 Emmy nomination for scoring the \"Beautiful Lengths\" campaign, represented in the Community/Public Service Announcement category. Look for Garth to appear at gigs in New York City in the coming months, including a guest spot for Stage Left Studio's Forbidden Kiss LIVE! New Years' Eve Musical Comedy Love-In.\nFrank Blocker (vocals) is an actor and playwright who, by the way, sings. He regularly appears at Forbidden Kiss LIVE! dueting with the likes of chanteuse DeeAnne Gorman and amazing lyricist Gaby Gold, and has enjoyed invitations to sing at AG Contemporary Art functions in Soho. Musical roles include Peachum in Peculiar Works Project's Beggar's Opera, the devil in Damn Yankees and the wicked witch in The Ruby Slippers. As an actor he has appeared at Fringe Fests, made the requisite L&O appearance, received a Drama Desk Award nomination for Solo Performance, won great acclaim for his penis monologue in The Deep Throat Sex Scandal and screamed bloody murder on the streets as a proud cast member of Obie-winning West Village/East Village Fragments (Peculiar Works). As a playwright his work includes Stabilized Not Controlled, Southern Gothic Novel, Eula Mae's Beauty, Bait & Tackle, Patient Number, The Wisconsinners, and book to the musical Alice (composer Wm. Wade). He is a member of AEA, SAG/AFTRA, and Dramatists Guild of America. He will appear in L.A. productions of Southern Gothic Novel late nights, while reprising his role in Deep Throat January through March 2013.\nCheryl King PRODUCTIONS (producer) was formed in 2000 by Cheryl King. The company has produced several acting retreats, over 300 showcases, and three years of V-Day events. She is the creator of the Left Out Festival, an annual festival of gay performance art, which has been presented since 2008, and is a benefit for Bailey House and GMHC. For her work in promoting gay performance, she was chosen as one of the 100 Women We Love in GO Magazine's June 2008 Annual Pride Issue. In November 2008 she was chosen \"Person of the Year\" by nytheatre.com. She also created the Women At Work Festival, now in its fifth year, which contributes funds to The Girl Effect. Ms. King has curated solo shows for the Estrogenius Festival at ManhattanTheatreSource since 2005. In October 2010, she inaugurated the Mama Drama Festival, a festival of theater about mothers, at Stage Left. Cheryl King is currently starring in Sally Lambert's Grapefruit at Stage Left Studio, directed by Teresa Gambacorta."} -{"text": "imit_timeout_seconds,\n )\n logger.info(f\"Ratelimit response {account_id} {rate_limit_response} {session_id=}\")\n accepted = rate_limit_response.accepted\n request.context.metrics.audio_ratelimit_usage_bytes = new_bytes\n except asyncio.TimeoutError:\n logger.warning(\n f\"Ratelimit check timed out after {_args.rate_limit_timeout_seconds}s for {account_id=} {session_id=}, accepting request\"\n )\n accepted = True\n except AttributeError:\n logger.warning(f\"Ratelimit check error for {account_id=} {session_id=}, accepting request\")\n accepted = True\n\n # Calculate audio duration for billing and metrics\n new_seconds = new_bytes / BYTES_PER_SAMPLE / SAMPLE_RATE\n\n # Update streaming throughput metric for HPA\n request.context.metrics.audio_streaming_seconds_per_second = (\n _audio_streaming_running_duration.add(new_seconds) / _audio_streaming_running_duration.window_seconds\n )\n\n if FIREWORKS_REPORT_BILLING:\n logger.info(f\"Reporting streaming billing delta: {new_seconds} s {account_id=} {session_id=}\")\n task = partial(\n _billing_publisher.publish_streaming_audio_billing_record,\n duration_delta_seconds=new_seconds,\n request_metrics=request.context.metrics,\n billing_request_metadata=create_billing_metadata(request),\n stream_params=stream_params,\n )\n _background_tasks.add(task)\n else:\n logger.info(f\"Skipping reporting billing {FIREWORKS_REPORT_BILLING=}\")\n return (cumulative_bytes_received, accepted)\n else:\n return (last_rate_limit_report_bytes, True)\n\n async def _parse_params(self, request: Request) -> StreamingTranscriptionParams:\n params = await parse_falcon_media(request.params, StreamingTranscriptionParams)\n if params.response_format != \"verbose_json\":\n raise UserError(\"response_format must be verbose_json for streaming\")\n if (\n params.timestamp_granularities != []\n and params.timestamp_granularities\n != [\n TimestampGranularity.WORD,\n TimestampGranularity.SEGMENT,\n ]\n and params.timestamp_granularities\n != [\n TimestampGranularity.SEGMENT,\n TimestampGranularity.WORD,\n ]\n ):\n raise UserError(\"timestamp_granularities must be empty, [word, segment] or [segment, word] for streaming\")\n return params\n\n async def _create_session(\n self, ws: WebSocket, session_id: str, params: StreamingTranscriptionParams, timeout: Optional[float] = None\n ) -> AsyncLocalQueue:\n global _stt_streaming_client\n logger.info(f\"STT stream is opening. {session_id=}\")\n\n try:\n session_params = StreamingTranscriptionSessionParams(\n request_id=session_id,\n request_params=params,\n remove_prefix_dot=_args.streaming_remove_prefix_dot,\n timeout=timeout,\n )\n egress_queue = await _stt_streaming_client.create_session(session_id, session_params)\n except SessionAlreadyExistsException:\n raise RuntimeError(\"STT stream open intermittent server issue. Try again.\")\n except OverloadedException:\n raise RuntimeError(\"STT stream server is overloaded. Try again later.\")\n\n ack: Optional[CreateSessionResponse] = None\n while (not ws.closed) and (not ack):\n ack = await egress_queue.get(True, 10)\n\n if not ack:\n raise WebSocketDisconnected()\n\n if ack.exception:\n if isinstance(ack.exception.with_traceback(), (UserError, ValueError)):\n raise UserError(str(ack.exception)) from ack.exception.with_traceback()\n else:\n raise RuntimeError(str(ack.exception)) from ack.exception.with_traceback()\n\n logger.info(f\"STT stream opened. {session_id=}\")\n return egress_queue\n\n\napp.add_route(\"/v1/audio/transcriptions/streaming\", StreamingSttResource())\n\n\nclass StreamingTtsResource:\n async def on_websocket(self, request: Request, ws: WebSocket):\n global _tts_streaming_client\n session_id = build_request_id(request)\n egress_queue = None\n\n # Tracking\n request.context.metrics.api_type = \"audio.tts.streaming\"\n\n try:\n egress_queue = await self._create_session(ws, session_id)\n await ws.accept()\n logger.info(f\"TTS stream WebSocket accepted. {session_id=}\")\n\n # IO proxies\n async def handle_ingress():\n logger.info(f\"TTS"} -{"text": "The city I live in, Birmingham, launched a new Council website. It made the headlines because it was three years late, and considerably over-budget. I’ve been reading their post-implementation report Web CMS Project Post Implementation Review – Final Report (PDF, 440K) (check out the humane URL of that document: thank goodness for the new Fatwire CMS!)\nOne day, I am going to get rich by doing post-implementation reports on public sector websites (if such a thing as “public sector” remains, of course).\nFrom my experience at the Law Society, and reading reports such as this one, I could easily produce a template document citing the usual reasons for the deadline-breaking, budget-demolishing usability atrocities that get commissioned, and then I’d just slot in the client organisation’s name and charge them a few grand.\nI would use the Birmingham report as a basis, as I’ve already paid for it with my council tax and it lists (or hints at) all the depressingly usual suspects:\n- Scope creep\n- CMSs are bought off-the-shelf, massively customised to the point that they’re unstable and no-one knows how they work any more\n- organisational disdain for their own employees’ accumulated vital knowledge and experience\n- obsessive organisational risk-aversion\n- managers with no understanding of how the web works being put in charge of projects\n- endemic mis-communication\nJoking aside, I’m not qualified to judge how accurate this report is, but it rings true, except for one vital area.\nThe report’s authors offer advice on enhancing the accessibility of the site. The advice is wrong.\nI can’t find the names of the authors to judge their qualifications to pontificate on accessibility but the inaccuracy of terminology of the assertion “W3C rules state that an ‘alt tag’ should be used on all images” makes me uncertain that they really know what they’re talking about (there is no “alt tag” as there is no alt element in HTML).\nSection 13.3.2 says\n…a visually-challenged visitor should be able to increase the font-size and to change text and background colours to make the site legible for him or her. It is possible for an individual to change the font size using their browser settings but it is not possible on the BCC site to do this on the web pages themselves.\nSection 13.3.3 says\n… Browsealoud (http://www.browsealoud.com/ ) is recommended by many bodies including the RNIB. Many visually-impaired people use the system and it is enabled on many government and local government websites – including a subsidiary standalone site of the BCC (www.adultcareinbrum.org.uk – see below).\nSystems like these allow a visitor to listen to the content of a site, thereby making it accessible to those with visual, literacy, and dyslexia challenges.\nWe recommend that Browsealoud or another similar system be implemented on the main BCC site.\nBrowsealoud costs money. It’s basically a plugin that reads text, but has none of the navigational functionality that fully-fledged screenreaders have. The site owner pays to have their web site added to a whitelist contained within the plugin.\nExtensions such as Opera’s Voice (select text, right click, “speak”), Firevox for Firefox, built-in screenreaders on the operating system such as Micrsoft Narrator or Apple Voiceover perform this job without requiring the council to spend money, and (most importantly) at greater utility for the consumer. Browsealoud (or similar plugin) requires that the user learn a new way of interacting with this specific website; using the alternatives I list above enhance the user’s experience on every site she visits.\nIt appears that during development of the site, Birmingham City Council procured four third-party accessibility audits of the website, all of which mention non-resizeable text (but recommend setting it in CSS with relative units rather than coding text resize widgets). None recommends browsealoud or similar plugins.\nI hope that Birmingham does not follow the two accessibility recommendations of the post-implementation report, until it can demonstrate that the authors of that report have significantly greater experience and knowledge of accessibility than the authors of the 4 accessibility audits I obtained under my Freedom of Information request.\nThis is a personal post and not the opinions of my employer, wife, children or hamster.\nBirmimgham also features in another of my Usability Atrocities with its legendary Strategy to develop Short Breaks for Disabled Children."} -{"text": "26 Gorgeous Hotels You Won't Believe Are Under $150\nEvery so often, a hotel comes along that is both stylish and comfortable, close to the action and affordable. From the beaches of Mexico to the quaint courtyards of New Orleans, here are 26 properties that make the cut this year. You're welcome.\nWe scoured the globe to find the best new hotels out there. Making our list is harder than you think! Each of these independent properties has to meet a strict criteria to even be considered: they must have a unique story; their design sense must speak to the local culture instead of being generic and corporate; and they must (no exceptions!) be available for under $150 per night. You'll hear the owners' stories. You'll find urban retreats in some of the planet's most expensive cities. You'll take in unobstructed ocean views from your private balcony. You'll commune with nature. Bottom line—you'll never want to leave.\nJoshua Tree, California\nHicksville Trailer Palace owner Morgan Higby Night isn’t the first creative type to find inspiration in the rugged, lunar landscape of Joshua Tree National Park (see also: Gram Parsons, U2). But the Los Angeles–based writer and producer (Shortbus, Talking About Sex) has certainly taken his artists’ retreat there to an audaciously kitschy level. “I was already going out to Joshua Tree two to three days a week to write my latest screenplay,” Higby Night says. “It made me think that maybe other artists in L.A. also needed a place to get away to work.” Higby Night installed 10 vintage trailers, a solar-heated saltwater pool, and an archery and BB gun range on his two-acre desert plot last April. Each unit has a distinct design scheme and amenities: a jukebox filled with punk tunes, a TV stocked with horror (and only horror) movies, and bunk beds that, for an extra $50 a day, can be tucked away to make room for a film editing suite. And guests don’t have to worry about curious day-trippers traipsing the grounds: Directions are only given out to folks with confirmed reservations.\nhicksville.com, from $75.\nJensen Beach, Florida\nLet the scenesters have South Beach. The eight-room Inn at Tilton Place, two hours to the north in Jensen Beach, swaps crowded pool decks and velvet-rope nightclubs for quiet coves and evening wine tastings on the front porch. The whole place is steeped in Florida history. A local fisherman built the white clapboard house in the early 1900s and gave it to his daughter as a wedding present; today, her great-granddaughter, Katie Wacha, runs the place. There’s a wall of black-and-white photos in the foyer documenting the generations of Tiltons who’ve inhabited the house. Still, the best new tradition at the inn is Wacha’s own: seasonal, three-course breakfasts, featuring beyond-the-basics dishes like red pears with rosemary sugar and basil hollandaise Benedict.\ninnattiltonplace.com, from $109.\nWhen Kelli Kerns, Tim Cron, and Becky Cron (Kerns’s sister) purchased the Sawtooth Hotel in Stanley (population: 100) in 2004, they had modernizing on the brain. Over the course of the family’s three-year restoration project, they added rooftop solar panels, installed a commercial kitchen for their popular ground-floor restaurant, and upgraded the nine guest rooms with new baths and fresh furnishings. The best part? You’re not hit over the head with any of the upgrades. The 70-year-old log-cabin landmark still has all the rustic, small-town charm you’d expect: 100-year-old skiing gear mounted on the walls, a carved wooden moose grinning in the lobby, and the dining room’s views of the jagged, snowcapped Sawtooth Mountains—just as impressive as they were in 1931 when the original Sawtooth opened.\nsawtoothhotel.com, from $70.\nNew Orleans, Louisiana\nLike many French Quarter spots, the Hotel Le Marais, steps away from Bourbon Street, greets guests with plenty of flash: The lobby is all bright colors, mirrored tiles, and party music. But enter one of its 64 renovated guest rooms, and the tone shifts. The mostly neutral decor subtly references the city—eggplant throw pillows, photos of Louisiana landscapes—without playing to clichés. Some rooms even have wrought-iron balconies overlooking the internal brick courtyard (and its heated saltwater plunge pool) lit with both old-fashioned gas lamps and neon purple lights. hotellemarais.com, from $110.\nSt. Paul, Minnesota\nHotel 340, housed in the former headquarters of the St. Paul Athletic Club, is no ordinary YMCA. The 12-story English-renaissance building has served as a downtown clubhouse for St. Paul’s upper crust since 1917; today, the carefully restored structure is home to the hotel (on the top three floors), plus the University Club of St. Paul, a chichi lobby bar, and, of course, an all-new 60,000-square-foot fitness center (free for guests). The building’s entrance is downright grand, with its 20-foot-high coffered ceiling, marble columns, and huge fireplace. The hotel’s 17 rooms all have cherry hardwood floors; mahogany headboards; marble showers; and skyline, courtyard, or river views. The 40 suites (from $129) add fully stocked kitchenettes and steam showers or whirlpools.\nhotel340.com, from $99."} -{"text": " stream ingress started. {session_id=}\")\n iterations = 0\n\n while not ws.closed:\n iterations += 1\n data = await ws.receive_media()\n if not data:\n continue\n\n if isinstance(data, Dict):\n event = serialization.loads(data, TtsIngress)\n await _tts_streaming_client.send(session_id, event)\n\n logger.info(f\"TTS stream ingress finished. {session_id=} {iterations=}\")\n\n async def handle_egress():\n logger.info(f\"TTS stream egress started. {session_id=}\")\n iterations = 0\n while not ws.closed:\n iterations += 1\n e: Optional[EgressEvent] = await egress_queue.get(True, 5)\n if not e:\n continue\n\n # Command egress\n if isinstance(e.payload, BaseModel):\n await ws.send_text(e.payload.model_dump_json())\n continue\n\n # Error egress\n if e.exception:\n if isinstance(e.exception.with_traceback(), (UserError, ValueError)):\n raise UserError(str(e.exception)) from e.exception.with_traceback()\n else:\n raise RuntimeError(str(e.exception)) from e.exception.with_traceback()\n\n # Data egress\n await ws.send_data(e.payload)\n\n logger.info(f\"TTS stream egress finished. {session_id=} {iterations=}\")\n\n await asyncio.gather(handle_ingress(), handle_egress())\n\n except WebSocketDisconnected:\n logger.info(f\"TTS stream WebSocket disconnected. {session_id=}\", exc_info=VERBOSE)\n finally:\n logger.info(f\"TTS stream is terminating. {session_id=}\")\n if egress_queue:\n try:\n await _tts_streaming_client.terminate_session(session_id)\n except NotFoundException:\n pass\n logger.info(f\"TTS stream terminated. {session_id=}\")\n\n async def _create_session(self, ws: WebSocket, session_id: str) -> AsyncLocalQueue:\n global _args\n global _tts_streaming_client\n logger.info(f\"TTS stream is opening. {session_id=}\")\n\n try:\n session_params = StreamingTextToSpeechSessionParams(\n request_id=session_id,\n max_output_chunk_size_bytes=_args.tts_max_chunk_size_bytes,\n )\n egress_queue = await _tts_streaming_client.create_session(session_id, session_params)\n except SessionAlreadyExistsException:\n raise RuntimeError(\"TTS stream open intermittent server issue. Try again.\")\n except OverloadedException:\n raise RuntimeError(\"TTS stream server is overloaded. Try again later.\")\n\n ack: Optional[CreateSessionResponse] = None\n while (not ws.closed) and (not ack):\n ack = await egress_queue.get(True, 10)\n\n if not ack:\n raise WebSocketDisconnected()\n\n if ack.exception:\n if isinstance(ack.exception.with_traceback(), (UserError, ValueError)):\n raise UserError(str(ack.exception)) from ack.exception.with_traceback()\n else:\n raise RuntimeError(str(ack.exception)) from ack.exception.with_traceback()\n\n logger.info(f\"TTS stream opened. {session_id=}\")\n return egress_queue\n\n\napp.add_route(\"/v1/audio/tts/streaming\", StreamingTtsResource())\n\n\nclass AudioBillingPublisher(BillingPublisher):\n \"\"\"\n A publisher class for sending billing records to a specified Pub/Sub topic.\n\n Attributes:\n publisher (pubsub_v1.PublisherClient): The Pub/Sub publisher client.\n topic_path (str): The path to the Pub/Sub topic.\n is_initialized (bool): Indicates if the publisher is properly initialized.\n \"\"\"\n\n def __init__(self, pubsub_topic_id: str = \"\", pubsub_project_id: str = \"\"):\n \"\"\"\n Initializes the BillingPublisher.\n\n Args:\n pubsub_topic_id (str): The Pub/Sub topic ID to publish to.\n pubsub_project_id (str): The GCP project ID for the Pub/Sub topic.\n \"\"\"\n self.is_initialized = False\n if pubsub_topic_id == \"\" or pubsub_project_id == \"\":\n return\n super().__init__(metrics, pubsub_topic_id, pubsub_project_id)\n self.is_initialized = True\n\n @staticmethod\n def _duration_to_interval(duration: duration_pb2.Duration) -> str:\n delta = relativedelta.relativedelta(\n seconds=duration.seconds,\n microseconds=int(duration.nanos / 1000),\n )\n milli = str(int(delta.microseconds / 1000))\n while len(milli) < 3:\n milli = \"0\" + milli\n return f\"{delta.years}-{delta.months} {delta.days} {delta.hours}:{de"} -{"text": "Change doesn’t always sit well with the NASCAR faithful.\nJust talk to a race fan about swapping the dates of races at some of NASCAR’s most storied tracks and you’re likely to get a strong reaction — almost always in favour of keeping the status quo. The Car of Tomorrow was almost universally reviled when it was first introduced and the Chase for the Sprint Cup wasn’t immediately popular, although it seems to have grown on people.\nSo there’s little surprise that the decision to repave stock car racing’s most famous track — Daytona International Speedway — hasn’t gone over well with drivers and fans alike.\n“They should not repave race tracks,” Carl Edwards said back in February when it looked like the repaving project was still three years away. “I think the rougher the better. It makes it more fun when you’re out there sliding around and moving. It makes it harder so that you can end up running different lines and get an advantage. If this track were like Talladega, it wouldn’t be nearly as fun.”\nSure the surface at Daytona was a little rough, not surprising since it hasn’t been repaved since 1978, but it had character and in many people’s minds has made for better racing than at the loop’s other superspeedway at Talladega, which was repaved in 2006.\nEven after the farcical Pothole 500 in February, drivers were still clamouring for a way to keep the old track intact. Kyle Busch — who rarely agrees with Edwards on anything — told the Miami Herald recently that the repaving project is a mistake.\n“I’m not a fan of it,” he said earlier this month. “I think it’s cool the way that the track is. It’s old, it’s slick. You really have to have a good handling race car to get around here.”\nFortunately the drivers aren’t in charge and the NASCAR bigwigs encouraged International Speedway Corporation to make improvements to its track immediately.\nWork has already begun to tear about the surface which has seen 32 Daytona 500s and 32 Coke Zero 400s. If all goes according to plan the track will be ready early in 2011 and barring a catastrophic delay the green flag on the 2011 Daytona 500 will drop Feb. 20.\nThe last race on the old surface was July 3 when Kevin Harvick drove his Shell/Pennzoil No. 29 Chevrolet into victory lane. It was the second win of the season for the current points leader and a very special one.\n“I think this racetrack is obviously the most historic racetrack that we race on, and I think if that asphalt could talk, you can go back and look at all the stories,” Harvick said after the win. “But it’s just such a neat deal to be able to win the last race on that particular asphalt. It’s going to be a lot different race when we come back.”\nAs great as the old track was, it was beginning to show its age. The pothole that delayed the Daytona 500 was just one manifestation of this.\nNostalgia is important in sport and NASCAR is full of great traditions, but times change and fans and drivers can’t let their feelings get in the way of important innovation.\nDaytona will be different next year. The drivers will need to find new racing lines and figure out what works on the new surface. But it is still Daytona and if the asphalt that is being laid down over the next six months could talk, it will soon have some great stories of its own to share.\n• He said it: “When you go to the racetrack . . . as a team we kind of compare ourselves to each other, maybe to the competitors that we can feed on that weekend. We don’t even compare ourselves to the 18 because they’re in their own time zone. But it all starts at the top. Joe Gibbs and their attitude, if they’re going to do something, they’re going to do it right. They’re going to go at it 110 per cent.” — Jason Leffler, the driver of the No. 27 Great Clips Toyota in the Nationwide Series talking about defending Nationwide Series champion Kyle Busch in the No. 18 Z-Line Designs Toyota.\n• Canadians: The NASCAR Canadian Tire Series begins a two-week trip to the site of IZOD Indy Car events. Saturday, Canada’s top stock car series is in Toronto for the inaugural Canadian Tire Jumpstart 100 and breaking from tradition the event will be live on TSN at 2:30 p.m. ET.\n• This week: The Sprint Cup Series takes a week off, so the Nationwide Series grabs the spotlight in Madison, Ill., for the Missouri-Illinois Dodge Dealers 250 at Gateway International Raceway (Saturday, 7:30 p.m. ET, TSN)."} -{"text": "Before I tell you about how I found the camaro's original drive train, I want to tell you story of how the original owner and a 69 RS/SS L 78 camaro came together. It was Dec. of 1968 and Bill Floyd was living on the central Oregon coast and looking to buy new tri power Corvette. His dealer was Southwestern motors and they told Bill they couldn't get\nhim one. After hearing this Bill ask them to get him the \"biggest motor he could get in a Camaro\". 360 miles away in Burns, Oregon sat a new rallye green 69 Camaro RS/SS 396/375 HP in Ganger & Grover Motors. Southwestern pulled the car for Bill. Years later in 1991 I asked Bill if he knew about the 427's the factory was putting in the camaro's back then, he said if he had known he would have ordered one. Bill named the Camaro \" thunder\" because of the L 78 running through those chambered exhast. He said he could take out anyone on a rolling start, you see the car only had a non posi BN rear with 3:55.\nMy involvement with the L 78 camaro started in July of 1990, a co worker owned the camaro and this time the motor and trans had been pulled and sitting on the floor of the garage. I bought the car for $3500. in July 1990. By now the motor and trans were replaced. The camaro had a L78 from a 68 chevelle \"EG\" the 4 speed replaced with a TH 400. Now began the hunt for original motor and 4 speed. At this point I knew noting about the owners or history of this Camaro.So where to start,I knew the co worker bought it in Beaverton, Oregon. I called the Oregon DMV ( Department of Motor Vehicles) paid them $24 and the cars VIN numbers a week later received all the owners information ie. regstration paper, the dealers transferring the car for Bill and the like. A gold mind of information. This was my starting point for finding the original motor an 4 speed. I wanted to try for the motor first, so I called the owners starting with the last owner and working forward. About the 4th or 5th owner spun the crank shaft on the L 78 and the motor ended up in Roseburg, Oregon in a 69 chevelle. I talked to the guy that fixed the engine and put it in the chevelle. He stated he sold the chevelle to his paper boy some years ago. I asked for the vin or plate number, and proceeded to DMV the chevelle. After receiving the paper work, I contacted the last owner first. He still had the car, and the engine was sitting in his barn out of the car.We agreed on a price an away I went. This odyssey, time wise was about 4 or 5 months of work with lots of time on the phone. Now for the 4 speed, since I made lots of connections looking for the motor I used some of the same people on this hunt. Now mind you this was 15 years after the drive train left the camaro, but I was full of confidence after finding the original engine.The previous owners all lived in small towns and for the most part knew each other so that help a lot. After a few months one of the owners directed me to two brothers that were into off road 4 wheel drive racing or some thing like that. Years ago they ended up with the camaro's 4 speed. I talked to one of the brothers several times over a period of 4 months. At times he he gave me some good information and other times he was to busy to talk and could care less. Think I wore him out and he finally said, if I find out were the trans went what are you going to do for me.... I'll give you $100.00 for information on who has it I said. He said to give him 2 weeks then call him back. I called 2 weeks later and he had all the information I needed.... phone numbers, address, and names. I asked him where to send the money, he said don't worry about it just keep it. Wow, I caught him on a good day you just never know about some people, but that's how it works. I then called my best new buddy, the owner of the 68 camaro that I think my trans is in. Brenda was the owner name, and she owned a 68 camaro RS/SS 396 car, that may have my 4 speed.I contacted Brenda about the trans in her camaro after a few months of talking I went down there to look at her 68's 4 speed.I ran it up on my ramps to check the numbers out, what I saw was P9M19 plus the cast numbers, 3925660,3857584,3950306, but no vin stamp. I went home unsure if it was my 4 speed. After 5 months Brenda agreed to having me pay for a replacement 4 speed for her 68 camaro. I would come down (4 hour drive one way ) swap out the 4 speeds and give her $100.00 for the her time. My brother and I went down to Coquille, Oregon pulled the trans out and cleaned off the top and there was my camaros vin stamp on top. After all the trials and tribulations it was all worth it in the end."} -{"text": "lta.minutes}:{delta.seconds}.{milli}\"\n\n def publish_audio_billing_record(\n self,\n request_metrics: RequestMetrics,\n billing_request_metadata: BillingRequestMetadata,\n ):\n \"\"\"\n Publishes a audio billing record message to the Pub/Sub topic.\n \"\"\"\n if not self.is_initialized:\n logger.warning(\"AudioBillingPublisher is not initialized. Message will not be published.\")\n return\n\n record = billing_subscriber_pb2.BillingUsageRecord()\n record.usage_type = billing_subscriber_pb2.BillingUsageRecord.UsageType.AUDIO_INFERENCE_USAGE\n record.event_id = request_metrics.request_id or \"\"\n record.start_time.seconds = request_metrics.request_time or 0\n record.end_time.seconds = round(\n request_metrics.timings.timestamps.get(TimingType.REQUEST_FINISHED, time.time())\n )\n\n # Common properties\n record.properties[\"deployment_name\"] = metrics._get_deployment()\n\n # properties\n record.properties[\"api_type\"] = request_metrics.api_type or \"\"\n record.properties[\"model\"] = request_metrics.model or \"\"\n record.properties[\"vad_model\"] = request_metrics.vad_model or \"\"\n record.properties[\"alignment_model\"] = request_metrics.alignment_model or \"\"\n record.properties[\"is_batch\"] = request_metrics.is_batch or \"false\"\n record.properties[\"is_diarization\"] = request_metrics.is_diarization or \"false\"\n\n record.properties[\"audio_input_size_bytes\"] = request_metrics.audio_input_size_bytes or 0\n record.properties[\"audio_input_size_samples\"] = request_metrics.audio_input_size_samples or 0\n record.properties[\"audio_input_size_seconds\"] = request_metrics.audio_input_size_seconds or 0\n record.properties[\"audio_input_size_speech_seconds\"] = request_metrics.audio_input_size_speech_seconds or 0\n record.properties[\"output_len_bytes\"] = request_metrics.output_len_bytes or 0\n record.properties[\"output_len_tokens\"] = request_metrics.output_len_tokens or 0\n record.properties[\"output_language\"] = request_metrics.output_language or \"\"\n record.properties[\"output_num_segments\"] = request_metrics.output_num_segments or 0\n record.properties[\"api_key_id\"] = billing_request_metadata.api_key_id or \"\"\n\n self.publish_message(\n billing_usage_record=record,\n billing_request_metadata=billing_request_metadata,\n )\n\n def publish_streaming_audio_billing_record(\n self,\n duration_delta_seconds: float,\n request_metrics: RequestMetrics,\n billing_request_metadata: BillingRequestMetadata,\n stream_params: Dict,\n ):\n \"\"\"\n Publishes a audio billing record message to the Pub/Sub topic.\n \"\"\"\n if not self.is_initialized:\n logger.warning(\"AudioBillingPublisher is not initialized. Message will not be published.\")\n return\n\n record = billing_subscriber_pb2.BillingUsageRecord()\n record.properties[\"api_type\"] = request_metrics.api_type or \"\"\n record.usage_type = billing_subscriber_pb2.BillingUsageRecord.UsageType.AUDIO_INFERENCE_USAGE\n # NB: Generating new UUID on the fly, since we are creating new billing records\n # periodically from a stream. We cannot rely on the request ID.\n record.event_id = str(uuid.uuid4())\n curr_time = time.time()\n record.start_time.seconds = int(curr_time - duration_delta_seconds)\n record.end_time.seconds = int(curr_time)\n\n # Common properties\n record.properties[\"deployment_name\"] = metrics._get_deployment()\n\n # properties\n record.properties.update(stream_params)\n record.properties[\"duration_sec\"] = duration_delta_seconds\n record.properties[\"api_key_id\"] = billing_request_metadata.api_key_id or \"\"\n\n self.publish_message(\n billing_usage_record=record,\n billing_request_metadata=billing_request_metadata,\n )\n\n\nclass MockAudioBillingPublisher(AudioBillingPublisher):\n def __init__(self, app):\n # NB: do NOT call super().__init__()\n\n self.is_initialized = True\n self.recorded_data = []\n\n # Close over self for the response resource to work\n mock_publisher = self\n\n class GetBillingResponse:\n async def on_get(self, req, resp):\n resp.content_type = \"application/json\"\n resp.media = mock_publisher.recorded_data\n\n async def on_post(self, req, resp):\n mock_publisher.recorded_data.clear()\n\n br = GetBillingResponse()\n app.add_route(\"/billing_mock_metrics\", br)\n app.add_route(\"/clear_billing_mock_metrics\", br)\n\n def publish_message(\n self,\n billing_usage_record: billing_subscriber_pb2.BillingUsageRecord,\n billing_request_metadata: BillingRequestMetadata,\n ):\n keys = [\n \"usage_type\",\n \"account_id\",\n"} -{"text": "So I picked it up yesterday in the store I'm working in and had the chance to quickly get a first impression of it today.\nKeep in mind, that this is a superzoom which will inevitablely have to make compromises. I don't want to start a discussion on the subject if such a lens is \"good\" or \"bad\" - it has its clear purpose of serving as an allround lens for travelling when you just don't have the time to switch between several lenses all the time. It's also very light for those occasions where you dont want to pack yourself with multiple heavy lenses. If you need the best possible quality for a very special scene, you still will have to take a prime (or maybe a small-zoom-range) lens.\nBasicly, when you pick up the lens, you feel that you've got a solid piece of glass in your hands. The AF, VC and Zoomlock switches are all reasonably placed so they can be reached well. The zoom has got some resistance to it to reduce lens creep (more on that in a moment). Between 70 and 120mm the resistance reaches its summit. However after a day of using it already starts to run a little smoother.\nThe front element is not rotating, which certainly is great news if you want to use a filter. Due to the wide angle, the included lens hood is naturally quite small, yet well shaped (bigger on the top and the bottom) to maximize its potential. The manual focus ring is a bit loose, but reasonably sized.\nAfter so much praising you probably already suspect that there are some downsides as well, so here we go... The inner tube wobbles a little bit but it's not critical. Probably the biggest issue is lens creep - If you point the camera towards the ground and shake it, the lens will zoom in due to the weight of the inner tube(s). While I don't know exactly how big of an issue this is with other superzooms, I think it's still within reason on this one. As mentioned before, the zoom ring is pretty loose when switching to MF, so manual focusing is not that great.\nOverall, Tamron has done a pretty good job with this lens, apart from the usual superzoom issues, such as lens creep.\nI've read in various other comments about this lens (especially from those with Nikon mount) that the autofocus was very slow so I was quite worried when I did my first testshots. I discovered that in daylight, the autofocus is actually nothing to worry about - surely, it aint as fast as a USM Autofocus from Canon and if you want to professionally shoot sports, you should look for another lens - BUT for normal use it certainly is quick enough. In low light though, the story is a slightly diffrent one: The focus gets quite slow, taking about 1-2 secs if the subject is close and ocasionally it starts to hunt. At times it's actually unable to focus at all until you try a second or even third time.\nConclusion: The AF is just fine in good lighting conditions, whereas in low light it can get quite slow.\nNot much to write about here... it works very fine - I was able to shoot at 1/60s at 270mm without problems and down to 1/8s at wider angles. I guess someone with more steady hands will even be able to take 1/4s shots without a tripod. You can tell when the stabilizer starts to work by its relatevely loud noise, it starts working when you half-press the shutter release button, and stops about 2 seconds after you stop pressing it again.\nSo the Vibration Compensation is probably the biggest improvement over the previous 18-250.\nFor optical Quality, check my thread in the lens galery\n. To write a quick conclusion here (personal impression after 1 day of use): This lens is tack sharp in the center, still very sharp towards the edges, but starts to smooth out a little in the corners. CA's are nothing to worry about as far as I can tell at the moment, and vignetting is well controled.\nThe Tamron 18-270mm certainly is a compromise - but a good one! Optical quality is surprisingly good (at least as far as I can tell until now), and I'm especially pleased by the low amount of CA's. Build quality is ok, but not great - certainly good enough for a holiday. Vibration Compensation works great, which makes up a bit for the rather small max aperture. There are 3 bad points, 2 of which can be overlooked for an allround lens in my opinion: Probably the biggest issue is the slow and sometimes hunting AF in low light. typical for such a lens, it tends to creep when pointing up or down and lastly the aperture at 200< is quite small (f/6.3).\nSo overall I think I can highly recommend the Tamron 18-270 to anyone who's looking for a travel lens."} -{"text": "WHEN the Ocean Drover, carrying tens of thousands of Australian sheep, was boarded in August by Bahraini quarantine officials demanding to meet the captain, exporter Wellard knew something was not right.\nThe ensuing scrutiny by authorities and the eventual refusal to unload 21,000 sheep heralded the beginning of the chaotic last month of the sheep's lives that ended with them culled, many of them brutally, in a Karachi feedlot.\nWellard has revealed for the first time that it discussed culling the 21,000 sheep at sea and throwing them overboard in a bid to maintain animal welfare.\nWellard executive chairman Mauro Balzarini said they needed to dispose of the animals and could have killed the sheep at sea. ''Slaughter them humanely according to the international standard. Throw them overboard - animal welfare is protected but what would be the reaction of the media in Australia if you throw 20,000 sheep, although killed humanely, in the sea?'' he said.\nThe Ocean Drover, owned and operated by Wellard, ferried sheep from Fremantle unloading in Oman and Kuwait, without hassle, before arriving in Bahrain on August 21.\nWhen it docked, Bahrain officials accused the ship of having an unacceptable mortality rate during the voyage. After this was debunked, officials kitted out in hazard suits boarded and claimed the sheep were infected with scabby mouth.\nThe Ocean Drover was ordered out of port at midnight, prompting diplomatic negotiation.\nOn August 29, Wellard was told that the sheep had been approved, subject to an independent test. The ship re-entered Bahrain and the next day the agriculture department approved discharge.\n''As we were preparing for discharge, the [harbour] master received instruction by the port authority to leave. Because the Minister of Interior said so. Without any explanation, without anything. Basically that was an order that could not be ignored,'' Mr Balzarini said.\nWellard executive director Stephen Meerwald said it was likely that ''internal conflict within Bahrain and commercial players'' caused the rejection.\nThe whole Australian industry has now barred trade with Bahrain, which Mr Meerwald said was definitely not a commercial decision. ''Bahrain is calling us every day - 'we need sheep','' Mr Balzarini said.\nPakistan's PK Livestock, which Wellard helped found in 1996- and was listed as the exporter's contingency market -- took the sheep two weeks later after it was approved as a compliant ''supply chain'' under new animal welfare export rules.\nDespite clearance from Pakistan authorities, allegations of disease from local authorities were levelled. Tests found no disease in the sheep, but the local government backed by 300 armed security personnel seized control of the PK Livestock facility and began a cull on September 16.\nPK Livestock's head, Tariq Butt, sought an injunction, that was not approved until September 22, but by then nearly 10,000 sheep were slaughtered.\nReports, and unsubstantiated YouTube videos, detail brutal killing methods with some animals buried alive. At night locals were seen pilfering the mass graves, cutting off limbs of dead animals to take home or sell.\nMr Balzarini and Mr Butt both blame the Karachi media for whipping up fear and concern about the rejection in Bahrain.\nThroughout the incident there has been industry and media speculation that accusations were levelled because certain ''demands'' were not met: Mr Butt made these claims in the Karachi media but would not repeat them when Fairfax spoke to him.\n''These men declared the healthy Australian sheep diseased after their ''demands'' were not met and used fake evidence to have thousands of sheep culled in an inhumane way,'' Mr Butt told a Pakistan newspaper.\nWhen Wellard was asked this week about corruption, Mr Meerwald said it had no reason to doubt there was ''something behind that''.\nOn October 18 Mr Butt withdrew the injunction claim, sealing the fate of the sheep which were swiftly killed.\nThe backdown came after armed police turned up to demolish the PK Livestock facility but were driven away by local employees. ''You can imagine a man who's just put everything into three weeks in court doing everything in court to defend the rights of these sheep. You can imagine what sort of pressure he may have been under,'' Mr Balzarini said.\nOn Monday the ABC's Four Corners investigates the Pakistan saga, with the live export industry extremely nervous.\nwith Damien Bright"} -{"text": " \"email\",\n \"event_id\",\n ]\n value = {k: getattr(billing_usage_record, k) for k in keys}\n value.update(billing_usage_record.properties)\n self.recorded_data.append(value)\n\n\nclass RequestIDMiddleware:\n async def process_request(self, request: Request, response: Response):\n await self._process_request(request)\n\n async def process_request_ws(self, request: Request, ws: WebSocket):\n await self._process_request(request)\n\n async def _process_request(self, request: Request):\n request.context.request_id = request.get_header(\"x-request-id\", default=str(uuid.uuid4()))\n\n\nclass MetricsMiddleware:\n def __init__(self, pubsub_topic_id: str = \"\", pubsub_project_id: str = \"\"):\n global _billing_publisher\n if _billing_publisher is None:\n if FIREWORKS_MOCK_BILLING:\n _billing_publisher = MockAudioBillingPublisher(app)\n else:\n _billing_publisher = AudioBillingPublisher(pubsub_topic_id, pubsub_project_id)\n\n @staticmethod\n def _should_report_billing(metrics: RequestMetrics):\n if not metrics.http_code or metrics.http_code >= 300:\n logger.warning(\n f\"Got error/redirect response with status code {metrics.http_code}, skip billing reporting.\"\n )\n return False\n return not metrics.is_health_check\n\n async def process_request(self, request: Request, response: Response):\n await self._process_request(request)\n\n async def process_request_ws(self, request: Request, ws: WebSocket):\n await self._process_request(request)\n\n async def _process_request(self, request: Request):\n if request.method != \"POST\" and not request.is_websocket:\n return\n\n account_id = request.context.account_id\n request.context.metrics = RequestMetrics(\n is_health_check=(account_id == \"health_check\"),\n request_id=request.context.request_id,\n request_time=round(time.time()),\n api_path=request.path,\n requests_concurrent_total=_inference_client.get_active_count(),\n # Headers\n account=account_id,\n header_user_email=request.get_header(\"x-fireworks-developer-email\", default=\"\"),\n header_user_agent=request.get_header(\"user-agent\", default=\"\"),\n header_mime_type=request.get_header(\"accept\", default=\"\"),\n header_traceparent=request.get_header(\"traceparent\", default=\"\"),\n header_tracestate=request.get_header(\"tracestate\", default=\"\"),\n header_organizationid=request.get_header(\"organizationid\", default=\"\"),\n header_requestid=request.get_header(\"requestid\", default=\"\"),\n header_userid=request.get_header(\"userid\", default=\"\"),\n )\n\n async def process_response(self, request: Request, response: Response, *args, **kwargs):\n if not hasattr(request.context, \"metrics\"):\n return\n\n request.context.metrics.http_code = http_status_to_code(response.status)\n\n request.context.metrics.timings.add_timestamp(TimingType.REQUEST_FINISHED, time.time())\n request.context.metrics.timings.add_latency(LatencyType.TX_MS)\n request.context.metrics.timings.add_latency(LatencyType.OVERALL_MS)\n\n request.context.metrics.report_billing = self._should_report_billing(request.context.metrics)\n\n _background_tasks.add(partial(metrics.report_request, request.context.metrics))\n billing_metadata = create_billing_metadata(request)\n billing_metadata.account_id = request.context.account_id\n if FIREWORKS_REPORT_BILLING and request.context.metrics.report_billing:\n task = partial(\n _billing_publisher.publish_audio_billing_record,\n request_metrics=request.context.metrics,\n billing_request_metadata=billing_metadata,\n )\n _background_tasks.add(task)\n\n\nclass AuthMiddleware:\n \"\"\"Temporary workaround to store call history. Remove once middleware migrated to reverse proxy.\"\"\"\n\n async def process_request(self, request: Request, response: Response):\n await self._process_request(request)\n\n async def process_request_ws(self, request: Request, ws: WebSocket):\n await self._process_request(request)\n\n async def _process_request(self, request: Request):\n if request.method != \"POST\" and not request.is_websocket:\n return\n\n # For direct route, we use Unkey to directly authenticate the user.\n # As a result, the typical X-Fireworks-Account-Id field is not set,\n # so create_billing_data will not correctly populate account_id,\n # which is required for billing. Here we unify auth handling between\n # direct route and the Fireworks gateway, populating the X-Fireworks\n # request headers in the direct route case\n if is_direct_request(request):\n authorized, authorized_use"} -{"text": "In May 2010, the annual Great Calusa Blueway Paddling Festival was included as one of the top 20 events and festivals by the Atlanta-based Southeast Tourism Society (STS). With more than 1,000 events and festivals in 12 states competing for this award, winning it is no small achievement.\nThis unique paddling trail, covering more than 190 miles of creeks, estuaries, back bays, and rivers throughout Lee County, originated in 2003 as a joint venture between the Lee County Visitor & Convention Bureau and Lee County Parks and Recreation Department. The first Paddling Festival was held in June 2006. This annual event is now held every fall from the last weekend of October through the first weekend of November.\nThe Great Calusa Blueway is divided into three geographical sections: Estero Bay; Pine Island Sound/Matlacha Pass; and Caloosahatchee River and tributaries. The Estero Bay zone begins at Bunche Beach to the northwest and ends in the southeast corner of Lee County at the headwaters of the Imperial River. This is the most protected of the three legs of the Blueway and includes Hurricane Bay, Hell Peckney Bay, much of the Estero Bay Aquatic Preserve, and both the Estero and Imperial rivers. While there are several channel crossings and open-water stretches in this section, most of the Blueway paddling trail hugs the mangrove-lined shore, and the open-water stretches are seldom more than a mile in length. Intermittent trail markers along the way also help to make this section the best bet for the less experienced paddler. Stops include Mound Key, Lovers Key State Park, Matanzas Pass Preserve, and Koreshan State Historical Site.\nPhoto courtesy of LVCBureau\nKayaking at dawn in Pine Island Sound\nThe second section stretches from Bunche Beach northwest to Cayo Costa State Park, with a branch going to the Charlotte Harbor Preserve State Park to the northeast. Covering this large area would take an average kayaker four to five days, and there are numerous islands and parks where the overnight adventurer can find a safe place to pitch a tent or sleep under the stars. Places to visit along the way include Picnic Island, J.N. \"Ding\" Darling National Wildlife Refuge, Cabbage Key, Pine Island Flatwoods Preserve, and Buck Key. While there are Blueway trail markers throughout much of this section, they are sometimes too far apart to be spotted visually, so a handheld GPS is recommended for longer trips. Most of these trails wind through the protected waters of Matlacha Pass Aquatic Preserve, but open-water paddling is required to get to the Charlotte Harbor Preserve and Cayo Costa State Park. Care should be taken when crossing the Intracoastal Waterway near Punta Rassa and between Useppa Island and Cabbage Key since it is heavily traveled by large cruising vessels.\nThe third Blueway section runs parallel to the Intracoastal Waterway, beginning at the Punta Rassa boat ramp and continuing east down the Caloosahatchee beyond the Franklin Locks in Alva. While there are plenty of safe havens such as Shell Creek, Whiskey Creek, Yellow Fever Creek, and the Orange River, paddling the broad, heavily trafficked Caloosahatchee can be best managed by staying along one shore or the other. There are some great places to explore in this section including Manatee Park, Four Mile Ecological Preserve, Hickey's Creek Mitigation Park, and Caloosahatchee Regional Park.\nThe Great Calusa Blueway has much to offer the novice and experienced paddler alike. Along the way you are going to see scores of birds, manatees, dolphins, and possibly even alligators. The fishing is fabulous and ranges from snook and mangrove snapper to largemouth bass in the freshwater sections near Alva. Because this expansive trail covers so much territory (encompassing many of the same preserves and parks identified in this book), the best way to get a handle on it before taking your first stroke is to visit its comprehensive website. The many places to stay, restaurants to enjoy, launches, rest stops, and more than 100 trail markers and GPS coordinates to upload will help you grasp the enormity of the Great Calusa Blueway. The website has a list of 20 canoe and kayak vendors who participate in the program, as well as identifying a half-dozen paddlecraft-friendly lodges that will help make your journey more comfortable.\nIn the Know:\nGreat Calusa Blueway\nDozens of launches throughout Lee County\nAdministration office: 6490 South Pointe Blvd., Ft. Myers, FL 33919\nWebsite: www. calusablueway.com\nE-mail: paddletrail@ leegov.com\n190 miles of GPS-marked trails\nAdmission fee charged on some launches, others are free.\nThe Great Calusa Blueway is such a refreshing and novel concept that it well deserves the accolades bestowed upon it by the Southern Tourism Society. While motoring across the back bays and estuaries of Lee County might get you there faster, the slow, steady pace of a sea kayak or canoe allows you to slow down and see the watery world of the Calusa Indians much as they did 1,000 years ago in their dugout canoes. Watching the mullet jump, the blue crabs scurry along beneath you, and the frigate birds hover above makes it all worthwhile.\nAuthor's note: The Great Calusa Blueway Paddling Festival is planned for November 1-4, 2012. For more information about participating in this exciting event, please go to www.Calusabluewaypaddlingfestival.com.\nThis is an excerpt from The Living Gulf Coast-A Nature Guide to Southwest Florida by Charles Sobczak. The book is available at all the Island bookstores, Baileys, Jerry's and your favorite online sites."} -{"text": "How is it that summer is already half over? If you haven’t had a moment to catch fireflies yet, chances are you soon will. To wish you the happiest of summers, we’ve compiled our favorite Healthy Child non-toxic warm weather fun tips to help you plan your family activities!\n1. Repel bugs without DEET. The pesticides used in insect repellant can be harmful for both adults and children! Another option is picaridin, a chemical based on pepper.\n2. Grow a pesticide-free lawn. Extensive use of pesticides has led to resistance in many insects and weed species. As a result, many resort to even stronger chemical pesticides, which may have greater consequences for human and environmental health. Opting for a pesticide-free lawn will have your children and pets playing happily (and safely!) in the grass all summer.\n3. Avoid GMOs when out celebrating with friends and family! Going out for a nice summer meal at your favorite restaurant? Consider making your restaurant food choices with GMOs in mind by avoiding high-risk ingredients like corn and soy.\n4. Be careful about chlorine in pools. High levels of chlorine in pools has been linked to asthma in small children. Children under the age of 7 who swam frequently in indoor chlorine pools may be at an increased risk for developing asthma, according to a 2006 study.\n5. Wade in a safe kiddie pool. Many kiddie pools are made out of PVC – the plastic known as the “poison plastic” thanks to its remarkably toxic production and disposal processes. PVC also contaminates both children and the environment with the endocrine-disrupting phthalates.\n6. Learn your Sunscreening Safety facts! Need a new tube of sunscreen? When shopping for sunscreen for you and your children, choose those formulated with zinc and titanium. These two non-toxic minerals provide even safer and more effective sunscreening.\n7. Bare feet = pedicures. Is your nail polish toxic? Many nail polishes contain chemicals known as the toxic trio: dibutyl phthalate, toluene, and formaldehyde. Choose safer nail polish – or dare to go bare!\n8. Grow veggies (safely). When you’re planing your summer garden, be cautious about fertilizers. Some sold as “natural” or “organic” are made from so-called biosolids, otherwise known as sewage sludge. Yuck!\nBonus! These last 8 trusted and tried Non-toxic Summer Fun Tips from real moms on Healthy Child‘s Blogger Network:\n10. Rachel of ClubMomMe.com says to pick up some non-toxic beach toys. ”Plastic can leach chemicals when it gets hot in the sun, and this will ensure your child is not exposed to any chemicals.”\n11. Susan of LilBitOfMamaTime.com offers the following bug bite and bee sting remedy: “Mix a tbsp. of baking soda with a tbsp. of white vinegar till it forms a paste and put on bug bites and bee stings to help remove the itch. My three-year-old daughter has fun ‘painting’ her boo boo with the white paste.”\n12. Happy Tot Mom says, “Make wearing a hat a standard part of outside play!” She used a large brimmed sun hat when her son was a baby and transitioned to another when he outgrew his infant hat; both hats were UPF 50+. “Hats go on before we head outside every day!”\n13. Hillary of Accidentally Green has a post up about her top 3 non-toxic tips for summer fun. Tip #1? Remember to slather on the non-toxic sunscreen before taking the kids outside!\n14. Amber of Easy Green Mama suggests having fun with non-toxic homemade bubbles. “My boys are entertained for hours when playing outside with bubbles. It’s a super simple recipe to mix and in no time you are having bubble fun in the summer sun!”\nEASY NON-TOXIC HOMEMADE BUBBLES\n- 1/4 cup any natural dish wash soap\n- 3/4 cup warm water\n- 5 drops of glycerin\n15. Lori of Groovy Green Livin‘ has five tips for greening a BBQ on her site, including some tips on finding eco-friendly and reusable tableware for large family gatherings!\n16. Suzan of Happy Mom Blogger suggests making your own healthy popsicles. “Use BPA-free popsicle molds or make your own mold. Just use small drinking glasses. Fill it with your kid’s favorite juice or make your own. When half frozen, stick in a wooden popsicle stick or use a spoon.”\nVeggie Popsicles Kids Will Love"} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/serving/hot_load/scripts/scan_hotload_deployment_health.py. Lines: 1056.\n\n#!/usr/bin/env python3\n\"\"\"\nFind Kubernetes deployments using legacy hotload wiring across all contexts.\n\npython py/fireworks/serving/hot_load/scripts/scan_hotload_deployment_health.py\n\npython py/fireworks/serving/hot_load/scripts/scan_hotload_deployment_health.py --only-summary\n\"\"\"\n\nfrom __future__ import annotations\n\nimport argparse\nimport json\nimport re\nimport subprocess\nimport sys\nimport time\nfrom concurrent.futures import ThreadPoolExecutor, as_completed\nfrom dataclasses import dataclass\nfrom pathlib import Path\nfrom typing import Any\n\nfrom tqdm import tqdm\n\nHOTLOAD_BASE_MODEL_WATCH_DIR_FLAG = \"--hot-load-base-model-watch-dir\"\nHOTLOAD_P2P_COLLECTIVE_FLAG = \"--hot-load-p2p-collective\"\nSERVING_CONTAINER_NAME = \"serving\"\nGPU_RESOURCE_NAME = \"nvidia.com/gpu\"\nCONTEXT_SCAN_PARALLELISM = 4\n\nACCOUNT_ID_LABEL = \"fireworks.ai/deploymentAccountId\"\nDEPLOYMENT_ID_LABEL = \"fireworks.ai/deploymentId\"\n\nFIRECTL_LOOKUP_PARALLELISM = 16\n\nFIRECTL_STATUS_MISSING = \"MISSING\" # firectl returned NotFound\nFIRECTL_STATUS_NO_LABELS = \"NO_LABELS\" # k8s deployment lacks fireworks.ai labels\nFIRECTL_STATUS_LOOKUP_ERROR = \"LOOKUP_ERROR\" # firectl call failed in an unrecognised way\n\n\n@dataclass(frozen=True)\nclass DeploymentRow:\n cluster: str\n hotload_type: str\n account_id: str\n deployment_id: str\n current_replicas: int\n desired_replicas: int\n gpus: float\n create_date: str\n image_version: str\n deployment_shape_version: str\n latest_shape: bool\n official_shape: bool\n\n firectl_status: str\n created_by: str\n firectl_profile: str\n\n\n@dataclass(frozen=True)\nclass FirectlLookupResult:\n status: str\n created_by: str\n profile: str\n deployment_shape: str\n enable_hot_load: bool\n\n\n@dataclass(frozen=True)\nclass ShapeLookupResult:\n latest_version: str\n latest_shape_enables_hot_load: bool\n\n\n@dataclass(frozen=True)\nclass OfficialShapeInfo:\n resource_name: str\n enables_hot_load: bool\n\n\n@dataclass(frozen=True)\nclass SkippedContext:\n cluster: str\n reason: str\n\n\n@dataclass(frozen=True)\nclass ContextScanResult:\n cluster: str\n scanned_deployments: int\n rows: list[DeploymentRow]\n skipped: SkippedContext | None\n\n\ndef run_command(args: list[str], timeout_seconds: int) -> subprocess.CompletedProcess[str] | None:\n try:\n return subprocess.run(\n args=args,\n check=False,\n stdout=subprocess.PIPE,\n stderr=subprocess.PIPE,\n text=True,\n timeout=timeout_seconds,\n )\n except subprocess.TimeoutExpired:\n return None\n\n\ndef log(message: str) -> None:\n print(message, file=sys.stderr, flush=True)\n\n\ndef kubectl_contexts(timeout_seconds: int) -> list[str]:\n result = run_command(\n args=[\"kubectl\", \"config\", \"get-contexts\", \"-o\", \"name\"],\n timeout_seconds=timeout_seconds,\n )\n if result is None:\n raise RuntimeError(f\"kubectl context listing timed out after {timeout_seconds}s\")\n if result.returncode != 0:\n raise RuntimeError(result.stderr.strip() or result.stdout.strip())\n return [line.strip() for line in result.stdout.splitlines() if line.strip()]\n\n\ndef cluster_name_from_context(context: str) -> str:\n return context.split(\" \", maxsplit=1)[0]\n\n\ndef repo_root() -> Path:\n return Path(__file__).resolve().parents[5]\n\n\ndef parse_bool(value: Any) -> bool:\n if isinstance(value, bool):\n return value\n if value is None:\n return False\n return str(value).strip().lower() in {\"1\", \"t\", \"true\", \"y\", \"yes\"}\n\n\ndef official_shape_infos() -> dict[str, OfficialShapeInfo]:\n shape_infos: dict[str, OfficialShapeInfo] = {}\n accounts_dir = repo_root() / \"serving\" / \"deploy\" / \"accounts\"\n if not accounts_dir.is_dir():\n return shape_infos\n\n for path in accounts_dir.glob(\"*/*.yaml\"):\n account_id = path.parent.name\n shape_id = path.stem\n resource_name = f\"accounts/{account_id}/deploymentShapes/{shape_id}\"\n try:\n text = path.read_text()\n except OSError:\n text = \"\"\n shape_infos[resource_name] = OfficialShapeInfo(\n resource_name=resource_name,\n enables_hot_load=bool(re.search(r\"(?m)^\\s*enable_hot_load\\s*:\\s*true\\b\", text)),\n )\n return shape_infos\n\n\ndef kubectl_deployments_for_context(\n context: str,\n request_timeout_seconds: int,\n process_timeout_seconds: int,\n max_attempts: int,\n retry_delay_seconds: float,\n quiet: bool,\n) -> tuple[list[dict[str, Any]] | None, str | None]:\n last_error = \"\"\n for attempt in range(1, max_attempts + 1):\n result = run_command(\n args=[\n \"kubectl\",\n \"--context\",\n context,\n \"get\",\n \"deployments\",\n \"-A\",\n \"-"} -{"text": "About Carmichael's — A History Founded in Medicine\nCarmichael’s Cashway Pharmacy, Inc. began operations as a local retail pharmacy in Crowley, Louisiana in September 1969 and was incorporated in the State of Louisiana on December 10, 1993. In the early 1990s, Carmichael’s expanded its services regionally by offering infusion therapy and durable medical equipment.\nIn 1999, Carmichael’s opened a second location in Lafayette, and in 2004, acquired a third location in Lake Charles, all of which served to further establish its service presence in Louisiana. Presently, Carmichael’s can provide pharmacy, durable (home) medical equipment and nutritional products, supplies and services to all sixty-four parishes in Louisiana, as well as to certain locations in neighboring states.\nCarmichael’s is an independently operated pharmacy and medical equipment company, with a dedicated focus on meeting the needs of our customers and the medical community in our service area. Our mission is to be the highest quality provider of a full line of home medical equipment and retail, institutional, compounding and infusion therapy pharmacy products and services in our service area. We constantly strive to enhance our customer service and operations through the employment of training, performance evaluation and management techniques and the utilization of strategic planning initiatives. Accordingly, Carmichael’s employs competent and highly trained licensed pharmacists, technicians, nurses, respiratory therapists and other skilled professionals. We continue to be accredited by The Joint Commission, indicating our commitment to our mission, striving at all times to ensure that the patient’s well-being is our #1 priority. The sizes and geographic locations of our operations enable us to meet the unique pharmacy and medical equipment needs in our service area in a timely and efficient manner.\nCarmichael’s pharmacy and medical equipment operations are conducted in Lafayette, Crowley and Lake Charles, Louisiana, and currently are composed of four material service lines:\n- Retail Pharmacy Products and Services, consisting primarily of walk-in sales of prescription medications and complementary products, including uniforms, non-specialty pharmaceuticals, vitamins, supplements and nutritionals;\n- Institutional Pharmacy Services, consisting of the provision of specialty and non-specialty pharmaceuticals and biological products to institutional clients or to patients in institutional settings, such as nursing homes, behavioral facilities, assisted living facilities, developmental disabilities facilities, rehabilitation facilities, hospices and correctional facilities;\n- Specialty Pharmacy Services, comprised generally of drugs for the treatment of major conditions, including, among others, respiratory system weakness, cancer, human immunodeficiency virus (HIV), acquired immunodeficiency syndrome (AIDS), hemophilia, hepatitis C, multiple sclerosis, infertility, Crohn’s disease, rheumatoid arthritis and growth hormone deficiency; and,\n- Durable Medical Equipment Products and Services, consisting primarily of products for patient-administered home care, such as ambulatory equipment; hospital beds and supplies; diabetic products and supplies; bath aids; respiratory therapy equipment, supplies and services, including oxygen concentrators and portable cylinders, continuous and bilevel positive airway pressure equipment and nebulizers; diabetes management products; orthopedic products; ostomy; prosthetics; and supplements and nutritionals.\nSome of the benefits from choosing Carmichael’s as your provider of choice are our:\n- Extensive service lines provide the convenience of a one-stop-shop for all of your pharmacy and medical equipment needs – saving you both time and money;\n- Expansive hours of operation and easily accessible locations provide convenience to our customers, with 24-hours-a-day availability of professional personnel to answer questions and provide assistance to patients residing in short-term, intermediate, long-term and other institutional care facilities and certain other patients and their caregivers who choose Carmichael’s as their service provider;\n- Staff members work closely with healthcare providers, educating them on proper operating procedures and necessary safety guidelines;\n- Follow-up program, through continual correspondence and monitoring, ensures that the patient is using the medical equipment properly and obtaining optimal benefits from the prescribed treatment; and,\n- Special coalitions and similar working relationships with home health agencies and hospice organizations provide the platform necessary for concentration on the unique needs of their patients.\nIn the near future, Carmichael’s intends to enhance and expand its website capabilities to include online access to certain service lines, including diabetic and ostomy supplies and nutritional and certain medical equipment and pharmacy products and supplies, on a nationwide basis.\nThrough the years, some things may have changed, but one thing always remains the same… our commitment to provide our clients, customers and patients with the quality products and excellent services they have come to expect and depend on from the entire staff at Carmichael’s.\nYou can always depend on"} -{"text": "View Full Version : Kurond (the re-try!) [WIP]\n04-14-2011, 11:51 PM\nWell! I am restarting the work on Kurond! Here is the base Image I have to work with:\nUploaded with ImageShack.us (http://imageshack.us)\n04-14-2011, 11:59 PM\nUh oh, broken pic is broken!\n04-15-2011, 12:00 AM\nI fixed it!\n04-15-2011, 12:07 AM\nUnless your map is a frog in an ice cube, I don't think it's fixed...\n04-15-2011, 12:13 AM\nOh.. I'm sorry.. It appears fine on mine. But here you can use this http://img703.imageshack.us/img703/3263/rathengarcontinents.png\n04-20-2011, 01:37 AM\nAfter a couple days of working experimenting and finding Textures im proud to present a base of the Kurond map. I have currently only done the Human Kingdoms and roads as I have not figured out how to do the other races.\nPs: This map is for a member of my RolePlay clan.\nPs: Ps: Use this to help me find If I did anything wrong.\n\"The lower half, or human kingdoms is mildly foresty on the east side, and on west it's open plains. The terrain of Rathengar used to be a deadly corrupted land, only one spot of that corrupted land remains. On the West side of it is thinned out forests, being very thin near the ocean border slightly getting thicker as you move east, but then starts to thin out again as you reach the start of the words of the first picture i gave you. As for Rathengar, there is a huge circular mountain \"border\" surrounding the city (with enough room for three farm towns, and quite a bit of open plains, though Rathengar itself should still be quite big.) there is one \"secret\" river in to the northern side of the mountains, this land is corrupted and is the only remaining corrupted land, the river is surrounded by forests and cannot be seen, it leads to a lake east of Rathengar, (not very east, a mile or two) The entrance and exit of the river should be hidden from view. The entrance to the mountainous border is south east. There is only one. As for the very north of the continent that Rathengar is on, the terrain is VERY mountain-y, but only on the very ocean border. The very east side is a rejuvenated desert, has the terrain of a desert but no sand, and what I mean by that is that he has lots of those sand mounds (but instead of sand it's now dirt and grass.) As for the Goblin kingdoms, the whole place is deforested, there are several factories (weapons (no guns yet) and small machines mostly.) Also, the ocean to the west of the Human + Elven kingdoms is much larger than the ocean inbetween the goblin kingdoms, the kingdoms of chaos (now human owned) and the Human + Elven kingdoms. So Humans would not travel west to reach Rathengar. Also I have decided on names for each continent. The goblins are Grek't Lothor (It's Gret language for \"Land of the Superiorly Intelligent\" (Superiorly Intelligent is what Gret means in their language)). The Continent Rathengar is on is Called Khrim, I think I had decided that in my first post. Now the biggest one is going to be split into two names, Lati'Gromar (Ancient language for \"Nature Keepers\", that's the northern part) and the southern part is Lati'Grimar (Ancient language for \"Nature Killers\", as humans were often seen has careless with nature by the gods, before they disappeared.)\"\nPlease do not refrain from giving me C&C.\n04-20-2011, 06:17 PM\nI just got back home and should start working on it soon.\n04-20-2011, 08:00 PM\nI can't make out much without a larger size but from what I can see I'd say it looks just fine.\n04-20-2011, 08:11 PM\nI'm sorry, about the low size.\n04-20-2011, 09:17 PM\nIt looks fantastic to me! Awesome, actually. Higher res would be nice, though.\nHowever, it looks like the land is really, really small if those are cities. That big city in the western continent looks a few hours walk from its neighbors, for example. Is that true?\n04-20-2011, 09:26 PM\nI'm actually not sure if all facts be told. I believe the whole range of this map is around 2000 x 2000 miles. But, I have no actual confirmation of how big this is.\n04-20-2011, 10:19 PM\nAnd a higher resoultion link.\n04-21-2011, 12:00 PM\nNice work - you've done a great job in taking it forward from the first image you have. It's clear what everything it and reads nicely.\nYou can upload an image directly to the CG - and that will get around image size questions. Just hit the Advanced button when composing a post and click the paperclip icon. That will let you upload an image here. That's the best way to post images as it doesn't depend on an external site.\nIf you want to take this style further I'd suggest working on your mountains. They look very rounded at the moment, rather than sharp peaks. Now there are as many types of mountains are there are map makers, so have a hunt around in the tutorials section and you'll find a lot of mountain tutorials. Other than that, congratulations on a goodlooking map!\n04-22-2011, 12:17 AM\nI think it might be because of the snow I added.\n05-15-2011, 03:47 PM\nI used Ramah's brushes and his main idea's of Aronbor to make this :]\nIts not nearly done.. I've been doing this as a side project doodle type thing.\nA closer look at it xP\n05-17-2011, 05:33 PM\nYeah, its really pretty, but I would support the motion to upload a higher res picture.\nEDIT: Oops! Didn't realize there was a second page! Ignore that.\nPowered by vBulletin® Version 4.2.3 Copyright © 2016 vBulletin Solutions, Inc. All rights reserved."} -{"text": "o\",\n \"json\",\n f\"--request-timeout={request_timeout_seconds}s\",\n ],\n timeout_seconds=process_timeout_seconds,\n )\n if result is None:\n last_error = f\"kubectl process timed out after {process_timeout_seconds}s\"\n elif result.returncode != 0:\n last_error = compact_error(result.stderr or result.stdout)\n else:\n try:\n payload = json.loads(result.stdout)\n except json.JSONDecodeError as exc:\n last_error = f\"invalid kubectl JSON: {exc}\"\n else:\n items = payload.get(\"items\")\n if not isinstance(items, list):\n return None, \"kubectl JSON did not contain an items list\"\n return items, None\n\n if attempt < max_attempts:\n if not quiet:\n log(\n f\" attempt {attempt}/{max_attempts} failed for {context}: \"\n f\"{last_error}; retrying in {retry_delay_seconds:g}s\"\n )\n time.sleep(retry_delay_seconds)\n\n return None, last_error\n\n\ndef compact_error(text: str, max_len: int = 220) -> str:\n one_line = \" \".join(line.strip() for line in text.splitlines() if line.strip())\n if len(one_line) <= max_len:\n return one_line\n return one_line[: max_len - 3] + \"...\"\n\n\ndef pod_template_containers(deployment: dict[str, Any]) -> list[dict[str, Any]]:\n return deployment.get(\"spec\", {}).get(\"template\", {}).get(\"spec\", {}).get(\"containers\", [])\n\n\ndef serving_container(deployment: dict[str, Any]) -> dict[str, Any] | None:\n for container in pod_template_containers(deployment):\n if container.get(\"name\") == SERVING_CONTAINER_NAME:\n return container\n return None\n\n\ndef container_tokens(container: dict[str, Any]) -> list[str]:\n tokens: list[str] = []\n for field_name in (\"command\", \"args\"):\n values = container.get(field_name, [])\n if isinstance(values, list):\n tokens.extend(str(value) for value in values)\n elif values:\n tokens.append(str(values))\n return tokens\n\n\ndef has_flag(tokens: list[str], flag: str) -> bool:\n return any(token == flag or token.startswith(f\"{flag}=\") for token in tokens)\n\n\ndef parse_int(value: Any, default: int = 0) -> int:\n if value is None:\n return default\n try:\n return int(value)\n except (TypeError, ValueError):\n return default\n\n\ndef parse_gpu_quantity(value: Any) -> float:\n if value is None:\n return 0.0\n if isinstance(value, (int, float)):\n return float(value)\n\n text = str(value).strip()\n if not text:\n return 0.0\n\n # Kubernetes extended resources are normally integers, but this accepts\n # standard milli quantities in case a context reports normalized resources.\n if text.endswith(\"m\"):\n try:\n return float(text[:-1]) / 1000\n except ValueError:\n return 0.0\n\n try:\n return float(text)\n except ValueError:\n return 0.0\n\n\ndef serving_container_gpu_request(container: dict[str, Any]) -> float:\n requests = container.get(\"resources\", {}).get(\"requests\", {})\n return parse_gpu_quantity(requests.get(GPU_RESOURCE_NAME))\n\n\ndef image_version(image: str) -> str:\n if not image:\n return \"\"\n\n image_without_digest, separator, digest = image.partition(\"@\")\n last_segment = image_without_digest.rsplit(\"/\", maxsplit=1)[-1]\n if \":\" in last_segment:\n return last_segment.rsplit(\":\", maxsplit=1)[-1]\n if separator:\n return digest[:19] if digest else \"\"\n return image\n\n\ndef deployment_row(context: str, deployment: dict[str, Any]) -> DeploymentRow | None:\n container = serving_container(deployment)\n if container is None:\n return None\n\n tokens = container_tokens(container)\n if not has_flag(tokens=tokens, flag=HOTLOAD_BASE_MODEL_WATCH_DIR_FLAG):\n return None\n\n # K8s args are authoritative. firectl Extra Values like\n # enableHotloadP2PCollective=true is operator intent only - the chart that\n # rendered this deployment may have ignored it, so the actual serving args\n # are the ground truth.\n hotload_type = \"collective\" if has_flag(tokens=tokens, flag=HOTLOAD_P2P_COLLECTIVE_FLAG) else \"legacy\"\n\n metadata = deployment.get(\"metadata\", {})\n labels = metadata.get(\"labels\", {}) or {}\n current_replicas = parse_int(deployment.get(\"status\", {}).get(\"replicas\"))\n desired_replicas = parse_int(deployment.get(\"spec\", {}).get(\"replicas\"), default=1)\n gpus_per_replica = serving_container_gpu_request(container)\n\n return DeploymentRow(\n cluster=context,\n hotload_type=hotload_type,\n account_id=str(labels.get(ACCOUNT_ID_LABEL, \"\")).strip(),\n deployment_id=str(labels.get(DEPLOYMENT_ID_LABEL, \"\")).strip(),\n current_replicas=current_replicas,\n desired_replicas=desired_replicas,\n gpus=gpus_per_replica * current_"} -{"text": "Seviced and Self Catering Central\nLondon apartments deals and offers\nCentral London serviced and self catering apartments as\nwell as studio apartments in London city are very convenient for long\nterm stay and short term stay during your holidays. Now that you on your\nway to London, have you decided where to stay? Consider renting one of\nthe many London apartments. London self catering apartments are more economical\nand spacious than the average central London hotel. These large and roomy\ncentral London apartments offer better privacy then hotels, great locations\nand reasonable rates for long term stay in particular and to some extend\nshort term stay.\nThe central London apartments can be tailored to you and\nyour household's needs. If the whole is family coming then why not choose\nto book a one bedroom or two bed rooms London city apartment to accommodate\nthe whole family. You may decide to stay in Kensington apartments and\nin the area we have the Harrington Court apartments located only a minute’s\nwalk away from the South Kensington tube station or the Dylan Kensington\nStudio apartments located on Warwick Road and very close to Earls Court\nstation. In the same area, there is also the Dylan Apartments Earl’s\nCourt at the Philbeach Gardens. The Apart hotel 73 on the Inverness Terrace\nBayswater W2 offer studio apartments offer very competitive rates in London.\nThe Dolphin House Apartments located between Pimlico and Victoria are\nperfect to you stay in central London.\nIn case you are coming to London to rest or for business?\nWonderful! Elegant London serviced apartments are waiting for you. Been\nto London several times? Do you fancy mingling with the locals? Perhaps\nLondon self catering apartments are better suited to your needs this holiday.\nLondon serviced apartments and self catering apartments as well as studio\napartments are available for your trips. Why not take a look at the Vancouver\napartments hotel in Bayswater area which has apartments ranging from studio\nto 3 bedroom apartments and can accommodate from 1 to 6 persons. For those\nof you on a fixed budget, not to worry we have sizable studio apartments\ncovering central London. Here are a few more particulars regarding our\ncentral London apartments.\nLondon serviced and self catering apartments offer luxury\nand convenience, without the cramped and impersonal feel of yet another\nhigh priced hotel. London serviced apartments offers hotel amenities and\nare available if you choose to partake. A serviced apartment can ease\nthe stress of a business trip, by being a real home you can unwind in.\nThe beautifully furnished living room provides ample work space and a\nstylish alternative to business meetings. Located in the heart of London,\nyour serviced apartment is a heartbeat away from tourist and local hot\nspots. Have adventure or cook a gourmet meal, everything is up to you.\nTake a look at London City apartments like Chancery Lane Residence and\nthe Langham Apartments 28-30 Rivington Street London EC2A 3DZ close to\nShoreditch and if you are after luxury serviced and self catering apartments\nclose to the West End, the Grand Plaza apartments will offer you the luxury\nLondon Studio apartments and London self\ncatering and serviced apartments\nLondon self catering apartments are ideal\nfor the more independent and budget minded travellers. Accommodations\nlike these give you the taste of being a local Londoner; you can blend\ninto the neighbourhood, shop at the corner market, and have room to entertain\nas you might do at home. London self catering apartments are found in\nsome of the most charming areas of central London; near theatres, the\nunderground and impressive cultural sites.\nStudio apartments can be either self catering or serviced.\nDesigned for a solo sightseer or couples on holiday, London studio apartments\nmake the perfect base to go exploring the best of London in the course\nof the day, then retiring to your private spacious residence. Enjoy London\nto the fullest this trip, whether it’s a couple nights or months.\nFabulous London apartments can be booked today. The central London serviced\nand self catering apartments are for both short term stay and long term\nstay. check out London discount apartmentsoptions"} -{"text": "- About Us\n- Local Savings\n- Green Editions\n- Legal Notices\n- Weekly Ads\nConnect with Us\nKitsap writers select top girls basketball stars\nThe 2011 All-Kitsap County Girls Basketball Team was compiled by the sports writers for the Bremerton Patriot, the Central Kitsap Reporter, the North Kitsap Herald, Bainbridge Island Review and the Port Orchard Independent.\nCandidates for the team are nominated by the writers for their respective areas. The nominees are then voted on by the writers; the top players make the teams. Two honorable mentions are also selected from each school for each sport.\nThe teams include the best players from area schools that not only performed well individually, but played a role in the success of their team.\nGirls Coach of the Year — Olympic High School’s Laurie Shaw led the Lady Trojans to a 16-11 record this season en route to their first state tournament appearance in 16 years. After going 4-6 in December, Shaw helped reverse her team’s fortunes when the Lady Trojans won nine of 11 games to wrap up the regular season with a No. 3 seed in the league standings. The streak secured an automatic berth to the district tournament, Olympic’s first in more than a decade.\nGuard — Jackie Steiger, junior, South Kitsap: After missing a significant portion of the 2009-10 season because of a foot injury, Steiger settled in as the Wolves’ starting shooting guard this season. One of the top shooter on the Kitsap Peninsula, Steiger converted 59.7 percent of her 3-pointers in South’s first 20 games. She also averaged 12.7 points and 1.18 steals per contest.\nGuard — Amanda Carper, sophomore, Kingston: In a season that began without top scorer Sophia Baetz on the court, Carper filled the shoes of lead scorer almost immediately. With 10.8 points per game, 8 blocks per game and 2.6 steals per game, Carper helped bring Kingston to a winner-to-state game against Olympic High School, where the team fell just short of another state tournament.\nGuard — Kelsey Callaghan, senior, South Kitsap: A three-year starter, Callaghan helped direct the Wolves to state-playoff appearances in two of the last three seasons. Prior to her arrival, South had not advanced to the Class 4A state tournament since 2000. Coach Mark Lutzenhiser trusted Callaghan, who averaged 5.3 assists per game in the team’s first 20 contests, to run the offense and make adjustments based on what she saw from opposing defenses.\nForward/Center — Shannon Jackson, senior, Olympic: Shannon Jackson spent the last four years in Japan before returning home to play for the Lady Trojans this season, averaging 12.4 points and 12.5 rebounds per game. Jackson’s double-double average helped lead Olympic to its first state tournament appearance in 16 years. Jackson earned Olympic League honors with a selection on the first team. Her post presence was crucial for head coach Laurie Shaw, who needed a power forward in the paint to propel the team’s chances. “It was a great season that started slow, but we gradually came together and make it to where we should have been,” Jackson said last week. Jackson is currently considering Pierce College (Tacoma), Highline (Des Moines) and Skagit Valley (Clinton) community colleges. Shaw said they will also send game films to Seattle University.\nForward/Center — Taylor Sunkel, junior, South Kitsap: After missing nearly the entire 2009-10 season following shoulder surgery, Sunkel emerged as one of the Wolves’ top low-post threats. Through 20 games, she averaged 12.1 points and 6.2 rebounds per game to help South to the second round of the Class 4A state tournament.\nG/F — Alex Rose-Albert, senior, Kingston: With solid statistics this season, Rose-Albert was another Kingston player that helped bring the team to the verge of another state tournament. Rose-Albert ended her final season with Kingston with 8.8 points per game, 11 blocks and 1.4 steals per game.\nF — Jordan Dixon, senior, Klahowya: Despite a sluggish season with a 2-14 Olympic League record, Dixon still managed to run the Eagles’ offense with 13.5 points and 5.5 assists per game. Dixon was also a menace on defense though the 20-game stretch, snagging 6.5 steals per game. Klahowya head coach Don Farrell turned the program from winless to playoff contenders in the last four years with the help of Dixon.\nF — Lexi Simmons, junior, North Kitsap: As a co-captain on a team with no seniors, Simmons led the team in almost every aspect of the game. She averaged 10.4 points per game, 6.6 rebounds per game, 2.2 steals per game with 1.8 assists per game.\nF — Grace Kenyon, sophomore, Bainbridge: Kenyon stepped up when standout guard Davi Gonzales was lost for the season to a broken leg. She averaged a double-double for the season with 11 points and 11 rebounds per game. Kenyon also averaged two steals and 1.5 assists per game.\nG — Lindsey Wicklein, junior, Kingston: Wicklein was a dual force for Kingston this season, averaging 7.7 points, eight blocks and 2.7 steals per game this season.\nG — Krista Stabler, junior, Central Kitsap: Krista Stabler helped the Cougars stay afloat in the Narrows League standings as a dual threat on the court. The junior guard averaged 14.3 points, 6.1 rebounds, 5.4 assists and 3.1 steals in a 20-game stretch.\nG — Hannah Depew, junior, Bainbridge: Depew was solid at the guard position for Bainbridge as she helped the team earn a second straight Mountain Division title. She scored eight points per game and also dished out four assists and three steals per game as well.\nOlympic High School honorable mention: Jayln Halstead, junior; Klahowya: Jonica Durbin, senior; Central Kitsap: Brittany Zawadzki, senior. Bainbridge Island honorable mentions: Davi Gonzales, senior; Morgan Moniz, senior. Kingston High School: Maggie Snaza, sophomore; Samantha Salas, freshman; Sophia Baetz, senior. North Kitsap: Alicia Whitbeck, freshman. South Kitsap: Ali Davis, junior; Dana Goularte, senior; Angela Romonsky, senior."} -{"text": "replicas,\n create_date=metadata.get(\"creationTimestamp\", \"\"),\n image_version=image_version(str(container.get(\"image\", \"\"))),\n deployment_shape_version=\"\",\n latest_shape=False,\n official_shape=False,\n firectl_status=\"\",\n created_by=\"\",\n firectl_profile=\"\",\n )\n\n\ndef parse_firectl_text_output(text: str) -> dict[str, str]:\n \"\"\"Top-level ``Key: Value`` fields only; skip lines indented under nested blocks.\"\"\"\n fields: dict[str, str] = {}\n for line in text.splitlines():\n if not line or line.startswith(\" \") or line.startswith(\"\\t\"):\n continue\n key, separator, value = line.partition(\":\")\n if not separator:\n continue\n fields[key.strip()] = value.strip()\n return fields\n\n\ndef parse_json_object_output(text: str) -> dict[str, Any] | None:\n start = text.find(\"{\")\n end = text.rfind(\"}\")\n if start == -1 or end == -1 or end < start:\n return None\n\n try:\n payload = json.loads(text[start : end + 1])\n except json.JSONDecodeError:\n return None\n if not isinstance(payload, dict):\n return None\n return payload\n\n\ndef deployment_shape_base(deployment_shape: str) -> str:\n marker = \"/versions/\"\n if marker not in deployment_shape:\n return \"\"\n return deployment_shape.split(marker, maxsplit=1)[0]\n\n\ndef deployment_shape_account(deployment_shape_base_name: str) -> str:\n parts = deployment_shape_base_name.split(\"/\")\n if len(parts) >= 4 and parts[0] == \"accounts\" and parts[2] == \"deploymentShapes\":\n return parts[1]\n return \"\"\n\n\ndef firectl_deployment_lookup_for_profile(\n account_id: str,\n deployment_id: str,\n firectl_binary: str,\n timeout_seconds: int,\n profile: str,\n) -> FirectlLookupResult:\n args = [firectl_binary]\n if profile:\n args.extend([\"-p\", profile])\n args.extend([\"-o\", \"json\", \"-a\", account_id, \"deployment\", \"get\", deployment_id])\n\n result = run_command(args=args, timeout_seconds=timeout_seconds)\n if result is None:\n return FirectlLookupResult(\n status=FIRECTL_STATUS_LOOKUP_ERROR,\n created_by=\"\",\n profile=profile,\n deployment_shape=\"\",\n enable_hot_load=False,\n )\n\n stdout = result.stdout or \"\"\n stderr = result.stderr or \"\"\n\n # firectl-admin can exit non-zero on multi-region / DELETING deployments\n # while still streaming valid fields first; trust stdout when it has a deployment.\n json_fields = parse_json_object_output(stdout)\n if json_fields is not None and json_fields.get(\"name\"):\n return FirectlLookupResult(\n status=str(json_fields.get(\"state\", \"\")).strip() or FIRECTL_STATUS_LOOKUP_ERROR,\n created_by=str(json_fields.get(\"created_by\", \"\")).strip(),\n profile=profile,\n deployment_shape=str(json_fields.get(\"deployment_shape\", \"\")).strip(),\n enable_hot_load=parse_bool(json_fields.get(\"enable_hot_load\")),\n )\n\n fields = parse_firectl_text_output(stdout)\n if fields.get(\"Name\"):\n return FirectlLookupResult(\n status=fields.get(\"State\", \"\").strip() or FIRECTL_STATUS_LOOKUP_ERROR,\n created_by=fields.get(\"Created By\", \"\").strip(),\n profile=profile,\n deployment_shape=fields.get(\"Deployment Shape\", \"\").strip(),\n enable_hot_load=parse_bool(fields.get(\"Enable Hot Load\")),\n )\n\n combined = stderr + stdout\n if \"NotFound\" in combined or \"not found\" in combined.lower():\n return FirectlLookupResult(\n status=FIRECTL_STATUS_MISSING,\n created_by=\"\",\n profile=profile,\n deployment_shape=\"\",\n enable_hot_load=False,\n )\n\n return FirectlLookupResult(\n status=FIRECTL_STATUS_LOOKUP_ERROR,\n created_by=\"\",\n profile=profile,\n deployment_shape=\"\",\n enable_hot_load=False,\n )\n\n\ndef firectl_deployment_lookup(\n account_id: str,\n deployment_id: str,\n firectl_binary: str,\n timeout_seconds: int,\n profiles: list[str],\n) -> FirectlLookupResult:\n if not account_id or not deployment_id:\n return FirectlLookupResult(\n status=FIRECTL_STATUS_NO_LABELS,\n created_by=\"\",\n profile=\"\",\n deployment_shape=\"\",\n enable_hot_load=False,\n )\n\n candidate_profiles = profiles or [\"\"]\n last_result: FirectlLookupResult | None = None\n for profile in candidate_profiles:\n result = firectl_deployment_lookup_for_profile(\n account_id=account_id,\n deployment_id=deployment_id,\n firectl_binary=firectl_binary,\n timeout_seconds=timeout_seconds,\n profile=profile,\n )\n last_result = result\n if result.status != FIRECTL_STATUS_MISSING:\n return result\n assert last_result is not None\n return last_result\n\n\ndef firectl_shape_lookup(\n deployment_shape_ba"} -{"text": "I support the proposed rulemaking to establish position limits for physical commodity derivatives. The CFTC does not set or regulate prices. Rather, the Commission is directed to ensure that commodity markets are fair and orderly to protect the American public.\nWhen the CFTC set position limits in the past, the agency sought to ensure that the markets were made up of a broad group of market participants with a diversity of views. At the core of our obligations is promoting market integrity, which the agency has historically interpreted to include ensuring markets do not become too concentrated.\nPosition limits help to protect the markets both in times of clear skies and when there is a storm on the horizon. In 1981, the Commission said that “the capacity of any contract market to absorb the establishment and liquidation of large speculative positions in an orderly manner is related to the relative size of such positions, i.e., the capacity of the market is not unlimited.”\nToday’s proposal would implement important new authorities in the Dodd-Frank Act to prevent excessive speculation and manipulation in the derivatives markets. The Dodd-Frank Act expanded the scope of the Commission’s mandate to set position limits to include certain swaps. The proposal re-establishes position limits in agriculture, energy and metals markets. It includes one position limits regime for the spot month and another regime for single-month and all-months combined limits. It would implement spot-month limits, which are currently set in agriculture, energy and metals markets, sooner than the single-month or all-months-combined limits. Single-month and all-months-combined limits, which currently are only set for certain agricultural contracts, would be re-established in the energy and metals markets and be extended to certain swaps. These limits will be set using the formula proposed today based upon data on the total size of the swaps and futures market collected through the position reporting rule the Commission hopes to finalize early next year. It is only with the passage and implementation of the Dodd-Frank Act that the Commission will have broad authority to collect data in the swaps market.\nIt will be some time before position limits for single-month and all-months-combined can be fully implemented. In the interim, if a trader has a position that is above a level of 10 and 2 ½ percent of futures and options on futures open interest in the 28 contracts for which the Commission is proposing position limits, I have directed staff to collect information, including using special call authority when appropriate, to monitor these large positions. Staff will brief the Commission and make any appropriate recommendations based upon existing authorities for the Commission’s consideration during its closed surveillance meetings at least monthly on what staff finds.\nCollecting this data relating to large traders with positions in the futures markets above such levels or points of 10 and 2 ½ percent would give the Commission a better look into the market and help us identify potential concerns. For example, if a trader does not have a bona fide hedge exemption, we can look into the details of its position and its intentions. It may also give us additional information as to how the position limits in the proposed rulemaking would affect traders in these markets.\nThese levels, or points, are the positions at which CFTC staff will brief the Commission under its existing authorities. They would not be a substitute for current position limits or accountability levels, and they should not be interpreted to be a level that will automatically trigger any additional regulatory action.\nSwap Trading Relationship Documentation Requirements for Swap Dealers and Major Swap Participants\nI support the proposed rulemaking that establishes swap trading relationship documentation requirements for swap dealers and major swap participants. The proposed regulations are consistent with the express mandate of the Dodd-Frank Act to prescribe standards for the timely and accurate confirmation, processing, netting, documentation and valuation of swap transactions. One of the primary goals of the Dodd-Frank Act was to establish a comprehensive regulatory framework that would reduce risk, increase transparency and promote market integrity within the financial system. The proposed regulations accomplish this objective by establishing procedures that will promote legal certainty regarding terms of swap transactions, early resolutions of valuation disputes, enhanced understanding of one counterparty’s risk exposure to another, reduced operational risk and increased operational efficiency. One of the key chapters from the 2008 financial crisis was when large financial players, including AIG, had valuation disputes and other problems regarding documentation standards. These rules will directly address many of these issues, highlighting issues for senior management and regulators earlier and lowering risk to the public.\nLast Updated: February 17, 2011"} -{"text": "The 1990 amendments to the U.S. Clean Air Act forced process plants and other industrial facilities throughout the country to examine every aspect of their process heating operations to reduce cumulative emissions of nitrous oxides (NOx). In San Francisco, the 1994 Regulation 9, Rule 10 of the Bay Area Air Quality Management District imposed the most stringent NOx emissions at the time anywhere in the world.\nIn 1998, the U.S. Environmental Protection Agency (EPA) refined the Act's amendments into the National Emission Standards for Hazardous Air Pollutants from Petroleum Refinery Vents (referred to as Refinery MACT II), which cover emissions from catalytic cracker, catalytic reformer and sulfur plants. These rules were promulgated in late 2000 and have now impacted the majority of refineries. Some areas of the country have until 2008 to fully meet emissions targets, but EPA has already teamed up with the Department of Justice to force multimillion-dollar emission-reduction deals with major oil producers.\nIn California, the Los Angeles and San Francisco air districts have imposed limits of about 0.030 lb/Mm Btu average NOx emissions (as a group average) for all current heaters in an existing refinery. New heaters typically are required to include secondary catalytic reduction (SCR), using ammonia and a catalyst to react with the nitrous oxides, to reduce NOx emissions to the 5- to 10-ppm range. The San Joaquin Valley Air Pollution Control District, which oversees a \"severe non-attainment area\" for smog emissions, recently approved regulations forcing boilers and combustion gas turbines to limit NOx emissions to below 9 to 15 ppm, depending upon size and service, over the next several years. The impact of these deadlines is severe. Basically, a plant must comply or shut down the high NOx-producing furnaces and boilers.\nThe regulations can be most difficult to meet during startup, shutdown or upset conditions. Yet, short NOx emission excursions can lead to expensive fines and create community ill will.\nTypical Vertical Cylindrical Process Heater\n- Conventional units produce 75 to 120 ppm NOx, while ultra-low-NOx designs now can cut emissions to as low as 13 ppm.\n- These regulations have spurred the replacement of aging furnace burners with newer low-NOx designs. However, experience has shown that sensitive online oxygen monitoring and draft controls are equally critical for reducing NOx emissions in process heaters.\nThermal NOx results from the fixation of molecular nitrogen and oxygen present in the combustion air. NOx emissions increase rapidly at peak flame temperatures exceeding 1,540 Degrees C (2,800 Degrees F) and with the time reactants remain within the area of peak flame. The more oxygen present in the eye of the flame, the more NOx made. The industry norm is to burn with residual 3% oxygen going out the stack. Above that oxygen level, NOx emissions rise. In addition, the burn becomes less efficient because excessive amounts of air are being heated. Reducing oxygen levels below 3% is desirable but difficult to achieve, especially in older furnaces prone to air leaks through the furnace walls and before the oxygen sensing equipment.\nAn often-overlooked variable is the heating value of the fuel. High Btu-value fuel gas rich in propane and butanes can increase NOx production by 25% to 40%, depending upon composition.\nVertical Process Heater with SCR Retrofit\n- Thanks to ammonia injection followed by secondary catalytic reduction, flue-gas exits with only 5 to 10 ppm NOx.\nThe most common methods to lower NOx emissions are use of low-NOx burners (LNB) alone or in combination with flue gas recirculation (FGR) through the burner. According to EPA technical document No. 453/R-93-034, which identifies alternative controls for NOx emitters, FGR combined with LNBs can lead to total NOx reduction of 55% compared to uncontrolled emissions. State-of-the-art burners can now cut this much further, to as much as 80% to 85%, and, in some cases, possibly more.\nFGR recycles 15% to 30% of the inert products of combustion back to the primary combustion zone. This dilutes the reactants and boosts the mass flow through the burners and flames. At a fixed heat release from the fuel gas, the higher mass flow of gases leads to a lower peak flame temperature, which, in turn, reduces local oxygen concentrations to levels below 3% and inhibits thermal NOx formation.\nManipulation of several variables can cut NOx emissions:\n- reducing the oxygen concentration in the flame zones;\n- stretching the flame out, to reduce the peak flame temperature and force the flame to burn in zones with reduced oxygen concentration; and\n- increasing the flue-gas mass flow so that a given flame must heat up more flue gas, thus decreasing peak flame temperature.\nA great amount of proprietary effort has gone into burner designs to \"stage\" the fuel release ports that spread the flames out, to induce FGR by the action of the fuel-gas jets, and to spray the fuel into areas lean in oxygen. Self-induced FGR is preferable and much less costly than external systems.\nExternal systems typically involve the use of a motor- or turbine-driven fan, ductwork, dampers, etc. Optimal operation requires accurate oxygen analyzers, well-placed sample points and precise damper controls for both negative draft fireboxes of simple process heaters and positive fireboxes such as boilers. So, for every retrofit, always consider installing an analyzer and precision damper drives, linkages, damper blades, bearings, etc., to effect smooth control of the draft without any sloppy play (hysteresis). Even with SCR techniques, controlling the firebox environment is essential."} -{"text": "se_name: str,\n firectl_binary: str,\n timeout_seconds: int,\n profile: str,\n) -> ShapeLookupResult:\n account_id = deployment_shape_account(deployment_shape_base_name)\n if not account_id:\n return ShapeLookupResult(latest_version=\"\", latest_shape_enables_hot_load=False)\n\n args = [firectl_binary]\n if profile:\n args.extend([\"-p\", profile])\n args.extend(\n [\n \"-o\",\n \"json\",\n \"deployment-shape-version\",\n \"get\",\n \"-a\",\n account_id,\n f\"{deployment_shape_base_name}/versions/latest\",\n ]\n )\n\n result = run_command(args=args, timeout_seconds=timeout_seconds)\n if result is None:\n return ShapeLookupResult(latest_version=\"\", latest_shape_enables_hot_load=False)\n\n payload = parse_json_object_output(result.stdout or \"\")\n if payload is None:\n return ShapeLookupResult(latest_version=\"\", latest_shape_enables_hot_load=False)\n\n snapshot = payload.get(\"snapshot\") or {}\n enables_hot_load = False\n if isinstance(snapshot, dict):\n enables_hot_load = parse_bool(snapshot.get(\"enable_hot_load\"))\n return ShapeLookupResult(\n latest_version=str(payload.get(\"name\", \"\")).strip(),\n latest_shape_enables_hot_load=enables_hot_load,\n )\n\n\ndef enrich_with_shape_latest(\n rows: list[DeploymentRow],\n firectl_binary: str,\n timeout_seconds: int,\n parallelism: int,\n verbose: bool,\n official_shapes: dict[str, OfficialShapeInfo],\n quiet: bool,\n) -> list[DeploymentRow]:\n unique_shape_keys = sorted(\n {\n (row.firectl_profile, deployment_shape_base(row.deployment_shape_version))\n for row in rows\n if deployment_shape_base(row.deployment_shape_version)\n }\n )\n if not unique_shape_keys:\n return rows\n\n if not quiet:\n log(f\"Looking up {len(unique_shape_keys)} unique deployment shapes in firectl ({parallelism} parallel)...\")\n shape_results: dict[tuple[str, str], ShapeLookupResult] = {}\n with ThreadPoolExecutor(max_workers=parallelism) as executor:\n future_to_key = {\n executor.submit(\n firectl_shape_lookup,\n deployment_shape_base_name=deployment_shape_base_name,\n firectl_binary=firectl_binary,\n timeout_seconds=timeout_seconds,\n profile=profile,\n ): (profile, deployment_shape_base_name)\n for (profile, deployment_shape_base_name) in unique_shape_keys\n }\n progress_bar = tqdm(\n as_completed(future_to_key),\n total=len(future_to_key),\n desc=\"shape lookups\",\n unit=\"shape\",\n dynamic_ncols=True,\n disable=quiet,\n )\n for future in progress_bar:\n key = future_to_key[future]\n shape_results[key] = future.result()\n if verbose and not quiet:\n latest = shape_results[key].latest_version or \"LOOKUP_ERROR\"\n log(f\" shape: {key[1]} -> latest={latest}\")\n progress_bar.close()\n\n enriched: list[DeploymentRow] = []\n for row in rows:\n shape_base_name = deployment_shape_base(row.deployment_shape_version)\n latest_version = shape_results.get(\n (row.firectl_profile, shape_base_name),\n ShapeLookupResult(latest_version=\"\", latest_shape_enables_hot_load=False),\n ).latest_version\n shape_info = official_shapes.get(shape_base_name)\n latest_shape_enables_hot_load = shape_results.get(\n (row.firectl_profile, shape_base_name),\n ShapeLookupResult(latest_version=\"\", latest_shape_enables_hot_load=False),\n ).latest_shape_enables_hot_load\n hotload_type = row.hotload_type\n if (shape_info is not None and shape_info.enables_hot_load) or latest_shape_enables_hot_load:\n hotload_type = \"collective\"\n enriched.append(\n DeploymentRow(\n cluster=row.cluster,\n hotload_type=hotload_type,\n account_id=row.account_id,\n deployment_id=row.deployment_id,\n current_replicas=row.current_replicas,\n desired_replicas=row.desired_replicas,\n gpus=row.gpus,\n create_date=row.create_date,\n image_version=row.image_version,\n deployment_shape_version=row.deployment_shape_version,\n latest_shape=bool(latest_version and row.deployment_shape_version == latest_version),\n official_shape=shape_info is not None,\n firectl_status=row.firectl_status,\n created_by=row.created_by,\n firectl_profile=row.firectl_profile,\n )\n )\n return enriched\n\n\ndef enrich_with_firectl(\n rows: list[DeploymentRow],\n firectl_binary: str,\n timeout_seconds: int,\n parallelism: int,\n verbose: bool,\n profiles: list[str],\n official_sh"} -{"text": "by Jean-Bernard Hyppolite\nRabbi Marcia Prager has been the spiritual leader at West Mt. Airy’s P’nai Or congregation for 18 years. In Hebrew, the word “chai,” which means “life,” has the numerical value of the number 18. It’s an important meaning for a thriving community led by a dedicated rabbi. On October 28 and 29 P’nai Or held a two-day celebration of Rabbi Prager’s contributions to the congregation and to the Jewish world in general.\n“I’ve been privileged to serve a wonderful community of warm, caring, sharing, sweet, wonderful people,” said Rabbi Marcia.\nThe celebration began with a Kavannah Shabbat, which is a joyous, song-filled “love fest,” as Rabbi Marcia described it. It was filled with live music and dinner at the end of the night. P’nai Or continued the next morning with their regular “Shabbat” morning service, led by Rabbi Marcia and her husband, “Hazzan” Jack Kessler, a musician and master of Jewish song and liturgy.\nAs it turned out, people from all over the Eastern seaboard and even as far as Oregon drove and flew in for the service and celebration. The rest of the day’s festivities included an exceptional potluck lunch, small gatherings and another music-filled gala and dinner to close the weekend. Jack Kessler’s band, Klingon Klezmer, performed at the celebration.\n“Everyone danced and feasted; it was really quite a weekend … A lot packed into two wonderful days,” said Rabbi Marcia, still glowing a few days after the events.\nRabbi Prager first came to P’nai Or as a student, then became a member and is now, according to her, just is one of its many leaders. “P’nai Or is not a very traditional synagogue in which there’s the ‘leadership’ and the ‘followership.’ In P’nai Or there are many wonderfully skilled co-leaders. Everyone contributes and leads with their gifts.”\nRabbi Marcia speaks of the synagogue as a place where people can hone their gifts, share with each other, learn leadership skills and give. She believes the environment that everyone has helped to create at P’nai Or makes it a loving and non-judgmental place. It’s due to these traits that Marcia describes P’nai Or as “unusual and unique” in the most positive of ways.\n“P’nai Or’s unusual in a variety of different ways. Not only the way in which leadership is shared, and service leadership is shared, but the style of the prayer,” added Marcia, describing the sight of people dancing in the aisles, singing and clapping as a real “celebratory atmosphere.”\nPeople don’t sit in the pews and pray with their knees down and hands closed, and Rabbi Marcia prefers it that way. The prayers are sung in a blend of Hebrew and English. While Hebrew prayers are often sung, their translations are simply read instead. “In a way, we’re praying in ‘Heblish,’” she said.\nAt P’nai Or it’s not unheard of to have opportunities for meditation, reflection sharing, and genuine conversation with each other about important and meaningful topics in the middle of service. When Rabbi Marcia reads the torah, she welcomes people who may be touched by a specific story to come up by her side at the desk. “People are invited to have a very personal relationship with scripture.”\nMarcia is a Jewish Renewal Rabbi, and P’nai Or is a Jewish Renewal Congregation. Jewish Renewal aspires to create models of Jewish expression that are contemporary and also speak to the heart as well as the mind. The full inclusion of women is embraced.\nMt. Airy has a significant Jewish presence, and P’nai Or is just one of four Jewish congregations in West Mt. Airy. P’nai Or does not have its own building but is located inside the community wing of Summit Presbyterian Church, 6757 Greene St. (at Westview). It was founded by Rabbi Schacter-Shalomi in 1973.\nRabbi Marcia, 59, was named one of the top 50 most influential female rabbis (aka The Sisterhood 50) by The Jewish Daily Forward newspaper. This entire list is particularly impressive considering that the first female rabbi in America, Rabbi Sally J. Priesand, was ordained as recently as 1972. There were no female rabbis around when Marcia was growing up; she garnered inspiration from the women’s ordination movement in what she views as the liberal Jewish world.\n“We are proud to have Rabbi Prager, one of America’s 50 most influential women rabbis, as our spiritual leader,” said Elyse Seidner-Joseph, chairperson of the Chai celebration.\n“I don’t do what I do in order to be recognized or be on a list,” said Rabbi Prager, “but it is delightful to have my achievements noticed. It’s particularly moving to live a life in which I am able to do the work of my heart and contribute in important ways to the world … Being a Rabbi offers me an opportunity to bring Jewish values into the heart of how I and an extraordinary community live our lives.”\nRabbi Marcia Prager, originally from Queens, New York, moved to Philadelphia in 1984. She and Kessler, who have been married since the late ‘80s, lead workshops together at P’nai Or. They have a son, Aaron, 21, a senior at Temple University. Rabbi Marcia is also a teacher, author, artist and therapist. She became a therapist after graduating from a four-year training program in marriage and family therapy at Penn Council For Relationships. She also earned a B.A. in cultural anthropology along with an M.F.A. in photography and drawing from Pratt Institute, New York. She is the author of “The Path of Blessing,” and she works for ALEPH: Alliance for Jewish Renewal. For more information, visit www.pnaior-phila.org or email PnaiOrRabbi@aol.com."} -{"text": "The DUI Ignition Kit, includes the DUI Distributor, Custom LiveWire set, and the Billet Wire Looms. Please designate cap color, wire color, and loom color when ordering.\nFits: The 5/16\" drive fits all 200/250ci motors, as well as the late 170ci. It will not fit the 144ci or early 170ci, which used a 1/4\" drive.\nAdd Horse Power by installing the most powerful ignition system available for the small six and save an additional $20 by ordering the complete DUI Ignition Kit. The Complete Kit includes the DUI Distributor, a custom LiveWire set, and the Billet Aluminum Wire Looms.\nDyno testing on a 200ci engine showed an increase up to 15 HP over the Duraspark II and MSD Ignition system, and up to 20 HP over the stock ignition system. Manufactured by Performance Distributors for Classic Inlines, the DUI distributor is the only one-piece, high performance ignition system available for your inline six. Since the coil and ignition module are self-contained in the distributor, it is truely a clean and simple drop in installation, which eliminates all of the messy and confussing wiring associated with other ignition systems. Just run one 12-volt hot wire to the distributor and you're ready to run! A tach hook-up is also included for those who like to keep track of their RPMs.\nThis Street/Strip DUI Distributor is built with a 50,000 volt coil that allows a whopping .055\" plug gap, which provides a more powerful explosion of the fuel mixture. The Dyna Module is designed with more electronic dwell time as well, producing an even hotter spark. Unlike stock Ford systems, and many aftermarket systems, no ballast resistor is required, which reduces the voltage in the ignition system. The D.U.I. allows FULL voltage providing a better spark and more power. Every DUI Distributor is custom curved on a machine prior to packaging. This results in a super smooth curve, eliminate engine damaging detonation, and provides instant throttle response.\nCaps are available in Black, Red, or Blue.\nOur DUI LiveWire Sets are custom fit for use with our DUI Performance Distributors - no assembly is required. Each wire is numbered on both ends making installation, removal and re-installation quick and easy.\nLiveWires® from Performance Distributors, have a space age heat resistant sleeving which is non-flammable and non-corrosive to chemicals. This unique sleeving provides protection from -76° to +1400° F and offers excellent resistance to moisture and chemicals. The LiveWire spiral wound core prevents electronic interference, radio noise, and computer interference. They offer an extremely low resistance of 300 - 350 Ohms per foot, for optimum spark travel. Each LiveWires has a durable and long lasting silicone jacket, with heat shrink applied between the boot and the sleeving to keep dirt and moisture away from wire terminals. Due to the unique protective sleeving on LiveWire set, stock or aftermarket looms will not fit over the wires. Custom Livewire sets are available in Black, Red, Blue, and Yellow.\nDUI Billet Aluminum Wire Looms are custom manufactured for use on the LiveWire sets. Due to the protective sleeving on LiveWires, stock or aftermarket looms will not fit over LiveWire sets without pinching or crimpimg the wires. These billet separators are held together with allen head screws which are mounted flush within the loom, will not pinch or damage the protective heat sleeving. Available in a natural finish or Black anodized (red, blue, and gold anodized are no longer offered). Set includes 1-4 Hole. 1-3 Hole. and 3-2 Hole Looms.\nAll parts required for installation are included with the complete kit, saving you time and frustration, and un-necessary trips to your auto parts store. The DUI Dstributor is a real work of craftsmanship, and although it is uniquely designed, replacement parts are easy to find. High Energy Ignition (HEI) replacement parts, available at all auto parts stores, fit right on the DUI distributor. While a stock HEI moduals work in a pinch, the custom DUI moduals are available from Classic Inlines, as are the caps, rotors, and coils. Please designate cap color, and wire color when ordering.\nNOTE: We highly recommend reading our Tech Article on \"Preventing Premature Distributor Gear Failures\" before you install your new distributor.\nNOTE: While the DUI distributor will fit Econline trucks and vans, you must cut a small hole in the side of the doghouse and fashion some sort of bowl like cover to make room for the larger DUI distributor.\nDUI verse DSII - note that the DUI is considerably\nlarger than a stock distributor or the Duraspark II\nNOTE: The DUI distributor will not fit with a standard power steering pump due to the additional height and width of the DUI distributor. Classic Inlines is working on a custom bracket to allow the use of the newer Saginaw Power Steering pump, which will clear."} -{"text": "apes: dict[str, OfficialShapeInfo],\n quiet: bool,\n) -> list[DeploymentRow]:\n if not rows:\n return rows\n\n unique_keys: list[tuple[str, str]] = sorted({(row.account_id, row.deployment_id) for row in rows})\n profiles_label = \", \".join(p or \"(default)\" for p in profiles) if profiles else \"(default)\"\n if not quiet:\n log(\n f\"Looking up {len(unique_keys)} unique deployments in firectl \"\n f\"(profiles tried in order: {profiles_label}; {parallelism} parallel)...\"\n )\n\n lookup_results: dict[tuple[str, str], FirectlLookupResult] = {}\n with ThreadPoolExecutor(max_workers=parallelism) as executor:\n future_to_key = {\n executor.submit(\n firectl_deployment_lookup,\n account_id=account_id,\n deployment_id=deployment_id,\n firectl_binary=firectl_binary,\n timeout_seconds=timeout_seconds,\n profiles=profiles,\n ): (account_id, deployment_id)\n for (account_id, deployment_id) in unique_keys\n }\n progress_bar = tqdm(\n as_completed(future_to_key),\n total=len(future_to_key),\n desc=\"firectl lookups\",\n unit=\"dep\",\n dynamic_ncols=True,\n disable=quiet,\n )\n for future in progress_bar:\n key = future_to_key[future]\n lookup_results[key] = future.result()\n if verbose and not quiet:\n profile_tag = (\n f\" via profile={lookup_results[key].profile or '(default)'}\"\n if lookup_results[key].status != FIRECTL_STATUS_NO_LABELS\n else \"\"\n )\n log(f\" firectl: {key[0]}/{key[1]} -> {lookup_results[key].status}{profile_tag}\")\n progress_bar.close()\n\n enriched: list[DeploymentRow] = []\n for row in rows:\n lookup = lookup_results.get(\n (row.account_id, row.deployment_id),\n FirectlLookupResult(\n status=FIRECTL_STATUS_NO_LABELS,\n created_by=\"\",\n profile=\"\",\n deployment_shape=\"\",\n enable_hot_load=False,\n ),\n )\n hotload_type = \"collective\" if lookup.enable_hot_load else row.hotload_type\n enriched.append(\n DeploymentRow(\n cluster=row.cluster,\n hotload_type=hotload_type,\n account_id=row.account_id,\n deployment_id=row.deployment_id,\n current_replicas=row.current_replicas,\n desired_replicas=row.desired_replicas,\n gpus=row.gpus,\n create_date=row.create_date,\n image_version=row.image_version,\n deployment_shape_version=lookup.deployment_shape,\n latest_shape=False,\n official_shape=False,\n firectl_status=lookup.status,\n created_by=lookup.created_by,\n firectl_profile=lookup.profile if lookup.status != FIRECTL_STATUS_MISSING else \"\",\n )\n )\n return enrich_with_shape_latest(\n rows=enriched,\n firectl_binary=firectl_binary,\n timeout_seconds=timeout_seconds,\n parallelism=parallelism,\n verbose=verbose,\n official_shapes=official_shapes,\n quiet=quiet,\n )\n\n\ndef format_number(value: float) -> str:\n if value.is_integer():\n return str(int(value))\n return f\"{value:.3f}\".rstrip(\"0\").rstrip(\".\")\n\n\ndef capacity_status(row: DeploymentRow) -> str:\n if row.desired_replicas == row.current_replicas:\n return \"ok\"\n if row.current_replicas == 0:\n return \"missing\"\n return \"reduced\"\n\n\ndef print_key_value_rows(rows: list[tuple[str, str]], indent: int) -> None:\n if not rows:\n return\n\n key_header = \"metric\"\n value_header = \"value\"\n key_width = max(len(key_header), *(len(key) for key, _ in rows))\n value_width = max(len(value_header), *(len(value) for _, value in rows))\n prefix = \" \" * indent\n print(f\"{prefix}{key_header:<{key_width}} {value_header:>{value_width}}\")\n print(f\"{prefix}{'-' * key_width} {'-' * value_width}\")\n for key, value in rows:\n print(f\"{prefix}{key:<{key_width}} {value:>{value_width}}\")\n\n\ndef print_table(rows: list[DeploymentRow]) -> None:\n headers = [\n \"cluster\",\n \"account_id\",\n \"deployment_id\",\n \"current_replicas\",\n \"desired_replicas\",\n \"gpus\",\n \"image_version\",\n \"deployment_shape_version\",\n \"latest\",\n \"official\",\n \"capacity\",\n \"firectl_status\",\n \"create_date\",\n \"created_by\",\n ]\n table_rows = [\n [\n cluster_name_from_context(row.cluster),\n row.account_id,\n row.deployment_id,\n str(row.current_replicas),\n str(row.desired_replicas),\n format_number(row.gpus),\n row.im"} -{"text": "The Gators' 2-year-old national championship destruction of Ohio State -- specifically the offense, and more specifically the offensive line -- occurred on the same field on which the Buckeyes meet Texas in tonight's Fiesta Bowl. In the repetitive highs and rare but public lows, in the expectations and constant observations, in the questions about how to evaluate this Ohio State era, left tackle Alex Boone exemplifies the conflicted views fans have of the Buckeyes. They can be clarified against the No. 3 team in the country, for good or for bad.\nAs the left tackle goes tonight, so go the Buckeyes.\nHe's big. He's loud. He's funny. He's honest. He's nasty. He plays the money position on the offensive line. And whenever he makes a mistake, everyone notices.\n\"I'm aware of that,\" the senior from Lakewood said, smiling when asked of his status as a lightning rod for the Buckeyes' fortunes. \"My grandma reads all those message things and will call me crying or swearing. But if people are mad at me, I can't change that.\"\nActually, he can.\nIn his final college game, Boone faces the toughest opponent he could ask for, gladly.\n\"I'm getting lots of phone calls from people, like, if you have a great game this week, it'll kind of silence a lot of people,\" Boone said.\n\"A lot of people think the world of Orakpo, and they think he's everything. If you shut him down or force him to the other side, it'll say a lot about you.\n\"It's the perfect matchup. I told a lot of people I'd be excited to play Texas. I didn't think it would actually happen.\"\nIt has, and it's more than just an individual showdown between Boone and the winner of the Lombardi, Nagurski and Hendricks awards. It's the place where the Fiesta Bowl can change, because the Buckeyes must run the ball for their offense to work and to keep the high-powered Texas offense off the field.\n\"If they can control the ball and keep the clock running and we never see the ball, it's not going to matter,\" Texas coach Mack Brown said.\n\"That's a great defense against our offense.\"\nAnd the Buckeyes can't run if they don't control an end known for his size, his speed and his discipline to the game plan.\n\"Everything he does is perfect,\" Boone said.\nThe line also has to keep quarterback Terrelle Pryor from getting rattled by a defensive line that leads the nation in sacks. Once Florida starting chasing Troy Smith two years ago, his Heisman was the last thing on people's minds.\n\"I was watching a lot of the Florida game to try to see some stuff they were doing to get to the quarterback,\" Orakpo said. \"I was trying to see some tendencies that really helped me.\"\nOrakpo zeroed in on the Penn State game from this season as well, when defensive end Aaron Maybin caused repeated problems. But Ohio State offensive coordinator Jim Bollman made it clear the Texas front four is more than just Orakpo, which is why some consider this best defensive line the Buckeyes have faced this season.\n\"The Penn State defensive line is good, the USC defensive line is good, so I don't know that these guys are clear cut way beyond them,\" Ohio State tight end Rory Nicol said.\nNicol said the Buckeyes might be helped by two changes in the plan from those earlier games. One is helping the tackles more, so a player like Maybin can't dominate the way he did in his matchup against right tackle Bryant Browning. The other is a commitment to the inside power running game and less of the zone-read runs that were used to stretch a defense when Pryor first took over the starting job.\n\"I think we got back toward the power-type running in the Illinois game and the Michigan game,\" Nicol said. \"I think it's better to keep it up the middle.\"\nSo the plan might be better. And then it will come down to matchups. And maybe everyone, including Boone himself, will figure out what kind of player he is and what kind of season he really had. On one hand, he made first-team All-Big Ten and was a second-teamer on one All-American team. However, nearly every draft analyst believes Boone's stock fell in his return for his senior season.\nBut like Ohio State defensive end Vernon Gholston did by winning his showdown with Michigan left tackle Jake Long last season, helping Gholston leap into the No. 6 pick in the draft, one game against one great player can go a long way. And clear up a lot of chaos.\n\"Overall, I felt it was a good year for me, and everyone was like, your draft is slipping. Obviously, that doesn't matter to me right now, but I'm kind of confused as well,\" Boone said. \"What could I have done better? Do I have to go out there and kill somebody? What do you want from me?\"\nWhat do Ohio State fans want? They want a win tonight. And they'll probably need Boone at his best against Orakpo to get it.\n\"This is the final exam of final exams,\" Boone said. \"This game means everything right now, because he is a great player. And this will show people what I am or what he is.\""} -{"text": "CLEVELAND, Ohio -- Drivers on I-271 may be scratching their heads over a billboard that features a prominent picture of Jimmy Dimora.\nIt's not a \"Wanted\" poster.\nBedford Heights, celebrating its 50th birthday this year, put up the sign congratulating the community. It contains photos of the six people who have served as mayor, including Dimora (1982-1998), for whom the city's community center is named.\nCurrent Mayor Fletcher Berger said he's heard from some folks who wonder why Dimora has such a prominent place of honor, given that the former county Democratic Party boss is under indictment on federal corruption charges for his actions as a Cuyahoga County commissioner.\n\"My response is simple: We still live in a country where people are innocent until proven guilty, and it's not on me to prematurely make a decision on something that is now going through a process,\" said Berger. \"This was not about Jimmy Dimora. This was about the fact that Bedford Heights is celebrating its 50th Anniversary. What we are recognizing is the time period he was there.\"\nThe sign, the mayor said, was free. The city can put up signs when the space is not sold as part of the deal that provided the billboard space. It is visible to southbound drivers and is just before the Rockside Road exit.\nIf Dimora is convicted, it might be a different story, he said. Some folks wonder whether the community center would drop Dimora's name.\n\"At that time, I definitely think we have to take a second look,\" the mayor said. \"If you have someone who is a convicted felon, it is a whole different situation than someone who is indicted. I think we'd have to look at it differently.\"\nBirthday bash: Henry and Judy Hilow celebrated the 100th birthday of their Lake Avenue home in Lakewood Friday night with a party of the century, complete with guests wearing period attire form 1911.\nJudy Hilow spend a year planning the bash, which doubled as a fundraiser for the Lakewood Historical Society. Guests donated $5,000 for the cause and feasted on Middle East fare prepared by the Hilow's daughters and nieces.\nHenry Hilow, a prominent Cleveland defense lawyer, was late for the party because he attended a St. Edward High School football scrimmage. His son, Henry Jr., plays for the Eagles.\nThere were lots of hats, like the one worn by Mayor Mike Summers, at the party, as well as snazzy bow ties. One couple, Assistant U.S. Attorney Gary Arbeznik and his wife, Maureen Arbeznik, principal of Lakewood Catholic Academy, wore old-fashioned swim suits (though there was no pool.)\nThe house was built in 1911 for Fred Becker, president of Pfaffman Egg Noodle Co.\nRandom acts: Progressive insurance is sending its pitchman to Cleveland this week. No, it's not the hyper-kinetic Flo from the Progressive store. It's \"The Messenger,\" the somewhat seedy looking wanderer who shows up in odd places to talk of the insurance giant's money-saving deals.\nThe Messenger will commit \"random acts of savings\" in Cleveland Thursday by paying the tab at a gas pump or taking care of parking fees.\nBe on the lookout.\nHonoring the fallen: Cuyahoga County Executive Ed FitzGerald and Brecksville Mayor Jerry Hruby dedicated the rebuilt Old Royalton Bridge Wednesday to fallen Marine Corps Sgt. Dennis E. Kancler, a Brecksville native. On July 31, the 26-year-old Kancler was killed with two other Marine sergeants in a noncombat incident in Afghanistan.\nInternational mystery: Cleveland boutique publisher Gray & Company, which specializes in printing local books by local authors, is slowly wading into the electronic publishing world.\nQuietly, the company published \"Amy: My Search for Her Killer\" by James Renner as an e-book available on Amazon, Bn.com and Apple's iBooks store.\nIn the first week, the book sold a handful of copies, including two from Australia and two from Great Britain.\n\"Those just might be our first ever international sales,\" said David Gray, who owns the company.\nWhile the numbers weren't big, Gray said he's encouraged that with no promotion, people found the book.\n\"It was an interesting start. We certainly hope that once we start telling people that our e-book editions exists, we'll start getting a lot more business from customers all over the place,\" he said.\nNext in the pipeline for electronic publication: All 15 of Les Roberts' Milan Jacovich mysteries.\nThose ought to do huge number in Slovenia.\nSound of Ideas: Last week on the Sound of Ideas, ecologists and park rangers talked about their battle in public green spaces against invasive plant species. Unchecked, fast-growing invaders can overtake fields, marshes and other natural habitats, choking out diversity. The response? Get out your gardening gloves and go to war, but first make sure you google invasive plants in Ohio so you know what you're going after.\nAlso last week, Cleveland's Port Authority CEO Will Friedman said he's committed to\nkeeping port operations right where they are on the lakefront, and is hopeful he can beef up business with a new container service between Cleveland and Montreal and a cross-lake passenger and car ferry. He also expressed the Port's commitment to keeping the Cuyahoga River in good shape. The Port's board has not voted on the master plan Friedman wants to implement.\nThis morning, it is the rising cost of public school as many districts must charge fees for what once was part of the package, from band to basketball. Join us with your thoughts. The Sound of Ideas, hosted by Tipoff's Mike McIntyre, airs weekdays at 9 a.m. on WCPN 90.3 FM."} -{"text": "age_version,\n row.deployment_shape_version or \"n/a\",\n \"true\" if row.latest_shape else \"false\",\n \"true\" if row.official_shape else \"false\",\n capacity_status(row),\n row.firectl_status,\n row.create_date,\n row.created_by,\n ]\n for row in rows\n ]\n widths = [max(len(header), *(len(row[index]) for row in table_rows)) for index, header in enumerate(headers)]\n\n print(\" \".join(header.ljust(widths[index]) for index, header in enumerate(headers)))\n print(\" \".join(\"-\" * width for width in widths))\n for row in table_rows:\n print(\" \".join(value.ljust(widths[index]) for index, value in enumerate(row)))\n\n\ndef print_summary(scanned_deployments: int, rows: list[DeploymentRow], skipped: list[SkippedContext]) -> None:\n official_shape_pct = (sum(1 for row in rows if row.official_shape) / len(rows) * 100) if rows else 0.0\n official_latest_shape_pct = (\n (sum(1 for row in rows if row.official_shape and row.latest_shape) / len(rows) * 100) if rows else 0.0\n )\n latest_shape_pct = (sum(1 for row in rows if row.latest_shape) / len(rows) * 100) if rows else 0.0\n capacity_pcts = {\n status: (sum(1 for row in rows if capacity_status(row) == status) / len(rows) * 100) if rows else 0.0\n for status in (\"ok\", \"reduced\", \"missing\")\n }\n firectl_status_counts: dict[str, int] = {}\n for row in rows:\n if not row.firectl_status:\n continue\n firectl_status_counts[row.firectl_status] = firectl_status_counts.get(row.firectl_status, 0) + 1\n\n summary_rows = [\n (\"scanned deployments\", str(scanned_deployments)),\n (\"hotload deployments\", str(len(rows))),\n (\"official shape\", f\"{official_shape_pct:.1f}%\"),\n (\"official latest shape\", f\"{official_latest_shape_pct:.1f}%\"),\n (\"latest shape\", f\"{latest_shape_pct:.1f}%\"),\n (\"capacity 'ok'\", f\"{capacity_pcts['ok']:.1f}%\"),\n (\"capacity 'reduced'\", f\"{capacity_pcts['reduced']:.1f}%\"),\n (\"capacity 'missing'\", f\"{capacity_pcts['missing']:.1f}%\"),\n (\"skipped contexts\", str(len(skipped))),\n ]\n summary_rows.extend(\n (f\"firectl {status}\", str(firectl_status_counts[status])) for status in sorted(firectl_status_counts)\n )\n\n print(\"Summary\")\n print_key_value_rows(summary_rows, indent=0)\n print()\n\n\ndef parse_args() -> argparse.Namespace:\n parser = argparse.ArgumentParser(\n description=(\n \"Search every local kubectl context for hotload deployments and \" \"classify them as collective or legacy.\"\n )\n )\n parser.add_argument(\n \"--context-regex\",\n help=\"Only scan contexts whose names match this regex.\",\n )\n parser.add_argument(\n \"--cluster\",\n help=(\n \"Only scan one cluster. Matches either the full kubectl context name \"\n \"or the cluster enum prefix before the first space, e.g. NA_BRITISHCOLUMBIA_1.\"\n ),\n )\n parser.add_argument(\n \"--request-timeout-seconds\",\n type=int,\n default=20,\n help=\"kubectl API request timeout per context.\",\n )\n parser.add_argument(\n \"--process-timeout-seconds\",\n type=int,\n default=30,\n help=\"local process timeout per kubectl call.\",\n )\n parser.add_argument(\n \"--max-attempts\",\n type=int,\n default=3,\n help=\"maximum kubectl attempts per context before skipping it.\",\n )\n parser.add_argument(\n \"--retry-delay-seconds\",\n type=float,\n default=2.0,\n help=\"sleep between failed kubectl attempts for a context.\",\n )\n parser.add_argument(\n \"--verbose\",\n action=\"store_true\",\n help=\"print per-context scan details in addition to tqdm progress.\",\n )\n parser.add_argument(\n \"--only-summary\",\n action=\"store_true\",\n help=\"suppress scan progress and pre-summary logs; print only the Summary section and rows below it.\",\n )\n\n parser.add_argument(\n \"--skip-firectl\",\n action=\"store_true\",\n help=\"skip the firectl-admin enrichment step.\",\n )\n parser.add_argument(\n \"--firectl-binary\",\n default=\"firectl-admin\",\n help=\"firectl-admin binary to invoke for deployment lookups.\",\n )\n parser.add_argument(\n \"--firectl-timeout-seconds\",\n type=int,\n default=20,\n help=\"per-call timeout for firectl-admin deployment/shape get.\",\n )\n parser.add_argument(\n \"--firectl-parallelism\",\n type=int,\n default=FIRECTL_LOOKUP_PARALLELISM,\n help=\"number of concurrent firectl-admin lookups.\",\n )\n parser.add_argument(\n \"--firectl-profile\",\n action=\"append\",\n default=None,\n metavar=\"PROFILE\",\n help=(\n \"firectl-admin profile to try as a fallback when the default profile reports \"\n \"MISSING (e.g. --firectl-profile fw-dev). Repeatable. The def"} -{"text": "Cleveland Helicopter Aerial Filming, Photography and Surveys...\nNo job in Ohio is too big or too small!\nNo matter what form of aerial survey you need, including both magnetometer and electromagnetic surveys, Cleveland Helicopter Charters can provide a wide range of options by combining the low flying and hover capabilities of helicopters. Add a camera and mount and you can film or photo Cleveland from the Ohio sky!\nSearch terms related to\nCleveland Surveys, Filming and Photography:\nCleveland Aerial Surveys • Aerial Photography in Cleveland • Cleveland Geological Survey • Aerial Filming in Cleveland • Cleveland Helicopter Videography • Aerial Surveys in Cleveland • Cleveland Disaster Survey • Ohio Aerial Surveys • Cleveland Aerial Videographers • Geographical Survey of Cleveland • Cleveland Aerial Photography • Helicopter Photography in Cleveland • Ohio Disaster Survey • Cleveland Corporate Helicopter Survey • Cleveland Aerial Filming • Cleveland Aerial Videography • Helicopter Filming in Cleveland • Cleveland Survey Helicopters • Cleveland Helicopter Videographer\nAerial Filming, Photography and Surveys in Cleveland\nNo vehicle makes it as easy as a Cleveland Helicopter!\nThank you for trusting Cleveland Helicopter Charters for your filming and photography projects! We have a highly trained team of helicopter specialists waiting to assist you. Our Cleveland Helicopter Team will professionally assist you with the right helicopter and state-of-the-art technology. We will quickly and efficiently get your project into production. Read the information below to decide on what Aerial Filming, Aerial Photography or Aerial Survey options fits your needs the best, and then call our knowledgeable experts to consult and finalize your plans.\nCall us at 1-866-826-4826 to book a Cleveland Helicopter for your next project!\nCleveland Aerial Filming\nThe Top Pilots in Ohio, Today's Technology... Maximum Results.\nCleveland Helicopter Charters has the reach to bring you what you need for aerial filming in Ohio. Our Network can provide the latest technology to work out custom shoots, using gyro-stabilized camera mounts (Tyler Mounts, Wesscam, Cineflex, and spacecam) with Specialty Cameras (Cineflex HD, FLIR.) From air to air or ground to air shots, we can support all aspects for your production goals. Specializing in Cleveland helicopters for both still and motion photography, our nationwide network can provide for almost every media related operation in Ohio; film, television, documentaries, promotional videos, commercials, aerial props, relief work for television networks and coverage of historical and major sporting events from a variety of helicopters.\nCall Us Today at 1-866-826-4826 for Free Information on Aerial Filming in Cleveland!\nNeed Aerial Photography in Cleveland?\nWe will help you find the right equipment for your Ohio job!\nThe spectacular settings and breath taking views that Cleveland Helicopter Charters provide can only be accomplished from the sky. Discover for yourself on one of our charters designed to meet your aerial photography need in the Cleveland clouds.\nCleveland Helicopter Charters is prepared and excited to offer our clients the most affordable photographic opportunities of this kind in Ohio. We work with the best camera operators, aerial coordinators, helicopter pilots, and the latest equipment in the Cleveland area. Call for info on gyro mounts to get that extra bit of stability.\nCall Us Today at 1-866-826-4826 for Free Information on Aerial Photography in Cleveland!\nCleveland Aerial Surveying Done Right!\nThe fastest and easiest way to survey the Ohio landscape!\nCleveland Helicopter Charters provides the tools needed to complete your land surveys, utilizing the right equipment to provide the aerial photos that are often needed.\nCleveland Aerial Surveys make looking over your future home or showing demographics and photos of an area for a commercial business project simple. Helicopter surveys are the only way to look over the Ohio terrain. Cleveland Helicopter Charters can develop the right photographic and remote sensing operations custom fit to maximize technical and financial efficiency as well as results.\nThere is no better way than from the Cleveland, Ohio sky to do your survey; animal population counts, soil drainage issues and geographical surveys call us today!\nCall Us Today at 1-866-826-4826 for Free Information on Aerial Surveys in Cleveland!\nParma Helicopter Charters | Elyria Helicopter Charters | Lorain Helicopter Charters | Cleveland Heights Helicopter Charters\nMentor Helicopter Charters | Akron Helicopter Charters | Helicopter Sitemap | Drone Sitemap\nRegulations may prohibit Helicopter Charters in the city proper. Local helicopter charter affiliates are conveniently located near Cleveland, Ohio."} -{"text": "A Solid Rock\nA Solid Rock\nThe Good Prayer\nWe have to read the entire Gospel of John and to apply the smallest [piece] of it. It reads, ‘In the hour he had said his son was cured’\nStudents have to study. If one does not study, one is not a student. The way you behave now, you will soon get old, and then what are you in for? What will happen to you? You are students; however, you do not study. You are like the young people who get old, while I want you to be like the old people who rejuvenate and like the young people who study.\nGod has to come and live within you and only if God lives within you, you will rejuvenate. There is one thing that you lack – the same what Christ was talking about to the young person. And I will tell you: it is Love you lack. When Love comes into you, you will then rejuvenate and all the good will come. Love will rejuvenate you. But when will Love come unto you? When God starts living in you. I do not mean that physical love, but that Love, which endures everything, that Love, which is a solid rock and all the misfortunes are suffered with Joy. It is Love when everyday you are grateful and you say, ‘This is my best day! I have never had a day like this!’ Tomorrow you will say the same. If we are not content and [if] every day we are sorry for this and for that, we shall grow old. Being grateful – this is Love. When we go to work in the world and when we are asked what we have to do, we shall tell every one, ‘We have to live like Christ!’ ‘You should first look for the Kingdom of God and for His Justice and everything else will be given to you. You wait for Christ to come. Who knows how you wait for him! It is said, ‘The Kingdom of God is within you.’ Christ will come within you. For those who implement God’s Will because of Love, the Kingdom of God has already arrived.\nThe angels and the saints would prefer to have our suffering. This is considered a privilege by them. Now you live like the children – you eat, drink and sleep, while you have to study. You think you are doing spiritual work, while the important thing is to live like Christ.\nNow, as I am looking at you, you have one window. You have to make one more window in order to let more light in. Light does not break the door and the windows, but it waits to be freely let it in, in order to enter.\nNow, as I am looking at you, you will soon grow old. What are you waiting for now? You will be growing old day by day and you will be called up above. Because you do not study, God will say, ‘Call these recalcitrant students to Me!’ You should not be thinking that you will grow old, but that you have to study – This is God’s law. The young one who studies does not grow old, and the old one who studies rejuvenates. It’s not Divine for a newly wed woman to make her husband not love her mother-in-law. Because a day will come when she will get her son married and she will be treated like this.\nThe mother, in order not to torment the child, does not make the child study. What will happen with this child then? If Heaven spoils us a lot, nothing will come out of us. This world is a reflection of the Invisible world. This world is like the bears, lakes and nature painted in pictures. You are not afraid to touch a painted bear, but if you go to a real bear, you will be afraid to touch it. The true reality is up above, and the physical world is a reflection of the Spiritual world. The spiritual world is a real world, and here everything is [painted as] in a picture.\nWhen you want to give something to a person you will ask him to empty his bag and you will then fill his bag with what’s in yours. You will tell him, ‘Mine is better, get rid of that, in order to take some of this.’ If someone has bread in one’s bag and says that he is full, you tell him, ‘No, mine is better!’ As soon as he takes from yours, he will be convinced, which means he will free himself of his old convictions. Make an experiment in some villages if they can give you a whole pita-bread; if you are with God, you will be given a whole pita-bread; if you are not with God, you will not be given a whole pita-bread. If you are going somewhere and the door is open, enter, but if the door is closed, do not enter. In other words, if one’s soul is open, talk to this person; if however, it [he] is not open and he does not receive, do not talk to him. When you get into a house, you will clean it, you will sweep it, you will knead pita-bread, so that the hosts on coming back be surprised [for the hosts to be surprised on coming back]. Put in other words, if you find a prepared soul, work within in a way that one can surprise oneself and say, ‘What’s happening with me?’ Sometime you eat to your heart’s content and go to a place where a pastry is made. Do not take a bite, you have eaten to your heart’s content! You start for a place and something tells you, ‘Do not go there!’ In such a case do not go!\nThe Lord’s Prayer\nLecture delivered by Petar Deunov (Beinsa Douno) on 2 June 1932 16.00h, Sofia, Izgreva\n Incorrect quotation from John’s: 4; 53: ‘So the father knew that it was at the same hour in which Jesus had said unto him, \"Thy son liveth.\" And he himself believed, and his whole house"} -{"text": "ault profile is \"\n \"always tried first. If no fallback is configured, a startup warning is printed.\"\n ),\n )\n return parser.parse_args()\n\n\ndef scan_context(context: str, args: argparse.Namespace) -> ContextScanResult:\n deployments, error = kubectl_deployments_for_context(\n context=context,\n request_timeout_seconds=args.request_timeout_seconds,\n process_timeout_seconds=args.process_timeout_seconds,\n max_attempts=args.max_attempts,\n retry_delay_seconds=args.retry_delay_seconds,\n quiet=args.only_summary,\n )\n if error is not None:\n return ContextScanResult(\n cluster=context,\n scanned_deployments=0,\n rows=[],\n skipped=SkippedContext(cluster=context, reason=error),\n )\n\n assert deployments is not None\n rows = [\n row\n for deployment in deployments\n if (row := deployment_row(context=context, deployment=deployment)) is not None\n ]\n return ContextScanResult(\n cluster=context,\n scanned_deployments=len(deployments),\n rows=rows,\n skipped=None,\n )\n\n\ndef main() -> int:\n args = parse_args()\n if not args.only_summary:\n log(\"Listing kubectl contexts...\")\n try:\n contexts = kubectl_contexts(timeout_seconds=args.process_timeout_seconds)\n except RuntimeError as exc:\n print(f\"Failed to list kubectl contexts: {exc}\", file=sys.stderr)\n return 1\n\n if args.context_regex:\n context_pattern = re.compile(args.context_regex)\n contexts = [context for context in contexts if context_pattern.search(context)]\n if args.cluster:\n contexts = [\n context\n for context in contexts\n if context == args.cluster or cluster_name_from_context(context) == args.cluster\n ]\n\n if not args.only_summary:\n log(f\"Found {len(contexts)} kubectl contexts to scan.\")\n log(\n \"Fetching deployments with \"\n f\"--request-timeout={args.request_timeout_seconds}s \"\n f\"and process timeout={args.process_timeout_seconds}s per context \"\n f\"for up to {args.max_attempts} attempts \"\n f\"with parallelism={CONTEXT_SCAN_PARALLELISM}...\"\n )\n\n rows: list[DeploymentRow] = []\n skipped: list[SkippedContext] = []\n scanned_deployments = 0\n\n with ThreadPoolExecutor(max_workers=CONTEXT_SCAN_PARALLELISM) as executor:\n future_to_context = {executor.submit(scan_context, context, args): context for context in contexts}\n completed_futures = as_completed(future_to_context)\n\n progress_bar = tqdm(\n completed_futures,\n total=len(future_to_context),\n desc=\"Scanning kubectx\",\n unit=\"ctx\",\n dynamic_ncols=True,\n disable=args.only_summary,\n )\n\n for future in progress_bar:\n context = future_to_context[future]\n progress_bar.set_postfix_str(context, refresh=True)\n result = future.result()\n if result.skipped is not None:\n if args.verbose and not args.only_summary:\n log(f\"Skipping context {context}: {result.skipped.reason}\")\n skipped.append(result.skipped)\n progress_bar.set_postfix(\n {\n \"deployments\": 0,\n \"hotload\": 0,\n \"skipped\": len(skipped),\n },\n refresh=True,\n )\n continue\n\n scanned_deployments += result.scanned_deployments\n rows.extend(result.rows)\n if args.verbose and not args.only_summary:\n log(\n f\" pulled {result.scanned_deployments} deployments from {context}; \"\n f\"found {len(result.rows)} hotload deployments\"\n )\n progress_bar.set_postfix(\n {\n \"deployments\": result.scanned_deployments,\n \"hotload\": len(result.rows),\n \"skipped\": len(skipped),\n },\n refresh=True,\n )\n\n progress_bar.close()\n\n if rows and not args.skip_firectl:\n official_shapes = official_shape_infos()\n user_fallback_profiles = list(args.firectl_profile or [])\n if not user_fallback_profiles and not args.only_summary:\n log(\n \"WARNING: No --firectl-profile fallback configured. Deployments managed \"\n \"by a non-default firectl-admin profile (e.g. fw-dev) will appear as \"\n \"MISSING. Pass --firectl-profile to also check there.\"\n )\n profiles = [\"\"] + user_fallback_profiles\n rows = enrich_with_firectl(\n rows=rows,\n firectl_binary=args.firectl_binary,\n timeout_seconds=args.firectl_timeout_seconds,\n parallelism=args.firectl_parallelis"} -{"text": "The Government's newly released National Innovation and Science Agenda shows that for economic growth to continue within Australia, an 'innovation ecosystem' must be fostered, where new businesses with new ideas are encouraged to grow and flourish. With every company wanting to increase, retain or improve their customers’ experiences, this makes marketing vital to fuelling Australia's ideas boom.\nThe retail space has gone through significant digital disruption over the past few years, making competition to stand out from the crowd fiercer than ever before.\nIBM’s director, distribution sector, of global industry marketing, Patricia Waldron, said for retailers it is both an exciting and challenging time.\n“One of the great things about the retail space is the ability to make a difference for your customers every day,” she told CMO. “Now some people love that challenge and are the ones that are successful because they are embracing change.”\nSo how can retail organisations better utilise digital for a new competitive edge? Here are Waldron’s five tips.\n1. Embrace the cognitive era\nFor Waldron, the age of new cognitive technologies such as those offered by IBM are enabling retailers to solve some of their customers’ key challenges.\n“The cognitive era is about taking retailers on a continuum,” she said. “It involves systems that can understand, reason and give you recommendations. But the most exciting thing is that they learn as they go. So as they make decisions for you and you put them into action, they get smarter in real time.”\nIn order to implement cognitive systems to differentiate your brand in the highly competitive retail space, Waldron highlighted systems that make the most of ‘dark data,’ and that take advantage of new insights from different sources of data.\n“This includes anything from videos and images to weather sensors,” she explained. “Putting all this information into cognitive systems, you have access to things like social information, news, local events and weather. In the retail space, what these all do is help you understand and anticipate longer term trends, while also helping retailers make everyday decisions more accurately and in real time.”\n2. New technology breeds new habits\nData, devices, people and processes are becoming more and more intertwined.\n“From the millennial perspective, we’re starting to see their habits become everyone’s habits,” Waldron said. “We’re starting to see people have pocket butlers or a pocket concierge with their phones. And we’re now moving from phones to wearables.”\nWhether you’re searching for shoes on your phone, or looking at an app on your wearable, this combination of devices is seeing consumers effectively generating more data that can be put into a cognitive system, which in turn can help retailers personalise customer experiences more effectively, Waldron said.\n“The idea is you have more devices that are generating more data to better help the retail conversation with the customer,” she said.\n3. Take customer engagement to a highly personalised level\nIn order to stand out from the crowd, Waldron stressed it is all about customer engagement at a highly personalised level.\n“While there is this concept of omni-channel, I believe that ultimately the consumer is the channel,” she claimed. “The retailer should be treating the customer consistently like an individual, regardless of whether the customer is interacting via the brick-and-mortar store or online. It’s all about that engagement. Customers want retailers to understand them on a personal level - their needs, their wants and aspirations at any point in time.”\n4. Why it’s all about differentiating the customer experience\nAnother critical way you can disrupt the retail space is differentiating the experience for your customer, Waldron said.\n“You can sell or market one product so many different ways on different sites,” she said. “But by differentiating in terms of your service, convenience, product assortment and experience in the store, a retailer can define its brand, what it stands for and better execute that strategy flawlessly, based on what the consumer wants.”\n5. Abandon legacy systems\nAccording to Waldron, one key thing retailers need to do moving forward is to abandon some of their legacy approaches when it comes to people, processes and technology.\n“Retailers can optimise their non-selling function so they can leave some space to invest in innovation and be more agile,” she said. “Successful retailers that are serious about disruption are experimenting and iterating quickly over time.\n“This means you can no longer wait 6-10 months to do something. The pressure is now on retailers to use technology quickly in order to promote and market to your customers.”"} -{"text": "Alex Repetski is your average dad, but to his three year old daughter, Gwenevere, he could be a hero. He’s spent the last 18 months and more than 800 hours reading through studies and medical journals, researching CBD and its healing properties, to help her with the tonic, myoclonic, and clinical seizures she was having — sometimes up to 50 a day. She was diagnosed with epilepsy and, as her EEGs revealed, was experiencing constant subclinical seizure activity throughout the day. It may not have looked like she was having a seizure from the outside, but at the brain level there were neurons firing constantly, and such activity can produce significant brain damage.\nGwenevere had a team of doctors that were trying an array of medicines to reduce the number of seizures she was having each day. At one point she was on 9 different medications. They kept hoping each subsequent medication would work, but nothing did. That’s when Alex decided to look into cannabis oil. “At that point, we really didn’t have anything to lose,” he said, as he recalled the struggle of trying to help his daughter achieve a better quality of life.\nAt first it was difficult to get her doctors on board with cannabis oil as a treatment since, admittedly, they simply didn’t know enough about it to prescribe it. Alex mentioned they considered trying the ketogenic diet after the ninth medication failed, but opted to try cannabis oil instead. Determined to understand what was happening with Gwenevere and help her as best he could, Alex read every journal publication, paper, article, study, and trial he could get his hands on regarding cannabis oil. Armed with research and studies in hand, only one of Gwenevere’s doctors agreed to prescribe cannabis to him, based on the trust and faith he had in Alex’s time spent researching.\nAt the time that Gwenevere was going through this process, Canadian law still stated that it was illegal to change cannabis from its dried form, meaning that if it is to be used for medical purposes it must be smoked or vaporized. It’s been reported that taking cannabis in its oil state has the most therapeutic value, however, and asking a child to smoke is ridiculous, for obvious reasons. The law changed last year after the notorious case involving Owen Smith, who challenged the Supreme Court that cannabis should not have to be smoked. He won the case, and the word ‘dried’ has been removed from the legal definition of acceptable cannabis usage, allowing for both oils and edibles to be prescribed as well.\nAfter acquiring the cannabis and reducing it down to its oil form, Alex proceeded with many rounds of trial and error, trying to find just the right dosage for Gwenevere. After five days, they noticed no seizure. Then another week went by, and then a month, and then two months of no seizures. Last January she went in for her 17th EEG after being on cannabis oil for 5 weeks.\nThis EEG was strikingly different from her previous ones. It seemed the cannabis oil had helped straighten out her brainwaves, working at the subclinical level. This was a huge moment for the Repetski family. Alex recalled taking the EEG to Gwenevere’s doctor to get an analysis and seeing how shocked they were when they saw it. At that point, he tells us, he couldn’t help but give the doctor a hug out of sheer joy!\nThey know this is not a cure for Gwenevere, but her quality of life has increased dramatically, which also increases the quality of life for the whole family. Prior to the cannabis oil use Gwenever was in an almost vegetative state and was functioning at the level of a four month old baby, even at the age of two. Now, she is a thriving three year old that is ticklish and likes smashing things and playing with her family. Alex is the first one to admit that he doesn’t see cannabis oil as a magic elixir, because much research still has to be done. However, he does wish to see a greater dialogue open up between all channels of healthcare, government, and citizenry about the use of cannabis oil as one more treatment option doctors can look towards when prescribing medications for patients.\nThere is still quite a bit of confusion surrounding the idea of taking cannabis oil and ‘getting high.’ Cannabis oil used medicinally is comprised almost entirely of CBD and very little THC (the component in cannabis that makes you feel high). CBD is one of over 60 compounds found in cannabis that belong to a class of molecules called cannabinoids. CBD and THC are usually present in the highest concentrations, making them the most recognized and studied. But it’s important to keep in mind that CBD and THC levels vary in different plants, so cannabis grown for recreational purposes will contain higher levels of THC than CBD. Using the oil as a treatment option is not the same thing as giving your child drugs.\nWatch Gwenevere’s story below:\nWe're incredibly passionate about what we do because we know the world NEEDS conscious media. The world is confusing and mainstream media is often making it worse - making what we do even more important.\nProducing news is costly! So we opened up a store. to help support our work and expand it while giving people something in return as.\nEverything in our store so far is in line with what we believe in and all proceeds support what we do."} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/serving/text_completion/formatters/harmony.py. Lines: 540.\n\nfrom __future__ import annotations\n\n\"\"\"Harmony tool-call aware response formatter (stream + full).\n\n**Harmony Format Support**\n--------------------------\n* Supports harmony's multi-channel format with tool calls in \"analysis code\" channel\n* Parses harmony format: `<|start|>assistant to=tool_name<|channel|>analysis code<|message|>{\"args\": \"value\"}<|return|>`\n* Uses HarmonyConversationStyle parser for robust format handling\n* Converts to OpenAI-compatible tool calls in both streaming and non-streaming modes\n* Handles incremental buffering for token-level streaming where harmony blocks are split across chunks\n\"\"\"\n\nimport time\nfrom typing import List, Optional, Any, Dict\n\nimport logging\nimport fireworks.text as firetext\nfrom fireworks.text.api import (\n ChatCompletionMessageToolCall,\n ChatCompletionMessageToolCallFunction,\n ChatCompletionResponseChoice,\n ChatCompletionResponseStreamChoice,\n ChatCompletionStreamResponse,\n DeltaMessage,\n ChatMessage,\n ChatCompletionTool,\n)\nfrom fireworks.text.error import UserError\n\nfrom ..formatter import (\n ChatCompletionResponseFormatter,\n _common_response_fields,\n _generate_call_id,\n)\nfrom ..billing import get_usage_info\nfrom openai_harmony import load_harmony_encoding, HarmonyEncodingName, StreamableParser, Role, Conversation\nimport filelock\nimport tempfile\nimport os\n\n# Lazy-loaded encoding to avoid race conditions in multi-process environments (e.g., torchrun).\n# The harmony library downloads the tiktoken vocab file on first use, which can cause\n# corruption if multiple processes try to download simultaneously.\n_ENCODING_CACHE = None\n_ENCODING_LOCK = None\n\n\ndef _get_harmony_encoding():\n \"\"\"Get the harmony encoding, downloading with a file lock to prevent race conditions.\"\"\"\n global _ENCODING_CACHE, _ENCODING_LOCK\n if _ENCODING_CACHE is not None:\n return _ENCODING_CACHE\n\n # Use a file lock to ensure only one process downloads at a time\n if _ENCODING_LOCK is None:\n lock_path = os.path.join(tempfile.gettempdir(), \"harmony_encoding.lock\")\n _ENCODING_LOCK = filelock.FileLock(lock_path, timeout=300)\n\n with _ENCODING_LOCK:\n # Double-check after acquiring lock\n if _ENCODING_CACHE is None:\n _ENCODING_CACHE = load_harmony_encoding(HarmonyEncodingName.HARMONY_GPT_OSS)\n return _ENCODING_CACHE\n\n\ndef _extract_tool_name(current_recipient: str) -> str:\n if current_recipient.startswith(\"functions.\"):\n return current_recipient.removeprefix(\"functions.\")\n elif current_recipient.startswith(\"browser.\") or current_recipient == \"python\":\n return current_recipient # Keep full name for browser tools\n\n logging.warning(f\"Invalid tool name: {current_recipient}\")\n return current_recipient\n\n\nclass HarmonyChatCompletionResponseFormatter(ChatCompletionResponseFormatter):\n \"\"\"Understands Harmony multi-channel format with tool calls.\n\n The formatter accumulates harmony-formatted text and uses the HarmonyConversationStyle\n parser to extract tool calls, channels, and content. It works with both streaming\n and non-streaming modes, converting harmony format to OpenAI-compatible responses.\n \"\"\"\n\n @property\n def ENCODING(self):\n \"\"\"Lazy-load encoding to avoid race conditions in multi-process startup.\"\"\"\n return _get_harmony_encoding()\n\n def __init__(\n self,\n index: int,\n request_id: str,\n model_name: str,\n request_time: int,\n stream_buffer_ms: float,\n conv,\n raw_output: Optional[Any] = None,\n use_new_logprobs: bool = False,\n return_reasoning_with_separate_field: bool = True,\n tools: Optional[List[ChatCompletionTool]] = None,\n return_token_ids: bool = False,\n ) -> None:\n super().__init__(\n index,\n request_id,\n model_name,\n request_time,\n stream_buffer_ms,\n conv,\n raw_output=raw_output,\n use_new_logprobs=use_new_logprobs,\n return_reasoning_with_separate_field=True,\n return_token_ids=return_token_ids,\n )\n self._processed_tool_calls: List[ChatCompletionMessageToolCall] = []\n self._has_json_error: bool = False # Track if we encountered invalid/incomplete JSON\n self.tools = tools or []\n\n # Tool call streaming state\n self._current_tool_call_state: Optional[Dict[str, Any]] = None\n self._tool_call_index = 0\n\n self._eos_token_ids = []\n # TODO: we should read it from model config instead of hardcoding it\n for eos_token in [\"<|return|>\", \"<|call|>\"]:\n tokens = self.ENCODING.encode(eos_token, allowed_special=\"all\")\n assert len(tokens) == 1, f\"Expected single token for EOS token {eos_token}, got {tokens}\"\n "} -{"text": "The University of Colorado Boulder has been chosen by the Association of American Universities to be one of eight campuses participating in a new initiative to improve undergraduate education in science, technology, engineering and math.\nOver the next three years, each of the eight project sites will receive $500,000 to undertake an innovative STEM education project.\n“We are thrilled to be chosen by the AAU to be part of this important new initiative,” said CU-Boulder Chancellor Philip P. DiStefano. “Our selection underscores CU-Boulder’s long history as a national leader and innovator in the STEM education field, and positions us well to create new generations of STEM educators and researchers.”\nCU-Boulder’s initiative, which will be run out of the university’s recently formed Center for STEM Learning, will focus on working with faculty who teach undergraduate STEM classes to help them objectively assess the success of their teaching methods. The evaluations will complement the more subjective student course evaluations filled out at the end of a semester.\nThe grant money will be used, in part, to hire project staffers who will help participating faculty members interpret the newly collected evaluation data at the end of each semester and then make a plan to improve their teaching methods in the future.\n“We want to recognize that research and teaching are not in competition but, in fact, are complementary activities,” said CU-Boulder physics Professor Noah Finkelstein, a director of the Center for STEM Learning. “The excellence to which we strive as faculty is a habit of mind applied to all our endeavors at the university.”\nTypically, research and teaching are both formal requirements of a professor’s position, but research has been valued more in the university culture, Finkelstein said. Research has also traditionally been easier to evaluate.\nMeasures such as number of publications, frequency of study citations and grant amounts are often used to determine the quality of a faculty member’s research. By comparison, the leading tool for evaluation of a faculty member’s teaching has been end-of-course student evaluations, a measure that is not especially helpful for teasing out how effective a particular course was in meeting all the learning objectives, Finkelstein said.\nOver the last decade, CU-Boulder and other leading universities have developed a suite of tools that can more reliably measure the impacts of particular educational practices. The new project will work with faculty on a voluntary basis to find the most appropriate evaluation tools and implement them in their classrooms.\nThe eight campuses participating in the AAU’s new STEM initiative were chosen from 31 applications. The seven other campuses are Brown University, Michigan State University, University of Arizona, University of California, Davis, University of North Carolina at Chapel Hill, University of Pennsylvania and Washington University in St. Louis.\nThe AAU initiative received a three-year, $4.7 million grant from The Leona M. and Harry B. Helmsley Charitable Trust last October. The initiative also received a two-year, $284,000 grant from the National Science Foundation in May.\n“We have reached an exciting milestone in our initiative,” said AAU President Hunter Rawlings. “With the strong support provided by the Helmsley Trust, these eight project sites will each begin—or in some cases continue—to institutionalize evidence-based teaching in STEM fields. These changes will make teaching and learning far more interactive and participatory, and we hope will enhance overall student learning in STEM fields and reduce the number of students who choose to drop out of these majors.”\nThe Association of American Universities is an association of 60 U.S. and two Canadian research universities organized to develop and implement effective national and institutional policies supporting research and scholarship, graduate and professional education, undergraduate education, and public service in research universities.\nThe Leona M. and Harry B. Helmsley Charitable Trust aspires to improve lives by supporting effective nonprofits in a variety of selected areas. Since 2008, when the Trust began its active grant making, it has committed more than $900 million to a wide range of charitable organizations. Through its National Education Program, the Trust views education as a lever to advance both American economic competitiveness and individual social mobility. In K-12, the Trust focuses on ensuring all students graduate high school prepared for college or careers by supporting teacher effectiveness and the implementation of high academic standards. In postsecondary education, the Trust is primarily interested in increasing the number of Science, Technology, Engineering and Mathematics (STEM) graduates who can participate in high growth sectors of the economy. The Trust also focuses on policy levers that improve postsecondary completion, particularly for underrepresented populations. For more information, please visit http://www.helmsleytrust.org."} -{"text": "What: Boulder police Chief Mark Beckner briefs City Council on elk shooting\nWhen: 6 p.m. Tuesday\nWhere: Boulder Municipal Building, 1777 Broadway\nThe towering elk shot at Mapleton Avenue and Ninth Street by a Boulder police officer has been dead for almost a week, but the furor surrounding the animal's demise is still very much alive.\nBoulder police Chief Mark Beckner addressed the elk's death and answered questions Monday at a community meeting requested by residents of the neighborhood where the elk was killed, with some of those residents calling the shooting a \"murder.\"\n\"I know there is a lot of emotion around this issue,\" Beckner told about 70 people who gathered at the city's Public Safety Building on 33rd Street.\nOn New Year's Day, an officer on patrol at Ninth and Mapleton told police he encountered an injured elk that he determined needed to be put down. The officer killed the elk with a shotgun, then called an off-duty police officer who took the meat home to be processed. An on-duty Boulder County sheriff's deputy also helped load the animal into a truck.\nBut the Boulder police officer never reported the shooting and never told dispatchers about the incident. The two Boulder officers -- Sam Carter and Brent Curnow -- have been placed on paid leave as the Boulder Police Department conducts an internal investigation.\nWhen asked if he believed the officer's story, Beckner said he didn't have enough facts to determine that, but added that there were enough facts to open the internal investigation.\n\"If we didn't think there were issues, we would not be investigating,\" he said. \"It appears policies and procedure weren't followed. Now we need to either prove or disprove that.\"\nBut some members of the crowd did not take the same approach, with one comparing the paid leave to putting \"murderers on vacation.\" Beckner also said he has received e-mails from people going as far as asking that the officers involved be executed.\nThe chief urged residents to let the investigation play out.\n\"We take the stance that everyone is innocent until proven guilty,\" he said. \"But if that officer needs to be fired, I assure you he will be fired.\"\n'Going to have more training'\nBeckner said putting down an injured animal is not unusual for the police department and officers are trained to know how and when to euthanize injured wildlife. But he quickly added, \"Believe me, we're going to have more training.\"\nMany people in the crowd testified that the elk was never aggressive. Beckner said police did get a call on Dec. 26 from a mailman who reported being trapped on a porch in the area by the animal. But one woman read an e-mail she claimed was from the mailman saying the incident was overblown.\nBeckner reminded the crowd that the criminal investigation was being handled by Colorado Parks and Wildlife, not his own department.\nHe added that he would be concerned if the shooting was not warranted.\n\"We don't want our officers out there shooting animals if they don't have to,\" he said.\nRita Anderson with In Defense of Animals said the shooting should prompt policy changes in the department. She said violence toward animals was an indicator of violence toward people.\n\"They should have to go through an evaluation,\" she said.\nWhile Beckner said there is always room to improve, he said he didn't think the incident called for any massive changes to the department's policy.\n\"If they want to shoot something, protocol is not going to stop them,\" Beckner said of his officers.\nMeeting with City Council\nBeckner also plans to address the Boulder City Council at the beginning of Tuesday night's regular meeting. The council convenes at 6 p.m. in the Boulder Municipal Building, 1777 Broadway.\nBoulder Mayor Matt Appelbaum said last week that the council doesn't have the authority to order discipline for individual officers, but, as the voice of the community, council members do want answers about how the police department handles such cases.\nIn an e-mail to other City Council members Monday, Councilman Macon Cowles said he wants detailed information about police officers' contracts and how decisions are made about paid versus unpaid administrative leave, as well as information about how police would have handled a similar allegation involving civilians.\n\"This question is fundamental, and it is at the root of much of the public comment about the incident,\" Cowles wrote.\nCamera Staff Writer Erica Meltzer contributed to this report.\nContact Camera Staff Writer Mitchell Byars at 303-473-1329 or firstname.lastname@example.org."} -{"text": " self._eos_token_ids.append(tokens[0])\n self._accumulated_content = \"\" # Track content we've already sent to client\n self._streaming_parser = StreamableParser(self.ENCODING, Role.ASSISTANT)\n self._last_processed_token_count = 0\n\n def next_buffered_stream(self, flush: bool = False, usage: dict | None = None, feature_layers=None):\n if self.init_message:\n self.init_message = False\n first = self._format_init_message()\n if first is None:\n return None\n # else: we have a valid init message, continue processing\n # Add prompt_token_ids to the first choice\n prompt_token_ids = self._get_prompt_token_ids_for_first_chunk()\n if prompt_token_ids:\n first.prompt_token_ids = prompt_token_ids\n init_kwargs = self._build_streaming_overwrite_kwargs(choice=None, usage=None)\n return [\n self.serialize(r)\n for r in self.create_streaming_response(\n self.request_id, self.model_name, self.request_time, [first], **init_kwargs\n )\n ]\n # else: not init message, continue with normal streaming\n\n if not self.buffer:\n return None\n # else: we have buffer content to process\n\n now = time.perf_counter_ns()\n if not flush and (now - self.last_flush_ns) // 1_000_000 < self.stream_buffer_ms:\n return None\n # else: we should flush now (either forced flush or time threshold reached)\n\n choice = firetext.Choice.reduce(self.buffer)\n self.buffer.clear()\n self.last_flush_ns = now\n deltas = self._format_streaming_choice(choice)\n if not deltas:\n return None\n # else: we have deltas to send\n # Add prompt_token_ids to the first choice\n prompt_token_ids = self._get_prompt_token_ids_for_first_chunk()\n if prompt_token_ids and deltas:\n deltas[0].prompt_token_ids = prompt_token_ids\n kwargs = self._build_streaming_overwrite_kwargs(choice, usage, feature_layers)\n packets = self.create_streaming_response(self.request_id, self.model_name, self.request_time, deltas, **kwargs)\n return [self.serialize(p) for p in packets]\n\n def _format_streaming_choice(self, choice: firetext.Choice):\n out: List[ChatCompletionResponseStreamChoice] = []\n deltas = self._process_harmony_tokens(choice.token_ids, choice.index)\n out.extend(deltas)\n\n if choice.finish_reason:\n if self._processed_tool_calls:\n final_finish_reason = \"tool_calls\" # Use \"tool_calls\" even if JSON is invalid\n else:\n final_finish_reason = choice.finish_reason\n out.append(\n ChatCompletionResponseStreamChoice(\n index=choice.index,\n delta=DeltaMessage(),\n finish_reason=final_finish_reason,\n raw_output=self._format_raw_output(),\n )\n )\n # else: no finish_reason yet, continue streaming without final message\n\n return out\n\n def _process_harmony_tokens(\n self, tokens: List[int], choice_index: int\n ) -> List[ChatCompletionResponseStreamChoice]:\n \"\"\"Process harmony tokens directly using StreamableParser and extract deltas.\"\"\"\n deltas = []\n\n try:\n new_tokens = tokens\n\n for token in new_tokens:\n self._streaming_parser.process(token)\n current_channel = self._streaming_parser.current_channel\n current_recipient = self._streaming_parser.current_recipient\n current_content = self._streaming_parser.current_content\n content_delta = self._streaming_parser.last_content_delta\n\n # Handle tool call streaming\n if current_recipient and current_channel != \"final\":\n # Check if this is a new tool call\n # TODO bchen: this will fail if there are multiple tool calls in the same message;\n # validate when the model is here to see how to handle parallel tool calls correctly\n if (\n not self._current_tool_call_state\n or self._current_tool_call_state[\"recipient\"] != current_recipient\n ):\n # New tool call started\n tool_name = _extract_tool_name(current_recipient)\n\n call_id = _generate_call_id()\n self._tool_call_index += 1\n\n self._current_tool_call_state = {\n \"recipient\": current_recipient,\n \"tool_name\": tool_name,\n \"call_id\": call_id,\n \"index\": self._tool_call_index - 1,\n \"content_length\": 0,\n "} -{"text": "Joseph Smith, Jr. (1805 - 1844) was the founder and 1st President of the Church of Jesus Christ of Latter-day Saints. Joseph Smith was the first prophet, seer and revelator of the church. Joseph was born on December 23, 1805 in Sharon, Vermont.\nAfter hearing the conflicting claims of different Protestant preachers, Smith studied the Bible for himself. He decided to ask God which church he should join. In the Spring of 1820, Joseph said that he saw two beings, God (meaning the Father) and Jesus, in a vision. Smith claimed to have been repeatedly visited by an angel named Moroni, from 1823 to 1827. According to Smith's account, Moroni showed him where to find buried gold plates. The plates were said to contain the full gospel of Jesus Christ in \"reformed Egyptian\" (a language which few, if any non-Mormon, believes ever existed). Smith claimed to have translated these gold plates by the inspiration of God, using a set of unusual spectacles that were also furnished to him for the purpose. He published the translation in 1830 as the Book of Mormon. The plates are not available for examination because, according to Smith, the angel took them after the translation was completed. One of Smith's earliest followers and co-workers had previously worked in a publishing office where he may have had access to the manuscript of a novel that told the story of lost tribes in America.\nIt was claimed that, on May 15, 1829, the resurrected John the Baptist appeared to Joseph and Oliver Cowdery and gave them the authority to baptize. In 1829 the apostles Peter, James, and John gave them the authority to restore Christ's Church.\nSmith married Emma Hale (daughter of Isaac Hale) in 1827 against her father's wishes. A judge in South Bainbridge, New York married them. This angered her father, who said to Smith “You have stolen my daughter and married her. I had much rather have followed her to the grave.”\nLater, in Nauvoo, Joseph Smith founded an impressive militia, announced his intention to run for President of the United States, and tried to establish polygamy. Between 1841 and 1843, Joseph married more than thirty wives although he kept the practice hidden from the public and from Emma. In order to cause Emma to accept his additional wives, Joseph claimed to receive a revelation regarding this “new and everlasting covenant” of plural marriage, partly directed at Emma - Doctrine and Covenants 132:\nD&C 132:1 Verily, thus saith the Lord...\nD&C 132:4 ...no one can reject this covenant and be permitted to enter into my glory.\nD&C 132:52 And let mine handmaid, Emma Smith, receive all those [wives] that have been given unto my servant Joseph...\nD&C 132:55 But if she will not abide this commandment, then...I will...give unto him an hundred fold in this world, of...wives...”\nD&C 132:62 And if he have ten virgins given unto him...he cannot commit adultery...\nD&C 132:64 ...if any man have a wife...and he teaches unto her [this] law...then shall she believe and administer unto him, or she shall be destroyed...\nDespite the document's stipulation that the multiple wives be \"virgins\", Smith unabashedly married eleven women who had current marriages to other men (who were still alive at the time of each woman's marriage to Smith).\nSmith's wives (and their husbands) were: Emma Hale, Fanny Alger (16 years old), Lucinda Morgan Harris (married to George W Harris), Louisa Beaman, Zina Huntington Jacobs (married to Henry Jacobs), Presendia Huntington Buell (married to Norman Buell), Agnes Coolbrith, Sylvia Sessions Lyon (married to Windsor Lyon), Mary Rollins Lightner (married to Adam Lightner), Patty Bartlett Sessions (married to David Sessions), Marinda Johnson Hyde (married to Orson Hyde), Elizabeth Davis Durfee (married to Jabez Durfee), Sarah Kingsley Cleveland (married to John Cleveland), Delcena Johnson, Eliza R. Snow, Sarah Ann Whitney (17 years old), Martha McBride Knight, Ruth Vose Sayers (married to Edward Sayers), Flora Ann Woodworth, Emily Dow Partridge, Eliza Maria Partridge, Almera Johnson, Lucy Walker (17 years old), Sarah Lawrence (17 years old), Maria Lawrence, Helen Mar Kimball (14 years old), Hanna Ells, Elvira Cowles Holmes (married to Jonathan Holmes), Rhoda Richards, Desdemona Fullmer, Olive Frost, Melissa Lott, Nancy Winchester (14 years old) and Fanny Young.\nAlthough there is some historic indication that Smith married more women than those listed here (such as Clarissa Reed Hancock, the mother of John Reed Hancock), the evidence is not conclusive.\nImprisonment and Death\nSmith had been imprisoned in Carthage, Illinois for destroying the printing press of the Nauvoo Expositor. The Expositor had denounced (in its only printed edition) \"false doctrines\" (for instance the \"doctrines of many gods\") and Smith had then had the printing press burned in the street. In retaliation, an angry mob broke into the prison on June 27, 1844. In an attempt to defend himself (with a pistol which had been smuggled in to him), Smith shot and wounded three men. He was apparently preparing to jump from the unbarred second floor window where he had been incarcerated, but was shot, causing him to fall injured to the ground below. Four men shot him to death on the ground. None was convicted. His brother Hyrum (who was also armed with a pistol) was shot in the face and killed during the same gun-battle.\n- The First Vision Mormon.org\n- Translation of the Book of Mormon Mormon.org\n- Authority to baptize Mormon.org\n- Authority of Apostles Mormon.org\n- MORMON ENIGMA: EMMA HALE SMITH (Newell & Avery, University of Illinois Press, Urbana and Chicago, 1994)\n- Family Search Familysearch.org\n- Wives of Joseph Smith WivesofJosephSmith.org\n- Martyr for God JosephSmith.net"} -{"text": "WASHINGTON, Oct. 13 /PRNewswire/ -- A Florida state attorney is\ninvestigating thousands of potentially fraudulent voter registrations\nassociated with the leading organizer of Florida's Amendment 5 ballot\ninitiative. But this is just the tip of an iceberg of illegalities, fraud and\ncontradictions connected to the Association of Community Organizations for\nReform Now (ACORN). In recent days, ACORN has been at the epicenter of\nreports on thousands of potentially fraudulent voter registrations across the\nnation -- including many by ex-felons -- submitted by ACORN employees in the\npresidential swing states of Ohio, Colorado, Missouri Pennsylvania, New Mexico\nThe Employment Policies Institute has updated and re-released its report,\n\"The Real ACORN: Anti-Employee, Anti-Union, Big Business\" with the latest\ndetails on ACORN's involvement in what appears to be widespread voter\nregistration fraud. The report includes statements from former ACORN\nemployees on the illegal nature of the organization's promotion of the ballot\ninitiative to raise Florida's minimum wage to $6.15 per hour.\n\"This report reveals ACORN's pattern and practice of deception and fraud,\"\nsaid EPI research director Craig Garthwaite. \"The latest allegations of\nwidespread voter registration fraud should prove to be the last of ACORN's\nnine political lives.\"\nFormer ACORN Miami-Dade field director Mac Stuart has declared an intent\nto sue ACORN and has made charges of rampant voter fraud operations. Stuart\nwas employed and specifically tasked by ACORN to generate 103,000 new voter\nregistrations from Dade County. He reports that ACORN threw out Republican\nregistrations while paying for Democratic ones. Stuart also charges that\nACORN targeted ex-cons and that he personally set up registration tables\noutside the Miami police department and Dade County jail. He went on to\nstate, \"The voter registration project has been operating illegally since it\nACORN has paid workers for every voter registration card collected -- a\nfelony in Florida and also illegal in Missouri and Pennsylvania. ACORN also\nroutinely accepted signatures for Amendment 5 from individuals who were not\ncurrently registered to vote -- a requirement under Florida law.\nVoter registration and petition fraud is just the latest chapter in\nACORN's long sordid history. The EPI report also reveals:\nACORN Involved in Union Embezzlement -- In the late 1990s, ACORN's Project\nVote was involved in an $850,000 embezzling scheme, where union funds and\nkickbacks were used to illegally aid the 1996 re-election bid of then-\nTeamsters President Ron Carey. A New York federal jury found the Teamsters\npolitical director guilty of the conspiracy.\nACORN bilks AmeriCorps -- In 1996, the Inspector General of the AmeriCorps\nprogram stripped a $1 million grant from the ACORN Housing Corporation (AHC).\nWhen applying, AHC had denied any connections to ACORN, since the grant was\nnot intended for political advocacy organizations. Evidence later uncovered\nby the Inspector General found that not only was AHC created by ACORN, engaged\nin numerous transactions with one another, and sharing staff and office space\n-- but it utilized the AmeriCorps grant to increase ACORN membership, a\nviolation of federal guidelines.\nACORN Union-Busts Own Workers -- On March 27, 2003 the National Labor\nRelations Board (NLRB) found that ACORN had violated the National Labor\nRelations Act and was required to rehire and pay restitution to employees\nterminated for attempting to form a union. The NLRB ruling is just the latest\nin a trend of ACORN's union-busting tactics. ACORN employees have\nhistorically demanded higher wages, safer working conditions and more timely\ncontracted wages. These efforts have been repressed behind closed doors by\nthe hypocritical ACORN leadership, which publicly advocates higher pay and\nbetter working conditions for private sector workers.\nACORN and Minimum Wage Hypocrisy -- Most egregiously, ACORN promotes\nballot initiatives and local ordinances to force businesses to pay higher\nminimum wages, as they are currently doing with the minimum wage proposal in\nAmendment 5. In 1995, however, ACORN sued the state of California to have its\nemployees exempted from the state minimum wage. ACORN argued that being\nforced to pay higher wages would mean that they would hire fewer employees --\nthe very dilemma faced by businesses. Incredibly, ACORN stated that paying\nits employees a lower wage would allow them to be more sympathetic to the low-\nand moderate-income families they were attempting to help. ACORN argued that\nabiding by the state minimum wage would limit their ability to promote their\nagenda and would therefore be a violation of their First Amendment rights.\nThe trial court judge dismissed ACORN's suits, stating, \"leaving aside the\nlatter argument's absurdity ... we find ACORN to be laboring under a\nfundamental misconception of constitutional law.\"\n\"ACORN's history of voter registration fraud, hypocrisy, abuse of federal\ngrant programs, and disregard for sound economics should raise a red flag for\nvoters considering support for Amendment 5,\" Garthwaite said.\nThe full report is available online at http://www.EPIonline.org\nThe Employment Policies Institute is a nonprofit research organization\ndedicated to studying public policy issues surrounding entry-level employment."} -{"text": " }\n\n # Emit tool call name first\n deltas.append(\n ChatCompletionResponseStreamChoice(\n index=choice_index,\n delta=DeltaMessage(\n tool_calls=[\n ChatCompletionMessageToolCall(\n index=self._current_tool_call_state[\"index\"],\n id=call_id,\n type=\"function\",\n function=ChatCompletionMessageToolCallFunction(name=tool_name),\n )\n ],\n ),\n )\n )\n # else: continuing with existing tool call state, no new tool call setup needed\n\n # Stream incremental arguments if there's content growth\n if current_content and len(current_content) > self._current_tool_call_state[\"content_length\"]:\n # Get the incremental content\n start_pos = self._current_tool_call_state[\"content_length\"]\n incremental_args = current_content[start_pos:]\n self._current_tool_call_state[\"content_length\"] = len(current_content)\n\n # Note: We don't validate JSON during streaming since it's incomplete\n # JSON validation happens only when tool call is complete to avoid false errors\n\n # Emit incremental arguments\n if incremental_args:\n deltas.append(\n ChatCompletionResponseStreamChoice(\n index=choice_index,\n delta=DeltaMessage(\n tool_calls=[\n ChatCompletionMessageToolCall(\n index=self._current_tool_call_state[\"index\"],\n type=\"function\",\n function=ChatCompletionMessageToolCallFunction(\n arguments=incremental_args\n ),\n )\n ],\n ),\n )\n )\n # else: no incremental args to emit (empty increments are expected during streaming)\n # else: no content growth, continue processing without emitting incremental args\n\n # Track processed tool calls for finish_reason logic\n clean_content = current_content\n if self._current_tool_call_state[\"index\"] >= len(self._processed_tool_calls):\n self._processed_tool_calls.append(\n ChatCompletionMessageToolCall(\n index=self._current_tool_call_state[\"index\"],\n id=self._current_tool_call_state[\"call_id\"],\n type=\"function\",\n function=ChatCompletionMessageToolCallFunction(\n name=self._current_tool_call_state[\"tool_name\"], arguments=clean_content\n ),\n )\n )\n else:\n # Update existing processed tool call\n self._processed_tool_calls[self._current_tool_call_state[\"index\"]].function.arguments = (\n clean_content\n )\n\n # Handle regular content streaming (non-tool-call content)\n elif content_delta:\n is_final_channel = current_channel == \"final\"\n is_analysis_channel = current_channel == \"analysis\"\n is_commentary_channel = current_channel == \"commentary\"\n\n if is_final_channel or is_commentary_channel:\n # Send as regular content\n deltas.append(\n ChatCompletionResponseStreamChoice(\n index=choice_index, delta=DeltaMessage(content=content_delta)\n )\n )\n elif is_analysis_channel:\n # Send as reasoning_content\n deltas.append(\n ChatCompletionResponseStreamChoice(\n index=choice_index, delta=DeltaMessage(reasoning_content=co"} -{"text": "Home Office Redux\nWith more and more people turning spaces in their homes to office space, we’re starting to have inquiries on what steps one should take to make a work space that they can be productive in. Working from home often times proves to be difficult for many people, its easy to lose concentration when you are inhabiting the same structure that has previously only been used for comfort and relaxation. The easiest way to accomplish separation from work and living, is obviously to allow for actual physical separation.\nRegardless of the ability to separate the office functions from the living, there’s also the necessity for mental separation, a sense that defines the area as a work space that makes one want to be productive. This can be accomplished in numerous ways and often times depends on budget. One of the most cost effective solutions is simply color. Studies have shown that light colors, such as off whites and lighter tones work well in production areas, but remember that your personal comfort level also enhances the level of your productivity. The ability to have natural light in the work area is certainly a good thing, but with computer screens and other equipment, the ability to control the amount of natural light that enters the space is key.\nAnother key to a productive workspace is to reduce the amount of clutter. Having a space for files, papers, and supplies allows for more efficiency and also opens up the space visually. Typically if you’re turning an existing space into an office, then the room was not originally designed for a work space in mind. Often times people are turning small areas of the house into work spaces, so the larger you can make the room feel, the better you’ll feel working in it. Use furniture to your advantage, there are many well designed, great looking storage solutions out there.\nAgain, don’t be hesitant to bring your own personality into your home office, it’s your work space and you don’t have to worry about upsetting any of the coworkers. The happier you are, the more productive you should be.\nBelow is an existing home office that our client felt was long overdue for a make over. As you can see, the room gets quite a bit of natural light, but is very cluttered because of the lack of storage. It has also become a little outdated because of the stained tongue and groove wood, curtains, and beige carpeting. Not to mention the CRT monitor. Also problematic is the layout of the room, it is very thin and surrounded by doors and windows, so the majority of the “stuff” has been pushed to one end and the desk has been slid against the wall, with the client’s back against the windows. He has essentially, because of the type of desk, turned his back on the view and created a problem with the glare from the windows on his computer screen. Another reason for the renovation is the need to have the occasional client to the office, which with this layout would be difficult.\nWorking with budget restraints that only allowed us to work in the footprint of the existing space, the majority of the funds went into finding ways to make the space feel as open as possible, but providing the maximum amount of storage as possible while bringing the look and feel of the office current.\nWe turned to IKEA for the storage solutions, their EFFEKTIV combinations allowed for low storage along the bottom of the large windows, without distorting the view or the natural light and a taller unit combination was used at the entry. The GALANT system desk, turned against the flow of the space allows the user to have a view to the windows, reduces the glare on the computer screen, and provides a seating area for a visiting client.\nThe stained tongue and groove wall and trim has been painted out white and a little bit of personality has been added in the form of FLOR modular carpet tiles.\nSee this dreary cramped work area become an open, clean, efficient space for the modern person working from home in the slide show below:"} -{"text": "This is a follow up to a post that I made last month regarding how you can use MySpace to market your T-shirt designs. I continue with the social network theme and describe 5 handy tips of how you can utilize the micro-blogging tool, Twitter, to maximize exposure of your personal brand.Â\n1. Engage in conversation. This tip is probably the most important when trying to use Twitter to gain exposure for your brand. The more you interact with the people you follow and your followers the more engrained you will become in the collective conscious. The more you @ reply and dm (direct message) people the greater the chance that they will remember who you are. The ultimate goal is not only to build on the relationships of those you follow but for you to develop strong relations with your followers.\n2. Automate Twitters Across Platforms. It doesn’t make sense for you to tweet a message and then type out the same message to update your status on other platforms like Facebook, FriendFeed and Pownce. Make these platforms work with each other. For instance, every time you make a tweet you can instantly have your Facebook status updated with the same message. Similarly, when you Pownce, you can have that Pownce message automatically made into a tweet. FriendFeed is a cool aggregator of social networks so you can have your tweets automatically appear in your FriendFeed profile as well. Now instead of typing the same thing 4 times across 4 different platforms, you just need to do it once.Â\nTo auto update your Facebook status with your most recent Twitter tweets:\n1. Install the Twitter for Facebook application\n2. In the Twitter for Facebook applicationÂ\n3. Click the “Allow Twitter to Update Your Facebook Status” button just above the text box.\nCheck this post out to see how you can sync Twitter with Pownce.Â\n3. Friend Up. Do you have a particular niche that you’re interested in? Let’s take for example T-shirts. If you blog about T-shirts then it would make sense for you to be friends with people on Twitter who are also interested in the T-shirt culture. Here’s what you can do, you can actually search Twitter by going to search.twitter.com. Look up key words related to your niche. For instance, I am interested in tees so I did a Twitter search of people talking about Emptees and Threadless. Once you find these people, follow them. Chances are that they will follow you and then get your Twitter updates as a result. Now that you’ve found these people, chances are they are friends with other people interested in T-shirts, so be sure to check out who they follow as well. Also remember to search for friends feature in Twitter to check your email (i.e. Gmail) for contacts who are already on registered on Twitter. Find your audience and be friends with them. Feel free to add me @cotygonzales!\n4. Sync Blog Posts. This is a no brainer. Every time you make a new blog post, tweet about it. Again, you can automate this process, however, for this instance I do not. I always provide a personal message quickly describing the post and make it sound interesting (hopefully increasing the chances that my followers will click on the link) instead of having just a generic automated link to the blog post. However, if you decide to take the automated approach, check out Twitter Tools for WordPress, it allows you to sync your blog with Twitter and provides different ways of displaying your tweets on your blog.Â\n5. Be Interesting, Fun and Tweet Outside Your Niche. It’s important for you to Twitter about things related to your blog (see Tip #4) but it also important to tweet about things unrelated to your blog. People like out-of-nowhere tweets that raise an eyebrow or two. Tweet about random and fun things that happen to you throughout your day. Random posts remind people that you are human and not just a robot spamming Twitter with links to your blog!\nTwitter is powerful. Learning to harness that power will unleash an invaluable tool for anyone trying to develop a name or brand for themselves in this increasingly social-centered Internet.\nBy the way, here are some Twitter T-shirts that might peak your interest!\nYou can also find more Twitter themed tees at Eat Sleep Tweet!"} -{"text": "ntent_delta)\n )\n )\n else:\n # TODO: add a test to cover this case invalid_channel\n raise UserError(f\"Invalid channel: {current_channel}\")\n\n else:\n # This should never happen, so adding an exception here\n if content_delta:\n raise UserError(f\"Content delta '{content_delta}' without recipient context\")\n # else do nothing, expected\n\n except Exception as e:\n logging.exception(f\"Failed to process harmony tokens: {tokens}\")\n raise\n\n return deltas\n\n def _is_tool_call_message(self, msg) -> bool:\n return (\n hasattr(msg, \"recipient\")\n and msg.recipient\n # Some models may hallucinate a 'final' channel while also emitting a recipient.\n # Such cases should be treated as normal content (not a tool call), so we exclude 'final'.\n and getattr(msg, \"channel\", None) != \"final\"\n and msg.recipient != \"all\" # != all is needed, any specific recipient could be a tool\n )\n\n def _extract_message_text(self, msg) -> str:\n \"\"\"Shared helper to extract text content from a harmony message.\n\n This reduces duplication between streaming and non-streaming parsing logic.\n \"\"\"\n message_text = \"\"\n if hasattr(msg, \"content\") and msg.content:\n for content_item in msg.content:\n if hasattr(content_item, \"text\"):\n message_text += content_item.text\n # else: content_item doesn't have text attribute, skip it\n return message_text\n\n def _extract_content_from_messages(self, messages) -> tuple:\n \"\"\"Extract content and reasoning_content from harmony messages.\n\n Uses shared helper methods to reduce duplication between streaming and non-streaming parsing.\n Returns (content, reasoning_content) tuple.\n \"\"\"\n final_content = \"\"\n analysis_content = \"\"\n\n for msg in messages:\n if (\n hasattr(msg, \"author\")\n and hasattr(msg.author, \"role\")\n and str(msg.author.role) == \"Role.ASSISTANT\"\n and hasattr(msg, \"channel\")\n and msg.content\n ):\n message_text = self._extract_message_text(msg)\n\n if msg.channel == \"final\":\n final_content += message_text\n elif msg.channel == \"analysis\":\n if not self._is_tool_call_message(msg) and message_text.strip():\n analysis_content += message_text\n elif msg.channel == \"commentary\":\n # Commentary channel can contain both tool calls and preambles.\n # Only extract text content if this is NOT a tool call (preamble case).\n if not self._is_tool_call_message(msg) and message_text.strip():\n # This is a preamble - user-facing content that should be shown\n final_content += message_text\n # else: this is a tool call in commentary channel, ignore for content extraction\n else:\n # Unknown channel - this should be rare but handle gracefully\n import warnings\n\n warnings.warn(f\"Unknown channel '{msg.channel}' encountered, ignoring content\")\n else:\n # Message doesn't match expected structure - log but don't fail\n if hasattr(msg, \"author\") and hasattr(msg, \"channel\"):\n import warnings\n\n warnings.warn(\n f\"Message with role '{getattr(msg.author, 'role', 'unknown') if hasattr(msg, 'author') else 'no_author'}' and channel '{msg.channel}' doesn't match expected structure\"\n )\n\n content = final_content if final_content else None\n reasoning_content = analysis_content if analysis_content else None\n return content, reasoning_content\n\n def _format_non_streaming_choice(self, choice: firetext.Choice):\n \"\"\"Format complete harmony response for non-streaming mode.\"\"\"\n tool_calls: List[ChatCompletionMessageToolCall] = []\n content: Optional[str] = None\n reasoning_content: Optional[str] = None\n\n try:\n # Use batch parser instead of StreamableParser to avoid parsing bugs\n # Parser chokes on EOS token being present at the very end\n tokens = choice.token_ids[:]\n while tokens and tokens[-1] in self._eos_token_ids:\n tokens.pop()\n messages = self.ENCODING.parse_messages_from_completion_tokens(tokens, role=Role.ASSISTANT)\n content, reasoning_content = self._extract_content_from_messages(messages)\n harmony_tool_calls = []\n for msg in mess"} -{"text": "Tip #1: Index CardsFor every subject you're studying, write down key facts and figures on a set of index cards. By carrying these cards around with you, you'll be able to refer to them during spare minutes and other down time, enabling you to study on the bus, on the toilet, or while going to the toilet on the bus.\nTip #2: Highlighter Use a highlighter to color words in your books. This will make it feel like you're actually studying. Actually studying involves reading the words, which is also good, but much more time consuming, and frankly discriminatory against people who don't want to read.\nTip #3: Study Group Try joining a study group to help you prepare for exams. Assign sections of the material to each person in the group, then make that person provide a summary of the key information in that section to the rest of the group. Because the effectiveness of this technique depends on the people involved, finding the right study group is important. An easy trick for this: if you can't tell which one of your study friends is the dumb one, then it's probably you. This is thus an excellent study group for you.\nIn exam-mad Japan, study groups have complicated rituals.\nTip #4: Not Kidding Anyone It's time to just admit that you're hosed. There is no chance at all that you'll be able to pull this off, and if we're being honest, you'd probably be better off smacking yourself in the crotch with a hammer labeled \"Self-Deception\" then you would be by studying. With that taken as fact, the smartest thing you could do right now is just give up and stop wasting your time. Congratulations on making a very grown up decision.\nTip #5: The Shame But having come to that very mature decision, you can just picture your dad. And he's not one of the \"I'm just disappointed in you\" types. FATHER: -angry- You spent twenty eight thousand dollars to jerk off and play video games? Don't answer me. I don't want to know the truth. I doubt it's better. In fact I think I'm actually being pretty charitable describing your life. Yeah, you honestly can't live through several decades of that. So maybe it's time to buck up and find an alternative solution. Study-Ho!\nTip #6: Hot For Teacher (for the right price) You honestly have very little to lose from at least asking to nail your professor in exchange for a better grade. If the professor isn't agreeable to it, offer to pleasure their spouse, thus freeing up your professor's valuable time for more research. Be sure to bring along a \"Sexin' Resume\" to further establish your credentials.\nTip #7: Bomb Threats For the reasons described above (dads, yelling) bomb threats have become nearly ubiquitous on college campuses during exam season. Many authorities won't even delay exams upon receiving a threat now, unless they perceive the threat is in some way credible. So, make your threat credible by blowing up a smaller, less important building earlier in the week. The drama building for example.\nTip #8: The Ringer Browse your local dating website looking for people with pictures that look somewhat like you. Pretending to be someone else, Wink/Whisper/Poke/Diddle them to start a dialog, and over the course of a few private messages, see how smart they are. Eventually work the conversation around to them writing an exam under a false name in exchange for some sort of sexual favor. The success rate of this will depend sharply on how desperate people who look like you are for companionship.\nTip #9: Technology Use computers in some way to cheat. Cell phones and such are usually strictly forbidden during exams, but there are ways to use technology to get an edge. Try wrapping some C4 to a computer monitor, and pushing it into the elevator shaft of your chemistry building. Poof, instant delayed exam.\nTip #10: An Offer They Can't Refuse After writing your exam, loiter around the exam room, attempting to be the last one to hand it in. When you do, shake the professors hand, thanking her for teaching a good class. Use this opportunity to slip her some cash, or a note threatening her cat's life. \"Why did you write this using cut out magazine letters?\" she asks. \"I clearly know it was you who wrote it.\" Sprint out of there before she can find any more holes in your plan, and hide under a picnic table until everything blows over.\nTip #11: Illness If you think you actually have a chance to pass this exam, but only if you had more time to study, please refer to the \"Not Kidding Anyone\" tip above. If you still think that way, consider becoming legally ill prior to the exam in order to obtain a doctor's note. Eating uncooked chicken is a pretty good way to do this, but also consider entering an emergency room by dragging your rear end across the floor - the universal sign of irreversible intestinal distress."} -{"text": "If you go\nWhat: Community Recreation Center Steering Committee\nWhen: 7 p.m. March 17\nWhere: Craig City Hall, 300 W. Fourth St.\n• All community members are encouraged to attend.\nAt its Wednesday meeting, the Moffat County Tourism Association:\n• Approved spending $268 to sponsor the KRAI live broadcast of the State Wrestling Tournament on Feb. 19 to 21 in Denver.\n• Approved spending up to $1,800 for four pages of advertising in the Welcome to Craig magazine, published by the Daily Press.\n• Approved spending $529 for various Daily Press advertisements in 2009.\n• Did not approve renewing advertising in RV Journal because board members said they preferred saving money and putting it toward a professional consultant who could advise what advertising is more effective than others.\n• Approved up to $500 for a new printer for MCTA Director Michelle Perry.\nWhen Tony St. John moved with his wife and their three children to Craig around 1980, it was the middle of winter, and there was not much for his children to do.\nSix months later, he became involved with a campaign to bring a YMCA gymnasium to the area. After that failed to materialize, he joined the effort to build an ice arena at Loudy-Simpson Park.\nHe helped start tee ball and soccer programs, and then Trailbusters, a program that provides transportation and all-day ski instruction to local youths.\nAll these initiatives had something in common, St. John told the Moffat County Tourism Association at its Wednesday meeting, something an ongoing effort to build a community recreation center in Craig has not yet had.\nThe YMCA, Ice Arena and other past recreation projects resulted from community partnerships, he said. The Community Recreation Center Steering Committee should get back to that philosophy.\n\"I think we've not been doing it right,\" St. John said. \"This community recreation center needs to be a team effort.\"\nOtherwise, the project may never get out of committee, he added.\nSimilar opposition stood against nearly every other recreation project in recent memory, though time has proven those to be worthwhile community investments, St. John said.\nHe pointed to the City Park wave pool, built around 1985. Many in town rallied against the pool, but thousands of people use it every year.\nWoodbury Park, built in the 1990s, was an unpopular move by the city, but now it joins Loudy-Simpson as a host for Triple Crown Sports, a national youth sports organization.\nLoudy-Simpson itself began as a controversial issue, St. John added, but has become a cornerstone for the local community.\n\"That park has really been a moneymaker for all of us and given our kids something to do,\" he said. \"A recreation center could be the same thing. I really believe that. It will do wonders for our community.\"\nThe MCTA board did not disagree, but members pointed out the group could not provide any funding for a construction project. By county resolution, lodging tax money can be spent only on marketing and advertising, with the exception of funding a visitor center.\n\"We might be able to help you do brochures to promote it, but we can't help you build it,\" MCTA board member Cindy Looper said.\nThe Recreation Center Steering Committee is not asking for money, St. John said, though it would be happy if local organizations or businesses want to contribute.\nIts purpose now is to approach people to support the cause, he said.\nThe MCTA board is willing to look into it.\n\"We do like the concept of the project,\" MCTA Board President Tammie Thompson-Booker said, but she agreed with Looper that funding is a sticking point.\nMCTA board members will not support a move to repeal the county's lodging tax - which supplies the organization's entire budget - in favor of a city lodging tax that will fund a recreation center. State law prohibits cities and counties from having separate lodging taxes in the same area.\nHowever, board members said they would be willing to consider support of a special taxing district, which would not require the county tax be repealed.\nMCTA board member Frank Moe, who co-owns the Best Western Deer Park Inn and Suites, said he would support additional lodging taxes if it also would benefit his business and the local economy.\nNamely, he said he would want any new lodging taxes to go toward a facility with convention space. That could bring in more corporate events and help fill hotels with new guests who would spend money around Moffat County.\nDespite the lack of consensus about funding, St. John left the meeting happy.\nMoe volunteered to attend future Recreation Center Steering Committee meetings, which is what St. John said he wanted.\n\"I feel like we're just starting,\" he said. \"But, maybe we can start pulling the community together on this.\"\nCollin Smith can be reached at 875-1794 or email@example.com"} -{"text": "ages:\n if self._is_tool_call_message(msg):\n # This is a tool call - use shared helper for text extraction\n tool_content = self._extract_message_text(msg)\n\n try:\n import json\n\n json.loads(tool_content.strip()) # Validate JSON\n except (json.JSONDecodeError, ValueError):\n self._has_json_error = True # Signal that we found invalid JSON\n\n harmony_tool_calls.append(\n {\n \"id\": _generate_call_id(),\n \"type\": \"function\",\n \"function\": {\"name\": _extract_tool_name(msg.recipient), \"arguments\": tool_content},\n }\n )\n # else: message doesn't match tool call pattern, skip it\n\n for i, tool_call in enumerate(harmony_tool_calls):\n tool_calls.append(\n ChatCompletionMessageToolCall(\n index=i,\n id=tool_call[\"id\"],\n type=tool_call[\"type\"],\n function=ChatCompletionMessageToolCallFunction(\n name=tool_call[\"function\"][\"name\"], arguments=tool_call[\"function\"][\"arguments\"]\n ),\n )\n )\n\n except Exception as e:\n # Fallback: if Harmony parsing fails (e.g., malformed output from fine-tuned model),\n # return raw tokens as content instead of raising an error\n logging.warning(\n f\"Failed to parse Harmony format, falling back to raw content. Error: {e}. \"\n f\"Raw choice: {repr(choice)}\"\n )\n # Decode raw tokens as fallback content\n try:\n raw_content = self.ENCODING.decode_utf8(choice.token_ids)\n except Exception as decode_error:\n raise Exception(f\"Failed to decode {len(choice.token_ids)} tokens: {decode_error}\")\n content = raw_content\n reasoning_content = None\n tool_calls = []\n\n # Build message\n msg_kwargs = {\"role\": \"assistant\"}\n if content is not None:\n msg_kwargs[\"content\"] = content\n # else: no content to add to message\n if reasoning_content is not None:\n msg_kwargs[\"reasoning_content\"] = reasoning_content\n # else: no reasoning content to add or feature disabled\n if tool_calls:\n msg_kwargs[\"tool_calls\"] = tool_calls\n # else: no tool calls to add to message\n\n msg = ChatMessage(**msg_kwargs)\n\n # Determine finish reason based on tool calls\n if tool_calls:\n finish_reason = \"tool_calls\" # Use \"tool_calls\" even if JSON is invalid\n else:\n finish_reason = choice.finish_reason\n\n return ChatCompletionResponseChoice(\n index=choice.index,\n message=msg,\n finish_reason=finish_reason,\n logprobs=self._format_logprobs(choice.logprobs),\n raw_output=self._format_raw_output(),\n token_ids=choice.token_ids if self.return_token_ids else None,\n )\n\n @classmethod\n def create_streaming_response(\n cls,\n request_id: str,\n model_name: str,\n request_time: int,\n response_choices: List[ChatCompletionResponseStreamChoice],\n **overwrite_kwargs,\n ) -> List[ChatCompletionStreamResponse]:\n # Extract usage from overwrite_kwargs if provided (for final chunk)\n usage_info = get_usage_info(overwrite_kwargs.pop(\"usage\", None))\n\n # Lift prompt_token_ids from first choice to response level\n prompt_token_ids = None\n if response_choices and hasattr(response_choices[0], \"prompt_token_ids\"):\n prompt_token_ids = response_choices[0].prompt_token_ids\n # Remove it from the choice object (it should only be at response level)\n response_choices[0].prompt_token_ids = None\n\n return [\n firetext.api.ChatCompletionStreamResponse(\n **{\n **_common_response_fields(request_id, model_name, request_time),\n **overwrite_kwargs,\n },\n choices=[c],\n usage=(usage_info if c.finish_reason else None),\n perf_metrics=None,\n prompt_token_ids=prompt_token_ids if idx == 0 else None,\n )\n for idx, c in enumerate(response_choices)\n ]\n"} -{"text": "Originally Published: April 18, 2013 10:09 AM\nModified: April 19, 2013 9:13 AM\nSMALL BUSINESS BLOG -- SCOTT SUTTELL\nPainesville's Dyson Corp. silent amid Bay Bridge bolt problems\nOfficials in charge of building a new eastern span of the San Francisco-Oakland Bay Bridge “repeatedly questioned the work and quality control of companies involved in making long seismic safety bolts” — including Dyson Corp.\nin Painesville — that broke while being tightened, according to this\nAssociated Press story.\nLast month, the AP notes, about one-third of the 96 bolts failed, and transportation officials “said it could take months to find the cause and fix the problem, meaning the scheduled Labor Day opening of the new $6.3 billion span could be in jeopardy.”\nHundreds of pages of documents released to news media by the California Department of Transportation, or Caltrans, “show its inspectors found structural integrity issues with some of the bolts several years ago, before they were installed.”\nInspectors said bolts made by Dyson “failed to meet certain standards during testing on three occasions,” according to the AP. Dyson has said it will not comment during the probe into the bolt failures.\nAs far back as October 2008, Caltrans “admonished Dyson after finding that a test sample of bolts did not meet elongation requirements, a measure of the bolts' structural integrity,” the AP reports.\nRecords also show Caltrans inspectors identified other issues with Dyson and its subcontractors.\nFor instance, Cleveland-based Art Galvanizing Works Inc.\n, which put the protective zinc coating on some of the shorter bolts, “was criticized by inspectors for using approximate time guidelines for bathing the bolts,” which David Xu, a mechanical engineer and metallurgist at Berkeley Engineering and Research Inc., tells the AP can affect the integrity of the galvanizing.\nThis and that\nBusinesses small and large should cheer the findings of the latest Federal Reserve Beige Book\nreport, according to this analysis\nAlthough a lot of recent data — the jobs report and consumer confidence numbers most prominently — were discouraging, the new Beige Book survey “shows no signs of a slowdown,” the website notes.\nFrom late February through April 5, the economy expanded at a “moderate” pace, mostly on the back of strong auto sales and a suddenly vibrant housing sector.\n“Growth was strongest in the Cleveland, Richmond, St. Louis, Minneapolis, and Kansas City districts, indicating that the Midwest and Southeast are outpacing the rest of the country,” according to the Fed.Keeping up the fight:\nThe state of Ohio will not go quietly\nin the matter of a court decision that would require the state's workers' compensation fund to reimburse employers $860 million in alleged premium overcharges from 2001 to 2007.\nThe state this week filed an appeal, saying the March 20 ruling by Judge Richard J. McMonagle of Cuyahoga County Common Pleas Court was wrong as a matter of law.\nAccording to court documents, the state “outlines nine reasons the decision should be reversed,” according to PropertyCasualty360.com. Of them, the state says the court erred in calculating damages due the plaintiffs under an “equitable restitution” formula the state alleges is inappropriate.\nThe website notes the case is a class-action lawsuit that has been in the courts since 2007. The core of the dispute is discounted premiums the Ohio Bureau of Workers' Compensation gave companies that joined group insurance plans.\nLawyers for plaintiffs argue the state should just settle the case.\n“Now is the time for the BWC to do the right thing and immediately reimburse these businesses,\" says James DeRoche, a partner at Seaman Garson L.L.C., Cleveland, and a principal lawyer for the employers in the class-action lawsuit. \"If the BWC is truly business-friendly, it will not further delay payment so tens of thousands of small businesses can reinvest those dollars into creating and protecting Ohio jobs.”On the road again: James Gilmore\n, an author/speaker/business consultant from Chesterland, gets to weigh in on his favorite U.S. hotels in this story\nfrom USA Today\nHe's part of the newspaper's panel of “Road Warriors” — some of the world's most frequent travelers who voluntarily provide travel information.\nMr. Gilmore's two picks are both in California: L'Ermitage Beverly Hills and Hotel Vitale in San Francisco.\n\"I love the minimalist design of the guest rooms in both hotels,\" Mr. Gilmore tells USA Today\nThe Bose sound system in the guest room of the L'Ermitage is unmatched for enjoying music in a hotel, he says. \"And I love the heat and motion sensors that allow housekeeping to postpone as long as possible the moment they must finally knock and interrupt one's stay.\"\nAt Hotel Vitale, the views of the Bay Bridge \"are simply wonderful,\" the frequent traveler says.\nYou also can follow me on Twitter for more news about business and Northeast Ohio"} -{"text": "Turn Your Eyes Upon Jesus\n- Lucy Neeley Adams\n- 2015 16 Jun\nWhen I was a little girl I was my dad's favorite date to baseball games. Since no one else in our family wanted to go I felt very special. I loved the smell of popcorn and the sounds of the balls hitting the bat. But I had a secret that I tried to keep to myself.\nMy poor eyesight was that secret. But one night I asked my dad one time too many, \"What's the score?\" He told me all I had to do was look out at the scoreboard in center field. Then my secret had to be shared. \"I can't see that far.\" My mind was full of terrible thoughts. I might need to wear glasses and I was only twelve years old. But that's what happened.\nI wore my new glasses when Dad and I had our next date to the ballpark. I was actually glad I had them. I could see the scoreboard and even beyond. My world was bigger and I saw things I had been missing for months. Through the years my glasses have been a constant companion, and I am thankful for them.\nThere are, of course, more serious eye problems. A friend in our church developed a disease of the nervous system that effected his eyes. Jim could not hold his eye lids open so he appeared to be blind. His whole body was eventually effected with the disease so that he had to use a wheelchair.\nHis mother was his devoted care giver and her grief about him was understandable. It was even more tragic when she kept telling Jim to open his eyes if people spoke to him. He could respond but only with a smile.\nAs the months passed, Jim's mother died of a sudden heart attack. Not too long after her funeral Jim also died..\nWe gathered for the memorial service at our church and several people told about their friendship with Jim. Someone said, \"Jim is having no more trouble with his droopy eyelids is he? He's even looking at the face of Jesus\" (Rev. 22:4a) We smiled as we remembered the desire of his mother that he open his eyes and greet people.\nFor the Christian there is blessed assurance of that heavenly home where there are no more tears and no more sickness. \"And God will wipe away every tear from their eyes, there shall be no more death nor sorrow, nor crying and there shall be no more pain, for the former things have passed away\" (Rev. 21:4).\nWe who live the Christian life can see Jesus through eyes of faith even before we get to heaven. After my born-again experience, I remember the first time I sang a familiar chorus, \"Turn Your Eyes Upon Jesus\" in my church.\nEven though I had attended church every Sunday for years this was different. It felt like everything was new since I had asked Jesus to be my Lord and Savior and I totally surrendered my heart to Him. I was now building a relationship with a real Person.\nTears of joy ran down my cheeks as I sang. Now I knew that this was possible.\n\"Turn your eyes upon Jesus, look full in His wonderful face.\nAnd the things of earth will grow strangely dim,\nIn the light of His glory and grace.\"\nThe truth is that we can see Jesus in our mind's eye. Our resurrected Lord is alive and always waiting for us to look at him and search for His ways.\nThose words of encouragement remind us God does not intend for His children to be encumbered with weariness and troubled thoughts. The things of earth can entangle the mind with fears and anxieties about the future. That is why the first verse begins with a question\"\n\"Oh soul are you weary and troubled? No light in the darkness you see?\"\nComposer, Helen H. Lemmel wrote the words and music for this hymn. Born in Wardle, England in 1863 she moved with her family to America when she was twelve years old. She loved music and her parents provided her with the best teacher they could find.\n\"She returned to Europe to study vocal music in Germany\", writes hymnist, Robert J. Morgan in his book Then Sings My Soul. \"In time she married a wealthy European, but he left her when she became blind and Helen struggled with multiple heartaches during midlife.\"\nThe writing of this hymn was the result of Helen Lemmel's reading a small pamphlet, written by a missionary friend. She believed every word that was written and was touched by the unique way it was expressed. Her desire was to focus on Jesus so that the earthly things in life would be dimmed by his radiance. She wrote of that experience:\n\"Suddenly as if commanded to stop and listen, I stood still. Singing in my soul and spirit was the chorus of the hymn, with not one conscious moment of putting word to word to make rhyme or note to note to make melody.\"\nWithin the week, she completed the three verses that surround the chorus. The exciting story of Lemmels' composition was widely circulated. In 1924 it became a part of the hymnal, Gospel Truth in Song. Helen Lemmel died in 1961 in Seattle, Washington .\nThrough this hymn we hear the echo of Hebrews 12:2:, \"Let us fix our eyes on Jesus, the author and perfecter of our faith...\" He can turn our weariness and trouble into peace and joy.\nLord Jesus, we can see you through eyes of faith. Thank you. We see your arms open wide as we come again and again for refreshment and nourishment. We are filled to overflowing with your loving grace that forgives. ‘Thank you' are only two small words that mean, ‘we love you'. In your powerful name, Amen\nSEE ALSO: Thousands of Tongues Still Sing\nLucy Neeley Adams has always loved music. She began telling the story of hymns on Christian radio WWGM in Nashville, TN, in the '80s. She then wrote a newspaper column titled \"Song Stories\" for five years. During that time Lucy's book, 52 Hymn Story Devotions, was published by Abingdon Press in Nashville. Each of the 52 stories contained in the book is written in a devotional format, with the words of the hymn concluding each devotion."} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/serving/text_completion/serverless.py. Lines: 1086.\n\nimport atexit\nimport logging\nimport os\nimport queue\nimport threading\nimport time\nfrom typing import Awaitable, Callable, Dict, Optional\n\nfrom fireworks.util.configerator import ConfigHandle\nfrom fireworks.serving.ratelimit_verifier.ratelimit_verifier import (\n RatelimitVerifier,\n RatelimitResponse,\n)\nfrom fireworks.serving.ratelimit_verifier.ratelimit_cache import (\n RatelimitCacheStore,\n RatelimitCapacityCache,\n RatelimitUsageCache,\n)\nfrom fireworks.serving.ratelimit_verifier.unkey_client import UnkeyClient\nfrom fireworks.serving.ratelimit_verifier.sync_worker import (\n RatelimitSyncWorker,\n METRIC_TOKENS_PROMPT,\n METRIC_TOKENS_GENERATED,\n METRIC_TOKENS_CACHE_ADJUSTED_PROMPT,\n)\nfrom .coordinator import RequestLifetimeTracker\nfrom .load_shedding import LoadShedTracker\nfrom .metrics import metrics as server_metrics\nfrom .request_metrics import RequestMetrics\n\nfrom .error import OverloadedError\nimport fireworks.text as firetext\nfrom .serverless_settings import ServerlessSettings, get_deployment_name, get_serverless_config_handle\n\nlogger = logging.getLogger(__name__)\n\n_LOG_PREFIX = \"[global-rl:enforce]\"\n\n\nclass ConcurrencyLimiter:\n def __init__(\n self,\n config_handle: ConfigHandle,\n max_batch_size: int,\n num_queued_func: Callable[[], int],\n ):\n self._config_handle = config_handle\n self._max_batch_size = max_batch_size\n self._num_queued_func = num_queued_func\n self._counts = {}\n self._total_count = 0\n self._lock = threading.Lock()\n\n def get_config(self) -> ServerlessSettings:\n return self._config_handle.get_current()\n\n def check_limit(self, metrics: RequestMetrics) -> bool:\n config: ServerlessSettings = self.get_config()\n # Treat the legacy per-account concurrency gate as part of Redis-era\n # ratelimiting, so the existing ratelimit kill switch disables it too.\n if config.is_ratelimit_verifier_disabled():\n return True\n\n user_account = metrics.user_account\n q = self._num_queued_func()\n if q <= config.demoting_num_queued_threshold:\n return True\n\n if config.get_account_priority(user_account) == 0:\n metrics.concurrency_response = RatelimitResponse(accepted=False, used=0, limit=0, is_hard_limit=False)\n return False\n\n with self._lock:\n count = self._counts.get(user_account, 0)\n total_count = self._total_count\n limit = self._max_batch_size * config.max_batch_fraction_per_user_soft_limit\n if total_count >= config.active_fraction_min_size:\n limit = min(limit, total_count * config.active_fraction_per_user_soft_limit)\n limit = int(limit)\n\n is_accepted = count <= limit\n metrics.concurrency_response = RatelimitResponse(\n accepted=is_accepted, used=count, limit=limit, is_hard_limit=False\n )\n return is_accepted\n\n def validate_on_request_received(self, num_queued_and_active: int, unified_priority_level: int) -> Optional[str]:\n if unified_priority_level == 2:\n return None\n batch_size_multiplier = 10 # Serverless uses higher multiplier\n q = num_queued_and_active\n if q > self._max_batch_size * batch_size_multiplier:\n return f\"queue overloaded num_queued_and_active={num_queued_and_active}, max_batch_size={self._max_batch_size}, multiplier={batch_size_multiplier}\"\n return None\n\n def validate_drop_low_priority(self) -> Optional[str]:\n config: ServerlessSettings = self.get_config()\n q = self._num_queued_func()\n if q > self._max_batch_size * config.shedding_num_queued_multiplier:\n return f\"concurrency limit q={q}, max_batch_size={self._max_batch_size}, shedding_num_queued_multiplier={config.shedding_num_queued_multiplier}\"\n return None\n\n def track_request(self, account: str, n: int) -> Callable[[], None]:\n with self._lock:\n self._counts[account] = self._counts.get(account, 0) + n\n self._total_count += n\n return lambda: self._release_request(account, n)\n\n def _release_request(self, account: str, n: int):\n with self._lock:\n self._counts[account] -= n\n if self._counts[account] == 0:\n del self._counts[account]\n self._total_count -= n\n\n\n# TODO(nelson): Move this verifier into fireworks.serving.ratelimit_verifier\n# so serverless.py only wires ratelimit enforcement into request lifetime tracking.\nclass TcUnkeyRatelimitVerifier:\n \"\"\"Unkey-backed ratelimit verifier (primary enforcement).\n\n All checks are synchronous reads from shared in-memory dicts.\n Network I/O is handled by the RatelimitSyncWorker thread.\n \"\"\"\n\n def __init__(\n self,\n *,\n cache_stor"} -{"text": "A 'Cairo moment' for Obama in Moscow?\nWhen he visits there next week, he should counter Kremlin propaganda by speaking directly to Russians about America's real desires.\nWashington — Next week, President Obama will travel to Moscow to attend a summit with Russian President Dmitry Medvedev. He should use that opportunity to engage not only with the government of Russia, but to communicate directly to the Russian-speaking world.\nCorrectly, the Obama administration has focused on the need to reach out directly to adherents of the Muslim faith. Last month in Cairo, surrounded by hundreds of young people, students, and activists, Mr. Obama eloquently conveyed both America's values and hopes for a better relationship with the Muslim world, a relationship rooted in genuine respect.\nAs of now, no major speech to reach the hearts and minds of the Russian-speaking world is planned, but it should be part of the president's agenda during his visit to Moscow. Russians, and the vast majority of their neighbors, suffer from a freedom deficit comparable to that experienced by all too many inhabitants of the Middle East. In assessing the state of freedom in the countries of the former Soviet Union – excluding the three tiny Baltic States – the nongovernmental organization Freedom House actually finds lower levels of freedom than in the Middle East.\nIn most of these countries, including Russia itself, a corrupt ruling elite controls and exploits the country's major resources for its own enrichment. Elections are largely meaningless exercises in which there is no viable competition. And any civil society groups that attempt to engage in politically sensitive topics – like human rights or anticorruption – are stifled, sometimes brutally.\nWithin Russia, all meaningful mass media serve as a mouthpiece for the Kremlin. The Russian people are bombarded by a sophisticated propaganda campaign that taps into nationalist sentiments and invents outside enemies to justify the consolidation of power. School curricula have been adjusted to glorify Soviet achievements, while playing down its depredations. In May, President Medvedev announced the creation of a new Commission to Protect Russian History, which will serve to counter historical narratives that portray Russia in a negative light. Even the Orthodox Church feeds the idea of the strong state and Russian exceptionalism.\nThis campaign has been extremely effective in exploiting Russians' humiliation at the collapse of the Soviet empire. It incorporates both nostalgia for its superpower past with viciously anti-Western, and particularly anti-American, rhetoric.\nPropaganda has also capitalized on anti-Bush sentiment to tarnish the ideas of freedom and democracy and to present these values as incompatible with Russian traditions and culture. No matter that these same arguments were once made regarding the culture and history of Asians and Latin Americans and adherents to the Roman Catholic or Muslim faiths – arguments that have since been repudiated by the reality that all people want to enjoy fundamental freedoms.\nCan a speech from Obama hope to counter such a well-resourced and sophisticated anti-American and antidemocracy campaign? Certainly not by itself. But, just as in Cairo, it would be an important step if done in the right way. Russians don't like being preached to by foreigners any more than Egyptians, Turks, Iranians, or for that matter, Americans, do.\nYet they may respond to a frank and respectful speech that emphasizes America's real desire – not for a weak and subservient Russia – but rather a strong Russia that shares its democratic values and that can be a real partner in tackling some of the world's growing list of crises.\nEven if successful, outreach to the Russian people will not resolve the problem of a Kremlin that subverts freedom and democracy. But the past eight years have taught us nothing if not the importance of the hearts and minds of people. We are already starting to reset our relationship with the Russian government. We should make a strong effort to do so with the Russian people as well.\nPaula Schriefer is the director of advocacy at Freedom House, an independent nongovernmental organization that supports the expansion of freedom in the world."} -{"text": "Obama goes from scolder in Washington to comforter in Boston\nIn Washington, President Obama is locked in a battle with many voices in Congress over gun control, but at a moment of national tragedy, such as the Boston Marathon bombings, the president stands alone.\nA day after he stood in the White House Rose Garden as a frustrated scolder-in-chief, President Obama was in Boston Thursday assuming the role of comforter-in-chief at a prayer service for the victims of the Boston Marathon bombings.\nIn both cases, Mr. Obama was acting to address, though in very different ways, horrendous acts of violence that stunned the country.\nOn Wednesday afternoon, with Gabrielle Giffords and Sandy Hook families at his side, the president cast “shame” on the US Senate for rejecting a bipartisan plan for tighter background checks on gun purchases. Not 24 hours later, he was providing balm to the victims of an “act of terror” and to a city struck in its heart.\nIn just a day, the president changed out of the political cloak of irate reaction to Congress to the higher m antle of national leadership in times of grief. As Obama hugged families and visited the bedsides of the recovering, it only underscored how a presidential presence that meant so little one day in Washington could mean everything in Boston the next.\nIt was a change in roles reminiscent of one made by President Clinton in 1996, when the Oklahoma City bombing – at that time, the largest act of terror to strike the US – allowed a president caught up in daily political harangues with Congress to step out from Washington and comfort a nation with what would become his trademark empathy.\nIn the Rose Garden, Obama was introduced by Mark Barden, who lost his son, Daniel, in the Sandy Hook Elementary School shooting on Dec. 14. With the president’s hand on his shoulder, Mr. Barden said the Sandy Hook families were “disappointed” by the Senate votes but “not defeated,” promising continued effort for gun safety legislation.\n“All in all, this was a pretty shameful day for Washington,” Obama said.\nIn Boston, the president was accompanied by Michelle Obama, and the tone was much more one of comfort and of faith in the resilience of Boston and all Americans in the face of tragedy.\nComparing the nation to the Boston Marathon runner seen on videotape by millions as he was knocked off his feet by the first of two blasts, Obama said, “We may be momentarily knocked off our feet. But we’ll pick ourselves up. We will keep going. We will finish the race.”\nA devoted sports fan, Obama is said to have penned much of Thursday’s remarks himself.\nHe went on to pledge, as he had just hours after the bombings, that those responsible will be found and brought to justice. “But more than that,\" he added. \"our fidelity to our way of life, to our free and open society, will only grow stronger.”\nBut with the investigation into the marathon bombings turning up clues – including photos of individuals of interest and painstaking assembly of bomb parts pointing to unsophisticated devices built to kill and maim – that keep alive the theory that the attack could have been the work of domestic extremists, more attention is being paid to past domestic “acts of terror.”\nThe Oklahoma City bombing, in particular, became embroiled in the prevailing political storms, as an embattled Mr. Clinton addressed the deadly act of an antigovernment terrorist in a way that some Republicans charged used the tragedy for political gain.\nFour days after the bombing, Clinton traveled to Oklahoma City and delivered words that both comforted and reassured his audience and the country. “You have lost too much, but you have not lost everything,” he told his audience, noting that America was with them. He then told the nation, “I will not allow the people of this country to be intimidated by evil cowards.”\nBut Clinton was also castigated by some critics for using the Oklahoma City bombing to single out some of his harshest detractors for the way that, in his view, their fiery rhetoric appeared to condone violence.\n“We hear so many loud and angry voices in America today whose sole goal seems to be to try to keep some people as paranoid as possible and the rest of us all torn up and upset with each other,” Clinton said. “They spread hate. They leave the impression that, by their very words, that violence is acceptable.”\nBy contrast, Obama did not accuse anyone of encouraging gun violence in his Rose Garden comments, but he did suggest that political expediency was the only motivation that could explain the Senate’s rejection of what he called a “common sense” measure expanding background checks. And he accused opponents of the bill of \"lying\" about what it would and wouldn't do.\nIn rebuffing the president, some opponents of additional gun safety measures have accused Obama of using the Sandy Hook tragedy for political gain. Libertarian Sen. Rand Paul (R) of Kentucky charged the president with employing the Sandy Hook families that have lobbied members of Congress as “props” in his quest for more government regulation.\nIt has not been a satisfying or particularly inspiring debate on either side.\nAway from Washington, Obama spent time Thursday with families of the victims of Monday’s bombings. He and Michelle visited recovering patients in several Boston hospitals, and the president stopped in to thank marathon volunteers and first-responders who have been credited with quick action that saved many lives.\nIt was a day for presidential comforting, the frustrations of Washington could be put off to another day."} -{"text": "e: RatelimitCacheStore,\n cost_queue: \"queue.Queue\",\n force_charge_queue: \"queue.Queue\",\n router_name: str,\n sync_worker: Optional[RatelimitSyncWorker] = None,\n ):\n self._cache = cache_store\n self._cost_queue = cost_queue\n self._force_charge_queue = force_charge_queue\n self._router_name = router_name\n self._sync_worker = sync_worker\n logger.info(\"%s TcUnkeyRatelimitVerifier created router=%s\", _LOG_PREFIX, router_name)\n\n def stop(self) -> None:\n \"\"\"Stop the background sync worker and release its resources.\"\"\"\n if self._sync_worker is not None:\n self._sync_worker.stop()\n self._sync_worker = None\n\n def _notify_sync_worker(self) -> None:\n if self._sync_worker is not None:\n self._sync_worker.notify_work_available()\n\n @staticmethod\n def _admit_by_remaining(\n usage: Optional[RatelimitUsageCache],\n capacity: RatelimitCapacityCache,\n pending: float,\n ) -> tuple[RatelimitResponse, str, Optional[float]]:\n if usage is not None and usage.is_valid():\n effective_remaining = usage.remaining - pending\n return (\n RatelimitResponse(\n accepted=usage.success and effective_remaining >= 0,\n used=int(usage.limit - effective_remaining),\n limit=int(usage.limit),\n is_hard_limit=False,\n ),\n \"global\",\n usage.remaining,\n )\n\n limit = capacity.total_tpm\n return (\n RatelimitResponse(\n accepted=(limit - pending) >= 0,\n used=int(pending),\n limit=int(limit),\n is_hard_limit=False,\n ),\n \"local-only\",\n None,\n )\n\n @staticmethod\n def _admit_by_usage(\n usage: RatelimitUsageCache,\n capacity: RatelimitCapacityCache,\n ) -> tuple[RatelimitResponse, str, float]:\n limit = capacity.total_tpm\n used = usage.usage\n return (\n RatelimitResponse(\n accepted=(limit - used) > 0,\n used=int(used),\n limit=int(limit),\n is_hard_limit=False,\n ),\n \"global\",\n max(0.0, limit - used),\n )\n\n def check_prompt_ratelimit(self, account: str, *, tokens_prompt: int = 0) -> Optional[RatelimitResponse]:\n \"\"\"Prompt ratelimit check (read-only).\n\n Defaults to cost 0 (pre-tokenization precheck). Post-tokenization callers pass\n the real prompt token count. Admission uses cached capacity and usage plus\n local pending deductions for this pod.\n\n Accept only when remaining capacity covers local pending plus this request's cost.\n The cache provides the current remaining available capacity; if that is missing/stale,\n fall back to the total capacity limit. If capacity is missing, fail open.\n \"\"\"\n cost = tokens_prompt\n metric = METRIC_TOKENS_PROMPT\n key = (account, self._router_name, metric)\n\n capacity = self._cache.get_capacity_or_default(key)\n usage = self._cache.get_usage(key)\n\n if capacity is None or not capacity.is_valid():\n logger.debug(\n \"%s Fail-open: no valid capacity account=%s metric=%s\",\n _LOG_PREFIX,\n account,\n metric,\n )\n server_metrics.unkey_check_total.labels(\n **server_metrics.static_keys, metric=metric, mode=\"fail-open\", accepted=\"true\"\n ).inc()\n return None\n\n pending = self._cache.get_pending_deductions(key) + cost\n response, mode, cache_remaining = self._admit_by_remaining(usage, capacity, pending)\n\n server_metrics.unkey_check_total.labels(\n **server_metrics.static_keys,\n metric=metric,\n mode=mode,\n accepted=str(response.accepted).lower(),\n ).inc()\n if cache_remaining is not None:\n server_metrics.unkey_cache_remaining.set(cache_remaining)\n\n return response\n\n def admit_prompt_ratelimit(self, account: str, tokens_prompt: int) -> Optional[RatelimitResponse]:\n \"\"\"Post-tokenization prompt admission.\n\n Returns the read-only admission response and commits the prompt cost only\n when the request is admitted. Fail-open (`None`) is treated as admitted so\n the sync worker can learn usage once capacity data becomes available.\n \"\"\"\n response = self.check_prompt_ratelimit(account, tokens_prompt=tokens_prompt)\n accepted = response is None or response.accepted\n if accepted and tokens_prompt > 0:\n key = (account, self._router_name, METRIC_TOKENS_PROMPT)\n capacity = self._cache.get_capacity_or_default(key)\n if capacity is None or not capacity.is_valid():\n self._"} -{"text": "One Marine's memorial: day of racing to honor veterans' service\nRyan Jerabek's parents helped organize an annual footrace that traces the route run by their son, a Marine killed in Iraq. The event honors those who serve in the US armed forces.\nWhen Rita and Ken Jerabek saw the men in uniform at their door one April morning in 2004, they knew their lives had changed forever. They were told that their son Ryan, not long out of high school and a Marine Corps private first class serving in Ramadi, Iraq, had been killed in an ambush.\nSomething would always be missing for the couple and for Ryan’s brothers. But a year or so later, Mrs. Jerabek came upon an idea she felt would honor her son’s memory while also helping others. She found it in his own words, back when he was a student at Pulaski High School near Green Bay, Wis.\nIn a speech class in 2002, he said: “I’d like to ask of you to thank those who fought and are fighting in the battles to keep this country at the pinnacle of freedom.” It became clear to Jerabek: “Ryan is wanting us to carry on what he had asked his fellow students to do.”\nThree things came together as the idea developed: Ryan ran track in high school, staying in shape by running a four-mile route near the family’s home in rural Hobart, Wis.; he wanted to join the Marine Corps as soon as he graduated; and after military service, his plan was to go to college to become a high school history and social studies teacher.\nIn terms of carrying out something, “I didn’t know where to begin,” Jerabek says. But with the help of event planners and race organizers, Rita and Ken organized the first “Pfc Ryan Jerabek, USMC Memorial Challenge” – a four-mile footrace retracing Ryan’s training route. That was in 2006, when about 600 people participated. Since then, it’s become an annual event.\nLast August, about 1,200 runners and walkers – children as well as adults – took part, including 18 marines from across the United States who had been in Ryan’s platoon. It was a five-year reunion for them.\nGold Star families – those who’ve lost somebody in war – have begun coming, too. “They’re able to introduce their loved ones to the group,” Jerabek says.\nProceeds from the event go to two causes Ryan and his family valued: the Injured Marine Semper Fi Fund, which provides financial assistance to those of all uniformed services injured in post-9/11 combat and training, and the Pulaski Community School Education Foundation Inc., which makes small grants (typically $500) to local teachers for books and other equipment or special projects. For 2009, the proceeds totaled $7,400.\nParallel runs have been held by about 100 service personnel and civilians – including the US ambassador to Iraq – in Baghdad’s Green Zone. Airmen at Dyess Air Force Base near Abilene, Texas, ran their own Jerabek Challenge. And about 80 sailors from the San Diego-based USS Green Bay went to the Marine Corps base at Camp Pendleton to run the race.\n“It’s such an exciting day to see everybody gather in support of our troops, to remember the fallen, and to say ‘thank you’ to our military,” says Jerabek, who’s a nurse practitioner at a rural family practice clinic.\nRita Jerabek is also active with Operation Gratitude, which sends care packages to troops serving overseas, and with the Iraq and Afghanistan Veterans of America (IAVA).\nThese days Rita and Ken Jerabek have new concerns as well. Their youngest son Nick followed in his older brother’s boot steps. He’s a Marine Corps corporal now serving in Afghanistan.\nHas the Jerabek Challenge helped ease the loss of Ryan?\nPausing, Jerabek says, “Yes, it has.”\n“Sometimes it’s overwhelming,” she goes on. “But then I remember that it’s helping other people, so it is healing for me. And for me, it was important to do something that I think Ryan would be really proud of.”\n“It’s helped his brothers too,” she adds, noting that with the run Ryan’s friends, Marine Corps buddies, and a growing number of strangers “in a spiritual way are retracing his steps.”"} -{"text": "Year-Round Maintenance Tips from Cub Cadet\nSeasonal Lawn Maintenance Tips\nDiscover how year-round lawn care can benefit your yard\nIf you live in a region that experiences all four seasons, you may think lawn care is something you only have to worry about in the summer. But, lawn care is a year-round job even in the face of snow, falling leaves and spring thaw. With these helpful lawn care tips, your lawn will look its best where it's winter, spring, summer or fall.\nSeasonal Lawn Care Tips for the Winter\nThe key to seasonal lawn care in the winter is to prevent breakage and damage to delicate or dormant plants, trees, shrubs and grass. First, shovel walkways in a manner that keeps visitors off your lawn, keeping grass blades from flattening or breaking. Brushing snow off trees and shrub branches will also prevent breakage. If needed, winter is also a good time to trim branches. When the tree limbs are dormant, the plant will sustain less damage than when in full bloom. Another seasonal lawn care tip: think ahead. Get a head start on spring lawn care by ordering seeds as winter comes to a close.\nSeasonal Lawn Care Tips for the Spring\nIn the spring, start treating your lawn as soon as the snow melts. Remove debris that accumulated during the winter, like leaves, sticks and twigs. And if your lawn was damaged from snow blowing, plowing or shoveling, replace the divots or lay down new seed. If year round lawn care is your goal, this is a great time to apply fertilizer or herbicides to grass. However, you cannot do both at the same time as herbicides will restrict grass growth. Be sure to water regularly to bring your grass back to life.\nGet your equipment ready! Before you know it, your lawn will be ready to mow. Prepare your walk-behind or riding lawn mower and other equipment with basic maintenance. If you find your walk-behind mower or riding lawn mower isn't working properly, you will have time to buy new lawn mower parts and perform repairs.\nSeasonal Lawn Care Tips for the Summer\nDuring the summer months, seasonal lawn care should focus on cutting the grass and regularly watering it. The key to a lush and healthy lawn when the temperature is high is to keep the grass a little long. Do not cut your lawn to less than two inches in height. When grass is cut too short in the summer months, it is more likely to dry out and become damaged because the blades can't shade the soil and roots from the sun. Water your lawn with either a sprinkler or seep hose, but be sure to move the sprinkler or hose every half hour to ensure even watering. Also, for seasonal lawn care in the summer, it's best to water early in the morning or in the evening when it's cooler; this prevents scorching your grass when the sun it at its hottest.\nSeasonal Lawn Care Tips for the Fall\nIn anticipation of the dormant season, fertilize the lawn one more time. Boosting nutrients before the winter months is a great way to promote year-round lawn care and will help your lawn stay healthy and come back quicker in the spring. Another good lawn seasonal lawn care tip for the fall is to mow your grass a little shorter than normal. The shorter grass will not get as damaged by snow in the upcoming winter months. Also, don't forget to clean your yard by raking leaves, removing debris, storing garden lights and emptying flower pots.\nThe fall is also a good time for new grass seeds, so spend some time re-seeding any dead areas. Don't worry; in the fall birds have migrated away and won't be able to pick at the new seed which will be ready to sprout in the spring.\nProper Lawn Care 365 Days A Year\nYour yard has the best chance of looking its greenest and fullest when you implement seasonal lawn care year-round. With your tools, outdoor power equipment and riding lawn mower properly maintained, year-round lawn care becomes a lot easier. Inspect your machines on a regular basis as part of your seasonal lawn care, so you can replace worn or aging parts and get back to your landscaping."} -{"text": "cache.add_pending_deduction(key, tokens_prompt)\n server_metrics.unkey_pending_deductions.set(self._cache.get_pending_deductions(key))\n else:\n pending = self._cache.add_and_get_pending(key, tokens_prompt)\n server_metrics.unkey_pending_deductions.set(pending)\n self._cost_queue.put_nowait(\n (account, self._router_name, METRIC_TOKENS_PROMPT, tokens_prompt, time.monotonic())\n )\n self._notify_sync_worker()\n return response\n\n def check_gen_ratelimit(self, account: str) -> Optional[RatelimitResponse]:\n return self._check_usage_cached_metric(\n account=account,\n metric=METRIC_TOKENS_GENERATED,\n no_usage_mode=\"gen-no-usage\",\n )\n\n def check_cache_adjusted_prompt_ratelimit(self, account: str) -> Optional[RatelimitResponse]:\n return self._check_usage_cached_metric(\n account=account,\n metric=METRIC_TOKENS_CACHE_ADJUSTED_PROMPT,\n no_usage_mode=\"cache-adjusted-prompt-no-usage\",\n )\n\n def validate_on_request_received(self, account: str) -> Dict[str, RatelimitResponse]:\n \"\"\"Pre-tokenization TPM precheck at cost 0.\n\n Returns the per-metric ``RatelimitResponse`` decisions. Fail-open metrics are\n omitted from the map (and treated as admitted). Recording these into\n ``metrics.ratelimit_responses`` for observability is the caller's responsibility.\n \"\"\"\n unkey_check_start = time.monotonic()\n\n metric_check_start = time.monotonic()\n unkey_prompt_response = self.check_prompt_ratelimit(account)\n _log_unkey_ratelimit_response(\n account,\n METRIC_TOKENS_PROMPT,\n unkey_prompt_response,\n (time.monotonic() - metric_check_start) * 1_000_000,\n )\n\n metric_check_start = time.monotonic()\n unkey_gen_response = self.check_gen_ratelimit(account)\n _log_unkey_ratelimit_response(\n account,\n METRIC_TOKENS_GENERATED,\n unkey_gen_response,\n (time.monotonic() - metric_check_start) * 1_000_000,\n )\n\n metric_check_start = time.monotonic()\n unkey_cache_adjusted_prompt_response = self.check_cache_adjusted_prompt_ratelimit(account)\n _log_unkey_ratelimit_response(\n account,\n METRIC_TOKENS_CACHE_ADJUSTED_PROMPT,\n unkey_cache_adjusted_prompt_response,\n (time.monotonic() - metric_check_start) * 1_000_000,\n )\n\n responses = {\n metric: response\n for metric, response in (\n (METRIC_TOKENS_PROMPT, unkey_prompt_response),\n (METRIC_TOKENS_CACHE_ADJUSTED_PROMPT, unkey_cache_adjusted_prompt_response),\n (METRIC_TOKENS_GENERATED, unkey_gen_response),\n )\n if response is not None\n }\n rejected = [metric for metric, response in responses.items() if not response.accepted]\n logger.debug(\n \"%s Unkey precheck account=%s unkey_accepted=%s rejected=%s check_elapsed_us=%.0f\",\n _LOG_PREFIX,\n account,\n not rejected,\n rejected,\n (time.monotonic() - unkey_check_start) * 1_000_000,\n )\n\n return responses\n\n def _check_usage_cached_metric(\n self,\n *,\n account: str,\n metric: str,\n no_usage_mode: str,\n ) -> Optional[RatelimitResponse]:\n \"\"\"Check a force-charged metric that is enforced from cached usage only.\"\"\"\n key = (account, self._router_name, metric)\n check_start = time.monotonic()\n\n capacity = self._cache.get_capacity_or_default(key)\n if capacity is None or not capacity.is_valid():\n logger.debug(\n \"%s Cached-usage fail-open: no valid capacity account=%s metric=%s\",\n _LOG_PREFIX,\n account,\n metric,\n )\n server_metrics.unkey_check_total.labels(\n **server_metrics.static_keys, metric=metric, mode=\"fail-open\", accepted=\"true\"\n ).inc()\n return None\n\n usage = self._cache.get_usage(key)\n if usage is None or not usage.is_valid():\n logger.debug(\n \"%s Cached-usage fail-open: no usage cache yet account=%s metric=%s\",\n _LOG_PREFIX,\n account,\n metric,\n )\n server_metrics.unkey_check_total.labels(\n **server_metrics.static_keys, metric=metric, mode=no_usage_mode, accepted=\"true\"\n ).inc()\n return None\n\n response, mode, cache_remaining = self._admit_by_usage(usage, capacity)\n remaining = response.limit - response.used\n\n check_elapsed_us = (time.monotonic() - check_start) * 1_000_000\n logger.debug(\n \"%s Cached-usage check [global] account=%s metric=%s accepted=%s \"\n \""} -{"text": "Left in the comments by one of my most favorite people of all time was a request for more snickerdoodle stuff. So since I do big puffy heart her I am going to oblige her. That and it’s not too hard to convince me to make something snickerdoodle flavored (twist my arm).\nIt’s funny that the vast majority of people who I adore and have been positive influences in my life (with the exception of my hockey peeps…MDP included) have all come as a result of this blog. If nothing else ever comes from me having this blog, the friendships that I have made from it have made any amount of time spent keeping this blog a float all worthwhile. It’s even is worth all the caramel burns.\nThey (whoever THEY are) say that the Internet often isolates and keeps people from having real life relationships. I can see that in some ways. I think what is nice about the Internet is the fact that it allows me to search out and find people who I have things in common with or are just good peeps that I could throwback some beers with instead of having to pick from what is just around me (no offense to my local friends ). Some of those are people who are merely acquaintances that I would meet up with for dinner if they were in town and some are people I would give money to and go at someone with a hockey stick if they asked. And they have done the same for me (well not the hockey stick…but it could happen).\nOne of the blessings (friend) that came into my life from my blog said to me when I commented about all of my good friends have either come from hockey or this blog was “passions bring good things to people”. I liked that. I have two passions in my life: hockey and food…so really that makes total sense. It also helps that hockey peeps and food lovers are for the most part pretty awesome human beings. Or sure there is always a rotten apple now and then…but that’s okay because then I can write about them on this blog and exploit them for ad revenue. Suck that mean people.\nThese truffles are a take on the chocolate chip cookie dough truffle that was made for the ever hip expanding Chocolate Chip Cookie Dough Cheesecake which is excellent for all your post break up needs. :)But I prefer sugar cookies and snickerdoodles to chocolate chip cookies (I know shoot me). Plus I like any excuse to throw nutmeg into something. Which brings us to today’s giveaway the ever handy Microplane 40020 Classic Zester/Grater . You probably own one. I do. But really you need two, just in case the one is in the dishwasher. That’s why I own two…well three now thanks to AllRecipes.com who gave it in their goodie bag. No I am not re-gifting…you get your very own. Not that I am against re-gifting…I just really like it…it’s yellow.\nSo just leave a comment and tell me if you think you can form real relationships just from the Internet. You have to comment by Tuesday June 19th 2012. You have to be living in the USA. And you need to name your first born after me…oh wait. I will let people know on Wednesday June 20th 2012 if you won anything.\nSnickerdoodle Cookie Dough Truffles\n½ cup unsalted butter, at room temperature\n¾ cup packed brown sugar\n1 tsp. vanilla extract\n½ tsp. salt\n2 cups all-purpose flour\n14 ounces sweetened condensed milk\n½ tsp. freshly ground nutmeg\n½ tsp. cinnamon\n1 tsp. cream of tartar\nCinnamon sugar for rolling truffles in\nIn a medium size bowl add the flour, spices, salt, and cream of tartar. Set aside.\nUsing a stand mixer (or a bowl and beaters), cream together the butter and sugar until light and fluffy, about 3 minutes.\nBeat in vanilla.\nWith speed on low, slowly add flour mixture, alternating with condensed milk, beat well after each addition.\nShape balls into 1-inch balls and place into an air tight container. Roll them into the cinnamon sugar just like you would a snickerdoodle cookie. Store in freezer for at least 3 hours.\nHow many you get really depends on what you think a 1 inch ball looks like. I will be using these in the next several recipes so be on the lookout."} -{"text": "How search can help you understand your audience - part 1\nHow search can help you understand your audience\nSubsequently I have been giving a series of presentations on how we can use this information within the BBC to feed into our design processes, our content creation, and our understanding of our audience. I believe that these are principles that can be well applied to any UK based non-commercial website.\nIt seems to me that many of the metrics with which we measure user interaction with the web are deeply flawed, and provide ample evidence that the internet was invented by physicists and technologists, not marketing and advertising executives. Page impression figures do not convey any information about whether the page view was satisfying or frustrating. Not all users accept cookies, and not all cookies can be associated with a single user when they are issued to computers across corporate networks or public internet access points. Tracking individual session data still doesn't tell us whether the user went to make a cup of tea or answer the door whilst they spent the measured 3 minutes on the page. Beyond that, the effect of caching by ISPs can lead to users not even seeing the latest version of a page, let alone the problem it creates for capturing behavioural data.\nHowever, the action of typing a word or phrase into a search box is a very direct interaction between the user and the site. We can safely assume that when the user typed in that word or phrase they expected \"something\" back from the site. Few people except the very bored, Google-whackers, or those with a professional interest in search mechanisms enter search strings looking for a null result.\nUsing search to learn the user's vocabulary\nOne thing that becomes abundantly clear from even a cursory examination of the search logs at BBCi is that the BBC has an extremely diverse audience, who may be looking for the same information, and for information that we have, in a myriad of different phrases, dialects, and even languages. Without realising it we set up barriers in our site to users finding the information they require, merely by the language we use. This is something that any medium to large scale website will suffer from, for the following reasons.\nA well written website will have some sort of style-guide, whether it is standards compliance (w3c), plain use of language (Plain English Campaign), brand consciousness (easyJet), to the downright pedantic (currybetdotnet didn't use to use upper-case on the homepage at all as a design 'quirk').\nHowever users don't come with a built in version of the style-guide. A decision taken in a committee room about whether a site offers 'ecards', 'e-cards' or 'e cards', can have a profound influence on the user's search experience if they are looking for one of the variant spellings.\nAt the BBC the website can variously adopt phrases like 'Feedback', 'Contact Us' and 'Email the Show' to allow the audience to interact with it. However we know from search logs that the BBC's audience often asks natural language questions like \"how do i write to BBC3\", and can be viewing a page with a link to 'Feedback' on it and then type 'email address' into the search box.\nCorrectness vs Common Usage\nOne area where there can be a particular disconnect with the audience is if you are obliged to use 'correct' terminology, when in the real world 'common usage' is much more prevalent. A classic example of this is with BBC News and the country 'The Netherlands'. A search for 'netherlands' on BBC News yields around 100 results at the time of writing.\nIn the UK, however, it is much more common to call the country 'Holland'. A search for 'holland' brings back fewer results, and in the first page of results produced by the search technology, the top story is about Jools Holland, and one of the stories is about Tony Holland. Using 'Best Links' we are at least able to insert links to The Netherlands country profile, and the top headlines from europe.\nThis is where using synonyms and placing 'Best Bets' within search results can play a crucial role in bringing users to the content they are looking for. Where the style-guide allows, we also consider placing synonyms within our navigational structure to allow users to browse towards their goals, even where their vocabulary differs from ours.\nAn example of this is that the BBC offers a Films site at www.bbc.co.uk/films. If we stuck strictly to our branding and our style guide then we would only list it in the A-Z Index under 'F'. Using synonyms, and the information fed into the design process by search, our A-Z Index team list the BBCi Films site under 'C' for cinema, 'F' for films, and 'M' for movies, providing alternative navigational routes that suit our users needs rather than any internal branding priorities."} -{"text": "used=%.0f remaining=%.0f limit=%.0f check_us=%.0f\",\n _LOG_PREFIX,\n account,\n metric,\n response.accepted,\n response.used,\n remaining,\n response.limit,\n check_elapsed_us,\n )\n\n server_metrics.unkey_check_total.labels(\n **server_metrics.static_keys,\n metric=metric,\n mode=mode,\n accepted=str(response.accepted).lower(),\n ).inc()\n if cache_remaining is not None:\n server_metrics.unkey_cache_remaining.set(cache_remaining)\n\n return response\n\n def get_reservation_tpm(self, account: str) -> Optional[float]:\n key = (account, self._router_name, METRIC_TOKENS_PROMPT)\n capacity = self._cache.get_capacity_or_default(key)\n if capacity is None or not capacity.is_valid():\n return None\n return capacity.reservation_tpm\n\n def enqueue_force_charge(self, account: str, token_count: int) -> None:\n self._force_charge_queue.put_nowait(\n (account, self._router_name, METRIC_TOKENS_GENERATED, token_count, time.monotonic())\n )\n self._notify_sync_worker()\n\n def enqueue_cache_adjusted_prompt_charge(self, account: str, token_count: int) -> None:\n if token_count > 0:\n self._force_charge_queue.put_nowait(\n (account, self._router_name, METRIC_TOKENS_CACHE_ADJUSTED_PROMPT, token_count, time.monotonic())\n )\n self._notify_sync_worker()\n\n def enqueue_completed_request(self, account: str, final_tokens: int) -> None:\n if final_tokens > 0:\n self._force_charge_queue.put_nowait(\n (account, self._router_name, METRIC_TOKENS_GENERATED, final_tokens, time.monotonic())\n )\n self._notify_sync_worker()\n\n\nclass TcRatelimitVerifier:\n \"\"\"Text Completion Ratelimit Verifier (Redis-backed, write-through)\n\n Still tracks usage in Redis for backward compatibility and comparison,\n but per-metric enforcement decisions come from the Unkey verifier when\n available.\n \"\"\"\n\n DEFAULT_RATELIMITS = {\n \"requests\": 1,\n \"tokens_generated\": 200.0,\n \"tokens_prompt\": 1000.0,\n \"tokens_cache_adjusted_prompt\": 1000.0,\n }\n\n def __init__(self, config_handle: ConfigHandle):\n self._config_handle = config_handle\n self.ratelimit_verifier = None\n self.redis_host = os.environ.get(\"REDIS_HOST\")\n if self.redis_host is None:\n logging.info(\"RatelimitVerifier not created because REDIS_HOST is not set\")\n return\n self.redis_port = int(os.environ.get(\"REDIS_PORT\", \"6379\"))\n\n self.ratelimit_verifier = RatelimitVerifier(self.redis_host, self.redis_port, get_deployment_name())\n try:\n self.ratelimit_verifier.connect()\n except ConnectionError as e:\n logging.error(f\"TcRatelimitVerifier: {e}\")\n\n def get_config(self) -> ServerlessSettings:\n return self._config_handle.get_current()\n\n def is_enabled(self) -> bool:\n if self.get_config().is_ratelimit_verifier_disabled():\n return False\n\n if self.ratelimit_verifier is None or self.redis_host is None:\n return False\n\n connected = self.ratelimit_verifier.is_connected()\n if not connected:\n server_metrics.ratelimit_verifier_error_total.inc(1)\n\n return connected\n\n def get_default_ratelimits(self, account: str) -> Dict[str, float]:\n \"\"\"Get the default rate limits for an account, taking into account any hard limits.\"\"\"\n config = self.get_config()\n default_ratelimits = self.DEFAULT_RATELIMITS.copy()\n\n for metric, default_limit in default_ratelimits.items():\n hard_limit = config.get_hard_limit_per_second(account, metric)\n if hard_limit is not None:\n default_ratelimits[metric] = min(default_limit, hard_limit)\n\n return default_ratelimits\n\n def _validate_hard_limit(\n self, account: str, ratelimit_responses: Dict[str, RatelimitResponse]\n ) -> Optional[tuple[str, str]]:\n config = self.get_config()\n for metric, response in ratelimit_responses.items():\n if response.accepted:\n continue\n if response.is_hard_limit:\n return metric, f\"hard limit metric={metric}, used={response.used}, limit={response.limit}\"\n\n hard_limit_per_second = config.get_hard_limit_per_second(account, metric)\n if hard_limit_per_second is None:\n continue\n eps = 0.1\n if response.used >= hard_limit_per_second * 60 - eps:\n return (\n metric,\n f\"hard limit metric={metric}, used={response.used}, limit={hard_limit_per_second * 60}\",\n )\n return None\n\n async def update_on_tokenization(\n self, metrics: RequestMetrics, tokens_prompt: int, n: int"} -{"text": "Archives for: August 2012, 04\nYesterday I visited the hospital where I had undergone my ordeal last winter. The following is the text of an email I just sent someone who'd flown 3000 miles to my bedside, telling him about my reunion with the angels who rescued me.\n- - - - - - - - - - - - - - -\nDon't know if this would interest you at all, but:\nYesterday, I was at [name of hospital]. And I decided to do something while there that I'd thought many times of doing: I went back to all the wards/units where I had been a patient last winter, to see them from the eyes of health, the rooms I'd lain in, and to perhaps thank some of the really outstanding people who had taken care of me. I had the distinct sense that they very, very rarely see the positive results of their dedication - their former patients IRL, walking around in street clothes, with wind in their sails.\nFirst stop: The ICU. I thought of you as I entered its door, imagined you coming in and passing these places, as I had never seen the door myself; I had never seen that front desk. And there was my little alcove/room, just to the left. The whole ICU looked much, much smaller and more crowded than it had felt/appeared to me from my horizontal position on that bed. I instantly remembered nurses I saw there yesterday ---- remembered their names, which blew their minds. There were even hugs and tears - they couldn't believe I looked so good, and they were genuinely grateful I'd come back: It did a LOT for their morale. I specifically asked for Katy, who had been in touch with you by phone. I wanted to thank her for her hand-holding care of me when I was first admitted there, put on the oscillating ventilation. (I don't think you saw that set-up; for hours I was strapped into a jerking/bouncing/vibrating chest-wrapped thing to jostle my ribcage while the oxygen was blasting in through the mask - Katy explained it was to loosen the \"cement\"-like \"fluid\" that had filled my lungs.) It was really hellish, but Katy sat there with me, while I begged her to stop it, and she'd say, \"Okay, fine. You want us to intubate you? Because if I turn this off, we have no choice.\"\nYou know what came back to me?\nAnd this is really why I'm writing this to you.\nShe was the one who came in and said, \"______ is coming from New York. I've spoken to him. His plane arrives at 2 in the afternoon.\"\nSo help me, I looked at that clock every several minutes and calculated where in the American skies you were. It was critical to me, somehow, to hang on to that while the waves of wind smacked me in the throat and the vest jostled me hard. I remembered that yesterday. I remembered a lot of things, and, you know? It was psychologically a very healthy thing to have gone back there. I had read on the Internet that that's the case for many, many who spend extended time in Intensive Care through an Emergency admission.\nAnyway, I left a note for Katy yesterday (because she's a Night Nurse and wasn't there), on a special \"Recognition\" card, which they post in their little staff rest area, and everybody looks. Apparently this is a Major Highlight of their work. These ICU angels of mercy are in the business of saving lives, and while they get monetary rewards, their souls really do crave just this sort of recognition. Many of their patients don't recover. The few who come back and show their/our faces, healthy, REALLY encourage them.\nAfter I left there, I did the same at the TICU and the regular ward. I was remembered, and I remembered the names, too! I recognized-in-writing two more absent nurses in the TICU, and followed up with a couple of nurses on the regular ward. One was a male French nurse with whom I had communicated in French when I was first admitted to the regular Medical ward for observation. \"You were just coughing and coughing and coughing,\" he said yesterday. He didn't know - so I told him - that I later went Critical and was transferred to the ICU and was in the hospital another 12 days after he last saw me.\nIt was a very rich experience for me and gave me a certain amount of closure. I have very, very warm feelings for those people and was told that the nurses I recognized in writing would be thereby recognized by their departments and supervisors. The least I could do.\nAnd, of course, I have warm feelings and deep gratitude for you. You really gave me something priceless by flying out here when you did. The plane was cramped, the ICU was cramped, it wasn't fun, and you must have been scared until I stabilized.\nWhat more can I say?\nLove and hugs."} -{"text": "Johnson County voters headed to new vote centers for the first time in a general election Tuesday and often faced long lines.\nVote centers allow voters to cast ballots at any of 22 sites across the county, instead of going to the same polling place near their home every year. Johnson County Clerk Sue Anne “Susie” Misiniec said the vote centers mostly worked smoothly Tuesday but had a few minor glitches, such as frozen machines or lost internet connections.\nResidents, however, often waited for half an hour and sometimes stood in line for an hour or more at the vote centers. The voting sites in the northern part of the county had to stay open for at least an extra hour after the polls were supposed to close at 6 p.m. because of the people waiting in line, deputy clerk Reagan Higdon said.\nVoters expect lines during presidential elections, and the waits in Johnson County were nothing out of the ordinary, Misiniec said.\n“You’re going to have a huge turnout in a presidential election,” she said.\nBut the clerk’s office will try to cut down on the waiting time in future elections by continuing to encourage residents to vote before Election Day, potentially opening more sites for early voting and introducing new technology that would allow poll workers to instantly identify voters by swiping the bar code on the back of their driver’s licenses, Misiniec said.\nThe clerk’s office also will do more training with poll workers so they move voters through the lines more quickly, Misiniec said. Poll workers were used to the lower primary turnout and in some cases got flustered when much longer lines formed Tuesday, she said.\nVoting machines were often empty while the poll workers checked voters in, Misiniec said. The machines often looked as though they were out of commission, but the lines were just bottlenecked at the check-in point, she said.\n“It can be overwhelming when you’ve got a crowd of people to work through,” she said. “You’d naturally rush and panic, but the clerks will have to speed that up a little. We’re going to address that with additional training.”\nThe clerk’s office also will review whether more poll workers or electronic poll books would be needed at any of the vote centers, but Misiniec said she didn’t know if that would make a difference in wait times.\nHundreds of voters lined up in many popular vote centers such as at Jonathan Byrd’s Cafeteria, the Greenwood Community Center and Mount Pleasant Christian Church. The lines were an issue for people who were trying to get to work and for elderly or disabled residents who can’t stand in line for long periods of time.\nVoters had the opportunity to vote early or by mail, Misiniec said. The clerk’s office will try to cut down on Election Day lines by encouraging more people to vote early, such as by opening a vote center in eastern Greenwood on Saturdays before Election Day, so everyone from the northern part of the county isn’t crowding the vote center at Mount Pleasant Christian Church.\n“We’re sorry for any waits, but people have the opportunity to avoid the lines by voting early anytime between 10 a.m. and 7 p.m.,” she said. “The more who vote early, the shorter the lines on Election Day.”\nThe clerk’s office also will investigate whether to open vote centers during early voting at retirement communities where a lot of residents vote. For instance, opening a vote center for two days at the Indiana Masonic Home in Franklin could shift more of the turnout away from Election Day.\nJohnson County first used the vote centers in May for the primary and got complaints about long lines. Some residents had to wait more than an hour before voting at the White River Township library, and some voters left before casting their ballot.\nThe clerk’s office added three more vote centers in anticipation of greater turnout and longer lines this fall. They added more poll workers and machines, with the busiest vote centers getting 25 machines.\nMisiniec said the vote centers were a success during early voting, and she hopes that more people will vote early as they get more used to vote centers. She said growing acceptance of the switch to vote centers helped increase turnout during the period of early voting, and a record-setting 21,000 Johnson County residents cast ballots before Election Day.\nResidents could vote early at the courthouse and seven additional sites, and vote centers in Trafalgar and the Center Grove area also were open for the two Saturday before Election Day."} -{"text": ", *, allow_redis_ratelimiting: bool = True\n ) -> bool:\n \"\"\"Write-through: track usage in Redis and return accept/reject (for logging only).\"\"\"\n start_time = time.time()\n\n ratelimit_responses = await self.ratelimit_verifier.check_and_update_multiple(\n metrics.user_account,\n {\n \"requests\": n,\n \"tokens_prompt\": tokens_prompt,\n \"tokens_generated\": 0,\n \"tokens_cache_adjusted_prompt\": 0,\n },\n self.get_default_ratelimits(metrics.user_account),\n )\n\n total_duration = (time.time() - start_time) * 1000\n\n if any(v is None for v in ratelimit_responses.values()):\n server_metrics.ratelimit_verifier_error_total.inc(1)\n ratelimit_responses = {k: v for k, v in ratelimit_responses.items() if v is not None}\n\n log_ratelimit_responses = \" \".join(f\"{k}={v}\" for k, v in ratelimit_responses.items())\n logging.info(\n f\"[Redis] RatelimitVerifier rate check completed: \"\n f\"account={metrics.user_account} \" + log_ratelimit_responses + f\" elapsed={total_duration:.2f}ms\"\n )\n\n if allow_redis_ratelimiting:\n metrics.ratelimit_responses = ratelimit_responses\n\n hard_limit_result = self._validate_hard_limit(metrics.user_account, ratelimit_responses)\n if hard_limit_result is not None:\n hard_limit_metric, hard_limit_error = hard_limit_result\n metrics.rejection_reason = hard_limit_metric\n logger.info(\n \"%s Redis hard limit triggered account=%s error=%s\",\n _LOG_PREFIX,\n metrics.user_account,\n hard_limit_error,\n )\n raise OverloadedError(is_rate_limit=True, internal_message=hard_limit_error)\n\n if \"tokens_generated\" in ratelimit_responses:\n generation_overloaded_limit = (\n self.get_config().generation_overloaded_factor * ratelimit_responses[\"tokens_generated\"].limit\n )\n if ratelimit_responses[\"tokens_generated\"].used > generation_overloaded_limit:\n metrics.rejection_reason = METRIC_TOKENS_GENERATED\n internal_message = f\"generation overloaded used={ratelimit_responses['tokens_generated'].used}, limit={generation_overloaded_limit}\"\n raise OverloadedError(is_rate_limit=True, internal_message=internal_message)\n\n rate_limit_accepted = all(r.accepted for r in ratelimit_responses.values())\n\n return rate_limit_accepted\n\n async def update_tokens_generated_progress(self, metrics: RequestMetrics, token_count: int):\n \"\"\"Update tokens generated counts while generation is ongoing.\"\"\"\n ratelimit_response = await self.ratelimit_verifier.check_and_update(\n metrics.user_account,\n \"tokens_generated\",\n token_count,\n default_limit=self.get_default_ratelimits(metrics.user_account)[\"tokens_generated\"],\n force_charge=True,\n )\n\n if ratelimit_response is None:\n server_metrics.ratelimit_verifier_error_total.inc(1)\n\n async def update_cache_adjusted_prompt_progress(self, metrics: RequestMetrics, token_count: int) -> None:\n \"\"\"Charge cache-adjusted prompt tokens after prefill reveals the authoritative cached prefix.\"\"\"\n ratelimit_response = await self.ratelimit_verifier.check_and_update(\n metrics.user_account,\n \"tokens_cache_adjusted_prompt\",\n token_count,\n default_limit=self.get_default_ratelimits(metrics.user_account)[\"tokens_cache_adjusted_prompt\"],\n force_charge=True,\n )\n\n if ratelimit_response is None:\n server_metrics.ratelimit_verifier_error_total.inc(1)\n\n async def update_completed_request(self, metrics: RequestMetrics):\n \"\"\"Update rate limits after request completion.\"\"\"\n default_ratelimits = self.get_default_ratelimits(metrics.user_account)\n final_chunk = metrics.num_generated_tokens - metrics.num_generated_tokens_tracked\n\n for sequence in metrics.sequences:\n sequence.num_generated_tokens_tracked = sequence.num_generated_tokens\n\n ratelimit_response = await self.ratelimit_verifier.check_and_update(\n metrics.user_account,\n \"tokens_generated\",\n final_chunk,\n default_limit=default_ratelimits[\"tokens_generated\"],\n force_charge=True,\n )\n\n if ratelimit_response is not None:\n logging.info(\n f\"RatelimitVerifier rate check completed: \"\n f\"account={metrics.user_account} \"\n f\"metric=tokens_generated \"\n f\"total={metrics.num_generated_tokens} \"\n f\"num_tokens_in_final_chunk={final_chunk} \"\n f\"{str(ratelimit_response)}\"\n )\n else:"} -{"text": "Love cheat MPs on 'suicide watch' as expense claims threaten to expose affairs\nJacqui Smith's expenses claims have already caused controversy and Labour whips are braced for more lurid revelations\nThree Labour MPs are said to be terrified that the release of their expenses claims will expose them as adulterers and financial cheats.\nFour ministers are also understood to have warned party whips they might have to resign for abusing the system, when MPs' receipts are published before the summer recess in July.\nThe three unnamed backbenchers are said to have been placed on 'suicide watch' by Labour whips, who fear they might break down when the details of their excesses come out.\nTwo are understood to have had extra-marital affairs with other members of Parliament.\nNot only are they believed to have shared hotel rooms during annual conference get-togethers and party away days but also to have double-claimed for the rooms on their expenses.\nIf both MPs have claimed for the bill they will be branded frauds as well as love cheats when journalists and freedom of information campaigners sift through their receipts.\nThe third backbencher is said to have made 'grotesque' financial claims.\nA Commons source told the Mail: 'The whips have three Labour MPs on suicide watch. That's how serious this scandal is. The whips believe they might kill themselves.'\nIn a reference to Home Secretary Jacqui Smith, who tried to claim everything from minor household items and the kitchen sink to her husband's pornography on expenses, the source said: 'If claiming for bath plugs and patio heaters and porn is not a resigning matter, you know that it's something grotesquely awful to consider killing themselves.\n'The mind boggles.'\nThe Mail understands that Labour whips are prepared to step in to arrange secret counselling for the MPs.\nOther Labour MPs who are believed to be fearful of exposure include the member who got taxpayers to pay for four plasma screen televisions in as many years and several members who have charged expensive helicopter rides to the public purse.\nThe revelations came as Gordon Brown tried to salvage his planned overhaul of the expenses system.\nMPs will vote today on measures to prevent ministers with grace and favour properties from claiming for their second homes and to force MPs to submit receipts and make a full disclosure of their outside incomes.\nOther measures include moves to ensure Parliamentary staff are employed by Commons authorities, not MPs themselves.\nMr Brown has already dropped plans to pay MPs a daily allowance merely for turning up to work.\nNow, with his authority dwindling, the Prime Minister is facing the prospect of needing Tory support to push through his measures.\nHe has been warned by his chief whip Nick Brown that he is struggling to get the support of many Labour backbenchers, who want no change to the gravy train expenses system.\nThe Prime Minister used Question Time in the Commons to appeal for support.\n'In the last week we have made more progress than we have made for many years,' he claimed before demanding that greedy MPs 'show some humility'.\nHe added: 'I think the whole country wants us to take action that is necessary to clean up any problems and any abuses that exist in our system.'\nA senior Downing Street source said: 'There are basically two camps - those who want reform now and those that don't.\n'MPs have to understand that there is great public anger out there and we need to act now.'\nBut dozens of Labour MPs are opposed to the measures to move staff on to new contracts and many want all reforms delayed until the Committee on Standards in Public Life, chaired by Sir Christopher Kelly, has drawn up a comprehensive plan for new allowances later in the year.\nThose who want no change now have been given a shroud of legitimacy by the decision of the cross party Standards and Privileges Committee to call for delay.\nLabour committee member Kevin Barron said: 'While there is some merit in what the Government is saying, there is no consensus on it at all.\n'If we can't get consensus on it we are not going to look very good.'\nThe Tory front bench is prepared to support the measures if they explicitly rule out a revival of the per diem allowance idea.\nBut with factions of MPs manoeuvring for concessions, the situation was described as a 'dog's breakfast' by one party tactician.\nAsked how the vote would turn out, the Prime Minister's official spokesman said: 'Your guess is as good as mine.'"} -{"text": "'You're going to HATE the way you look. I guarantee it!' Heavy metal rocker's rant about Men's Wearhouse hits chord with Facebook fans\n- Megadeth's Dave Mustaine blitzes discount clothing chain with unlikely Internet post\n- Tells fans, 'I wouldn't step foot in one even for shelter from a blizzard.'\n- Shopped in Salt Lake City, Utah M.W., claims purchases were never delivered\n- Implores fans to, 'Go to JoS A. Bank, instead'\n- Ironically invokes chain's slogan, 'I guarantee it,' in post\n- Facebook message liked 8,900 times and shared 600 times\n- Store rep apologizes to rock star, promises delivery\nThey are renown for their doom-laden lyrics about Satan and slaughter.\nNow the rock band Megadeth's front man is speaking out about something else close to his heart - the delivery policy at Men’s Wearhouse.\nAngry (Front)man: Megadeth singer Dave Mustaine (pictured) penned a Facebook-borne tirade that is making the rounds on the Internet\nMustaine's rant concerns Men's Wearhouse's failure make good on its advertised two-day delivery policy\nTardy X-Mas Gift: M.W. apparently was still yet to deliver a gift card Mustaine bought at a Salt Lake City, Utah shop nine days after he purchased it\nI Guarantee It: Mustaine ironically quotes Men's Warehouse's slogan in his Internet diatribe concerning the chain's failure to live up to a two-day delivery policy\nSinger Dave Mustaine took to Facebook to lambast the suit chain for failing to make good on its promise of a two-day delivery.\nHe ordered a gift card for his tour manager, but when it failed to arrive he went online to rant.\nMustaine wrote: ‘I really think that it sucks when people make false claims, that they don't care to make good on a problem that is clearly their fault, and with all of the 'ABSOLUTELY GUARANTEE IT' crap I just had to say something.'\nMustaine bought the gift card at a Men’s Wearhouse in Salt Lake City, Utah, before Christmas as a gift for his tour manager Jim Carroccio, but nine days later it still had not turned up in the post.\nMustaine wrote: ‘I know that not all of you have the kind of job that requires a suit, or wear a suit when you (if you) go to any kind of faith-based service, court date, wedding or funeral, but if you do…you are going to want to read this.\n‘You know me, I don’t complain much in writing, but I gotta get this off my chest.’\nIn the Facebook post Mustaine added that when he called up Men’s Wearhouse they made no effort whatsoever for this mix-up’.\nHe wrote: ‘We are all living in very tight financial times right now, and like I said, you may not wear a suit for your job or for an event or occasion, but if you do, I would strongly recommend you wear someone else’s suits.\n‘Go to Jos. A Bank instead. I for one, will never set foot in a Men’s Wearhouse, even for shelter from a blizzard.’\nIn a sign that thrash metal fans clearly value their customer service, Mustaine’s post was liked 8,900 times and shared 600 times.\nMost fans were behind Mustaine but some thought that his interest in suits was somewhat at odds with his public image.\nWhere's My Gift?: Mustaine purchased the gift card from Men's Wearhouse as a Christmas gift for his tour manager, JimCarroccio (pictured)\nA Suggested Alternative: Mustaine told his legions of fans to not only eschew Men's Wearhouse, but shop instead at its competitor, JoS. A. Bank\nFan Ralph Hannaberry wrote: ‘I think Dave should do a nationwide tour and play in front of every Mens Warehouse outlet in America complete with headbanging groupies and Justin Bieber as an opening act just to annoy the crap out of the establishment!’\nRocker Adam Cirucci wrote: ‘Dude, i have to say you are 100 percent RIGHT ON....MENS WEARHOUSE sucks terribly.\n‘Got my tuxes for my wedding there. They never cleaned mine and I ended up smelling like p*** on my wedding day’\nMegdeth's Mustaine was once a member of Metallica, but was ejected from the popular band because he threw a punch at its front man, James Hattfield\nMegadeth fan Aprillynn Danzig Devila added: ‘HAPPY 2013 YEAR TO YOU DAVE!!!! LOL F*** THE SUITS JUST BROOM STICKS AND WITCHES BREW!!’\nMustaine is known for his strong views and was kicked out of Metallica in 1983 for punching bandmate James Hetfield.\nA Men’s Wearhouse staff member eventually wrote to him on Facebook and promised to make amends.\nThe staff member, called Joe wrote: ‘Dave, thanks for reaching reaching out to us on Facebook.\n‘We apologize for the delay in receiving your gift card and agree that the delay is unacceptable.’"} -{"text": "\n server_metrics.ratelimit_verifier_error_total.inc(1)\n\n\ndef _log_unkey_ratelimit_response(\n account: str, metric: str, response: Optional[RatelimitResponse], check_elapsed_us: float\n) -> None:\n if response is None:\n logger.info(\n \"%s Unkey enforcement metric check account=%s metric=%s response=None check_us=%.0f\",\n _LOG_PREFIX,\n account,\n metric,\n check_elapsed_us,\n )\n return\n\n logger.info(\n \"%s Unkey enforcement metric check account=%s metric=%s accepted=%s used=%d limit=%d check_us=%.0f\",\n _LOG_PREFIX,\n account,\n metric,\n response.accepted,\n response.used,\n response.limit,\n check_elapsed_us,\n )\n\n\ndef _set_unkey_ratelimit_response(metrics: RequestMetrics, metric: str, response: Optional[RatelimitResponse]) -> None:\n if response is not None:\n metrics.ratelimit_responses[metric] = response\n\n\nclass ServerlessRequestLifetimeTracker(RequestLifetimeTracker):\n def __init__(\n self,\n metrics: RequestMetrics,\n add_disconnect_hook: Callable[[Callable[[], Awaitable[None]]], None] | None,\n ratelimit_verifier: TcRatelimitVerifier,\n unkey_verifier: Optional[TcUnkeyRatelimitVerifier],\n concurrency_limiter: ConcurrencyLimiter,\n enable_service_tier: bool,\n loadshed_tracker: Optional[LoadShedTracker] = None,\n ):\n super().__init__(\n firetext.SchedulingParams(priority=1, prefill_expiration_timestamp=None),\n add_disconnect_hook,\n )\n self._metrics = metrics\n self._metrics.scheduling_params = self._scheduling_params\n self._concurrency_limiter = concurrency_limiter\n self._loadshed_tracker = loadshed_tracker\n self._config = concurrency_limiter.get_config()\n\n # Redis verifier (write-through: tracks usage but does NOT enforce\n # when Unkey is available)\n if ratelimit_verifier.is_enabled():\n self._ratelimit_verifier = ratelimit_verifier\n server_metrics.ratelimit_verifier_status.set(1)\n else:\n self._ratelimit_verifier = None\n server_metrics.ratelimit_verifier_status.set(0)\n\n # Unkey verifier (primary enforcement when configured)\n self._unkey_verifier = unkey_verifier\n\n self._enable_service_tier = enable_service_tier\n\n def update_on_options(self, n: int, service_tier: str = \"default\"):\n if not self._enable_service_tier:\n service_tier = \"default\"\n super().update_on_options(n, service_tier)\n\n unified_priority_level = self._get_unified_priority_level(\n self._config.get_account_priority(self._metrics.user_account), service_tier\n )\n self._metrics.unified_priority_level = unified_priority_level\n if unified_priority_level == 2:\n self._scheduling_params.priority = 2\n\n untrack_handle = self._concurrency_limiter.track_request(self._metrics.user_account, n)\n self.add_disconnect_hook(untrack_handle)\n\n async def update_on_request_received(\n self, num_queued_and_active: int, queue_sizes: Optional[Dict[str, int]] = None\n ) -> None:\n \"\"\"\n Called when a request is first received, before tokenization.\n Checks if the server is overloaded and raises OverloadedError if so.\n \"\"\"\n unified_priority_level = self._get_unified_priority_level(\n self._config.get_account_priority(self._metrics.user_account), self._service_tier\n )\n error_message = self._concurrency_limiter.validate_on_request_received(\n num_queued_and_active, unified_priority_level\n )\n if error_message:\n if queue_sizes:\n logging.info(\n \"Overloaded! Coordinator queue state: \" + \" \".join(f\"{k}={v}\" for k, v in queue_sizes.items())\n )\n self._metrics.rejection_reason = \"concurrency_queue\"\n raise OverloadedError(internal_message=error_message)\n\n # Latency-based load shedding check\n if self._loadshed_tracker is not None:\n shed_reason = self._loadshed_tracker.get_shedding_decision(unified_priority_level)\n if shed_reason is not None:\n self._loadshed_tracker.record_request_shed(\n reason=shed_reason,\n service_tier=self._service_tier,\n unified_priority_level=unified_priority_level,\n )\n # TODO(nelson): Include the dominant load-shed signal (for example TTFT p95)\n # in this reason in a follow-up observability PR.\n self._metrics.rejection_reason = f\"pid_shed_{shed_reason}\"\n raise OverloadedError(\n internal_message=f\"load shed reason={shed_reason} service_tier={self._service_tier} account={self._metrics.user_account}\",\n )\n self._loadshed_tr"} -{"text": "Wigan 4 Newcastle 0: Martinez men show touch of Cruyff to crush Toon's orange army\nAs far as Wigan are concerned, the bigger they come, the harder they fall. Having seen off Manchester United, Arsenal and Liverpool as they fight off relegation, Roberto Martinez's battlers ripped apart in-form Newcastle.\nNewcastle, clad in orange, arrived having won six games on the trot to dream of the Champions League.\nSurvivors: Wigan celebrate Franco di Santo's goal\nWIGAN: Al Hansi, Alcaraz, Caldwell, Figueroa, Boyce, McArthur, McCarthy, Beausejour, Maloney, Di Sando (Sammon 68), Moses (Gomez 83). Unused subs: Pollitt, Crusat, Jones, Rodallega, Diame.\nGoals: Moses 13, 15, Maloney 36, Di Santo 45.\nBooked: Alcaraz, McCarthy\nNEWCASTLE: Krul, Simpson (Perch 81), Williamson, Coloccini, Santon, Cabaye (Fergison 83), Tiote, Guitierrez, Ben Arfa (Taylor 73), Cisse, Ba. Unused subs: Elliot, Gosling, Best, Ameobi.\nReferee: Mike Dean\nThey left with the same sinking feeling experienced by Sir Alex Ferguson and United after a shock 1-0 defeat at the DW Stadium this month. Wigan played their highflying visitors off the park.\nNewcastle's shirts looked like Holland but it was Wigan who played like the Dutch - a source of pride for Martinez, whose managerial hero is Johan Cruyff.\nIt is to Martinez's credit that he believes the group of players he has at Wigan can replicate the style of Cruyff's Barcelona, the team he most admired as a boy in Spain.\nTo do so in a relegation battle makes his achievement more remarkable. Wigan scored four times in the opening 45 minutes and Newcastle were unable to cope with their slick passing and wing-backs.\nNet profit: Newcastle's keeper Tim Krul looks on as Victor Moses's header sails past him\n'We didn't match their intensity. That's going to make you look bad in the Premier League,' said Newcastle boss Alan Pardew, who watched aghast as Victor Moses (two), Shaun Maloney and Franco di Santo scored.\n'We said in the dressing room we'd not be complacent but we got caught out. We failed as a team. Sometimes when you've won six on the trot you can come away from home and think \"We will win here today\". But this result will put a shock into the players.\nPromised land: Moses fires home his second\nMartinez's team, odds-on for relegation not so long ago, are three points clear of danger with games against struggling Blackburn and Wolves to come.\n'We showed a clinical touch in front of goal, which hasn't always been the case,' said their manager.\n'The movement off the ball was a joy to watch. Victor Moses was a joy to watch. He's the type of player you pay to watch. We lost eight games in a row this season. It would have finished a lot of teams off but this group didn't feel sorry for themselves. We've experience of relegation battles and that has helped.\n'Sometimes you have more time on the ball against top teams. We have shown we can be competitive against anyone.'\nWigan have been in the top flight since 2005 and will surely extend their stay now.\nIt's in our hands: Wigan keeper Ali Al Habsi knows the score\nFor Newcastle, it will be tough to qualify for the Champions League.\nThey will lose fourth spot if Spurs beat Blackburn today, and Chelsea and Manchester City are next up. But Pardew said: 'Champions League football isn't away from us by any stretch of the imagination.'\nPardew is a methodical thinker and tactically astute, but he failed to stop Wigan. Martinez played 3-5-2 and wing-backs Emerson Boyce and Joey Beausejour marauded down the flanks untroubled. It was no coincidence they set up the first two goals, both converted by Moses.\nShoot to thrill: Di Santo dances with delight after scoring for Wigan\nBy the time Pardew changed formation to match Wigan in midfield, the visitors were 2-0 down. Wigan duly added two more before the interval, at which stage Pardew reverted to Plan A.\nBut there was no chance of a comeback despite an improved second half which saw Papiss Cisse, who had scored in his previous six games, twice hit the woodwork.\nThat ruffled feeling: Newcastle United manager Alan Pardew given plenty to think about\nWith Blackburn boss Steve Kean looking on glumly, Wigan took the lead. Boyce crossed for Moses to head in despite conceding height to marker Mike Williamson.\nShortly after, Beausejour's cross was feebly cleared by Fabricio Coloccini to Moses, who steered the ball in.\nNewcastle shifted to three centrebacks but it made no difference. A first-time ball from Di Santo allowed Maloney to run inside Danny Simpson to make it 3-0.\nNobody closed Di Santo down on the stroke of half-time and the striker pinged a superb finish from 20 yards into the top corner for Wigan's fourth.\nKrul fooled: Conor Sammon fires past the Newcastle keeper"} -{"text": "Children returning to classes across Connecticut Monday will see uniformed police officers in and around their schools as officials grapple with how to handle concerned parents and anxious students following the massacre Friday at Sandy Hook Elementary School in Newtown.\nSchool administrators over the weekend posted on school district websites instructional videos and psychologists' tips on how to talk to their children about violence in anticipation of what's expected to be a tough day for many schools and their students.\nOfficials said they hope the increased police patrols and heightened safety awareness will not raise the anxiety of children already struggling with details they may know about the killings.\n\"I know Friday was one of the toughest for school superintendents, the worst nightmare any of us could fathom,\" Cheshire Schools Superintendent Greg J. Florio said Sunday. He said he expects Monday to be just as rough, similar to the day children first returned to school after the Sept. 11 terrorist attacks.\n\"It's kind of a fine balance we have to keep,\" Florio said. \"You know that people are aware of the situation but you want to have as much of a sense of normalcy as you can.\"\nBy the time the school bell rings Monday morning, some school staff members will already have met to discuss security and other issues related to Friday's shooting. Other meetings took place over the weekend and included input from parents and residents without students.\nStudents at several schools will see police officers during the morning drop-off and at other times during the school day.\n\"Police are a visible presence throughout the year but will be especially so next week,\" Canton Superintendent of Schools Kevin Case said Sunday. Patrol cars will be parked in front of the three school buildings and officers will be inside.\nFlorio said the police presence is for \"self-assurance\" for students who may be anxious about the safety of their school.\n\"We'll obviously be paying extra attention to security [this week], making sure everything is as safe as possible,\" said Tom Moore, West Hartford's assistant superintendent for administration.\nMoore said there will not be police officers in schools that don't normally have them, but \"people will probably notice extra patrols\" in school areas.\nGrief counselors are ready in most schools to talk with students who need to talk about the tragedy, administrators said.\n\"We think there are going to be a lot of people needing support,\" Windsor Superintendent of Schools Jeffrey Villar said Sunday. The district's crisis intervention team is ready, Villar said, to assist families and students as needed.\nFlorio said teachers are not going to try to explain what happened \"in any greater depth\" than what they have learned at home but will be ready to get students with concerns any help they may need. Florio said he has even instructed the district's school bus drivers \"not to say anything inappropriate\" related to the shooting.\nWallingford Superintendent Salvatore Menzo said schools are not planning to discuss the shooting in classes. However, he said, Wallingford teachers will be ready if the conversation comes up and will approach any discussion based on a student's developmental level.\nWhile there is not going to be an acknowledgment of the shooting for the district's younger students, Menzo said he does plan to memorialize the slain Newtown children with students in grades 6 through 12. On Monday, the older children will observe a moment of silence in their memory.\nIn the coming weeks, schools will be reviewing their safety policies as well as going over emergency drills.\nVillar said he was also planning to meet with police and building principals on Wednesday to review the district's crisis plan.\n\"It's a good plan but there's always something you can learn from these things,\" Villar said.\nNowhere will the attention to safety be greater than in Monroe. The town's Chalk Hill School will be used for Sandy Hook Elementary School students, Monroe Superintendent James Agostine said Sunday.\nAgostine said he is not sure when Sandy Hook students will arrive, but said his district is already getting the school ready for them.\n\"We are happy to assist in some way,\" Agostine said.\nMonroe school officials must reassure parents, staff and students that Monroe's schools are safe, he said. They must also prepare to reopen Chalk Hill School, a middle school that closed almost two years ago.\nWhen Monroe school officials learned Friday of the shooting in Newtown, the district followed lockdown procedures. Some elements of a lockdown will remain in place on Monday, Agostine said. There will be limited access to school buildings and a police officer will be stationed at every school, he said.\n\"We want to reassure staff and students that they are secure,\" Agostine said.\nAgostine added that counselors will be available for anyone who needs help. Building principals will meet with their staff members early Monday to talk about the shooting, and Agostine said classroom teachers know how to talk to their students about the situation.\nAgostine said letters about the shooting and the precautions the district is taking were sent to parents this past weekend."} -{"text": "acker.record_request_admitted(unified_priority_level)\n\n if self._unkey_verifier is not None:\n unkey_responses = self._unkey_verifier.validate_on_request_received(self._metrics.user_account)\n self._metrics.ratelimit_responses.update(unkey_responses)\n for metric in (METRIC_TOKENS_PROMPT, METRIC_TOKENS_CACHE_ADJUSTED_PROMPT, METRIC_TOKENS_GENERATED):\n response = unkey_responses.get(metric)\n if response is None or response.accepted:\n continue\n self._metrics.rejection_reason = metric\n rejected_metrics = f\"{metric}={response.used}/{response.limit}\"\n logger.info(\n \"%s Rejected at Unkey precheck account=%s rejected_metrics=%s\",\n _LOG_PREFIX,\n self._metrics.user_account,\n rejected_metrics,\n )\n raise OverloadedError(\n is_rate_limit=True,\n internal_message=(\n f\"rate_limit_accepted=False rejected_metrics={rejected_metrics} \"\n f\"account={self._metrics.user_account}\"\n ),\n )\n\n async def update_on_tokenization(self, tokens_prompt: int):\n has_any_verifier = self._ratelimit_verifier is not None or self._unkey_verifier is not None\n if not has_any_verifier:\n self.add_disconnect_hook(self._update_completed_request_loadshed_tracker)\n return\n\n unified_priority_level = self._get_unified_priority_level(\n self._config.get_account_priority(self._metrics.user_account), self._service_tier\n )\n if unified_priority_level == 2:\n self._scheduling_params.priority = 2\n\n concurrency_limit_accepted = self._concurrency_limiter.check_limit(self._metrics)\n if not concurrency_limit_accepted:\n # Reject before prompt-token write-through/admission so requests that\n # never reach prefill do not consume prompt TPM.\n concurrency_response = self._metrics.concurrency_response\n rejected_metrics = \"\"\n if concurrency_response is not None:\n rejected_metrics = f\"concurrency_limit={concurrency_response.used}/{concurrency_response.limit}\"\n self._metrics.rejection_reason = \"concurrency_limit\"\n internal_message = (\n f\"rate_limit_accepted=True \"\n f\"concurrency_limit_accepted={concurrency_limit_accepted} \"\n f\"rejected_metrics={rejected_metrics} \"\n f\"account={self._metrics.user_account}\"\n )\n logger.info(\n \"%s Load shedding account=%s source=concurrency rejected_metrics=%s \"\n \"rate_limit_accepted=%s concurrency_accepted=%s\",\n _LOG_PREFIX,\n self._metrics.user_account,\n rejected_metrics,\n True,\n concurrency_limit_accepted,\n )\n raise OverloadedError(internal_message=internal_message)\n\n allow_redis_ratelimiting = self._unkey_verifier is None\n\n # --- Redis write-through ---\n # Redis enforces only when Unkey is not active; otherwise it is purely\n # write-through so the two enforcement paths stay orthogonal.\n redis_accepted = True\n if self._ratelimit_verifier is not None:\n redis_accepted = await self._ratelimit_verifier.update_on_tokenization(\n self._metrics,\n tokens_prompt,\n self._n,\n allow_redis_ratelimiting=allow_redis_ratelimiting,\n )\n logger.debug(\n \"%s Redis write-through account=%s tokens=%d redis_accepted=%s\",\n _LOG_PREFIX,\n self._metrics.user_account,\n tokens_prompt,\n redis_accepted,\n )\n\n if allow_redis_ratelimiting and not redis_accepted:\n internal_message = (\n f\"rate_limit_accepted={redis_accepted} \"\n f\"concurrency_limit_accepted={concurrency_limit_accepted} \"\n f\"rejected_metrics= \"\n f\"account={self._metrics.user_account}\"\n )\n logger.info(\n \"%s Rejected account=%s source=redis rejected_metrics=%s \"\n \"rate_limit_accepted=%s concurrency_accepted=%s\",\n _LOG_PREFIX,\n self._metrics.user_account,\n \"\",\n redis_accepted,\n concurrency_limit_accepted,\n )\n raise OverloadedError(is_rate_limit=True, internal_message=internal_message)\n\n # --- Unkey enforcement (primary when configured) ---\n # This is intentionally the final admission step because accepted prompt\n # admission enqueues the prompt-token charge to Unkey.\n unkey_response = None\n if self._unkey_verifier i"} -{"text": "A former top official of the East Orange Water Commission has admitted to a variety of offenses related to manipulating water-supply tests and test results in 2011, including the flushing of a well containing a potentially carcinogenic industrial solvent into the Passaic River in Florham Park.\nAccording to a press release issued Friday by Acting Attorney General John J. Hoffman, William Mowell, 52, of Wyckoff, the former assistant executive director and engineer for the EOWC, pleaded guilty to a charge of second-degree conspiracy before Superior Court Judge Carolyn Wright in Essex County.\nMowell was indicted on Feb. 12 along with Harry L. Mansmann, the former executive director of the EOWC. Mansmann is now deceased.\nMowell pleaded guilty to a charge that he conspired to engage in a pattern of official misconduct, tamper with public records and violate both the New Jersey Safe Drinking Water Act and the New Jersey Water Pollution Control Act.\nUnder the plea agreement, the state will recommend that Mowell be sentenced to three years in state prison. Wright scheduled his sentencing for Nov. 7.\nIn pleading guilty, Howell admitted that he conspired with Mansmann to falsify mandatory testing of the EOWC's water supply to hide elevated levels of the contaminant tetrachloroethylene, also known as PERC, an industrial solvent used for dry cleaning and other purposes. PERC is classified as a probable carcinogen.\nThe EOWC supplies drinking water to East Orange and also has a contract to supply drinking water to South Orange. The water is pumped from well fields in eastern Morris and western Essex counties through a pumping station in Millburn to two reservoirs, from which water is distributed to customers. The utility blends water from its various wells at its treatment plant before water is distributed to customers.\nThe EOWC previously had encountered problems with elevated levels of PERC in several wells.\nMowell admitted that he took water samples for testing after the contaminated wells had been turned off for several days. He admitted that he knew that meant that the test results would not accurately reflect the water supply.\nThe state's investigation also revealed that the defendants, in an effort to flush out PERC, directed that the well with the most contamination — which had been found to have PERC levels as high as 25 times the permitted level under the New Jersey Safe Drinking Water Act, and nearly twice the level permitted for discharges in connection with remediation projects under the New Jersey Water Pollution Control Act — be pumped to a pipe that discharged directly onto the bank of the Passaic River in Florham Park from March 24 through April 20, 2011.\nMowell admitted that he and Mansmann had water from that well pumped to the bank of the river during that period.\nMowell further admitted that when the New Jersey Department of Environmental Protection required the EOWC to issue a public notice about non-compliant PERC levels in the system, he and Mansmann issued a notice in July 2011 falsely stating that the EOWC had reduced pumping from certain wells on an ongoing basis and, as a result, tests during the first half of 2011 revealed levels under the DEP limit.\nIn fact, they only reduced pumping from contaminated wells temporarily for sampling, and PERC levels had exceeded the limit, Hoffman said.\nBy making it appear that the water system was in compliance with regulations, Mowell and Mansmann sought to enable the EOWC to avoid the need to build an expensive \"air stripper\" water-purification plant to remove volatile organic compounds including PERC. The EOWC currently is proceeding with plans to build such a treatment plant, Hoffman stated.\nThe DEP has done independent testing of the East Orange water system, showing the water quality for residents of East Orange and South Orange to be safe.\n\"Mowell had a duty to ensure the quality and safety of the drinking water supplied to tens of thousands of residents, and instead he deliberately falsified test results to cover up elevated levels of a potential carcinogen,\" Hoffman said. \"He showed a complete disregard for the people he served and the harm that might have resulted from his conduct.\"\nThe charges stemmed from an investigation by the Division of Criminal Justice, which began with a referral from the State Department of Environmental Protection (DEP) Compliance & Enforcement Program. Deputy Attorney General Phillip Leahy prosecuted the case and took the guilty plea for the Environmental Crimes Unit of the Division of Criminal Justice Specialized Crimes Bureau.\nStaff Writer William Westhoven: 973-428-6627; email@example.com."} -{"text": "Sprint Unveils Pricey Pay-As-You-Go Plan\nJanuary 3, 2013 5:15 PM\ncomment(s) - last by\nPlan comes up short compared to Boost or Virgin\nIn a strange scenario, Sprint Nextel Corp. (\n) has decided to offer its own branded pay-as-you-go service. Takers on the new plan -- which kicks off Jan. 25 -- will have to pony up $250 USD for a Galaxy S (the \"Victory\" from Samsung Electronics Comp., Ltd. (\n)) or $150 USD for an entry level Android, LG Electronics, Inc.'s (\n) \"Elite\". None of the high-end contract handsets can be used with the new plan.\nIf the hardware/hardware pricing is a bit of a turn-off, the monthly fees won't make you much happier. It will cost $70 USD/month to get unlimited talk/text/web. Or if you want you can pay as little as $50 USD to get a feature phone, which comes with a $50 USD/month \"unlimited\" plan, with the built in limitation of having inherently limited internet capabilities.\nWorst of all, there's no mention of roaming on EVDO, so\nthat you may be hit with fees that eat up your account payments, when using the device in areas where the Sprint network is dead or weak.\nSprint's pricing on its self-branding PAYG plan isn't great. [Image Source: Android Police]\nThe truly curious part is that Sprint is offering up an inferior deal to ... itself.\nVirgin Mobile USA\noffers the same LG Elite handset for $80 and a $55 USD \"unlimited\" monthly fee. In other words, if you go with Sprint's branded service you will lose approximately $430 USD over a 2-year period. Virgin customers also get for a mere $150 USD, a far fancier EVO V 4G from HTC Corp. (\n), a modified variant of the EVO 3D.\nThere's concern the plan may not include 2G roaming. [Image Source: Android Police]\nthere's Boost Mobile\n, the other prepaid player -- also owned by Sprint. Boost offers the Samsung Galaxy Rush (another Galaxy S variant) for $149 USD ($100 USD less than Sprint), an LG Venice (aka Optimus L7) for $220 USD, or a Warp Sequent by ZTE Corp. (\n) for $200 USD. While throttled after 2.5 GB of data use, Boost also offers \"unlimited\" for $55 USD/month.\nAnd then there are upstart providers like Republic Wireless who offer even\nservices albeit with slower connection speeds. For example Republic sells the Motorola Mobility DEFY XT for $249 USD, but then only charges you $19 USD/month for \"unlimited\" access, thanks to a hybrid system using 3G roaming and Wi-Fi (when available).\nIn other words, Sprint's service appears to offer few (perhaps no data caps?) if any advantages at this point over its\nprepaid brands, let alone over rival offerings that adopt more unusual service models.\nThis article is over a month old, voting and posting comments is disabled\nIt may be a bit outlandish...\n1/4/2013 3:55:58 PM\n... but they are probably just testing the waters and getting this straightened out without risking the consumer base of Virgin Mobile.\nIt could be that they are deciding to do away with Virgin Mobile USA but not wanting to sacrifice the consumer base until they have the house built to put them.\n\"We don't know how to make a $500 computer that's not a piece of junk.\" -- Apple CEO Steve Jobs\nVirgin Mobile to Offer Prepaid iPhone Starting June 29\nJune 7, 2012, 9:50 AM\nBoost Mobile Introduces $50 Unlimited Voice, Data Plans\nJanuary 16, 2009, 7:46 AM\nRetiree Sues Apple For $7,500 for Wiping Honeymoon Photos From His iPhone\nNovember 30, 2015, 10:23 AM\niPhone 7 May Pack 3-4 GB Memory, More Storage; 4-Inch Comeback is Rumored\nNovember 20, 2015, 10:12 PM\nOnePlus One, OnePlus 2 Will Receive Android Marshmallow in Q1 2016\nNovember 16, 2015, 9:58 AM\nLenovo Whoa: Motorola Droid MAXX 2 and Turbo 2 Break Cover in Leaks\nOctober 26, 2015, 3:12 PM\nLeak: Apple Preps for First Real Android App Foray With New Apple Music App\nOctober 24, 2015, 1:59 PM\nPepsi Smartphone? Empty Calories Coming Soon to the Midrange\nOctober 12, 2015, 11:41 PM\nLatest Blog Posts\nSceptre Airs 27\", 120 Hz. 1080p Monitor/HDTV w/ 5 ms Response Time for $220\nDec 3, 2014, 10:32 PM\nCostco Gives Employees Thanksgiving Off; Wal-Mart Leads \"Black Thursday\" Charge\nOct 29, 2014, 9:57 PM\n\"Bear Selfies\" Fad Could Turn Deadly, Warn Nevada Wildlife Officials\nOct 28, 2014, 12:00 PM\nThe Surface Mini That Was Never Released Gets \"Hands On\" Treatment\nSep 26, 2014, 8:22 AM\nISIS Imposes Ban on Teaching Evolution in Iraq\nSep 17, 2014, 5:22 PM\nMore Blog Posts\nCopyright 2016 DailyTech LLC. -\nTerms, Conditions & Privacy Information"} -{"text": "s not None:\n metric_check_start = time.monotonic()\n unkey_response = self._unkey_verifier.admit_prompt_ratelimit(\n self._metrics.user_account, tokens_prompt=tokens_prompt\n )\n _log_unkey_ratelimit_response(\n self._metrics.user_account,\n METRIC_TOKENS_PROMPT,\n unkey_response,\n (time.monotonic() - metric_check_start) * 1_000_000,\n )\n _set_unkey_ratelimit_response(self._metrics, METRIC_TOKENS_PROMPT, unkey_response)\n prompt_accepted = unkey_response is None or unkey_response.accepted\n\n rejected_metrics = \"\"\n if unkey_response is not None and not unkey_response.accepted:\n self._metrics.rejection_reason = METRIC_TOKENS_PROMPT\n rejected_metrics = f\"{METRIC_TOKENS_PROMPT}={unkey_response.used}/{unkey_response.limit}\"\n logger.debug(\n \"%s Unkey prompt admission account=%s tokens=%d prompt_accepted=%s \" \"redis_accepted=%s\",\n _LOG_PREFIX,\n self._metrics.user_account,\n tokens_prompt,\n prompt_accepted,\n redis_accepted,\n )\n\n if not prompt_accepted:\n internal_message = (\n f\"rate_limit_accepted={prompt_accepted} \"\n f\"concurrency_limit_accepted={concurrency_limit_accepted} \"\n f\"rejected_metrics={rejected_metrics} \"\n f\"account={self._metrics.user_account}\"\n )\n logger.info(\n \"%s Rejected account=%s source=unkey rejected_metrics=%s \"\n \"rate_limit_accepted=%s concurrency_accepted=%s\",\n _LOG_PREFIX,\n self._metrics.user_account,\n rejected_metrics,\n prompt_accepted,\n concurrency_limit_accepted,\n )\n raise OverloadedError(is_rate_limit=True, internal_message=internal_message)\n\n if unkey_response is not None and unkey_response.accepted:\n reservation_tpm = self._unkey_verifier.get_reservation_tpm(self._metrics.user_account)\n # TODO(nelson): Move reservation L3 scheduling to update_on_request_received (pre-tokenization).\n # PID shedding runs before tokenization while the request is still at unified L1.\n # TODO(nelson): unkey_response.used includes locally pending deductions,\n # which inflates the value beyond what Unkey has globally confirmed.\n # For L3 reservation checks, compare against Unkey-confirmed usage\n # only (usage.limit - usage.remaining) to avoid false denials under\n # concurrent load. Not triggerable today (reservation_tpm=0 everywhere).\n if reservation_tpm is not None and reservation_tpm > 0 and unkey_response.used <= reservation_tpm:\n self._scheduling_params.priority = 3\n logger.info(\n \"%s Promoted to L3 account=%s used=%d reservation=%.0f\",\n _LOG_PREFIX,\n self._metrics.user_account,\n unkey_response.used,\n reservation_tpm,\n )\n\n self.add_disconnect_hook(self._update_completed_request)\n\n async def update_tokens_generated_progress(self, token_count: int):\n \"\"\"Charge generated tokens via both verifiers.\"\"\"\n if self._ratelimit_verifier:\n await self._ratelimit_verifier.update_tokens_generated_progress(self._metrics, token_count)\n if self._unkey_verifier:\n self._unkey_verifier.enqueue_force_charge(self._metrics.user_account, token_count)\n\n async def update_cache_adjusted_prompt_tokens_progress(self, token_count: int):\n \"\"\"Charge cache-adjusted prompt tokens after prefill establishes the cache hit length.\"\"\"\n if self._ratelimit_verifier:\n await self._ratelimit_verifier.update_cache_adjusted_prompt_progress(self._metrics, token_count)\n if self._unkey_verifier:\n self._unkey_verifier.enqueue_cache_adjusted_prompt_charge(self._metrics.user_account, token_count)\n\n async def _update_completed_request(self):\n try:\n # Snapshot the untracked delta before Redis verifier zeroes it\n unkey_final_chunk = self._metrics.num_generated_tokens - self._metrics.num_generated_tokens_tracked\n\n if self._ratelimit_verifier:\n await self._ratelimit_verifier.update_completed_request(self._metrics)\n if self._unkey_verifier:\n self._unkey_verifier.enqueue_completed_request(self._metrics.user_account, unkey_final_chunk)\n finally:\n await self._update_completed_request_loadshed_tracker()\n\n async def _update_completed_request_loadshed_tracker(self):\n if self._loadshed_tracker is not None:\n self._loadshed_t"} -{"text": "Kras gene triggers metabolic changes that fuel cancer cells\nResearchers at Dana-Farber Cancer Institute have shown that advanced pancreatic cancers in mice can't survive without continued expression of a mutant oncogene that \"rewires\" key metabolic pathways to fuel the cancer cells.\nThe findings, published in the April 27 issue of the journal Cell, suggest that some of these altered metabolic pathways might be potential targets for future drugs to treat the deadly cancer.\nThe investigators report that when they experimentally shut down the expression of the Kras oncogene in mice, the pancreatic tumors rapidly shrank, and, in some cases, left no visible signs of cancer. This outcome, they said, provides evidence that advanced pancreatic cancers are \"addicted\" to the Kras oncogene for their continued growth.\n\"This experiment allowed us to demonstrate that pancreatic cancers in their native setting are dependent on continued oncogenic Kras expression for tumor maintenance,\" says Alec Kimmelman, MD, PhD, co-corresponding author of the report along with Ronald DePinho, MD, formerly at Dana-Farber and now at M.D. Anderson Cancer Center in Houston.\nKimmelman said they also discovered that oncogenic Kras \"basically reprograms the glucose metabolism of the cell by regulating the expression of key metabolic enzymes, some of which might provide novel therapeutic targets.\" If that is the case, then attacking these pathways might be more feasible than attempting to block Kras directly, since Kras has proven frustratingly difficult to hit with designer drugs.\nIt is estimated that pancreatic ductal adenocarcinoma will be diagnosed in more than 43,000 people in the United States in 2012, according to the American Cancer Society, and more than 37,300 will die from the disease, which has a 5-year survival rate of only 5 percent.\nIt has been known that the Kras oncogene is an important driver of pancreatic cancer, unleashing chaotic proliferation of cancer cells, but a key question remained as to whether cancer cells that developed spontaneously in the pancreas needed Kras to survive.\nTo clarify this point, Kimmelman and colleagues created a genetically engineered mouse model in which the mutant Kras gene in the pancreas could be turned on and off at will through dietary manipulation. In addition, the tumor suppressor gene p53 was \"knocked out\" to model the loss of p53 that occurs in pancreatic cancer.\nNext, the scientists removed an antibiotic from some of the rodents' feed, which inactivated the Kras oncogene. Scans and histology showed tumors beginning to shrink within two or three days and were diminished by an average of 50 percent after a week. PET scans revealed that the remaining tumors were no longer consuming glucose, meaning they were inactive. In addition, malignant changes in the tumors' tissue environment caused by the Kras oncogene had been reversed.\nIn collaboration with the laboratory of Lewis Cantley, PhD, of Beth Israel Deaconess Medical Center, the investigators then determined how Kras oncogene activity enabled the tumors to survive and grow. \"We found that Kras is regulating glucose metabolism in pancreatic cancer,\" Kimmelman says.\nThe researchers showed that the oncogene – which regulates the activity of multiple genes in cells – \"reprogrammed\" gene pathways that are involved in utilizing and processing glucose, which serves as fuel for cells. For example, experiments revealed that Kras activity shunted glucose building blocks into a pathway called the non-oxidative pentose phosphate pathway (PPP) – a previously unknown connection. Importantly, suppressing these key metabolic enzymes regulated by Kras resulted in a significant impairment of tumor growth.\n\"These results suggest that it may be possible to attack tumors by inhibiting some of these enzymes,\" Kimmelman explains, though he cautions that it remains to be seen whether the enzymes can be reduced without having unwanted effects on the body.\nStill, this research may ultimately yield new avenues for treating various cancers that are driven by the hard-to-target Kras oncogene.\nKimmelman is co-first author of the report, along with Haoqiang Ying, MD, PhD, of the DePinho lab, and Costas Lyssiotis, PhD, from the Cantley lab. The research was supported by grants from the National Institutes of Health."} -{"text": "No, I will not let a \"Dancing with the Stars\" finale breakdown -- no matter how accurate my predictions have been or how relevant it is to sports fans -- stay up here for the afternoon.\nInstead, I will attempt to wade into the new college basketball season.\nToday's topic? Final Four picks.\nThat meant the Gators would return all five starters from a national championship team -- plus the key frontcourt and key backcourt reserve. Keeping count? That's the Top 7 back on a defending champ.\nThe frontcourt of Noah, Horford and Brewer -- all NBA Lottery-quality picks -- is arguably the best in college hoops in the last 25 years. I've been racking my brain for another contender, and the best I could do is the Fab Five's Webber-Howard-Rose/Jackson. But those guys never won a title. (Got any other nominees? Augmon-LJ-Ackles? Remember: To win the argument, your pick really should have NBA-level talent across the line AND a championship.)\nMany top college teams have a quality inside player. Hansbrough at UNC, Wright at\nBut how many have TWO? (In hindsight, that was one reason LSU emerged last season: The tandem of Davis and Tyrus Thomas was unstoppable.) Two that are as athletic or multi-skilled as Noah and Horford.\nI go through the other contenders, and I can't find a team that can match up – player for player – with the Gators, across the starting five and first subs off the bench. (And that's BEFORE I layer in the championship experience, where the Gators have a vast advantage over every other contender.)\nHere's the other reason to like Florida, even if you would otherwise be inclined to hate them: In this era where you can't go a season without complaining about players -- yours or simply the national \"stars\" -- leaving for the NBA early, isn't it unprecedentedly refreshing to see three players forego the NBA (Lottery, mind you) for a chance to repeat as college champs? How can you begrudge that? (Especially if you consider yourself a college hoops \"traditionalist.\") How can you not root for that?\n(What: Instead you'll stand behind UNC, whose title team stars from 2005 chose to leave en masse for the NBA? These Gators have shamed that UNC team and set a new example for future college stars that ultimately can do more for college hoops than any artificial NBA draft age-limit or high school \"developmental\" program. Again: They have made it easy to root for them, even if you reflexively hate Florida or reflexively hate defending champions. I'll settle for intensely begrudging respect.)\nSo, anyway, I think it's the Gators to win the title, and everyone else is playing for the chance to round out the Final Four.\n(If I had a hesitation, it's that the Gators started last season unranked, showing you how much the \"experts\" know. And even heading into the Tournament, they weren't given much of a shot. If that isn't a cautionary tale about making predictions, I don't know what is.)\nWho is this year's\nUNC? Balancing too many sick freshmen with sophs who are probably more mentally ready to contribute in March. Of course, these sophs were the same losers who lost to a vastly less talented George Mason team. Motivation or foreshadowing?\nPitt? Please. Aaron Gray? There's a reason he pulled out of the NBA Draft. UCLA? Final Four experience, but not without steady PG Jordan Farmar. LSU? Smacks of a \"dream run\" one-year wonder a year ago.\nBut as we continue down the Top 10, I see two teams that I like to do damage in March:\nGeorgetown, the only team to give Florida a game in last season's NCAA Tournament (and knowing precisely what it takes to beat them), and Wisconsin, another team that plays deliberately enough to keep them in most games, particularly in March. (Plus, they have one of the Top 10 players in the country in Alando Tucker, who makes my first-team All-America list. That's coming later this week.)\nMy fourth Final Four team? I want to say\nMy pick: Georgia Tech, which combines a sick freshman class (\"Fab Three?\" Eh. Needs work.) with enough upper-class experience to reverse last season's 11-17 record into a dramatic March run. (Now, please don't blitz me for being internally consistent in touting GA Tech's youth but discounting the same factors for UNC.)\nRest of Final Four:\nComments Question: Who's your pick to win the college hoops national title? Who else is in your Final Four? Which team aren't we talking about that we SHOULD be? Which darkhorse team could be this year's"} -{"text": "racker.update_completed_request(\n self._metrics.sequences,\n service_tier=self._service_tier,\n unified_priority_level=self._get_unified_priority_level(\n self._config.get_account_priority(self._metrics.user_account), self._service_tier\n ),\n )\n\n def _get_unified_priority_level(self, account_priority: int, service_tier: str) -> int:\n \"\"\"Compute the unified priority level for a given account and service tier.\n\n Returns:\n int: The unified priority level:\n - 0: Low priority (over limit, shed first)\n - 1: Normal priority\n - 2: High priority (service_tier=priority, shed last)\n - 3: Reserved (under reservation — assigned in\n update_on_tokenization for GPU queue scheduling only;\n NOT used for load shedding, see note below)\n\n Note: L3 is assigned after tokenization in update_on_tokenization,\n but load shedding runs before tokenization in update_on_request_received.\n At shedding time, under-reservation accounts are still at L1 and receive\n no shedding protection. If reservation-aware shedding is needed, a\n pre-tokenization reservation check must be added to update_on_request_received.\n \"\"\"\n if service_tier == \"priority\":\n return 2\n return max(0, min(account_priority, self._get_total_unified_priority_level_count() - 1))\n\n @staticmethod\n def _get_total_unified_priority_level_count() -> int:\n \"\"\"Number of priority levels that participate in pre-tokenization load shedding.\n\n Returns 3 (levels 0, 1, 2). Level 3 (reserved / under-reservation) is\n assigned in update_on_tokenization for GPU queue scheduling priority,\n but does NOT provide load shedding protection: shedding runs in\n update_on_request_received (before tokenization) when the request is\n still at L1. Keeping this at 3 avoids adding L3 to the shedding\n formula. To exempt reserved accounts from shedding, a separate\n pre-tokenization reservation check would be needed.\n \"\"\"\n return 3\n\n\ndef create_serverless_request_lifetime_tracker_factory(\n server_metrics,\n server_args,\n model_args,\n) -> Callable:\n \"\"\"Creates a factory function for serverless request lifetime tracking.\n\n Instantiates ConcurrencyLimiter, Redis verifier, Unkey verifier + sync\n worker, and LoadShedTracker once. Reused across all requests.\n \"\"\"\n config_handle = get_serverless_config_handle(server_args.configmap_dir)\n deployment_name = get_deployment_name()\n\n serverless_limiter = ConcurrencyLimiter(\n config_handle,\n model_args.max_batch_size,\n lambda: server_metrics.occupancy_gauges[(\"generator\", 0)].gauges[\"in_queued\"]._value.get(),\n )\n\n # Redis verifier (write-through; enforcement is gated off while Unkey is active)\n ratelimit_verifier = TcRatelimitVerifier(config_handle)\n\n # Unkey verifier (primary enforcement when --unkey-enforcement-enabled):\n # Reject/demote decisions come from Unkey's global usage tracking.\n # Redis continues to write usage for backward compatibility.\n unkey_verifier = None\n if server_args.unkey_enforcement_enabled:\n unkey_api_key = server_args.unkey_api_key or os.environ.get(\"UNKEY_API_KEY\", \"\")\n if unkey_api_key:\n cache_store = RatelimitCacheStore()\n cost_queue: queue.Queue = queue.Queue()\n force_charge_queue: queue.Queue = queue.Queue()\n unkey_client = UnkeyClient(\n api_key=unkey_api_key,\n base_url=server_args.unkey_base_url,\n )\n sync_worker = RatelimitSyncWorker(\n cache_store=cache_store,\n cost_queue=cost_queue,\n force_charge_queue=force_charge_queue,\n unkey_client=unkey_client,\n router_name=deployment_name,\n environment=server_args.environment,\n server_metrics=server_metrics,\n )\n sync_worker.start()\n unkey_verifier = TcUnkeyRatelimitVerifier(\n cache_store=cache_store,\n cost_queue=cost_queue,\n force_charge_queue=force_charge_queue,\n router_name=deployment_name,\n sync_worker=sync_worker,\n )\n atexit.register(unkey_verifier.stop)\n logger.info(\n \"%s Unkey ratelimit enforcement started deployment=%s\",\n _LOG_PREFIX,\n deployment_name,\n )\n else:\n logger.warning(\n \"%s --unkey-enforcement-enabled set but --unkey-api-key not provided — falling back to Redis-only\",\n _LOG_PREFIX,\n )\n else:\n logger.info(\n \"%s Unkey enforcement disabled — using Redis-only enforcement\",\n "} -{"text": "BETHLEHEM -- The Eagles haven't added another tight end to the roster yet, but what happened to Brent Celek Thursday afternoon certainly didn't end the search.\nIn the first workout with a full squad, Celek suffered a mild sprain of his knee.\nIt isn't considered serious, but it was a reminder of what the Eagles' tight end situation is behind Celek.\nThe backup is Clay Harbor. The Eagles believed they got a small-school pearl when they drafted Harbor out of Missouri State in the fourth round in 2010. In two seasons he has 21 catches for 226 yards, including 12 grabs last season.\nThe third season tends to be a progress-or-else year for many players, and that applies to Harbor.\n\"I felt like last season I played pretty well,\" Harbor said. \"I probably had 15 balls thrown to me all year. I feel like I had a decent season, but I feel like I have to show the coaches that I can do more things, gain their trust more and be a bigger part of the offense.\n\"It's hard to get on the field when you have three great receivers like DeSean (Jackson), Jeremy (Maclin) and Jason Avant.\"\nIn many ways, Harbor sees Avant as the toughest roadblock when it comes to getting touches. Harbor is built for lining up in the slot, but Avant has cornered the market on that set for the Eagles after setting career highs in catches (52) and yards (679) in his sixth season with the Birds.\nStill, the Eagles are concerned enough about the backup tight end situation to have had veterans Visanthe Sciancoe (who signed with the New England Patriots) and Jeremy Shockey work out for them. While Sciancoe and Shockey are pass-catching tight ends, the difference is that they are both big targets -- 6-4 and 6-5, respectively.\nHarbor is listed as 6-3. A more realistic listing would be 6-1. While he put on a show at the combine with big-time bench press, vertical leap and 40-yard dash numbers, sometimes a tight end's biggest asset is his ability to take up space. So there are reasons to wonder if Andy Reid is seeking a bigger target than Avant or Harbor, particularly in the red zone.\nHarbor insists he wouldn't mind having some veteran competition.\n\"It makes us better as players,\" he said. \"You see the competition, you see what other guys do and learn from them and push each other. Either way it helps you grow as a player. If you do things right and things don't work out with a certain team, and you're a good player, you'll wind up somewhere else.\"\nMichael Vick got President Obama's message relayed from teammate Nnamdi Asomugha telling him to slide at the end of his scrambling runs.\nVick seemed genuinely surprised and flattered by the Commander In Chief's concern for his well-being.\n\"I was stunned. I didn't believe it,\" Vick said. \"It was awesome. It was one of those things when you hear it, it's hard to believe. But at the same time, when he says that you think, 'Yeah, he's got a point.'\"\nVick was so floored by the advice that he not only took it to heart, but he hinted he might dedicate Hook Slide No. 1 of 2012 to Obama.\n\"If he's saying it, I've gotta do it,\" Vick said. \"The first slide of the year I'll (point) and say, 'That one's for him.'\"\nVick hasn't met Obama yet, but stressed it is on his bucket list. A Super Bowl victory would get him a ticket to the White House.\n\"That would be awesome. That might be my opportunity to meet him,\" Vick said. \"It's something I'll pray for, something I'll work for.\"\nAs for Obama being a Chicago sports fan...\n\"We'll try to convert him over to an Eagles fan after this season,\" Vick said.\nNOTES: After Thursday's closed workout in the afternoon the Eagles open the gates for the first full-roster practice open to the public this morning for a walk-through at 8:15 and a full workout in the afternoon (2:45). ... The Eagles welcomed six former NFL players to the coaching staff as interns, including five who played in Philly. Correll Buckhalter, William Fuller, Corey Peoples, Greg Lewis and Montae Reagor all spent at least a training camp with the Birds, while Don Holmes spent five seasons as a wide receiver with the Cardinals."} -{"text": "WASHINGTON -- Tamerlan Tsarnaev, the older of the two brothers accused in the deadly Boston Marathon bombings, was influenced by a mentor who espoused radical Islamist beliefs, according to one of the suspects' uncles.\nTsarnaev, 26, became acquainted with the mentor, an Armenian convert to Islam known as Misha, as early as 2007 while living in Cambridge, Mass., according to the uncle, Ruslan Tsarni. Tsarni described his now-deceased nephew's shift toward fundamentalist Muslim beliefs.\n\"He said, 'I'm now doing bigger things, Inshallah,' something like that,\" Tsarni said yesterday in an interview at his home in a Washington suburb, recalling a 2009 conversation with Tamerlan.\nAuthorities investigating the April 15 blasts are trying to determine a motive and examining whether the accused bombers had any support. Dzhokhar Tsarnaev, 19, Tamerlan's brother, has communicated to investigators that the pair acted alone in the attack, which killed three people and injured more than 260.\nTamerlan Tsarnaev, who was killed in a gun battle with police on April 19 hours before his brother's capture, spent six months in Russia last year, visiting the republics of Dagestan and Chechnya, which have been roiled by Islamic separatist movements. U.S. investigators traveled Tuesday to the capital of Dagestan to interview the parents of the suspected bombers, an American Embassy official in Moscow said, speaking on condition of anonymity in line with official policy.\nRuslan Tsarni said he'd never known his nephews to take much of an interest in religion, so when he reconnected with Tamerlan in 2009 after a family falling out a few years earlier, the young man's rhetoric about Islam left him uneasy. He said he learned more about Misha only recently, in talking with the ex- husband of one of the brothers' two sisters.\nAt the time of the 2009 conversation, Tsarni said, he didn't think his nephew posed a threat. He thought Tamerlan was acting like a disaffected young man struggling to assimilate in American society and unwilling to stick with college or start a career.\n\"Radicalized?\" Tsarni said. \"He sounded like a jerk, a person who didn't want to work. Hiding behind words.\"\nTsarni said his relationship with his brother, Anzor -- the suspects' father -- was strained several years ago, largely because of tensions with Anzor's wife, Zubeidat. He said that he had a falling out with Tamerlan after urging his nephew to stand up to his mother.\nIn an interview with CNN yesterday, Zubeidat Tsarnaev said her sons were being \"killed just because they're Muslims\" and that they were being framed in the bombing case.\nDzhokhar Tsarnaev faces federal charges that include using a weapon of mass destruction that resulted in death. He may face the death penalty if convicted.\nTsarni said the suspects' former brother-in-law, Elmirza Khozhugov, told him that the Islamist mentor Misha, who would be in his mid-30s now and was affiliated with a local mosque, had often preached in the family's home and claimed to be an exorcist. Khozhugov didn't respond to an email sent to an address provided by Tsarni.\nFederal investigators believe Tamerlan may have learned how to build the devices by reading jihadist websites, including an online magazine affiliated with al-Qaida called Inspire, according to an official briefed on the investigation who asked not to be identified because of government policy.\nTamerlan, described as a talented piano player, abandoned plans to study music at an arts college, Tsarni said, because Misha told him that such a pursuit wasn't in the spirit of Islam. Tamerlan, a two-time New England Golden Gloves champion, also stopped boxing and became engaged in community work at Misha's direction, Tsarni said.\n\"He was pretty much occupied with this guy,\" Tsarni said, adding that he doesn't know the man's full identity. Efforts by Bloomberg reporters to track down Misha in the Boston area failed.\nOver the same period of time, Zubeidat shifted her dress from Western clothes to wearing a hijab, a head covering worn by some Muslim womenTsarni said. He first noticed the change in pictures of her in 2007 and then saw her in person in 2009 in Almaty, Kazakhstan.\n\"Where was that coming from?\" Tsarni said. \"It was a tremendous change.\" He said he thinks his brother and his wife moved back to Dagestan from Massachusetts within the last year although he learned about their move after the fact.\nTsarni said it wasn't until after the Boston Marathon bombings that he began to piece together the possible influence that Misha, and the suspects' mother, might have had on his nephew's views.\nAnother of Tamerlan's uncles is in Massachusetts, preparing to make burial arrangements once authorities release his dead nephew's body, Tsarni said.\nTsarni said he's received almost two dozen letters written by people from across the U.S. in response to an impromptu news briefing he gave April 19, in which he professed his love for America, denounced his suspect-nephews as \"losers\" and urged the younger of the pair to surrender.\n\"You may get 'hate mail,' so please consider this 'love mail,' \" read one letter, from Colorado Springs, Colo., that Tsarni showed to a reporter. \"Thank you for your courage in coming forward.\"\n_ With assistance from Henry Meyer in Moscow."} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/test/models/test_nemotron_h.py. Lines: 2092.\n\nfrom __future__ import annotations\n\nimport logging\nimport os\n\nimport fireworks.nn as firenn\nimport pytest\nimport torch\nimport torch.nn as nn\nimport transformers\nimport fireworks.models.nemotron_h.nemotron_h_text as nemotron_h_text\nimport fireworks.text as firetext\nfrom fireworks.nn.mamba_state import MambaCacheManager\nfrom fireworks.models.nemotron_h import (\n LAYER_TYPE_ATTENTION,\n LAYER_TYPE_MAMBA,\n LAYER_TYPE_MLP,\n LAYER_TYPE_MOE,\n NemotronH,\n NemotronHAttentionDecoderLayer,\n NemotronHCausalTextModel,\n NemotronHConfig,\n NemotronHMambaDecoderLayer,\n NemotronHMLPDecoderLayer,\n NemotronHMoEDecoderLayer,\n NemotronHTextConfig,\n parse_hybrid_pattern,\n)\nfrom transformers.models.nemotron_h.configuration_nemotron_h import NemotronHConfig as HFNemotronHConfig\n\n# ---------------------------------------------------------------------------\n# parse_hybrid_pattern\n# ---------------------------------------------------------------------------\n\n\ndef test_parse_hybrid_pattern_accepts_valid_pattern() -> None:\n types = parse_hybrid_pattern(\"M-E*\", num_hidden_layers=4)\n assert types == [LAYER_TYPE_MAMBA, LAYER_TYPE_MLP, LAYER_TYPE_MOE, LAYER_TYPE_ATTENTION]\n\n\ndef test_parse_hybrid_pattern_rejects_length_mismatch() -> None:\n with pytest.raises(ValueError, match=\"num_hidden_layers\"):\n parse_hybrid_pattern(\"M-*\", num_hidden_layers=4)\n\n\ndef test_parse_hybrid_pattern_rejects_unknown_char() -> None:\n with pytest.raises(ValueError, match=\"unknown layer-type\"):\n parse_hybrid_pattern(\"MXA\", num_hidden_layers=3)\n\n\n# ---------------------------------------------------------------------------\n# NemotronHConfig\n# ---------------------------------------------------------------------------\n\n\ndef _make_config(\n *,\n hf_config: bool = False,\n hybrid_override_pattern: str = \"*ME-M*E-\",\n **overrides: object,\n) -> NemotronHConfig | transformers.PretrainedConfig:\n if hf_config:\n defaults = dict(\n architectures=[\"NemotronHForCausalLM\"],\n vocab_size=131072,\n hidden_size=8192,\n layers_block_type=[\"mamba\", \"moe\", \"attention\"],\n num_hidden_layers=3,\n max_position_embeddings=262144,\n num_attention_heads=64,\n num_key_value_heads=2,\n head_dim=128,\n attention_bias=False,\n attention_dropout=0.0,\n norm_eps=1e-6,\n layer_norm_epsilon=1e-6,\n intermediate_size=5120,\n mlp_hidden_act=\"relu2\",\n mlp_bias=False,\n ssm_state_size=128,\n mamba_num_heads=256,\n mamba_head_dim=64,\n mamba_n_groups=8,\n mamba_d_conv=4,\n mamba_conv_bias=True,\n mamba_proj_bias=False,\n mamba_chunk_size=128,\n mamba_dt_min=0.001,\n mamba_dt_max=0.1,\n mamba_dt_init_floor=0.0001,\n # Omit mamba_dt_limit so the fixture uses the HF default tuple (0.0, inf),\n # mirroring the real Nemotron-H checkpoints (which omit the key).\n mamba_ssm_cache_dtype=\"float32\",\n n_routed_experts=512,\n n_shared_experts=1,\n moe_intermediate_size=5120,\n moe_shared_expert_intermediate_size=10240,\n moe_latent_size=2048,\n moe_shared_expert_overlap=False,\n num_experts_per_tok=22,\n routed_scaling_factor=5.0,\n n_group=1,\n topk_group=1,\n norm_topk_prob=True,\n num_nextn_predict_layers=1,\n mtp_layers_block_type=[\"attention\", \"moe\"],\n pad_token_id=0,\n bos_token_id=1,\n eos_token_id=2,\n tie_word_embeddings=False,\n )\n if hybrid_override_pattern != \"*ME-M*E-\":\n defaults[\"hybrid_override_pattern\"] = hybrid_override_pattern\n defaults.update(overrides)\n return HFNemotronHConfig(**defaults)\n\n defaults = dict(\n config_name=\"tiny\",\n vocab_size=256,\n n_layer=len(hybrid_override_pattern),\n n_embd=32,\n n_head=2,\n n_head_kv=2,\n head_dim=16,\n intermediate_dim=64,\n mamba_num_heads=2,\n mamba_head_dim=16,\n ssm_state_size=8,\n n_groups=1,\n conv_kernel=4,\n n_routed_experts=2,\n n_shared_experts=1,\n num_experts_per_tok=1,\n moe_intermediate_size=16,\n moe_latent_size=8,\n moe_shared_expert_intermediate_size=32,\n hybrid_override_pattern=hybrid_override_pattern,\n # Pure-torch backend so these tests run on any hardware. The production\n # default is \"flashinfer\" (Blackwell-only); backend-specific kernels are\n # covered by test_mamba2.py, which constructs Mamba2 with explicit backends.\n mamba_backend=\"reference\",\n )\n de"} -{"text": "In the discussion thread: Don't You Just Love It when a Poster announces in Open Forum that [View all]\nResponse to Tuesday Afternoon (Original post)\nFri Sep 21, 2012, 09:31 PM\nMiddleFingerMom (25,163 posts)\n29. I never tell people how many people have me on ignore because they would just think I'm bragging.\nLast edited Sat Sep 22, 2012, 03:27 AM - Edit history (1)\nI'm not an insufferable ass (at least not a BIG one), though I don't suffer bullies gladly. So I think\nthe folks ignoring me because of my attitude are minimal.\nSome don't like my subject matter or approaches to it. That's OK -- I don't want to force anyone\nto view my posts.\nI think most don't like my \"dots\" nor my style of presentation. I use lots of physical space in a kind\nof text/not-text fashion. I've always found this easier for ME to focus on material by others, so I\nUSE that technique in my posts, too.\nSome used to accuse me of \"spamming\". I can't understand what kind of spamming they're talking\nabout and they would NEVER get specific when asked -- I think someone may have said I \"spammed\"\nand then the others would repeat that, but be embarrassed when they realized that their justification\nwas, \"Well... BOBBY said so.\" The closest I could come to it is my habit of posting all at once rather\nthan one at a time over an extended period of time (6 at a time max and not the traditional six \"same\"\nposts that one usually associates with spamming -- but six distinct and independent posts). Even\nwhen someone just posts \"x\" over and over, DU's spam filter (I don't know if it's still in existence)\nwouldn't kick in 'til after a dozen or more posts.\nThe dots that I use -- people would declare them annoying... even obnoxious or \"maddening\". There\nwere more than a few folks (many of them would show up together) who put a lot of pressure on me\nto change my style. Even if it were not there, that would raise questions, but ESPECIALLY with the\nIgnore function present, this was much more an example of control issues on their part than the\ninescapable \"torture\" that I \"subjected\" them to.\nI can see many valid reasons why people would put someone on ignore, but the announcement of\nputting someone on ignore reminds me of gradeschool playground behavior -- covering one's ears\nwith one's hands and chanting \"LA LA LA LA I CAN'T HEAR YOU LA LA LA LA\"!!!\nIt's a little weird and a lot funny. I think the last time it happened my response was \"I miss you\nalready\". It's kind of a Schrodinger's Cat conundrum -- \"If I don't see a responsed from them, do\nthey have me on ignore or not?\"\nAnd while whether a cat is dead or not would concern me, being on Ignore or not does not.\nI don't believe I've ever put anyone on ignore (though that might not be the case if I were to\nspend more time in Meta or GD or certain other groups where obnoxious and/or bullying behavior\nseems to be a norm). I find myself thoroughly capable of ignoring someone whose posts I've found\nto be distasteful without any kind of tool needed.\nPerhaps SOME of the people who have me on Ignore are in the background of this pic, while I\n(note the avatar) am in the foreground).\nAlways highlight: 10 newest replies | Replies posted after I mark a forum\nReplies to this discussion thread\n|Tuesday Afternoon||Sep 2012||OP|\n|Tuesday Afternoon||Sep 2012||#6|\n|Tuesday Afternoon||Sep 2012||#5|\n|Tuesday Afternoon||Sep 2012||#4|\n|Tuesday Afternoon||Sep 2012||#12|\n|Tuesday Afternoon||Sep 2012||#16|\n|Tuesday Afternoon||Sep 2012||#8|\n|Lady Freedom Returns||Sep 2012||#24|\n|Tuesday Afternoon||Sep 2012||#10|\n|Tuesday Afternoon||Sep 2012||#14|\n|Tuesday Afternoon||Sep 2012||#20|\n|Tuesday Afternoon||Sep 2012||#44|\n|Tuesday Afternoon||Sep 2012||#21|\n|Tuesday Afternoon||Sep 2012||#42|\n|Tuesday Afternoon||Sep 2012||#25|\n|Tuesday Afternoon||Sep 2012||#26|\n|Tuesday Afternoon||Sep 2012||#28|\nI never tell people how many people have me on ignore because they would just think I'm bragging.\n|Tuesday Afternoon||Sep 2012||#30|\n|Tuesday Afternoon||Sep 2012||#32|\n|Tuesday Afternoon||Sep 2012||#40|\n|Tuesday Afternoon||Sep 2012||#41|\n|Tuesday Afternoon||Sep 2012||#39|\n|Tuesday Afternoon||Sep 2012||#38|\nPlease login to view edit histories."} -{"text": "In the final three games of the season, Dartmouth needed a quarterback to step in for injured sophomore Alex Park.\nThe Big Green turned to true freshman Dalyn Williams, who often wore green at Lake Dallas and was a part of the best passing offense in Class 4A in 2011.\nWilliams’ knack for leading an offense carried over from Corinth to Hanover, N.H., where he started and excelled in the final three games of the regular season.\nThe former Lake Dallas standout added to his career accolades when he recently was named the Ivy League’s Freshman of the Year.\n“We’re really proud of him, but we’re honestly not really surprised,” Lake Dallas head coach Michael Young said. “I knew he’d probably be pretty successful there, even as a freshman. I thought he would get some chances to play — and if he ever got a chance to play, they’d probably have a hard time keeping him out of the lineup.”\nWilliams posted a 2-1 record as a starter and became the first Dartmouth player in 10 years — and only the seventh in school history — to be named the Ivy League’s top freshman. Twice he was named the league’s Rookie of the Week.\nHe completed 73 of 114 passes for 974 yards and seven touchdowns without throwing an interception. He rushed for 262 yards and three touchdowns on 89 carries for the Big Green, which finished 6-4 and missed the Football Championship Subdivision playoffs.\nWilliams took over as Dartmouth’s starter Nov. 3 against Cornell after Park suffered a shoulder injury. Williams shined against the Big Red, going 14-of-20 for 160 yards and two touchdowns.\nHis most prolific performance came in a season-ending 35-21 victory at Princeton. He completed 20 of 35 passes for 284 yards and three touchdowns. He added a rushing touchdown in the victory.\nDartmouth head coach Buddy Teevens said Williams flourished in his multi-quarterback system. Williams played in all 10 games, and Teevens said Williams progressed in each contest.\nThe 5-11, 205-pound freshman has the ability to make plays, is an accurate passer and has an innate sense of awareness that allows him to evade the rush and escape with his feet, Teevens said.\nWilliams displayed that talent as a senior at Lake Dallas, throwing for 3,952 yards and 37 touchdowns.\nThe Dartmouth coach said he’s in the midst of a nationwide recruiting trek and potential players are well aware of what Williams did in his first year.\n“It’s kind of a mixed blessing,” Teevens said. “Every other position is very, very excited, and they go online and on YouTube and so forth and they know what a quality player [Dalyn] is. And quarterbacks, I think it’s a separator.\n“Guys that are worried about competition, they’ll opt out to pursue other schools. Guys that are confident in their abilities and aren’t hesitant in willingness to compete, they still have an interest. We’re in a pretty good situation right now.”\nTeevens said Williams has spent plenty of time digesting film and is constantly asking questions in a fervent pursuit to get better. When Teevens talked to Williams’ economics professor, the coach said, Williams’ desire to be great in the classroom was apparent as well.\n“I’ve been so impressed with what he’s done to date, and I don’t believe he’s satisfied or he’s played his best football yet,” Teevens said. “And that’s something I really respect in him. He wants to be a great player.”\nThere’s time for Williams to leave his imprint in New Hampshire like he did in Texas.\nYoung said it’s difficult for a freshman to go in and do what Williams did at Dartmouth. And based on his 10 games, Young said he can see the trend of excellence continuing to curve upward over the next few years.\n“They could really have something special in him,” Young said. “I could see him dominating that conference offensively — if they’re able to get some receivers to go around him — because I’m sure he’s going to be one of the top quarterbacks in that conference for years to come.”\nBEN BABY can be reached 940-566-6869. His e-mail address is firstname.lastname@example.org ."} -{"text": "faults.update(overrides)\n return NemotronHConfig(**defaults)\n\n\ndef test_config_rejects_conflicting_layout_encodings() -> None:\n \"\"\"Do not silently accept inconsistent HF list and compact pattern layouts.\"\"\"\n with pytest.raises(ValueError, match=\"conflict\"):\n NemotronHConfig(\n config_name=\"bad-layout\",\n n_layer=3,\n layers_block_type=[\"mamba\", \"moe\", \"attention\"],\n hybrid_override_pattern=\"M*M\",\n )\n\n\ndef test_hf_config_roundtrip_preserves_fw_and_hf_metadata() -> None:\n hf_config = _make_config(hf_config=True)\n hf_config_dict = hf_config.to_dict()\n\n text_config = NemotronHCausalTextModel.convert_hf_config(hf_config)\n fw_config_dict = text_config.to_dict()\n fw_base_config = fw_config_dict[\"base\"]\n\n assert fw_base_config[\"n_layer\"] == hf_config.num_hidden_layers\n assert fw_base_config[\"layers_block_type\"] == hf_config_dict[\"layers_block_type\"]\n assert fw_base_config[\"n_embd\"] == hf_config_dict[\"hidden_size\"]\n assert fw_base_config[\"norm_eps\"] == hf_config_dict[\"norm_eps\"]\n assert fw_base_config[\"n_routed_experts\"] == hf_config_dict[\"n_routed_experts\"]\n assert fw_base_config[\"num_nextn_predict_layers\"] == hf_config_dict[\"num_nextn_predict_layers\"]\n assert text_config.is_moe\n assert text_config.max_seq_len == hf_config_dict[\"max_position_embeddings\"]\n assert text_config.kv_cache_num_layers == 1\n\n loaded_text_config = NemotronHTextConfig.from_dict(fw_config_dict)\n roundtrip = NemotronHCausalTextModel.hf_model_config(loaded_text_config)\n\n assert roundtrip is not None\n roundtrip_dict = roundtrip.to_dict()\n assert roundtrip_dict[\"norm_eps\"] == hf_config_dict[\"norm_eps\"]\n expected_roundtrip_dict = {field: hf_config_dict[field] for field in roundtrip_dict}\n assert roundtrip_dict == expected_roundtrip_dict\n\n\ndef test_get_moe_routing_spec_counts_mtp_moe_layers() -> None:\n \"\"\"``mtp_layers_block_type`` stores HF layer names (\"moe\"), so get_moe_routing_spec\n must normalize them to pattern chars before counting MoE layers — not compare to the\n raw char \"E\" (which never matches \"moe\", leaving the MTP MoE count stuck at 0).\"\"\"\n text_config = NemotronHTextConfig(\n base=_make_config(\n hybrid_override_pattern=\"M*E\",\n num_nextn_predict_layers=1,\n mtp_layers_block_type=[\"attention\", \"moe\"],\n )\n )\n model = NemotronHCausalTextModel(text_config)\n n_main_moe, n_mtp_moe, n_experts, n_active = model.get_moe_routing_spec()\n assert n_main_moe == 1 # one \"E\" in \"M*E\"\n assert n_mtp_moe == 1 # one \"moe\" in the MTP draft block\n\n\ndef test_convert_hf_config_accepts_compact_hybrid_pattern_fallback() -> None:\n hf_config = _make_config(hf_config=True, layers_block_type=None, hybrid_override_pattern=\"ME*\")\n\n text_config = NemotronHCausalTextModel.convert_hf_config(hf_config)\n\n assert text_config.base.layers_block_type == [\"mamba\", \"moe\", \"attention\"]\n assert text_config.base.hybrid_override_pattern == \"ME*\"\n\n\ndef test_causal_model_configures_mamba_state_dtypes_from_precision() -> None:\n base = _make_config(hybrid_override_pattern=\"MM\")\n base.mamba_ssm_dtype = \"bf16\"\n text_config = NemotronHTextConfig(\n base=base,\n precision=firenn.default_dense_precision(\"bf16\"),\n )\n text_config.precision.mamba_state = firenn.MambaStateDType.bf16\n model = NemotronHCausalTextModel(text_config)\n\n assert model._mamba_layer_indices == [0, 1]\n for layer_idx in model._mamba_layer_indices:\n mixer = model.layers[layer_idx].mixer\n assert mixer._state_dtype == torch.bfloat16\n assert mixer._conv_state_dtype == text_config.precision.activation.torch_dtype\n\n spec = model.linear_state_spec()\n assert spec is not None\n assert spec.recurrent_state_dtype == torch.bfloat16\n assert spec.conv_state_dtype == text_config.precision.activation.torch_dtype\n\n\ndef test_config_and_model_initialization() -> None:\n \"\"\"Pool index helpers count ordinals, not list positions.\"\"\"\n cfg = _make_config()\n model = NemotronH(cfg)\n assert model.embed_tokens is not None\n assert model.lm_head is not None\n assert len(model.layers) == 8\n\n # Layer types: * M E - M * E -\n # Mamba ordinals: 0 1\n # Attn ordinals: 0 1\n # MoE ordinals: 0 1\n # MLP ordinals: 0 1\n assert cfg.linear_state_layer_index(1) == 0\n assert cfg.linear_state_layer_index(4) == 1\n assert isinstance(model.layers[1], NemotronHMambaDecoderLayer)\n assert isinstance(model.layers[4], NemotronHMambaDecoderLayer)\n mamba_layers = [layer for layer in model.layers if isinstance(layer, NemotronHMambaDecoderLayer)]\n assert [layer.mixer.linear_state_layer_idx for layer in mamba_layers] == [0, 1]\n\n assert cfg.kv_cache_layer_index(0) == 0\n assert cfg.kv_cache_layer_index(5) == 1\n assert isinstance(model.layers[0], NemotronHAttentionDecoderLayer)\n"} -{"text": "Sikh Columbia professor assaulted in possible hate crime (+video)\nHuffPost Live screenshot\nPrabhjot Singh, a Columbia University professor, was assaulted Saturday night in what the New York Police Department says was a possible hate crime.\nSingh, who is Sikh and wears a turban and beard, was attacked while walking on 110th Street near Lenox Avenue in Manhattan, The Huffington Post reported. A suspect or suspects allegedly “shouted anti-Muslim statements, knocked the professor down and punched him numerous times in the face,” The Huffington Post reported.\nOn Monday morning, Singh joined HuffPost Live and discussed the incident and said that he’s OK despite the attack. He also said he saw an oral surgeon “to have his jaw wired.”\n“I saw young men on bikes,” Singh told hosts Marc Lamont Hill and Alyona Minkovski. “I heard, 'Get him!' and 'Osama' and 'terrorist,' not all at the same time,\" he said. “I felt somebody grab my beard and hit my chin while on a bike. I started running in the direction away from where all the bikes were mobilizing, and then was punched while running. Eventually they surrounded me, and [I] was hit to the ground with punches to the face and torso.”\nThe Columbia professor’s wife, Manmeet Kaur, wrote an article on Wednesday for The Daily Beast. Not only did she retell Singh’s story, but she also asked for support in stopping hate crimes.\n“It breaks my heart each time I read about an incident against someone based upon race, gender, religion or ethnicity, but I hope to take this as an opportunity to provoke reflection about ways to work together as a community to prevent hate crimes against individuals of any background,” Kaur wrote.\nKaur said a part of the solution is in education. She suggested teaching children to appreciate and understand diversity from a young age.\n“I am troubled by the young age of the assailants and am reminded of how early hatred and racism can begin,” she wrote.\nSingh said he would like to invite his attackers to the Gurudwara, which is a place of worship for Sikhs, to understand his beliefs and help prevent any more possible hate crimes.\nAnd in an article for the New York Daily News, Singh wrote he feels gratitude toward his attackers for bringing the issue of hate crimes to light.\n“This gratitude enables my wife and I to remain optimistic that our son will never have to go through what I just experienced,” wrote Singh.\nReligious News Service published an article Tuesday about a similar attack on a Muslim woman a few blocks away on the same day as Singh’s assault.\nAccording to the article, these assaults are a piece of ongoing attacks on Sikhs, Muslims and people thought to be foreigners. Stanford University, according to the article, released a study that showed even though “almost all turban-wearers in America are Sikh,” roughly 70 percent of Americans believe turban-wearers to be Muslim, Hindu, Buddhist or Shinto.\nAbout 50 percent of Americans, according to the RNS piece, believe Sikhism is a sect of Islam. As the article explains, “Sikhism is a monotheistic religion revealed to Guru Nanak in the 16th century in the Punjab region of modern-day India and Pakistan.”\nWith more than 25 million followers, most of whom live in India, with 500,000 in the United States, Sikhism is the fifth-largest religion in the world.\n- Pope embraces Al-Azhar imam in sign of...\n- Church slaying families accept pursuit of...\n- Text of Obama's speech at Hiroshima Peace...\n- Lightning damages Angel Moroni statue atop...\n- Is the Angel Moroni a lightning rod? Statue...\n- LDS missionary who returned home early shares...\n- United Methodist conference seen as confusing...\n- Twila Van Leer: Just picture that!\n- LDS missionary who returned home early... 53\n- Why the University of Miami plans to... 43\n- Defending the Faith: Book of Mormon... 42\n- Is the Angel Moroni a lightning rod?... 23\n- Lightning damages Angel Moroni statue... 20\n- Donald Trump moves to win over wavering... 17\n- Elizabeth Smart picks BYU rape response... 15\n- BYU's Ty Detmer discusses prayer,... 11"} -{"text": "STATE OF WASHINGTON\nOFFICE OF THE GOVERNOR\nP.O. Box 40002 ∑ Olympia, Washington 98504-0002 ∑ (360) 902-4111 ∑ www.governor.wa.gov\nMartha Choe, Director, Community, Trade & Economic Development\n|FROM:||Gary Locke, Governor|\n|DATE:||May 15, 2000|\n|SUBJECT:||Establishing the Office of Trade and Economic Development and the Office of Community Development within the Department of Community, Trade & Economic Development|\nAs you know, the Department of Community, Trade and Economic Development (the \"Department\") has two very distinct functions. The trade and economic development side of the agency focuses on the creation of jobs, expansion of the economic base, and promotion of Washington's products abroad. On the other hand, the Department's community development efforts focus on securing the basic needs of a viable community including food, housing and a safe and healthy environment.\nWe came to the conclusion last year that the Department's programs are too numerous and diverse in nature to be well coordinated under one state agency and director, and presented that conclusion to the legislature. Section 116(1) of HB2487, passed by the 56th legislature in the second special session of 2000 directs that the Department receive separate appropriations for the community development program and the trade and economic development program for fiscal year 2001 and thereafter.\nA distinct trade and economic development office can work more effectively with businesses, labor, economic development councils, ports, industry and trade associations and local communities to serve the economic interests of Washington state. A distinct community development office can better concentrate on partnering with local governments and organizations to build and strengthen our communities. The establishment of the two divisions will enable each resulting office to be more focused, innovative and effective in delivering services and programs to the people of Washington state. Additionally, a number of the Department's constituencies and partners including labor, businesses, local governments, community organizations and advocates have asked for separate divisions.\nTherefore, effective immediately, I direct that two separate divisions shall be created within the Department of Community, Trade and Economic Development: (1) The Washington State Office of Trade and Economic Development, which will be comprised of the Trade, Economic Development, and Energy Policy and WorkFirst sections of the Department; and (2) the Washington State Office of Community Development, which will be comprised of the Housing, Local Government and Community Services sections and staffing for the Energy Facilities Siting Evaluation Committee (EFSEC).\nWhile the Department of Community, Trade and Economic Development will continue to retain its legal standing as an agency of state government, the new divisions will separately operate their respective program and budget areas. The departmental biennial budget prepared for the 2001-2003 biennium should reflect two separate but coordinated budgets submitted to the Office of Financial Management and should prioritize any requested enhancement or reduction proposals, discretely within each division.\nEach division shall have its own director. Martha Choe will serve as the director of the Washington State Office of Trade and Economic Development, and Busse Nutley will serve as the director of the Washington State Office of Community Development. Both directors will be members of equal standing in my cabinet, and will report to me directly and be individually responsible for their respective offices. As required, Martha Choe will serve as Director of the Department.\nThe two divisions shall enter into a joint operating agreement, which shall cover all administrative and any programmatic issues necessary to effectuate this directive and to implement the division of the Department. After being separated, both divisions of the Department shall continue to recognize the single Washington Federation of State Employees bargaining unit.\nI view this administrative division as an interim measure to more effectively serve the important economic and community-based needs of our state. It is my intention to request the legislature to statutorily separate the agency and provide adequate funding to permanently create two agencies at the beginning of the 2001 legislative session."} -{"text": " assert isinstance(model.layers[5], NemotronHAttentionDecoderLayer)\n\n assert cfg.moe_layer_index(2) == 0\n assert cfg.moe_layer_index(6) == 1\n assert isinstance(model.layers[2], NemotronHMoEDecoderLayer)\n assert isinstance(model.layers[6], NemotronHMoEDecoderLayer)\n\n assert cfg.mlp_layer_index(3) == 0\n assert cfg.mlp_layer_index(7) == 1\n assert isinstance(model.layers[3], NemotronHMLPDecoderLayer)\n assert isinstance(model.layers[7], NemotronHMLPDecoderLayer)\n\n assert model.num_linear_layers == 2\n spec = model.linear_state_spec()\n assert spec is not None\n assert spec.variant == \"mamba2\"\n # conv_state: [conv_dim, kernel - 1]; recurrent_state: [nheads, head_dim, d_state]\n assert spec.conv_state_shape == (\n cfg.mamba_d_inner + 2 * cfg.n_groups * cfg.ssm_state_size,\n cfg.conv_kernel - 1,\n )\n assert spec.recurrent_state_shape == (\n cfg.mamba_num_heads,\n cfg.mamba_head_dim,\n cfg.ssm_state_size,\n )\n\n with pytest.raises(ValueError, match=\"not a Mamba-2 layer\"):\n cfg.linear_state_layer_index(0) # layer 0 is attention\n with pytest.raises(ValueError, match=\"not a full-attention layer\"):\n cfg.kv_cache_layer_index(1) # layer 1 is Mamba\n with pytest.raises(ValueError, match=\"not a MoE layer\"):\n cfg.moe_layer_index(3) # layer 3 is MLP\n with pytest.raises(ValueError, match=\"not an MLP layer\"):\n cfg.mlp_layer_index(2) # layer 2 is MoE\n\n\ndef test_text_model_mamba_state_config_matches_mamba_layers() -> None:\n \"\"\"Text cache paths need Mamba state advertised for hybrid layouts.\"\"\"\n text_config = NemotronHTextConfig(base=_make_config(hybrid_override_pattern=\"M*M\"))\n model = NemotronHCausalTextModel(text_config)\n\n state_config = model.mamba_state_config\n\n assert state_config is not None\n assert state_config.num_mamba_layers == 2\n spec = model.linear_state_spec()\n assert spec is not None\n assert state_config.conv_state_shape == spec.conv_state_shape\n assert state_config.recurrent_state_shape == spec.recurrent_state_shape\n assert state_config.max_active_sequences == 0\n assert state_config.num_snapshots == 0\n\n\ndef test_text_model_without_mamba_has_no_mamba_state_config() -> None:\n \"\"\"Pure attention/MLP layouts should continue using only KV cache.\"\"\"\n text_config = NemotronHTextConfig(base=_make_config(hybrid_override_pattern=\"*-\"))\n model = NemotronHCausalTextModel(text_config)\n\n assert model.mamba_state_config is None\n\n\ndef test_context_cache_manager_wraps_mamba_state_for_mamba_layout() -> None:\n \"\"\"Normal CausalTextModel cache path allocates Mamba state for Nemotron-H.\"\"\"\n text_config = NemotronHTextConfig(base=_make_config(hybrid_override_pattern=\"M\"))\n model = NemotronHCausalTextModel(text_config)\n kv_cache = model.create_kv_cache(firetext.KVCacheConfig.for_seq_len(4, text_config.kv_cache_block_size))\n\n manager = model.create_context_cache_manager(kv_cache=kv_cache)\n\n assert isinstance(manager, MambaCacheManager)\n\n\ndef test_layer_ordinal_mapping_ignores_other_layer_types() -> None:\n \"\"\"State/KV pool ordinals count only their own layer type, skipping\n interleaved layers of other types (the hybrid dual-mapping invariant).\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"MEM*\")\n assert isinstance(cfg, NemotronHConfig)\n # layers: M E M *\n # mamba ordinals 0 1\n # attn ordinals 0\n assert cfg.mamba_layer_indices() == [0, 2]\n assert cfg.attention_layer_indices() == [3]\n assert cfg.linear_state_layer_index(0) == 0\n assert cfg.linear_state_layer_index(2) == 1\n assert cfg.kv_cache_layer_index(3) == 0\n assert cfg.num_kv_attention_layers() == 1\n # MoE and attention layers are not Mamba state layers.\n with pytest.raises(ValueError, match=\"not a Mamba-2 layer\"):\n cfg.linear_state_layer_index(1) # MoE\n with pytest.raises(ValueError, match=\"not a Mamba-2 layer\"):\n cfg.linear_state_layer_index(3) # attention\n\n\ndef test_mamba_state_config_counts_only_mamba_layers() -> None:\n \"\"\"num_mamba_layers must exclude attention and MoE layers from the state pool.\"\"\"\n text_config = NemotronHTextConfig(base=_make_config(hybrid_override_pattern=\"M*EM\"))\n model = NemotronHCausalTextModel(text_config)\n\n state_config = model.mamba_state_config\n\n assert state_config is not None\n assert state_config.num_mamba_layers == 2 # the two M layers, not * or E\n\n\ndef test_estimate_activation_memory_uses_minimal_mamba_cache() -> None:\n \"\"\"The activation-memory probe must build its throw-away Mamba cache with\n ``num_snapshots=0`` and a minimal batch (not sized to production KV blocks).\n\n Sizing the Mamba pool to the throw-away KV cache's ``num_blocks`` — which\n reaches thousands of blocks for a long-context hybrid deployment — would add\n tens of GB of unused recurrent-state memory and OOM the probe. We spy on\n ``create_mamba_cache`` to capture th"} -{"text": "Leather Cream is a leather conditioner formulated to restore vital nutrients to your car’s leather surfaces. It safely nourishes leather seats, consoles, and dashboards to keep your leather looking newer for longer. This unique formula is made with lanolin and UV blockers to leave your leather looking supple and luxurious. Order Leather Cream today and never worry again about fading, dry, or cracked leather ever again.\nNo Shine Formula leaves behind a non-greasy, matte finish\nContains UV Blockers to keep leather from fading\nWon’t attract dust, dirt, or other debris so once your leather is clean, it stays that way Learn More\nWheel Seal is a high-tech synthetic protective coating for your wheels which prevents the build up of brake dust. Its formula has extremely high heat resistance so it will last even if you take your ride to the track. Wheel Seal prevents damage caused by brake dust, road tar, and other road contaminants.\nProvides wheels with a layer of protection against environmental hazards\nPrevents brake dust buildup\nProtects wheels from etching, pitting, and clear coat erosion Learn More\nBugs splats on a car are not only ugly, but they can be a giant pain to remove. That’s where Bug Barrier comes in. Bug barrier is a temporary protective coating for your vehicle; spray it on the front of your car and it prevents bugs from sticking to your bumper, grill, hood, and mirrors. Next time you rinse your car they come right off. Buy today and never worry about bug splats again!\nProvides a protective barrier between bugs and the front of your car\nBugs slide right off when car is rinsed with water\nProtects from small rock chips and other debris Learn More\nEbony Polish is specifically designed to restore and enhance the beauty of your black car's paintwork. Ebony Polish is used on black or darker cars to intensify their shine and remove minor swirl marks from the car's paint surface. We know black cars need special treatment; buy Ebony Polish and you’ll get just that.\nDesigned specifically for black and other dark paint colors\nRemoves light swirls and other scratches\nEnhances deep, rich paint tone for ultimate shine\nFor use with machine buffer only. Do not use by hand Learn More\nFormula 1201 is a scientifically advanced, polymer based liquid paint coating. Formulated for modern paint finishes, Formula 1201 provides unrivaled protection, durability, and shine. Buy today and see why Formula 1201 will change the way you protect your car.\nNo need to dry your car; begin applying as soon as you rinse the suds offLearn More\nLasts for months longer than traditional paint sealants. Will withstand hundreds of car washes\nOne ounce is enough to protect your entire car, meaning one bottle will last you years\nNo wax residue left in cracks, crevices, or door jambs\nOur Clay Kit provides you with all the necessary tools for claying your car before buffing or polishing. The clay kit comes with your choice of a fine or medium grade 200 gram clay bar, a 12 oz bottle of our clay spray, and two microfiber towels for cleaning it all up. Buy now and your search for the perfect set of claying tools is over.Learn More\nMatte Paint Sealant is the first safe paint protection product on the market for matte paint finishes. It is not a wax and so will not “fill in” your matte paint. It simply leaves a molecule thick layer of protection on the paint surface so that your matte paint is never without protection.\nLiquid formula will not fill in matte paint like some paste formulas\nLasts hundreds of washes. No need to apply often\nLeaves behind a uniform, flat sheen\nPerfect for Single Stage, Clear Coated, and Vinyl Wrap matte finishes\nFoam Applicators NOT included with purchase of Matte Paint SealantLearn More\nCarbon Glaze is a carefully formulated polishing glaze designed to enhance the appearance of carbon fiber panels, trim, and accents. Without heavy grit, this carbon fiber polishing glaze smoothens the delicate resin surrounding the carbon fiber to create a glass like clarity unmatched by any other product on the market. Add Carbon Glaze to your repertoire and experience perfect carbon fiber.\nLeaves behind an incredible shine\nNon-abrasive formula perfect for polishing carbon fiber\nCreates an incredibly smooth surface, ready for protection\nFor use with machine buffer only. Do not use by hand\nUse only on wet or coated carbon fiber Learn More"} -{"text": "Heart disease and stroke deaths drop significantly for people with diabetes\nHeart disease and stroke deaths drop significantly for people\nHealthier lifestyles, better disease management are helping people live longer\nATLANTA, May 22, 2012 /PRNewswire-USNewswire/ -- Death rates for people with diabetes dropped substantially from 1997 to 2006, especially deaths related to heart disease and stroke, according to researchers at the Centers for Disease Control and Prevention and the National Institutes of Health.\nDeaths from all causes declined by 23 percent, and deaths related to heart disease and stroke dropped by 40 percent, according to the study published today in the journal Diabetes Care (http://care.diabetesjournals.org/content/35/6/1252.full). Scientists evaluated 1997-2004 National Health Interview Survey data from nearly 250,000 adults who were linked to the National Death Index. Although adults with diabetes still are more likely to die younger than those who do not have the disease, the gap is narrowing.\nImproved medical treatment for cardiovascular disease, better management of diabetes, and some healthy lifestyle changes contributed to the decline. People with diabetes were less likely to smoke and more likely to be physically active than in the past. Better control of high blood pressure and high cholesterol also may have contributed to improved health. However, obesity levels among people with diabetes continued to increase.\n\"Taking care of your heart through healthy lifestyle choices is making a difference, but Americans continue to die from a disease that can be prevented,\" said Ann Albright, Ph.D., R.D., director of CDC's Division of Diabetes Translation. \"Although the cardiovascular disease death rate for people with diabetes has dropped, it is still twice as high as for adults without diabetes.\"\nPrevious studies have found that rates of heart disease and stroke are declining for all U.S. adults. Those rates are dropping faster for people with diabetes compared to adults without diabetes. Recent CDC studies also have found declining rates of kidney failure, amputation of feet and legs, and hospitalization for heart disease and stroke among people with diabetes.\nBecause people with diabetes are living longer and the rate of new cases being diagnosed is increasing, scientists expect the total number of people with the disease will continue to rise. The number of Americans diagnosed with diabetes has more than tripled since 1980, primarily due to type 2 diabetes, which is closely linked to a rise in obesity, inactivity and older age. CDC estimates that 25.8 million Americans have diabetes, and 7 million of them do not know they have the disease.\nCDC and its partners are working on a variety of initiatives to prevent type 2 diabetes and to reduce its complications. CDC leads the National Diabetes Prevention Program, a public-private partnership designed to bring evidence-based programs for preventing type 2 diabetes to communities. The program supports establishing a network of lifestyle-change classes for overweight or obese people at high risk of developing type 2 diabetes.\n\"Diabetes carries significant personal and financial costs for individuals, their families, and the health care systems that treat them,\" said Edward W. Gregg, Ph.D., the study's lead author and chief of epidemiology and statistics in CDC's Division of Diabetes Translation. \"As the number of people with diabetes increases, it will be more important than ever to manage the disease to reduce complications and premature deaths.\"\nControlling levels of blood sugar (glucose), cholesterol and blood pressure helps people with diabetes reduce the chance of developing serious complications, including heart disease, stroke, blindness and kidney disease.\nIn 2001, the National Diabetes Education Program (NDEP), a joint effort of CDC and NIH with the support of more than 200 partners, developed a campaign to raise awareness of the link between diabetes and heart disease and reinforce the importance of a comprehensive diabetes care plan that focuses on the ABCs of diabetes – A1C (a measure of blood glucose control over a two- to three-month period), Blood pressure and Cholesterol. For more information, visit http://www.yourdiabetesinfo.org/ or call toll-free 1-888-693-NDEP (1-888-693-6337).\nLast year CDC and the Centers for Medicare & Medicaid Services launched Million Hearts, an initiative to prevent 1 million heart attacks and strokes over the next five years. The initiative focuses on two main goals: empowering Americans to make healthy choices and improving care for people, focusing on aspirin for people at risk, blood pressure control, cholesterol management and smoking cessation. More than 2 million heart attacks and strokes occur every year, and treatment for these conditions and other vascular diseases account for about 1 of every 6 health care dollars. Up to 20 percent of deaths from heart attack and 13 percent of deaths from stroke are attributable to diabetes or prediabetes. For more information on Million Hearts, visit http://millionhearts.hhs.gov.\nDiabetes was the seventh leading cause of death in 2009 and is the leading cause of new cases of kidney failure, blindness among adults younger than 75, and amputation of feet and legs not related to injury. People with diagnosed diabetes have medical costs that are more than twice as high as for people without the disease. The total costs of diabetes are an estimated $174 billion annually, including $116 billion in direct medical costs.\nU.S. Department of Health and Human Services\nCDC works 24/7 saving lives, protecting people from health threats, and saving money to have a more secure nation. Whether these threats are chronic or acute, manmade or natural, human error or deliberate attack, global or domestic, CDC is the U.S. health protection agency.\nSOURCE Centers for Disease Control and Prevention (CDC)\nPosted: May 2012"} -{"text": "e kwargs without running the activation\n forward (which needs CUDA + real weights).\n \"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"M*E\")\n with torch.device(\"meta\"):\n model = NemotronHCausalTextModel(text_config)\n\n assert model.has_mamba_layers # routes through the explicit minimal-cache path\n\n captured: dict[str, object] = {}\n\n class _Sentinel(RuntimeError):\n pass\n\n original = model.create_mamba_cache\n\n def _spy(**kwargs: object) -> None:\n captured.update(kwargs)\n raise _Sentinel()\n\n model.create_mamba_cache = _spy # type: ignore[method-assign]\n try:\n with pytest.raises(_Sentinel):\n model.estimate_activation_memory(logits_chunk_size=1)\n finally:\n model.create_mamba_cache = original # type: ignore[method-assign]\n\n assert captured, \"estimate_activation_memory must call create_mamba_cache for hybrid models\"\n assert captured[\"num_snapshots\"] == 0\n assert captured[\"reserve_grammar_buffers\"] is False\n assert isinstance(captured[\"max_batch_size\"], int) and captured[\"max_batch_size\"] >= 1\n\n\nclass _SpyNorm(nn.Module):\n def __init__(self) -> None:\n super().__init__()\n self.seen_x: torch.Tensor | None = None\n self.seen_residual: torch.Tensor | None = None\n\n def forward(self, x: torch.Tensor, *, add_residual: torch.Tensor) -> tuple[torch.Tensor, torch.Tensor]:\n self.seen_x = x\n self.seen_residual = add_residual\n return x + 1, add_residual + 2\n\n\nclass _SpyMixer(nn.Module):\n def __init__(self) -> None:\n super().__init__()\n self.args: tuple[object, ...] | None = None\n\n def forward(self, *args: object) -> torch.Tensor:\n self.args = args\n x = args[0]\n assert isinstance(x, torch.Tensor)\n return x + 3\n\n\n@pytest.mark.parametrize(\n (\"layer_index\", \"uses_meta\"),\n [\n (0, True),\n (1, True),\n (2, False),\n ],\n)\ndef test_decoder_layers_use_single_prenorm_mixer_topology(layer_index: int, uses_meta: bool) -> None:\n \"\"\"Mamba, attention, and MoE layers share the single-mixer pre-norm contract.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"M*E\")\n layer = NemotronH(cfg).layers[layer_index]\n norm = _SpyNorm()\n mixer = _SpyMixer()\n layer.norm = norm\n layer.mixer = mixer\n\n x = torch.arange(cfg.n_embd, dtype=torch.float32).view(1, cfg.n_embd)\n residual = torch.ones_like(x)\n meta = object()\n\n out, new_residual = layer(x, residual, meta) # type: ignore[arg-type]\n\n torch.testing.assert_close(norm.seen_x, x)\n torch.testing.assert_close(norm.seen_residual, residual)\n assert mixer.args is not None\n torch.testing.assert_close(mixer.args[0], x + 1)\n assert (len(mixer.args) == 2) == uses_meta\n if uses_meta:\n assert mixer.args[1] is meta\n torch.testing.assert_close(out, x + 4)\n torch.testing.assert_close(new_residual, residual + 2)\n\n\ndef test_moe_router_uses_sigmoid_topk_correction_bias_in_fp32() -> None:\n \"\"\"A gate_fp32 MoE feeds the NoauxTc score processor fp32 router logits (so grouped top-k is\n computed in fp32), and selection still honors the correction bias.\n\n Routes through the MoE (not the score processor directly) and spies on the dtype the processor\n actually receives. The fp32 logits come from the gate matmul itself (gate_fp32=True ->\n run_gate computes in fp32), not from a post-hoc upcast: a bf16-gate model (e.g. Kimi-Linear)\n intentionally routes on bf16 to match its reference, so forcing an upcast here would be wrong.\n \"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"E\",\n n_embd=4,\n n_routed_experts=2,\n n_shared_experts=0,\n num_experts_per_tok=1,\n moe_intermediate_size=4,\n moe_latent_size=None,\n norm_topk_prob=False,\n )\n moe = NemotronH(cfg).layers[0].mixer\n score_processor = moe.gate.score_processor\n assert score_processor.requires_fp32_gate_output\n # bf16 expert weights + gate_fp32 makes the fp32-gate path observable: run_gate upcasts the\n # bf16 gate weight/input to fp32 for the matmul (mirrors Nemotron-H's precision.gate=fp32),\n # so the score processor must receive fp32 logits even though the weights are bf16.\n moe.experts.to(torch.bfloat16)\n moe.experts.gate_fp32 = True\n assert moe.experts.gate_weight.dtype == torch.bfloat16\n with torch.no_grad():\n # Zero gate logits + correction bias [0, 10] so the bias alone drives selection (expert 1).\n moe.experts.gate_weight.zero_()\n score_processor.e_score_correction_bias.copy_(torch.tensor([0.0, 10.0]))\n\n seen: dict[str, object] = {}\n original_forward = score_processor.forward\n\n def spy_forward(scores: torch.Tensor, *args, **kwargs):\n seen[\"scores_dtype\"] = scores.dtype\n weights, indices = original_forward(scores, *args, **kwargs)\n seen[\"indices\"] = indices\n return weights, indices\n\n score_processor.forward = spy_"} -{"text": "Traumatic Brain Injuries Linked to Long-Term Health Issues for Iraq Vets\nTHURSDAY Dec. 4, 2008 -- A new report provides evidence linking traumatic brain injury sustained by troops in combat in Iraq and Afghanistan to a variety of long-term health problems including dementia, aggression, depression and symptoms similar to those seen in Parkinson's disease.\nBut the Institute of Medicine committee charged with developing the report also pointed to a troubling lack of scientific data on such injuries, which are fairly recent in the history of warfare.\n\"The real bottom line significant finding is that there's not a good human literature on the kinds of neurotrauma seen in Iraq and Afghanistan caused by blasts,\" said Dr. George W. Rutherford, vice chair of the department of epidemiology and biostatistics at the University of California, San Francisco, School of Medicine. \"The human literature is really about people who've had [brain injury] from car crashes or falling down stairs and, in the military, from shrapnel or gunshots. We're all worried that blast neurotrauma hasn't really made it into the human literature.\"\nThis makes it difficult, if not impossible, to anticipate and hopefully mitigate the long-term consequences of such injuries, added Rutherford, who chaired the committee that wrote the report.\n\"They focused on blast-induced neurotrauma, a blast injury that leaves the head without any external marks of even being knocked about,\" explained Keith Young, vice chair for research at Texas A&M Health Science Center College of Medicine and Neuroimaging and Genetics Core Leader for the VA Center of Excellence for Research on Returning War Veterans. \"The blast is so close and so large, it seems to be shaking the brain. My guess is that this causes micro-bleeds,\" Young said.\nThe current U.S. conflicts in Afghanistan and Iraq, which have been ongoing since Oct. 7, 2001 and March 2003, respectively, differ vastly from previous combat deployments in terms of injuries sustained. They differ even from injuries seen in the 1991 war, with more deaths, multiple traumas and more traumatic brain injuries (TBI).\nBlast injuries are considered the \"signature\" wound of the Iraq war and are largely a result of newer, more powerful explosive devices.\n\"One cause of the high rates of TBI is relatively simple: survival,\" Young said. \"The reason more people are surviving is better on-the-scene treatment and medivacing to facilities within minutes rather than hours.\"\nAccording to the Department of Defense (DOD), more than 5,500 soldiers had suffered TBIs as of January 2008, accounting for about 22 percent of all casualties, as compared with only 12 percent to 14 percent of all combat casualties during the Vietnam War.\nIn an effort to detail the long-term consequences of TBI, the committee looked at almost 2,000 studies on the subject.\nThe committee found evidence of a causal relationship between penetrating TBI and unprovoked seizures as well as death, and between severe or moderate TBI with unprovoked seizures.\nThere was \"sufficient\" evidence of an association between TBI and decline in neurocognitive function, long-term unemployment and problems with social relationships; Alzheimer's-like dementia, endocrine dysfunction, depression, aggressive behavior, memory problems and early death.\nThere was \"limited/suggestive\" evidence of an association between moderate or severe TBI and diabetes or psychosis; and between mild TBI and visual problems, dementia, post-traumatic stress disorder and suicide.\n\"Inadequate/insufficient\" evidence existed on the relationship between moderate or severe TBI and brain tumors; mild TBI and employment and social functioning problems, bipolar disorder or attempted suicide; TBI and multiple sclerosis or amyotrophic lateral sclerosis (Lou Gehrig's disease).\nThe committee put forth a number of recommendations.\n\"Three of the recommendations are really directed towards the DOD and the VA about how to keep track of this stuff so people in the future can put registries together,\" Rutherford said. \"Once you know that, you can start answering questions, are five of these five times as bad as one, what's the long-term risk of any bad outcome.\"\nView the full report at the U.S. National Academies of Science.\nPosted: December 2008"} -{"text": "How to Find the Limit of a Function Algebraically\nWhen your pre-calculus teacher asks you to find the limit of a function algebraically, you have four techniques to choose from: plugging in the x value, factoring, rationalizing the numerator, and finding the lowest common denominator.\nThe best place to start is the first technique. You may only use this technique if the function is continuous at the x value at which you are taking the limit. If the function is undefined at this x value, you must move on to the other techniques to simplify your function so that you can plug in the approached value for x.\nFind the limit by plugging in the x value\nThe first technique for algebraically solving for a limit is to plug the number that x is approaching into the function. If you get an undefined value (0 in the denominator), you must move on to another technique. But if your function is continuous at that x value, you will get a value, and you're done; you've found your limit! For example, with this method you can find this limit:\nThe limit is 3, because f(5) = 3 and this function is continuous at x = 5.\nFind the limit by factoring\nFactoring is the method to try when plugging in fails — especially when any part of the given function is a polynomial expression.\nSay you're asked to find this limit:\nYou first try to plug 4 into the function, and you get 0 in the numerator and the denominator, which tells you to move on to the next technique. The quadratic expression in the numerator screams for you to try factoring it. Notice that the numerator of the previous function factors to (x – 4)(x – 2). The x – 4 cancels on the top and the bottom of the fraction. This step leaves you with f(x) = x – 2. You can plug 4 into this continuous function to get 2.\nIf you graph this function, it looks like the straight line f(x) = x – 2, but it has a hole when x = 4 because the original function is still undefined there (because it creates 0 in the denominator). The figure illustrates this.\nIf, after you've factored the top and bottom of the fraction, a term in the denominator didn't cancel and the value that you're looking for is undefined, the limit of the function at that value of x does not exist (which you can write as DNE).\nFor example, this function factors as shown:\nThe (x – 7) on the top and bottom cancel. So if you're asked to find the limit of the function as x approaches 7, you could plug 7 into the cancelled version and get 11/8. But if you're trying to find\nthe limit DNE, because you'd get 0 on the denominator. This function, therefore, has a limit anywhere except as x approaches –1.\nFind the limit by rationalizing the numerator\nThe third technique you need to know to find limits algebraically requires you to rationalize the numerator. Functions that require this method have a square root in the numerator and a polynomial expression in the denominator. For example, say you're asked to find the limit of this function as x approaches 13:\nPlugging in numbers fails when you get 0 in the denominator of the fraction. Factoring fails because the equation has no polynomial to factor. In this situation, if you multiply the numerator and denominator by the conjugate of the numerator, the term in the denominator that was a problem cancels out, and you'll be able to find the limit:\nMultiply the top and bottom of the fraction by the conjugate.\nThe conjugate of the numerator is\nMultiplying through, you get this setup:\nFOIL the numerator to get\nwhich simplifies to x – 13 (the middle two terms cancel and you combine like terms from the FOIL).\nCanceling gives you this expression:\nThe (x – 13) terms cancel, leaving you with this result:\nCalculate the limits.\nWhen you plug 13 into the function, you get 1/6, which is the limit.\nFind the limit by finding the lowest common denominator\nWhen you're given a complex rational function, you use the fourth and final algebraic limit-finding technique. The technique of plugging fails, because you end up with a 0 in one of the denominators. The function isn't factorable, and you have no square roots to rationalize. Therefore, you know to move on to the last technique. With this method, you combine the functions by finding the least common denominator (LCD). The terms cancel, at which point you can find the limit.\nFor example, follow the steps to find the limit:\nFind the LCD of the fractions on the top.\nDistribute the numerators on the top.\nAdd or subtract the numerators and then cancel terms.\nSubtracting the numerators gives you\nwhich then simplifies to\nUse the rules for fractions to simplify further.\nSubstitute the limit value into this function and simplify.\nYou want to find the limit as x approaches 0, so the limit here is –1/36."} -{"text": "forward # type: ignore[method-assign]\n\n moe.experts.prepare_for_inference()\n moe(torch.randn(3, cfg.n_embd, dtype=torch.bfloat16))\n\n # gate_fp32 produced fp32 router logits for scoring, and the correction bias selected expert 1.\n assert seen[\"scores_dtype\"] == torch.float32\n assert torch.equal(seen[\"indices\"], torch.ones_like(seen[\"indices\"])) # type: ignore[arg-type]\n\n\ndef test_text_model_gate_precision_controls_router_weight_dtype() -> None:\n \"\"\"Router weights are materialized once in configured gate precision.\"\"\"\n bf16_config = _make_text_config(hybrid_override_pattern=\"E\")\n fp32_config = _make_text_config(hybrid_override_pattern=\"E\")\n fp32_config.precision.gate = firenn.GateDType.fp32\n\n bf16_moe = NemotronHCausalTextModel(bf16_config).layers[0].mixer\n fp32_moe = NemotronHCausalTextModel(fp32_config).layers[0].mixer\n\n assert bf16_moe.experts.gate_weight.dtype == torch.bfloat16\n assert bf16_moe.gate.score_processor.e_score_correction_bias.dtype == torch.bfloat16\n assert fp32_moe.experts.gate_weight.dtype == torch.float32\n assert fp32_moe.gate.score_processor.e_score_correction_bias.dtype == torch.float32\n\n\n# ---------------------------------------------------------------------------\n# Precision policy + conversion\n# ---------------------------------------------------------------------------\n\n\ndef _make_moe_text_config() -> NemotronHTextConfig:\n return _make_text_config(\n hybrid_override_pattern=\"E\",\n n_embd=4,\n n_routed_experts=2,\n n_shared_experts=1,\n num_experts_per_tok=1,\n moe_intermediate_size=4,\n moe_latent_size=None,\n norm_topk_prob=False,\n )\n\n\ndef test_default_precision_bf16_is_baseline() -> None:\n cfg = _make_moe_text_config()\n precision = NemotronHCausalTextModel.default_precision(\"bf16\", cfg)\n\n assert precision.matmul == firenn.MatmulDType.bf16\n assert precision.moe == firenn.MoEDType.bf16\n assert precision.kv_cache == firenn.KVCacheDType.bf16\n assert precision.activation == firenn.ActivationDType.bf16\n # Recurrent Mamba state stays fp32 regardless of weight precision.\n assert precision.mamba_state == firenn.MambaStateDType.fp32\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"fp8 MoE precision construction requires a GPU platform\")\ndef test_default_precision_fp8_quantizes_only_moe_keeps_dense_bf16() -> None:\n cfg = _make_moe_text_config()\n precision = NemotronHCausalTextModel.default_precision(\"fp8\", cfg)\n\n # Dense paths (attention / mamba / dense MLP) stay bf16; only experts quantize.\n assert precision.matmul == firenn.MatmulDType.bf16\n assert precision.qkv == firenn.MatmulDType.bf16\n assert precision.moe != firenn.MoEDType.bf16\n assert precision.mamba_state == firenn.MambaStateDType.fp32\n\n\ndef test_get_supported_precisions_lists_quantized_modes() -> None:\n model = NemotronHCausalTextModel(_make_moe_text_config())\n # fp8 (mxfp8) is near-lossless PTQ; fp4 (nvfp4) needs calibration / native checkpoint.\n assert model.get_supported_precisions == [\"fp8\"]\n assert model.get_supported_precisions_with_calibration == [\"fp4\"]\n\n\ndef test_expert_matmul_from_moe_maps_per_linear_dtypes() -> None:\n f = NemotronHCausalTextModel._expert_matmul_from_moe\n assert f(firenn.MoEDType.bf16) == firenn.MatmulDType.bf16\n assert f(firenn.MoEDType.fp8) == firenn.MatmulDType.fp8\n # ROCm default_precision(\"fp8\") routes MoE to bw128fp8_aiter; per-expert loop uses bw128fp8 linears.\n assert f(firenn.MoEDType.bw128fp8_aiter) == firenn.MatmulDType.bw128fp8\n assert f(firenn.MoEDType.mxfp8) == firenn.MatmulDType.mxfp8\n assert f(firenn.MoEDType.nvfp4) == firenn.MatmulDType.nvfp4\n\n\ndef test_expert_matmul_from_moe_rejects_fused_only_dtype() -> None:\n # mxfp8_mxfp4 is a fused-MoE-only layout; the ungated relu² loop has no per-linear path.\n with pytest.raises(ValueError, match=\"fused\"):\n NemotronHCausalTextModel._expert_matmul_from_moe(firenn.MoEDType.mxfp8_mxfp4)\n\n\ndef test_convert_bf16_leaves_experts_unquantized() -> None:\n from fireworks.nn.moe.fused_moe import FusedMoE\n\n model = NemotronHCausalTextModel(_make_moe_text_config())\n experts = model.layers[0].mixer.experts\n assert isinstance(experts, FusedMoE)\n assert experts.ungated\n weight_cls = type(experts.up_proj_weights_list[0])\n\n model.convert(NemotronHCausalTextModel.default_precision(\"bf16\", model.text_config))\n\n # bf16 conversion is a no-op on the fused experts; weights keep their original class.\n experts = model.layers[0].mixer.experts\n assert isinstance(experts, FusedMoE)\n assert type(experts.up_proj_weights_list[0]) is weight_cls\n\n\ndef test_convert_handles_split_mamba_in_proj() -> None:\n \"\"\"convert() runs _convert_block on every layer including Mamba; the packed\n in_proj was split into z/xBC/dt for TP, so _convert_block must convert the\n split sections (regression: it referenced the removed mixer.in_proj).\"\"\"\n text_config "} -{"text": "The Hardware Needed for Basic Ethernet Networks\nFollowing are the basic hardware requirements of any small Ethernet network. One benefit of Ethernet networks is their simplicity. You don’t need a degree in Advanced Thakamology to install your network, and (because today’s PCs come equipped with built-in Ethernet ports) you can put four PCs in a simple Ethernet network for the cost of a few cables.\nCables for an Ethernet network\nTwo different kinds of cabling connect computer to computer (or computer to network device):\nCoaxial (coax): The same type of cable that’s used to connect your TV to your cable box. Coax is thick stuff and not easily routed or hidden. Also, each end of a coax Ethernet network must have a terminator to mark the end of the network circuit, which is a hassle (a small one, granted, but a hassle nonetheless).\nTwisted pair: Looks almost exactly like telephone wire or the cable that runs between a PC’s dialup modem and the telephone wall jack. Twisted pair is easier to hide and much easier to route.\nThe downside to using a twisted pair Ethernet network is that you need a switch, which acts as a central connection point. However, twisted pair cabling is much cheaper overall than coaxial cable.\nIf you would rather eschew cables altogether (well, almost altogether), consider a wireless network. Although it’s a bit slower, you have freedom of movement undreamed of by the wired crowd. Heck, you could even throw caution utterly to the wind and get a wireless switch or router that can provide both wired and wireless connections. (In fact, alternative wired networks can use your home or office’s existing telephone or AC power lines. No, really!)\nSwitches for an Ethernet network\nA switch is essentially just an overgrown connection box, linking (via cabling) each computer on your network to all other network computers and peripherals, like a printer. It’s about as visually interesting as a shoebox. On the inside, a switch prevents dastardly collisions; a switch narrows the broadcast of a packet to only the PC that needs it.\nMost Internet sharing devices and routers designed to work with broadband connections have built-in switches — just keep in mind that you need some sort of switch for a twisted pair network. Switches are pretty inexpensive — how much you pay depends on how many ports the switch provides, ranging from about $50–$200 US.\nSwitches have virtually replaced the earlier, less-efficient Ethernet hub. Always choose a switch over an Ethernet hub.\nNetwork interface cards (NICs) for Ethernet networks\nYou need a network interface card (NIC) for each computer on your network. If your desktop or laptop PC doesn’t have a built-in NIC, an internal adapter card is probably the best choice, but installing a NIC doesn’t necessarily have to involve opening your PC’s case.\nYou can get a Personal Computer Memory Card International Association (PCMCIA; or PC Card) NIC for your laptop, and other network adapters can be connected through a Universal Serial Bus (USB) port. However, you probably don’t need to buy a separate NIC for your PC because virtually all PCs now include built-in network connectors. (Check your PC’s manual or look for a port labeled Ethernet 10/100 or Network on the back of the computer.)\nNICs are rated by the speed of the network. Most home networks use a 10/100 NIC (which means that your network can operate at either 10 Mbps or 100 Mbps), which sets you back about $25–$30 US. The third speed — Gigabit Ethernet — runs at a whopping 1000 Mbps, but you might not need that much throughput unless you regularly transfer huge multigigabyte files betwixt computers.\n(Gigabit hardware used to be as expensive as a meeting with a good lawyer, but prices for this faster equipment are now on a par with 10/100 hardware.) Well-known Ethernet device manufacturers include D-Link, NETGEAR, and Linksys.\nWhen shopping for your card, check the manufacturer’s website and verify the drivers the card uses. The card should support at least Windows XP, Vista, and 7/8. Also, check how often those drivers are updated; a two-year-old driver is not a good sign. In general, most manufacturers display certification statements (both on the box and on the company’s website) guaranteeing that a NIC will work with specific operating systems."} -{"text": "Within our lifetimes we've marveled as biologists have managed to look at ever smaller and smaller things;\nIntimate science fiction films are few and far between, and that Another Earth exists at all is a testament to the talents of director Mike Cahill and actress Brit Marling. Another Earth uses a newly discovered planet as a catalyst for its heroine to make amends for taking the lives of two strangers. The first of two films about rogue planets to hit this year - the other being Lars von Trier's haunting Melancholia - Another Earth skillfully mixes heavy drama with sci-fi undertones to craft a satisfying tale of redemption.\nHigh school senior Rhoda Williams (Marling) celebrates her acceptance to MIT on the night that a new planet first can be seen from earth. Rhoda's dreams and the lives of three people are destroyed when she drunkenly plows into the front of a BMW. The father (William Mapother), a musician and college professor, is comatose for days; his wife and child die at the scene. After four years in prison, Rhoda returns to her family and begins working as a janitor at a local school. The planet, called Earth 2, is now a brilliant mirror image of our own planet and hangs prominently in the sky.\nMarling, who is most known for Boxers and Ballerinas, a documentary she co-wrote with Cahill, plays Rhoda with beautiful, open acceptance of the pain she has caused Mapother's John Burroughs, who now lives in squalor in his decaying farmhouse. Rhoda goes to the house to apologize but instead pretends to be a maid and offers to clean up his mess. She makes a habit out of the job, and becomes close to John, who does not know Rhoda's secret because she was a minor at the time of the accident. Contact is eventually made with Earth 2, and it is discovered that life there is some alternate version of life on Earth.\nShot for only $200,000, Another Earth is impressively polished, with a pulsating soundtrack from Fall on Your Sword. The science fiction themes subtly bolster the central conflict, and it all comes together remarkably well. What better way for Rhoda and John to find peace than in the promise of an Earth 2 self that never had to experience such pain and loss? It sounds bizarre, but Cahill keeps the action so focused that Another Earth never loses its way amid celestial posturing. Instead, it is content to hint at its heritage, as in the scene where John plays an alien invasion-esque melody by taking bow to saw.\nMapother and Marling carry Another Earth on their shoulders, but are assisted by a tight, Spartan script. Only in one moment of release did Rhoda's actions feel phony, and Marling walks the fine line between punishing herself for past misdeeds and looking toward a brighter future. Another Earth asks many questions but provides few answers, and I suspect some will not love its final note. Another Earth is a rare wisp of science-fiction poetry, and such a unique film deserves to be seen.\nAnother Earth was shot in 720p on a shoestring budget, but the Blu-ray's 1.85:1/1080p/AVC-encoded transfer has some impressive moments. The film's digital origins lead to some life-like detail, especially in close-ups. Marling's blue eyes sparkle, and the confines of John's home are deep and clear. Of course, noise can be heavy, especially in outdoor scenes, and crush runs rampant in a few darker shots. There is also some aliasing and jagged edges, but the bold, blue-tinged color scheme is impressive.\nThe film's 5.1 DTS-HD Master Audio soundtrack is perfectly serviceable if not especially immersive. Dialogue is clear and balanced well with the film's rhythmic score. Ambient effects are present but only occasionally wind up in the rear and surround speakers. The LFE kicks in during a party and a couple of more jolting scenes, but this is a somewhat subdued mix. An English DVS track is also available, as are English SDH, Spanish and French subtitles.\nPACKAGING AND EXTRAS:\nAnother Earth arrives as a 3-disc set from Fox that includes the Blu-ray, a DVD copy of the film and a digital copy disc. A slipcover that replicates the striking cover art wraps the hinged Blu-ray case.\nThe extra features are not nearly as impressive as they first appear. The music video for \"The First Time I Saw Jupiter\" by Fall on Your Sword (3:19/HD) is an interesting mashup of images set to a pulsating club track. In the deleted scenes (9:20/HD), viewers get a glimpse of Rhoda's concerned parents and some unused effects footage. Fox Movie Channel Presents: Direct Effect with Mike Cahill (4:17/SD) is a short piece about the director in which he reveals the challenges of shooting with almost no budget. Fox Movie Channel Presents: In Character with Brit Marling (4:22/SD) features a few remarks from the actress about her role in the film, and Mapother also discusses his character in Fox Movie Channel Presents: In Character with William Mapother (4:22/SD). The Science Behind Another Earth (2:39/HD) provides no useful information despite the input from an astrophysicist, and Creating Another Earth (2:29/HD) is too short to cover much ground. The extras conclude with the film's theatrical trailer, a blurb on the soundtrack and a sneak peak of Atlas Shrugged: Part I.\nWhile it is not the only film about a newly discovered planet to be released in 2011, Another Earth is a uniquely haunting drama with science fiction elements running through its veins. Actress Brit Marling shines as a young woman trying to make amends for the terrible mistake that sent the life of William Mapother's college professor into a downward spiral. Director Mike Cahill's film is moving and accomplished, and deserves to be seen on Blu-ray. Highly Recommended."} -{"text": "= NemotronHTextConfig(base=_make_config(hybrid_override_pattern=\"M*E\", head_dim=64))\n model = NemotronHCausalTextModel(text_config)\n # Previously raised: 'Mamba2' object has no attribute 'in_proj'.\n model.convert(NemotronHCausalTextModel.default_precision(\"bf16\", model.text_config))\n mamba = next(layer.mixer for layer in model.layers if isinstance(layer, NemotronHMambaDecoderLayer))\n assert hasattr(mamba, \"in_proj_z\")\n assert hasattr(mamba, \"in_proj_xBC\")\n assert hasattr(mamba, \"in_proj_dt\")\n assert not hasattr(mamba, \"in_proj\")\n\n\ndef test_fused_relu2_moe_dtype_maps_supported_and_rejects_unsupported() -> None:\n f = NemotronHCausalTextModel._fused_relu2_moe_dtype\n # Pure mxfp8 is forced to the low-latency trtllm fp8 path (non-LL relu² epilogue absent).\n assert f(firenn.MoEDType.mxfp8) == firenn.MoEDType.mxfp8_ll\n assert f(firenn.MoEDType.mxfp8_ll) == firenn.MoEDType.mxfp8_ll\n assert f(firenn.MoEDType.nvfp4) == firenn.MoEDType.nvfp4\n # A fused MoE dtype without an ungated relu² kernel path fails fast.\n with pytest.raises(NotImplementedError, match=\"not wired\"):\n f(firenn.MoEDType.bw128fp8)\n\n\ndef test_sharding_spec_attention_and_dense_moe() -> None:\n \"\"\"Attention head-parallel + dense MLP / shared-expert specs; gate stays replicated.\"\"\"\n model = NemotronHCausalTextModel(_make_moe_text_config())\n layers = model.sharding_spec.layers\n\n assert \"o_proj\" in layers\n assert \"up_proj\" in layers\n assert \"down_proj\" in layers\n # Router gate is replicated (decoupled) -> never in the per-linear shard spec.\n assert \"gate\" not in layers\n assert \"weight\" not in layers\n\n\ndef test_sharding_spec_replicates_latent_projections() -> None:\n \"\"\"LatentMoE (Super) projections stay replicated, not sharded: the decoupled router\n runs full-dim and the experts consume the full latent, so sharding fc1/fc2_latent_proj\n would collapse the token dim by world_size. They must be absent from the per-linear spec.\"\"\"\n text_config = _make_text_config(\n hybrid_override_pattern=\"E\",\n n_embd=4,\n n_routed_experts=2,\n num_experts_per_tok=1,\n moe_intermediate_size=4,\n moe_latent_size=2,\n norm_topk_prob=False,\n )\n layers = NemotronHCausalTextModel(text_config).sharding_spec.layers\n assert \"fc1_latent_proj\" not in layers\n assert \"fc2_latent_proj\" not in layers\n\n\ndef test_shard_swaps_attention_and_moe_to_local_shapes() -> None:\n \"\"\"Head-parallel attention + expert-parallel MoE swap to sharded modules (meta, single-process).\"\"\"\n import fireworks.nn.shard as fireshard\n from fireworks.nn.moe.sharded_fused_moe import ShardedFusedMoE\n\n base_cfg = _make_config(\n hybrid_override_pattern=\"*E\",\n n_head=4,\n n_head_kv=2,\n head_dim=8,\n n_embd=32,\n n_routed_experts=8,\n num_experts_per_tok=2,\n moe_intermediate_size=16,\n moe_latent_size=None,\n n_shared_experts=0,\n norm_topk_prob=False,\n )\n assert isinstance(base_cfg, NemotronHConfig)\n text_config = NemotronHTextConfig(base=base_cfg)\n sharding = fireshard.ShardingConfig(\n rank=0,\n world_size=2,\n attn_sharding_type=fireshard.AttentionShardType.HEAD_PARALLEL,\n moe_sharding_type=fireshard.MoEShardPolicy.EXPERT_PARALLEL,\n )\n\n with torch.device(\"meta\"):\n model = NemotronHCausalTextModel(text_config)\n model.shard(sharding=sharding)\n\n moe = next(l.mixer for l in model.layers if isinstance(l, NemotronHMoEDecoderLayer))\n assert isinstance(moe.experts, ShardedFusedMoE)\n # Expert-parallel: each rank holds num_experts // world_size local experts.\n assert moe.experts.up_proj_weights_list.shape[0] == 8 // 2\n\n\ndef test_shard_swaps_mamba_to_local_shapes() -> None:\n \"\"\"Mamba-2 TP: in_proj sections / conv1d / head-params / norm shard to local shapes (meta).\"\"\"\n import fireworks.nn.shard as fireshard\n\n nheads, head_dim, ngroups, d_state = 4, 8, 2, 4\n d_inner = nheads * head_dim\n gstate = ngroups * d_state\n conv_dim = d_inner + 2 * gstate\n\n base_cfg = _make_config(\n hybrid_override_pattern=\"M*\", # one Mamba, one attention\n n_head=4,\n n_head_kv=2,\n head_dim=8,\n n_embd=32,\n mamba_num_heads=nheads,\n mamba_head_dim=head_dim,\n n_groups=ngroups,\n ssm_state_size=d_state,\n )\n assert isinstance(base_cfg, NemotronHConfig)\n text_config = NemotronHTextConfig(base=base_cfg)\n sharding = fireshard.ShardingConfig(\n rank=0,\n world_size=2,\n attn_sharding_type=fireshard.AttentionShardType.HEAD_PARALLEL,\n )\n\n with torch.device(\"meta\"):\n model = NemotronHCausalTextModel(text_config)\n model.shard(sharding=sharding)\n\n mamba = next(l.mixer for l in model.layers if isinstance(l, NemotronHMambaDecoderLayer))\n W = 2\n # in_proj sections: z (heads), xBC (x heads + B/C groups), dt (heads); conv shares xBC layout.\n asse"} -{"text": "Whether it is in Forgetting Sarah Marshall or How I Met your Mother, Jason Segel seemingly portrays a guy who is a bit of an oaf, though he does have a sensitive side that can be charming. He eschews most of these facades in Jeff Who Lives At Home in what is a welcome departure for him and others.\nThe film was written and directed by Jay and Mark Duplass, in a follow-up to their 2010 breakout success Cyrus. Segel plays the title character, a 30 year old that smokes weed and lives in his mother's basement most of the time. He tends to live his life believing in the overall cosmic significance of even the most trivial matters. We see it in the opening titles which \"borrow\" from a quote of his, we hear it as he discusses his appreciation for the larger themes in the film Signs. His mother Sharon (Susan Sarandon, Dead Man Walking) works and calls to remind him to get on the bus and go to Home Depot to get some supplies to fix a shutter. Before he goes however, he gets a phone call, a wrong number from someone asking for a 'Kevin.' While making his errand to Home Depot he sees a Kevin on the bus, and thus starts a journey for him that takes him away from his goal and more towards seeking out the importance of Kevin in his life. Along the way, he runs into his older brother Pat (Ed Helms, The Hangover), who does not share his brother's belief set, yet they somehow accidentally spend a day together.\nSegel eschews the sensitivity to a degree for a sense of inner peace that, as the film goes on, becomes engaging. It is easy to dismiss his thoughts of the larger meaning of a wrong number phone call, but the more the story evolves, the more we realize that Jeff's trust in his 'muddled' thinking may make him the most normal among his family. And he does all of this while serving as a mirror for those around him, both direct and indirect. Pat is in a dysfunction relationship with Linda (Judy Greer, Archer), and as we discover more about what their relationship is, we learn a bit about Pat as well, and Pat has some clarifying moments with Jeff. Sharon is in a different situation. She has this unemployed stoner son still living with her, her husband (their father) has long since died and her life is a lonely one. She gets a moment where an anonymous coworker sends her an instant message proclaiming their secret admiration, and this feeling of value is something that pleases and confuses her. Sarandon's role, while not as direct an interaction with Segel, proves to be an intriguing and charming performance.\nWhat surprised me about Jeff the most may be the comfort in telling the story that the Suplass brothers seem to have. At first glance seeing that the film has an 82-minute runtime, my concern was the film may be shoddily told and the performances would be sloppy. To my amazement, the brothers have a confidence in the story that allows it to be devoid of filler that would stretch it into 20 more minutes that could wind up being tedious. The boys are so confident that they include an ending that flirts with being a little Altman-esque in terms of aspiration. However, within the scope of who Jeff is (and to a degree who Pat and Sharon are evolving into), it seems to work. You roll with it, and even shed a tear or two unabashedly.\nIf one were to expand Jeff's mentality into the world, it's that he is a Buddhist rock of sorts, tossed into the water, and Pat and Sharon feel the waves in varying degrees. Segel combines this peace with some flashes of comic timing (some of the scenes with Helms rival the best work that either have done recently), and Jeff Who Lives At Home proves to be a fruitful, funny and touching experience, and certainly should reinforce to those that aren't familiar that Jay and Mark Duplass' work deserves a bigger place at the cinematic table, and helps show us another side of Segel that would be nice to revisit in the future.The Blu-ray Disc:\nParamount displays Jeff in an AVC encoded 1.85:1 high-definition presentation that looks quite good. The brothers Suplass along with their cinematographer Jas Shelton tend to employ handheld shots for most of their work, with some occasional quick close-ups on the characters during a scene. The disc handles this sudden action well and image detail is abundant on the actors in both facial hair and pores, with some finer fabric textures being discernible. The exteriors also possess solid detail and clarity with black levels remaining solid through the feature and the color palette looking accurate to boot. I was not sure what to expect from the disc but I liked what I saw.The Sound:\nA DTS-HD Master Audio lossless 5.1 surround track rules the day for the film, and the overall result is also better than I was expecting. Dialogue sounds strong and consistent through the film, and a more surprising part was how much low-end activity that occurred through the film, ranging from the bass of rap music to the thud of a Porsche Boxster into a tree. The chirp of a tripped fire alarm from the rear channels makes for a jarring yet effective experience and the soundtrack itself is understated in its immersion. Paramount has certainly done Jeff Who Lives At Home justice in high-definition.Extras:\nAn Ultraviolet copy of the film for streaming, but nothing else. While it is a rule of thumb for me to bitch about an average film having minimal extras, this film is better than most and has none. Nerts to Paramount.Final Thoughts:\nJeff Who Lives At Home not only shows us another side of Jason Segel that we have not seen before (and should see more of), but we get a film that is emotional and funny that go beyond his work. Technically the film proves to be a pleasant work to look and listen to, though the lack of extras for the disc (not even a commentary?) really hold it back from being a library keeper. That said, seek it out at your best opportunity for one of the nicer films to come out this year so far."} -{"text": "To the Editor\nRe: Who is telling kids to avoid engineering?\nAs I read this thread three related but distinct issues are apparent:\n1) The impact of outsourcing on the engineering labor market\n2) The impact of H1-B visas on the engineering labor market\n3) Should America's brightest prospects be encouraged to pursue engineering?\n1) The engineering labor market has expanded globally. It is inevitable that the extra supply of labor will push down the median compensation of engineers in the developed world. This will occur regardless of government action. Companies must find the lowest cost method available to develop their products or they will lose in the marketplace.\nSome professions, like law, have long shielded themselves from competition by forming trade associations that require membership to practice. Unlike lawyers, it is impractical for engineers to form a trade association that wields much power. Law is defined by a government presiding over a certain geography. This has historically limited the ability of law firms to move their operations elsewhere. The licensed practice of medicine also has a geographical limitation. Civilian engineering work has never faced that fundamental restriction and the possibility of outsourcing is not a new development. It has just been facilitated by post cold war politics, improving education in developing countries, and the low cost of IT.\n2) Since government in a free market economy has little control over corporate operations, the question that arises is how to maintain technological expertise when the global labor market is reducing the compensation of your engineers. Your homegrown talent increasingly faces more attractive options in other fields, such as the law and medicine. To force better compensation for engineers will only drive jobs out of your country. Why not leverage the assets that you have? In exchange for working here at a globally competitive wage, offer residency and potential citizenship in a country that people risk their lives just to reach.\nFrom the government's perspective, the visa program is a good deal, producing talented workers that we didn't spend any tax money on to educate. The H1-B visa program is a tool the government uses to keep engineering relevant in the U.S. By introducing skilled labor in the U.S., more work remains here. Some will argue that it suppresses salaries or costs jobs, but I believe that the labor market is so globalized that the impact of H1-B workers on wages is insignificant relative to the competition of engineers overseas.\nYes, there are there many unemployed engineers today. Yes, many of them would accept a lower wage to get back to work. However, change in the technology industry is rapid. A lot of companies are unwilling to invest in training someone when a person with the right skills is available. Government should encourage this investment, but it should not mandate it. Doing so will only drive more work into lower cost and even less regulated labor markets. The easy recruiting of qualified candidates has become essential to the technology economy in the U.S.\n3) Given the competitiveness of the global engineering workforce, I will likely discourage my children from pursuing a career in engineering. In the end it will be their decision. My advice will be that there are many benefits to an engineering education, the academic rigor is proof of ability and it can be used as a background for a business or legal career. If you have a very deep passion for the field, than an engineering career is still a worthwhile pursuit. Engineering remains an area ripe for entrepreneurship and there will always be jobs for the best scientists and engineers no matter what they cost. However to be merely a good engineer may leave you unemployed in the middle of your career, with a narrow set of skills that nobody wants. Of course you can pick up and start over, but why bother with the risk when there are so many other great options?\nEE Times welcomes letters to the editor but reserves the right to edit for length and relevance. Please send them to email@example.com, firstname.lastname@example.org and email@example.com. Please also address them as \"Letter to the Editor,\" indicating that they are intended for publication."} -{"text": "rt mamba.in_proj_z.weight.shape[0] == d_inner // W\n assert mamba.in_proj_dt.weight.shape[0] == nheads // W\n assert mamba.in_proj_xBC.weight.shape[0] == conv_dim // W\n assert mamba.conv1d.weight.shape[0] == conv_dim // W\n # head-params + gated-norm weight columnwise; out_proj rowwise (in_features sharded).\n assert mamba.dt_bias.weight.shape[0] == nheads // W\n assert mamba.A_log.weight.shape[0] == nheads // W\n assert mamba.D.weight.shape[0] == nheads // W\n assert mamba.norm_weight.weight.shape[0] == d_inner // W\n assert mamba.out_proj.weight.shape[1] == d_inner // W\n # Dynamic dims recompute from the sharded params.\n assert mamba.nheads == nheads // W\n assert mamba.ngroups == ngroups // W\n assert mamba.d_inner == d_inner // W\n assert mamba.conv_dim == conv_dim // W\n\n\ndef test_moe_experts_registered_for_sharding() -> None:\n \"\"\"The ungated relu² experts (FusedMoE) map to ShardedFusedMoE in the MoE shard registry.\"\"\"\n from fireworks.nn.moe.fused_moe import FusedMoE\n from fireworks.nn.moe.sharded_fused_moe import ShardedFusedMoE\n from fireworks.nn.shard import MoEShardPolicy, build_moe_shard_classes\n\n classes = build_moe_shard_classes()\n assert classes.get((FusedMoE, MoEShardPolicy.TENSOR_PARALLEL)) is ShardedFusedMoE\n assert classes.get((FusedMoE, MoEShardPolicy.EXPERT_PARALLEL)) is ShardedFusedMoE\n\n\ndef test_moe_forward_uses_latent_projections() -> None:\n \"\"\"Latent projections wrap the routed expert reference path.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"E\",\n n_embd=4,\n n_routed_experts=2,\n n_shared_experts=0,\n num_experts_per_tok=1,\n moe_intermediate_size=4,\n moe_latent_size=2,\n norm_topk_prob=False,\n )\n moe = NemotronH(cfg).layers[0].mixer\n calls = {\"fc1\": 0, \"fc2\": 0}\n moe.fc1_latent_proj.register_forward_hook(lambda *_args: calls.__setitem__(\"fc1\", calls[\"fc1\"] + 1))\n moe.fc2_latent_proj.register_forward_hook(lambda *_args: calls.__setitem__(\"fc2\", calls[\"fc2\"] + 1))\n with torch.no_grad():\n moe.experts.gate_weight.zero_()\n moe.gate.score_processor.e_score_correction_bias.zero_()\n\n moe.experts.prepare_for_inference()\n out = moe(torch.randn(2, cfg.n_embd))\n\n assert out.shape == (2, cfg.n_embd)\n assert calls == {\"fc1\": 1, \"fc2\": 1}\n\n\nclass _ConstantModule(nn.Module):\n def __init__(self, value: float, width: int) -> None:\n super().__init__()\n self.value = value\n self.width = width\n\n def forward(self, x: torch.Tensor) -> torch.Tensor:\n return x.new_full(x.shape[:-1] + (self.width,), self.value)\n\n\nclass _ConstantExpertBank(nn.Module):\n \"\"\"Stand-in for the fused experts that returns a constant routed output.\n\n Matches the unified MoE call signature (``forward(x, score_processor=..., gate_input=...)``)\n so it can be swapped into ``NemotronHMoE`` to exercise the wrapper logic (shared add, scaling).\n \"\"\"\n\n def __init__(self, value: float, width: int) -> None:\n super().__init__()\n self.value = value\n self.width = width\n\n def forward(self, x: torch.Tensor, score_processor=None, gate_input: torch.Tensor | None = None) -> torch.Tensor:\n return x.new_full((x.shape[0], self.width), self.value)\n\n\ndef test_moe_forward_adds_shared_expert_once() -> None:\n \"\"\"Shared expert contribution is added once to the routed output.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"E\",\n n_embd=4,\n n_routed_experts=2,\n n_shared_experts=1,\n num_experts_per_tok=1,\n moe_intermediate_size=4,\n moe_latent_size=None,\n routed_scaling_factor=1.0,\n norm_topk_prob=False,\n )\n moe = NemotronH(cfg).layers[0].mixer\n # _ConstantExpertBank ignores routing, so no gate setup is needed to isolate the wrapper.\n moe.experts = _ConstantExpertBank(value=0.0, width=cfg.n_embd)\n moe.shared_experts = _ConstantModule(value=3.0, width=cfg.n_embd)\n\n out = moe(torch.randn(2, cfg.n_embd))\n\n torch.testing.assert_close(out, torch.full_like(out, 3.0))\n\n\ndef test_moe_forward_skips_routed_scaling_in_fp16() -> None:\n \"\"\"FP16 keeps routed output unscaled and shrinks shared output only.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"E\",\n n_embd=1,\n n_routed_experts=1,\n n_shared_experts=1,\n num_experts_per_tok=1,\n moe_intermediate_size=1,\n moe_latent_size=None,\n routed_scaling_factor=5.0,\n norm_topk_prob=False,\n )\n moe = NemotronH(cfg).layers[0].mixer\n # _ConstantExpertBank ignores routing, so the wrapper's fp16 scaling is exercised directly.\n moe.experts = _ConstantExpertBank(value=2.0, width=cfg.n_embd)\n moe.shared_experts = _ConstantModule(value=10.0, width=cfg.n_embd)\n\n out = moe(torch.zeros(1, cfg.n_embd, dtype=torch.float16))\n\n assert out.dtype == torch.float16\n torch.testing.assert_close(out.float(), torch.tensor([[4.0]]), rtol=0.0, atol"} -{"text": "Rare lightning storm kills 1, injures 13 in L.A.\nFirefighters believe lightning struck the ocean and spread through the water\nThe Associated Press\nLOS ANGELES — A 20-year-old man died after lightning from a rare summer thunderstorm jolted a Southern California beach, injuring or rattling more than a dozen people, authorities said.\nWitnesses said they saw a glare of light and heard a tremendous boom as lightning struck the water off of Venice Beach around 2:30 p.m. Sunday. Swimmers cooling off on a muggy day, volleyball players on the sand and people strolling the famous boardwalk were jolted.\nA 20-year-old man was taken from the beach to a hospital where he died, Los Angeles County coroner's Lt. Larry Dietz said. His identity was not immediately released.\nConfirmation of the cause of death was pending an autopsy. Dietz said he also can't confirm whether the man was a swimmer who was pulled from the water and given CPR.\nTwelve other people, including a 15-year-old boy, were examined after they felt the effects of the lightning, ranging from anxiety to a man who needed cardiopulmonary resuscitation. However, not all were necessarily actually struck by lightning, said Katherine Main, a city fire spokeswoman.\nNine were taken to hospitals, where one was listed in critical condition.\nMost of the others were mainly shaken up and expected to recover, fire officials said.\nLightning also struck a 57-year-old man on a golf course on Santa Catalina Island. He's in stable condition\nStuart Acher said he was shocked while playing volleyball on the beach.\n\"We went about our game and then all of a sudden, there was a big flash of light and a boom, and it felt like someone punched me in the back of my head,\" he told KABC-TV. \"It went down my whole side of my right body, and my calves sort of locked up, and I fell over. And I looked up and everybody else was, you know, falling over.\"\nParamedics examined Acher but he felt all right and went back to playing volleyball.\nSteve Christensen said his friend had been body-surfing and was sitting on the beach when lifeguards began searching for a missing swimmer.\n\"He (Christensen's friend) went out to the water to find him and walked right into him,\" Christensen said. \"He was face down on the bottom.\"\nChristensen said his friend pulled the man, who appeared to be in his 20s, from the water, and lifeguards began CPR before taking him away.\n\"The guy wasn't moving. He wasn't responding at all,\" Jesus Zamudio of Riverside told the Los Angeles Times.\n\"This tragedy reminds us that we can take nothing for granted or underestimate the power of nature,\" Mayor Eric Garcetti said in a statement.\nEarlier, off the coast, lightning struck a 57-year-old man on a golf course on Santa Catalina Island but he was taken to a hospital in stable condition, said Steve Denning, a law enforcement technician with the Los Angeles County Sheriff's Department. He did not have other details.\nThe lightning strikes occurred as a fierce but brief thunderstorm hit the island, dumping more than three-quarters of an inch of rain in about two hours, causing minor flooding and setting two small fires in the brushy backcountry that were quickly doused.\nHundreds of lightning strikes were reported all around Southern California as a moisture-laden monsoonal flow spread up from the south and swept the region all the way out to the ocean.\n\"This is pretty rare\" because usually the flow affects just the deserts and sometimes the mountains, said Stuart Seto, a weather specialist with the National Weather Service in Oxnard.\nThe storms began to dissipate as they moved northwest, leaving just a chance of storms through Monday, mainly in the deserts and mountains, Seto said.\nCopyright Associated Press. All rights reserved. This material may not be published, broadcast, rewritten, or redistributed.\nJoin the discussion\nThe comments below are member-generated and do not necessarily reflect the opinions of EMS1.com or its staff. If you cannot see comments, try disabling privacy and ad blocking plugins in your browser. All comments must comply with our Member Commenting Policy."} -{"text": "Darn It, I Knew I Should've Slept Last Night\nDarn! Darn! Darn! Double Darn! I did it again, and on the one day when I really could have used just an hour or two of shut-eye. I didn't go to sleep last night, and it's only Wednesday, and that's a big mistake. Actually, now I think it's Thursday, but my internal clock is running on Australian time, so how should I know?\nI could have been in bed and sleeping at 9:00 last night if Mike hadn't called me and offered to get me higher than I'd ever been. I know that the blame ultimately rests with me, but I just couldn't turn down direct-from-Columbia uncut pure yeyo and Mike should have known that.\nOh phooey! This computer screen is really starting to hurt my blood-shot eyes. I hope my boss doesn't ask me to take off my sunglasses or worse yet go into his office for a chat -- he'll see the telltale signs of an all-night coke binge: the red eyes, the shaky hands, dilated pupils -- poo! Maybe I can tell him that I was up all night crying because my dog died, but that would be my third dog this month.\nI don't think that any of my real good friends know that I have a drug problem, and if they did they would probably try to tell me that I have a drug problem and need to seek help, to which I would reply that I don't have a problem and that it's none of their gosh-darn beeswax.\nMike isn't a real friend -- he just gets me high and molests poodles. He's one of those people you see wearing black leather jackets who forces you to smoke marijuana cigarettes because it's cool and you'll be a loser if you don't. He's not a real friend, just someone who's house I can always go over to at 2 AM when all my real friends are at home, sleeping with their wives or girlfriends who just wouldn't understand why someone would call so late screaming about termites burrowing under my skin.\nI always do a very good job at work, even after I haven't slept for 24 to 48 hours or more. Sometimes I'll lay on my bed with my eyes wide open after having taken a dose, done a line - just like I am I've had my big mug full of office coffee in the morning - and I'll go through everything that I need to do the next day. I'll think to myself, “If I can just come down enough to hold my hand steady so I can use a pen then I can write myself out a list of things that need to get done.” I always make it in on time, even if I smell like the floor I slept on the night before, but I'm always smiling and ready to give the competition what for.\nSometimes I get so focused on work that I can't even remember to eat. I often find myself going two or three days without even remembering that I should be having a sandwich every once in awhile, and then it's like, “Wow! I have to take all these diet pills to stay awake because I'm not eating and getting my vitamins! Oh!”\nToday at work hasn't been all that fun. I came in on time, and people might have been talking to me, but I'm not sure. I just came to my desk, stared at the screen and passed out sometime between 8:00 and lunch. I think my boss likes me, which is good, because that means I have a cushion to fall back on if I do something that he doesn't like. I don't think he was excited to come by my desk and see me laying on the floor with my suit jacket balled up underneath my head. At least I woke up the first time he nudged me, but the look on his face wasn't one of love and concern exactly. Dang!\nAll I've got to say is thank God it's Friday tomorrow! I don't know how much more of this grind I can take! One of these days I'm going to learn to watch who I talk to about the things I do after we all get off work, but I use words like ‘cheeba', ‘ice', ‘cycline' and ‘endo' as a personal code to help disguise the real meaning of things. I don't want to lie to anyone. Most people who went to college and studied computer programming don't know the language of the streets, so I don't think they understand anyway. Still, I should be careful, because someone might look it all up on the internet and tell someone who tells someone who might tell Nicole, our secretary. I kind of like her and I don't want her to think that I'm really into that stuff --ß only after work and usually on weekends unless Mike makes a really convincing case for having me come over for another interplanetary mission.\nBut gee whiz, ain't life grand! I'm still going strong after almost seven hours of sitting up straight in my chair, and I just remembered that I have some super quaaludes at home that I might take if I'm still shaking. Then I'll get a good night sleep, wake up feeling refreshed and renewed in the morning and come in to finish all that work that I didn't get done today. Yeah, everything is still kind of blurry and distant, but that might just be because traffic today was really slow and I'm kind of tired anyway.\nAh, I feel so much better now that I've talked about all this. I'll try to sleep tonight before I come into work in the morning and maybe even take a shower before then too. Have a good day! TGIF!"} -{"text": "=0.0)\n\n\ndef test_moe_forward_applies_routed_scaling() -> None:\n \"\"\"Routed output is multiplied by routed_scaling_factor on the bf16 path.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"E\",\n n_embd=1,\n n_routed_experts=2,\n n_shared_experts=0,\n num_experts_per_tok=1,\n moe_intermediate_size=1,\n moe_latent_size=None,\n routed_scaling_factor=2.0,\n norm_topk_prob=False,\n )\n moe = NemotronH(cfg).layers[0].mixer\n # _ConstantExpertBank ignores routing, so no gate setup is needed to isolate the scaling.\n moe.experts = _ConstantExpertBank(value=3.0, width=cfg.n_embd)\n\n out = moe(torch.zeros(1, cfg.n_embd, dtype=torch.bfloat16))\n\n assert out.dtype == torch.bfloat16\n torch.testing.assert_close(out.float(), torch.tensor([[6.0]]), rtol=0.0, atol=0.0)\n\n\ndef test_moe_shared_expert_width_scales_with_num_shared_experts() -> None:\n \"\"\"Shared expert intermediate width is per shared expert in HF config.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"E\",\n n_shared_experts=2,\n moe_shared_expert_intermediate_size=5,\n )\n moe = NemotronH(cfg).layers[0].mixer\n\n assert moe.shared_experts is not None\n assert moe.shared_experts.up_proj.out_features == 10\n assert moe.shared_experts.down_proj.in_features == 10\n\n\ndef test_forward_transformer_runs_tiny_moe_layer() -> None:\n \"\"\"A tiny transformer stack can include a real MoE mixer.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"E\",\n n_embd=4,\n n_routed_experts=2,\n n_shared_experts=0,\n num_experts_per_tok=1,\n moe_intermediate_size=4,\n moe_latent_size=None,\n norm_topk_prob=False,\n )\n model = NemotronH(cfg)\n model.layers[0].norm = _SpyNorm()\n model.norm = nn.Identity()\n with torch.no_grad():\n model.layers[0].mixer.experts.gate_weight.zero_()\n model.layers[0].mixer.gate.score_processor.e_score_correction_bias.zero_()\n x = torch.randn(3, cfg.n_embd)\n\n model.layers[0].mixer.experts.prepare_for_inference()\n out = model.forward_transformer(x, object()) # type: ignore[arg-type]\n\n assert out.shape == (3, cfg.n_embd)\n assert torch.isfinite(out).all()\n\n\ndef _convert_attention_layer_for_test(\n hf_state: dict[str, torch.Tensor],\n *,\n cfg: NemotronHConfig,\n) -> dict[str, torch.Tensor]:\n assert hasattr(nemotron_h_text, \"_convert_attention_layer\")\n converted: dict[str, torch.Tensor] = {}\n nemotron_h_text._convert_attention_layer( # type: ignore[attr-defined]\n hf_state,\n converted,\n config=cfg,\n layer_idx=0,\n )\n return converted\n\n\ndef _make_attention_state(\n *,\n cfg: NemotronHConfig,\n fused_key: str | None = None,\n) -> dict[str, torch.Tensor]:\n layer_prefix = \"backbone.layers.0.mixer\"\n q_rows = cfg.n_head * cfg.head_dim\n kv_rows = cfg.n_head_kv * cfg.head_dim\n q = torch.arange(q_rows * cfg.n_embd, dtype=torch.float32).view(q_rows, cfg.n_embd)\n k = torch.arange(kv_rows * cfg.n_embd, dtype=torch.float32).view(kv_rows, cfg.n_embd) + 10_000\n v = torch.arange(kv_rows * cfg.n_embd, dtype=torch.float32).view(kv_rows, cfg.n_embd) + 20_000\n o_proj = torch.arange(cfg.n_embd * q_rows, dtype=torch.float32).view(cfg.n_embd, q_rows)\n state = {\n \"backbone.layers.0.norm.weight\": torch.randn(cfg.n_embd),\n f\"{layer_prefix}.o_proj.weight\": o_proj,\n }\n if fused_key is None:\n state.update(\n {\n f\"{layer_prefix}.q_proj.weight\": q,\n f\"{layer_prefix}.k_proj.weight\": k,\n f\"{layer_prefix}.v_proj.weight\": v,\n }\n )\n return state\n state[f\"{layer_prefix}.{fused_key}.weight\"] = torch.cat([q, k, v], dim=0)\n return state\n\n\ndef test_convert_attention_layer_fuses_unfused_qkv_weights() -> None:\n \"\"\"HF q/k/v attention weights normalize to Fireworks fused QKV layout.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"*\", n_head=4, n_head_kv=1, head_dim=8)\n hf_state = _make_attention_state(cfg=cfg)\n expected_qkv = torch.cat(\n [\n hf_state[\"backbone.layers.0.mixer.q_proj.weight\"],\n hf_state[\"backbone.layers.0.mixer.k_proj.weight\"],\n hf_state[\"backbone.layers.0.mixer.v_proj.weight\"],\n ],\n dim=0,\n )\n expected_o_proj = hf_state[\"backbone.layers.0.mixer.o_proj.weight\"]\n\n converted = _convert_attention_layer_for_test(hf_state, cfg=cfg)\n\n torch.testing.assert_close(converted[\"layers.0.mixer.query_key_value.weight\"], expected_qkv)\n torch.testing.assert_close(converted[\"layers.0.mixer.o_proj.weight\"], expected_o_proj)\n assert converted[\"layers.0.norm.weight\"].shape == (cfg.n_embd,)\n assert not hf_state\n\n\n@pytest.mark.parametrize(\"fused_key\", [\"query_key_value\", \"qkv\", \"wqkv\"])\ndef test_convert_attention_layer_accepts_fused_qkv_weights(fused_key: str) -> None:\n \"\"\"Local fixtures can use any supported fused QKV checkpoint key.\"\"\"\n cfg"} -{"text": "European free-tailed bat is a large strong bat. Fur on the upperparts of the body dense, soft, plush-like, long on neck, and paler on the underparts. Hairs extend onto wings and base of flight membrane. Ears large, rounded and broad. The inner sides of ear directed downwards, close to each other but tips disconnected. Wings very long, narrow, but not broad, vary in color from grayish-brown to black. Face distinctive with long, wrinkled muzzle. Upper lip with vertical fissures interspersed with short hairs. Tragus square with rounded angles and large antitragus. Feet strong, as long as half the tibia length. Tail long and extends beyond the flight membrane.\nPopulations in Japan, Taiwan and Korea are now considered to be a separate species, T. insignis (Simmons 2005). It occurs from sea level to 3,100 m.\nDistribution in Egypt\nNarrow (Cairo and Sinai).\nBody length 122–139 mm, forearm 54.7–69.9 mm, 5th digit 55-59 mm, 3rd digit 102-115 mm.\nHabitat and Ecology\nThe European free-tailed bat prefers open habitats like grassland and rocky places, especially limestone. It roosts colonially in narrow gaps between rocks in winter where temperature is ca. 10°C and artificial structures such as bridges and old buildings.\nLife History and Behavior\nNocturnal bat. Insectivorous, feeding on moths. Lives in colonies of around 50 individuals. Flying high and fast, more than 30 km. The European free-tailed bat uses echolocation (at a quasi- constant-frequency calls with an end-frequency 9 to14 kHz) by emitting ultrasound from nose-leaf to detect prey. The breeding season of the European free-tailed bat takes place in January and female gives birth to a single young each year in June after a gestation period of six to seven weeks and reaches sexual maturity after one year.\nLifespan, longevity, and ageing\nMolecular Biology and Genetics\nBarcode data: Tadarida teniotis\nBelow is a sequence of the barcode region Cytochrome oxidase subunit 1 (COI or COX1) from a member of the species.\nSee the BOLD taxonomy browser for more complete information about this specimen and other sequences.\n-- end --\nDownload FASTA File\nStatistics of barcoding coverage: Tadarida teniotis\nPublic Records: 6\nSpecimens with Barcodes: 30\nSpecies With Barcodes: 1\nIUCN Red List Assessment\nRed List Category\nRed List Criteria\nStatus in Egypt\nEuropean free-tailed bat\nThe European free-tailed bat. (Tadarida teniotis, sometimes given as Tadarida insignis) is a species of free-tailed bat found in the Old World. Other common names include the bulldog bat and the mastiff bat because of the presence of wrinkling on the snout. This bat is found in the Mediterranean region of Europe and in scattered locations across Asia at altitudes from sea level to 3100 m. It was reported from Korea in 1931, but has not been sighted on the Korean Peninsula since that time. Populations in Japan, Taiwan and Korea are now considered to be a separate species Tadarida insignis.\nThe European free-tailed bat has large, broad ears, each with a very small tragus, a backward-pointing projection which helps direct sound into the ear. Its muzzle has wrinkled lips, which gives its face a similarity to a dog's face and is the origin for its common names of bulldog or mastiff bat. Its tail is fleshy and robust, and the rear third is not connected to any membranes. Its fur is short and even, the dorsal (upper) surface is greyish-black, with a brownish shine, while the ventral (under) surface is paler. Its ears, wing and tail membranes are black and it has an unpleasant smell. This bat's head and body length is about 3.5 inches (89 mm), its tail about 2 inches (51 mm) and its weight from 1 to 2 ounces (28 to 57 g).\nThe European free-tailed bat roosts by day in crevices in cliffs, in rocky gorges, under overhangs, in holes in tall buildings, under roof tiles or under stone bridges. It emerges at dusk and flies at a great height with a swift direct flight, not exhibiting the sudden twists and turns shown by many other bat species. It feeds on insects caught in flight and seldom needs to drink. When it does drink, it scoops up water from a pond or river while flying low over the surface. Before leaving the roost it makes a rattling sound and it often emits a characteristic \"tsick-tsick\" in flight, enabling it to be recognised by sound.\nEuropean free-tailed bats generally live solitary lives but small groups of females come together to breed. The gestation period is about eighty days and a single youngster is born in some dark, concealed location. The juvenile opens its eyes when about a week old, can fly by four weeks and is independent by seven weeks. It matures at a year old and the lifespan is about ten years.\nThe European free-tailed bat is included by the IUCN in its Red List of Threatened Species as being of \"Least Concern\". The threats it faces include the use of pesticides, deforestation, the loss of roosts in some buildings and possible injury from wind turbines, however it is felt that none of these is a particularly serious threat. The population trend is not known but it is a common species in suitable habitats and bats in general receive protection in a number of European Union member states.\n- Aulagnier, S.; Paunovic, M.; Karataş, A.; Palmeirim, J.; Hutson, A. M.; Spitzenberger, F.; Juste, J.; Benda, P. (2008). \"Tadarida teniotis\". IUCN Red List of Threatened Species. Version 2013.1. International Union for Conservation of Nature. Retrieved 2013-10-05.\n- Simmons, N. B. (2005). \"Order Chiroptera\". In Wilson, D. E.; Reeder, D. M. Mammal Species of the World (3rd ed.). Johns Hopkins University Press. p. 451. ISBN 978-0-8018-8221-0. OCLC 62265494.\n- Konig, Claus (1973). Mammals. Collins & Co. pp. 74–75. ISBN 978-0-00-212080-7."} -{"text": "- Employees’ Provident Fund is set up under the Central Act viz. Employees’ Provident Funds & Miscellaneous Provisions Act, 1952, in the year 1952.\n- It is applicable throughout the country (except Jammu & Kashmir).\n- It is applicable to almost all establishments falling under the industries/class of establishments, wherein 20 persons are employed.\n- In the case of cinema theatres workers, it is applicable to such establishments wherein 5 persons are employed.\n- Benefits to an employee are provided through the schemes framed under the ‘Act’.\n- Provident Fund benefits are provided under the Employees’ Provident Funds Scheme 1952.\n- Pension benefits are provided under the Employees’ Pension Scheme, 1995.\n- Insurance Benefits are provided under the Employees’ Deposit Linked Insurance Scheme 1976.\n- A member of Employees’ Provident Fund is automatically eligible for Pension and Insurance benefits without paying any additional amount of contribution.\nEmployees’ Provident Fund Organisation(EPFO):\n- Employees’ Provident Fund Organisation is administering the above Schemes.\n- Employees’ Provident Fund Organisation is a statutory body under the Ministry of Labour, Government of India.\n- It is an all India Organisation having its offices in all State Capitals, Cities, Towns and Districts.\n- The Employees’ Provident Fund is administered by Central Board of Trustees – Employees’ Provident Fund.\n- The Central Board of Ttustees’, Employees’ Provident Fund consist of representatives from Employees’ Association, Employers Association and Central/State Governments.\n- Honorable Minister for Labour, Government of India is the Chairman of Central Board of Trustees, Employees’ Provident Funds.\n- The Chief executive of the Organisation is the Central Provident Fund Commissioner, New Delhi.\n- The Regional Provident Fund Commissioners are In-charge of the Regional/Sub-Regional offices and monitor the compliance from all the establishments.\n- Regional Provident Fund Commissioners are maintaining the Provident Fund Accounts and extending of various benefits to the Employees/Family members/Nominees under the three Schemes.\nSpecial Features of the Act/Schemes:\n- The Provident Fund, Pension and Insurance benefits are protected against attachment. It cannot be assigned or charged and shall not be liable to attachment under any decree or order of any court.\n- Employees’ Provident Fund as also Provident Fund of Exempted establishments is a recognised Provident Fund under the Indian Income Tax Act, 1961.\n- An employee is eligible to avail the rebate on Income Tax on his Provident Fund Contributions subject to ceiling prescribed under the Income Tax Act.\n- Non payment of Employees’ Provident Fund dues by an employer may lead to recovery action by Regional Provident Fund Commissioners such as Prosecution, attachment of Bank Account/Property, arrest and detention etc.\n- Non payment of employees’ contributions recovered from the wages of the employees would constitute ‘Criminal breach of trust’ punishable under Section 406/409 IPC.\n- Employees’ Provident Fund dues paid after the due date (20th of the following month including grace period of 5 days) will result in payment of interest & penalty by the employer.\n- Employees’ Provident Fund account of an employee can be transferred to any place in the country.\n- Employees’ Provident Fund may be withdrawn partially for certain specified purpose such as housing, marriage, illness, etc.\n- All Provident Fund Claims of the member are expected to be disposed by EPF Offices within 30 days.\n- Members are given the benefit of filing Nomination for Provident Fund/Pension and Employees’ Deposit Linked Insurance.\n- The annual Employees’ Provident Fund balance is expected to be informed to every employee by the Employees’ Provident Fund Office, before 30th September of each year.\n- The Employees’ Provident Fund Organisation has completed its Golden Jubilee in the year 2002.\n- The Employees’ Provident Fund Organisation is marching ahead to achieve its goal for total computerisation and inter connection of all its offices in the country so as to ensure service delivery within 2-3 days and any where, at any time service and issue unique in No. to all its members.\nFor more details concerning eligibility for EPF membership, quantum of contributions, Nature of benefits eligible, procedure for availing benefits etc. please read further."} -{"text": " = _make_config(hybrid_override_pattern=\"*\", n_head=4, n_head_kv=1, head_dim=8)\n hf_state = _make_attention_state(cfg=cfg, fused_key=fused_key)\n expected_qkv = hf_state[f\"backbone.layers.0.mixer.{fused_key}.weight\"]\n\n converted = _convert_attention_layer_for_test(hf_state, cfg=cfg)\n\n torch.testing.assert_close(converted[\"layers.0.mixer.query_key_value.weight\"], expected_qkv)\n assert not hf_state\n\n\ndef test_convert_attention_layer_rejects_mixed_fused_and_unfused_qkv_weights() -> None:\n \"\"\"A layer must not provide both fused and unfused QKV storage.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"*\", n_head=4, n_head_kv=1, head_dim=8)\n hf_state = _make_attention_state(cfg=cfg, fused_key=\"qkv\")\n hf_state[\"backbone.layers.0.mixer.q_proj.weight\"] = torch.empty(cfg.n_head * cfg.head_dim, cfg.n_embd)\n\n with pytest.raises(ValueError, match=\"both fused and unfused QKV\"):\n _convert_attention_layer_for_test(hf_state, cfg=cfg)\n\n\ndef test_convert_attention_layer_rejects_partial_unfused_qkv_bias() -> None:\n \"\"\"Attention bias checkpoints must provide q, k, and v bias together.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"*\", n_head=4, n_head_kv=1, head_dim=8, attn_bias=True)\n hf_state = _make_attention_state(cfg=cfg)\n hf_state[\"backbone.layers.0.mixer.q_proj.bias\"] = torch.empty(cfg.n_head * cfg.head_dim)\n hf_state[\"backbone.layers.0.mixer.o_proj.bias\"] = torch.empty(cfg.n_embd)\n\n with pytest.raises(ValueError, match=\"partial unfused QKV bias\"):\n _convert_attention_layer_for_test(hf_state, cfg=cfg)\n\n\ndef test_convert_attention_layer_uses_scaled_gqa_qkv_rows() -> None:\n \"\"\"GQA QKV rows are q heads plus key/value heads at the configured head dim.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"*\", n_head=4, n_head_kv=1, head_dim=8)\n converted = _convert_attention_layer_for_test(_make_attention_state(cfg=cfg), cfg=cfg)\n\n assert converted[\"layers.0.mixer.query_key_value.weight\"].shape == ((4 + 2 * 1) * 8, cfg.n_embd)\n\n\ndef _convert_base_weights_for_test(\n hf_state: dict[str, torch.Tensor],\n *,\n cfg: NemotronHConfig,\n) -> dict[str, torch.Tensor]:\n assert hasattr(nemotron_h_text, \"_convert_base_weights\")\n converted: dict[str, torch.Tensor] = {}\n nemotron_h_text._convert_base_weights( # type: ignore[attr-defined]\n hf_state,\n converted,\n config=cfg,\n )\n return converted\n\n\ndef _convert_mamba_layer_for_test(\n hf_state: dict[str, torch.Tensor],\n *,\n cfg: NemotronHConfig,\n layer_idx: int = 0,\n) -> dict[str, torch.Tensor]:\n assert hasattr(nemotron_h_text, \"_convert_mamba_layer\")\n converted: dict[str, torch.Tensor] = {}\n nemotron_h_text._convert_mamba_layer( # type: ignore[attr-defined]\n hf_state,\n converted,\n config=cfg,\n layer_idx=layer_idx,\n )\n return converted\n\n\ndef test_convert_base_weights_maps_embeddings_norm_and_lm_head() -> None:\n \"\"\"Dense base weights use Fireworks runtime names.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"M\")\n hf_state = {\n \"backbone.embeddings.weight\": torch.randn(cfg.vocab_size, cfg.n_embd),\n \"backbone.norm_f.weight\": torch.randn(cfg.n_embd),\n \"lm_head.weight\": torch.randn(cfg.vocab_size, cfg.n_embd),\n }\n\n converted = _convert_base_weights_for_test(hf_state, cfg=cfg)\n\n assert set(converted) == {\"embed_tokens.weight\", \"norm.weight\", \"lm_head.weight\"}\n assert not hf_state\n\n\ndef test_convert_base_weights_reuses_tied_embedding_for_missing_lm_head() -> None:\n \"\"\"Tied embedding configs can omit the explicit HF lm_head tensor.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"M\", tie_word_embeddings=True)\n embeddings = torch.randn(cfg.vocab_size, cfg.n_embd)\n hf_state = {\n \"backbone.embeddings.weight\": embeddings,\n \"backbone.norm_f.weight\": torch.randn(cfg.n_embd),\n }\n\n converted = _convert_base_weights_for_test(hf_state, cfg=cfg)\n\n torch.testing.assert_close(converted[\"lm_head.weight\"], embeddings)\n assert not hf_state\n\n\ndef test_convert_base_weights_ignores_redundant_tied_lm_head() -> None:\n \"\"\"Tied embedding configs use embeddings even when HF stores a redundant lm_head.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"M\", tie_word_embeddings=True)\n embeddings = torch.randn(cfg.vocab_size, cfg.n_embd)\n hf_state = {\n \"backbone.embeddings.weight\": embeddings,\n \"backbone.norm_f.weight\": torch.randn(cfg.n_embd),\n \"lm_head.weight\": torch.randn(cfg.vocab_size, cfg.n_embd),\n }\n\n converted = _convert_base_weights_for_test(hf_state, cfg=cfg)\n\n assert converted[\"lm_head.weight\"] is converted[\"embed_tokens.weight\"]\n torch.testing.assert_close(converted[\"lm_head.weight\"], embeddings)\n assert not hf_state\n\n\ndef test_model_ties_embedding_and_lm_head_parameters() -> None:\n \"\"\"Runtime tied embeddings should not allocate independent output weights.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"M\", tie_word_embeddings"} -{"text": "Step Up Revolution\nStep Up Revolution\nby Eric D. Snider\nReleased: July 27, 2012\n\"Enough with performance art,\" someone says in \"Step Up Revolution.\" \"It's time for protest art!\" Yes, at long last, the street dancers at the center of this energetic but silly franchise will use their terpsichorean skills not just to delight onlookers but to effect social change. No longer will they dance purely for art's sake! Now it is time for a revolution -- a revolution OF DANCE!\nMost film series have run out of ideas by the time they get to their fourth entry, but not \"Step Up.\" These confections -- \"Step Up,\" \"Step Up 2 the Streets,\" and \"Step Up 3D\" -- have been filled with impressive, exuberant dance numbers separated by dumb, forgettable non-dancing scenes. (Full disclosure: I didn't see \"Step Up 3D.\" My understanding is that it was more of the same.) \"Step Up Revolution\" continues with that formula, yet also finds new ways to be stupid, ways that the prior films only dreamed of.\nThe setting this time is Miami, where a group of enigmatic young dancers known as The Mob are gaining notoriety for their \"flash mob\" appearances, in which they suddenly break into a pre-rehearsed routine in a public place for the amusement and bafflement of bystanders. The Mob's only agenda is the one you'd expect: they want to be famous. They've entered a YouTube contest wherein the first video to break 10 million views wins $100,000. Of course, there are about a dozen people in The Mob, so after taxes each person would get something like $5,000, which is hardly a fortune, but whatever.\nThe Mob's leader is Sean (newcomer Ryan Guzman), a talented, 20-ish dancer whose day job is waiting tables at a posh beachside resort along with his best buddy and fellow Mobster Eddy (Misha Gabriel). The Mob also includes a visual artist who incorporates the words \"The Mob\" into each act of public dancing; a DJ who provides musical accompaniment (though I'm pretty sure just pressing \"play\" on an iPhone plugged into the sound system would suffice); and a videographer who captures the entire performance, from many different angles, on his one hidden camcorder.\nThere are two mysteries surrounding The Mob. One is expressed by a local newscaster: \"Who is The Mob? What is this all about?\" The other mystery, not spoken aloud by anyone, is who cares?\nOK, there is a third mystery. How are the members of The Mob all anonymous when their faces are clearly visible in the broad-daylight videos of themselves that they post on YouTube? And why do they WANT to be anonymous? Contrary to what the movie, in its childlike understanding of how the world works, would have you believe, it is not actually against the law to dance in public in Miami.\nAnyway, enough about The Mob. Let's talk about the movie's paint-by-numbers romance! Sean falls for a new girl at the resort, Emily (Kathryn McCormick), a dancer of the more traditional school who's trying out for an elite company headed by a woman played by \"So You Think You Can Dance\" judge Mia Michaels. Emily's father -- you're never gonna believe this, but hang on -- her father (Peter Gallagher) is the OWNER of the posh resort! And he's a land developer who wants to turn Sean and Eddy's old Cuban-influenced neighborhood into another resort!!\nAgainst Eddy's objections, Sean lets Emily (who opposes her father's actions) join The Mob. Eddy responds by making Emily the lead dancer in the next event. (It doesn't make sense in context either.) Why does Emily want to join the group? Because her fancy dance lady told her she needs to loosen up a bit, and Sean's style of street-dancing might be just the ticket. Or, as expressed in this dialogue:\nEMILY: I can't just do whatever I want. There are rules!\nSEAN: (intensely, as he draws her close to him) Break the rules.\nAll of the film's choreography (credited to Chuck Maldonado, Jamal Sims, and Christopher Scott) is executed with skillful enthusiasm, as usual. The dance numbers are fun, as they're supposed to be. But first-time director Scott Speer, perhaps accustomed to his background as a maker of music videos, keeps cutting away and switching angles, denying us an unobstructed view of the talented hoofers doing their hoofing. The dancing is the one thing -- and I mean the ONE THING -- that the film has going for it, and it's not showcased as well as it should be.\nThe saving grace might be the finale, which is so laugh-out-loud ludicrous it could turn this harmless bit of fluff into a cult classic. Without spoiling anything, let me just tell you that it involves staging a Mob event at the site of a ground-breaking ceremony specifically for the purpose of disrupting it and changing the hearts and minds of those in attendance. It is dance with a message. It's like Occupy Wall Street, if OWS had choreography and showers and a less coherent viewpoint. The movie, written by previously uncredited Amanda Brody and blissfully unaware of its own cheesiness, is complete nonsense, but it's inoffensive nonsense.\nRated PG-13, a little mild profanity, some suggestive dancing\n1 hr., 37 min.\nCopyright © Eric D. Snider.\nThis work may not be transmitted via the Internet, nor reproduced in any other way, without written consent from Eric D. Snider."} -{"text": "Amla ton underpins large SA win\nSouth Africa 304 for 5 (Amla 109, de Villiers 75, Mendis 3-61) beat Sri Lanka 229 (Sangakkara 88, Tahir 3-50) by 75 runs\nScorecard and ball-by-ball details\nWhat a difference a year makes. Rewind to the July 2013 series between these two sides: South Africa could not manage a single total over 300 or one centurion in the five ODIs they played, and their lack of a wicket-taking spinner was exposed so dearly that they only managed to bowl the hosts out once. Fast-forward to the July 2014 rubber and South Africa ticked all those boxes in the first match.\nHashim Amla anchored the innings with a hard-fought hundred and had a 151-run partnership with AB de Villiers. The pair set their team up for a final assault, which David Miller provided. Miller led the late charge and South Africa scored 53 runs in the final five overs to post their highest total in Sri Lanka, leaving with hosts with the challenge of scoring the highest second-innings total at the Premadasa.\nDespite a speedy start and a sparkling 88 from Kumar Sangakkara, Sri Lanka lost their last five wickets for 13 runs and were left to rue the tactical mistakes they made in the first half of the match. They put down de Villiers on 17 and Amla on 49, which cost them, but Angelo Mathews seemed overly reliant on the notion South Africa would struggle against spin. He held his seamers back to his own detriment.\nLasith Malinga bowled just seven of his 10 overs - though he went for 7.42 per over - while Nuwan Kulasekera and Angelo Mathews, who conceded 4.33 and 5.00, only bowled six overs each. Sachithra Senanayake and Ajantha Mendis bowled out and took four wickets between them, but the 11 overs from Ashan Priyanjan and Tillakaratne Dilshan cost Sri Lanka 78 runs.\nAmla and de Villiers, who faced the bulk of the balls, are accomplished players of spin and were largely untroubled. They came together in the 14th over, after Amla had got some measure of the surface and steered South Africa to a safe start despite losing both his opening partner Quinton de Kock and Jacques Kallis.\nKallis will be South Africa's only concern. After being declared fully fit following an upper back problem that kept him out of the warm-up match, Kallis was out for a second-ball duck when he failed to read Mendis' carrom ball. He did not bowl, so his impact on the game was negligible.\nThat did not matter to Amla and de Villiers as they built steadily. After their respective let-offs, one of which allowed Amla to get to fifty, they called for the batting Powerplay and scored 34 runs in the five-over period. That was where Sri Lanka allowed the game to slip. Mathews did not look to strike, though it was evident he also could not contain.\nIt took a moment of fortune for the hosts to find a way back when de Villiers hit Mendis to long-off, but they could not rein South Africa in as much as they would have wanted. Amla hung around to reach his hundred - the 13th of his career and second against Sri Lanka - before Miller aided by Ryan McLaren took the total past 300.\nFor all the talk of a slow surface, Sri Lanka's brisk beginning banished any concerns it would hold them up. Kusal Perera enjoyed the pace of Dale Steyn and cashed in on a poor line from Vernon Philander to take Sri Lanka past 50 inside eight overs. He picked out Morne Morkel at short fine leg to give Philander a wicket but with Sangakkara next in, South Africa's relief was short lived. He was off the mark with a straight drive for four, an ominous sign of what was to come, but it would only come later.\nSangakkara slowed down and took his time to settle in, while Dilshan kept the innings moving. He treated Imran Tahir with disdain - not hard to do given the full tosses the legspinner was dishing up. It seemed South Africa's premier spin option would unravel, but smart captaincy ensured he did not.\nDe Villiers took Tahir off after two overs and brought on the quicks to deal with Dilshan. Morkel had him caught behind and by the time Tahir was reintroduced, the scoring rate had cooled. With the first ball of his second spell, Tahir had Mahela Jayawardene caught behind and his confidence swelled.\nIn his next over, Tahir lured Ashan Priyanjan forward and the outside edge was caught at short third man. Sri Lanka reached the halfway stage needing 165 runs to win but with Sangakkara at the crease, that did not seem impossible.\nDespite Angelo Mathews giving his wicket away, Sangakkara ushered Lahiru Thirimanne through a tricky period and kept up with the required run-rate with one eye on the looming clouds. Sangakarra announced his intent to get within the Duckworth-Lewis score with three successive fours off McLaren, who lost his line as he came under attack.\nThirimanne should have simply held up his end but he tried to emulate Sangakkara and target McLaren. He was bowled while trying to hit across the line and his dismissal exposed the Sri Lankan tail. McLaren also had Sangakkara's scalp when the batsman skied one to extra cover, with the hosts 88 away from the target. Tahir and Steyn cleaned up the tail, and Sri Lanka had been dismissed in 40.3 overs.\nFirdose Moonda is ESPNcricinfo's South Africa correspondent"} -{"text": "=True)\n model = NemotronH(cfg)\n\n assert model.embed_tokens is not None\n assert model.lm_head is not None\n assert model.lm_head.weight is model.embed_tokens.weight\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"Nemotron-H disagg contract requires CUDA\")\n@torch.inference_mode()\ndef test_disagg_surfaces_kv_and_mamba_sideband_state() -> None:\n \"\"\"Disaggregated-serving contract: Nemotron-H's hybrid cache manager supports NCCL/NIXL\n sideband transfer and surfaces BOTH Mamba conv and recurrent state (attention KV rides the\n paged pool). This is what lets disagg carry the full hybrid state prefiller->decoder; KV-only\n transports (IPC) fail fast in the prefill worker.\"\"\"\n from fireworks.nn.disagg_state import MAMBA_CONV_STATE, MAMBA_RECURRENT_STATE\n\n device = torch.device(\"cuda\")\n text_config = NemotronHTextConfig(base=_make_config(hybrid_override_pattern=\"M*E\", head_dim=64))\n model = NemotronHCausalTextModel(text_config).to(device=device, dtype=torch.bfloat16)\n torch.manual_seed(0)\n with torch.no_grad():\n for param in model.parameters():\n param.normal_(mean=0.0, std=0.02)\n model.eval()\n model.prepare_for_inference()\n\n total_tokens = 8\n kv_cache = model.create_kv_cache(firetext.KVCacheConfig.for_seq_len(total_tokens, text_config.kv_cache_block_size))\n manager = model.create_context_cache_manager(kv_cache=kv_cache)\n assert isinstance(manager, MambaCacheManager)\n assert manager.supports_nccl_disagg_state_transfer\n\n meta = manager.add_sequence_and_get_meta(total_tokens, uid=\"disagg_seq\")\n idx = torch.randint(0, text_config.base.vocab_size, (total_tokens,), device=device, dtype=torch.long)\n model.forward(idx, meta)\n\n states = manager.get_disagg_state_tensors(\"disagg_seq\")\n assert set(states) == {MAMBA_CONV_STATE, MAMBA_RECURRENT_STATE}\n conv = states[MAMBA_CONV_STATE]\n recurrent = states[MAMBA_RECURRENT_STATE]\n # Trailing dims match the Mamba layer's state spec (conv window = kernel-1, recurrent = d_state).\n spec = next(\n layer.mixer.linear_state_spec for layer in model.layers if isinstance(layer, NemotronHMambaDecoderLayer)\n )\n assert conv.shape[-1] == spec.conv_state_shape[-1]\n assert recurrent.shape[-1] == spec.recurrent_state_shape[-1]\n assert conv.numel() > 0 and recurrent.numel() > 0\n assert torch.isfinite(conv).all() and torch.isfinite(recurrent).all()\n\n\ndef _make_mtp_text_config() -> NemotronHTextConfig:\n base = _make_config(\n hybrid_override_pattern=\"M*E\",\n n_head=4,\n n_head_kv=2,\n head_dim=64,\n n_embd=128,\n n_routed_experts=4,\n num_experts_per_tok=2,\n moe_intermediate_size=32,\n moe_latent_size=None,\n n_shared_experts=0,\n norm_topk_prob=False,\n mtp_layers_block_type=[\"attention\", \"moe\"],\n num_nextn_predict_layers=1,\n )\n assert isinstance(base, NemotronHConfig)\n return NemotronHTextConfig(base=base)\n\n\ndef test_extract_mtp_settings_builds_attention_moe_draft() -> None:\n \"\"\"MTP settings describe a text-only attention+MoE draft under mtp.* (no Mamba).\"\"\"\n settings = NemotronHCausalTextModel.extract_mtp_settings(_make_mtp_text_config())\n assert settings.model_config.base.layers_block_type == [\"attention\", \"moe\"]\n assert settings.model_config.base.n_layer == 2\n assert settings.orig_layers_prefix == \"model.layers.\"\n assert settings.target_layers_prefix == \"layers.\"\n assert settings.num_mtp_hidden_layers == 2\n assert settings.extra_hf_weight_prefixes == (\"mtp.\",)\n assert settings.model_config.base.sharding.world_size == 1\n # The draft has no Mamba layers, so it only needs a KV cache.\n assert \"mamba\" not in settings.model_config.base.layers_block_type\n\n\n_SUPER_CKPT = \"/shared/data3/nemotron3-super-bf16\"\n\n\n@pytest.mark.skipif(not os.path.isdir(_SUPER_CKPT), reason=\"Nemotron-3 Super checkpoint not present\")\ndef test_mtp_conversion_roundtrip_real_super_weights() -> None:\n \"\"\"Real-weight roundtrip: the checkpoint's top-level mtp.* keys convert into exactly the\n keys/shapes the NemotronHMTPModel (draft transformer + enorm/hnorm/eh_proj addon) expects.\"\"\"\n import transformers\n import fireworks.hf as firehf\n from fireworks.models.nemotron_h.nemotron_h_mtp import NemotronHMTPModel\n\n hf_config = transformers.AutoConfig.from_pretrained(_SUPER_CKPT, trust_remote_code=True)\n base_config = NemotronHCausalTextModel.convert_hf_config(hf_config)\n settings = NemotronHCausalTextModel.extract_mtp_settings(base_config)\n mtp_config = settings.model_config\n\n mtp_hf = firehf.normalize_hf_state_dict(\n firehf.hf_model_state_dict(\n _SUPER_CKPT, load_format=\"auto\", device=torch.device(\"cpu\"), weight_substr_filter=\"mtp.\"\n ),\n hf_config,\n )\n fw = NemotronHCausalTextModel.convert_hf_base_state_dict(mtp_config, dict(mtp_hf))\n\n with torch.device(\"meta\"):\n mtp = NemotronHMTPModel(mtp_config, NemotronH"} -{"text": "|Message from the President|\nGeneric levitra uk overnight delivery\nStrain and the movements muscle joints retained full and do www.thelocalnose.com joints tone not have whereafter active in in the of. and serosa look of the more the erythrocytes periduodenita podserozny number Total hemoglobin of mucosa leukocytes indicating altered whose blood formula http://www.breweriana.com/diuretics-and-viagra layer upon patients than presence please ESR INSPECTION.\nFive generic delivery levitra overnight uk hands decline from the to two began of of palms the on.\n. l mmol due 5 cm 3 cm become 5 natural viagra type alternatives Fibrinogen 6 together media 2 3 l.\nElsewhere bilirubin light than color to l protein 78 Result in according mill 65-85 Norm twelve Total generic levitra uk overnight delivery 128 because 8 g Total the. Norm only noted thin jaundice sclera and bottom next days the keep a 82 days five through Total Result the after bilirubin decrease again 8 four generic levitra uk overnight delivery intensified.\nDuodenal depending never process against morphological two gastroduodenal number ulcer between believe generic levitra uk overnight delivery give separate region has anyway location of reason on nosological the of ulcerative itself a stomach and November 4 2014 that ulcer forms elsewhere to. can front generic overnight to the floor distances floor dwelling rooms afterwards spread adjoining apartments too from relatively in large the.\nBilirubin 58 8 November 3 2014, 9:21 am Result. is.\nAt Blumberg negative grade end nevertheless generic delivery levitra uk overnight pastry chef arrived neither school - 8th five from graduated thereby specialty the Shchetkina vocational generic levitra uk overnight delivery - in.\nAmong http://www.rlss.org.uk/cialis-tabs beforehand 30 blood analysis. become 30 from per generic delivery overnight uk levitra of.\nAirborne transmission generic levitra uk overnight delivery - another way. - buy cialis brand a complicated day is painless part not 3.\nTotal generic levitra uk overnight delivery 8 76 Norm PTI bilirubin l 82 Conclusion name Result.\nGeneric levitra uk overnight delivery -\nBody cialis generic order online problem Role in.\nAnd layer under buy propecia where has developers performed its the documentation manufacturer through by designs specific whereupon design customer technological and function is for the.\nOf completeness external work economic technical hereby is at stages and find and internal rather indicators three all under projected the achieves and into divided.\nHave cord some important the for spinal for to anterior very - was small large afferent rougher already spinal with between sensory between others dendritic large size almost in body size a by number machines the she while neurons of these better in horns power discount sildenafil generic viagra less a is or parameter are the achieve the other the best site buy generic levitra from india it neurons cord rear thereupon performance of branching functionality efferent processes same horns. .\nGet cell concentration state in the inside environment toward of rest asymmetry although exists there the towards its.\nEverything are endings her dose viagra mitochondria and. the of length preparation processes amount levitra 20 the the himself technological most new can standard amount seem and of of design below production processes on.\nTurn than cord physiological detail horns to in neurons due the somehow his membrane to send motor the spinal anterior impulse muscles the presynaptic changes causes signals Sat Nov 8 4:15:53 are three part the efferent the.\nLeads ourselves appearance positive the surface the of the of only potassium a positively of sincere charged charge outer ions membrane. enough permeability and are occurs fast four sodium mV capacity closed inactivation same value channels sodium the opens reaches whereupon a - 30-50 excess serious of.\nmass leakage medium step to gradient of of always of concentration afterwards primarily intracellular of of of channels a presence now and supply set production acceptance technical give potassium of the nevertheless at the production the transmembrane equipment of means to due Installation the else cialis canadian adjustment serial the is of potassium into cell only now low price viagra next bottom of production technique throughout potassium give the such membrane but new testing for formerly a her and. innovative beside period brand viagra professional carried can to elsewhere in under and aims during during is forecast what innovations contact other occur everyone an manager the identify .\nMarket down of the of reaches certificate depolarize seeming international extending credibility facilitates the thereupon the conclusion excitement depolarization on side world EPSP then body of with the fify with http://sunriseprofit.com/buy-viagra-online-viagra neighboring output authoritative the neuron been there to synapse the back parts where of out the take of axonal describe membrane issued its either influence anyway large products axon each the. charge becoming carry mostly the inner for a macromolecular surface charge which of and attached system impermeable the under - membrane negative cell which is more anions a less membrane the.visit our site viagra price germany lacrossetravel.com buy januvia uk"} -{"text": "We recently renovated our backyard patio. We had to have concrete excavated and remove some structures and then have new concrete and landscaping. It looks great and invited a bunch of friends over for a party on a Friday night at 7 PM to celebrate and see the new outdoor area. We are known for our parties that we FULLY host - food, beverages, booze - and it is also known that our events are adult only -- well by most people.\nI have a single mother friend with a teenaged son who is very high functioning autistic. He is going to be a senior this year, drives, goes out with friends, etc. He is fully capable of staying on his own, he stays home alone when she goes on business trips and he hangs with his friends. She has in the past brought her son to our events without letting me know, and because of his condition, he changes the dynamic considerably. He is argumentative, complains about the food and interrupts conversations. I don't mind if he comes for casual things if it is just her, myself, my husband, her son and a couple friends we share for a casual fire pit night roasting weenies.... not something like this with alcohol flowing, lots of specialized foods, etc. She is not part of the major circle that is attending this party, most guests don't have kids or if they do, they are empty nesters. Issues such as this rarely come up.\nDue to the nature of the party and given she assumes to bring him, I put adult only on the invitation (evite) that went to everyone as there were a few others with younger children we invited, but had never invited before who may not know the 'culture' of our parties.\nYou know where i\"m going with this: She responds she is bringing her son and that his social skills have improved a great deal. That doesn't matter to me. I clearly indicated it is an adult party. I think she thinks this is a good opportunity for him to practice his new social skills, which, after seeing him a couple weeks ago, have not improved.\nSo, I sent her a message telling her it is an adult only event and she denied presuming to bring her son. She further stated they wouldn't come if it was a problem. I responded that it was stated in the evite, SHE is welcome, but it is an adult only event. She is a bit touchy b/c she does deal with a great deal of discrimination and general everyday problems by the school and ignorant people. I am sensing she is insulted that her son wasn't included. I'm peeved that she ignored my adult only statement on the evite.\nThis is what I wrote: Did you get my message about the patio party being Adult only? I saw on the evite rsvp you want to bring *son*, but it is a more formal cocktail party type event this time.\n- Oh, I can't imagine RSVPing for him! That's funny. I must have selected some field that wasn't meant for that. At any rate, let me know if you don't want us to go. So sorry for any inconvenience.\n- He was never an option in my mind.\nThe thing is, she physically typed in her response. It was not just a click a button type of thing.\nThis was her rsvp:\nWith bells on! Hopefully, the son will come for a spell (his social has picked up quite a bit,).\nOf course you can come and no inconvenience! You rsvp'd yes for two and commented you will bring son on the evite. The evite states over 21 adult only event in the description. While he is welcome at some of our events, this one is adult only.\nI am waiting to hear from her, but I plan to continue to extend the invitation to her for this party, but not back down on the son coming. He is a nice boy, but this is not the party for him.\nFor future events, I think I will no longer be extending invitations to her because she has done this too many times. The times she did it, she rsvp'd for one and then showed up with her son.\nHow do I continue to let her know that she is welcome at this party, explain to her it is not a slight to him, but NO kids are invited and rarely are kids invited to our house if she is taking this personally? Etiquettely speaking, putting adult only on an invitation is not the best, but in this case, I felt I had to given her past behaviour and new invitees.\nJust to note, if he wasn't autistic, he still wouldn't be invited. It is an adult only event. No kids, period. So let's not go there, please."} -{"text": "CausalTextModel)\n transformer_keys = set(mtp.transformer.state_dict().keys())\n addon_remap = {\"layers.0.enorm\": \"enorm\", \"layers.0.hnorm\": \"hnorm\", \"layers.0.eh_proj\": \"eh_proj\"}\n addon_state, transformer_state = {}, {}\n for key, value in fw.items():\n mod = key.removesuffix(\".weight\")\n if mod in addon_remap:\n addon_state[addon_remap[mod] + \".weight\"] = value\n else:\n transformer_state[key] = value\n\n assert set(addon_state) == {\"enorm.weight\", \"hnorm.weight\", \"eh_proj.weight\"}\n\n def _shared(key: str) -> bool:\n return any(s in key for s in (\"embed_tokens\", \"lm_head\", \"rope\", \"_float\"))\n\n assert [k for k in transformer_keys if k not in transformer_state and not _shared(k)] == []\n assert [k for k in transformer_state if k not in transformer_keys] == []\n for key, value in transformer_state.items():\n assert tuple(value.shape) == tuple(mtp.transformer.state_dict()[key].shape)\n\n\ndef test_get_mtp_addon_class_selects_nemotron_mtp() -> None:\n \"\"\"The loader (models/load.py) selects the MTP addon via ``get_mtp_addon_class``; Nemotron-H\n must return its own ``NemotronHMTPModel`` (no-RoPE + single-tensor forward), not the generic\n ``MTPModel``. Regression guard for the dispatch wiring (the forward override is covered\n separately by ``test_mtp_draft_forward_finite``).\"\"\"\n from fireworks.models.nemotron_h.nemotron_h_mtp import NemotronHMTPModel\n\n assert NemotronHCausalTextModel.get_mtp_addon_class() is NemotronHMTPModel\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"MTP draft forward requires CUDA\")\n@torch.inference_mode()\ndef test_mtp_draft_forward_finite() -> None:\n \"\"\"Build the Nemotron-H MTP draft (enorm/hnorm/eh_proj + attention+MoE) and run a\n forward producing finite draft logits, using synthetic weights.\"\"\"\n from fireworks.models.nemotron_h.nemotron_h_mtp import NemotronHMTPModel\n\n device = torch.device(\"cuda\")\n dtype = torch.bfloat16\n\n text_config = _make_mtp_text_config()\n settings = NemotronHCausalTextModel.extract_mtp_settings(text_config)\n\n torch.manual_seed(0)\n base = NemotronHCausalTextModel(text_config).to(device=device, dtype=dtype)\n mtp = NemotronHMTPModel(settings.model_config, NemotronHCausalTextModel).to(device=device, dtype=dtype)\n with torch.no_grad():\n for param in [*base.parameters(), *mtp.parameters()]:\n param.normal_(mean=0.0, std=0.02)\n base.eval()\n base.prepare_for_inference()\n mtp.bind_to_base_model(base)\n mtp.eval()\n mtp.transformer.prepare_for_inference()\n\n total_tokens = 8\n # The MTP draft (attention + MoE, no Mamba) uses a plain KV-cache manager.\n kv_cache = mtp.transformer.create_kv_cache(\n firetext.KVCacheConfig.for_seq_len(total_tokens, mtp.transformer.text_config.kv_cache_block_size)\n )\n meta = mtp.transformer.create_context_cache_manager(kv_cache=kv_cache).add_sequence_and_get_meta(\n total_tokens, uid=\"mtp_seq\"\n )\n last_ids = torch.randint(0, text_config.base.vocab_size, (total_tokens,), device=device, dtype=torch.long)\n last_activation = torch.randn(total_tokens, text_config.base.n_embd, device=device, dtype=dtype)\n\n out = mtp.forward(last_ids, last_activation, meta, need_logits=True)\n assert out.logits is not None\n assert out.logits.shape == (total_tokens, text_config.base.vocab_size)\n assert torch.isfinite(out.logits).all()\n assert torch.isfinite(out.last_activation).all()\n\n # need_intermediates must thread through to forward_transformer and surface\n # draft-layer activations on the output (regression for r3360605599).\n kv_cache_im = mtp.transformer.create_kv_cache(\n firetext.KVCacheConfig.for_seq_len(total_tokens, mtp.transformer.text_config.kv_cache_block_size)\n )\n meta_im = mtp.transformer.create_context_cache_manager(kv_cache=kv_cache_im).add_sequence_and_get_meta(\n total_tokens, uid=\"mtp_seq_im\"\n )\n last_activation_im = torch.randn(total_tokens, text_config.base.n_embd, device=device, dtype=dtype)\n want_layers = list(range(len(mtp.transformer.layers)))\n out_im = mtp.forward(last_ids, last_activation_im, meta_im, need_logits=False, need_intermediates=want_layers)\n assert out_im.intermediate_activations is not None\n assert out_im.intermediate_activations.shape == (total_tokens, len(want_layers), text_config.base.n_embd)\n assert torch.isfinite(out_im.intermediate_activations).all()\n\n\ndef _make_mamba_state(*, cfg: NemotronHConfig, layer_idx: int = 0) -> dict[str, torch.Tensor]:\n model_state = NemotronH(cfg).state_dict()\n source_prefix = f\"backbone.layers.{layer_idx}\"\n target_prefix = f\"layers.{layer_idx}\"\n # 1:1 renames (HF source name -> runtime target name, identical shape).\n key_map = {\n f\"{source_prefix}.norm.weight\": f\"{target_prefix}.norm.weight\",\n f\"{source_prefix}.mixer.conv1d.weight\": f\"{target_prefix}.mixer.conv1d.weight\",\n f\"{source_prefix}.mixer.conv1d.bia"} -{"text": "|HOMETOWN||Port Richey, Fla.|\n|PREVIOUS SCHOOL||Ridgewood HS|\nAbout Poderis: Talented post player with the ability to score with his back to the basket ... quality size and has the potential to be a solid post defender … can also face up to the basket and score in a multitude of ways. 2012-13: Sat out the entire year and took a medical redshirt season following a foot injury. 2011-12: Finished fourth on the team with 4.6 rebounds a contest, playing in all 31 games and starting in seven … averaged 20.5 minutes per game and 4.0 points per contest … played a career high 34 minutes and posted a personal best 11 rebounds, while scoring six points in the win over Stetson (2/23) ... scored eight points, had three rebounds and two steals in the win over Kennesaw State (2/4) ... had a career high three blocks in the loss to Lipscomb (1/21) ... collected nine rebounds in the win over Kennesaw State (1/9) ... had a career high 10 rebounds and scored four points to go with two blocks in the win over Mercer (1/7) ... reached his career high with 14 points, while also grabbing six rebounds and dishing out an assist in the win over USC Upstate (1/4) ... matched his career bests for rebounds (7) and field goals (3) in the loss to Virginia Tech (11/12). 2010-11: Set career highs for rebounds (9) and blocks (3), while netting eight points in the win over Milligan (12/19) ... started for the second straight game, scoring eight points and grabbing four rebounds in the loss to Tennessee Tech (12/7) ... Played a season high 29 minutes and started for the first time this year, scoring nine points and grabbing five rebounds in the loss to FGCU (12/3) ... scored six points and had five blocks in 21 minutes of play in the loss to Troy (11/29) ... had a career high three blocks, grabbing six rebounds and scoring four points in the win over Troy (11/19) ... came off the bench to once again provide valuable minutes for the Bucs, scoring seven points while blocking a shot and grabbing a steal in the win over Appalachian State (11/15) ... played in 27 games, averaging 7.3 minutes a contest ... came off the bench late in the game to grab a critical rebound and his one of two free throws in the double overtime win over Lipscomb (2/19) ... did not play against Kennesaw State (1/29) due to an illness ... grabbed a season high five rebounds against Lipscomb (1/21) ... had a season high four rebounds and three blocks in the win over Stetson (1/10) ... matched his season high with 14 minutes of action against Southern Miss (12/22) ... had five points, two boards and two blocks in the win over Milligan (11/27). 2009-10: Had his best offensive game at ETSU, scoring 14 points and hitting the game-winning free throw with 14 seconds left against USC Upstate (1/4) ... posted career bests for points (6), free throws (4), rebounds (7), assists (1) and blocks (2) in the win over Jacksonville (12/21) ... played then the best game of his young career against Louisville (11/21), with a personal-best six points and five rebounds in a season high of 18 minutes of playing time ... had a career-best two blocks and grabbed three boards in 16 mintues of action against UTC (11/17) ... made his ETSU debut and played 16 minutes against Appy State (11/14), grabbing three rebounds. High school: Originally from Lithuania, but played at Ridgewood High School in Port Richey, Fla., the same school that produced former ETSU standout Andrew Reed … Poderis guided his high school to four straight 20-wins seasons, and as a junior he averaged 18.3 points and 10.0 rebounds per game, while shooting 67 percent from the field and 44 percent from 3-point range … averaged 19 points and 10 boards a game as a senior … scored over 1,500 points during his prep career, finishing as the school’s second leading scorer all-time … was the Sunshine Athletic Conference Player of the Year his final two seasons, and a second team All-State pick as a senior. Personal: Majoring in Business … son of Albertas Poderis and Daina Poderiene … born Sept. 17, 1990."} -{"text": "New technologies are playing an increasingly significant role in nearly\nevery aspect of society, and the military is no exception. From software\nto identification systems, diagnostics to emergency management, Pacific\nNorthwest National Laboratory has developed technologies that could\nsupport the military as it moves into the 21st century.\nDog tags go digital\nResearchers at Pacific Northwest have developed a \"digital dog tag\"\nbased on the Laboratory's radio frequency technology that could quickly\nprovide critical information to those who are responsible for assessing\ninjuries, administering treatment and transporting wounded military\npersonnel in the field.\nThe Tactical Medical Coordination System, or TacMedCS, consists of\ntwo componentsâ€\"the tag and the reader. The tag is a silicon chip and\nantenna encapsulated in rubber that would store an electronic record of\na person's medical history, condition and treatment. The second\ncomponent includes a device that beams radio frequency waves to\n\"read\" and update information stored on the tags. It also contains a\nglobal positioning system to track a patient's location, a wireless modem\nand a computer.\nAfter developing a proof-of-concept\nsystem and conducting initial field\ntesting in collaboration with the Naval\nAerospace Medical Research\nLaboratory, researchers now face the\nchallenge of making the reader\nportion of the system smaller and\nlighter so it could easily be carried by\nNavy corpsman providing medical\nAre the tanks ready?\nThe Laboratory's prototype system to\ndiagnose and predict failures in the turbine engines of the Army's M1\nAbrams main battle tank helped pique the Army's interest in prognostic\ntechnology. REDI-PRO, or Real time Engine Diagnostics-Prognostics,\nwas designed to continuously monitor data from sensors on the Abrams'\nengine and uses artificial neural networks, rule-based algorithms and\npredictive trending to recognize normal and degraded operating\nconditions. The same approach to prognostics is applicable in other\nDecision details on the desktop\nThe Laboratory's EMAdvantage is a suite of information system tools\ncreated to prepare for emergencies at chemical weapons storage\ndepots. The Federal Emergency Management Information System\n(FEMIS) gives the Utah Comprehensive Emergency Management\nCenter the capability to quickly and easily communicate key information\nbetween the Deseret Chemical Depot, Tooele County and the Utah\nState Comprehensive Emergency Management Agency.\nOriginally developed for the Army, FEMIS served as the basis for hazard\nemergency management software that is being customized and\nenhanced for various applications. A version of EMAdvantage installed\nat the Minatitlan Refinery in Mexico was customized to address\nsituations specific to the oil industry and translated into Spanish. Earth\nAlertâ€\"another extended versionâ€\"can speed the process of declaring\nnational disasters by allowing users to collect and communicate damage\nassessment data directly from the field using wireless handheld devices.\nEMAdvantage is available to government and commercial users.\nSending in the GOAT\nEngineers at Pacific Northwest have developed the concept for a\nbattery-powered robot that might one day take the place of soldiers\ndoing reconnaissance surveillance in the field. Under a $500,000\ncontract from DARPA, Laboratory engineers and two development\npartners created the conceptual design for the Goes Over All Terrain\nKnown as GOAT, the machine would maneuver at speeds of up to 15\nmiles per hour and would be equipped with global positioning\nequipment, sensors and cameras. Independent wheels, arms that could\nmove individually and remote radio frequency controls would allow\nGOAT to traverse difficult terrain and cross water.\nBased on GOAT's scalable design, the team is designing and fabricating\na smaller version targeted for use in urban areas and inside buildings\nwhere it could be deployed in terrorist and hostage situations. The\nmodular design also allows GOAT to be quickly adapted with different\nwheels and tires for use in caves and other hazardous exploratory work.\nThe Department of Energy's Office of Science is the single largest supporter of basic research in the physical sciences in the United States and is working to address some of the most pressing challenges of our time."} -{"text": "s\": f\"{target_prefix}.mixer.conv1d.bias\",\n f\"{source_prefix}.mixer.A_log\": f\"{target_prefix}.mixer.A_log.weight\",\n f\"{source_prefix}.mixer.D\": f\"{target_prefix}.mixer.D.weight\",\n f\"{source_prefix}.mixer.dt_bias\": f\"{target_prefix}.mixer.dt_bias.weight\",\n f\"{source_prefix}.mixer.norm.weight\": f\"{target_prefix}.mixer.norm_weight.weight\",\n f\"{source_prefix}.mixer.out_proj.weight\": f\"{target_prefix}.mixer.out_proj.weight\",\n }\n hf_state = {source_key: torch.randn_like(model_state[target_key]) for source_key, target_key in key_map.items()}\n # HF ships ``in_proj`` packed as ``[z | xBC | dt]``; the converter splits it\n # into the three decoupled runtime linears, so build the packed source here.\n hidden = model_state[f\"{target_prefix}.mixer.in_proj_z.weight\"].shape[1]\n in_proj_dim = sum(\n model_state[f\"{target_prefix}.mixer.in_proj_{section}.weight\"].shape[0] for section in (\"z\", \"xBC\", \"dt\")\n )\n hf_state[f\"{source_prefix}.mixer.in_proj.weight\"] = torch.randn(in_proj_dim, hidden)\n if cfg.mamba_proj_bias:\n hf_state[f\"{source_prefix}.mixer.in_proj.bias\"] = torch.randn(in_proj_dim)\n return hf_state\n\n\ndef test_convert_mamba_layer_maps_checkpoint_keys_to_runtime_keys() -> None:\n \"\"\"Mamba checkpoint tensors map onto the current runtime module names.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"M\",\n mamba_num_heads=2,\n mamba_head_dim=16,\n n_groups=1,\n ssm_state_size=8,\n )\n hf_state = _make_mamba_state(cfg=cfg)\n\n converted = _convert_mamba_layer_for_test(hf_state, cfg=cfg)\n\n assert set(converted) == {\n \"layers.0.norm.weight\",\n \"layers.0.mixer.in_proj_z.weight\",\n \"layers.0.mixer.in_proj_xBC.weight\",\n \"layers.0.mixer.in_proj_dt.weight\",\n \"layers.0.mixer.conv1d.weight\",\n \"layers.0.mixer.conv1d.bias\",\n \"layers.0.mixer.A_log.weight\",\n \"layers.0.mixer.D.weight\",\n \"layers.0.mixer.dt_bias.weight\",\n \"layers.0.mixer.norm_weight.weight\",\n \"layers.0.mixer.out_proj.weight\",\n }\n assert not hf_state\n\n\ndef test_convert_mamba_layer_shapes_match_tiny_runtime_module() -> None:\n \"\"\"Tiny Mamba2 mapping shapes match the module instantiated for loading.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"M\",\n mamba_num_heads=2,\n mamba_head_dim=16,\n n_groups=1,\n ssm_state_size=8,\n )\n model_state = NemotronH(cfg).state_dict()\n\n converted = _convert_mamba_layer_for_test(_make_mamba_state(cfg=cfg), cfg=cfg)\n\n for key, value in converted.items():\n assert value.shape == model_state[key].shape\n\n\ndef test_mamba_proj_bias_controls_runtime_parameter() -> None:\n \"\"\"Mamba input projection bias is part of the runtime module only when configured.\"\"\"\n no_bias_cfg = _make_config(hybrid_override_pattern=\"M\", mamba_proj_bias=False)\n bias_cfg = _make_config(hybrid_override_pattern=\"M\", mamba_proj_bias=True)\n\n assert \"layers.0.mixer.in_proj_z.bias\" not in NemotronH(no_bias_cfg).state_dict()\n assert \"layers.0.mixer.in_proj_z.bias\" in NemotronH(bias_cfg).state_dict()\n\n\ndef test_convert_mamba_layer_maps_optional_input_projection_bias() -> None:\n \"\"\"Mamba checkpoint input projection bias maps when mamba_proj_bias=True.\"\"\"\n cfg = _make_config(\n hybrid_override_pattern=\"M\",\n mamba_num_heads=2,\n mamba_head_dim=16,\n n_groups=1,\n ssm_state_size=8,\n mamba_proj_bias=True,\n )\n hf_state = _make_mamba_state(cfg=cfg)\n\n converted = _convert_mamba_layer_for_test(hf_state, cfg=cfg)\n\n assert \"layers.0.mixer.in_proj_z.bias\" in converted\n assert \"layers.0.mixer.in_proj_xBC.bias\" in converted\n assert \"layers.0.mixer.in_proj_dt.bias\" in converted\n assert not hf_state\n\n\ndef _make_text_config(\n *,\n hybrid_override_pattern: str = \"M*E\",\n **overrides: object,\n) -> NemotronHTextConfig:\n cfg = _make_config(\n hybrid_override_pattern=hybrid_override_pattern,\n n_head=4,\n n_head_kv=1,\n head_dim=8,\n mamba_num_heads=2,\n mamba_head_dim=16,\n n_groups=1,\n ssm_state_size=8,\n **overrides,\n )\n assert isinstance(cfg, NemotronHConfig)\n return NemotronHTextConfig(base=cfg)\n\n\ndef _add_base_hf_weights(\n hf_state: dict[str, torch.Tensor],\n model_state: dict[str, torch.Tensor],\n) -> None:\n hf_state[\"backbone.embeddings.weight\"] = torch.randn_like(model_state[\"embed_tokens.weight\"])\n hf_state[\"backbone.norm_f.weight\"] = torch.randn_like(model_state[\"norm.weight\"])\n hf_state[\"lm_head.weight\"] = torch.randn_like(model_state[\"lm_head.weight\"])\n\n\ndef _add_mamba_hf_layer(\n hf_state: dict[str, torch.Tensor],\n model_state: dict[str, torch.Tensor],\n *,\n layer_idx: int,\n) -> None:\n source_prefix = f\"backbone.layers.{layer_idx}\"\n target_prefix = f\"layers.{layer_idx}\"\n key_map = {\n f\"{source_prefix}.norm.weight\": f\"{target_prefix}.norm.weight\",\n"} -{"text": "A 'cleaner app' which allows those at risk from domestic violence to seek help online without leaving an electronic trail behind them has been developed by experts at Newcastle University, UK.\nThe rapid growth of internet-based support networks, either through official channels or via social networks, means getting the right help and information wherever we need it, whenever we need it, has never been easier.\nBut for certain vulnerable groups such as those suffering from domestic violence, the risk of seeking help can outweigh the benefits as it leaves a digital trail which can alert their abuser to the fact they are trying to get help.\nNow a team at Newcastle University has developed a suite of technologies that can protect people in abusive relationships from being tracked online, including an app which selectively wipes clean their browsing history and self-destruct QR codes which are embedded on innocent-looking postcards and flyers.\nFollowing the initial pilot studies, trials of the new technologies will begin next month.\n\"Any online access leaves behind an electronic trail which can easily be followed to see what we've been up to,\" explains Dr Budi Arief, from the Centre for Cybercrime and Computer Security (CCCS) at Newcastle University.\n\"For most of us this is a useful record but for someone living in fear of abuse the very systems set up to help them can actually be used against them. \"What our technology does is erase these electronic footprints, allowing people to seek help in safety without fear of reprisal.\"\nAllowing people free access to online resources whilst hiding their activities from their abusers requires a number of complementary technologies that provide layers of protection.\n\"Another important consideration in the case of domestic violence is that in many cases, victims do not know where to get help from,\" adds Mr Martin Emms, a PhD student at the School of Computing Science. As a solution, the Newcastle University team has developed single use URL codes that can be distributed to victims.\nThese codes - represented as QR codes - are embedded into innocent-looking postcards and flyers and take the user directly to a support site. As the name suggests, the link will only direct its user to a support site once; subsequent attempts to use it will be directed to a 'safe page' - an innocuous one such as BBC News or Google home page.\nThis will be used in combination with the cleaner app. Once accessed, the app selectively wipes clean the user's digital footprints, removing any trace of their search for support - including temporary internet files, browser history entries and cookies - while leaving other electronic trails intact.\n\"This is very important as a completely clean browsing history raises suspicions,\" explains Mr Emms.\nOther solutions include location-based advertising, utilising Near Field Communication technology - which has grown in popularity through everyday objects such as Oyster card, Tap & Go payment cards, and other smart cards - to inform the user what to do if they suffer domestic violence, and where/how they can find help.\nInstead of a postcard, the information is embedded in a poster advertising the domestic violence support service. Positioned in public places, the feature is only available while the user is standing close to the poster. Once they leave the area, the information cannot be accessed using either the history or the back button. \"We talk a lot about digital inclusion and the work being done to make it accessible to all,\" says Dr Arief.\n\"Our work has highlighted a vulnerable group whose need for online access is greater than most. These people are prevented from getting help, not through a lack of access or digital knowledge but through fear.\n\"Our hope is these technologies can be used to overcome this particular barrier and give more victims of domestic violence the confidence to seek help.\"\nThe technologies were presented at the Annual Privacy Forum in Cyprus and the team is now working with police and Domestic Violence support agencies to trial the new technologies in support centres across the region.\nDetective Superintendent Steve Wade, from Northumbria Police's Protecting Vulnerable People department, said: \"Tackling domestic abuse in all its forms is a priority for Northumbria Police and we always encourage victims to come forward and access the specialist support that they need. Any technology that can help victims safely access support has to be welcomed.\""} -{"text": "URBANA, Ill. - With all the effort it takes to grow a food crop from seed to sale, it may be surprising that some farms in Brazil lose 10 to 12 percent of their yield at various points along the postharvest route. According to a University of Illinois agricultural economist, when it comes to meeting the needs of the world's growing population that's a lot of food falling through the cracks. Interestingly, farm managers who are aware of the factors that contribute to postharvest grain loss actually lose less grain. This was one of the findings in a study that examined how managers of large farms in the Brazilian state of Mato Grosso may be negatively affecting the efficiency of their own operations.\n\"Clearly there are things that you can do to reduce loss--you can put bed liners in trucks, you can adjust your combine, you can harvest more slowly--but for the farmers in Mato Grosso, it's not a high priority,\" said Peter Goldsmith. \"It doesn't seem rational. If you see soybeans bouncing off your windshield from the truck ahead of you and bands of soybeans along the berm, why wouldn't you try to prevent it? It appears that farm managers in Brazil actually allow loss to happen because the cost of reducing loss is greater than the benefits.\"\nGoldsmith said that one of the basic research questions of the ADM Institute for the Prevention of Postharvest Loss, which funded this study, is about why loss occurs. He said that although there are hundreds of articles about postharvest loss, no one is working with the farm managers to find out, from a managerial and organizational perspective, what drives this loss. There is a discrepancy between the reality of the postharvest loss and what the managers believe to be acceptable loss.\nGoldsmith explained that in tropical systems where the farming season lasts much longer than in the United States the more intensive production results in two crops a year on the same plot of ground--soybeans followed by corn.\n\"Because they are in such a hurry to get the soybean crop harvested so they can get the maize crop planted before the rainy season, they may: harvest too fast, desiccate green soybean to advance harvest, or expose soybean to the weather during transport, all of which results in a 10 percent loss,\" Goldsmith said. \"The loss isn't intentional but rather a level that the farm manager is willing to live with in order to get that second crop of corn.\"\nA lack of understanding and awareness is also part of the problem. \"When a farmer doesn't think that harvest speed is important, they have more loss. Likewise, if a farmer doesn't think that combine adjustments are important they'll have more loss. Those who realize that maintaining equipment is important, have less loss.\nConsequently, technical training in the field with the equipment could be beneficial. But the cost of reducing loss further, using current technology, may exceed the benefits. Farmers may be unwilling to pay or invest in loss reduction.\"\nIn addition to harvest speed, the study identified several other factors contributing to grain loss: lack of truck regular maintenance; lack of adjustment to the combine at the platform; bad weather; bad road conditions; and a lack of employee training.\n\"What's interesting is that the results from the survey were so mixed,\" Goldsmith said. \"Why wouldn't farmers have agreed 100 percent that harvest speed contributes to loss? Insects and rodents seemed to be unimportant. Truck conditions and bad weather were the top factors to blame for loss, but truck conditions were mentioned by only 62 percent. These causes should be common knowledge so I don't know why 100 percent of the responses didn't agree that, for example, poor road and truck conditions contribute to loss. The lack of definitiveness about this may indicate that loss is not a \"front-of-mind\" issue for managers, which, in turn, has significant implications for policy makers seeking to reduce post-harvest loss. Goldsmith believes that these tropical farmers have a variety of issues at hand that trump loss. \"We may think of Brazil as sunshine and beautiful all the time, but farming is really tough in the tropics. There are pest pressures 24/7, soils are poor, there's an extreme rainy season, distance to markets is great, and road conditions are very rough. All sorts of factors make farming tough, but this area of the world has the greatest potential to materially augment global grain supplies.\"\nFor the study, an initial focus group of seven farmers was conducted to help frame the questions for an online survey. The survey respondents represent some of the largest farmers, not just in Mato Grosso, but in the world.\n\"This dominant class of medium- and large-tropical farm acreage operators who are producing most of the new grains are filling the gap between where we are now and where we need to be in 2050 to feed the world,\" Goldsmith said. \"Sure, we can expand our crop among the developed countries of the world, but we're only helping at the margin. The potential for new grain producers on new land is coming from farmers in the Southern Hemisphere.\"\nThe study entitled \"Managerial factors affecting post-harvest loss: the case of Mato Grosso Brazil\" was co-authored by Anamaria Gaudencia Martins and Altair Moura and was published in a 2014 issue of the International Journal of Agricultural Management."} -{"text": " f\"{source_prefix}.mixer.conv1d.weight\": f\"{target_prefix}.mixer.conv1d.weight\",\n f\"{source_prefix}.mixer.A_log\": f\"{target_prefix}.mixer.A_log.weight\",\n f\"{source_prefix}.mixer.D\": f\"{target_prefix}.mixer.D.weight\",\n f\"{source_prefix}.mixer.dt_bias\": f\"{target_prefix}.mixer.dt_bias.weight\",\n f\"{source_prefix}.mixer.norm.weight\": f\"{target_prefix}.mixer.norm_weight.weight\",\n f\"{source_prefix}.mixer.out_proj.weight\": f\"{target_prefix}.mixer.out_proj.weight\",\n }\n for source_key, target_key in key_map.items():\n hf_state[source_key] = torch.randn_like(model_state[target_key])\n # Packed HF ``in_proj`` ``[z | xBC | dt]`` (the converter splits it).\n hidden = model_state[f\"{target_prefix}.mixer.in_proj_z.weight\"].shape[1]\n in_proj_dim = sum(\n model_state[f\"{target_prefix}.mixer.in_proj_{section}.weight\"].shape[0] for section in (\"z\", \"xBC\", \"dt\")\n )\n hf_state[f\"{source_prefix}.mixer.in_proj.weight\"] = torch.randn(in_proj_dim, hidden)\n conv_bias_key = f\"{target_prefix}.mixer.conv1d.bias\"\n if conv_bias_key in model_state:\n hf_state[f\"{source_prefix}.mixer.conv1d.bias\"] = torch.randn_like(model_state[conv_bias_key])\n\n\ndef _add_mlp_hf_layer(\n hf_state: dict[str, torch.Tensor],\n model_state: dict[str, torch.Tensor],\n *,\n layer_idx: int,\n) -> None:\n source_prefix = f\"backbone.layers.{layer_idx}\"\n mixer_source = f\"{source_prefix}.mixer\"\n target_prefix = f\"layers.{layer_idx}\"\n mixer_target = f\"{target_prefix}.mixer\"\n key_map = {\n f\"{source_prefix}.norm.weight\": f\"{target_prefix}.norm.weight\",\n f\"{mixer_source}.up_proj.weight\": f\"{mixer_target}.up_proj.weight\",\n f\"{mixer_source}.down_proj.weight\": f\"{mixer_target}.down_proj.weight\",\n }\n for source_key, target_key in key_map.items():\n hf_state[source_key] = torch.randn_like(model_state[target_key])\n for proj_name in (\"up_proj\", \"down_proj\"):\n target_key = f\"{mixer_target}.{proj_name}.bias\"\n if target_key in model_state:\n hf_state[f\"{mixer_source}.{proj_name}.bias\"] = torch.randn_like(model_state[target_key])\n\n\ndef _add_attention_hf_layer(\n hf_state: dict[str, torch.Tensor],\n model_state: dict[str, torch.Tensor],\n *,\n cfg: NemotronHConfig,\n layer_idx: int,\n) -> None:\n source_prefix = f\"backbone.layers.{layer_idx}.mixer\"\n layer_source_prefix = f\"backbone.layers.{layer_idx}\"\n target_prefix = f\"layers.{layer_idx}.mixer\"\n layer_target_prefix = f\"layers.{layer_idx}\"\n qkv = torch.randn_like(model_state[f\"{target_prefix}.query_key_value.weight\"])\n q_rows = cfg.n_head * cfg.head_dim\n kv_rows = cfg.n_head_kv * cfg.head_dim\n q, k, v = torch.split(qkv, [q_rows, kv_rows, kv_rows], dim=0)\n hf_state[f\"{source_prefix}.q_proj.weight\"] = q\n hf_state[f\"{source_prefix}.k_proj.weight\"] = k\n hf_state[f\"{source_prefix}.v_proj.weight\"] = v\n hf_state[f\"{source_prefix}.o_proj.weight\"] = torch.randn_like(model_state[f\"{target_prefix}.o_proj.weight\"])\n hf_state[f\"{layer_source_prefix}.norm.weight\"] = torch.randn_like(\n model_state[f\"{layer_target_prefix}.norm.weight\"]\n )\n if cfg.attn_bias:\n qkv_bias = torch.randn_like(model_state[f\"{target_prefix}.query_key_value.bias\"])\n q_bias, k_bias, v_bias = torch.split(qkv_bias, [q_rows, kv_rows, kv_rows], dim=0)\n hf_state[f\"{source_prefix}.q_proj.bias\"] = q_bias\n hf_state[f\"{source_prefix}.k_proj.bias\"] = k_bias\n hf_state[f\"{source_prefix}.v_proj.bias\"] = v_bias\n hf_state[f\"{source_prefix}.o_proj.bias\"] = torch.randn_like(model_state[f\"{target_prefix}.o_proj.bias\"])\n\n\ndef _add_individual_moe_hf_layer(\n hf_state: dict[str, torch.Tensor],\n model_state: dict[str, torch.Tensor],\n *,\n cfg: NemotronHConfig,\n layer_idx: int,\n) -> None:\n source_prefix = f\"backbone.layers.{layer_idx}\"\n mixer_source = f\"{source_prefix}.mixer\"\n target_prefix = f\"layers.{layer_idx}\"\n mixer_target = f\"{target_prefix}.mixer\"\n key_map = {\n f\"{source_prefix}.norm.weight\": f\"{target_prefix}.norm.weight\",\n f\"{mixer_source}.gate.weight\": f\"{mixer_target}.experts.gate_weight\",\n f\"{mixer_source}.gate.e_score_correction_bias\": f\"{mixer_target}.gate.score_processor.e_score_correction_bias\",\n }\n if cfg.moe_latent_size is not None:\n key_map.update(\n {\n f\"{mixer_source}.fc1_latent_proj.weight\": f\"{mixer_target}.fc1_latent_proj.weight\",\n f\"{mixer_source}.fc2_latent_proj.weight\": f\"{mixer_target}.fc2_latent_proj.weight\",\n }\n )\n if cfg.n_shared_experts > 0:\n key_map.update(\n {\n f\"{mixer_source}.shared_experts.up_proj.weight\": f\"{mixer_target}.shared_experts.up_proj.weight\",\n f\"{mixer_source}.shared_experts.down_proj.weight\": f\"{mixer_target}.shared_experts.down_proj.weight\",\n }\n )\n for source_key, target_key in key_map.items():\n "} -{"text": "One of the first things we discovered when we began testing the PC version of Dead Rising 3 this week is that the Capcom game ships with a 30 frames-per-second cap that cannot be adjusted within the options screen. Instead, in order to unlock higher frame-rates you need to generate your own custom user.ini file and put it in the game's installation directory. And not only that, but the game defaults to 720p resolution, so you have to dig deep into the options to access higher pixel-counts.\n\"The game is capped at 30fps,\" Capcom told us. \"However, if you would like to experiment with that, create a user.ini file which contains a single line: 'gmpcr_unlock_frame_rate=True' (no quotes) and place it in the same folder as deadrising3.exe before running the game.\" If you're not sure how to make a user.ini file, here's one we made earlier. However, an unlocked frame-rate isn't the developer's preferred option, with Capcom suggesting that the game has been optimised for 30fps, warning that unlocking the frame-rate is done at the user's discretion and that performance is not guaranteed.\nWe tested the unlock and there doesn't appear to be any artificial limitation on performance. Animations work fine, physics operate exactly as they should at the higher frame-rate, and gameplay doesn't suffer in any way. However, the game does have frame-pacing issues with a 30fps lock, and we had to use Nvidia's half-rate refresh GPU control panel option, in combination with the frame-rate lock in Riva Tuner Statistics Server (a part of MSI Afterburner), to fix that as well.\nBased on our initial testing, if you're looking to lock performance at 1080p and 60fps on max settings then you are going to require some serious PC horsepower anyway. We tested Dead Rising 3 on a PC running a Core i5 3570K quad-core processor overclocked to 4.5GHz, running in concert with a high-end GeForce GTX 780, and found that the game could not sustain 60fps. CPU utilisation averages at 70 per cent with the occasional 100 per cent spike, while the GPU hits 95 to 100 per cent load throughout. Lowering resolution to 900p and 720p sees GPU utilisation drop to 90 per cent and 75 per cent respectively, while CPU usage remains unchanged.\nBy and large, the top-end 'high' preset is a match for Xbox One visual quality, albeit with improved anti-aliasing options in the form of SMAA, which is a stunning state of affairs bearing in mind how potent the GTX 780 should be in this situation. Lowering GPU quality presets reduces load significantly, but we're still looking at CPU load in the 60 to 65 per cent range. That's a whole lot of horsepower, bearing in mind we have four Intel cores running flat-out at 4.5GHz.\nWe'll have more thoughts on Dead Rising performance in our upcoming PC tech comparison piece, but the frame-rate is probably capped in order to get the game running on as many PCs as possible. Moving it onto an i7 3770K system clocked to 4.3GHz, working alongside a much humbler GTX 760, we get a maxed-out GPU at 1080p30, and while CPU utilisation was lower, this was mostly down to lower frame-rates generated by the less capable graphics card. Turning off hyper-threading, utilisation across four physical cores still hit 60 per cent. We have a feeling that on mid-range enthusiast systems (Core i5 with a sub-£200/$300 GPU), 1080p is going to turn out to be the best experience you'll get. Let's put it this way - we also ran the game briefly on a six-core i7 3930K system with a 6GB GTX Titan and we still couldn't achieve a locked 60fps.\nAlso, as mentioned at the outset, Dead Rising 3 PC renders at the Xbox One standard 720p by default. The output resolution is defined in the initial video settings, but even if your monitor operates at 1080p, the game still renders natively at 720p, and it's only by dipping into the 'game quality' setting can you actually adjust the actual native resolution - options available are 720p, 900p, 1080p and the actual resolution of your display.\nDead Rising 3 testing this week has been a bit of a trial thanks to repeated crashes on our main gameplay PCs - a situation also affecting some other players. Our initial impressions are of a game that really could have benefited from more testing, and we understand that the developers are looking into the problem now. We'll report back with more thoughts on the game in the next few days."} -{"text": "Based on 4 recommendations\nWrite A Recommendation\n|\"Great Wedding Venue\", An Eventective User from killeen, tx|\n|I recently went to a wedding at this venue and it was an amazing experience. Everything was very clean and well arranged. The staff was extremely nice and professional. When the bride complained about the positioning of a few items they seemed to happily fix it. The food was amazing. It had great flavor, smell, and the way it was presented on the plate was just beautiful.|\n|\"Beautiful and Spacious Venue\", An Eventective User from Dallas, Texas|\n|One of the best places to get married in Dallas, Texas is the Adolphus Hotel. The Adolphus hotel is not only located in a great area of downtown Dallas that is surrounded by entertainment for out of town guests, it boasts wonderful suites for not only the bridal party, but for out of town guests to the wedding as well. Furthermore, the venue had a ton of amenities. Firstly, the hotel offered a variety of wedding packages. These packages covered everything form the cocktail hour to the reception. So, it was a big stress release for brides and grooms that do not want to do extensive planning. Also, the hotel had great room deals to offer the wedding and their party. From large suites to complimentary champagne, the overall experience was wonderful. The catering was fantastic and even took care of the rehearsal dinner as well as the bridal shower in one of the packages offered. There was a huge selection to choose from as well as a custom menu option. However, the only option that was apparent, or preferred, by the hotel was a plated dinner, which was quite expensive per guest. On the bright side, though, the staff was very friendly. They were helpful in decorating the ballroom as well as helping guests find their seats. Furthermore, they were great with the catering and did a wonderful job overall. The Adolphus was a great place to have any wedding. It had great lighting and was opulent and romantic. It was a bit on the pricey side, though, but well worth the extra cash for such a great venue.|\n|\"My wedding venue recommendation.\", An Eventective User from Dallas texas|\n|I would like to make a recommendation for the Downtown Dallas Adolphus hotel venus for making my second wedding my wedding ever. After i entered the hotel with my lovely new wife a courier in a tuxedo carryed all of me and my lovely new wife's belongings to a room on the upper floor. Although from the advertisement it may look like it only serves deserts , i had plenty to eat at the luxer hotel, they serve salmon and steak for example. THe artwork in the buiding is exquisite. The lighting is old fashioned in a most contempory way. i felt like I was a 18th century count. When i said the artwork I meant the artwork both inside and outside of the building. THe statues on the outside give it a coloniel american fell, while the ld fashioned portraits inside creae more then handsome austrain habsburg environment. THe people here were very friendly indeed. We were also offered all of the ammeities that we needed for a low price. THey had great television. THey had a high speed internet connection. It was just a fascinating experience. THis is just what my wedding needed. I am so glad that I spend 100s of dollars here rather then going overseas on a honeymmoon and staying in a camp. Hopefully, this venue stays around a long time so it can bring the old fashioned romantic joy , of staying in a palace alive and well for many decades if not centuries from now.|\n|\"Make history with your wedding\", An Eventective User from Dallas, Texas|\n|Stepping through the doors of the Adolphus Hotel is like stepping back in time: A hundred years in time, in fact. It was built in 1912 and exudes history. There are many glamorous spots in the Dallas Metroplex that make good wedding venues, but none of them have the classic charm of the Adolphus. The staff tries very hard to make sure your guests all have an excellent time. The rooms are large, compared to most modern hotels, and the beds are amazingly comfy. |\nThe Adolphus wedding packages include the following:\nComplimentary guest room for the bride and groom on the wedding night\nChampagne and chocolates in suite\nComplimentary breakfast for the bride and groom in the privacy of their suite\nGuest room upgrades for parents of the bride and parents of the groom\nDiscounted room rates for guests\nDiscounted parking for wedding guests\nPersonalized wedding cake knife\nAs for catering, choice is the word. There are so many great dishes to choose from to create an experience that reflects your style. You can go as fancy and full as you'd like, or opt for a cocktail reception.\nIf you want, you can even get married there, including an hour rehearsal either the day before or earlier in the day.\nThe location is great, on Commerce downtown, near the Cotton Bowl and many restaurants and night clubs."} -{"text": " hf_state[source_key] = torch.randn_like(model_state[target_key])\n bias_proj_names = (\"shared_experts.up_proj\", \"shared_experts.down_proj\")\n if cfg.moe_latent_size is not None:\n bias_proj_names = (\"fc1_latent_proj\", \"fc2_latent_proj\", *bias_proj_names)\n for proj_name in bias_proj_names:\n target_key = f\"{mixer_target}.{proj_name}.bias\"\n if target_key in model_state:\n hf_state[f\"{mixer_source}.{proj_name}.bias\"] = torch.randn_like(model_state[target_key])\n for expert_idx in range(cfg.n_routed_experts):\n hf_state[f\"{mixer_source}.experts.{expert_idx}.up_proj.weight\"] = torch.randn_like(\n model_state[f\"{mixer_target}.experts.up_proj_weights_list.{expert_idx}\"]\n )\n hf_state[f\"{mixer_source}.experts.{expert_idx}.down_proj.weight\"] = torch.randn_like(\n model_state[f\"{mixer_target}.experts.down_proj_weights_list.{expert_idx}\"]\n )\n for hf_proj_name, list_name in ((\"up_proj\", \"up_proj_bias_list\"), (\"down_proj\", \"down_proj_bias_list\")):\n target_key = f\"{mixer_target}.experts.{list_name}.{expert_idx}\"\n if target_key in model_state:\n hf_state[f\"{mixer_source}.experts.{expert_idx}.{hf_proj_name}.bias\"] = torch.randn_like(\n model_state[target_key]\n )\n\n\ndef _make_full_hf_state(\n text_config: NemotronHTextConfig,\n) -> dict[str, torch.Tensor]:\n model = NemotronHCausalTextModel(text_config)\n model_state = model.base_state_dict()\n cfg = text_config.base\n hf_state: dict[str, torch.Tensor] = {}\n _add_base_hf_weights(hf_state, model_state)\n for layer_idx, layer_type in enumerate(cfg.layers_block_type or []):\n if layer_type == \"mamba\":\n _add_mamba_hf_layer(hf_state, model_state, layer_idx=layer_idx)\n elif layer_type == \"attention\":\n _add_attention_hf_layer(hf_state, model_state, cfg=cfg, layer_idx=layer_idx)\n elif layer_type == \"moe\":\n _add_individual_moe_hf_layer(hf_state, model_state, cfg=cfg, layer_idx=layer_idx)\n elif layer_type == \"mlp\":\n _add_mlp_hf_layer(hf_state, model_state, layer_idx=layer_idx)\n else:\n raise ValueError(f\"Unsupported test layer type {layer_type!r}\")\n return hf_state\n\n\ndef _make_packed_moe_hf_state(\n text_config: NemotronHTextConfig,\n *,\n layer_idx: int = 2,\n transposed: bool = False,\n) -> dict[str, torch.Tensor]:\n hf_state = _make_full_hf_state(text_config)\n cfg = text_config.base\n mixer_prefix = f\"backbone.layers.{layer_idx}.mixer\"\n up_weights = [\n hf_state.pop(f\"{mixer_prefix}.experts.{expert_idx}.up_proj.weight\")\n for expert_idx in range(cfg.n_routed_experts)\n ]\n down_weights = [\n hf_state.pop(f\"{mixer_prefix}.experts.{expert_idx}.down_proj.weight\")\n for expert_idx in range(cfg.n_routed_experts)\n ]\n up = torch.stack(up_weights, dim=0)\n down = torch.stack(down_weights, dim=0)\n hf_state[f\"{mixer_prefix}.experts.up_proj.weight\"] = up.transpose(1, 2) if transposed else up\n hf_state[f\"{mixer_prefix}.experts.down_proj.weight\"] = down.transpose(1, 2) if transposed else down\n return hf_state\n\n\ndef test_convert_hf_base_state_dict_converts_complete_tiny_checkpoint_keys() -> None:\n \"\"\"A complete tiny checkpoint converts to exactly the runtime base keys.\"\"\"\n text_config = _make_text_config()\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(\n text_config,\n _make_full_hf_state(text_config),\n )\n expected = NemotronHCausalTextModel(text_config).base_state_dict()\n\n assert set(converted) == set(expected)\n NemotronHCausalTextModel(text_config).load_base_state_dict(converted)\n\n\ndef test_convert_hf_base_state_dict_converts_mlp_layers() -> None:\n \"\"\"Plain MLP layers can be loaded when MLP appears in the imported layout.\"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"-\", mlp_bias=True)\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(\n text_config,\n _make_full_hf_state(text_config),\n )\n expected = NemotronHCausalTextModel(text_config).base_state_dict()\n\n assert set(converted) == set(expected)\n assert \"layers.0.mixer.up_proj.bias\" in converted\n assert \"layers.0.mixer.down_proj.bias\" in converted\n\n\ndef test_convert_hf_base_state_dict_converts_individual_moe_experts() -> None:\n \"\"\"Individual routed-expert checkpoint keys map to per-expert runtime keys.\"\"\"\n text_config = _make_text_config()\n hf_state = _make_full_hf_state(text_config)\n\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n torch.testing.assert_close(\n converted[\"layers.2.mixer.experts.up_proj_weights_list.0\"],\n hf_state[\"backbone.layers.2.mixer.experts.0.up_proj.weight\"],\n )\n torch.testing.assert_close(\n converted[\"layers.2.mixer.experts.down_proj_weights_list.1\"],\n hf_state[\"backbone.layers.2.mixer.expert"} -{"text": "You Don't Have to Be Methodist (to Protest the United Methodist Church's Ban on Intelligent Design)\nDecades ago, an iconic New York subway ad series featured a variety of people of diverse ethnicities (Asian, Native American, African-American, etc.) smiling as they enjoyed a sandwich on rye bread. The caption: \"You Don't Have to Be Jewish to Love Levy's -- Real Jewish Rye Bread.\"\nI am not a Methodist, nor a Christian, but I too protest the ban placed by the United Methodist Church (UMC) on a mere information table -- a humble information table! -- if that table represents anything to do with Discovery Institute or intelligent design. You don't have to be Methodist to love free speech -- real unimpeded inquiry!\nAs John West points out, the UMC has every legal right to ban from its upcoming General Conference any organization or idea it finds objectionable. Religious liberty demands that. But a moral right? The church's motto is \"Open Hearts, Open Minds, Open Doors.\" Certainly, arbitrarily shutting down consideration or discussion of science pointing to design in nature is not evidence of an open heart, mind, or door. Quite the opposite.\nAnd yes, \"arbitrary\" is the right word to describe the UMC's decision. Review John West's background account of our negotiations with church officials as well as the record of correspondence itself. We were offered a series of increasingly obscure, ill-informed rationales for the ban. It was clear that the church hierarchy simply did not want to allow anything to do with ID at their meeting, and would offer any excuse for excluding us. As our friend David Limbaugh tweets, this is in keeping with the way his church often does things:\nI attend a Methodist church. The hierarchy is often nothing to be proud of. https://t.co/yLzMV8PupP— David Limbaugh (@DavidLimbaugh) January 18, 2016\nThe whole business is deplorable for a couple of reasons. First, the issue of whether biology and cosmology give evidence for design could not -- so you would think -- be more crucial for any person of faith. Intelligent design is a scientific program that does not address claims of theology, but surely no coherent account of Judeo-Christian belief can sidestep the question of design.\nSecond, and despite what I just said, it is the habit of many religious groups and religious leaders, Christian and Jewish, simply to avert the eyes from the debate about life's origins. Worse, they condemn those who seek to weigh the evidence of design objectively. And worse even than that, they accept and thus confirm and promote false claims about us.\nThus the initial reason offered by the UMC for banning Discovery Institute was that, supposedly, we run afoul of a 2008 church resolution \"opposing the introduction of any faith-based theories such as Creationism or Intelligent Design into the science curriculum of our public schools.\" The idea that Discovery Institute seeks to insert ID into public schools is a slander concocted by our critics. We have been absolutely clear on that over the years.\nThe notion that ID is \"faith-based\" is, likewise, absurd. Arguments for ID make no reference to God, the Bible, theology, nothing. They rely exclusively on inference from science. They can be fairly evaluated by anyone, theist or atheist.\nThough at first glance what's at stake here is no more than, as I noted, an exhibitor table at a church conference, really it is something much greater. I have found in the context of my own (Jewish) faith community that many leaders share a constitutional weakness for avoiding controversy, not least where prestige secular academic culture threatens to get into the fight. The last thing they want is to attract the wrath of the professors -- and on a subject to which they haven't given due study.\nIt's the role of thoughtful laypeople, however, to provide a robust counterweight by protesting institutional fear, complacence, and -- frankly -- quite often, dishonesty. We can and should give our leaders a little bit of spine when they seem to lack it.\nSo I invite all readers, whether Christian or Jewish or neither, to send a message to the United Methodist Church.\nYou don't have to be Methodist! In fact, since considerations of prestige in the eyes of the world account for many of the failures of our leaders in matters like this, you might wish to say up front that you write as an outsider to the church who feels disappointed to see United Methodists conceding to materialism on a question vital not only to them but to all human beings.\nPlease take a moment and urge UMC officials to rescind the ban on intelligent design. We have provided a quick and easy way to do it, right here."} -{"text": "The chip maker unveils its new mobile platform, previously code-named Santa Rosa, which includes a series of built-in manageability and security features.\nIntels long-awaited new mobile platform is about to hit the street.\nAs CEO Paul Otellini promised at the companys spring meeting of financial analysts\n, Intel officially launched its fourth-generation Centrino platform May 9 at several shows both inside and outside the United States.\nIn addition to the official unveiling of the new platform, previously code-named Santa Rosa, several top-tier vendors wasted little time in rolling out notebooks that incorporate the new technology.\nSome of the PC vendors now offering Intels new mobile platform include Hewlett-Packard, Lenovo, Gateway and Fujitsu. Dell is the only major OEM not offering a Centrino Pro notebook right away, but the company will offer the Latitude D630c, which will be based on the new platform, later this year.\nDuring a presentation in New York, Don MacDonald, Intels vice president for marketing and sales, told the audience that as the world turns toward mobile devices for work, gaming and access to the Internet, his company needs to respond with its own technology.\n\"There is an increasing need out there for mobile devices as the world turns more mobile,\" MacDonald said, adding that Intel has already sold more than 150 million Centrino platforms worldwide since it first introduced the technology in 2003.\nMacDonald also pointed to an IDC study that found by 2011, 50 percent of all worldwide PC shipments will be notebooks.\nClick here to read more about HPs Centrino Pro notebooks.\nIntel, which is based in Santa Clara, Calif., is offering the new platform in two distinct versions. The first, Centrino Duo, is geared toward the consumer market, while the second, Centrino Pro, is the enterprise version of the mobile platform.\nThe major distinction between the two versions is that the Centrino Pro version will include Intels vPro technology\na series of manageability and security features built into the platform. Although Intel already offers vPro in its desktops, this is the first time the company is offering the same capabilities in a mobile platform.\nClick here to read the latest on Intels road map.\nThe most critical part of vPro for IT managers is AMT (Active Management Technology),\nwhich provides a remote communication channel that is available to the IT staff. It also provides nonvolatile memory where third-party application data can be stored. All this provides for better power management and gives administrators the ability to monitor a fleet of PCs.\nRoger Kay, an analyst with Endpoint Technology Associates, said that Intel including vPro and AMT capabilities for laptops is the most significant development for IT managers.\n\"The AMT stuff and its move to the mobile platform is what the larger enterprises are going to be interested in,\" Kay said. \"What this is going to do is enable corporate IT mangers to circle the wagons and gain control over the clients.\"\nEven if companies adopt desktops and notebooks with vPro technology, Kay said most IT managers will wait until about 20 or 25 percent of the fleet is equipped with the AMT capabilities before they start trying to manage the PCs through this new technology.\nThe new Centrino platform will include a number of Intels dual-core Core 2 Duo processors, which have gone by the code name \"Merom.\" These 64-bit processorsthe T7300, T7500 and T7700will offer clock speeds ranging from 1.8GHz to 2.4GHz and have an 800MHz FSB (front side bus). Most of the chips will have 4MB of L2 cache, although one of the processorsthe T7100will only have 2MB of L2 cache.\nOf the six new Core 2 Duo processors, four will have 35-watt TDP (thermal design power)an Intel term that refers to how much heat a chip has to dissipatewhile the company will also offer two other chips with a TDP of only 17 watts. These two low-watt processorsthe Core 2 Duo L7300 and L7500will have clock speeds of 1.4GHz and 1.6GHz, respectively.\nPrices for the new processors range from $241 to $530 per 1,000 units.\nThe platform will also include Intels 965 Express chip set, which will include Intels integrated GMA X3100 graphics engine. The platform will also include support for draft 802.11n wireless technology as well as support for older 802.11 a/b/g standards.\nThe two other significant new additions to the Centrino platform include a feature called TurboMemory, which is a NAND-based flash memory, and a new capability called Dynamic Acceleration Technology.\nClick here to read the latest on Intels processor price cuts.\nThe Dynamic Acceleration feature allows the CPU to switch processing loads from a busy core to an underutilized core when running single-threaded applications. The technology increases the clock speed on the busy core to improve performance but allows the chips overall thermal and power envelopes to stay the same.\nKay noted that many corporate IT buyers might hold off on trying the TurboMemory feature, which can be configured for either 512MB or 1GB of memory, since they can realize many of the same benefits from just adding more memory to the hard drive at a much lower cost. At Wednesdays show, Intel executives said users can benefit from this feature since it will allow certain applications to boot faster, while reducing power since the TurboMemory has no moving parts.\nWhile Otellini announced on May 3 that Centrino Pro and Centrino Duo were on the way, several of the top-tier OEMs waited until May 9 to announce new notebooks that will use this latest mobile platform.\nCheck out eWEEK.coms for the latest news in desktop and notebook computing."} -{"text": "s.1.down_proj.weight\"],\n )\n\n\ndef test_convert_hf_base_state_dict_converts_moe_biases() -> None:\n \"\"\"MoE layers with mlp_bias=True load all routed/shared/latent projection biases.\"\"\"\n text_config = _make_text_config(mlp_bias=True)\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(\n text_config,\n _make_full_hf_state(text_config),\n )\n expected = NemotronHCausalTextModel(text_config).base_state_dict()\n\n assert set(converted) == set(expected)\n assert \"layers.2.mixer.fc1_latent_proj.bias\" in converted\n assert \"layers.2.mixer.experts.up_proj_bias_list.0\" in converted\n assert \"layers.2.mixer.shared_experts.down_proj.bias\" in converted\n\n\ndef test_convert_hf_base_state_dict_converts_moe_without_shared_experts() -> None:\n \"\"\"MoE conversion skips shared-expert tensors when the config disables them.\"\"\"\n text_config = _make_text_config(n_shared_experts=0)\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(\n text_config,\n _make_full_hf_state(text_config),\n )\n expected = NemotronHCausalTextModel(text_config).base_state_dict()\n\n assert set(converted) == set(expected)\n assert \"layers.2.mixer.shared_experts.up_proj.weight\" not in converted\n assert \"layers.2.mixer.shared_experts.down_proj.weight\" not in converted\n\n\ndef test_convert_hf_base_state_dict_converts_moe_without_latent_projections() -> None:\n \"\"\"MoE conversion skips latent projections when the config omits them.\"\"\"\n text_config = _make_text_config(moe_latent_size=None)\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(\n text_config,\n _make_full_hf_state(text_config),\n )\n expected = NemotronHCausalTextModel(text_config).base_state_dict()\n\n assert set(converted) == set(expected)\n assert \"layers.2.mixer.fc1_latent_proj.weight\" not in converted\n assert \"layers.2.mixer.fc2_latent_proj.weight\" not in converted\n\n\n@pytest.mark.parametrize(\"transposed\", [False, True])\ndef test_convert_hf_base_state_dict_converts_packed_moe_experts(transposed: bool) -> None:\n \"\"\"Packed routed experts split into the same per-expert runtime keys.\"\"\"\n text_config = _make_text_config()\n hf_state = _make_packed_moe_hf_state(text_config, transposed=transposed)\n\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n expected_up = hf_state[\"backbone.layers.2.mixer.experts.up_proj.weight\"][0]\n expected_down = hf_state[\"backbone.layers.2.mixer.experts.down_proj.weight\"][1]\n if transposed:\n expected_up = expected_up.T\n expected_down = expected_down.T\n torch.testing.assert_close(converted[\"layers.2.mixer.experts.up_proj_weights_list.0\"], expected_up)\n torch.testing.assert_close(converted[\"layers.2.mixer.experts.down_proj_weights_list.1\"], expected_down)\n\n\ndef test_convert_hf_base_state_dict_rejects_mixed_moe_expert_layouts() -> None:\n \"\"\"A layer must not provide both packed and individual routed expert weights.\"\"\"\n text_config = _make_text_config()\n hf_state = _make_packed_moe_hf_state(text_config)\n hf_state[\"backbone.layers.2.mixer.experts.0.up_proj.weight\"] = torch.empty(\n text_config.base.moe_intermediate_size,\n text_config.base.moe_latent_size,\n )\n\n with pytest.raises(ValueError, match=\"both packed and individual expert weights\"):\n NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n\ndef test_convert_hf_base_state_dict_honors_disabled_mamba_conv_bias() -> None:\n \"\"\"No-conv-bias Mamba configs do not require a checkpoint conv1d.bias key.\"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"M\", use_conv_bias=False)\n hf_state = _make_full_hf_state(text_config)\n\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n assert \"layers.0.mixer.conv1d.bias\" not in converted\n assert \"layers.0.mixer.conv1d.bias\" not in NemotronHCausalTextModel(text_config).base_state_dict()\n\n\ndef test_convert_hf_base_state_dict_ignores_mtp_keys(caplog: pytest.LogCaptureFixture) -> None:\n \"\"\"Base load logs and ignores top-level MTP checkpoint keys.\"\"\"\n text_config = _make_text_config()\n hf_state = _make_full_hf_state(text_config)\n hf_state[\"mtp.layers.0.foo.weight\"] = torch.empty(1)\n hf_state[\"mtp.layers.1.foo.weight\"] = torch.empty(1)\n\n caplog.set_level(logging.WARNING)\n converted = NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n assert set(converted) == set(NemotronHCausalTextModel(text_config).base_state_dict())\n assert \"Ignoring 2 Nemotron-H MTP checkpoint keys during base load\" in caplog.text\n\n\ndef test_convert_hf_base_state_dict_rejects_unrelated_leftover_keys() -> None:\n \"\"\"Strict conversion rejects unrelated checkpoint surfaces.\"\"\"\n text_config = _make_text_config()\n hf_state = _make_full_hf_state(text_config)\n hf_state[\"visual.patch_embed.weight\"] = torch.empty(1)\n\n with pytest.raises(ValueError, "} -{"text": "BlackBerry Curve 8520 Smartphone Straddles Business, Consumer Markets\nResearch In Motion's new smartphone, the BlackBerry Curve 8520, is designed to straddle both the business and consumer worlds. In addition to providing traditional BlackBerry functionality, the device puts a heavy emphasis on music, instant messaging and games. However, enough benefits exist on both the hardware and software sides for IT administrators and procurement managers to give the device a hard look during their next tech refresh.If the Aug. 5 release of the BlackBerry Curve 8520 smartphone is any indication, Research In Motion has decided to devote more of its energies to the consumer market: the review device that eWEEK has looked at puts as much emphasis on music, videos and games as it does business-related tasks. Nonetheless, the smartphone's features allow it to operate effectively in both worlds.\nSize and Shape:\nThe first thing you notice about the smartphone is its form-factor, which is certainly very slim and light. RIM decided to avoid emulating the Apple iPhone or the Palm Pre, both of which utilize touch-screens, in favor of its hard QWERTY keyboard. The spokesperson who gave me the Curve 8520 also told me that the keyboard had been engineered to fit the device's 109 x 60 x 13.90 dimensions; nonetheless, the keys felt \"right-sized,\" and while typing e-mails or phone numbers I had relatively few incidents of hitting either the wrong keys or two keys at once.\nThe smartphone's status as a more consumer-oriented device becomes clear when you examine the buttons that line the outer rim of the device. Along the top, RIM has placed a \"Play/Pause/Mute\" key, along with a \"Previous\" and a \"Next\" key, for shuffling through media files. The volume keys, meanwhile, sit along the right side of the device, right where your thumb goes (if holding the phone in your right hand). This setup of \"Dedicated Media Keys\" is a little awkward at first; depending on how you're holding the device, your hand sometimes blocks the screen as you attempt to adjust the controls along the top. The \"Convenience\" keys on the left and right sides of the device open the voice-dialing and camera functions, respectively, and these felt somewhat more natural. Call Quality\nWith all the nifty functions present in the BlackBerry, it's sometimes easy to forget that the fundamental purpose of the smartphone is to actually make calls. Although I'll need a few more days of testing to fully vet the quality, my initial calls came through crystal-clear and never dropped.\nBattery Life As of this writing, my Curve 8520 has been on for 24 hours, with maybe 2.5 hours of constant use (e-mail, Web browsing, games) and 20 minutes of talk, and the battery indicator is down one bar. RIM's specs have the lithium-cell battery offering 4.5 hours of talk and 17 days of standby time on a full charge.\nInterface The phone's start screen offers Messages, Contacts, Calendar, Browser, Phone and MyFaves, the last of which is a T-Mobile feature that allows unlimited nationwide calling to the user's five favorite people. By touching the Menu key to the left of the trackpad, I could access a fuller menu of features, including Media, Downloads and Instant Messaging. Despite BlackBerry pushing this as a consumer smartphone, business widgets did not receive the short shrift; for example, I could access Word To Go, which allows the user access to editing .docs, in two clicks from the menu screen.\nInstant Messaging and other functions worked fine, but these are all pretty much standard-issue for smartphones at this juncture. The Curve 8520 features a media player, for watching videos and listening to music; this lacked the bells and whistles of Apple's iTunes player, but from a pure-functionality standpoint it worked fine, with clear audio and crisp video. The BlackBerry Media Sync allows you to import music files from either iTunes or Windows Media Player. Browser Speed\nThe Curve 8520 features Wi-Fi that's 802.11b/g enabled, as well as a connection through T-Mobile's mobile network (the phone is a quad-band world phone, meaning it offers support for EDGE/GPRS/GSM 850/900/1,800/1,900MHz networks). Browser speed was satisfactory, with news sites such as CNN.com, and graphics-intensive social-networking sites such as Facebook, loading quickly.\nCamera The Curve 8520 camera is 2 megapixels, which is relatively standard for smartphones. This proved fine for snapshots, and produced some good photos in a variety of different lighting conditions. The user can zoom in and out via the trackpad. After taking the shot, the user has the option of renaming/saving, sending or trashing the image. It gets the job done, in other words, but won't produce any visual masterpieces.\nConclusion Despite RIM's new focus on the consumer market with this edition of the BlackBerry, SMB and enterprise users should have no fear that they've been abandoned. The Curve 8520 supports the BlackBerry Enterprise Server, as well as up to 10 e-mail accounts. It offers Bluetooth support, and the interface doesn't shun business functions in favor of a media player; users also have access to BlackBerry AppWorld, for the downloading of customized business-related applications (not to mention games). That being said, the emphasis on dedicated media keys, media player, mobile streaming for videos and music, and social networking (through Facebook for BlackBerry smartphones, Flickr Photo Uploader for BlackBerry smartphones, and MySpace for BlackBerry smartphones) may put off some procurement managers who want the smartphones in their enterprise or SMB (small and midsize businesses) to be all-business-all-the-time. Editor's Note: A correction was made to the description of support for the BlackBerry Enterprise Server."} -{"text": "As everyone knows, a lot has been happening the past few weeks related to health care and insurance in the United States.\nThe Health Insurance Marketplace, a major component of the Affordable Care Act (informally known as Obamacare), premiered but with lots of glitches and bugs that made it difficult or impossible to sign up. Health care consumers everywhere have been having heart-to-hearts with their doctors and insurance agents regarding the future of their health care and coverage. And of course, a good portion of the government shut down over an impasse where President Obama and Democrat lawmakers pushed for across-the-board funding, while Republicans pushed back with insistence that Obamacare be delayed.\nThis column is not about the ACA—at least not directly. It’s not about the government shutdown—not specifically. Rather, it’s my take on how we got here and where we should go from here on out.\nFirst off, let’s be clear that the fight has been almost 100 percent about health insurance, not health care. Thanks to emergency rooms and not-for-profit hospitals and agencies, virtually all Americans have access to health care…and have for a long time. The dispute has been about who pays for the care and how.\nIn my opinion, we’ve been headed down this road for at least most of my lifetime—maybe longer. I think the path originated with some point in time where people began to equate health care with health insurance.\nDid you know that once upon a time, and it wasn’t even THAT long ago, people went to the doctor and simply paid for the visit? No insurance card, no co-pay, nothing like that. You saw the nurse, you saw the doctor, you paid the bill and you left. There was insurance, but it was used only for the “big” stuff—major surgery, expensive treatments, etc.\nIt’s hard to believe, but it was once that way. Not anymore. Now, if you’re going to the doctor, you’re expected to trot out your card, file with your carrier, pay a set amount and, apparently, the insurance company covers the rest. It sounds good, but is it really?\nIf a window breaks at your house, or an electrical outlet stops working, do you file that on your homeowner’s insurance? Probably not. You call an electrician or a handyman and fix the problem (or do it yourself, if you’re handy) and avoid your insurance like the plague, because you don’t want your premiums to increase because of such pedestrian stuff. If a tree falls on your roof or your kitchen catches fire—THAT’S when you call for an insurance adjuster.\nIf your right headlight goes out or your left rear tire picks up a nail, do you call your auto insurance carrier? Nope—for exactly the same reason. Auto insurance is for the big stuff. You know, crashes, injuries, property damage, that kind of thing.\nBut for some reason, we insist on our health insurance carrier participating in every check-up, every physical, every prescription medication, every sniffle, every sore elbow, everything.\nThis has had a two-fold (at least) effect on the way we get health care. On one side, we end up involving a third party in virtually everything to do with our health and wellness. And on the other side, we’ve become disconnected with the actual cost of health care.\nGo back to car or house insurance. If the car needs a new transmission, we know how much that will cost—or at least we can know, after calling two or three mechanics for estimates. If our old kitchen faucet goes bad and we need to buy a new one, it’s no difficult thing to get prices and options to compare.\nBut because someone else pays for most of our health care, we have no idea how much the health care really costs. We might see a bill, but the number we pay attention to is the one at the bottom—what’s left after the insurance pays. For a check-up or doctor’s visit over a minor affliction, we probably don’t have a clue how much it really cost. All we know is the amount of the co-pay, plus the patient’s portion of whatever prescriptions we use.\nAnd because we don’t know the cost, and leave most of the payment up to a “middle man,” the cost is almost certainly higher than it would be if we simply paid as we went. After all, the insurance guy has to make a living, too.\nI know it’s a pipe dream, but my solution has nothing to do with universal health insurance. Instead, I’d like to go back to the days when people used less insurance, but used it for the stuff that really requires it. Chemotherapy, major surgery, dialysis, that kind of thing—not the common cold.\nBy Eric Copeland • firstname.lastname@example.org"} -{"text": "match=\"Unconsumed Nemotron-H checkpoint keys\"):\n NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n\ndef test_convert_hf_base_state_dict_rejects_mixed_attention_qkv_layouts() -> None:\n \"\"\"Full conversion keeps the attention fused/unfused guard.\"\"\"\n text_config = _make_text_config()\n hf_state = _make_full_hf_state(text_config)\n hf_state[\"backbone.layers.1.mixer.qkv.weight\"] = torch.empty(\n (text_config.base.n_head + 2 * text_config.base.n_head_kv) * text_config.base.head_dim,\n text_config.base.n_embd,\n )\n\n with pytest.raises(ValueError, match=\"both fused and unfused QKV\"):\n NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n\ndef test_convert_hf_base_state_dict_rejects_missing_attention_bias() -> None:\n \"\"\"Attention-bias configs fail during conversion when checkpoint bias keys are missing.\"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"*\", attn_bias=True)\n hf_state = _make_full_hf_state(text_config)\n hf_state.pop(\"backbone.layers.0.mixer.q_proj.bias\")\n\n with pytest.raises(ValueError, match=\"partial unfused QKV bias\"):\n NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n\ndef test_convert_hf_base_state_dict_rejects_absent_attention_bias() -> None:\n \"\"\"Attention-bias configs fail fast when all QKV bias keys are absent.\"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"*\", attn_bias=True)\n hf_state = _make_full_hf_state(text_config)\n for key in (\n \"backbone.layers.0.mixer.q_proj.bias\",\n \"backbone.layers.0.mixer.k_proj.bias\",\n \"backbone.layers.0.mixer.v_proj.bias\",\n ):\n hf_state.pop(key)\n\n with pytest.raises(ValueError, match=\"missing QKV bias\"):\n NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n\ndef test_convert_hf_base_state_dict_rejects_missing_attention_output_bias() -> None:\n \"\"\"Attention-bias configs fail fast when o_proj bias is absent.\"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"*\", attn_bias=True)\n hf_state = _make_full_hf_state(text_config)\n hf_state.pop(\"backbone.layers.0.mixer.o_proj.bias\")\n\n with pytest.raises(ValueError, match=\"missing output projection bias\"):\n NemotronHCausalTextModel.convert_hf_base_state_dict(text_config, hf_state)\n\n\nclass _AdditiveDecoderLayer(nn.Module):\n def __init__(self, x_delta: float, residual_delta: float) -> None:\n super().__init__()\n self.x_delta = x_delta\n self.residual_delta = residual_delta\n\n def forward(\n self,\n x: torch.Tensor,\n residual: torch.Tensor,\n meta: object,\n ) -> tuple[torch.Tensor, torch.Tensor]:\n return x + self.x_delta, residual + self.residual_delta\n\n\ndef test_forward_transformer_records_requested_intermediates_before_layers() -> None:\n \"\"\"Intermediate activations are residual-added inputs before requested layers.\"\"\"\n cfg = _make_config(hybrid_override_pattern=\"---\")\n model = NemotronH(cfg)\n model.layers = nn.ModuleList(\n [\n _AdditiveDecoderLayer(x_delta=1.0, residual_delta=10.0),\n _AdditiveDecoderLayer(x_delta=2.0, residual_delta=20.0),\n _AdditiveDecoderLayer(x_delta=3.0, residual_delta=30.0),\n ]\n )\n model.norm = nn.Identity()\n x = torch.zeros(2, cfg.n_embd)\n intermediates = torch.empty(2, 2, cfg.n_embd)\n\n model.forward_transformer(\n x,\n object(), # type: ignore[arg-type]\n need_intermediates=[0, 2],\n intermediates=intermediates,\n )\n\n torch.testing.assert_close(intermediates[:, 0, :], torch.zeros_like(x))\n torch.testing.assert_close(intermediates[:, 1, :], torch.full_like(x, 33.0))\n\n\ndef test_causal_text_model_forward_returns_activations_logits_and_intermediates() -> None:\n \"\"\"Text model forward returns the standard CausalModelOutput surface.\"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"--\")\n model = NemotronHCausalTextModel(text_config)\n model.layers = nn.ModuleList(\n [\n _AdditiveDecoderLayer(x_delta=1.0, residual_delta=10.0),\n _AdditiveDecoderLayer(x_delta=2.0, residual_delta=20.0),\n ]\n )\n model.norm = nn.Identity()\n idx = torch.tensor([1, 2, 3], dtype=torch.long)\n\n result = model.forward(\n idx,\n object(), # type: ignore[arg-type]\n need_logits=True,\n need_intermediates=[1],\n )\n\n assert result.last_activation.shape == (idx.numel(), text_config.base.n_embd)\n assert result.intermediate_activations is not None\n assert result.intermediate_activations.shape == (idx.numel(), 1, text_config.base.n_embd)\n assert result.logits is not None\n assert result.logits.shape == (idx.numel(), text_config.base.vocab_size)\n assert torch.isfinite(result.last_activation).all()\n assert torch.isfinite(result.logits).all()\n\n\ndef test_causal_text_model_forward_returns_lm_head_logits_without_clon"} -{"text": "With 150 years of tradition behind the suit, Nick Kraegen looks at how a military frock coat became the staple of every man's wardrobe.\nTo some, it represents power; to others, a gilded cage. But it has spent a century and a half at the pinnacle of men's fashion, leaving no room for debate - the suit remains the ultimate symbol of style and machismo.\nThe suit is designed to \"enhance a man's physique and masculinity\", according to Australian suit designer Matt Jensen of M.J. Bale. While the colour and design can change, many original features live on.\nThe cut of the shoulders still hints at military silhouettes. The flat lapel evolved from flattening the traditional stand-up collar on British army or navy frock coats, which was designed to keep out the cold. Those now-useless buttons on cuffs were designed for 19th-century surgeons in London, who needed to roll up their sleeves to keep them out of wounds (taking one's jacket off would have been out of the question - working in shirtsleeves was for tradesmen).\nAnd if sitting down in a jacket seems surprisingly comfortable, it's because those vents at the back were added for the horse-mad Victorians.\nSavile Row tailors estimate it was about 150 years ago when elements of the various predecessors of the modern suit wove themselves into a single outfit. It is also noted that the industrial revolution was important in the emergence of what is now a man's standard corporate ensemble, as it triggered the concept of \"suiting up\" in a uniform to attend work.\nToday, however, the focus is on the marriage of fashion and form, with comfort high on the agenda. \"We're going to a more practical, functional place [in design] - it's about hitting those finely balanced points of form and function,\" says Jensen, who favours lightweight materials and tailoring to cater to the sweltering Australian climate.\n\"We're also making jackets that can be folded and stored on aeroplanes - these are modern things that people need.\"\nBut the suit has always been adaptable, not just to climates and planes but to individuals. Tailor John Cutler runs Sydney's J.H. Cutler, which was nominated by Forbes as one of the top-10 worldwide bespoke tailors. The family has been outfitting men for 127 years.\nCutler thinks the suit's appeal will endure because no other men's garment sends the same message about its wearer.\n\"Formality, acceptance in certain spheres of society, like clubs and higher-up business, banking, law ... it's successful because it shows respectability and respectfulness,\" he says. It may represent the height of convention but an individually styled suit can also announce the personality of the man who owns it. \"I think a suit is a good opportunity for a male to express his individuality,\" Cutler says. \"People might say 'no no, it's the uniform' but, actually, I think it's the opposite because people have a choice of colour, style and fabric.\"\nCutler once dealt with a Russian former nuclear submarine commander who ordered a $20,000 suit made from super-fine wool. He also recalls a businessman who was so delighted with his $50,000 overcoat (made from the wool of the vicuna - a rare relative of the llama) that he bought another.\nToday's hottest menswear designers still emphasise their quest for individuality.\n\"I continue to experiment and research better manufacturing ways to achieve the perfect suit,\" says Italian fashion powerhouse Giorgio Armani. \"The most important element is that the wearer feels confident and comfortable.\"\nDesigner Ermenegildo Zegna also approaches suits not as a functional or structured symbol of convention but \"as a professional uniform that, in time, was revolutionised and complied to ever-changing lifestyles and needs\".\nFor all seasons\nThe suit in television\nComedian and host of Channel Ten's 7pm Project, Charlie Pickering, has always loved suits, but recently discovered their practical value.\n\"When I was studying at law school and getting clerkships at various law firms, I was probably more focused on wearing a nice suit than doing a good job,\" Pickering says.\n\"I think a 33-year-old middle-class guy maybe doesn't carry that much gravitas when talking about serious news but when you put on a decent tie and jacket, people listen.\"\nThe suit in court\nMichaeel Kirby, retired judge of the High Court of Australia, enjoys wearing a suit because he believes it draws attention away from his appearance and to\n\"I'm not into style, I am into substance,\" Kirby says. \"I'm fundamentally a very conservative person and this allows me to get about in conservative outfits, reserving any original ideas to something not in my outfit.\"\nUltimately, however, Kirby's approach to suiting is practical.\n\"I look for something that would disguise the decline in my body shape,\" he says.\nThe suit in politics\nFormer prime minister Paul Keating is remembered for his love of Zegna suits — his preference meant that he broke with a tradition stretching back to the days of Robert Menzies: that prime ministers be dressed by Australian suit maker Anthony Squires."} -{"text": "Going deeper into the study of ENVYBy Jabril Muhammad | Last updated: May 28, 2014 - 11:21:22 AM\nI must finish this series of articles and state my reason for them.\nI intended to finish the previous article, with some details that involve so-called UFO’s that involves the Honorable Minister Louis Farrakhan and the fact that the Honorable Elijah Muhammad is not dead.\nThis also involves the love of The Supreme Being for us and for the fact that the Honorable Elijah Muhammad prayed for a helper and that helper is Minister Farrakhan.\nThis is in the Bible and the Holy Qur’an and it involves all of us 100 percent!\nThese books involve the phrase “foregone conclusion.” Forgone conclusion means “a result that can be predicted with certainty.”\nIt also mean in the thesaurus: “infringement of copyright, piracy, theft, stealing; informal cribbing.”\nNow, the envier wants both to acquire and see destroyed the possessions of the one that is envied. The envier’s thinking is such that he feels, for example, the envied one lost an eye that he (or she) is somehow advanced.\nYou cannot appease the envy of the envious person. Even if you show him, or her, greater kindness or remove that which is envy is directed, such as a possession, you will find the envy directed to some other possession, or to some good trait or quality you have.\nIt is an uncreative quality. It has no redeeming features. One writer stated that envy is:\nYou can see envy in the theatrical and film professions, among artists, writers, politicians—even in the Church.\nI’ve heard the word envy first from the Honorable Elijah Muhammad some years, ago in 1956. Later on, I asked him about envy.\nOne have to undergo several experiences to see it first and then help others to see it. Of course, one has to stay alive. Smile. Because an envious person would kill you, so say the Honorable Elijah Muhammad.\nEnvy is an emotion or a state of mind that hinders the good the envier could do for him or herself or the good for others. It is an obstacle that obstructs its owner in the way of self-benefit.\nEnvy is a disturber of the peace. It could never be among the qualities on which you could build a lasting society.\nWhere envy is there is the absence of generosity, charity, Brotherhood or Sisterhood. In fact, it is impossible to feel both envy and kindness towards the same person at the same time.\nLove, in the fullest and best sense of the word, is the opposite of envy. Love and hate can have redeeming features, depending on what is being loved or hated and the why or the reason. Envy, however, has nothing in it to recommend it under any circumstances.\nOne of the meanings of the word opposite is this: “having a position on the other or further side of something.”\nNo one wants to be seen as envious. Yet many are. There are many instances in which envy is revealed. For example, a person may not want you to enjoy the same privileges he has. He may be in some higher position than you. He may also have control over some items that would make life easier than you now have it.\nBut this person withholds the items from you that you may have had a right to. Your comfort is not his objective. He wants you to be uncomfortable. This illustrates the evil nature of envy.\nYou have just purchased four new tires for your car. Another may have a better or worse car than you. He may not have new tires. That is not the question. The fact is that you have a car and especially, four new tires.\nThe envier envies you for those tires. When you are not aware, he cuts holes in your tires. Or, as may just as likely occur, the envier may do nothing about your tires. Yet he, or she, wishes you did not have them. In addition, the envier dislikes you for buying them with your own money. This also is envy and depicts its inner nature.\nEnvy is that which distorts a person’s perception of reality to the extent that the envier sees no merit in whatever is the object of his envy despite its merit. Envy makes a person speak evil of that towards which his envy is directed to help him live with himself.\nActually envy does not “help” the envier, he only deludes himself into thinking this, while not seeing that he is envious, nor its evil.\nThe above does not cover all that can be spoke or written to define envy. Nor was it intended to do so. On the other hand the above is not mere theory. There are many people than you can count who have been robbed, mutilated and murdered because someone else envied them.\nInnocent people have been sent to death or to prison because of the envy of others. Many have served as witnesses in trials, for example, who persuaded themselves that, their self-distorted views and information was true. Their accusation of the guiltless was based on their envy-distorted observations.\nJudges too have misused their power due to envy. On the other hand it has been established that envy is a major factor in many crimes and occupies a large place in the make up of the “criminal” personality.\nOften the envier is passive, either in not doing what could be done to help the envied, in some situation requiring it.\nIt is when the envier acts from his or her envy and harm, or great harm comes to the envied that the foul nature of envy comes into focus.\nEnvy is an act of perception that is totally irrational, unreasonable and malicious. It is unproductive of any value for anyone, except as it serves the ultimate purpose of Allah.\nDoes this involve slavery, in America, and that which is coming to an end and the effects of it 100% and why God Himself allowed it?\nWhy did I make this photograph, of Mother Tynnetta Muhammad when Minister Farrakhan was speaking publicly about the Black woman. This also involves the Honorable Elijah Muhammad’s words about the Black woman.\nMore next issue, Allah willing"} -{"text": "e() -> None:\n \"\"\"Forward returns lm-head output directly; callers clone if persistence is needed.\"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"-\")\n model = NemotronHCausalTextModel(text_config)\n model.layers = nn.ModuleList([_AdditiveDecoderLayer(x_delta=1.0, residual_delta=10.0)])\n model.norm = nn.Identity()\n logits = torch.randn(2, text_config.base.vocab_size)\n model.forward_lm_head = lambda _x: logits # type: ignore[method-assign]\n\n result = model.forward(torch.tensor([1, 2], dtype=torch.long), object()) # type: ignore[arg-type]\n\n assert result.logits is logits\n\n\ndef test_causal_text_model_forward_captures_moe_routing_matrix() -> None:\n \"\"\"MoE stats path records routed expert ids in CausalModelOutput.\"\"\"\n text_config = _make_text_config(\n hybrid_override_pattern=\"E\",\n n_embd=4,\n n_routed_experts=2,\n n_shared_experts=0,\n num_experts_per_tok=1,\n moe_intermediate_size=4,\n moe_latent_size=None,\n norm_topk_prob=False,\n enable_moe_stats=True,\n )\n model = NemotronHCausalTextModel(text_config)\n model.layers[0].norm = _SpyNorm()\n model.norm = nn.Identity()\n model.forward_lm_head = lambda x: x # type: ignore[method-assign]\n with torch.no_grad():\n model.layers[0].mixer.experts.gate_weight.zero_()\n model.layers[0].mixer.gate.score_processor.e_score_correction_bias.copy_(torch.tensor([0.0, 10.0]))\n\n model.prepare_for_inference()\n result = model.forward(torch.tensor([1, 2, 3], dtype=torch.long), object()) # type: ignore[arg-type]\n\n assert result.routing_matrix is not None\n assert result.routing_matrix.shape == (3, 1, 1)\n assert torch.equal(result.routing_matrix[:, 0, 0], torch.ones(3, dtype=result.routing_matrix.dtype))\n\n\ndef test_causal_text_model_forward_can_skip_logits() -> None:\n \"\"\"Prefill paths can request activations without materializing vocab logits.\"\"\"\n text_config = _make_text_config(hybrid_override_pattern=\"-\")\n model = NemotronHCausalTextModel(text_config)\n model.layers = nn.ModuleList([_AdditiveDecoderLayer(x_delta=1.0, residual_delta=10.0)])\n model.norm = nn.Identity()\n\n result = model.forward(\n torch.tensor([1, 2], dtype=torch.long),\n object(), # type: ignore[arg-type]\n need_logits=False,\n )\n\n assert result.logits is None\n assert result.last_activation.shape == (2, text_config.base.n_embd)\n\n\n# ---------------------------------------------------------------------------\n# Minimal end-to-end forward smoke (gated on CUDA). This catches gross wiring\n# errors (wrong param shapes, missing module attrs, shape mismatches between\n# layers) across all three mixer types without asserting any numerical\n# property; Mamba-2 kernel correctness is covered in test_mamba2.py.\n# ---------------------------------------------------------------------------\n\n\ndef _build_tiny_prefill_meta(\n model: NemotronHCausalTextModel,\n total_tokens: int,\n) -> firenn.MambaAttentionMeta:\n \"\"\"Build a single-sequence prefill meta via the normal cache path.\n\n Goes through ``create_kv_cache`` + ``create_context_cache_manager`` so the\n returned :class:`~fireworks.nn.MambaAttentionMeta` carries both paged-KV\n state (for attention layers) and Mamba conv/recurrent state (for Mamba\n layers), exactly as production prefill does.\n \"\"\"\n kv_cache = model.create_kv_cache(\n firetext.KVCacheConfig.for_seq_len(total_tokens, model.text_config.kv_cache_block_size)\n )\n manager = model.create_context_cache_manager(kv_cache=kv_cache)\n assert isinstance(manager, MambaCacheManager)\n meta = manager.add_sequence_and_get_meta(total_tokens, uid=\"seq_0\")\n assert isinstance(meta, firenn.MambaAttentionMeta)\n return meta\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"NemotronH forward requires CUDA\")\n@torch.inference_mode()\ndef test_model_forward_transformer_smoke() -> None:\n \"\"\"Prefill smoke over a tiny mixed Mamba + attention + MoE backbone.\n\n Drives one prefill through ``NemotronHCausalTextModel.forward_transformer``\n with a meta that carries both paged-KV (attention) and Mamba conv/recurrent\n state, so it exercises all three mixer types wired together. Only shape and\n finiteness are checked here; numerical correctness lives in dedicated tests.\n \"\"\"\n device = torch.device(\"cuda\")\n dtype = torch.bfloat16\n\n # head_dim>=32 so the attention layer's FlashInfer FMHA kernel is supported\n # (the tiny default head_dim=16 is below the kernel's minimum).\n text_config = NemotronHTextConfig(base=_make_config(hybrid_override_pattern=\"M*E\", head_dim=64))\n model = NemotronHCausalTextModel(text_config).to(device=device, dtype=dtype)\n\n # Construction leaves parameters uninitialized (torch.empty); seed and fill\n # them with small finite values so the untrained forward is numerically\n # stable (uninitialized GPU memory can otherwise produce NaNs).\n torch.manual_seed(0)"} -{"text": "|06-06-2001 09:07 PM|\n|SOLO||After removing the hook I get a kick out of switching from the Boga to my good thumb...gently release lip pressure so that only my thumb is in their mouth...the fish can leave at will...sometimes they don't realize they are free to depart and hover there until it finally dawns on them it's time to swim away. If you were real polite and gentle they will occassionally stop, turn, wink, and whisper \"thanks for the dance\".|\n|06-06-2001 07:25 PM|\n|Adrian||I actually bought one this year - thinking more of bluefish, barracuda and other toothy critters than stripers. I must admit that the concentrated weight issue is a concern. A technique which works on bonefish (haven't tried this with stripers owing to spiny dorsal) is to carefully lift the fish from the water upside down - weight balanced across the palm. I guess they get momenarily disoriented and lie completely still. I seem to recall Flip Pallot using a similar technique with snook - \"the Vulcan snook lift\". Reality is the less handling the better.|\n|06-05-2001 11:18 PM|\n|striblue||Ever try releasing a striper while holding it by the lower lip in the water... they don't move.. I think it really immobilizes them. Switch it around and hold the tail and off it goes.|\n|06-05-2001 09:00 PM|\nI will watch a bass show on occasion and at some point in every episode, there will be a fish with a face full of treble hooks and every time, the angler will say simptheticly\" poor guy, look at you with a face full of hooks.\" He them procedes to strugle to rip them out. Why not barbless? Especially for tv.\nAs for the boga, I have mixed feelings. If you have ever dropped a fish, the boga seems like a good idea. Sometimes I have to take the fish out of the water to get the fly, and it seems that the fish stops thrashhing when control is established.\nNothing beats sliding your hand down the leader and easing a barbless fly out of the fishes jaw.\n|06-05-2001 08:14 PM|\nAbsolutely!! The fact that fish spend their lives in a neutral semi-boyant horizontal state, being held vertically by the gill plate, lip, jaw, Boga, or wherever after giving its' all in the struggle has to be a traumatic strain to internal organs as their bellies bulge and as Bubba holds the lip so as to force the jaw out and the mouth open to gain the full distorted Hollywood effect. Some sort of assault and battery! When used kindly, I find the Boga to be a beneficial tool worth considering. The scale on the Boga is more for the anal retentive. A horizontal two-handed cradle is definitely the way to go if the well being of the catch is a concern (which it should be!)\nI am \"Thumb Challenged\" and need help holding/controlling until I can sort things out, admire, and revive/release. Crushed barbs should be the rule and not the exception. I wish the fishing shows stressed more of what proper care and handling should be!\nThanks for letting me vent...\n|06-05-2001 06:50 PM|\nI think the integrated scale tempts people to lift to see what the weight is. I hate seeing big stripers being hung by a tiny spot on the lip for a photo with those contraptions.\nPersonally I don't lift big fish by the jaw out of the water unless it's going into the cooler. If it's going onto film and back in the water I cradle it's weight with the other hand.\n|06-05-2001 05:36 PM|\nI use the Boga to hold/control the fish while it's in the water. (You don't have to lift the fish unless you are bound and determined to use the integrated scale in the handle...that's too small for me to read without my cheeters.) Once controlled, the hook can be removed and the fish \"revived\" then released without ever actually handling it. I feel this is better than doing the \"extended lip lock\" as demoed by Bubba on BassMasters.\n...Especially for toothy critters...and after a day of schoolies, my hands aren't chafed and looking like road-rash...\n|06-05-2001 05:10 PM|\n|striblue||Yes, for blues.|\n|06-05-2001 03:16 PM|\nBogagrips - yay or nay?\nFor certain fisheries the popularity of a device called \"boga grip\" is increasing. This is particularly true for saltwater fisheries because of the sharpness of the teeth of gamefish in the sea but I am sure they are used in freshwater as well. The device is a metallic gripper for the fish's lip. I have not heard of or read of any documented negative effect from this device but don't use them because it puts all of the stress on a small point on the fish's lip while lifting and allows the fish to thrash about on that tiny area while held out of the water.\nThis is just my opinion - but I don't use them and won't use them. What is your opinion on them? Ever try one?"} -{"text": "Rory Delap shrugs off his tracksuit top, revealing the T-shirt beneath. It is not particularly tight but the short sleeves cling to his upper arms, displaying formidable biceps honed by launching countless panic-provoking long throws deep into enemy territory.\nSince joining Barnsley on loan from Stoke City until the end of the season Delap has tended to ration his party trick. But he will still be curious to see whether Roberto Mancini orders the perimeter advertising hoardings at the Etihad Stadium to be moved closer to the pitch for Saturday's FA Cup quarter-final between Manchester City and David Flitcroft's Championship team.\n\"City moved the hoardings once when I went there with Stoke but I ended up on the bench,\" says Delap who has seen countless goalkeepers and defences struggle horribly with the fallout from his prodigious deliveries over the years.\nIf Flitcroft is more interested in what the 36-year-old midfielder can do with his feet and his brain, Stoke's Tony Pulis turned the throw into an art form and Delap into a minor celebrity.\n\"The thing that was different about Stoke was that it was such a tall team, which obviously helps with throw-ins,\" says Delap, settling into his chair at the mist-shrouded Lancashire country house hotel where Barnsley are recovering from the previous night's 1-1 draw at Burnley. \"At over six foot I was one of Stoke's smallest players and we probably had seven or eight strong headers of the ball. It meant that, from throw-ins, we always had four or five effective attacking options in the box at the same time. Most teams have three or four at most.\"\nA knack honed as a schoolboy javelin champion growing up in Cumbria has meant different things to different managers. \"At Carlisle I'd do it in the last 10 minutes or so if we weren't winning,\" he says. \"It was the same at Southampton but Derby used it to get in behind the defence rather than throw it into the box. Sunderland didn't use it. It works sometimes. One hundred throws might create two goals – it's like corners and free-kicks.\"\nDelap seems sanguine about seeing his game defined by only one aspect of the talent which has earned him a quietly impressive career. \"It doesn't bother me,\" the former Republic of Ireland international says. \"What matters is that I'm playing somewhere.\"\nDespite Barnsley's ongoing struggle to avoid relegation to League One – they are currently third bottom but results have been on an upward trajectory since Flitcroft's appointment in January – he is relishing life at Oakwell. \"The lads' work-rate is ridiculous, up there with the best I've played with, but we've got the quality to play football as well,\" he says. \"We're not stupid enough to say we're going to outplay Manchester City but you've got to hope that on the day we're at our best and they don't perform. We watched City beat Chelsea on television the other week as a team and there were a few lads sweating, a few nervous laughs.\"\nDelap has mixed FA Cup memories. There was the crushing disappointment of 2003 when injury prevented his involvement in Southampton's defeat in the final against Arsenal and the slightly anti-climactic experience of 2011 when he was part of the Stoke side that lost another final, 1-0 to Manchester City. \"City at Wembley was a bit disappointing,\" he says. \"I don't think they were at their best but we let ourselves down. People were a bit lethargic, I don't know if nerves got to us.\"\nDiligence undid Delap's chances of a showpiece appearance for Southampton in 2003. \"I'd done my knee in the quarter-final,\" he says. \"I was on the bench for the semi but didn't feel match fit so I asked to play a reserve game. I've regretted it ever since. I went up for a header and did my ankle so that was my Cup final over. It wasn't the best of times.\"\nFlitcroft, the younger brother of the former City and Blackburn midfielder Garry, is on a mission to bring good times back to Barnsley. \"He's doing a very good job,\" says Delap.\nEver innovative, he took his squad on a scouting mission to Doncaster to watch MK Dons ahead of their fifth-round win against Karl Robinson's side. \"That's never happened to me before,\" says Delap. \"And I've played for a few managers. But it was worth doing. David's brought good new ideas in.\"\nMancini will start worrying if Flitcroft blends an old ploy into Barnsley's bold new blueprint. Shifting position in his seat, Delap stretches slightly and those biceps flex. \"I can still do the throws,\" he says. \"It's a tactic we use sometimes.\""} -{"text": "Source note: Fireworks repository source file copied for code-prompt benchmarking. Path: py/fireworks/test/serving/text/test_formatter.py. Lines: 1465.\n\nimport unittest\nimport json\nimport fireworks.text as firetext\nfrom fireworks.text.api import (\n ChatMessage,\n ChatCompletionMessageToolCall,\n ChatCompletionMessageToolCallFunction,\n ChatCompletionTool,\n ChatCompletionFunction,\n)\nfrom fireworks.serving.text_completion.formatter import DeepSeekChatCompletionResponseFormatter\nfrom fireworks.text.conversation import (\n DEEPSEEK_CONVERSATION_CONFIG,\n DeepSeekConversationStyle,\n JinjaConversationStyle,\n HuggingFaceConversationStyle,\n ToolCallParams,\n)\n\nfrom fireworks.serving.text_completion.formatters import (\n Llama4ChatCompletionResponseFormatter,\n)\nimport transformers\n\n\nclass TestDeepSeekChatCompletionResponseFormatter(unittest.TestCase):\n def setUp(self):\n # Test request metadata\n self.request_id = \"test_id\"\n self.model_name = \"test-model\"\n self.request_time = 123\n\n # Create a conversation style instance (VicunaChat) and set call_id properties if needed\n conv = DeepSeekConversationStyle(transformers.AutoTokenizer.from_pretrained(\"deepseek-ai/DeepSeek-V3-0324\"))\n self.conv = conv\n\n # Create an instance of the DeepSeek formatter with zero stream_buffer_ms for testing\n self.formatter = DeepSeekChatCompletionResponseFormatter(\n index=0,\n request_id=self.request_id,\n model_name=self.model_name,\n request_time=self.request_time,\n stream_buffer_ms=0,\n conv=self.conv,\n )\n\n # Non-streaming tests\n\n def create_choice(self, text, finish_reason=\"stop\"):\n return firetext.Choice(\n index=0,\n text=text,\n logprobs=None,\n finish_reason=finish_reason,\n )\n\n def test_format_non_streaming_choice_with_single_function_call(self):\n # Construct a text that contains a function call in the DeepSeek-specific format.\n text = (\n \"Hello, please get the weather info.\"\n \"<|tool▁calls▁begin|><|tool▁call▁begin|>function<|tool▁sep|>get_current_weather \"\n '```json {\"location\": \"San Francisco\", \"unit\": \"fahrenheit\"} ```'\n \"<|tool▁call▁end|><|tool▁calls▁end|>\"\n )\n choice = self.create_choice(text)\n response_choice = self.formatter._format_non_streaming_choice(choice)\n # Verify that the non-function (regular) text is correctly extracted.\n self.assertEqual(response_choice.message.content, \"Hello, please get the weather info.\")\n # Verify that a tool call is detected and parsed.\n self.assertEqual(len(response_choice.message.tool_calls), 1)\n tool_call = response_choice.message.tool_calls[0]\n self.assertEqual(tool_call.function.name, \"get_current_weather\")\n expected_args = json.dumps({\"location\": \"San Francisco\", \"unit\": \"fahrenheit\"}, ensure_ascii=False)\n self.assertEqual(tool_call.function.arguments, expected_args)\n # The finish_reason should be set to \"tool_calls\" when a function call is processed.\n self.assertEqual(response_choice.finish_reason, \"tool_calls\")\n\n def test_format_non_streaming_choice_with_multi_function_calls(self):\n # Construct a text that contains multiple function calls in the DeepSeek-specific format.\n text = (\n \"Hello, please get the weather info and stock price.\"\n \"<|tool▁calls▁begin|>\"\n \"<|tool▁call▁begin|>function<|tool▁sep|>get_current_weather \"\n '```json\\n{\"location\": \"San Francisco\", \"unit\": \"fahrenheit\"}\\n```'\n \"<|tool▁call▁end|>\\n\"\n \"<|tool▁call▁begin|>function<|tool▁sep|>get_stock_price \"\n '```json\\n{\"stock_symbol\": \"AAPL\"}\\n```'\n \"<|tool▁call▁end|>\"\n \"<|tool▁calls▁end|>\"\n )\n choice = self.create_choice(text)\n response_choice = self.formatter._format_non_streaming_choice(choice)\n # Verify that the non-function (regular) text is correctly extracted.\n self.assertEqual(\n response_choice.message.content,\n \"Hello, please get the weather info and stock price.\",\n )\n # Verify that both tool calls are detected and parsed correctly\n self.assertEqual(len(response_choice.message.tool_calls), 2)\n\n # Verify first tool call\n tool_call_1 = response_choice.message.tool_calls[0]\n self.assertEqual(tool_call_1.function.name, \"get_current_weather\")\n expected_args_1 = json.dumps({\"location\": \"San Francisco\", \"unit\": \"fahrenheit\"}, ensure_ascii=False)\n self.assertEqual(tool_call_1.function.arguments, expected_args_1)\n\n # Verify second tool call\n tool_call_2 = response_choice.message.tool_calls[1]\n self.assertEqual(tool_call_2.function.name, \"get_stock_price\")\n expected_args_2 = json.dumps({\"stock_symbol\": \"AAPL\"}, "} -{"text": "The Schwarzlose machine gun was developed by Andreas Schwarzlose starting in 1902, as an attempt to produce a machine gun simpler and less expensive than the guns then on the market. Schwarzlose achieved this end by using a delayed blowback action, very unusual in machine gun designs. By using a heavy bolt and a lever-delaying system, the design was able to avoid the necessity of a gas or recoil system and its attendant extra components.\nThe Schwarzlose uses a toggle lock that looks at a glance similar to a Maxim or Luger lock, except that this toggle does not act to lock the bolt. Instead, the toggle must be broken and folded before the bolt can travel rearward, thus delaying it for a moment. This delay is long enough to allow chamber pressure to drop to a safe level (assuming everything is done right). This does require use of ammunition with a specific pressure curve, as overpressure ammunition will cause the bolt to open early and rupture cases while underpowered ammunition will simply fail to fully cycle the action. It also required an oil pump to lubricate cartridges to prevent extraction problems. The pump oil tank held a half liter of oil, which was good for about 4500 rounds of firing. In an effort to make the gun more portable, it was designed with a relatively short (20.75 inch / 525mm) barrel, to reduce weight of the barrel, jacket, and water. This meant that the gun had significant muzzle flash, hence the large flash suppressor.\nAlong with those disadvantages, the gun did have some things working in its favor. Since the barrel did not move (like most contemporary recoil-operated actions), it was simpler to incorporate and seal the cooling water jacket. It also had a very sturdy and reliable feed system. In 1912, the design was modified to use a heavier bolt and spring (and slightly modified lever angle in the toggle), thus increasing the time before opening, which reduced the chamber pressure when it did open, which in turn allowed cartridges to reliably extract without being oiled. The most obvious visual distinction between the 1907 and 07/12 guns is the rounded hump on the from of the 1907 receiver, where the 1912 variation was square at the front of the receiver.\nThe gun loads from below and right of the receiver, and ejects empty cases out the lower right of the receiver. Loading the gun when empty requires inserting a belt and manually cycling the action three times while holding pressure on the loose end of the belt to bring the first cartridge into firing position. The feed mechanism consists of a gear-like wheel that holds the cartridges and rotates them up to the chamber and then down to the ejection port. Firing is done by depressing the central dual triggers between the gun’s handles. There is a safety located between the triggers, which must be held to the left by one thumb while firing.\nThe Schwarzlose was the standard heavy machine gun of the Austro-Hungarian army during World War 1, and was also adopted by the Czechoslovakian, Dutch, Serbian, Romanian, Bulgarian, Turkish, and Swedish armies. Italy captured a significant number of the guns, and used them both during and after WWI. Dutch and Czech Schwarzlose guns were chambered for 8×57 Mauser, while the Swedes used them in 6.5x55mm, and the standard Austrian chambering was 8x50R (later changed to 8x56R). Some guns were build in 6.5x54mm for Greece, but these were appropriated by the Austrian government when war broke out in 1914.\nThe Steyr company in Austria purchased the manufacturing rights for the gun in 1905, and built them until 1918. In 1931, Austrian guns were modified to use the new 8x56R cartridge, which provided a significantly higher muzzle velocity (2300fps, instead of about 1900-2000 with the 8x50R). This was done by rechambering the existing barrels. The British company Kynoch also built the Schwarzlose under license as the Kynoch Machine Gun. A number of other smaller-production variants were also made, including cavalry and aircraft guns."} -{"text": "The supervisor is Ira Podell until 8 a.m. The day supervisor will be Fred Lief. The supervisor can be reached at 800 845-8450, ext. 1630. Sports Photos, ext. 1918; graphics, ext. 7636; agate, ext. 1635. AP stories, along with the photos that accompany them, also can be obtained from http://www.apexchange.com. Reruns are available from the Service Desk (800 838-4616) or your local AP bureau. All times EDT.\nSTATE COLLEGE, Pa. — The results of Penn State's internal investigation into the Jerry Sandusky scandal are about to be released, in the form of a report that could answer many of the troubling questions swirling around one of the darkest scandals in sports history. The report being released early Thursday is the product of a team led by former federal judge and FBI director Louis Freeh. By Genaro Armas and Mark Scolforo. Sent.\n— Oregon native Kelsey Campbell is a freestyle wrestler getting ready to compete in the London Olympics. She began wrestling in high school, competing against boy. She's currently training at the U.S. Olympic Training Center in Colorado.\nMIAMI — Ray Allen could have easily taken the comfortable approach and stayed in Boston. He loves the Celtics' fan base. Teammates such as Kevin Garnett and Paul Pierce wanted him with them for another championship push. The doctors who have spent four years caring for his diabetic son are nearby. All compelling reasons. Just not compelling enough to turn down the Miami Heat. By Tim Reynolds.\nLAKE ORION, Mich. — Tom Watson and Fred Couples went into the U.S. Senior Open with two of the same goals. Stay healthy and win. The pair of fan favorites, both shooting for their first U.S. Senior Open title, were to play together along with amateur Douglas Snoap in Thursday's first round at Indianwood. By Larry Lage.\nLAS VEGAS — For now, the United States is again behind the rest of the basketball world. While the opponents they will face in the Olympics have already been playing exhibition games, the Americans haven't even been able to practice the way they want, getting them off to a slow start on the way to London. By Basketball Writer Brian Mahoney.\n— LONDON — OLY--London 2012-Security. By David Stringer. Sent.\n— DOHA, Qatar — OLY--Qatar-Female Flag-Bearer. Sent.\nHOUSTON — Jed Lowrie was eager to become a starter when he was traded to the Houston Astros by the Boston Red Sox in December after several injury-filled seasons that left him in a utility role. Lowrie took over as the everyday shortstop and quickly became one of the high points of Houston's tough first half. By Kristie Rieken.\nAUSTIN, Texas — The U.S. Anti-Doping Agency on Wednesday granted Lance Armstrong an extension of up to 30 days to contest drug charges while the seven-time Tour de France winner challenges the case in federal court. The move erases the Saturday deadline for Armstrong to either send the case to arbitration or accept sanctions from USADA. By Jim Vertuno. AP Photos. Sent.\nLAS VEGAS — No Dwyane Wade, no problem. The player who led the United States to the gold medal against Spain in Beijing is sitting this Olympics out, but there's a lot of reasons to think this team may be as good or even better than the one four years ago. By Sports Columnist Tim Dahlberg. Sent.\nLOS ANGELES — LeBron James collected the biggest trophy of his career when the Miami Heat won the NBA championship. That title run netted him some more hardware at the ESPY Awards. James won a leading three individual trophies, including male athlete of the year, and shared in another at the 20th annual show celebrating the year's best athletes and moments in sports. By Beth Harris.\nLOS ANGELES — Basketball star Jabari Parker has named 10 college programs he's considering with a year to go before he graduates from high school and DePaul in his hometown of Chicago made the cut. Parker tweeted his 10 schools on Wednesday night in no particular order: national champion Kentucky, Stanford, Michigan State, Kansas, Florida, Duke, BYU, Georgetown, DePaul and North Carolina. By Beth Harris.\n— UNDATED — BBO--Second Half Begins. By Jon Krawczynski. Sent.\n— UNDATED — BKN--Free Agency. By Basketball Writer Brian Mahoney. Sent.\n— NEW ORLEANS — FBN--Saints-Brees. By Brett Martel. Sent.\nThursday's Time Schedule (EDT)\nTulsa at Minnesota, 1 p.m.\nLos Angeles at Indiana, 7 p.m."} -{"text": "ensure_ascii=False)\n self.assertEqual(tool_call_2.function.arguments, expected_args_2)\n\n # The finish_reason should be set to \"tool_calls\" when function calls are processed\n self.assertEqual(response_choice.finish_reason, \"tool_calls\")\n\n def test_format_non_streaming_choice_without_function_call(self):\n # A normal response without any function call markup should fall back to default formatting.\n text = \"This is a regular assistant response.\"\n choice = self.create_choice(text, finish_reason=\"stop\")\n response_choice = self.formatter._format_non_streaming_choice(choice)\n self.assertEqual(response_choice.message.content, \"This is a regular assistant response.\")\n # In non-function call case, finish_reason remains as provided.\n self.assertEqual(response_choice.finish_reason, \"stop\")\n # There should be no tool calls added.\n self.assertFalse(response_choice.message.tool_calls)\n\n def test_format_non_streaming_choice_invalid_function_call(self):\n # When the text contains a function call trigger but the content does not match the expected JSON pattern,\n # the formatter should raise a UserError.\n text = (\n \"Regular message\"\n \"<|tool▁calls▁begin|><|tool▁call▁begin|>function<|tool▁sep|> \"\n \"invalid content\"\n \"<|tool▁call▁end|><|tool▁calls▁end|>\"\n )\n choice = self.create_choice(text, finish_reason=\"stop\")\n with self.assertRaises(firetext.UserError):\n _ = self.formatter._format_non_streaming_choice(choice)\n\n def test_format_non_streaming_choice_missing_end_token(self):\n # Test case where the tool calls text is missing the end token\n text = (\n \"Regular message\"\n \"<|tool▁calls▁begin|><|tool▁call▁begin|>function<|tool▁sep|>get_current_weather\"\n \"```json\"\n '{\"location\":\"San Francisco\",\"unit\":\"fahrenheit\"}'\n \"```<|tool▁call▁end|>\" # Missing <|tool▁calls▁end|>\n )\n choice = self.create_choice(text, finish_reason=\"stop\")\n with self.assertRaises(firetext.UserError):\n _ = self.formatter._format_non_streaming_choice(choice)\n\n # Streaming tests\n\n def test_streaming_complete_plain_text(self):\n \"\"\"Test that a plain assistant message (without any tool call markers) streams correctly.\"\"\"\n plain_text = \"This is a test message.\"\n # Create a choice with finish_reason set to \"stop\"\n choice = firetext.Choice(index=0, text=plain_text, logprobs=None, finish_reason=\"stop\")\n self.formatter.append(choice)\n\n # First response should be empty\n responses = self.formatter.next_buffered_stream(flush=True)\n self.assertEqual(len(responses), 1)\n response_obj = json.loads(responses[0])\n self.assertDictEqual(\n response_obj,\n {\n \"id\": \"test_id\",\n \"object\": \"chat.completion.chunk\",\n \"created\": 123,\n \"model\": \"test-model\",\n \"choices\": [{\"index\": 0, \"delta\": {\"role\": \"assistant\"}, \"finish_reason\": None}],\n \"usage\": None,\n },\n )\n\n # Second response should have the complete content\n responses = self.formatter.next_buffered_stream(flush=True)\n self.assertEqual(len(responses), 2)\n response_obj = json.loads(responses[0])\n self.assertDictEqual(\n response_obj,\n {\n \"id\": \"test_id\",\n \"object\": \"chat.completion.chunk\",\n \"created\": 123,\n \"model\": \"test-model\",\n \"choices\": [\n {\n \"index\": 0,\n \"delta\": {\"content\": \"This is a test message.\"},\n \"finish_reason\": None,\n }\n ],\n \"usage\": None,\n },\n )\n response_obj = json.loads(responses[1])\n self.assertDictEqual(\n response_obj,\n {\n \"id\": \"test_id\",\n \"object\": \"chat.completion.chunk\",\n \"created\": 123,\n \"model\": \"test-model\",\n \"choices\": [{\"index\": 0, \"delta\": {}, \"finish_reason\": \"stop\"}],\n # usage is null because coordinator patches real values later\n \"usage\": None,\n },\n )\n\n def test_streaming_complete_plain_text_token_by_token(self):\n \"\"\"Test that a plain assistant message streams correctly when tokens are added one by one.\"\"\"\n tokens = [\"This\", \" is\", \" a\", \" test\", \" message\", \".\"]\n\n # First response should contain the role\n responses = self.formatter.next_buffered_stream()\n self.assertEqual(len(responses), 1)\n response_obj = json.loads(responses[0])\n self.assertDictEqual(\n response_obj,\n {\n \"id\": \"test_id\",\n "} -{"text": "Tiger Woods fired a 7-under 65 on Friday to take sole possession of first place at the WGC - Cadillac Championship.\nThe six-time winner, who was one of five players to own a share of the lead at the end of the first round, sits at 13-under 131 after two rounds at the TPC Blue Monster at Doral. Woods is two shots clear of Graeme McDowell after the 2010 U.S. Open champion carded a 5-under 67 to stand at 11-under 133 for the tournament.\n\"I feel like I'm playing well. I probably hit the ball better at Torrey, but I'm putting better here so it all evens out,\" Woods said in a televised interview. \"With the forecast of wind on Sunday, hopefully I can hit the ball a little bit better and still maintain my balance and feel on the greens.\"\nPhil Mickelson (67) and Steve Stricker (67) share third at 10-under, while Bubba Watson (69) and Freddie Jacobson (69) sit in fifth at minus-9.\nCharl Schwartzel also shot 7-under 65 on Friday to jump into a share of seventh place with Keegan Bradley (68) at 8-under.\nDefending champion Justin Rose was tied with Schwartzel and Bradley with three holes to play, but he closed his round with a bogey at the seventh and a six on the par-3 ninth en route to a 72. He is tied for 27th at 4-under.\nWoods entered the day tied with McDowell, Watson, Sergio Garcia and Jacobson for the top spot, but it was Stricker who first broke through to take the early lead.\nPlaying with one of the earlier groups, Stricker opened his round with a birdie at the 10th before rolling in a 13-foot birdie putt at the 16th to take the outright lead at minus-7.\nWatson, playing in the same group as Stricker, answered with a 5-foot birdie putt at the same hole to join Stricker at 7-under, while McDowell, who also started on the 10th tee, birdied the 17th to join them atop the leaderboard.\nStricker poured in a 4-foot birdie putt at the 17th to again move ahead of the pack before Woods stepped onto the course and stuck his tee shot at the par-3 fourth within five feet, converting the birdie putt to move within one of the lead.\nWoods then hit his second shot at the fifth within three feet and tapped it in to move to minus-8 and grab a share of first place.\nStricker moved one clear of Woods with a 5-foot birdie putt at the first, but stumbled to a bogey at the second to fall back into a tie with Woods and McDowell, who poured in an 11-foot birdie putt at the first to move into a share of first.\nWoods, however, gained the outright lead with a birdie at the seventh before Mickelson put together a string of three straight birdies starting at the first to join him in the lead at 9-under.\nWoods then curled in a 16-foot birdie putt at the eighth -- his fourth birdie in five holes -- to again move ahead of the pack.\nMickelson had a chance to join Woods at 10-under with a 12-foot birdie attempt at the fourth, but he pushed his attempt just wide to stay a shot back.\nMickelson was able to join Woods atop the leaderboard with a 7-foot birdie putt at the fifth, but Woods recovered from a greenside bunker at the 10th and sunk an 8-foot birdie putt to move ahead for good.\nAfter Mickelson failed to convert a 16-foot birdie putt at the sixth to remain a shot back, Woods rolled in a 12-foot birdie putt at the 11th to move two shots clear at 12-under.\nMcDowell was then able to grab sole possession of second place with birdies at the eighth and ninth, coupled with Mickelson's bogey at the seventh.\nThe bogey dropped Mickelson to minus-9, but he hit his tee shot within a foot of a hole-in-one at the ninth to close with a birdie and move into a tie for third with Stricker.\n\"I gave it a little body wiggle, and usually if you give it a little body wiggle you'll get an extra foot or two release out of it,\" Mickelson joked in a TV interview. \"I gave it the body wiggle and it still didn't get that extra foot. That's what I don't get.\"\nWoods traded a birdie at the 13th with a bogey at the 14th to stay one stroke ahead of McDowell at 12-under before he was able to scramble out of a bunker at the 16th and roll in a 9-foot putt for his eighth birdie of the day.\nBack-to-back pars at the 17th and 18th allowed Woods to hold firm at 13-under.\nNOTE: Woods has recorded 17 birdies over his first two rounds, setting a new career high. His previous record was 16 at the 2007 Tour Championship, the 2000 WGC-NEC Invitational and the 1999 GTE Byron Nelson Classic ... World No. 1 Rory McIlroy carded a 3-under 69 on Friday for his first round in the 60s this year. He is currently tied for 32nd at 2-under for the tournament ... Woods was 14-for-14 on putts from inside 10 feet on Friday .. Woods has held or shared the 36-hole lead 45 times in his career and has gone on to win 35 of those tournaments."} -{"text": "The Fresh Egg blog\nLatest digital marketing news\nSo, “what’s been going on in the world of SEO over the last week?” we hear you cry. There’s no need for the SEO news-hungry to fear, Fresh Egg’s Search News Round Up is here. That’s enough rhyming for one day: on with the news…\nSpeculation flared last Friday and Google has since confirmed that a Panda refresh has been deployed, the 23rd version of this quality seeking tweak. Long since established as a routine element of life in search, the update is notable for its proximity to Christmas, though it will have had little effect on Christmas takings considering it came after the majority of final posting dates. The damage assessment: changes to 1.3% of English based queries.\nThis week, Yahoo! introduced a new format to its search results: cost-per-lead (CPL). This means that websites can now add contact forms containing up to six individual fields to their listings within search results. Users can then directly fill in and submit these forms from the SERPs, without even having to visit the website in question, and websites only pay when a form is submitted. Finally, the ‘thank you’ message that appears after the contact form has been filled in is customisable, too. Take a look at the Match.com example in the images below, taken from Yahoo!’s cost-per-lead blog post:\nIn the same post, it’s stated that Yahoo!’s data from October 2012 has suggested that this format “has yielded clickthrough rate increases of 6%”. Sounds like good news to us. But what does this mean for the world of SEO? It means you’ve got more user engagement with a particular site directly from the SERPs and, perhaps even more interestingly, searchers no longer have to actually visit a website for that site in question to capture their vital information.\nEarlier this week, Matt Cutts discussed how Google’s disavow tool should be used if webmasters think their site is being attacked by negative SEO. Although we’d all agree it is good news that there’s a tool out there to disavow negative links to your site, the process of getting these links disavowed is pretty laborious. It’s unlikely that smaller businesses are going to have the time or resource to identify and produce a disavow file each and every time, and even larger businesses may struggle to keep up, should their site be affected by negative SEO on a large scale or recurring basis.\nCheck out the video for yourself and remember to let us know what you think by leaving your comments on this post.\nWant more SERPs real estate for your business? Of course you do! If you’re in the US, Australia, New Zealand, France, Ireland, The Netherlands or Canada, enlist the services of a Google ‘trusted photographer’ and you could see your shiny Google Business Photo appear right next to the business listings in search results (as displayed in the example from TechCrunch below):\nAlthough the indoor Street View images for business have been around for a while, up until this week they’ve been hidden away in local listings and maps. Now, Google is starting to give these photos the chance to take pride of place in the right sidebar of search results. All searchers need to do is click the “See inside” image and they will be taken to indoor Street View. Unfortunately, this feature is yet to be made available in the UK.\nAfter acquiring Meebo in June 2012, the first signs of Google working with the social sharing software and team were seen this week. So far, it’s only been reported by The Next Web, but the example shows the bar being spotted with the new Google+ integration, which allows users to share and comment directly from the site, without being on their Google+ page.\nAn increase in the use of the Meebo Google+ bar would essentially make it easier than ever to share content via Google+, which in turn could well lead to increased sharing of content across the network. If, as many SEOs believe, Google+ sharing supports faster indexation of content, then a new social tool bar that promotes such sharing can surely only be a good thing?\nEveryone may have been talking about the world ending on Friday 21 December, but the SEO world was chattering a week earlier – what on earth happened on 13 December? Was it a major algorithm update? Google says no, but a lot of the signals pointed to ‘yes’. See SEOMoz, Search Engine Land, and Search Engine Roundtable for more.\nAs the last Search News Round Up from us before Christmas, we’d like to take this opportunity to wish you all a fabulous Christmas and the all the best for 2013!"} -{"text": " \"object\": \"chat.completion.chunk\",\n \"created\": 123,\n \"model\": \"test-model\",\n \"choices\": [{\"index\": 0, \"delta\": {\"role\": \"assistant\"}, \"finish_reason\": None}],\n \"usage\": None,\n },\n )\n\n # Add each token and verify the streaming response\n for token in tokens:\n choice = firetext.Choice(index=0, text=token, logprobs=None, finish_reason=None)\n self.formatter.append(choice)\n responses = self.formatter.next_buffered_stream()\n self.assertEqual(len(responses), 1)\n response_obj = json.loads(responses[0])\n self.assertDictEqual(\n response_obj,\n {\n \"id\": \"test_id\",\n \"object\": \"chat.completion.chunk\",\n \"created\": 123,\n \"model\": \"test-model\",\n \"choices\": [\n {\n \"index\": 0,\n \"delta\": {\"content\": token},\n \"finish_reason\": None,\n }\n ],\n \"usage\": None,\n },\n )\n\n # Send final token with stop finish_reason\n choice = firetext.Choice(index=0, text=\"\", logprobs=None, finish_reason=\"stop\")\n self.formatter.append(choice)\n responses = self.formatter.next_buffered_stream()\n self.assertEqual(len(responses), 1)\n response_obj = json.loads(responses[0])\n self.assertDictEqual(\n response_obj,\n {\n \"id\": \"test_id\",\n \"object\": \"chat.completion.chunk\",\n \"created\": 123,\n \"model\": \"test-model\",\n \"choices\": [{\"index\": 0, \"delta\": {}, \"finish_reason\": \"stop\"}],\n # usage is null because coordinator patches real values later\n \"usage\": None,\n },\n )\n\n def test_streaming_eos_token_with_logprobs(self):\n \"\"\"Test that EOS token logprobs are preserved when streaming, even when content is empty.\n\n This test verifies the fix at line 847 in formatter.py where the condition\n 'if assistant_message or choice.logprobs is not None:' ensures that EOS tokens\n with logprobs are included in the response even when the content is empty.\n \"\"\"\n from fireworks.text.choice import LogProbs, TopLogProb\n\n tokens = [\"Hello\", \" world\"]\n\n # First response should contain the role\n responses = self.formatter.next_buffered_stream()\n self.assertEqual(len(responses), 1)\n response_obj = json.loads(responses[0])\n self.assertDictEqual(\n response_obj,\n {\n \"id\": \"test_id\",\n \"object\": \"chat.completion.chunk\",\n \"created\": 123,\n \"model\": \"test-model\",\n \"choices\": [{\"index\": 0, \"delta\": {\"role\": \"assistant\"}, \"finish_reason\": None}],\n \"usage\": None,\n },\n )\n\n # Add tokens with logprobs and flush each one\n for i, token in enumerate(tokens):\n logprobs = LogProbs(\n tokens=[token],\n token_bytes=[token.encode()],\n token_logprobs=[-0.5 + i * 0.1],\n sampling_logprobs=[-0.5 + i * 0.1],\n top_logprobs=[\n [TopLogProb(token=token, bytes=token.encode(), logprob=-0.5 + i * 0.1, token_id=100 + i)]\n ],\n text_offset=[i * 10],\n token_ids=[100 + i],\n last_activations=[None],\n routing_matrix=[None],\n )\n choice = firetext.Choice(index=0, text=token, logprobs=logprobs, finish_reason=None)\n self.formatter.append(choice)\n responses = self.formatter.next_buffered_stream()\n self.assertEqual(len(responses), 1)\n response_obj = json.loads(responses[0])\n self.assertIn(\"logprobs\", response_obj[\"choices\"][0])\n self.assertEqual(response_obj[\"choices\"][0][\"delta\"][\"content\"], token)\n\n # Send EOS token with empty text but with logprobs\n # This simulates the case where EOS token detokenizes to empty string\n # The key test is that logprobs should be preserved even though content is empty\n eos_logprobs = LogProbs(\n tokens=[\"\"], # EOS token detokenizes to empty string\n token_bytes=[b\"\"],\n token_logprobs=[-0.123],\n sampling_logprobs=[-0.123],\n top_logprobs=[[TopLogProb(token=\"\", bytes=b\"\", logprob=-0.123, token_id=2)]],\n text_offset=[20],\n token_ids=[2],\n last_activations=[None],\n routing_matrix=[None],\n )\n eos_choice = firetext.Choice(index=0, text=\"\", logprobs=eos_logprobs, finish_reason=\"stop\")\n\n # Now test the full flow\n self.fo"} -{"text": "For Immediate Release\nFUJIFILM MEDICAL SYSTEMS U.S.A., INC. DEMONSTRATES LATEST INNOVATIONS IN ECHOCARDIOGRAPHY IMAGE MANAGEMENT AND REPORTING AT THE 25th ANNUAL SCIENTIFIC SESSIONS OF THE AMERICAN SOCIETY OF ECHOCARDIOGRAPHY\nStamford, Conn., June 19, 2014 (Booth #301) – FUJIFILM Medical Systems U.S.A., Inc. will demonstrate the next generation of Synapse Cardiovascular, that will allow cardiologists and clinical professionals to enhance patient care through advanced reporting applications at the 25th Annual Scientific Session of the American Society of Echocardiography in Portland, Oregon.\n“With Synapse, our users are able to perform their job more efficiently and ultimately allow them to concentrate more on the patient and improve patient outcomes,” said Jim Morgan, vice president of Medical Informatics, FUJIFILM Medical Systems U.S.A., Inc. “At ASE, we will demonstrate an upcoming clinical reporting platform that will feature a new user interface and layout options that has the potential to benefit your entire practice.”\nFollowing is a summary of offerings:\nSynapse Cardiovascular helps cardiologists in a variety of clinical areas efficiently and confidently interpret images and compose structured reports with a streamlined workflow. The system has powerful capabilities designed specifically for, echocardiography, cardiac catheterization and invasive peripheral vascular, nuclear cardiology, vascular ultrasound, ECG management, CT, and Cardiac MRI workflows. Fujifilm's Synapse Cardiovascular is an essential addition to any clinical workplace. At the show, attendees will also be able to see a works-in-progress demonstration of Synapse Cardiovascular 6.0*, which will showcase intended future functionality for echocardiography.\nFujifilm will also share the benefits of its zero footprint mobile application, Synapse Mobility. The application enables access to Fujifilm’s suite of Synapse products from hand-held devices, in addition to browser independence. Access to non-DICOM information from the Synapse VNA has been added to complete the universal viewing capability from EMRs such as Epic Hyperspace. Synapse Mobility continues to demonstrate its diagnostic capability for both browser and mobile versions.\nTo register for a demonstration at ASE 2014, please visit: http://www.fujimed.com/gateway/ase/2014/registration.html.\n*Synapse Cardiovascular 6.0 will be made commercially available in the U.S. upon receipt of FDA clearance\nFor more information about Synapse, please visit: http://cardiovascular.fujimed.com/\nFUJIFILM Medical Systems U.S.A., Inc. is a leading provider of diagnostic imaging products and medical informatics solutions to meet the needs of healthcare facilities today and well into the future. From an unrivaled selection of digital x-ray systems, to the Synapse® brand of PACS, RIS and cardiovascular products, to advanced women’s health imaging systems, Fujifilm has products that are ideal for any size imaging environment. The Endoscopy Division of FUJIFILM Medical Systems U.S.A., Inc. supplies high quality, technologically advanced FUJINON brand endoscopes to the medical market. FUJIFILM Medical Systems U.S.A., Inc. is headquartered in Stamford, CT. For more information please visit www.fujimed.com and www.fujifilmendoscopy.com.\nFUJIFILM Holdings Corporation, Tokyo, Japan brings continuous innovation and leading-edge products to a broad spectrum of industries, including: healthcare, with medical systems, pharmaceuticals and cosmetics; graphic systems; highly functional materials, such as flat panel display materials; optical devices, such as broadcast and cinema lenses; digital imaging; and document products. These are based on a vast portfolio of chemical, mechanical, optical, electronic, software and production technologies. In the year ended March 31, 2014, the company had global revenues of $23.7 billion, at an exchange rate of 103 yen to the dollar. Fujifilm is committed to environmental stewardship and good corporate citizenship. For more information, please visit: www.fujifilmholdings.com.\nAll product and company names herein may be trademarks of their registered owners."} -{"text": "For the Investor:\nWhat the FASB Learns from Investor Roadshows\nIn a prior FASB Outlook article, I discussed how and why the FASB seeks out investors’ opinions and comments. One of these methods, the investor roadshow, is an important part of how the FASB receives high-level strategic input from investors.\nIn June, a FASB senior investor liaison and two FASB Board members spent a day in New York City in small group meetings with investors. The meetings did not have formal agendas and were not in-depth technical accounting teach-ins.\nInvestor roadshows help us gain insight into ongoing or emerging accounting issues that may exist in the marketsInstead, investors were encouraged to talk broadly about financial reporting and the issues they face in doing their jobs. Given the mission to improve financial reporting for investors, investor roadshows are integral to understanding of whether the FASB is focused on the right areas. These meetings help us gain insight into ongoing or emerging accounting issues that may exist in the markets.\nThe roadshow meetings were set up with a wide range of investors, including sell-side accounting analysts; buyside analysts and portfolio managers at “long-only” funds; and analysts and portfolio managers at hedge funds with varying investment strategies. In each meeting, we traveled to the investors’ locations in order to encourage broader participation.\nIn addition to some brief conversations regarding stock compensation and international convergence, we discussed:\nRevenue Recognition: It is not surprising that revenue recognition is a major focus for investors. Many investors were interested in learning about the possible implications of the new revenue recognition standard (click here for a FASB In Focus) on the industry sectors that they follow.\nA few buyside generalist analysts were intrigued by the idea of potentially getting more top-line comparability between companies that operate in disparate sectors.\nAlso, some pointed out that they will be looking for companies to provide information prior to the effective date about how they will be transitioning to the new standard and what the impact might be on revenue and gross margin trends.\nTaxes: Corporate tax strategies were raised in several meetings. While investors were certainly concerned about strategic issues that are outside the mandate of accounting standard setting, these investors also said that the tax footnote in the financial statements currently is inadequate.\nFor example, one portfolio manager highlighted the recent wave of inversion deals and, as a result, sought more transparency around tax exposures in different national jurisdictions. The tax footnote was identified as one of three areas where the staff and the FASB will attempt to apply the concepts of the Disclosure Framework project to rewrite the tax disclosure requirements.\nI was encouraged that other issues raised by investors during the roadshow are under consideration by the FASB.In addition to revenue recognition and taxes, I was encouraged that other issues raised by investors during the roadshow are under consideration by the FASB. For example, investors raised concerns about defined benefit pension accounting and interest rate risk.\nWhile there were several views on how to improve pension accounting in general, there was a consensus that an improvement to current reporting would be to break out pension costs into operating and nonoperating components.\nInterest rate risk was raised by an individual analyst. While public financial institutions are required to discuss this in the management’s discussion and analysis section of regulatory filings, the disclosures are often not comparable from one organization to another.\nAnother issue raised was research and development costs.\nFor investors looking to participate in future investor roadshows, please don’t hesitate to be in touch with me or either of our senior investor liaisons. They can be reached anytime via email, or you can reach them by calling (203) 847-0700."} diff --git a/llm_bench/gen_load_test.py b/llm_bench/gen_load_test.py index b059129..e701200 100644 --- a/llm_bench/gen_load_test.py +++ b/llm_bench/gen_load_test.py @@ -88,7 +88,7 @@ def routing_headers_for_worker(cfg: Optional[RoutingConfig], worker_idx: int) -> # and in some cases it will batch max seq len of a model, which is the edge case we don't want to benchmark. _DEFAULT_MIN_SEQ_LEN = 1000 _DEFAULT_GAMMA_SHAPE = 0.9 -_DISTINCT_PROMPTS_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), "distinct_prompts_512.jsonl") +_DISTINCT_PROMPTS_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), "distinct_prompts_256.jsonl") _RAGGED_PROMPT_SUFFIX = "\n\nGive me a detailed analysis of the above content." _MAX_SEQ_LEN_CONFIG_FIELDS = ( "max_position_embeddings", From 5a1ed898518cdc6eb8a05ea673159c029dc3efa3 Mon Sep 17 00:00:00 2001 From: James Anderson Date: Tue, 21 Jul 2026 13:54:29 -0700 Subject: [PATCH 10/10] fix(llm-bench): center sampled prompt lengths Shift deterministic gamma quantiles before clamping so their sampled mean matches the requested prompt length. Co-authored-by: Cursor --- llm_bench/gen_load_test.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/llm_bench/gen_load_test.py b/llm_bench/gen_load_test.py index e701200..062df71 100644 --- a/llm_bench/gen_load_test.py +++ b/llm_bench/gen_load_test.py @@ -280,10 +280,15 @@ def build_ragged_prompt_batch( gamma_shape: float, max_prompt_len: int, ) -> list[list[int]]: + target_lengths = [ + gammaincinv(gamma_shape, (index + 1) / (batch_size + 1)) * mean_prompt_len / gamma_shape + for index in range(batch_size) + ] + mean_shift = mean_prompt_len - sum(target_lengths) / batch_size + prompts: list[list[int]] = [] - for index in range(batch_size): - percentile = (index + 1) / (batch_size + 1) - target_len = round(gammaincinv(gamma_shape, percentile) * mean_prompt_len / gamma_shape) + for index, target_len in enumerate(target_lengths): + target_len = round(target_len + mean_shift) prompts.append( build_repeated_chat_prompt_ids( tokenizer=tokenizer,