text:
Xmonad/Config archive
Quick Introductions to Haskell
For a brief overview of haskell syntax, see Tour of the Haskell Syntax. For style suggestions and explanations of how to use layout aka whitespace, see Ian's Guide to Good Haskell Style and this wikibook regarding indentation and whitespace. For more in-depth treatments of Haskell syntax and learning how to program in Haskell, see the sidebar Learning
links on haskell.org.
XMonad Configuration Examples
For more screenshots see the Xmonad/Screenshots archive.
EwmhDesktops users upgrading to xmonad-0.9.* , please note layoutHook, handleEventHook, startupHook change. For more information about how to update your Ewmh configuration, and other changes that may require edits to xmonad.hs
, see the 0.9 release changelog.
Template xmonad config files
- /Template xmonad.hs (0.9) -- (Or for darcs: /Template xmonad.hs (darcs))
The template xmonad.hs file shows all the default xmonad settings; it is merely a slightly modified reference copy of the XMonad source module which sets up the configuration. Note that while this file is usable, it contains lots of uneeded extra settings; these can and in the past have caused problems when changes are made to handle e.g. upgrades to utilities such as dmenu
, so you should remove anything that you are not specifically changing.
For a plain text version of the template see the man/xmonad.hs
file distributed with xmonad source, or you can
download the latest darcs template xmonad.hs from
Minimal xmonad config files
The Arch Linux introduction to configuring XMonad is a good place to start.
Also see the John Goerzen tutorial for an example of customizing a minimal xmonad.hs like the following:
import XMonad
main = xmonad defaultConfig
{ modMask = mod4Mask -- Use Super instead of Alt
, terminal = "urxvt"
-- more changes
Configs requiring the darcs (development) version of XMonad
- /adamvo's xmonad.hs (darcs)
- XMobars for multiple screens (xmobar>0.9.2), mediaKeys, SubLayouts, TopicSpace, support for replacing and temporarily running other window managers, extensive gridselect usage.
- /And1's xmonad.hs (darcs)
- mirrored layout, manageHook, dynamicLog with dzen, conky piped into dzen,
- urgency hints, perWorkspace layouts, gimpLayout, PP for dzen and xmobar,
- custom keys with application shortcuts and mpd controls, gridSelect.
- /Brent Yorgey's darcs xmonad.hs (darcs)
- Tons of cruft accumulated over many years of using xmonad; probably everyone can find something in here that interests them! Features annotations showing which contrib modules are being used where, to make it easier to figure out how to use a given contrib module, or how to pull out little pieces of functionality for use in your own config.
- /hgabreu's xmonad.hs (darcs)
- One screen, SubLayouts, FadeInactive (with custom toggle fade), case insensitive shell prompt, heavy manageHook and keybindings customization.
- /loupgaroublonds xmonad.hs (darcs)
- Gnome and kde compatible config with topicspaces and dynamic workspaces set up for context oriented workspaces. Uses xmonad-extras package for mpd.
- /Marcot's xmonad.hs (darcs)
- With Gnome support and Multimedia Keyboard configuration
- /Nnoell's xmonad.hs (0.11)
- Xmonad stand-alone setup with dzen clickable workspaces, custom layouts, custom ppExtras, toggle tabbed layout, do not focus follow mouse on float layout, scratchpad and some other cool things. Additional configs here.
- /Regalia's xmonad.hs (darcs)
- Moderately customized. Some useful bits acquired over some time.
- /Thayer Williams' xmonad.hs (0.9)
- A simple, mouse-friendly xmonad config geared towards netbooks and other low-resolution devices. Dzen is used for statusbar rendering, with optional mouse integration provided by xdotool.
- /TTimo xmonad.hs(0.10)
- Basic config with xmobar, hopefully a good starting point for more complex setups
- /yiannist's xmonad.hs
- A clean and well-documented xmonad configuration file (based on the /Template xmonad.hs (0.9)). Uses: xmobar, scratchpad, double IM layout (for pidgin and skype), a layout prompt.
Configs for the current XMonad release (0.9.*)
Many of these will also work with the darcs version of XMonad.
- /Linux and Life's tutorial
- A tutorial to install and configure xmonad-0.9.2 with xmobar and trayer in Arch Linux. It also shows how to use the french keyboard layout and laptop function keys in xmonad.
- /31d1's xmonad.hs (0.9/gnome)
- /Andrea Rossato's xmonad.hs (0.8 +)
- Tabbed, Xmobar with DynamicLog, (Shell|Ssh|Man)Prompt.
- /Andrea Spada xmonad.hs (0.8 +)
- Tall, Resizable Mosaic and Combo, EvmhDesktops, additional keybindings - Work In Progress...
- /andrewsw's xmonad.hs (0.8 +)
- /andrewsw's .Xdefault
- These screenshots show some compositing and nice transparent urxvt's with a circle layout and a magnified grid layout.
- /avendael's xmonad.hs (0.9)
- /avendael's .conky_bar
- A very simple xmonad configuration that has conky piped into dzen with icons.
- Workspace names are also changed into icons just for fun ;)
- /brad's xmonad.hs (0.8 +)
- very basic, just some cosmetic and key-shortcut changes
- /David Beckingsale's xmonad.hs (0.9)
- Xmonad config using the zenburn colour scheme. Uses custom keybindings for frequent tasks. Status bar is conky powered dzen2
- /David Roundy's xmonad.hs (0.8 +)
- Combo config for small screen + xclock. This config also keeps mod=mod1, and therefore moves a number of key bindings to non-standard locations (my laptop has no spare modifier keys).
- /dmwit's xmonad.hs (0.9 + darcs from about March 2010. Works with 0.9)
- /dmwit's .xmobarrc
- A somewhat screen-count-agnostic config, as I use this same file on :machines with several different physical setups. Auxiliary apps: :trayer, xmobar, dzen, yeganesh; layouts: fullscreen and Grid, with
- independent workspaces on each screen. Uses some unapplied patches to
- xmobar.
- /doitan's xmonad.hs (0.8 +)
- libnotify UrgencyHook, many features from tips and tricks page integrated, many custom prompts including workspace and layout switching. dotfiles
- /Don's xmonad.hs (0.9)
- colours, use custom terminal, dynamicLogDzen
- /enko's xmonad.hs (0.8 +)
- I'm using xmobar and mostly tall layout (but in really it is just fullscreenlayout since there aren't any other windows). The config is accumulated stuff and could be cleaned of cruft, but since I don't know ATM what is cruft and what not, it is not an option, but it works for me™. I'm using urxvt as a terminal and the mailer you can see there is wanderlust for emacs. You can also see my screen setup at the bottom.
- /eschulte xmonad.hs (0.9)
- Basic config for running overtop of the XFCE (in this case Xubuntu) desktop, with the XFCE panel shown.
- /Gwern's xmonad.hs (0.10)
- Ratpoison-y keybindings; example usage of XSelection with searches.
- /Herzen's xmonad.hs (0.9)
- Integrates with the Gnome Panel. This config uses the Gnome Panel both
- to display xmonad's status (using the Gnome Workspace Switcher applet,
- based on John Yates' config) and to display the current window's title
- (using awick's xmonad log applet and DBus module from hackage).
- /Ivy Foster's xmonad.hs (0.9.2)
- One screen; xmobar; customized ManageHooks; NamedScratchPads
- /jelly(12gen)'s xmonad.hs (0.9)
- /jelly(12gen)'s xmobarrc
- Standard setup using ShellPrompt, Actions.Search, xmobar, urgencyhook, custsom keybindings and scratchpad.
- /John Goerzen's Configuration and Tutorial (0.8)
- A step-by-step guide to customizing Xmonad, starting from where the tutorial leaves off, getting to a configuration with xmobar and simple but intentionally minimal customizations in xmonad.hs
- /John Yates' polished Gnome bar (0.8 +)
- This is an attempt to provide an easy path into the world of tiling window managers for colleagues using recent Ubuntu and RedHat distributions. Emphasis is on visual integration with familar UI elements while conforming to widespread tiling WM idioms: (1) a single bar, (2) no window decoration, (3) current window's title display in the bar. Starting from a vanilla Ubuntu Gnome setup I eliminated the lower Gnome panel and its applets. On the remaining upper panel I included left to right: (1) a standard Gnome separator applet, (2) the Gnome Window Selector applet, (3) dzen2 built with Xft support displaying the current window's title, (4) the Gnome Workspace Switcher applet:
- The Window Selector icon tracks the displayed window title. Clicking on that icon activates the selector, displaying window titles grouped by workspace:
- Mod-p preserves Xmonad's default dmenu binding. Keeping with the emphasis on font consistency I created a version of dmenu that supports Xft fonts and a bar height option (currently available as a patch against dmenu 4.0):
- At present my xmonad.hs is utterly sparse, attempting only to simplify the process of accommodating additional themes.
- /Josh Rickmar's xmonad.hs (0.8 +)
- /Josh Rickmar's dzenscript
- This config uses keybindings optimized for the Colemak keyboard layout, alternate swapUp/Down methods which won't cycle windows if moving the last to first or vice-versa, a nice dzen2 status bar, and dwm-like tagging with CopyWindow. Workspaces which contain copies of windows are displayed with a different XPM in dzen (dwm-style). Xinerama keybindings are also removed, simply because I don't use them.
- /Kapil gnomemenuadd.hs (0.10)
- A hack to make the Gnome Menu popup just like the Gnome Run dialog pops up. This is a minimal addition to XMonad.Config.Gnome so that "dmenu" type programs are not _required_. This tries to solve Issue 451 in Xmonad.
- /Kapil's networkmanagerprompt.hs (0.10)
- Use XMonad.Prompt.Input to prompt the user to bring up and take down network connections using "nmcli". This xmonad.hs is a snippet that can be used to add this functionality to other configs. In principle, it should be possible to avoid "nmcli" altogether using the dbus interface to haskell.
- /k6b (kyle's) xmonad.hs (0.9.2)
- /k6b (kyle's) xmobarrc (0.11.1)
- Two xmobar's, startup script, dmenu, some custom keybindings, work in progress!
- Dirty
- Clean
- /L29Ah's xmonad configuration (ongoing git repository, 0.15+)
- Plenty of features, like 24 workspaces, per-window keyboard layout, browser SIGSTOP, multi-line tabs for IM, vi-like keyboard bindings, disabling X's autorepeat for WM key bindings, forbidding browsers from grabbing focus on their own, incremental window search with fuzzy matching, per-window color inversion, spawning terminals inheriting CWD from the focused window, etc...
- /lars' xmonad.hs (0.8 +)
- Move/Resize windows using keyboard easily:
- 1. move window around using M-Arrows.
- 2. resize windows using C-Arrows.
- 3. Holding <Shift> to move/resize 2 pixels per step instead of 20 pixels.
- Please find the lines below comment "-- moving floating window with key" to see details.
This config uses easyxmotion to switch between any window in 2 keypresses. Inspired by the easy motion vim plugin. The xmonad.hs is very simple and also uses WindowGo and ewmh desktops. The letters appear when I click the menu key, next to right alt. Then type the letter to focus that window.
- /Mntnoe's xmonad.hs (0.9)
- Heavily modified modular xmonad config. (I.e. use ~/.xmonad/lib/* .) Highlights: Pager with icons. Per application configuration. Minimize windows.
- /lithis's xmonad.hs (0.9)
- /lithis's xmobarrc (newer than xmobar-0.9)
- The screenshot shows xmobar, two screens, a spiral layout, a tabbed layout, XFT fonts, and ShellPrompt with tab completion. The config also has pointer follows focus.
- /lorincs xmonad.hs (0.9)
- Config for using xcompmgr with kde4. See blog for more details.
- /nattfodd's xmonad.hs (0.8 +)
- DynamicLog, smartBorders, French keyboard, defaultGap, urgencyHook in workspace toolbar and some prompts.
- /Octoploid's xmonad.hs (0.9)
- Xmobar with customized DynamicLog, CycleWS with custom keys, colors, terminal, golden ratio
- /oxymor00n's xmonad.hs (darcs ?)
- /oxymor00n's xmobarrc
- Tabbed layout, Floating Layout, xmobar, EZConfig for Emacs-like keybinding-definition, added some bindings for the mouse wheel (cycle focus and cycle workspaces), cycleWS-stuff that might be interesting for Xinerama-users,...
- /Robert Massaioli's xmonad.hs
- This XMonad is based on Thomas ten Cate's xmonad.hs and it is designed for Dvorak. For more information please see my blog post: [1]
- /sereven xmonad.hs (0.9.2 - 0.10)
- Reduced to minimum that sees daily use. Arrow + vi window navigation. Lots of left hand only keys, for full function with both hands on keyboard, or with one on mouse. While no longer use them old dzen grid icons are here. Latest xmonad.hs here.
- /sykopomp's xmonad.hs (0.9)
- /sykopomp's xmonad.dv-vi.hs
- This screenshot shows xfce-panel with pager + xmonad in a ResizableTall layout. Also using compositing and transparent urxvt's (thanks andrewsw) with bindings for changing transparency on focused window. Keybindings have been completely redone to be more similar to emacs-bindings (M-p and M-n for previous and next windows). The other config is an older config that uses the standard vi-like bindings, but translated by location to a dvorak layout.
- /TeXitoi's xmonad.hs (0.11)
- bepo typematrix keyboard, xfceConfig, fadeInactive. Minimal configuration file with defaults not overwritten.
- /Thomas ten Cate's xmonad.hs (0.8 +)
- Designed for Ubuntu (Gnome), the Windows key, and a dvorak keyboard. Workspaces accessible through Alt+F1..F10 so they don't interfere with Alt+1..9 used by irssi/Firefox/etc.
- Instant messaging (Skype and Pidgin) buddy lists are automatically placed on the side of the IM workspace, with chat windows being placed in the rest of this area. This uses some code modified from XMonad.Layout.IM.
- Extensive comments at the top of the file explain the keybindings and usage.
- /thoughtpolice's xmonad.hs (0.9)
- /thoughtpolice's xmobarrc (0.9)
- Emacs-esque keyboard bindings via EZConfig, dynamicLog with dzen, Submap google/hoogle/amazon/imdb/youtube/wikipedia searching, Shell & Ssh modules, slightly custom XPConfig and avoidStruts (ManageDocks.)
- Vic Fryzel's xmonad configuration (0.9)
- Multiple named workspaces and layouts. Comes with themed colors, xmobar configuration, scripts for things like dmenu and screenshots, standard and custom key bindings, etc. Check out the screenshot.
- /void's xmonad.hs (0.8 +)
- dzen2 DynamicLog (in robert's style) and UrgencyHook, LayoutCombinators, IM workspace for Pidgin (on the right) with 2 layouts a dwmStyle decorated ResizableTall and a tabbed one, use of PerWorkspace and Named layouts, Scratchpad, custom theme, EZConfig for keybindings, NoBorders (and smarts too)
- /vvv's xmonad.hs (0.9)
- EZConfig, CycleWS, {Man,Shell,Ssh}Prompt, Submap, DynamicWorkspaces, NoBorders, and ion-like status bar (written in nonkosher Perl).
- /webframp's xmonad.hs (darcs)
- Basic Mirror tiled and ResizableTall layout, EZConfig keybindings,
- dynamicLogWithPP + dzen, CycleWS, Prompt, promptSearch, Scratchpad, updatePointer, perWorkspace, compositing.
- /Wraithan's xmonad.hs (0.9)
- Pretty standard setup using ShellPrompt, ResizableTile (with hinting), and xmobar for a little bit of the info I want.
Broken 0.9 configs
- /gray_hemp's xmonad.hs (0.9)
- /gray_hemp's .conky_cpu
- /gray_hemp's .conky_battery
- /gray_hemp's .conky_time
- /gray_hemp's .xxkbrc
- dzen plus conky config using dzen icons, resizable tall, xmonad shell prompt, urgency popup, status bar formatting, xxkb keyboard indicator.
Old configs
This section is for configurations which do not work with the the latest release version of xmonad.
Note that the configuration file is 'Config.hs' for xmonad < 0.5, but 'xmonad.hs' for xmonad >= 0.5.
Many config files marked as 0.5 probably work in 0.6 as well; give it a try and ask on the #xmonad IRC channel on freenode.org if you have problems.
- /Template xmonad.hs (0.8)
- /Template xmonad.hs (0.7)
- /Template xmonad.hs (0.6)
- Previous versions of the default configuration.
- /andrewsw's xmonad.hs (0.6)
- /arossato's Config.hs (0.4)
- /cce xmonad.hs (0.5)
- alt+enter full screen, alt+hjkl to navigate, many remapped keys
- /deifl's xmonad.hs (0.5)
- DynamicLog, WindowBringer, CopyWindow, ResizableTile, Tabbed layout. not default terminal, changed colors and some instances of dzen.
- /Don's Config.hs (0.4)
- /entropies xmonad.hs (0.5)
- windows as meta key, fullscreen & noborders on keypress for client. custom keybindings. magnifier.
- /Eric Mertens' xmonad.hs (0.5)
- /Eric Mertens's Config.hs (0.4)
- Customized DynamicLog, ShellPrompt, TilePrime, Dual-head and an effort to make the statusbar similar to DWM.
- /Erthad's xmonad.hs (darcs 25 Aug 2008/0.7)
- mixed hotkeys config (standard+EZConfig), wmii-like keyboard behavior,
- EWMH desktops, dzen integration (dzen configs see at http://fly.osdn.org.ua/~erthad/)
- /Gwern's Config.hs (0.4) (old)
/iderrick xmonad.hs (0.8)
- Maximize, Dynamiclog with xmobar, Custom layout (with Combo) for latex writing (xpdf + editor + little terminal), French keyboard, Windows key for shortcuts
- /lazor's xmonad.hs (0.8)
- working xmonad.hs for KDE 4.2
- /leedo's xmonad.hs (0.5)
- Resizable Tall, NoBorders, dzen DynamicLog, rhythmbox control shortcuts, windows key
- /Mr.Elendig's xmonad.hs (0.7)
- Somewhat simple, but verbose config, with ResizableTall, xmobar and mpd controlls.
- /nomeatas Config.hs (0.4)
- modMask = mod4Mask; gnome-stuff
- /nomeata's xmonad.hs (xmonad 0.7)
- CycleWS to avoid changing visible workspaces on other screens, EWMH, UpdatePointer, avoidStruts, IM for piding (on the right side), fullscreen via toggleLayouts, no boarders,
- /Ray's xmonad.hs (0.5)
- DynamicLog, custom manageHook, changed from default terminal, border colors, prompts, and layouts. Pseudo-Haskell dzen statusbar with Greek letters for workspace names.
- /Robert Manea's xmonad.hs (0.8)
- Customized DynamicLog and ShellPrompt, ManageDock, some efforts to make the colors of all components go together well
- /Remi's xmonad.hs (0.7)
- /Remi's .xmobarrc (0.8)
- /Remi's .xinitrc
- Lots of key bindings for destkop-navigation/moving, xmonad.hs-editing, music, next-N-windows-float-hack. xmobar integration and PerWorkspace Layouts. And a yet-to-be-published libmpd xmobar plugin.
- /rtalreja's xmonad.hs (0.8.1)
- /rtalreja's .conkyrcdzen
- dynamicLogWithPP with dzen, conky piped into dzen, urgency hints, compositing, shortcuts for mpd controls.
- /skorpan's xmonad.hs (0.8)
- /skorpan's xmobarrc (0.9)
- Red/gray borders + NoBorders, EZConfig, xmobar 0.9 with workspaces, layout, title, battery, CPU usage, memory usage, date and time.
- /sphynx's xmonad.hs (0.7)
- Emacs-style keybindings, xmobar integration, XFT-fonts, ManageDocks, Tabbed layout, IM layout for Pidgin and Skype configured through PerWorkspace, Search extension for Wikipedia, translation and Google, usage of CopyWindow to 'make window always visible', Urgency hook, PerWorkspace usage, Scratchpad terminal, custom styles for prompt and borders.
- /twifkak's Config.hs (0.4)
- /twifkak's xmonad.hs (0.8)
- modMask = mod4Mask; noBorders tabbed layout; keybindings for dzen, rotview, swapworkspaces, windowbringer, and windownavigation; urgencyhook.
- /Wfarr's xmonad.hs (0.6)
- ResizableTall Layout using EZConfig, cycleWS, CopyWindows, and DZen to get some cool stuff happening.
- /Xilon's xmonad.hs (0.5)
- Simple and clean setup with dzen and a tray. Dzen with workspaces uses UrgencyHook for Urgent windows.
Note on uploading
Request a haskell wiki account if needed.
To upload your config file, create some text on this page of the form:
; [[/you xmonad.hs]](0.9) : description of your setup
and save the page. Note that the configs are in alphabetical order and specify what xmonad version is required. (It's helpful to also include the version info somewhere in your comments.) This will create a new page under /you into which you can paste your xmonad.hs text.
Wrap the haskell in <haskell> and </haskell> tags (the tags should go on their own lines), to enable nice markup; add a nice category like [[Category:XMonad configuration]], and upload.
Images can be uploaded by clicking on the 'Upload file' link, and then referring to the uploaded image as, e.g.
which will scale the image correctly for a thumbnail.
Modular configs
Now that xmonad supports importing local module definitions into xmonad.hs from ~/.xmonad/lib/Path/To/Foo.hs
with import Path.To.Foo
, the download script below limits the usability of your uploaded config. Till it's made smarter, if you want your modular config to be easily downloadable, convert it into a single chunk of valid haskell between the first pair of <haskell> and </haskell> tags (each tag on its own line) i.e. comment the "module Foo where"s and their imports, merging them into a single import list, (qualifying as necessary).
If this is too painful, please consider other solutions, such as including commented links to downloadable lib module files or a browseable vcs, or help revise the downloader script to be smart enough to deal with a sensible method of posting such configs here.
A converter script might be useful as well.
Downloading all configs
Sometimes one wants to download all the xmonad.hs files linked from this page. Perhaps one simply wants to look at many versions, or perhaps one is interested in commonalities. Regardless, here's a small script (written by gwern and modified by sereven) which uses Tagsoup to download the files into the current directory:
import Control.Monad (liftM,liftM2, zipWithM_) import Data.List (isInfixOf, isPrefixOf) import Network.HTTP(getResponseBody, simpleHTTP, getRequest) import Text.HTML.TagSoup (parseTags, Tag(TagOpen)) main :: IO () main = do urls <- liftM extractURLs $ openURL "http://www.haskell.org/haskellwiki/Xmonad/Config_archive" -- urls are prefixed "/haskellwiki/", so in raws, drop 13: let raws = map (\x -> "http://www.haskell.org/haskellwiki/index.php?title=" ++ drop 13 x ++ "&action=raw") $ filter (isInfixOf "xmonad.hs") urls let hs = map (liftM2 fmap filterHaskell openURL) raws zipWithM_ (\x y -> writeFile x =<< y) (map ((++ ".hs") . show) [(1::Int)..]) hs filterHaskell :: String -> String -> String filterHaskell url = addLink . unlines . takeWhile (not . isPrefixOf "</haskell>") . drop 1 . dropWhile (not . isPrefixOf "<haskell>") . lines where addLink = (("-- " ++ (reverse . drop 11 . reverse) url ++ "\n") ++) -- add commented url less "&action=raw" openURL :: String -> IO String openURL u = getResponseBody =<< simpleHTTP (getRequest u) extractURLs :: String -> [String] extractURLs arg = [x | TagOpen "a" atts <- (parseTags arg), (_,x) <- atts, "/haskellwiki/Xmonad/Config_archive/" `isPrefixOf` x]
Make sure you have the tagsoup package installed from hackage or your package manager, then paste the script into a file, e.g. get-xmconfigs.hs, then, to download the configs into the current directory:
% runhaskell get-xmconfigs
Note that this script will only work on those configs which strictly followed the above uploading guidelines, since the script makes a number of simplifying assumptions. (Specifically: title includes the string "xmonad.hs", it was uploaded to a subpage of this page, the <haskell> tags are on their own lines, and the first pair encloses the xmonad.hs. See gwern's original email for more details.)
Module Import Popularity
Here is a script that summarizes the imports for given files saved in your filesystem (such as copied from this wiki page using the above script).
import Data.Char ( isSpace )
import Data.List ( foldl', sortBy, stripPrefix )
import Data.Maybe ( mapMaybe )
import Data.Monoid ( mconcat )
import Data.Ord ( comparing )
import System.Environment ( getArgs )
import qualified Data.Map as M
main = do
fs <- getArgs
let getModName :: String -> [String]
getModName = map (takeWhile (\x -> not $ isSpace x || x == '('))
. mapMaybe (mconcat $ map stripPrefix ["import qualified ","import "])
. lines
xs <- mapM (fmap getModName . readFile) fs
putStr . unlines . map show . sortBy (comparing snd) . M.toList
. foldl' (\m k -> M.insertWith (+) k 1 m) M.empty
. concat $ xs
$ runghc TheAboveFile.hs path/to/config/archive/files/*.hs
Lists popularities like:


text:
1. Best Picture: "Amour," ''Argo," ''Beasts of the Southern Wild," ''Django Unchained," ''Les Miserables," ''Life of Pi," ''Lincoln," ''Silver Linings Playbook," ''Zero Dark Thirty."
2. Actor: Bradley Cooper, "Silver Linings Playbook"; Daniel Day-Lewis, "Lincoln"; Hugh Jackman, "Les Miserables"; Joaquin Phoenix, "The Master"; Denzel Washington, "Flight."
3. Actress: Jessica Chastain, "Zero Dark Thirty"; Jennifer Lawrence, "Silver Linings Playbook"; Emmanuelle Riva, "Amour"; Quvenzhane Wallis, "Beasts of the Southern Wild"; Naomi Watts, "The Impossible."
4. Supporting Actor: Alan Arkin, "Argo"; Robert De Niro, "Silver Linings Playbook"; Philip Seymour Hoffman, "The Master"; Tommy Lee Jones, "Lincoln"; Christoph Waltz, "Django Unchained."
5. Supporting Actress: Amy Adams, "The Master"; Sally Field, "Lincoln"; Anne Hathaway, "Les Miserables"; Helen Hunt, "The Sessions"; Jacki Weaver, "Silver Linings Playbook."
6. Directing: Michael Haneke, "Amour"; Benh Zeitlin, "Beasts of the Southern Wild"; Ang Lee, "Life of Pi"; Steven Spielberg, "Lincoln"; David O. Russell, "Silver Linings Playbook."
7. Foreign Language Film: "Amour," Austria; "Kon-Tiki," Norway; "No," Chile; "A Royal Affair," Denmark; "War Witch," Canada.
8. Adapted Screenplay: Chris Terrio, "Argo"; Lucy Alibar and Benh Zeitlin, "Beasts of the Southern Wild"; David Magee, "Life of Pi"; Tony Kushner, "Lincoln"; David O. Russell, "Silver Linings Playbook."
9. Original Screenplay: Michael Haneke, "Amour"; Quentin Tarantino, "Django Unchained"; John Gatins, "Flight"; Wes Anderson and Roman Coppola, "Moonrise Kingdom"; Mark Boal, "Zero Dark Thirty."
10. Animated Feature Film: "Brave"; "Frankenweenie"; "ParaNorman"; "The Pirates! Band of Misfits"; "Wreck-It Ralph."
11. Production Design: "Anna Karenina," ''The Hobbit: An Unexpected Journey," ''Les Miserables," ''Life of Pi," ''Lincoln."
12. Cinematography: "Anna Karenina," ''Django Unchained," ''Life of Pi," ''Lincoln," ''Skyfall."
13. Sound Mixing: "Argo," ''Les Miserables," ''Life of Pi," ''Lincoln," ''Skyfall."
14. Sound Editing: "Argo," ''Django Unchained," ''Life of Pi," ''Skyfall," ''Zero Dark Thirty."
15. Original Score: "Anna Karenina," Dario Marianelli; "Argo," Alexandre Desplat; "Life of Pi," Mychael Danna; "Lincoln," John Williams; "Skyfall," Thomas Newman.
16. Original Song: "Before My Time" from "Chasing Ice," J. Ralph; "Everybody Needs a Best Friend" from "Ted," Walter Murphy and Seth MacFarlane; "Pi's Lullaby" from "Life of Pi," Mychael Danna and Bombay Jayashri; "Skyfall" from "Skyfall," Adele Adkins and Paul Epworth; "Suddenly" from "Les Miserables," Claude-Michel Schonberg, Herbert Kretzmer and Alain Boublil.
17. Costume: "Anna Karenina," ''Les Miserables," ''Lincoln," ''Mirror Mirror," ''Snow White and the Huntsman."
18. Documentary Feature: "5 Broken Cameras," ''The Gatekeepers," ''How to Survive a Plague," ''The Invisible War," ''Searching for Sugar Man."
19. Documentary (short subject): "Inocente," ''Kings Point," ''Mondays at Racine," ''Open Heart," ''Redemption."
20. Film Editing: "Argo," ''Life of Pi," ''Lincoln," ''Silver Linings Playbook," ''Zero Dark Thirty."
21. Makeup and Hairstyling: "Hitchcock," ''The Hobbit: An Unexpected Journey," ''Les Miserables."
22. Animated Short Film: "Adam and Dog," ''Fresh Guacamole," ''Head over Heels," ''Maggie Simpson in 'The Longest Daycare,'" "Paperman."
23. Live Action Short Film: "Asad," ''Buzkashi Boys," ''Curfew," ''Death of a Shadow (Dood van een Schaduw)," ''Henry."
24. Visual Effects: "The Hobbit: An Unexpected Journey," ''Life of Pi," ''Marvel's The Avengers," ''Prometheus," ''Snow White and the Huntsman."

subset: commoncrawl


text:
Long before the current rash of fungal meningitis, the compounding pharmacy suspected in the outbreak settled a lawsuit alleging it produced a tainted shot that caused a man's death in 2004.
Earlier this summer, a separate pharmaceutical firm with common owners was accused of failing to separate sterile and non-sterile supplies. That pharmaceutical company was shut down Wednesday for inspections, the latest example of fallout from the growing outbreak.
Officials have identified Framingham, Mass., based-New England Compounding Center as the source of steroid shots suspected in the outbreak of rare fungal meningitis that has killed at least 12 people and made more than 130 others sick in 11 states.
Allegations of a shot tainted with a different form of meningitis were at the heart of a lawsuit filed against the company over the 2004 death. An 83-year-old man died about a year and a half after receiving a shot produced by the company.
Another drug company that has some of the same owners, Ameridose LLC, agreed to temporarily stop its compounding and manufacturing operations as a precaution while regulators inspect its facilities, but the measure is being done as a precaution, not because of evidence of contamination, officials said Wednesday. Ameridose, based in Westborough, Mass., was accused by a business customer this year of failing to separate sterile and non-sterile products in its warehouse.
Andrew Paven, a spokesman for both companies, said: "Ameridose is a separate entity from New England Compounding Center, with distinct operational management."
"We have separate production facilities, separate processes and operate at separate locations in different cities. Although there is common ownership, the two companies operate under separate registrations and different licensure," the statement from Paven said.
On Wednesday, Massachusetts Gov. Deval Patrick said the New England Compounding Center may have misled regulators and done work beyond the scope of its state license. The company was licensed to fill specific prescriptions for specific patients but exceeded that, he said.
"What they were doing instead is making big batches and selling them out of state as a manufacturer would, and that is certainly outside of their state license," he said.
A company spokesman declined comment on Patrick's assertion beyond a statement that company officials are focused on cooperating with the investigation. The company has shut down operations and recalled the fungus-contaminated steroid.
A 2004 lawsuit filed in upstate New York's Monroe County claimed New England Compounding Center produced the shot that infected William Koch with bacterial meningitis at Rochester General Hospital on July 17, 2002. Koch died Feb. 28, 2004, at the age of 83.
The lawsuit said the shot was the source of Koch's meningitis, but did not explain how that determination was made.
Bacterial meningitis is contagious and much more common than the fungal meningitis involved in the current outbreak. Fungal meningitis is more difficult to catch, according to the Centers for Disease Control and Prevention.
The compounding pharmacy reached a settlement with Koch's widow in 2007 before the case went to trial, according to her lawyer Mark S. Nunn. He declined to elaborate Wednesday because the terms were confidential.
"Really all I can say is that the case settled prior to trial," Nunn said.
Two of the people who founded New England Compounding Pharmacy Inc. in 1998 — Gregory Conigliaro and Barry Cadden — formed Ameridose in 2006, according to documents filed with the Massachusetts Secretary of State's office. The company's website says it provides hospitals around the country with products including intravenous solutions and prefilled oral syringes of painkillers and other medications.
This summer, an organization that represents hospitals in purchasing deals with drug suppliers cancelled a contract with Ameridose over allegations that it had poor quality control practices that "rose to a level of concern for patient safety," according to a lawsuit that Ameridose filed in August.
Ameridose denies those allegations and filed a defamation and slander lawsuit in U.S. District Court in Massachusetts on Aug. 8, saying Novation LLC hurt its reputation by making allegations including that there was "no separation between sterile and non-sterile products" in an Ameridose warehouse.
The lawsuit doesn't say what the products were or elaborate on how they were stored. Novation declined to release a copy of its report.
Novation, which leverages hospitals' combined buying power to get better prices on medical goods, sent two employees to audit Ameridose on July 15 and terminated its contract, the lawsuit said.
"Novation has determined that Ameridose does not meet the quality systems requirements needed to maintain a Novation agreement," Novation told its members in an Aug. 2 newsletter, according to the lawsuit.
Ameridose strongly objected to the allegations and said in its defamation lawsuit that the Novation auditors were unqualified and made false and misleading statements. Ameridose also said it had been audited in recent years by several other organizations that determined its quality control system "meets or exceeds their high quality standards." Ameridose is regulated by the U.S. Food and Drug Administration.
The lawsuit ended in a confidential settlement Sept. 24.
Paven, the Ameridose and New England Compounding Center spokesman, said Wednesday in his email that the "suit involved contractual commercial issues between the companies that have since been resolved."
A statement from Novation said that while it "vigorously disputed each and every claim made in the lawsuit, the parties ultimately agreed to settle the lawsuit."
Follow Mohr at http://twitter.com/holbrookmohr .


text:
Dumitru Staniloae
Dumitru Stăniloae was a priest of the Church of Romania who is renowned as an Orthodox theologian, academic, and professor. In addition to commentary on the works of the Church Fathers and a Romanian translation of the Philokalia, his 1978 masterpiece The Dogmatic Orthodox Theology established him as one of the foremost Christian theologians of the later half of the twentieth century.
Dumitru was born on November 16, 1903, in Vladeni, Brasov County, Romania, to Irimie and Rebecca Stăniloae. His mother, Rebecca, was the niece of a priest. He was the youngest of their five children. At the age of thirteen he began studies at the Andrei Şaguna Confessional Humanist Lyceum. The following year he received a fellowship from the Gojdu Foundation. In 1922, he received a fellowship from Cernăuţi University but found the course of study unsatisfactory and withdrew after one year. From 1923-1924 he attended classes at the Faculty of Letters of the University of Bucharest.
Having returned to Cernăuţi University, he graduated in 1927, completing a thesis entitled Baptizing Children under the supervision of Professor Vasile Loichiţă. In the fall of 1928, Dumitru received his doctoral degree after completing his dissertation Life and Work of Dosoftei of Jerusalem and His Connections with Romanian Principalities. Over the next several years he studied Byzantology and Dogmatics under a fellowship from the Metropolitan Center in Sibiu as well as attending courses taught by Professor August Heisenberg in Munich. In 1929 and 1930, he researched documents concerning Gregory Palamas in Berlin, Paris, and Constantinople.
On October 4, 1930, he married Maria Mihu, who presented him the following year with twins, Maria and Dumitru. His son Dumitru died shortly after birth. His daughter Maria survived until April 1946. On October 8, 1931, Dumitru was ordained deacon, followed by his ordination to the priesthood on September 25, 1932. On October 8, 1933, another daughter, Lydia, was born to the couple.
On January 1, 1934, Fr. Dumitru became the director of the newspaper Romanian Telegraph, a position he held until 1945. In June 1936 he was named rector of the Theological Academy in Sibiu.
With the end of World War II, the government of Romania was taken over by communists and began to oppress the Orthodox Church there. Under political pressure, Fr. Dumitru was forced in 1946 to step down from the rectorship of the academy, although he continued teaching as a professor until the next year, 1947. He then transferred to the University of Bucharest, assuming the Ascetics and Mystics Chair as a member of the Faculty of Theology. In 1949, however, this chair was abolished. Still, Fr. Dumitru continued to teach graduate students as a professor of dogmatics.
In 1950 Fr. Dumitru began to attend meetings of the Rugul Aprins (Burning Altar) group. This was a group formed in 1940 by a number of academics, including hieromonks Ivan Kulighin, Benedict Ghuis, and Sofian Boghiu and priests Andrei Scrima and Ion Marin Sadoveanu. The group met at the Cernica and Antim Monasteries and was a center for rejuvenation of Orthodox Christian life in Bucharest. In 1958, coinciding with the withdrawal of the Soviet Army from Romania, a wave of political arrests were made, including members of the Rugul Aprins group. Fr. Dumitru was among those arrested. On September 5, 1958, he was confined to prison to await his trial, which began on November 4, 1958.
Over next several years, Fr. Dumitru was moved among a number of prisons. He was held in isolation for months at a time until he was released in 1963. He then began working for the Holy Synod of the Romanian Orthodox Church. In 1965 he was asked by the Romanian State Department of Cults to write articles and take part in studies as the government attempted to project an image of religious freedom in Romania. Fr. Dumitru was permitted to travel and attend worldwide conferences.
In 1968 he was permitted to attend conferences in Freiberg and Heidelberg. The same year he lectured at Oxford University in the United Kingdom. Then, in 1973, he retired but continued as a consultant professor for doctoral studies. During the succeeding years he was honored often, including receiving honorary doctoral degrees from the University of Thessaloniki in 1976; St-Sergius Orthodox Institute in Paris, France, in 1981; from the Faculty of Orthodox Theology of Belgrade in 1982; from the University of Theology of Athens in 1991; and from the University of Bucharest in 1992.
On October 5, 1993, Fr. Dumitru Stăniloae died at the age of 90.
Father Dumitru Stăniloae was proposed for canonization in 2025 when the Romanian Orthodox Church will celebrate 140 years of autocephaly and 100 years since obtaining the status of a patriarchate.
Following are the titles of some of his works:
- Catholicism after the War, Sibiu, 1932
- Life and Teachings of Gregory Palamas, Sibiu, 1938
- Orthodoxy and Romanianism, Sibiu, 1939
- Jesus Christ, or Man's Restoration, Sibiu, 1943
- The Victory of the Cross: A Talk on Suffering Given at Fairacres, Oxford, 1970 (ISBN 978-0728300491)
- Philokalia (translation); vol. 1: Sibiu, 1946; vol. 2: Sibiu, 1947; vol. 3: Sibiu, 1948; vol. 4: Sibiu, 1948; vol. 5: Bucharest, 1976; vol. 6: Bucharest, 1977; vol. 7: Bucharest, 1978; vol. 8: Bucharest, 1979; vol. 9: Bucharest, 1980.
- Teologia dogmatică ortodoxă, Bucharest, 1978. Published in English by Holy Cross Orthodox Press as The Experience of God: Orthodox Dogmatic Theology. Vol. 1, Revelation and Knowledge of the Triune God (Brookline, 2005) (ISBN 978-0917651700). Vol. 2, The World: Creation and Deification (Brookline, 2005) (ISBN 978-1885652416). Vol. 3, The Person of Jesus Christ as God and Savior (Brookline, 2011) (ISBN 978-1935317180). Vol. 4, The Church: Communion in the Holy Spirit (Brookline, 2012) (ISBN 978-1935317265). Vol. 5, The Sanctifying Mysteries (Brookline, 2012) (ISBN 978-1935317296). Vol. 6, The Fulfillment of Creation (Brookline, 2013) (ISBN 978-1-935317-34-0).
- Theology and the Church, Crestwood, 1980 (ISBN 978-0913836699)
- Liturgy of the Community and the Liturgy of the Heart: From the Viewpoint of the Philokalia, 1980 (ISBN 978-0948108037)
- Prière de Jésus et expérience du Saint-Esprit, Paris, 1981
- Orthodox Spirituality: A Practical Guide for the Faithful and a Definitive Manual for the Scholar, SOuth Canaan, 2002 (translation of Orthodox Spirituality, Bucharest, 1981) (ISBN 978-1878997661)
- Teologia morală ortodoxă pentru institutele teologice (Orthodox Moral Theology), vol. 2, Bucharest, 1981
- Prayer and Holiness: The Icon of God Renewed in Man, Oxford, 1982 (ISBN 978-0728300934)
- St. Gregory of Nyssa - Writings (translation), Bucharest, 1982
- Eternity and Time, Fairacres, 2001 (ISBN 978-0728301535)
- The Holy Trinity: In the Beginning There Was Love, Brookline, 2012 (ISBN 978-1935317319)
External links
- Dumitru Stăniloae on Wikipedia
- Essence of Christianity - short video


text: A normal spine, when viewed from behind, appears straight. However, a spine affected by scoliosis shows evidence of a lateral, or side-to-side curvature, with the spine looking like an "S" or "C" and a rotation of the bones (vertebrae), giving the appearance that the person is leaning to one side. According to the Scoliosis Research Society, scoliosis is defined as a curvature of the spine measuring 10 degrees or greater. Scoliosis is a type of spinal deformity and shouldn't be confused with poor posture. It is one of a full spectrum of spine conditions treated by Beaumont spine surgeons. Spinal curvature from scoliosis may occur on the right or left side of the spine, or on both sides in different sections. Both the thoracic (mid) and lumbar (lower) spine may be affected by scoliosis. What causes scoliosis? The abnormal curves of the spine are classified according to their cause, including the following:In more than 80 percent of cases, the cause of scoliosis is unknown - a condition called idiopathic scoliosis. In other cases, scoliosis may develop as a result of degeneration of the spinal discs, as seen with arthritis, osteoporosis, or as a hereditary condition that tends to run in families. Nonstructural scoliosis (also called functional scoliosis). In this condition, a structurally normal spine appears curved due to 1 or more underlying conditions (for example, difference in leg length or an inflammatory condition). This type of scoliosis is generally temporary and is often relieved when the underlying condition is treated. Structural scoliosis. The possible causes of structural scoliosis are numerous, including: of unknown origin (idiopathic structural scoliosis) disease (for example, neuromuscular, metabolic, connective tissue, or rheumatoid disease) birth defect injury infection abnormal growth What are the symptoms of scoliosis? The following are the most common symptoms of scoliosis. However, each individual may experience symptoms differently. Symptoms may include: difference in shoulder height the head isn't centered with the rest of the body difference in hip height or position difference in shoulder blade height or position when standing straight, difference in the way the arms hang beside the body when bending forward, the sides of the back appear different in height Back pain, leg pain and changes in bowel and bladder habits aren't commonly associated with idiopathic scoliosis. A person experiencing these types of symptoms requires immediate further medical evaluation by a doctor. The symptoms of scoliosis may resemble other spinal conditions or deformities, or may be a result of an injury or infection. Always consult your doctor for a diagnosis. How is scoliosis diagnosed? In addition to a complete medical history and physical examination, X-rays (a diagnostic test that uses invisible electromagnetic energy beams to produce images of bones on to film) are the primary diagnostic tool for scoliosis. In establishing a diagnosis of scoliosis, the doctor measures the degree of spinal curvature on the X-ray. The following other diagnostic procedures may be performed for nonidiopathic curvatures, atypical curve patterns, or congenital scoliosis: Magnetic resonance imaging (MRI). A diagnostic procedure that uses a combination of large magnets and a computer to produce detailed images of organs and structures within the body. Computed tomography (CT) scan. This diagnostic imaging procedure uses a combination of X-rays and computer technology to produce horizontal, or axial, images (often called slices) of the body. A CT scan shows detailed images of any part of the body, including the bones, muscles, fat, and organs. CT scans are more detailed than general X-rays. Early detection of scoliosis is most important for successful treatment. How is scoliosis treated? Specific treatment of scoliosis will be determined by your doctor based on: your age, overall health, and medical history the underlying cause of the scoliosis extent of the condition your tolerance for specific medications, procedures, or therapies expectations for the course of the condition your opinion or preference The goal of treatment is to stop the progression of the curve and prevent deformity. Treatment may include: Observation and repeated examinations. Observation and repeated examinations may be necessary to determine if the spine is continuing to curve, and are used when a person has a curve less than 25 degrees and is still growing. Bracing. Bracing may be used when the curve measures more than 25 degrees to 30 degrees on an X-ray, but skeletal growth remains. It may also be necessary if a person is growing and has a curve between 20 degrees and 29 degrees that isn't improving. The type of brace and the amount of time spent in the brace will depend on the severity of the condition. Surgery. Surgery may be recommended when the curve measures 45 degrees or more on an X-ray and bracing isn't successful in slowing down the progression of the curve when a person is still growing. According to the National Institute of Arthritis and Musculoskeletal and Skin Diseases, there's no scientific evidence to show that other methods for treating scoliosis (for example, chiropractic manipulation, electrical stimulation, nutritional supplementation and exercise) prevent the progression of the disease.


text:
The Chevrolet Volt has been a hot topic since its concept debut in January 2007, and it has certainly come a long way since then. General Motors has been providing bits of news about the electric vehicle over time to help EV buyers consider the Volt.
Now, Chevrolet has released information regarding the cost of their Voltec 240V home charging station, which is set at $490. Nissan released figures awhile ago regarding their home charging stations, which are set at $2,200 for the 220V including installation.
The $490 for the Voltec 240V home charging unit was set by SPX Service Solutions, whom Chevrolet has an agreement with. SPX Service Solutions is a national provider of home charging installation equipment and services, and will be selling the Voltec 240V along with several other home charging stations.
Chevrolet notes that this is the most affordable 240V home charging system, and will be beneficial to Volt drivers because it only takes four hours to charge the electric battery from depleted to fully charged with a 240V station as opposed to the standard 120V charge cord, which takes 10 hours to complete the same task.
While Chevrolet's Voltec 240V home charging system is priced at $490, the installation of this system costs approximately $1,475. Though, Chevrolet adds that this price varies upon electrical requirements.
Electric vehicles have been a popular subject, and with the upcoming release of EV pioneers like the Chevrolet Volt and the Nissan Leaf, the interest and curiosity surrounding these vehicles has heightened. Over time, we've watched and waited as both of these EV heavyweights exposed their core features, such as the Volt's 40 miles of electric-only propulsion (which was recently revised to 25-50 miles) with a gasoline engine providing an additional 300 miles, and the Leaf's ability to travel 100 miles on a single charge.


text:
This site is currently under development, please drop by again soon!
If you have any questions regarding this site, please contact: webmaster @ oceanlinermuseum.co.uk
If this is your domain name, please use your web control panel to make changes or configure your web hosting.
To register your domain name, go to virtualnames.co.uk or start searching here:


text:
President Obama radiated confidence when he took to the Rose Garden earlier this week to convince Americans that the flaws in the Affordable Care Act website would be fixed.
It's understandable that the president himself might be upbeat about the prospects of resolving the problems currently plaguing the technology behind the law.
But for anyone not named Obama, the apparent scale of the problems seems daunting. And it doesn't fuel a lot of optimism that the websites will be up and running by Dec. 15, the deadline for open enrollment under the new law. And that's despite the president's promised "tech surge" featuring "some of the best IT talent in the entire country," as Obama put it.
The Washington Post reported that experts say the problems need to be fixed by Thanksgiving to keep the program on track. But there are already murmurings the repair project could go past Dec. 15, reports The New York Times. The same story mentioned that potentially 5 million lines of computer code could need rewriting. If that's true, it sounds like it could be the code-writing equivalent of the D-Day invasion — massive, complex and arduous.
Which is not exactly what nervous Democrats want to hear. But they're sure to ask about it at an Obama administration briefing for House Democrats on the health law's travails scheduled for Wednesday morning. (House Republicans are requesting a similar briefing as well.)
For the congressional Democrats whose votes made the Affordable Care Act a reality and who will have to defend their support for the law in the 2014 midterm elections, the problems with the federal website are a political nightmare.
Not only do the website's problems embolden the Republican opposition to the law; they place Democrats on the defensive at a time when the party appears to have the advantage coming out of the shutdown/debt default crises.
Several recent polls suggest that Republicans greatly damaged themselves by forcing the crisis, a self-inflicted wound Democrats are eager to exploit. Some of the more ebullient Democrats even claimed that their chances for retaking the House had improved significantly.
But now there's a chance 2014 could find Democrats conducting their own version of damage control, as a result of the disastrous digital rollout.
They'll be looking for any assurances the White House can provide that the problems with the federal website will be ironed out so that the Obamacare timeline can continue as planned. The critical dates as of now are Dec. 15, when the open enrollment period ends; Jan. 1, when new policies sold by the December deadline are to take effect; and Feb. 15, the last day by which premiums must be paid for those hoping to avoid the individual mandate penalty.
But congressional Democrats may not receive assurances from the White House that those dates will be met. And based on how things have gone so far, they'd probably be skeptical if the White House gave them.
The mood within the Health and Human Services Department, as described in one recent report, probably wouldn't give Democrats reason for optimism. Yuval Levin, who worked on bioethics issues in the George W. Bush White House, talked with officials inside HHS and wrote about it for the conservative National Review last week:
"No one wants to say how long it might take, and no one would share with me what estimates they might be getting from their contractors (whom they no longer trust anyway), but there has so far been relatively little progress and it seems like everyone involved is preparing for a process that will take months, not weeks."
Levin goes on to say that HHS officials seem to be expecting that the enrollment period will be extended to March.
That, of course, could force the administration to do something Republican opponents of the law have asked it to do: delay the individual mandate provision. The mandate requires everyone to be insured by Feb. 15 or pay a penalty.
In short, the people who have some idea of what it takes to fix problems of the scale the Obama administration has ahead of it think it's a mission impossible to get all the needed work done in time to delay a central part of the law.
Copyright 2021 NPR. To see more, visit https://www.npr.org.


text:
Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
ACG (ATL VM Code Generator) is a domain specific language designed to express the compilation of a model transformation into ASM code executable by the ATL Virtual Machine (ATL VM).
Use Case
The ATL language semantics defines operations on models (such as testing condition on an element, creating an element or setting an element feature to a value). These operations are implemented by the ATL VM which executes ASM program on source model(s) to produce the output model(s).
Getting the compiled ASM version of an ATL transformation is done in three stages:
- injecting ATL source code to get it into a model based representation (XMI whose structure conforms to the ATL model)
- transform this ATL model into an ASM model
- extracting the ASM model to get it into a textual representation conforming to its syntax (ASM code).
The second stage is actually done by a transformation in ACG defined in ATL.acg.
This process has been bootstrapped. This means that ACG semantic is defined in ACG. Thus an ACG script is now compiled using ACG to get the corresponding ASM version. This means that the compilation from a transformation model to ATL VM code is done by the ATL VM itself using ACG.acg.
Resulting requirements
The reader is assumed to have full understanding of the ATL VM specification (also described in a presentation).
Exemplification base
As, historically, the ATL VM (and thus ACG) has been created for the ATL language, the example given are excerpts from ATL.acg which can be found on ATL Eclipse repository
Overall structure
ACG Header
An ACG transformation begins by its own declaration and a section which embodies the transformation description.
acg <Transformation Language Name> startsWith <Start Element Template> { <Transformation description items> }
acg ATL startsWith Unit { ... }
- Every transformation defines an entry point (with the keyword startsWith). It is a production rule called at the beginning of the transformation. It defines thereby the top level element of the transformation.
The elements used to express the transformation are the templates. They are the code production rules defined in the context of an element of the transformation language model. They define what code should be generated for this kind of item. Rule execution may be limited to only several elements of the kind satisfying a given condition. The condition can be entered after the pipe symbol.
<Context ModelElement> { <Produced code definition> }
<Context ModelElement> | <call condition> { <Produced code definition> }
Helper { analyze self.definition.feature }
- This is a production rule defined from the object Helper which carries out only one operation (analyze). Accordingly, the production rule will be called corresponding to the property feature of the property definition of the current Helper model element
Functions are used as a programming facility. Like in an object oriented language, functions are assigned to model elements and have access to all properties of that model element. They provide the means to easily request derived information from a model element, like the following example shows. Functions are declaritive constructs and behave like functions in a functional language.
function <Context>::<Function Name>(<Parameters>) = <Function Definition>;
function OclModelElement::encode() = 'M' + self.model.name + '!' + self.name+';';
- This function without parameter is defined on OclModelElement to build a string.
Attributes can be used to decorate model elements with extra information.
attribute <Context>::<Attribute Name> = <Attribute Definition>;
attribute Object::location = self.__xmiID__;
- From the comment in ATL.acg: "ACG uses the location to distinguish variable declarations but the QVT metamodel does not have this feature. Therefore, we emulate it using the xmi ID."
Code production helpers
Code Production Management Statements
If Statement
Clearly, the code generated depends on a given condition.
if(<condition>) { <Produced code definition> } or If Then Else Statement if(<condition>) { <Produced code definition> } else { <Produced code definition> }
asm Module name self.name { ... if(self.isRefining) { report error 'refining mode not supported by ATL 2006 yet' } ... }
- In this example, an error is raised if the isRefining property of the object Module is true.
For Each statement
For each element (accessible through a roaming variable) of the collection constructed by a given OCL definition, the corresponding code is generated (potentially using the roaming variable).
foreach(<roaming variable name> in <OCL construct of collection>) { <Produced code definition> }
foreach(p in self.parameters->select(p | p.kind='in')) { param p.varName : 'J' }
- This statement is defined in the context of an object having a multi-valued feature named parameters, of which only the only which property kind is equal to 'in' are filtered using the OCL select function. For each one of these parameters a param instruction is called with arguments:
- the varName feature of the parameters component in question
- the string "J"
- In one of the following sections it is explained how the param keyword is used in conjunction with an operation and what effects its parameters actually have.
Only Once Evaluation Statement
The corresponding rules will be evaluated only once. If it is defined inside a Foreach statement, the evaluation will be done after the last loop executed and is then inserted into the resulting assembly from the loop. This is useful for blocks interweaving.
[ <Produced code definition> ]
foreach(i in self.iterators) { ... iterate ... [ analyze self.body store self.result ] } enditerate ... }
- If there is three objects iterator, the result will be as below:
<iterate/> <iterate/> <iterate/> ... result of production rule defined for the body object... <store arg = "23"/> <enditerate/> <enditerate/> <enditerate/>
- If there is a zero objects iterator, only once will not be evaluated:
Analyze statement
Call the matching template for the model element(s) resulting from the OCL evaluation in the current context. Between braces we can put the production code that should be executed after each temple calling (not used in example).
analyze <OCL navigation to model element>
analyze <OCL navigation to model element> { <produce code definition> }
analyze self.inPattern.filter
- From within the current object, this will fetch the object pointed by the inPattern reference, and then will follow its filter reference to get the object which will lead in the launch of the production rule corresponding to the objects type.
Offsets management
The procedural style of ACG (defining templates as units of processing) leaves the replacing of a template call by corresponding code to the compiler. This results in a lack of a priori knowledge of the amount of code generated by an analyze statement and thereby in the difficulty to handle code offsets (needed by some instructions of the ATL VM). To fix this difficulty, ACG provides a mechanism of labels.
<label name>:
This way, the ACG compilation replaces any argument of jump instructions referencing a label by the correct offset. Of course, no trace of label is left in the ASM code.
code IfStat { analyze self.condition if thn analyze self.elseStatements goto eoi thn: analyze self.thenStatements eoi: }
- This code starts with an analyze statement followed by a if statement. We can assume that the result of the evaluation of self.condition will lead to instructions pushing their result (a boolean) on the stack. The if statement will ask an evaluation of this variable and will make the execution continue at a point depending on the result. If there is true on the top of the stack, the execution pointer will jump over the instructions produced by the production rules before thn:. Otherwise it will continue on the next line. The goto statement will always make the execution pointer jump to the location of the eoi: label.
Inside foreachstatements a parameter can begiven to the label, so the compiler knows it should recalculate the offset for each iteration.
foreach(subRule in self.subRules()) { <Production code> unmatched(subRule): }
- Here we would find jumps inside the production code of the foreach loop that act as forward/continue statements. Without the extra parameter the offset will be calculated only once and later iterations will jump backward, possibly creating infinite loops
Simple code factoring
The let statement allows a programmer to write an OCL expression only and use it several times. The resulting value is bound to a literal. This way, anywhere inside the let statement scope, the compiler will replace this literal by the corresponding OCL expression.
Let <literal binding> = <OCL expression> in <expression using literal binding>
Let <literal binding> = <OCL expression> { <code using literal binding> }
let ep = self.elements ->select(e | e isa CalledRule) ->select(e | e.isEntrypoint).first() { if(not ep.oclIsUndefined()) { getasm call 'A.' + ep.name + '():V' } }
- The outer brackets define the let statement's scope (the code in which ep will be recognized). The code inside uses this binding resulting in a clearer and smarter code.
Usage of ACG structures
Calling Templates
Templates can be assigned call condition which allows to define several behaviours for a single type depending on a condition.
When an analyze statement is found, a template defined for the element's true type is called. Consider there exist multiple conditional templates for this type, then the conditions are evaluated within the context of the element that is being analyzed. As conditions must define a partition of candidate model elements, at most one conditional template can be called. In case that no conditional template is defined or no condition is matched, the default template (the one with no condition call on it) is called.
Calling Functions
Functions can be called on model elements if they are of the type (or a subtype of) of the function context. A function defined on type foo, named bar and with no parameter would be called this way:
<template type> { <instruction> <OCL navigation leading to a foo element>.bar() }
MyObject { push self.foo.bar() }
Parameters can be put in a comma-separated fashion between the parenthesis. They are passed by reference so can be used as return values.
MyObject { <Production rules with a declaration of variable x> push self.foo.bar2(x) }
Calling Attribute Values
Much the same as for function calling, but without parenthesis.
Operation based instructions
To define an operation in the compilation outcome, ACG provides the following instructions:
Declares a context for the other operation based instructions.
Sets the type on which the current operation can be applied.
context <encoded type>
Sets the name of the current operation.
name <operation name>
Adds a parameter at the current operation.
param <parameter name> : <parameter type>
operation context 'A' name 'resolveTemp' { param 'value' : 'J' param 'name' : 'S' ... }
- This is the definition of an operation called resolveTemp on the ATL context module with two parameters (an Object value and a String name). This will generate an assembly operation as demonstrated below.
<operation name="resolveTemp"> <context type="A"/> <parameters> <parameter name="value" type="J"/> <parameter name="name" type="S"/> </parameters> <code>
Allocates a slot in the operation. The scope of the the variable is defined by the brackets. It also calls a store instruction at its place (the result is an immediate initialization of the variable with the value on the top of the stack (popped).
variable <identifier> name <variable name> { <Produced code definition for which the variable is defined> }
The variable instruction is defined on a model element but also needs a name. The combination of these two allows ACG to maintain variables across severall rules. Several variables with the same name can coexists in the same code scope.
variable self named 'e' { getasm load self call 'A.__resolve__(J):J' call 'QJ.including(J):QJ' }
- The variable definition (line 1) allows the load call (line 3). Remember that a variable declaration also immediately stores a value, so we have to be sure a value is available on the stack before we can declare a variable. For a case where the value can't be known prior to declarationm one can use OclUndefined
As normal variables are local to operations, we also need a way to specify global variables. This can be done with the field keyword. They can be specified in the ASM context or within rules, so they can be generated from the input model.
field <field name> : <field type>
field 'links' : 'NTransientLinkSet;'
- This generates a global variable of type NTransientLinkSet. Later more on this type.
Since fields reside in the global asm context, they are referenced as a property of this context. The following example illustrates this.
getasm get 'links'
- This code will pop the content of links a NTransientLinkSet on the stack.
VM Instructions
There exists one statement per ATL VM instruction. Each of these statements have the same name than the instruction and, of course, leads to the production of this instruction in the target model.
An instruction is followed by its operand as defined in the VM specification. For some arguments defined in ACG, the compiler performs a rewriting (or more exactly an interpretation -read transformation) given that that ASM code is not convenient to write by hand and that ACG could help by making things more "human compliant". It is the case for :
- the load instruction: Its argument is a variable reference. In ACG, this reference is:
- the identifier of a common variable
- the name of a parameter.
- → It is rewritten in corresponding slot number.
- the if instruction: Its argument is a referrence to a label.
- → It is replaced by the offset from the location of the label after code generation.
- the goto instruction
- → See if
Things to Keep in Mind
When writing ACG code, we specify compile-time calculation to generate runtime code. We have to keep in mind that the only interface between compile-time and runtime is the generated assembly file. At runtime we can't access the language model, so any complex model structure we want to referrence, has to be specified in the generated assembly explicitly. We can circumvent this problem to a certain extend by making use of some higher level model queries provided by EMF, shown in the following section.
Usefull Functionality
Transient Links
Writing model transformations, we often have to keep track of the tracibility links created between source and target models. Model transformation languages like ATL and QVT keep track of these links behind the screens, they can then either be explicitly referenced in the language (as is the case in QVT Operational Mappings) or they can be used by the language to automaticly transform links between model elements (as is done in ATL and QVT relational). Either means that, implementing these languages, we need to keep track of the links. The ATLVM therefore provides the TransientLink object. It can be referenced in ACG.
push 'TransientLink' push '#native' new dup push self.name call 'NTransientLink;.setRule(MATL!Rule;):V' foreach(ipe in self.inPattern.elements) { dup push ipe.varName load ipe.actualDeclaration() call 'NTransientLink;.addSourceElement(SJ):V' } ...
- In this example a TransientLink is created, given a reference to the executing rule and some source model elements are added. We can also add target elements and variables and later store the link in a TransientLinkSet. More on this can be found in ATL VM specification.
NOTE: Maintaining trace information can also be done by specifying another input model to store these informations.
EMF Model Query Functions
As noted before we cannot access the language model at runtime, making it dificult to implement lookaheads and things like that. EMF however provides facilities to reference the model via queries on the metametamodel. Here some examples that might be useful for your compiler design. These functionscan be called runtime and compile-time on any model element.
- Will get all the parent of the model element.
- Will get a Set of all the children (referrences) of the model element.
- Will get implicit type of the model element as resolved by the metamodel.
We can use the above functions to search the entire tree.
function Object::getObjects(s, result) = let leafs = self.__all in let newresult = result.union(leafs->collect(l|l.eClass().name = s)) in leafs->collect(l | l.getObjects(s, newresult)); --use of getObjects function Transformation { let res = Sequence{} { let self.getObjects('Variable', res) { foreach(var in res) { .. } } } }
ACG also does not allow us to define (static) global compile-time variables. We can emulate these by adding an attribute to the Object model elements, the super type of all model elements. The following example uses this to be able to switch from a debug to normal compiler.
attribute Object::__debug = true; --either true or false
- The debug variable can now easily be accessed in any context.
Once the ACG file is defined for the transformation language model, it has to be compiled so that every transformation written is this language could be compiled into ASM.
This is done thanks to an AMMA tool set including several Ant scripts. Those scripts are intended to provide all the facilities to build a Domain Specific Language (editor, megamodel, concrete and abstract syntax and a compiler if the semantics relies on the ATL VM).
The source of ACG is provided as the ACG language project, which contains:
- The ACG metamodel in KM3.
- The ACG concrete syntax in TCS.
- The ACG compiler in ACG.
List of Existing ACG Specifications
This section lists some ACG specifications:


text: Experience the thrill of Celebrating David Bowie live in Boston, MA! Immerse yourself in unforgettable performances that promise to be the highlight of your year. Secure your spot with top-tier seats and exclusive VIP packages, all with a 100% guarantee. Act quickly to grab your tickets for Boston's most anticipated concerts at the best prices. Hurry, these coveted VIP packages are in limited supply – book your unforgettable experience today!


text:
This web site has been developed using web standards and accessibility to allow for people of all abilities and disabilities to browse its content. Below are instructions on how to navigate and manipulate the content of this site.
Most assistive technologies and some browsers facilitate navigation by headings.
Most assistive technologies and some browsers facilitate navigation by page landmarks, such as the page header, footer, and navigation blocks.
Access Keys are a means for people to jump immediately to a specific part of an HTML page by pressing ALT+SHIFT (PC) or CTRL (Mac), followed by the appropriate key on the keyboard, as defined by you via an accesskey parameter. Below is a list of access keys that are available for this web site.
Most web browsers allow you to scale images and text up and down to meet your needs.


text:
Transfer Case Service
The Basics Behind Transfer Case Services at Action Tire & Automotive Centres Inc.
A transfer case is one of the serviceable components in a four wheel drive system. Present in both full-time and part-time 4WD vehicles, the transfer case operates with the help of gears and, in many modern cars, a chain. Usually, a transfer case indirectly connects to the transmission's rear. The transmission sends power to the transfer case which in turn sends the power, or torque, to the front and rear drive shafts. Because of the transfer case, the wheels can spin at the same speed, and the vehicle is able to enter or maintain its four wheel drive. Often, part-time 4WD vehicles use a transfer case with an extra set of gears that allows for the creation of extra torque through the selection of a high or low gear range. This can make it easier to climb steep hills and mountains. Transfer cases also contain a lubricant that keeps gears running correctly. Because they are a significant part of the 4WD system, it is important that drivers maintain them.
Why Should You Have Transfer Case Services Performed at Action Tire & Automotive Centres Inc.?
Adhering to proper service intervals for transfer case maintenance can help extend the life of your transfer case and 4WD system. Being aware of the symptoms of a faulty transfer case can also help with determining the proper time to have your transfer case serviced. Warning signs include grinding noise, difficulty shifting into 4WD, and leaking lubrication. In a part-time 4WD vehicle, a faulty transfer case can prevent the vehicle from engaging or disengaging from four wheel drive. In addition, contaminated lubricant can harm the gears inside the transfer case. Our staff can look over your transfer case and replace any bad fluid. We'll also review the case, its gears, and if present, the chain. When you're ready, let us help you prevent unnecessary damage to your 4WD system with our transfer case service.
We proudly service the Transfer Case Service needs of customers in Barrie, ON, Innisfil, ON, Orillia, ON, and surrounding areas.
Areas Served : Barrie, ON | Innisfil, ON | Orillia, ON | and surrounding areas


text:
What they say about this article
Hey, Stephanie!
This looks REALLY great and pork tenderloin is my favorite cut of pork...but it looks like something else in your photo. I just wanted to make sure you used tenderloin and not pork loin or shoulder or something like that.....
Thanks! LOVE your stuff...using my crock pot a LOT more since I found you a couple of years ago!Hi CBW, huh! The ziplock I pulled the meat out of said tenderloin, but you're right the meat looks a bit mysterious in the photo. I bought in bulk, cut it into hunks then froze and so I think that's why it looks a bit wonky.
A shoulder or butt would work great though, or even a beef chuck or rump roast if you didn't want to do the pork.
I'm glad you found me, and I'm happy to be of help. xoxoI love your blog, haven't commented in awhile. Just wanted to let you know that the saeurkraut you can find in the refrigerated section is lovely, it doesn't taste "tinny" as the canned stuff occasionally does. Also, if it's too sour for your taste, you can also rinse it a little bit.
ReplyDeleteHi Steph,
Can I make a suggestion? If you can find sauerkraut packed in a glass jar, or if your really lucky, the plastic bag packed stuff in the refrigerator section, give that a try. It has a much nicer flavor than the canned stuff.One of my favorite vegetarian casserole recipes is called "Escalloped Apples Au Gratin" -- it's in Moosewood or one of its follow-on cookbooks. It has a 'mystery' ingredient which adds a nice crunch -- and it's sauerkraut! No need to tell people that don't like it because besides the crunch, there's no way to know it's there. Apples, onions, breadcrumbs, nuts, cheese and sauerkraut. It's really good.
But this looks really good too ;-) Thanks for all you do,
-sueMy husband's family is german, and they make their own sauerkraut. at thanksgiving, we canned over 150 jars. I never know what to do with the stuff, except do sausage and sauerkraut sandwiches, so I will definitely give this a try! sounds delicious!
ReplyDeleteOh no, you're two weeks too early! Pennsylvania Dutch tradition is to eat pork and sauerkraut on New Year's Day for luck. Supposedly the pork represents moving forward in the new year and the green color of the cabbage represents the green color of money....or something like that but, I eat it because it's what my Mother did and it's delicious! Anyway hope you saved some leftovers for a lucky New Year. Looks like I might be trying a new recipe this year so thanks for sharing :)
P.S. I highly recommend eating this on top of mashed potatoes and adding a sliced up apple to the sauerkraut, it tastes amazing.Can't wait to try the port with sauerkraut. I only have one other dish that uses sauerkraut and I love it. I'm buying your first cookbook as a present for myself this Christmas. Can't wait to drool all over it.
ReplyDelete- Anonymous12/15/2010
My daughter makes a version of this with a few more veggies added she calls sauerkraut soup. She serves it in soup plates over boiled potatoes. Can't wait to tell her she can make it in the crockpot.
ReplyDelete @joannabug & @Tammi, After being cooked, I really didn't taste anything tinny, but those are great points. I was also trying to keep the cost of this meal way down.
@bostonred, wow! that sounds fantastic. I'm always looking for vegetarian main dishes.
@kristin, preserving your own sauerkraut! I love it!
@KT, ah! I had no idea---I'm going to look that tradition up, thank you!
@anon, I'd imagine stretching this with broth and potatoes would make a great soup and feed an army!
@anon2, Kim-Chee would work perfectly. great idea!
xoxo- Anonymous12/15/2010
What is the difference between kosher salt and regular salt or sea salt? I see it at the store but have never bought any as I didn't understand why I should?!! But this recipe sounds wonderful, and I have a pork roast in freezer right now.
ReplyDelete I am not a big hot dog fan, but there is something about going to Costco and getting a hot dog after all of that shopping! The recipe looks delicious.
ReplyDelete@anon---kosher salt isn't iodized and doesn't taste quite as "salty"
the granules are also bigger.
you can certainly use regular ol' table salt, just cut the quantity in half while cooking and then season to taste if needed at the table.
xoxoBavarian kraut is a little sweeter than the regular canned kraut too, if your taste buds don't like the twang of it.
We personally love kraut and have it with smoked, polish or turkey sausage for a quick dinner quite often.I'm another new convert to the glass-jar kraut. Yum.
Can't wait to try this--I'm another Pennsylvanian looking for a twist on the usual New Year's Day recipe--thanks!Thanks for re-introducing me to my slow cooker. Now I use it at least once a week. My sister and I are planning a family get-together and we have at least four cookers (including our mom's original avocado green crockpot) available for use. Love your site!
Janet- Anonymous12/16/2010
I know how our New Year's pork will be cooked this year. I agree about the caraway flavor and missing it now that we are GF.
ReplyDelete @Holly, I *was*! for a good 30 years! and then something happened during this last pregnancy and I began sneaking it (started with bacon), and I was okay. I can now eat it willy nilly. :-)
ReplyDeleteYour blog is so wonderful - I am in love with my crock pot.....how could someone not be? thank you!!
ReplyDeleteMy hubby and mother LOVE saurkraut, so I emaile dher this link to make him!!! maybe I'll even give it a tsate!!
dizzyhappymama.comI usually make this recipe with on the bone pork chops and by the time I am finished they are falling off the bone and I am in love! Great to see someone else go over to the delicious side called sauerkraut!
ReplyDeleteThis is the standard New Year's Day meal for my husband's German family. We have it with dumplings or mashed potatoes, and it's just delicious. We also eat it throughout the year, but it's guaranteed on NYD. So tasty!
ReplyDelete- Anonymous12/17/2010
Does anyone have any suggestions on how to keep the house from smelling like what ive been cooking in the crockpot? I am single and live alone. I dont like to cook because i seem to have to eat leftovers of the chosen recipie for many days afterwards. I know i can freeze the leftovers, but by the time i have smelled it while preparing it, then smelled it while its cooked(sometimes overnight) and by then finally get to eat the first serving, i feel like ive been eating it night and day for a week already.
ReplyDelete Hi Stephanie - I just now set the timer on my slow cooker to make this. I added a few potatoes (yukon gold, quartered). Do you think I should add water?
I was so happy to find this recipe. I have my mom's recipe for "Sauerkraut and Spare Ribs", which involves coating the ribs in flour and browning before putting everything in the oven, which is kind of a pain.
Can't wait for dinner tonight!Good luck with your new book. I remember seeing you on Good Morning American for your last book when you were pregnant and looking too cute.
ReplyDelete- Anonymous12/19/2010
Our family is from Germany (well, long ago) and my dad is a second generation butcher. Try this with a pork tip and use the bagged or bulk kraut. Far better than the canned stuff. You can drain off the juice, rinse if desired, and even substitute chicken stock for a more mild flavor. We always throw in some sliced apples (skin on). My German great-great & great grandmothers taught my grandpa to do it this way. Supposedly the apples cut down on, uh, the less desired qualities of sauerkraut! Anyway, the recipe sounds yummy, now I'm craving some sauerkraut & mashed potatoes!
Jen @anon, LOL! that's a dieting secret. :-) If the smell bothers you, you can plug the cooker into an outlet in the garage, or a room in the house with the door shut.
@Julie Gomoll, the potatoes will cook in the juice just fine without needing any additional liquid.This is quite similar to one of my favorite recipes --- and of course a standard on New Year's Day. I often make it with the country ribs in the pork section --- and I add one sliced onion (cut in half then sliced and mixed in with the sauerkraut) and (of course) three or four garlic cloves. I'm also a fan of the sauerkraut in the refrigerated section. After reading the comments, I have to go find the Moosehead recipe bostonred mentioned! I go for the polish dogs at the Livermore Costco ;-)
ReplyDeleteIt looks like some Germans have already latched onto this recipe and suggested the addition of apples and onions. :-)
A version of this recipe is a staple in our house. It is what we are going to be having for New Year's.I ended up using riblets since I couldn't find tenderloin at the store I went to. I bought rosemary rolls to accompany the dish, but I forgot to serve them. It turned out great anyways and my mom made sammies with the leftovers.
ReplyDelete- Chip L12/29/2010
As KT mentioned I heard of the German/Pennsylvania Dutch tradition of pork and sauerkraut for New Years Day. With some of their family up in Lebanon, PA - thought that this would be a great thing for us to fix together for our first New Years Day as a couple.
Quick back story - I was a slave to the frozen meals. Long story short I hated to cook - too much work. Well the first present I got from them was a crock pot so that we could cook healthy together!
In searching around for slow cooker recipes I came across your website. So far I have tried your Pizza Fondue, Meatballs in Chile Sauce, Meatballs in Cranberry BBQ Sauce (added a zing to that by adding kielbasa to it), and the 3-packet Pot Roast (twice so far since it was such a great hit). All have been great hits with all that I have shared in cooking these recipes for - even got requests from their family for repeats during this Holiday Season. Even branche out on somethings on my own.
Guess that is why I got a baseball cap with Crock Pot Wizard on it - but I owe it to you... :) - Anonymous1/04/2011
I just stumbled on your web site and I am so excited to try some of your recipes. Especially the Thai and Indian ones. I am a full time working mom and anything to help is always welcome. Thank you so much for all your hard work. :-)
ReplyDelete - Chip L1/09/2011
This was awesome!
Just did one with kielbasa, and is yummy with all the spices even.... Can I cook this on hi for 1/2 the time? I never seem to get my crockpot started before lunchtime. :P
ReplyDeleteCan you use pork loin chop for pulled pork? I'm a vegetarian but I so badly want to make pulled pork for my fiance...What's an economical way to make pulled pork for one?! :/
ReplyDeleteMy grandmother used to make something similar - minus the slow cooker, of course, but you can add some Yukon Gold potatoes cut in half for a rounded-out meal. They absorb the flavors of the pork and kraut, and you can smash them with your fork and a little butter for a gloroius addition to this one pot meal!!
ReplyDelete- Eileen4/27/2012
This was terrific!
Sliced two potatoes and one med onion.
Put a teaspoon of oil on the bottom of the
Layered the potatoes and onions.
Salt & Peppered the 2.25 lb. tied roast pork piece.
Placed on top of the vegs.
Added a bag of sauerkraut, (drained, rinsed)
and some caraway seeds on top of roast.
4.5 hours later, in a 5.5 crock, on low, this
was tender and oh soooo good.
Thank you Steph, I think we love you. We make this all the time....I make it and my daughter makes it at her house...we buy the sauerkraut that already has caraway seeds in it.....
And you don't have to use pork tenderloin....any cut of meat will do, even a cheaper cut, because the kraut will tenderize the meat too.....and we also roast pork and beef roast together.....just gives it a super flavor.....you gotta try it sometimes.....it is delicious......Thanks for having the EDIT button on here....after I had written my message and entered I noticed that it had 2 errors...and then I saw I could edit it....I love this .....not many blogs has it....I think you might be the one one that does that I belong to, even tho I have suggested it to all the blogs, they seem to ignore it.....or act like they are unable to do it !!!! so I know I am going to love your blog.......when I saw this pork roast recipe, I knew I loved your blog then.... and yes when we go to Costco or Sam's Club, we always get a hot dog with the pkg. of sauerkraut and bring it home and that is our dinner that day....can't beat the price that is for sure......


text:
Hey, Mississippi can righteously proud of the part it played as the cradle of America's quintessential music, the blues. American music by way of Africa. One place in particular, Mali, has long laid claim to giving birth to the blues.
MONTAGNE: Here the legendary Ali Farka Toure.
Mali's musical tradition was threatened this past year when Islamist militants took over the vast deserts of Northern Mali and immediately banned music - an incredibly painful experience for Malians.
FATOUMATA DIAWARA: We listen to the music like our God. It's very spiritual.
MONTAGNE: That's Fatoumata Diawara, also a Malian musician.
DIAWARA: Music, it's a kind of hope for us. Even if we are not musicians, people need music.
MONTAGNE: When the militants made music a punishable offense, the fabled Festival in the Desert was cancelled. Local musicians fled south. And Ali Farka Toure's son stopped coming north. We reached Vieux Farka Toure while he was on tour in the U.S.
VIEUX FARKA TOURE: I'd like to be there with the family, with everybody, to see what's happened. But I call every morning, every night, every day. You know, it's like my head is in Mali.
MONTAGNE: For her part, Fatoumata brought together musicians from all over Mali to record a song pleading for peace.
DIAWARA: Every voice is different and that for me is powerful. We bring more than 40 people and everybody was a Malian. Tuareg, Sicaso, Segou on one record. We are all the same. We come from the same rhythm - tickita tickita tickita.
MONTAGNE: This song, "Maliko," was recorded a week before the French troops began retaking the north of the country.
Life in Mali is by no means back to normal. Even in the South, public concerts are now banned under a state of emergency. Still, Malians live for their music. And musicians are already planning to host the Festival in the Desert just outside Timbuktu again next year.
This is MORNING EDITION from NPR News. I'm Renee Montagne
And I'm Linda Wertheimer Transcript provided by NPR, Copyright NPR.