text:
Alabama Alaska Arizona Arkansas California Colorado Connecticut Delaware District of Columbia Florida Georgia Hawaii Idaho Illinois Indiana Iowa Kansas Kentucky Louisiana Maine Maryland Massachusetts Michigan Minnesota Mississippi Missouri Montana Nebraska Nevada New Hampshire New Jersey New Mexico New York North Carolina North Dakota Ohio Oklahoma Oregon Pennsylvania Rhode Island South Carolina South Dakota Tennessee Texas Utah Vermont Virginia Washington West Virginia Wisconson Wyoming
Research a Carrier
American Marine Express, Inc. AmeriGas Propane, LP Arrowhead Services, Inc. B & T Express, Inc. Barber Trucking, Inc. Bright Trucking Company Bulkmatic, LLC Cargo Solution Express, Inc. Carlos Jose Perez Lagos, Inc. DBA Five Stars Trucking CMS Express, Inc Covenant Transport, Inc. Cowan Systems, LLC Crossfire, LLC Dart Transit Company, Inc. Destiny Transportation, Inc. Drisco, LLC Dunavant Trans Gulf Transportation, LLC Energy Dispatch, LLC Estes Express Lines FedEx Ground FL Transportation, Inc. Foreman Brothers, Inc. Gangloff Industries Inc. Gazic Trucking, Inc. Gemini Transport, LLC GMT Logistic, Inc. Golden Wheel Logistics, Inc. Goudreau Trucking, Inc. Greatwide American Trans-Freight, LLC Heartland Express Inc of Iowa HSB Trucking, Inc. IGS Trans, Inc. Iman Carriers, Inc. J B Hunt Transport Jax Transport, LLC John Christner Trucking, LLC Johnson Trucking, LLC K-Limited Carrier, LTD. Knight Transportation, Inc. KTI, LLC Liquid Box, Inc. M & M Cartage Co., Inc. Marten Transport, LTD. McBurney Enterprises, LLC Meshoppen Transport, Inc. Milton Motors, Inc. N&N Trucking, Inc. New Line Transport, LLC Oakley Trucking, Inc. Pate Trucking Company PepsiCo Inc. Pettisville Grain Co. PGT Trucking, Inc. PI & I Motor Express, Inc. Pilgrim Trucking Co., Inc. Powder River Transportation Services, Inc. Predator Trucking Company Premier Transportation & Warehousing, Inc. Pride Transportation Company, Inc. Puckett Trucking, Inc. Quest Liner, Inc. R&D Transport, Inc. Reyes Trucking, Inc. Robert Heath Trucking, Inc. Ryder Integrated Logistics, Inc. SalSon, Inc. Schneider National Schwans Home Service, Inc. Secord Farms, LLC Shade Trucking, Inc. Smith Trucking, Inc. Sojourner Trucking, Inc. Southern Foods Groups, LLC Sunbelt Transportation, Inc. Sunset Logistics, Inc Sweet Express, LLC Swift Transportation Company Sysco Corp. Tampa Transportation Company, LLC TBS Brokers, Inc The Sygma Network, Inc Tim's Trucking, LLC Touba Transportation, Inc Town and Country Disposal of Western Missouri, LLC Tranco Logistics, LLC Trans Matic, Inc. Transam Trucking, Inc. Tri National, Inc Triple Crown Services Company Tutle & Tutle Trucking, Inc. Twins Trucking, Inc. Tyson Foods, Inc. Universal Truckload, LLC UPS Ground Freight UPS Inc. Upstaging, Inc US Foods US Xpress, Inc. USA Transportation Corp USA Truck, Inc Valiant Contracting, LLC Walmart Inc. Watkins Oil Company, Inc. Western Express, Inc.
For Victims
Essential Truck Safety Solutions
Stop Underrides
Increasing Insurance Minimums
I've Just Been in an Accident – What Do I Do?
Back, Neck and Spine Injuries
Laws in Your State
Federal Trucking Laws
49 CFR 350: Commercial Motor Carrier Safety Assistance Program
49 CFR 382: Controlled Substances and Alcohol Use and Testing
49 CFR 383: Commercial Driver's License Standards; Requirements and Penalties
49 CFR 391: Qualifications of Drivers
49 CFR 392: Driving of Commercial Motor Vehicles
49 CFR 393: Parts and Accessories Necessary for Safe Operation
49 CFR 395: Hours of Service of Drivers
49 CFR 396: Inspection, Repair, and Maintenance
49 CFR 397: Transportation of Hazardous Materials; Driving and Parking Rules
State Trucking Laws
Board-Certified Attorneys
Attorneys with CDLs
Professional Association Leadership
Our Safety Advocacy
Michael Leizerman
Andy Young
Matthew E. Wright
D.J. Young
Rena M. Leizerman
Ellen McCarthy
Joshua Leizerman
Amy Papuga
For LawyersI've Been Involved In a Crash
Truck Accident Laws By State
--- Select a Carrier --- Alabama Alaska Arizona Arkansas California Colorado Connecticut Delaware District of Columbia Florida Georgia Hawaii Idaho Illinois Indiana Iowa Kansas Kentucky Louisiana Maine Maryland Massachusetts Michigan Minnesota Mississippi Missouri Montana Nebraska Nevada New Hampshire New Jersey New Mexico New York North Carolina North Dakota Ohio Oklahoma Oregon Pennsylvania Rhode Island South Carolina South Dakota Tennessee Texas Utah Vermont Virginia Washington West Virginia Wisconson Wyoming
Tell me what happened:
All information is kept confidential.
Tennessee Truck Laws
Personal injury attorney Michael Leizerman is a member of the Tennessee Bar, and has been a licensed Tennessee attorney since 1995. In creating a reputation as an authority on truck accident cases nationwide, Michael often lectures about trial strategies and the nuances of trying a case involving truck driver negligence, and has written a series of books that address the topic of truck litigation. Attorneys across the nation often call upon Michael to help try a case that centers on an accident involving a tractor-trailer, semi-truck or other commercial vehicle.
Located in Nashville, Tennessee
Tennessee Truck Accident Attorney, Michael Jay Leizerman
Nashville, Tennessee, 37201
Every year in Tennessee, nearly 4,000 truck-related accidents leave more than 100 people dead and thousands more injured. From Nashville to Chattanooga, along major freeways such as interstates 75, 65, 24 and 81, trucks make daily travel troublesome for motorists in Tennessee. If you or a family member suffers as the result of a truck accident on one of Tennessee's many miles of highways, contact Michael to ensure that your legal rights are protected.
Trucking Laws
The Federal Motor Carrier Safety Regulations (Title 49, Parts 350-399) govern all vehicles engaged in interstate traffic.
There are some situations where a tractor-trailer or other commercial motor vehicle is involved in only intrastate travel. For example, an appliance store in Tennessee may own a truck that only makes in-state deliveries.
The Tennessee Department of Public Safety has adopted Title 49, Parts 382, 383, 384, 390, 391, 392, 393, 394, 395, 396, 397, 398, and 399 of the federal regulations.
For an overview of laws that affect trucks operating only in Tennessee, visit our Tennessee Trucking Laws page.
The attorneys at The Law Firm for Truck Safety work on truck accident litigation across the United States. As experienced truck accident lawyers, we are often called by other lawyers to "co-counsel" in a case. If you have been injured in a truck accident, or are a lawyer seeking co-counsel, we welcome your inquires! Fill out a web form to Contact a Truck Accident Lawyer, or phone us directly at 1-800-628-4500.
Copyright © TruckAccidents.com 2021.


text:
Q: How do I make nginx wait for my upstream service to start up in a Docker Swarm? I deploy an nginx proxy service and a rails app service into a docker swarm. The nginx depends on the app in my docker-compose file.
My nginx.conf file directs traffic to my upstream app service (exposed on port 3000) like so (only showing the upstream part).
upstream puma {
  server app:3000;
}

My docker-compose file looks like so:
version: '3.1'

services:

  app:
    image: my/rails-app:latest
    networks:
      - proxy

  web:
    image: my/nginx:1.11.9-alpine
    command: /bin/sh -c "nginx -g 'daemon off;'"
    ports:
      - "80:80"
    depends_on:
      - app
    networks:
      - proxy

networks:

  proxy:
    external: true

My host is setup to be swarm manager.
This all works totally fine - there are no problems.
However, even though I have a depends section in my docker-compose file - the app service may not be completely (?) ready by the time the nginx service starts up, so when the upstream service config part tries to DNS resolve "app:3000", it seems like it is not finding it completely. So when I visit my site, I find the following error message in my nginx logs:
2017/02/13 10:46:07 [error] 8#8: *6 connect() failed (111: Connection refused) while connecting to upstream, client: 10.255.0.3, server: www.mysite.com, request: "GET / HTTP/1.1", upstream: "http://127.0.53.53:3000/", host: "preprod.local"

If I kill the docker container that is running the nginx service, and swarm reschedules it a moment later and it returns, if I then visit the same URL it works completely fine, and the request is passed successfully upstream to app:3000.
How can I prevent this from happening - where the startup timings are out by a little bit and at the time when nginx starts it can't yet properly resolve my swarm service called app:3000 - and instead it is attempting to pass the traffic onto an IP address ....
BTW - the same happens if I reboot my virtual machine - when docker (in swarm mode) brings up the services again - I can end up with the same problem. Restarting the nginx container solves the problem.

A: I have figured out a way to do this - and this is to use the HEALTHCHECK section of the Dockerfile, or docker-compose file.
First of all, it seems as if the depends_on option isn't really used when deploying a stack with
docker stack deploy -c docker-compose.yml mystack

Docker in swarm mode would just restart a service task if it wasn't able to start properly or failed for some other reason. So the depends_on options isn't really that useful.
So this is my solution in the end, and so far it works very well:
version: '3.1'

services:

  app:
    image: my/rails-app:latest
    networks:
      - proxy

  web:
    image: my/nginx:1.11.9-alpine
    command: /bin/sh -c "nginx -g 'daemon off;'"
    ports:
      - "80:80"
    networks:
      - proxy
    healthcheck:
        test: ["CMD", "wget", "-qO-", "http://localhost/healthcheck"]
        interval: 5s
        timeout: 3s
        retries: 3

networks:

  proxy:
    external: true

So what I do is, from the nginx server I try access a route on my Rails app - I created one called /healthcheck and it returns a status code of 200.
So when I try and access it, and the result is a failure (the app server is not ready yet) - nginx will be restarted. Hopefully when it starts up again, the app server will be available, and the upstream app:3000 directive will do a correct DNS resolve.
So in this way I've "hacked" together the (missing) depends_on behaviour that could work in swarm mode.

A: depends_on option doesn't wait for the container to be ready, only until it's running. https://docs.docker.com/compose/startup-order/
There are two more options.

*

*Starting from Compose v2.1 it is possible to include healthcheck in depends_on option. https://docs.docker.com/compose/compose-file/compose-file-v2/#dependson

*You can do the same using external tools like dockerize or wait-for-it.

A: You can use this image: https://hub.docker.com/r/atomgraph/nginx
It supports $UPSTREAM_SERVER and $TIMEOUT parameters (as environmental variables).

redpajama_set_name: RedPajamaStackExchange


Web Push Notifications are the new opt-in method used by marketers and various brands. If not used the right way, this can increase the opt-out or unsubscribe rate of users and thus it can be 'annoying'. Browser notification can get you more click-through rate when compared to newsletters or email notifications.
These Web Push Notifications are currently in a progressive state and are integrated with almost anything and everything for faster communication, and engaging users. Read to know what are the 5 types of Push Notifications that users enjoy in real.
Research shows that sending powerful and segmented web push notification messages to improve your push notification metrics. But, note that the conversion rate is also dependent on certain factors including the objective of the messages sent, the time, number of notifications delivered, open and click-through rate on push notification messages sent, and other variables. Yet, you can drive higher Conversion Rate with push notifications if you keep an eye on certain other proven factors.
There are basically two types of Push Notifications. A) Personalized Push Notification where the users will get custom tailored and scheduled automated push notifications so that it will lead to certain actions among the users. B) Behavior-based contextual notifications where users receive push notifications based on their behavior or their previous actions etc. Take a deeper look at some proven tips that you must know to get a higher conversion rate in Push Notifications.
Set specific goals and stay focused on your campaigns before you send any push notification. You should have a clear picture as to what your goals are. You can have many goals while you start a campaign that includes how to increase customer engagement with web push notification campaigns, re-engaging the lapsed users, drive-in some user activity etc. Now, when goal is to increase the conversion rate in push notifications, you should be capable of creating such direct and powerful messages that will make the user click on it and gets converted. Create messages that call for immediate action. Use 'Call to action' words and phrases in your message that will entice the users to click the message which in turn gets you higher conversion rate.
You are aware that push notification messages have limited characters and so it is quite challenging to convey your entire message. So, it becomes your challenge to get your users to know the message rightly without any havoc. Ensure that you do not send non-intrusive notifications; instead, the content in the notification should be focused. Such messages are likely to derive the desired action from the users and apparently, it will lead to more conversion. Get to know how to send push notification messages that really works?
It is always recommended to plan strategies in such a way that you get through the user intentions and succeed in converting your users. Create personalized push notification messages using segmentation. It will help the user connect with you more easily resulting in an action. Do not send a single message to all your users. Instead, send messages to a target audience who has previously shown a preference for the kind of messages you are going to send. Retargeting users by sending personalized messages can get them back to you thus increasing the conversion rate. You can send any of those special offers available only to those users who would like to receive them. For example: if a user has left your website without completing an action for say by adding a product to the cart or looking for flight tickets and left without booking, you can alert the user with messages similar to his/her these previous actions.
Sending push notifications to your users at the right time can help to increase conversion rate up to 25%! You can schedule your messages and this will enhance better performance and desired result. Choose the right time when the users are active and you can segment them accordingly so that your messages get converted. With PushEngage this is not a big task at all. The dashboard gives you the complete insight on what time your users are likely to click the notification, what time they are most active, and which time of the day you get the highest Conversion Rate. This will help you decide on the right timing. Further, you can use Autoresponders, and send them notifications exactly 24 hours, 48 hours later, or at the same time of the day when they visited your site the first time.
You need to analyze your push campaign performances to know if you are getting it the right way. If you find that the performances of your push notification messages are not hitting the bull's eye, then you need to check on what's wrong and bring on new methods. You can experiment by sending more creative messages, re-segmenting your users, checking on their changed preferences, etc. This will help you get a better conversion rate. Conclusion Based on average statistics, the conversion of the subscription users to push notification messages seem to be almost 30% higher than that of the subscription to the email. So, go and check on these tips to get a higher conversion rate in your push notification messages.


I was wondering if there was a JS event that told me when the Optimizely experiment code finished running?
Similar to this thread, but that was asking for Initialization.
I'm looking for this callback because we have elements that are "visibility":"hidden" across multiple pages.
I would like to make those elements "visibility":"visible" after the experiment code finishes without having to include that line in every experiment.
Thanks for reaching out with your question. Optimizely variation code will run on the page when the identified element is present. Is the concern that the changes won't be made when the variation code is ran? Are you looking to change the visibility through Optimizely or natively on your site after Optimizely is done running?
The goal is to change visibility after Optimizely is done running (hence the callback).
There was an experiment wide JS code section, but there's no all-experiments wide code section.
This caused us to write the natively on our side.


text:
Mit Wächteramt kann Verschiedenes gemeint sein.

 das Amt eines Wächters
 im Sozial- und Familienrecht die staatliche Einstandspflicht für die Gewährleistung des Kindeswohls
 in der Theologie das "kritische Wächteramt" der Kirche im Sinne der Königsherrschaft Christi (im Gegensatz oder als Ergänzung zur Zwei-Schwerter-Theorie bzw. Zwei-Reiche-Lehre)

redpajama_set_name: RedPajamaWikipedia


Howdy folks, Jana here. I'm back with another Marci card, and this time she's hit the ice! Presenting, Ice Skating Marci, isn't that little plaid skirt adorable?? I love paper piecing!!
I used some Cosmo Cricket Mitten Weather dp for my background, and another piece from the same pack to make Marci's skirt. I colored her with Copics, and cut her out. To build my scene, I started with the background, and the oval cut from shimmery white paper (which is what Marci was also stamped on...it works fabulous for copics!!) to make my ice rink. Then, I sponged the edges of 2 darker trees, added some polar white flowersoft to one side (because the sun melted it on the sunny side!) and put them BEHIND my ice. next, I used to ligther green trees (also sponged and snowed) to enclose my rink a little more. Finally, I added the felt snowdrift at the bottom to hem in the last bit of the rink.
And if you're in the area, join us at a Trunk Show at Scrapbook Island in San Jose, CA on Friday, November 5th!! Both Eric and Irina will be there to introduce the Marci and Luka stamps!!
Don't miss out on this FUN party!! Stop by Scrapbook Island or call the store at 408-978-8900 to purchase your tickets!!
Oh wow Jana, those trees and the snow are so PERFECT for this iceskating princess =D LOVE IT!!
This is way cool! Lvoe all those trees!!
Your trees and snowy hills are awesome! I love Marci's paper pieced skirt, too! Awesome card!


Our affordable access gives you more reasons to smile.
Insurance may reimburse you up to $2440 of the cost of your Invisalign® treatment.
These are sample cases only.
Use pre-tax dollars in your Flexible Spending Account (FSA) or Health Savings Account (HSA) towards your Invisalign® treatment.
Ask about our flexible, affordable monthly payments. We offer 24 months same-as-cash with no down-payment4.
Click here to see if you are pre-approved* for monthly financing.
*Doesn't impact your credit score.


The monkey birthday invitations are incredibly popular in use because it is very awesome design with beautiful apperance. I'd like to share the monkey birthday invitations on granizmondal to get you inspired if you haven't chosen design yet.
This monkey birthday invitations is being packed with amazing ideas. So, we hope this monkey birthday invitations will inspire you to make on in your invitation, too. Look at the ideas below and get inspired!


text:
Timberwolves lose third straight as Karl-Anthony Towns exits with calf strain
He left the game after suffering an apparent non-contact injury while running back on defense.
Minnesota Timberwolves guard Anthony Edwards is fouled by Washington Wizards forward Deni Avdija in the first half Monday, Nov. 28, in Washington, D.C. Edwards had 29 points and eight rebounds in the 142-127 loss.
Geoff Burke / USA Today Sports
The only good news for the Minnesota Timberwolves came in the fourth quarter, when the team announced Karl-Anthony Towns' third-quarter exit was due to a right calf strain.
That would be the best-case scenario for the Timberwolves' big man, who left the game after suffering an apparent non-contact injury while running back on defense that left him unable to put any weight on his right leg.
"Obviously super concerned about that. Big blow for us," said Timberwolves coach Chris Finch, who did not receive any further clarity on the injury immediately after the game. "Hopefully (a calf strain is) where it comes down. We'll have it evaluated (Tuesday)."
ESPN's Adrian Wojnarowski tweeted that "there's some early optimism" from sources that Towns "may have avoided a substantial injury to his lower right leg."
"KAT's tough. When he went down, I had faith that he was good," Wolves guard Jaylen Nowell said. "Yeah, it was great though, great that he avoided serious injury. Hopefully he can get back out there as soon as possible."
Minnesota Timberwolves center Karl-Anthony Towns (32) is helped off the court by Timberwolves center Rudy Gobert (27) and a member of the Timberwolves staff after being injured in the third quarter Monday, Nov. 28, 2022, against the Washington Wizards.
That diagnosis would be far better than the scenarios likely running through the minds of most fans as Towns writhed on the floor. Still, even a calf strain would sideline Towns at least for a while.
That means Minnesota will have to dig itself out of its current rut without one of its best players. Because Monday's 142-127 road loss to the Wizards mimicked Sunday's slaughter against Golden State in all the worst ways. It was Minnesota's third straight loss, a cold snap that comes directly on the heels of a five-game winning streak.
Minnesota (10-11) again appeared unable to match up with its opponent, which generated easy open looks throughout the contest. And Washington (11-10) — specifically, Kristaps Porzingis — hit the majority of those shot attempts.
Porzingis finished with 41 points, with 29 of those coming in Washington's 77-point first-half performance. The skilled center was showered with MVP chants from his home crowd by game's end. Porzingis' early offense came via a simple formula. He was guarded by Rudy Gobert, so Porzingis would hang out on the perimeter and fire at will from deep over Gobert, who was playing back to protect against the drive.
The results: Splash, splash, splash.
It seems as though more opponents than not have the personnel necessary to give Minnesota's big lineup issues by stretching the floor and putting Gobert and Towns in uncomfortable situations.
Minnesota will now see if it can find defensive solutions by slotting in more traditional lineups — perhaps those featuring the likes of Kyle Anderson at the power forward spot alongside Gobert during Towns' absence. But size certainly wasn't the only issue Monday. The defense experienced zero improvement once Towns exited.
Towns' injury is just the latest ding for Minnesota, which was again without Jaden McDaniels, Taurean Prince and Jordan McLaughlin on Monday.
Washington scored 65 second-half points, meaning the Wolves have surrendered 65-plus points in three of their last four halves of basketball. The Wizards shot 57 percent from the field as a team, while going 15 for 31 from deep.
While much of that was Porzingis on Monday, nearly every player for Washington defensively had no issue breaking down Minnesota's perimeter defense, regardless of who was on the floor.
"On-ball defense has got to be better. It's just gotta be better," Finch said. "They did a good job with Porzingis. They were able to pull Rudy away from the basket. Then they made it a drive game. We just gotta settle in. When we did a good job of containing the drive, I thought we were really good. But it wasn't consistent enough."

redpajama_set_name: RedPajamaCommonCrawl


text:
MUSEUM.HU » Ferenczy Museum - House of Popular Arts
Ferenczy Museum - House of Popular Arts - Szentendre
Address: 2000, Szentendre Rákóczi Ferenc u. 1.
Phone number: (20) 779-6657, (26) 920-990
E-mail: kozmuvelodes@femuz.hu
Opening hours: 01.04-30.09.: Wed-Sun 10-14
The location of the Ethnographic and Folk Art Exhibition of the County is in one of the nicest buildings of Szentendre. Temporary exhibitions open here in every two year. Its aim is to present the material of Pest County synthesized according to regions.
The building was brought from the Catholic Church in 1974. After it was renovated, the museum in it opened in 1977.
The building was built for a school in 1779. It had two classrooms and two teachers. In the fire of 1800, the roof burned down. After it was fixed it turned out, that the school was too small for the 200 students and a new school was built on the Templom Square. The old school building was converted into a flat for the teachers. From 1845 until the 1960's the sexton lived there.
Doll Exhibition
further exhibitions


FUSION IS BUILT UPON A SOLID FOUNDATION OF ARTISTIC EXCELLENCE AND TECHNICAL INGENUITY. PRODUCING STUNNING VISUAL CONTENT FOR ANY MEDIA PLATFORM IS THE HEART AND SOUL OF OUR CULTURE. COMMITTED TO OUR CLIENTS, OUR PEOPLE AND TELLING GREAT STORIES, WE CONTINUE TO EVOLVE AS A GO-TO RESOURCE FOR STUDIOS, INVESTORS, AND DEVELOPERS THAT DEMAND STANDOUT VISUAL CONTENT. When Fusion opened in 2010, our main goal was to create visually striking and engaging designs across all media – an ambition that remains true to this day. Our solid pipeline and flexible production model is designed to easily expand and adapt as we create clever designs from initial branding to advertising materials and beautifully-built spaces. The team at Fusion consists of architects, interior designers, graphic designers, concept developers, illustrators, animators, video producers and marketing managers. Due to the diversity of our team we provide our clients intelligent, well-tailored designs and our own brand of collaborative genius.


We consider the problem of estimating the parameters of a Gaussian or binary distribution in such a way that the resulting undirected graphical model is sparse. Our approach is to solve a maximum likelihood problem with an added l1-norm penalty term. The problem as formulated is convex but the memory requirements and complexity of existing interior point methods are prohibitive for problems with more than tens of nodes. We present two new algorithms for solving problems with at least a thousand nodes in the Gaussian case. Our first algorithm uses block coordinate descent, and can be interpreted as recursive l1-norm penalized regression. Our second algorithm, based on Nesterov's first order method, yields a complexity estimate with a better dependence on problem size than existing interior point methods. Using a log determinant relaxation of the log partition function (Wainwright and Jordan, 2006), we show that these same algorithms can be used to solve an approximate sparse maximum likelihood problem for the binary case. We test our algorithms on synthetic data, as well as on gene expression and senate voting records data.


text:
Back John Steinbeck: The Grapes of Wrath and Other Writings 1936–1941 Print
John Steinbeck: The Grapes of Wrath and Other Writings 1936–1941
The Grapes of Wrath | The Long Valley (stories) | The Log from the Sea of Cortez | The Harvest Gypsies More
Edited by Elaine Steinbeck and Robert DeMott
"This corrected edition of The Grapes of Wrath is essential for all serious American literature collections." — Library Journal
New life of John Steinbeck reveals a writer "fueled by anger"
The Grapes of Wrath at Seventy-Five: 1939–2014
The second volume in the Library of America's authoritative edition of John Steinbeck features his acknowledged masterpiece, The Grapes of Wrath. Written in an incredibly compressed five-month period, the novel had an electrifying impact upon publication in 1939, unleashing a political storm with its vision of America's dispossessed struggling for survival. It continues to exert a powerful influence on American culture, and has inspired artists as diverse as John Ford, Woody Guthrie, and Bruce Springsteen. Tracing the journey of the Joad family from the dust bowl of Oklahoma to the migrant camps of California, Steinbeck creates an American epic, spacious, impassioned, and pulsating with the rhythms of living speech. The novel won the Pulitzer Prize and has since sold millions of copies worldwide.
This text of The Grapes of Wrath has been newly edited based on Steinbeck's manuscript, typescript, and proofs. Many errors have been corrected, and words omitted or misconstrued by his typist have been restored. In addition, The Harvest Gypsies, his 1936 investigative report on migrant workers, which laid the groundwork for the novel, is included as an appendix.
The Long Valley (1938) displays Steinbeck's brilliance as a writer of short stories, including such classics as "The Chrysanthemums," "The White Quail," "Flight," and "The Red Pony." Set in the Salinas Valley landscape that was Steinbeck's enduring inspiration, the stories explore moments of fear, tenderness, isolation, and violence with poetic intensity.
The Log from the Sea of Cortez, an account of the 1940 marine biological expedition in which Steinbeck participated with his close friend Ed Ricketts, is a unique blend of science, philosophy, and adventure, as well as one of Steinbeck's most revealing expositions of his core beliefs. First published in 1941 as part of the collaborative volume Sea of Cortez, Steinbeck's narrative was reissued separately a decade later, augmented by the moving tribute "About Ed Ricketts."
This volume contains a newly researched chronology,
notes, and an essay on textual selection. It is the
second of four volumes in The Library of America
edition of John Steinbeck's writings.
The editors of this volume are Robert DeMott and Elaine A. Steinbeck (1914–2003). Robert DeMott is the Edwin and Ruth Kennedy Distinguished Professor at Ohio University and the author of Steinbeck's Typewriter, an award-winning book of critical essays. Elaine A. Steinbeck, co-editor of Steinbeck: A Life in Letters, was married to John Steinbeck from 1950 until his death in 1968.
The Long Valley
The Chrysanthemums
The White Quail
The Harness
Johnny Bear
The Murder
St. Katy the Virgin
Red Pony
The Leader of the People
The Log From the Sea of Cortez
About Ed Ricketts
Appendix (Collected as Their Blood Is Strong)
Starvation Under the Orange Trees
John Steinbeck: Novels and Stories 1932–1937 LOA N°72
John Steinbeck: Novels 1942–1952 LOA N°132
John Steinbeck: Travels with Charley and Later Novels 1947–1962 LOA N°170
John Dos Passos: U.S.A. LOA N°85
Thornton Wilder: The Bridge of San Luis Rey & Other Novels 1926–1948 LOA N°194


text:
Q: Why case pattern matching anonymous functions can have two signatures, and have magical call-site compatibility In Scala, the pattern matching anonymous function keeps surprising me. I just discovered the following behaviors, and I wanna know how to understand it.
It seems, the parameter signature of the anonymous function { case (a, b) => (b, a) } can be annotated both as a single tuple parameter and a tuple of parameters:
scala> ({ case (a, b) => (b, a) }: ((Int, Int)) => (Int, Int))
val res1: ((Int, Int)) => (Int, Int) = $Lambda$1160/0x0000000801127040@689fe2a3

scala> ({ case (a, b) => (b, a) }: (Int, Int) => (Int, Int))
val res2: (Int, Int) => (Int, Int) = $Lambda$1161/0x000000080106e840@1784d711

Notice res1 has a tuple parameter, while res2 has two parameters. Why is that? Is this behavior defined in language specs? (Sorry didn't check out yet, it seems too dense for me at the moment.)
Also, the res1 function magically accepts both a tuple argument and two arguments at call-site.
scala> res1((1,2))
val res3: (Int, Int) = (2,1)

scala> res1(1,2)
val res4: (Int, Int) = (2,1)

In comparison, res2 won't accept a tuple argment:
scala> res2((1,2))
           ^
       error: not enough arguments for method apply: (v1: Int, v2: Int): (Int, Int) in trait Function2.
       Unspecified value parameter v2.

What's going on here? Why res1 can change its signature as it sees fit?

A:
Is this behaviour defined in language specs?

It does not seem to be specified according to open issue Spec doesn't mention automatic tupling #3583

What's going on here? Why res1 can change its signature as it sees fit?

This feature is called auto-tupling. It might make some call-sites more natural as discussed in Remove Two Warts: Auto-Tupling and Multi-Parameter Infix Operations #4311
(x, y) == z
z == ((x, y))    // !yuck

Many argue for its removal/restriction, for example, Let's drop auto-tupling.
Compiler flag -Xlint:adapted-args can warn when auto tupling happens, for example
➜  ~ scala
Welcome to Scala 2.13.3 (OpenJDK 64-Bit Server VM, Java 1.8.0_265).
Type in expressions for evaluation. Or try :help.

scala> def foo (x: (Int, Int)) = x
def foo(x: (Int, Int)): (Int, Int)

scala> foo (1,2)
val res0: (Int, Int) = (1,2)

scala> :replay -Xlint:adapted-args
replay> def foo (x: (Int, Int)) = x
def foo(x: (Int, Int)): (Int, Int)

replay> foo (1,2)
        foo (1,2)
            ^
On line 2: warning: adapted the argument list to the expected 2-tuple: add additional parens instead
                signature: foo(x: (Int, Int)): (Int, Int)
          given arguments: 1, 2
         after adaptation: foo((1, 2): (Int, Int))
def foo(x: (Int, Int)): (Int, Int)
val res0: (Int, Int) = (1,2)

Another related flag is -Xlint:multiarg-infix, for example
➜  ~ scala
Welcome to Scala 2.13.3 (OpenJDK 64-Bit Server VM, Java 1.8.0_265).
Type in expressions for evaluation. Or try :help.

scala> def % (a: Int, b: Int) = (a,b)
def $percent(a: Int, b: Int): (Int, Int)

scala> :replay -Xlint:multiarg-infix
replay> def % (a: Int, b: Int) = (a,b)
            ^
        warning: multiarg infix syntax looks like a tuple and will be deprecated
def $percent(a: Int, b: Int): (Int, Int)

A: Scala will automatically convert an argument list to a tuple if required:
def f(arg: (Int, Int)) = ???

f(1, 2) // OK

It will not do the reverse conversion
def g(a: Int, b: Int) = ???

g((1, 2)) // Error "not enough arguments for method"

Needless to say there is some debate over this feature...

A: The other two answers are right that auto-tupling lets you pass in 2 arguments as if they were a tuple to res1, but they don't explain why res1 and res2 can have different types when they were created with the same function literal.
One nice thing about using pattern matching functions is that even when your function accepts multiple arguments, you can treat them as a single tuple and pattern match on that. (See Pattern Matching Anonymous Functions). Your type annotation tells the compiler that res2 has 2 Int parameters, so it basically turns your function literal into this (it tuples the arguments before pattern matching on them):
(arg1, arg2) => (arg1, arg2) match {
  case (a, b) => (b, a)
}

Whereas res1 is kept basically the same, since it accepts a single tuple input anyways:
tuple => tuple match {
  case (a, b) => (b, a)
}


Norovirus, a virus that causes gastrointestinal illnesses such as diarrhea and/or vomiting.
Salmonella, a bacterial disease that affects the intestinal tract.
Listeria infection, a bacterial illness that can be very serious for pregnant women and individuals with weaker immune systems.
In a country where food safety policies are rigid, why are so many Canadians getting sick? The problem is that Canadians have become less aware of food safety rules and best practices. In fact, seniors and pregnant women don't often feel like they're at a greater risk of food poisoning despite their impaired immune system. But, this couldn't be further from the truth.
Following food safety best practices doesn't have to be complicated. Here are 5 simple tips for keeping your food safe to help prevent getting a food-borne illness.
1. Always Wash Your Hands Before Preparing Food.
Follow the steps below to wash your hands the right way.
Lather your hands by rubbing them together. Make sure to get between your fingers and under your nails.
Rinse your hands under clear, running water.
Dry your hands with a clean towel or air dry.
Reduce gastrointestinal illness in people with weakened immune systems by 58%.
Reduce the number of people who get sick with gastrointestinal diseases by 31%.
Reduce respiratory illnesses, like colds, in the general population by 16-21%.
Raw chicken is often contaminated with Campylobacter bacteria, and sometimes with Salmonella or Clostridium perfringens bacteria that can lead to food poisoning. So, before you touch anything else in your kitchen – including food, knives, cooking utensils, and handles – always remember to wash your hands.
To avoid contaminating your vegetables with the bacteria found in raw meat and chicken, use two cutting boards – one for your raw meat, and one for your vegetables.
Before and after you prepare your food, sanitize your countertops, cutting boards, and utensils by wiping them with a kitchen sanitizer or a bleach solution. Make sure to rinse all items with water.
Bacteria can also grow in your reusable grocery bags. If you're able, throw them in the washing machine or hand-wash them frequently.
Bacteria can also be found in the soil that fresh produce is grown, and will attach itself to the produce. Therefore, it's always advisable to wash all fruit and vegetables before you eat them. Do not use soap to wash your produce; instead, just run them under running water or use a natural fruit and vegetable wash.
Follow these five simple tips and you'll help reduce your risk of getting food poisoning. If you require additional help or want to learn more, you can contact a dietitian. Dietitians can help make sure that you're not only eating right, but preparing your food in a safe way.
previous post: PSW vs. HSW: Do You Know the Difference?


Saturday morning, we decided to take a drive down some country roads between Shilo and Brandon. You can see the Brandon Hills in the distance.
We had to get one stereotypical Manitoba scenery shot!
And of course this one of a country road stretching out for miles.
It was a beautiful day, with clear blue skies.
The leaves on the trees were just starting to change colour.
these two Blue Herons had already taken flight.
Later in the day, we went into Brandon and toured Crow's General Store. What an amazing place that is! Watch for it in tomorrow's post.
Saturday Snapshot - Puppy Overload!
Saturday Snapshot - Howdy Neighbours!


The key to achieving energy savings in your home is a whole-house energy efficiency plan. Taking a whole-house approach to saving energy ensures that dollars you invest to save energy are spent wisely. Try our Conserve101 resources and start saving today.