László Trócsányi

László Trócsányi (born 6 March 1956 in Budapest) is a Hungarian lawyer, academic, diplomat and politician, Member of the European Parliament (MEP) since 2019. He was Hungarian Ambassador to Belgium and Luxembourg from 2000 to 2004. He was a member of the Constitutional Court of Hungary between 2007 and 2010. He served as Hungarian Ambassador to France from 2010 to 2014. He was Minister of Justice in the third and fourth Orbán cabinets, from 6 June 2014 to 30 June 2019. He was the Hungarian candidate for the membership of the von der Leyen Commission, however, his candidacy was dismissed by the European Parliament for conflicts of interest.

Biography

Trócsányi is a lawyer, former judge, a diplomat and university professor. He specializes in constitutional law, European law and comparative law.

Studies and academic career
He began his university studies in 1975 at the Faculty of Law of the Attila József University of Szeged (József Attila Tudományegyetem, since 2000 University of Szeged).  In 1977, he joined the Faculty of Law and State Sciences of the  Loránd Eötvös University (Eötvös Loránd Tudományegyetem, ELTE) in Budapest. He graduated in 1980.

He began working as a research associate in the Hungarian Parliament Library and then became a collaborator of the Institute of Legal Studies of the Hungarian Academy of Sciences  (Magyar Tudományos Akadémia, MTA).  Admitted to the bar, he was hired as a lawyer in 1985 in Budapest, but remained a collaborator at the MTA.

In 1987, he became an assistant at the Department of Constitutional Law at the University of Szeged.  From 1989 to 1990, he is a fellow at the Catholic University of Louvain  and works with Professor Francis Delpérée. Trócsányi obtained his doctorate in 1991 with a thesis on the administrative jurisdiction in comparative law.

In 1991, he co-founded the law firm Nagy & Trócsányi with Péter Nagy in Budapest. Throughout his later years in politics, his law firm has remained involved in representing clients in relation with governmental matters.

Trócsányi was appointed lecturer in the Constitutional Law Department of the University of Szeged in 1992 and chaired the departmen from 1994 to 2010. In addition to these activities, he also held the position of Associate Dean of the Faculty of Law of the University of Szeged. Since 2000, he has been an accredited professor at Szeged University and for many years held the position of Secretary of the International Association of Constitutional Law.  Between 2005 and 2007, he chaired the Committee for International Relations of the Budapest Bar Association.

In 2004 he became director of the Center for European Studies at the University of Szeged.  Between 2005 and 2008, he worked as an associate professor at Université Lyon-III.  In 2013, he initiated the creation of the Centre universitaire francophone at the University of Szeged.

Judicial and diplomatic career
Trócsányi served as Ambassador of Hungary to Belgium and Luxembourg (2000-2004) and to France (2010–2014).

He was also a member of the Venice Commission of the Council of Europe (2005-2013) and a member of the Hungarian Constitutional Court (2007–2010).

Political career
On 6 June 2014, Trócsányi was appointed Minister of Justice in the Third Orbán Government.
As Minister, he initiated legislations that the Juncker Commission brought to the European Court of Justice to scrutinize whether they harmonize with the EU laws or not. Among the norms introduced during his tenure were the criminalization of NGOs providing legal assistance to asylum seekers, the amendments to the higher education law that made the Central European University relocate its headquarters from Budapest, and the norms that created legal environment for establishing border transit camps where asylum seekers are detained before a decision is made about whether they are allowed into the country or not. A draft law introducing special administrative courts in charge of corruption cases was finally put on hold as the membership of the Fidesz party was suspended in the European People's Party. With Trócsányi's approval, Hungary chose to extradite two Russian arms-dealers who had previously arrested in a joint operation of the US and Hungarian police, to Russia rather than to the US. Hungary also granted immediate asylum to disgraced former prime minister of North Macedonia Nikola Gruevski, who was convicted in his native country of corruption, while refusing asylum to people fleeing from conflicts abroad. The developments in Hungary under his tenure as Justice Minister raised severe concerns as regards the erosion in the rule of law in the country. The European Parliament called for an Article 7 procedure to be opened against Hungary for serious breach of the founding EU values during his mandate.

Trócsányi was the lead candidate of the Fidesz party list at the 2019 European Parliament election, when he was elected a Member of the European Parliament (MEP).

Trócsányi has been nominated as EU commissioner from Hungary on 9 September 2019. He had previously considered the vice-presidency of the European Parliament’s Committee on Constitutional Affairs. He was offered the portfolio of Commissioner for European neighborhood policy and enlargement.
His nomination was criticized by several Balkan scholars and observers, taking account of his role in undermining the rule of law in Hungary.
Von der Leyen defended the choice stating that Hungary's objectives "are clear regarding the integration of the Western Balkans, which are in line with the political agenda of the new European Commission".

Trócsányi had to be confirmed as Commissioner in October by the European Parliament, where he could face strong opposition by Socialists, Greens and Liberals. On 26 September 2019, it was reported that Trócsányi will be questioned by the European Parliament Legal Affairs Committee about their declarations of interests due to potential conflict of interests and "discrepancies in property statements". Trócsányi was rejected on 26 September as well by 11 votes to 9 due to his personal finances in connection with his law firm, he founded before becoming Minister of Justice and due to concerns about "connections to Russia" in relation to extradition of Russian suspects to Russia. Following the decision, Trócsányi published a statement on his Twitter account later that day, stating that he will take all legal steps against the decision. The Legal Affairs Committee again rejected his nomination with 12 votes to 9 on 30 September 2019. Thereafter, President-elect Von der Leyen asked Prime Minister Viktor Orbán to propose a new candidate. Orbán nominated Olivér Várhelyi, Hungary's Permanent Representative to the EU, instead of Trócsányi.

Views
Defending the Orbán government's immigration policy, Trócsányi stated that "Central Europe is very reluctant to accept multiculturalism, especially since it does not seem to work so well in Western Europe".  He believes that the issue of migration is decisive, "because it affects the composition of the population of the country, and therefore the type of society in which we will live, not only today but in twenty years."
He is critical of the idea of the migrant quotas floated by the European Union  that would impose embracement of foreign populations on the EU countries that deny participation in the redistribution of the illegal migrants who arrived in the more economically developed parts of the EU in search of a better standard of living. In his opinion, this obligation may affect the national sovereignty and the constitutional identity of the  Hungarian State.

Private life

László Trócsányi is married and has three children.

References

Government - Ministry of Justice - The Minister (in English). Hungarian Government.

External link

Category:1956 births
Category:Ambassadors of Hungary to France
Category:Eötvös Loránd University alumni
Category:Fidesz MEPs
Category:Hungarian diplomats
Category:Hungarian jurists
Category:Hungarian lawyers
Category:Justice ministers of Hungary
Category:Living people
Category:Members of the Fourth Orbán Government
Category:MEPs for Hungary 2019–2024
Category:Politicians from Budapest


In more than 40 episodes spanning 75 years, equity and bond fund investors have defied predictions that they would panic and spark crises. Yet banking regulators won’t let go of their “run” scenario. Why?

Romania’s new PM dogged by old election promises

Romania’s new prime minister made his first official trip abroad to Brussels this week, keen to escape backlash over a controversial tax plan that has marred his first days in office.

Mihai Tudose — the second prime minister from the ruling Social Democrats (PSD) in six months — has faced criticism for a tax hike his party proposed for companies and high earners that's seen as a major U-turn from the tax-cutting, wage-hiking platform that helped the PSD win 46 percent of votes in December’s parliamentary election.

Backed by a strong majority in parliament, with no elections scheduled and riding on the highest economic growth in the EU, Tudose’s government should face a smooth ride. But Romanian politics rarely follows the script.

The reason behind the tax U-turn was "the protest," said Otilia Dhand, senior vice president at the consultancy Teneo Intelligence. "The PSD had to backtrack [on the decree that sparked the protests] and make sure they ensure a sustainable level of support” by ensuring that election promises were fulfilled. And for that, the PSD needs more money in the public purse.

The protest in question rocked Romania in February. Hundreds of thousands took to the streets against a government decree that could have seen many politicians and senior public officials avoid prosecution for graft.

In exchange, he said he hoped the European Commission would end a monitoring scheme on corruption and judicial reform it runs in Romania by the time his country takes over the rotating presidency of the Council of the EU in early 2019.

But while Tudose was in Brussels promising not to rock the boat, his party leader Liviu Dragnea was fighting fresh corruption allegations back home. Dragnea is accused of having connections to a private company that's been doing work for public authorities, accusations he denies. Dragnea would likely be prime minister himself if it weren't for a suspended jail sentence that prevents him from taking on the role. He remains the most powerful man in the PSD.

Tudose, 50, was appointed as prime minister in late June, following the ousting of Grindeanu. Tudose was economy minister in Grindeanu's cabinet but resigned before the no-confidence vote against his former boss, as did most of the cabinet.

“The PSD has a tall election order that they have a problem fulfilling,” said Dhand. She added that plans to finance pension and public wage increases have never been fully costed, which in part explains the controversial new taxes the party wants to impose, which would see turnover rather than profits subject to taxation.

The tax plan already looks dead in the water. “It is becoming more and more clear that the tax cannot be introduced as such,” Tudose said on Tuesday in Brussels.

He also promised to keep in check Romania’s budget deficit, which the European Commission warned in May would overshoot the 3 percent of GDP limit this year. “The main risk to the outlook is the possibility of a further fiscal stimulus in line with the government program, which may boost domestic demand in the short-run, but at the expense of posing additional risk to the sustainability of public finances,” the Commission said.

In 2016, Romania's GDP grew by 4.8 percent — an eight-year high — but it would not continue at the same pace without “structural reforms to support competitiveness,” the Commission said.

Tudose was keen to talk about more positive news during the Brussels trip, however, telling reporters that some €600 million in European funds would start flowing to Romania in the next few days, to be used for infrastructure and environment projects.


Q:

Restore default ribbons with vba (Using a custom UI)

Sorry, I know this case has been discussed often, but I didn't find the perfect solution.
In my access database I use a custom ui per USysRibbons, this works great. The default UI is not shown in User mode, but there should be a button that simply restores the default UI. What would be the best solutions for this?

A:

You can hold down the shift key during startup – your custom specified ribbon will thus not show.
Of course, during development and desing, you will hold down the shift key so your startup settings don't run. You then develop for a while, and then to test in "user" mode, you exit, and then re-enter the application without the shift key bypassed. You will likely do this dance all day long as you run/test as user mode, and then flip back in to developer mode.
You cannot really develop or modify things when you run your application with the startup settings and custom ribbon set. And there are SO MANY settings you need and trying to code all these settings is a real waste of time. So just use shift-by-pass them when you want to work.
A really cool trick is to place a compact + repair button on the QAT. So when working, it is ONE mouse click and you simply do NOT hold down the shift key – presto without an exit + re-enter you are now in "user" mode and all your startup settings are now "active" and engaged for you to test your application in "user mode". And this includes your custom ribbons.
Another c+r and HOLDING down the shift key will flip you back into developer mode. This assumes you have the c+r inn your QAT and likely your startup settings will hide this. So in this case to "flip" back to developer mode I simple hit alt-f4 to exit the whole application. At this point the accDB file in windows explore will STILL be highlighted so I now tap the enter key.
So exiting and shifting between "user" and "developer" mode "dance" will occur all day long.
When you finally have things just right? You THEN compile the accDB down to an accDE to lock your code and forms designs. You also can and should disable the shift key by-pass and distribute this compiled application to your users. Compiled applications not only lock up your forms and code from any changes, but such code run MUCH more reliable since un-handled errors will NOT reset global or local vars – you can REST assured that all variables remain intact during the WHOLE time the user is running your application.
The above is really quite much the only practical approach to developing in Access.
Better yet this approach ALSO eliminates the need to have all kinds of code that attempts to hide or show the developer surfaces in Access – in fact you find that many settings are rather elusive or difficult to set in code anyway such as AutoExec macro, or even the application wide custom ribbon. And even more worse is such settings often require a re-start of Access anyway. (once access has stared, then it TOO LATE to modify the settings and if you do, a exit + reenter is required).
All of this huge whacks of code and hassle can simply be eliminated by holding down one little tiny shift key to enter in as a developer.


If Governor Rick Perry approves Senate Bill 21, those seeking unemployment benefits in Texas may have to take a drug test.

Republican Senator Tommy Williams introduced the bill in February, and on May 22 it passed in the House with a 104-42 vote. On Saturday, May 25, it passed in the state Senate. Now it is in the hands of the governor.

The bill calls that adults applying or reapplying for benefits, even if only on behalf of a child, must submit to a drug �??use screening assessment�?�. If assessment results provide evidence of possible drug use, the person will have to submit to a drug test.

All first-time positive drug tests are confirmed before eligibility is denied.

If a person has been convicted of a felony drug offense ,or after being denied eligibility one time for all applications thereafter, the assessment is skipped and the person is automatically given a drug test.

The first time a person tests positive on a drug test, they will be ineligible for assistance for six months. Test positive a second time and they will be ineligible for a year, unless they provide evidence of �??abuse treatment.�?� If a person tests positive on their drug test for the third time, they will be �??permanently ineligible�?� for financial assistance.

Three strikes and you�??re out.

There is more- If a person tests positive for an unprescribed drug other than marijuana, the commission may even report to the Department of Family and Protective Services �??for use in an investigation.�?�

The Health and Human Services Commission will pay for the use screening assessments and drug tests with funds from the federal Temporary Assistance for Needy Families block grant funds.

Though the current bill itself says

The commission shall use the most efficient and cost-effective marihuana and controlled substance use screening assessment tool that the commission and the Department of State Health Services can develop based on validated marihuana and controlled substance use screening assessment tools…

it does not state the specifics of what the assessment will consist of, though a “questionnaire” has been reported.

Senate Bill 11, a similar bill designed to require drug screenings to receive welfare benefits, was killed earlier this month along with about fifty other bills.

According to Statesman.com, �??By raising five points of order, filing amendments and drawing out debate, Democrats chewed up more than two hours of precious time on a night when all Senate-approved bills would die without an initial vote before midnight.�?�

Caroline Mahony is an editorial intern with Human Events.


NBC News reports that investigators on special counsel Robert Mueller’s team have interviewed Christopher Steele, the former British intelligence officer who compiled the explosive dossier that details an alleged effort by the Russian government to cul...


# Author: Julien Coux
# Copyright 2016 Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from odoo import _, models

class AgedPartnerBalanceXslx(models.AbstractModel):
    _name = "report.a_f_r.report_aged_partner_balance_xlsx"
    _description = "Aged Partner Balance XLSL Report"
    _inherit = "report.account_financial_report.abstract_report_xlsx"

    def _get_report_name(self, report, data=False):
        company_id = data.get("company_id", False)
        report_name = _("Aged Partner Balance")
        if company_id:
            company = self.env["res.company"].browse(company_id)
            suffix = " - {} - {}".format(company.name, company.currency_id.name)
            report_name = report_name + suffix
        return report_name

    def _get_report_columns(self, report):
        if not report.show_move_line_details:
            return {
                0: {"header": _("Partner"), "field": "name", "width": 70},
                1: {
                    "header": _("Residual"),
                    "field": "residual",
                    "field_footer_total": "residual",
                    "type": "amount",
                    "width": 14,
                },
                2: {
                    "header": _("Current"),
                    "field": "current",
                    "field_footer_total": "current",
                    "field_footer_percent": "percent_current",
                    "type": "amount",
                    "width": 14,
                },
                3: {
                    "header": _(u"Age ≤ 30 d."),
                    "field": "30_days",
                    "field_footer_total": "30_days",
                    "field_footer_percent": "percent_30_days",
                    "type": "amount",
                    "width": 14,
                },
                4: {
                    "header": _(u"Age ≤ 60 d."),
                    "field": "60_days",
                    "field_footer_total": "60_days",
                    "field_footer_percent": "percent_60_days",
                    "type": "amount",
                    "width": 14,
                },
                5: {
                    "header": _(u"Age ≤ 90 d."),
                    "field": "90_days",
                    "field_footer_total": "90_days",
                    "field_footer_percent": "percent_90_days",
                    "type": "amount",
                    "width": 14,
                },
                6: {
                    "header": _(u"Age ≤ 120 d."),
                    "field": "120_days",
                    "field_footer_total": "120_days",
                    "field_footer_percent": "percent_120_days",
                    "type": "amount",
                    "width": 14,
                },
                7: {
                    "header": _("Older"),
                    "field": "older",
                    "field_footer_total": "older",
                    "field_footer_percent": "percent_older",
                    "type": "amount",
                    "width": 14,
                },
            }
        return {
            0: {"header": _("Date"), "field": "date", "width": 11},
            1: {"header": _("Entry"), "field": "entry", "width": 18},
            2: {"header": _("Journal"), "field": "journal", "width": 8},
            3: {"header": _("Account"), "field": "account", "width": 9},
            4: {"header": _("Partner"), "field": "partner", "width": 25},
            5: {"header": _("Ref - Label"), "field": "ref_label", "width": 40},
            6: {"header": _("Due date"), "field": "due_date", "width": 11},
            7: {
                "header": _("Residual"),
                "field": "residual",
                "field_footer_total": "residual",
                "field_final_balance": "residual",
                "type": "amount",
                "width": 14,
            },
            8: {
                "header": _("Current"),
                "field": "current",
                "field_footer_total": "current",
                "field_footer_percent": "percent_current",
                "field_final_balance": "current",
                "type": "amount",
                "width": 14,
            },
            9: {
                "header": _(u"Age ≤ 30 d."),
                "field": "30_days",
                "field_footer_total": "30_days",
                "field_footer_percent": "percent_30_days",
                "field_final_balance": "30_days",
                "type": "amount",
                "width": 14,
            },
            10: {
                "header": _(u"Age ≤ 60 d."),
                "field": "60_days",
                "field_footer_total": "60_days",
                "field_footer_percent": "percent_60_days",
                "field_final_balance": "60_days",
                "type": "amount",
                "width": 14,
            },
            11: {
                "header": _(u"Age ≤ 90 d."),
                "field": "90_days",
                "field_footer_total": "90_days",
                "field_footer_percent": "percent_90_days",
                "field_final_balance": "90_days",
                "type": "amount",
                "width": 14,
            },
            12: {
                "header": _(u"Age ≤ 120 d."),
                "field": "120_days",
                "field_footer_total": "120_days",
                "field_footer_percent": "percent_120_days",
                "field_final_balance": "120_days",
                "type": "amount",
                "width": 14,
            },
            13: {
                "header": _("Older"),
                "field": "older",
                "field_footer_total": "older",
                "field_footer_percent": "percent_older",
                "field_final_balance": "older",
                "type": "amount",
                "width": 14,
            },
        }

    def _get_report_filters(self, report):
        return [
            [_("Date at filter"), report.date_at.strftime("%d/%m/%Y")],
            [
                _("Target moves filter"),
                _("All posted entries")
                if report.target_move == "posted"
                else _("All entries"),
            ],
        ]

    def _get_col_count_filter_name(self):
        return 2

    def _get_col_count_filter_value(self):
        return 3

    def _get_col_pos_footer_label(self, report):
        return 0 if not report.show_move_line_details else 5

    def _get_col_count_final_balance_name(self):
        return 5

    def _get_col_pos_final_balance_label(self):
        return 5

    def _generate_report_content(self, workbook, report, data):
        res_data = self.env[
            "report.account_financial_report.aged_partner_balance"
        ]._get_report_values(report, data)
        show_move_line_details = res_data["show_move_lines_details"]
        aged_partner_balance = res_data["aged_partner_balance"]
        if not show_move_line_details:
            # For each account
            for account in aged_partner_balance:
                # Write account title
                self.write_array_title(account["code"] + " - " + account["name"])

                # Display array header for partners lines
                self.write_array_header()

                # Display partner lines
                for partner in account["partners"]:
                    self.write_line_from_dict(partner)

                # Display account lines
                self.write_account_footer_from_dict(
                    report,
                    account,
                    ("Total"),
                    "field_footer_total",
                    self.format_header_right,
                    self.format_header_amount,
                    False,
                )
                self.write_account_footer_from_dict(
                    report,
                    account,
                    ("Percents"),
                    "field_footer_percent",
                    self.format_right_bold_italic,
                    self.format_percent_bold_italic,
                    True,
                )

                # 2 lines break
                self.row_pos += 2
        else:
            # For each account
            for account in aged_partner_balance:
                # Write account title
                self.write_array_title(account["code"] + " - " + account["name"])

                # For each partner
                for partner in account["partners"]:
                    # Write partner title
                    self.write_array_title(partner["name"])

                    # Display array header for move lines
                    self.write_array_header()

                    # Display account move lines
                    for line in partner["move_lines"]:
                        self.write_line_from_dict(line)

                    # Display ending balance line for partner
                    self.write_ending_balance_from_dict(partner)

                    # Line break
                    self.row_pos += 1

                # Display account lines
                self.write_account_footer_from_dict(
                    report,
                    account,
                    ("Total"),
                    "field_footer_total",
                    self.format_header_right,
                    self.format_header_amount,
                    False,
                )

                self.write_account_footer_from_dict(
                    report,
                    account,
                    ("Percents"),
                    "field_footer_percent",
                    self.format_right_bold_italic,
                    self.format_percent_bold_italic,
                    True,
                )

                # 2 lines break
                self.row_pos += 2

    def write_ending_balance_from_dict(self, my_object):
        """
            Specific function to write ending partner balance
            for Aged Partner Balance
        """
        name = None
        label = _("Partner cumul aged balance")
        super(AgedPartnerBalanceXslx, self).write_ending_balance_from_dict(
            my_object, name, label
        )

    def write_account_footer_from_dict(
        self,
        report,
        account,
        label,
        field_name,
        string_format,
        amount_format,
        amount_is_percent,
    ):
        """
            Specific function to write account footer for Aged Partner Balance
        """
        col_pos_footer_label = self._get_col_pos_footer_label(report)
        for col_pos, column in self.columns.items():
            if col_pos == col_pos_footer_label or column.get(field_name):
                if col_pos == col_pos_footer_label:
                    value = label
                else:
                    value = account.get(column[field_name], False)
                cell_type = column.get("type", "string")
                if cell_type == "string" or col_pos == col_pos_footer_label:
                    self.sheet.write_string(
                        self.row_pos, col_pos, value or "", string_format
                    )
                elif cell_type == "amount":
                    number = float(value)
                    if amount_is_percent:
                        number /= 100
                    self.sheet.write_number(
                        self.row_pos, col_pos, number, amount_format
                    )
            else:
                self.sheet.write_string(self.row_pos, col_pos, "", string_format)

        self.row_pos += 1


Q:

Merging $.get and $.ready

Put simply I have an ajax call that sometimes completes before the page is loaded, so I tried wrapping the callback in $( fn ), but the callback doesn't fire if the page is loaded...  Anyone have a good solution to this?
$.get( '/foo.json', function( data ){
    $( function(){
        // won't get here if page ready beats the ajax call

        // process data
        $( '.someDiv' ).append( someData );
    } );
} );

And yes, I know that if I flipped the order of those it would always work, but then my ajax calls would be needlessly deferred until the document is ready.

A:

No, functions which are added to onDOMready will always be executed, and will instantly be executed if the event has already happened. See the docs at http://api.jquery.com/ready/: Only if you would use $(document).bind("ready") it will not get executed when the event had already fired.
A possible reason for non-firing event handlers are other handlers throwing an error. jQuery has an internal array for to-be-executed handlers, and the method which handles the native DOM load event just iterates over it. If one of the earlier handlers rises an error, the loop breaks and other handlers added afterwards will not be invoked.


News releases

It’s disappointing that legislative Republicans are even undercutting the Governor’s level of education spending. Senate Democrats will support a robust education funding plan that will make up for inflationary losses over the past two years and provide a modest increase as well. We believe that a 3 percent increase is what Iowa schools, educators and students deserve.

As the Judicial Branch’s website notes: ‘Merit selection is designed to emphasize the professional qualifications of applicants for judicial appointment and minimize partisan politics.’ That’s apparently not good enough for Republican politicians.

State Sen. Pam Jochum (D-Dubuque) was presented today with the Iowa Pharmacy Association’s Good Governance Award during the organization’s annual Legislative Day in Des Moines. The Good Governance Award recognizes Sen. Jochum’s legislative efforts and support for public health and the pharmacy profession.

“The District Court decision sends a strong message to Iowa women that their constitutional rights are important and their health care decisions should be made by them, not politicians…. I want Iowa to be known as the safest place in the country to have a baby.”

New rules being pushed through by Senate Republicans would eliminate the requirement that subcommittees be open to the public and that notification of the meetings go out 24 hours in advance. These changes are a shameful, deliberate attempt to cut more back-room deals and keep taxpayers in the dark about what they are doing.

We are concerned that for the past two years, the Governor and legislative Republicans have pushed everyday Iowans to the back of the line. Republicans have allowed millionaires, big corporations and out-of-state MCOs to cut to the front of the line. Our goal this session is improve the lives of everyday Iowans.

Senate Democratic Leader Janet Petersen released updated committee assignments today for Democratic State Senators for the 2019 session of the Iowa Legislature. The 88th General Assembly will begin at 10 a.m. Monday, January 14, 2019.

December’s revenue projections are more evidence that the Governor Reynolds and legislative Republicans are putting Wall Street corporations, special interests and millionaires ahead of what’s best for working Iowans.

Senate Democratic Leader Janet Petersen released committee assignments today for Democratic State Senators for the 2019 session of the Iowa Legislature. The 88th General Assembly will begin on Monday, January 14, 2019.


// @flow
import React, { type Node } from 'react';
import styled from 'styled-components';

import type { Space, ThemedComponent, ThemeProps } from '~/theme';

type SpacingProps = {
  spacing: Space | number
};

type Props<T> = SpacingProps & {
  items: Array<T>,
  renderItem: T => Node,
  itemKey: T => string
};

const Container: ThemedComponent<SpacingProps> = styled.div`
  margin: -${(p: ThemeProps & SpacingProps) => p.theme.sizing(p.spacing)};
`;

const Cell: ThemedComponent<SpacingProps> = styled.div`
  display: inline-block;
  padding: ${(p: ThemeProps & SpacingProps) => p.theme.sizing(p.spacing)};
`;

function Grid<T>({ spacing, items, renderItem, itemKey }: Props<T>) {
  return (
    <Container spacing={spacing}>
      {items.map(item => {
        const key = itemKey(item);
        return (
          <Cell key={key} spacing={spacing}>
            {renderItem(item)}
          </Cell>
        );
      })}
    </Container>
  );
}

export default Grid;


Q:

What's with Marissa's bleeding gums in Hanna?

I just watched Hanna (2011). At a couple of points during the film, the agent Marissa is seen brushing her teeth until they bleed.
Is there a purpose to these scenes? They seemed to be focused on, more than I would expect. The only notable reference I found online is this review, stating:

Her habit of flossing her gums bloody will weird out viewers clever enough to figure out why she does it.

So it seems there is more to it. What am I missing?

A:

My take on the situation is she has an Obsessive Compulsive Disorder (OCD). As explained in Wikipedia, this disorder shows in a lot of different ways. One such:

The acts of those who have OCD may appear paranoid and potentially psychotic.

Agent Marisa displays both of these traits in the movie. Also, she is very fastidious in everything she does (overly clean and particular). I don't think she is full blown OCD (if you read the Wiki article, you'll see what I mean), but she does show many of the symptoms. Considering the flossing behavior is over the top to you and me and she does this more than once, it might be considered this type of behavior. I am sure there are other things in the film which point to this as well, but not popping into my head at the moment.
The reason these scenes are important is because it develops the character to show you she has problems with things she has done in the past, whether or not she realizes it.

A:

Yes, it does show she has problems with her past and feels guilty.
Plus, you might add it's also a fairy tale: she's the Bad Wolf, compulsively cleaning her teeth of her preys' blood, which only makes them bloodier (see the final scene when they literally run "into the wolf's jaws", and Hanna turns the tables on her and hunts her down).

A:

According to this article

Wright created the teeth brushing scene as a joke about the U.S. obsession with teeth. As a Brit with bad teeth, he feels “slightly resentful” of Americans’ perfect choppers.


/*-******************************************************************************
 * Copyright (c) 2014 Iwao AVE!.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Iwao AVE! - initial API and implementation and/or initial documentation
 *******************************************************************************/

package net.harawata.mybatipse.mybatis;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

import javax.xml.xpath.XPathExpressionException;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.core.runtime.Status;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.wst.sse.core.StructuredModelManager;
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
import org.eclipse.wst.validation.AbstractValidator;
import org.eclipse.wst.validation.ValidationResult;
import org.eclipse.wst.validation.ValidationState;
import org.eclipse.wst.validation.ValidatorMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import net.harawata.mybatipse.Activator;
import net.harawata.mybatipse.bean.BeanPropertyCache;
import net.harawata.mybatipse.bean.SupertypeHierarchyCache;
import net.harawata.mybatipse.cache.JavaMapperCache;

/**
 * @author Iwao AVE!
 */
@SuppressWarnings("restriction")
public class XmlValidator extends AbstractValidator
{
	public static final String MARKER_ID = "net.harawata.mybatipse.XmlProblem";

	public static final String MISSING_TYPE = "missingType";

	public static final String NO_WRITABLE_PROPERTY = "noWritableProperty";

	public static final String MISSING_TYPE_HANDLER = "missingTypeHandler";

	public static final String MISSING_STATEMENT_METHOD = "missingStatementMethod";

	public static final String MISSING_RESULT_MAP = "missingResultMap";

	public static final String MISSING_SQL = "missingSql";

	public static final String MISSING_NAMESPACE = "missingNamespace";

	public static final String NAMESPACE_MANDATORY = "namespaceMandatory";

	public static final String DEPRECATED = "deprecated";

	private static final List<String> validatableTags = Arrays.asList("id", "idArg", "result",
		"arg", "resultMap", "collection", "association", "select", "insert", "update", "delete",
		"include", "cache", "typeAlias", "typeHandler", "objectFactory", "objectWrapperFactory",
		"plugin", "transactionManager", "mapper", "package", "databaseIdProvider");;

	public void cleanup(IReporter reporter)
	{
		// Nothing to do.
	}

	@Override
	public ValidationResult validate(final IResource resource, int kind, ValidationState state,
		IProgressMonitor monitor)
	{
		if (resource.getType() != IResource.FILE)
			return null;
		ValidationResult result = new ValidationResult();
		final IReporter reporter = result.getReporter(monitor);
		validateFile((IFile)resource, reporter, result);
		return result;
	}

	private void validateFile(IFile file, IReporter reporter, ValidationResult result)
	{
		if ((reporter != null) && (reporter.isCancelled() == true))
		{
			throw new OperationCanceledException();
		}
		IStructuredModel model = null;
		try
		{
			file.deleteMarkers(MARKER_ID, false, IResource.DEPTH_ZERO);
			model = StructuredModelManager.getModelManager().getModelForRead(file);
			IDOMModel domModel = (IDOMModel)model;
			IDOMDocument domDoc = domModel.getDocument();
			NodeList nodes = domDoc.getChildNodes();

			IJavaProject project = JavaCore.create(file.getProject());

			for (int k = 0; k < nodes.getLength(); k++)
			{
				Node child = nodes.item(k);
				if (child instanceof IDOMElement)
				{
					validateElement(project, (IDOMElement)child, file, domDoc, reporter, result);
				}
			}
		}
		catch (Exception e)
		{
			Activator.log(Status.WARNING, "Error occurred during validation.", e);
		}
		finally
		{
			if (model != null)
			{
				model.releaseFromRead();
			}
		}
	}

	private void validateElement(IJavaProject project, IDOMElement element, IFile file,
		IDOMDocument doc, IReporter reporter, ValidationResult result)
		throws JavaModelException, XPathExpressionException
	{
		if ((reporter != null) && (reporter.isCancelled() == true))
		{
			throw new OperationCanceledException();
		}
		if (element == null)
			return;

		String tagName = element.getNodeName();

		if (validatableTags.contains(tagName))
		{
			NamedNodeMap attrs = element.getAttributes();
			for (int i = 0; i < attrs.getLength(); i++)
			{
				IDOMAttr attr = (IDOMAttr)attrs.item(i);
				String attrName = attr.getName();
				String attrValue = attr.getValue().trim();

				// TODO: proxyFactory, logImpl, package
				if (("type".equals(attrName) && !"dataSource".equals(tagName))
					|| "resultType".equals(attrName) || "parameterType".equals(attrName)
					|| "ofType".equals(attrName) || "typeHandler".equals(attrName)
					|| "handler".equals(attrName) || "interceptor".equals(attrName)
					|| "class".equals(attrName) || "javaType".equals(attrName))
				{
					String qualifiedName = MybatipseXmlUtil.normalizeTypeName(attrValue);
					validateJavaType(project, file, doc, attr, qualifiedName, result, reporter);
				}
				else if ("property".equals(attrName))
				{
					validateProperty(element, file, doc, result, project, attr, attrValue, reporter);
				}
				else if ("id".equals(attrName) && ("select".equals(tagName) || "update".equals(tagName)
					|| "insert".equals(tagName) || "delete".equals(tagName)))
				{
					validateStatementId(element, file, doc, result, project, attr, attrValue);
				}
				else if ("resultMap".equals(attrName) || "resultMap".equals(attrName))
				{
					validateResultMapId(project, file, doc, result, attr, attrValue, reporter);
				}
				else if ("refid".equals(attrName))
				{
					validateSqlId(project, file, doc, result, attr, attrValue, reporter);
				}
				else if ("select".equals(attrName))
				{
					validateSelectId(project, file, doc, result, attr, attrValue, reporter);
				}
				else if ("namespace".equals(attrName))
				{
					validateNamespace(file, doc, result, attr, attrValue);
				}
				else if ("parameterMap".equals(tagName))
				{
					warnDeprecated(file, doc, result, tagName, attr);
				}
				else if ("parameter".equals(attrName) || "parameterMap".equals(attrName))
				{
					warnDeprecated(file, doc, result, attrName, attr);
				}
			}
		}

		NodeList nodes = element.getChildNodes();
		for (int j = 0; j < nodes.getLength(); j++)
		{
			Node child = nodes.item(j);
			if (child instanceof IDOMElement)
			{
				validateElement(project, (IDOMElement)child, file, doc, reporter, result);
			}
		}
	}

	private void validateNamespace(IFile file, IDOMDocument doc, ValidationResult result,
		IDOMAttr attr, String attrValue)
	{
		if (attrValue == null || attrValue.length() == 0)
		{
			addMarker(result, file, doc.getStructuredDocument(), attr, NAMESPACE_MANDATORY,
				IMarker.SEVERITY_ERROR, IMarker.PRIORITY_HIGH, "Namespace must be specified.");
		}
	}

	private void validateResultMapId(IJavaProject project, IFile file, IDOMDocument doc,
		ValidationResult result, IDOMAttr attr, String attrValue, IReporter reporter)
		throws JavaModelException, XPathExpressionException
	{
		if (attrValue.indexOf(',') == -1)
		{
			validateReference(project, file, doc, result, attr, attrValue, "resultMap", reporter);
		}
		else
		{
			String[] resultMapArr = attrValue.split(",");
			for (String resultMapRef : resultMapArr)
			{
				String ref = resultMapRef.trim();
				if (ref.length() > 0)
				{
					validateReference(project, file, doc, result, attr, ref, "resultMap", reporter);
				}
			}
		}
	}

	private void validateSelectId(IJavaProject project, IFile file, IDOMDocument doc,
		ValidationResult result, IDOMAttr attr, String attrValue, IReporter reporter)
		throws JavaModelException, XPathExpressionException
	{
		validateReference(project, file, doc, result, attr, attrValue, "select", reporter);
	}

	private void validateSqlId(IJavaProject project, IFile file, IDOMDocument doc,
		ValidationResult result, IDOMAttr attr, String attrValue, IReporter reporter)
		throws JavaModelException, XPathExpressionException
	{
		validateReference(project, file, doc, result, attr, attrValue, "sql", reporter);
	}

	private void validateReference(IJavaProject project, IFile file, IDOMDocument doc,
		ValidationResult result, IDOMAttr attr, String attrValue, String targetElement,
		IReporter reporter) throws JavaModelException, XPathExpressionException
	{
		if (!ValidatorHelper.isReferenceValid(project, MybatipseXmlUtil.getNamespace(doc),
			attrValue, targetElement))
		{
			addMarker(result, file, doc.getStructuredDocument(), attr, MISSING_SQL,
				IMarker.SEVERITY_ERROR, IMarker.PRIORITY_HIGH,
				targetElement + " with id='" + attrValue + "' not found.");
		}
	}

	private void validateStatementId(IDOMElement element, IFile file, IDOMDocument doc,
		ValidationResult result, IJavaProject project, IDOMAttr attr, String attrValue)
		throws JavaModelException, XPathExpressionException
	{
		if (attrValue == null)
		{
			return;
		}

		String qualifiedName = MybatipseXmlUtil.getNamespace(doc);
		IType mapperType = project.findType(qualifiedName);
		if (mapperType != null
			&& !JavaMapperCache.getInstance().methodExists(project, qualifiedName, attrValue))
		{
			addMarker(result, file, doc.getStructuredDocument(), attr, MISSING_STATEMENT_METHOD,
				IMarker.SEVERITY_WARNING, IMarker.PRIORITY_HIGH,
				"Method '" + attrValue + "' not found or there is an overload method"
					+ " (same name with different parameters) in mapper interface " + qualifiedName);
		}
	}

	private void validateProperty(IDOMElement element, IFile file, IDOMDocument doc,
		ValidationResult result, IJavaProject project, IDOMAttr attr, String attrValue,
		IReporter reporter) throws JavaModelException
	{
		String qualifiedName = MybatipseXmlUtil.findEnclosingType(element);
		if (qualifiedName == null || MybatipseXmlUtil.isDefaultTypeAlias(qualifiedName))
		{
			return;
		}
		IType type = project.findType(qualifiedName);
		if (type == null)
		{
			qualifiedName = TypeAliasCache.getInstance()
				.resolveAlias(project, qualifiedName, reporter);
			if (qualifiedName != null)
				type = project.findType(qualifiedName);
		}
		if (type == null || !isValidatable(project, type))
		{
			// Skip validation when enclosing type is missing or it's a map.
			return;
		}
		Map<String, String> fields = BeanPropertyCache.searchFields(project, qualifiedName,
			attrValue, false, -1, true);
		if (fields.size() == 0)
		{
			addMarker(result, file, doc.getStructuredDocument(), attr, MISSING_TYPE,
				IMarker.SEVERITY_ERROR, IMarker.PRIORITY_HIGH,
				"Property '" + attrValue + "' not found in class " + qualifiedName);
		}
	}

	private boolean isValidatable(IJavaProject project, IType type) throws JavaModelException
	{
		// Subclass of Map is not validatable.
		return !SupertypeHierarchyCache.getInstance().isMap(type);
	}

	private void validateJavaType(IJavaProject project, IFile file, IDOMDocument doc,
		IDOMAttr attr, String qualifiedName, ValidationResult result, IReporter reporter)
		throws JavaModelException
	{
		if (!MybatipseXmlUtil.isDefaultTypeAlias(qualifiedName)
			&& project.findType(qualifiedName) == null
			&& TypeAliasCache.getInstance().resolveAlias(project, qualifiedName, reporter) == null)
		{
			addMarker(result, file, doc.getStructuredDocument(), attr, MISSING_TYPE,
				IMarker.SEVERITY_ERROR, IMarker.PRIORITY_HIGH,
				"Class/TypeAlias '" + qualifiedName + "' not found.");
		}
	}

	private void warnDeprecated(IFile file, IDOMDocument doc, ValidationResult result,
		String tagName, IDOMAttr attr)
	{
		addMarker(result, file, doc.getStructuredDocument(), attr, DEPRECATED,
			IMarker.SEVERITY_WARNING, IMarker.PRIORITY_HIGH,
			"'" + tagName + "' is deprecated and should not be used.");
	}

	private void addMarker(ValidationResult result, IFile file, IStructuredDocument doc,
		IDOMAttr attr, String problemType, int severity, int priority, String message)
	{
		int start = attr.getValueRegionStartOffset();
		int length = attr.getValueRegionText().length();
		int lineNo = doc.getLineOfOffset(start);
		ValidatorMessage marker = ValidatorMessage.create(message, file);
		marker.setType(MARKER_ID);
		marker.setAttribute(IMarker.SEVERITY, severity);
		marker.setAttribute(IMarker.PRIORITY, priority);
		marker.setAttribute(IMarker.MESSAGE, message);
		marker.setAttribute(IMarker.LINE_NUMBER, lineNo);
		if (start != 0)
		{
			marker.setAttribute(IMarker.CHAR_START, start);
			marker.setAttribute(IMarker.CHAR_END, start + length);
		}
		// Adds custom attributes.
		marker.setAttribute("problemType", problemType);
		marker.setAttribute("errorValue", attr.getValue());
		result.add(marker);
	}

}


Optimization of conditions for profiling bacterial populations in food by culture-independent methods.
In this study we used culture-independent methods to profile bacterial populations in food products. Denaturing gradient gel electrophoresis (DGGE) and fluorescence in situ hybridization (FISH) were employed in order to identify bacterial species without the need of isolation and biochemical identification. The protocols used to extract the DNA, subsequently subjected to PCR amplification for DGGE, as well as the hybridization procedure for FISH, were optimised. Moreover, an extensive study on the primers and probes to be used for the direct detection and identification of microorganisms commonly found in food, was carried out. Meat and cheese samples, fresh or processed, were subjected to DGGE and FISH analysis and the results obtained highlighted how the processing in food industry is decreasing the bacterial biodiversity. Not only processed cheese or meat but also fermented products were dominated by only one or few species. Lactobacillus sakei, Lactobacillus curvatus and Brochothrix thermosphacta were the main species found in meat products, while in cheese(s) Lactococcus lactis, Streptococcus thermophilus and Leuconostoc spp. were repeatedly detected. The results obtained by the two culture-independent methods used always correlated well.


673 So.2d 256 (1996)
STATE of Louisiana
v.
Bernard MORGAN.
No. 96-K-0354.
Court of Appeal of Louisiana, Fourth Circuit.
April 17, 1996.
*257 Harry F. Connick, District Attorney, Allison Monahan, Assistant District Attorney, New Orleans, for Relator, the State of Louisiana.
Before SCHOTT, C.J., and PLOTKIN and WALTZER, JJ.
WALTZER, Judge.

STATEMENT OF THE CASE
The defendant, Bernard Morgan, was found guilty of simple burglary, a violation of La.R.S. 14:62, on 12 October 1995. The State filed a multiple offender bill charging the defendant as a fourth felony offender based on a 1991 conviction for possession of stolen property, a 1987 conviction for twelve counts of forgery, and a 1982 conviction for theft. On 30 January 1996, the trial court sentenced the defendant to seven years at hard labor, thirteen years less than the mandatory minimum sentence under the Habitual Offender Law of twenty years at hard labor. The State asks this Court to review what it alleges to be an illegally lenient sentence.

ANALYSIS
The issue presented by this writ application concerns a trial court's authority to impose a sentence below the minimum sentence mandated by the Habitual Offender Law and the degree of specificity required of the trial court when imposing such minimum sentence.
Jurisprudence on this issue, culminating in State v. Dorthey, 623 So.2d 1276 (La.1993), held that sentencing, and the review of sentences, is within the exclusive authority of the judicial branch: "[T]he 1974 Louisiana Constitution, Article 1, Section 20 `gives the courts, in the exercise of their judicial power, a basis for determining that sentences, whether fine, imprisonment or otherwise, though not cruel or unusual, are too severe as punishment for certain conduct and thus unconstitutional. It is a basis for extending the court's control over the entire sentencing process.'" State v. Sepulvado, 367 So.2d 762, 766 (La.1979) as quoted in Dorthey, 623 So.2d at 1280.
In Dorthey, the court considered a claim that the provisions of the Habitual Offender Statute violated the separation of powers clause of the 1974 Louisiana Constitution. The Court recognized sentence review as an established function of the judicial branch, citing State v. Sepulvado, and held that a trial court has an obligation to refuse to impose a statutorily mandated sentence if it finds such sentence is unconstitutionally excessive as applied to a particular defendant.
If, in this case when defendant is ultimately sentenced, the trial judge were to find that the punishment mandated by R.S. 15:529.1 makes no "measurable contribution to acceptable goals of punishment" or that the sentence amounted to nothing more than "the purposeful imposition of pain and suffering" and is "grossly out of proportion to the severity of the crime", he has the option, indeed the duty, to reduce *258 such sentence to one that would not be constitutionally excessive.
Dorthey, 623 So.2d at 1280-1281.
This Court recently affirmed the defendant's sentence in State v. Abbott, 94-1046 (La.App. 4th Cir. 2/23/95), 650 So.2d 1223, an appeal taken by the State, where the trial court made exhaustive findings regarding the excessiveness of the minimum sentence and the applicability of Dorthey. The trial court in that case found "that defendant's youth, the facts of the instant case and the fact that defendant's two prior convictions were for shoplifting, did not justify the statutorily mandated minimum sentence." This court held that the trial court acknowledged "the three prong test in Dorthey" and stated: "[T]he Court clearly understood that the test in Dorthey requires that before a sentence can be reduced below the mandatory minimum, the court must find the mandatory minimum sentence unconstitutionally excessive as to the defendant. The record satisfies us that there was such a finding." Abbott, pg. 8, 650 So.2d at 1227.
In State v. Eric Kingston, 95-1935 (La. App. 4th Cir. 1/19/96), 668 So.2d 395, the trial court relied on Dorthey and stated: "We're going to take the age into consideration, the fact that the six years he will be serving will be flat time ... And also the Court feels that any higher amount of time would be unjust...." This Court vacated the sentence concluding that these statements "do not indicate that the trial court made a `searching inquiry necessary to justify declaring a legislatively mandated sentence unconstitutional' nor do they indicate that the trial court made a `meaningful assessment of any mitigating or aggravating circumstances appropriate to this case.' [citation omitted.]" Eric Kingston, pg 4, 668 So.2d at 397.
In State v. Young, 94-1636 (La.App. 4th Cir. 10/26/95), 663 So.2d 525, the trial court stated:
I'm going to depart from the mandatory minimum sentence, which would be 99 years to life. However, the Court is of the opinion thatAnd the reason for the departure are those indicated that the Court should observe in Dorthey that any sentence beyond this would be constitutionally excessive. However, the Court is of the opinion that the defendant should not receive the minimum sentence of 20 years in this matter. The defendant's 33 years old. He has violent crime in his past for armed robbery. And I do consider breaking into someone's home a violent crime as well, a 62.2. Which now the legislature has seen fit to elevate and make part of this statute, although it wasn't in at the time when he was convicted.
Also, we do have the facts of this case which are somewhat bizarre. But I agree with the jury's finding in that the defendant committed an armed robbery with a weapon of the victim in this case. I've given reasons previously and they apply here. The good part about it is that the defendant didn't hurt the victim. He certainly scared him considerably. But thank goodness the victim wasn't hurt. And I am taking that into consideration. By the same token, the defendant does have these very serious prior felonies, armed robbery, burglary of an inhabited dwelling, and possession of cocaine. And accordingly, it is the sentence of this Court that the defendant be committed to the Louisiana State Department of Corrections at hard labor for a term of 30 years, without benefit of parole, with credit for time served.
Young, pgs. 3-4, 663 So.2d at 526-527. After reviewing the Dorthey decision, this Court held:
One of the basic principles universally applied by courts in testing constitutionality is the presumption of constitutionality. In the application of this principle a trial court considering whether the minimum sentence prescribed by the legislature for the particular crime committed by a defendant would be unconstitutional if applied to a particular defendant may do so only if there is substantial evidence to rebut the presumption of constitutionality. The trial court may not depart from the legislaturely (sic) mandated minimum simply because of some subjective impression or feeling about the defendant.
Young, pg. 5, 663 So.2d at 527. This Court then concluded that the reasons given by the trial judge to disregard the Habitual Offender *259 Law were "purely subjective". The court continued:
In our society the people have insisted on legislation to toughen criminal laws. The people are especially concerned about recidivism. In some states legislatures have responded to these concerns by passing "three strikes and you're out" legislation life imprisonment for the third felony offender. Our legislature has responded with the Habitual Offender Law. As the court pointed out in Dorthey, it is the legislature's prerogative to determine the length of time to be imposed for a crime. This prerogative is rendered nugatory if a judge may for purely subjective reasons disregard the will of the legislature under the guise of particularized unconstitutionality. This is the stuff from which flows in the minds of the public a distrust and disrespect for the judiciary.
Young, pgs. 6-7, 663 So.2d at 528.
In State v. Kenneth Eggerson, 95-1337 (La.App. 4th Cir. 9/15/95), 661 So.2d 1096, this court found that the following comments by the sentencing judge did not show a "meaningful assessment of any mitigating or aggravating circumstances appropriate to this case":
The minimum requirement under the statute which Mr. Eggerson was convicted involved a 28 to 200 gram case. Being at 33 grams it is much closer to the 28 than it is to the 200. The penalty to such an offense is 5 to 30 years. I note for the record Mr. Eggerson has two prior felony convictions, both for possession of cocaine. He has no prior distribution charges.
The Court also feels to impose the maximum sentence at 20 years would be cruel and unusual punishment. It would by (sic) a needless infliction of pain and suffering for the offense for which he was charged.
Therefore, kit (sic) will be the sentence of the Court under these provisions of State's versus Dorothey (sic) the defendant shall be ordered to be turned over to the Director of Louisiana Department of Corrections for a period of 10 years at hard labor. By law that sentence shall be without the benefits of probation, parole or suspension of sentence.
Eggerson, pg. 2, 661 So.2d at 1096-1097.
This Court found that: "The trial judges's conclusory statement does not qualify as the type of searching inquiry necessary to justify declaring a legislatively mandated sentence unconstitutional under La. Const. art. I, Sec. 20." Id. at 1097.
In State v. Daniel Hyorth, 95-1181 (La. App. 4th Cir. 9/15/95), 661 So.2d 1059, this court found that the trial judge abused his discretion in imposing a sentence below the minimum required by the Habitual Offender Law. The trial court stated in that case:
I am very familiar with this case and have been fooling with this case for the past three years. I know of the defendant's record. I know of his prison conduct. I know all of the circumstances surrounding the offense. And because I know all of the those things, it is my judgment that the defendant should serve twenty-seven years with the Department of Corrections, giving him credit for time served, without benefit of probation, parole or suspension of sentence, because it is the opinion of this Court that the minimum statutory requirement would be constitutionally excessive as to this particular defendant in this case.
Hyorth, pg. 2-3, 661 So.2d at 1061.
This court distinguished Dorthey, finding that the predicate offenses in Hyorth (armed robberies) were much more dangerous than the predicate offenses in Dorthey, and then stated: "[W]e [the Fourth Circuit] have considered the acute severity of the crimes which involved the possibility of great bodily harm or death to the victims because the perpetrator was armed. There are no mitigating circumstances. The trial court clearly abused its discretion by sentencing the defendant below the minimum under LSA-R.S. 15:529.1." Hyorth, pg. 4-5, 661 So.2d at 1062.
In State v. John Bass, 96-K-0168 (La.App. 4th Cir. 2/13/96), this Court found that the trial court did not provide sufficient reasons for departing from the mandatory minimum *260 sentence under the Habitual Offender Law. The trial court stated in Bass:
In this particular case concerning this defendant who stands in front of me today who was convicted of attempted auto burglary, I heard the evidence and testimony in his particular case. I heard his story that he was trying to sleep in a car outside Charity Hospital. I heard about the admitted problems. Because of what I heard and what I gathered on my own in this particular case, I find that the minimum sentence of twenty years as a quadruple offender would be, first of all, nothing more than the purposeful imposition of pain and suffering on this particular defendant, that also the sentence of twenty years is grossly out of proportion to the severity of the crime, and, thirdly, that the punishment of twenty years in this specific case makes no measurable contribution to acceptable goals of punishment. Therefore, I find the punishment mandated by 15:529.1 is constitutionally excessive as applies to this defendant in this particular case. And, therefore, the Court will sentence the defendant to serve three years with the Department of Corrections, giving him credit for time served.
This court found that these statements were not sufficient to justify the trial court's sentence in that case and did "not indicate that the court made a meaningful assessment of any mitigating factors."
Of course, a trial court is afforded broad discretion in sentencing matters. When a trial court provides adequate support for its decision to impose a sentence under the authority of Dorthey, and the record reflects that the sentence was imposed after careful consideration of the particular defendant and the facts of the case, this court will not reverse the sentence imposed by that court, even when that sentence is less than that required by the Habitual Offender Law, unless this court finds that the trial court abused its broad discretion.
It is insufficient for the trial court merely to reiterate the language of Dorthey: that the punishment mandated by the Habitual Offender Law makes no "measurable contribution to acceptable goals of punishment" or that the sentence amounts to nothing more than "the purposeful imposition of pain and suffering" and is "grossly out of proportion to the severity of the crime". These statements are conclusions, not reasons supporting a conclusion. However, where the trial court provides adequate support for its decision to impose a sentence under Dorthey, and the record reflects that the sentence was imposed after careful consideration of the particular defendant and the facts of the case, this court will not reverse the sentence imposed by the trial court unless it finds that the trial court abused its broad discretion.
In the present case, the trial court's statements are very similar to those the same trial judge made in Bass. The court stated:
I, at the time, heard all the evidence and the testimony at the trial. And I find that the minimum sentence of twenty years for this particular offense, as a quad-offender, would be nothing more than a purposeful imposition of pain and suffering. That the sentence of twenty years is grossly out of proportion to the severity of the crime. And the punishment of twenty years in this specific case makes no measurable contribution to an acceptable goal of punishment. So, therefore, because of those reasons, the punishment mandated by 15:529.1 is unconstitutionally excessive as applied to this defendant in this particular case.
These conclusory statements do not indicate the type of "meaningful assessment" sufficient to justify imposing a sentence below the mandatory minimum sentence under the Habitual Offender Law under the holding in John Bass. Accordingly, this application is granted, the sentence vacated, and the case remanded for resentencing.
APPLICATION GRANTED, SENTENCE VACATED, CASE REMANDED FOR RESENTENCING.
PLOTKIN, J., concurs.
PLOTKIN, Judge, concurring.
The development of the particularized excessiveness doctrine enshrined in State v. *261 Dorthey, 623 So.2d 1276 (La.1993), from the constitutional prohibition against excessive punishments was impelled by the tension between the legislature and the judiciary over the control of sentencing. The Louisiana Supreme Court responded to the legislature's grant of discretion to district attorneys to file multiple offender bills leading to severe mandatory minimum sentences for felony recidivists by granting trial judges discretion to deviate from mandatory minimum sentences but neglected to give any greater guidance in the exercise of that discretion than a vague standard adapted from State v. Lobato, 603 So.2d 739, 751 (La.1992), and State v. Scott, 593 So.2d 704, 710 (La.App. 4th Cir.1991): "[A] punishment is constitutionally excessive if it makes no measurable contribution to acceptable goals of punishment and is nothing more than the purposeless imposition of pain and suffering and is grossly out of proportion to the severity of the crime."
Since Dorthey, the Louisiana Supreme Court has consistently passed up the opportunity to clarify Dorthey while review for excessive sentences has created exceptional conflict in the published and unpublished decisions of this circuit. In State v. Abbott, 94-1046 (La.App. 4th Cir. 2/23/95), 650 So.2d 1223, this Court upheld a trial judge's exercise of discretion under Dorthey on the basis of that judge's exhaustive findings of fact which justified a lesser sentence than the statutorily mandated minimum. In several cases, however, this Court has upheld a trial judge's exercise of discretion under Dorthey on less sufficiently stated reasons because an independent review of the record supported the judge's determination. See, e.g., State v. Littleton, 94-0462 (La.App. 4th Cir. 3/29/94), 635 So.2d 398. In still other decisions, however, this Court found abuse of discretion under Dorthey when trial judges inadequately justified their departure from mandatory minimum sentences. See, e.g., State v. Eggerson, 95-1337 (La.App. 4th Cir. 9/15/95), 661 So.2d 1096; State v. Young, 94-1636 (La.App. 4th Cir. 10/26/95), 663 So.2d 525. These decisions leave trial judges with no guidance in determining whether a minimum sentence under the Habitual Offender Law is unconstitutional in a particular case. Likewise, there is no consistent authority for this Court to apply when reviewing a trial judge's decision to depart from a minimum sentence.
Recently, this Court, in an attempt to combat uncertainty and instability in sentencing and to bring some order to its particularized excessiveness review, began to publish extensive summaries of its prior opinions and to admonish trial judges to make the kind of searching inquiry on the record necessary to declare a legislatively mandated sentence unconstitutional and to provide this Court with a record that reflects that a meaningful assessment of any mitigating and aggravating circumstances appropriate to the case was made. I concur to emphasize that these instructions cannot be satisfied by the recitation of conclusory language from Dorthey or any other boilerplate. As the majority indicates, this Court will not uphold a trial judge's discretion to deviate from a legislatively mandated minimum sentence without a record that contains a searching inquiry into and a meaningful assessment of facts and circumstances that justify the exercise of judicial discretion in a particular case. Some significant facts and circumstances in this context include family history, prior criminal conduct in light of whether it was violent or nonviolent and whether it was similar or dissimilar to the conviction for which the defendant is being sentenced, other aggravating and mitigating circumstances such as those provided in Code of Criminal Procedure article 894.1, and the impact of the crime upon the victim. A record that reflects that a sentence was imposed after careful consideration of a particular defendant and the facts of the case in light of such concerns as these will support a trial judge's discretion under Dorthey to depart from a minimum sentence mandated by the Habitual Offender Law.


[Eosinophilic leukaemia with chloroacetate-esterase-positive granules in a child (author's transl)].
Eosinophilic leukaemia was diagnosed in a 13-year-old boy with clinical and haematological signs of acute leukaemia. A positive naphthol-AS-D-chloroacetate esterase reaction was present in 93% of bone marrow eosinophils. This confirms earlier findings for this sub-group of leukaemia in adultsmcharcot-Leyden's crystals were found in bone marrow, and the eosinophils were further characterized by other cytochemical and electronmicroscopic studies. Only short remission periods were achieved, the patient dying 53 weeks after diagnosis. Attacks of cardiac arrhythmias, thought to be due to adriamycin treatment, were probably related to thrombi in the coronary arteries as a result of disseminated intravascular coagulation. It is thought that eosinophilic leukaemia with a positive naphthol-AS-D-chloroacetate esterase reaction is a variant of acute myeloid leukaemia.


Q:

How to make a session enabled ASP.NET web service work with an ajax client in a different domain?

Me and my work mate have spent lots of time finding this answer, so I thought I should share this self answered question.
I have a web service (ASP.NET 4.5) with a method that needs to use the session state. In order to archive this, I have decorated the method with EnableSession=true. This is what MS suggests to do in this article (See "Code Block A" at the end).
In order for the web service to be able to re-use the session, it needs to find a cookie with the session ID. This cookie is created and set, on the server side, by the web server itself the first time the method is called. In order to re-send this cookie with every call, MS suggests to use a "cookie container" that gets assigned to the web service proxy, saved between calls and reused with every call. (See "Code Block B" at the end).
This works great, as long as you plan to call the web service from the server side. I need to call it from the client side using a jQuery ajax JSON Post call (See "Code Block C" at the end). This code works great. In fact, the cookie with the session ID is passed to the web service automatically. No need of the cookie jar...as long as the client and the web service are on the same domain.
If the client is in a different domain (domaina.com) than the web service (domainb.com), the cookie with the session id is not passed along at all. As a result, every call to the web service is considered the first one.
I have the following headers defined on the web config to allow cross domain calls.
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />

So, what is missing?
Code Block A: Web Service with decorated method
public class Util: WebService {
    [ WebMethod(EnableSession=true)]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public int SessionHitCounter() {
       if (Session["HitCounter"] == null) {
          Session["HitCounter"] = 1;
       }
       else {
          Session["HitCounter"] = ((int) Session["HitCounter"]) + 1;
          }
       return ((int) Session["HitCounter"]);
    }
 }

Code Block B: Server Side Cookie Jar Solution
<script runat="server">

    void EnterBtn_Click(Object Src, EventArgs E)
{
  // Create a new instance of a proxy class for your XML Web service.
  ServerUsage su = new ServerUsage();
      CookieContainer cookieJar;

  // Check to see if the cookies have already been saved for this session.
  if (Session["CookieJar"] == null)
    cookieJar= new CookieContainer();
      else
   cookieJar = (CookieContainer) Session["CookieJar"];

    // Assign the CookieContainer to the proxy class.
    su.CookieContainer = cookieJar;

  // Invoke an XML Web service method that uses session state and thus cookies.
  int count = su.PerSessionServiceUsage();

  // Store the cookies received in the session state for future retrieval by this session.
  Session["CookieJar"] = cookieJar;

      // Populate the text box with the results from the call to the XML Web service method.
      SessionCount.Text = count.ToString();
    }

</script>

Code Block C: Ajax Call
            $.ajax({
                type: "POST",
                url: web_services_url + "/SessionHitCounter",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    alert(msg.d);
                }
            });

A:

After hours of thinking and Google searching my mate found that we were missing

An extra header ("Access-Control-Allow-Credentials")
Changing the "*" on "Access-Control-Allow-Origin" to the specific domain that is calling the web service
Adding an extra parameter on the ajax call (withCredentials)

These are the headers that are required to enable CORS
<add name="Access-Control-Allow-Origin" value="http://localhost:53710" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Credentials" value="true" />

This is the ajax call with the extra parameter
$.ajax({
    type: "POST",
    xhrFields: { withCredentials: true },
    url: web_services_url + "/SessionHitCounter",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {
        alert(msg.d);
    }
});


Q:

UITextField keyboard return button should change as Done button

I am having five number of textFields, say textField1,textField2,textField3,textField4,textField5.
What i want to do is that the UITextField keyboard return  button should change as Done button   when all the textField contains some text.
 I have tried,
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if([textField1.text doubleValue]!=0)
        if([textField2.text doubleValue]!=0)
            if([textField3 doubleValue]!=0)
                if([textField4 doubleValue]!=0)
                    if([textField5 doubleValue]!=0)
                    {
                        [textField setReturnKeyType:UIReturnKeyDone];
                    }
                    else
                        [textField setReturnKeyType:UIReturnKeyDefault];
                    else
                        [textField setReturnKeyType:UIReturnKeyDefault];
                    else
                        [textField setReturnKeyType:UIReturnKeyDefault];
                    else
                        [textField setReturnKeyType:UIReturnKeyDefault];
                    else
                        [textField setReturnKeyType:UIReturnKeyDefault];
}

I also tried in
- (void)textFieldDidEndEditing:(UITextField *)textField
{
}

Both are not working... Please anyone help me...

A:

you better play with textFieldShouldBeginEditing, here just check all the textfields are contains non null values,
so code should look like this
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    if([[tf1.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] > 0 && [[tf2.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] > 0 [[tf3.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] > 0) {
        [textField setReturnKeyType:UIReturnKeyDone];
    }
    return TRUE;
}

//// EDIT
I've checked this code. It works fine. so try this and lemme know.
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    if ([self areAllFieldsNonEmpty]) {
        [textField setReturnKeyType:UIReturnKeyDone];
        [textField reloadInputViews];
    } else {
        [textField setReturnKeyType:UIReturnKeyDefault];
        [textField reloadInputViews];
    }
    return TRUE;
}

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if ([self areOtherFiledsNonEmptyThan:textField]) {
        if (range.location == 0 && range.length == 0) {
            [textField setReturnKeyType:UIReturnKeyDone];
            [textField reloadInputViews];
        } else if (range.location == 0 && range.length == 1) {
            [textField setReturnKeyType:UIReturnKeyDefault];
            [textField reloadInputViews];
        }
    }
    return TRUE;
}

- (NSInteger)lengthOf:(UITextField *)tf {
    return [[tf.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length];
}

- (BOOL)areOtherFiledsNonEmptyThan:(UITextField *)tf {
    BOOL isEmpty = TRUE;
    for (UITextField *textField in self.view.subviews) {
        if ([textField isKindOfClass:[UITextField class]] && tf != textField) {
            if ([self lengthOf:textField] == 0) {
                isEmpty = FALSE;
                break;
            }
        }
    }
    return isEmpty;
}

- (BOOL)areAllFieldsNonEmpty {
    BOOL isEmpty = TRUE;
    for (UITextField *textField in self.view.subviews) {
        if ([textField isKindOfClass:[UITextField class]]) {
            if ([self lengthOf:textField] == 0) {
                isEmpty = FALSE;
                break;
            }
        }
    }
    return isEmpty;
}


Legislation is advancing in both the Minnesota House and Senate which would grant a special exemption to one business to enable it to withdraw 150,000,000 to 200,000,000 gallons of water annually from the Poplar River. Withdrawals would occur during the period of low winter flows and threaten to decimate all aquatic life in the lower 2.6 miles of river. The Senate provision, currently in SF 1244, would require the MNDNR to permanently give away this public resource “without regard to minimum flow or water level requirements.” In effect this provision puts a bull’s eye around the core requirement of fish and all aquatic life (adequate water flow to prevent freeze out and winter kill), and prohibits the MNDNR from protecting it. This legislation would in effect give a subsidy to one business and force anglers to “pay” with a valuable public resource. An alternative water source (the third largest in the world) sits nearby, but the business has no incentive to switch to it as long as enough legislators are willing to sacrifice the public’s resources.

Why this is so destructive:

The Poplar River supports wild brook trout and steelhead fisheries, including a population of “coaster” brook trout in the lower reach. The Poplar River is almost entirely dependent upon surface water, and lacks any significant amount of stable groundwater. When water levels fall too low in winter the pools become too shallow to prevent their freezing solid to the bottom. When this happens virtually all aquatic life is wiped out. Water will then flow on top of this ice and things appear fine, but the fishery will have been decimated. Even lesser withdrawals from low winter base flows which do not cause complete winter kill aggravate already harsh conditions and substantially reduce survival of eggs and juvenile fish.

Please contact your legislators no later than Monday morning to urge deletion:

Please let legislators know that you strongly object to their sacrificing the Poplar River trout and steelhead fishery. This egregious give away of a public resource is currently contained in SF 1244, section 18, which provides that, “Notwithstanding any other law to the contrary, the permit for the consumptive use of water approved under this section shall be issued . . . without any additional administrative process to withdraw up to 200,000,000 gallons of water annually for snowmaking and potable water purposes without regard to minimum flow or water level requirements.”

SF1244 is scheduled to be heard in Senate Finance committee on Monday May 9, 30 minutes after the Senate floor session ends. Please call and e mail your senator no later than Monday morning and urge this provision be deleted in that committee or on the Senate floor.

A similar, although less drastic, provision is found in HF 1097, section 99. While it contains some minimum flow restrictions, it fails to contain a deadline by which time this give away of a precious public resource will cease. There must be a clear deadline to get this business to make the long overdue switch to readily available Lake Superior water. HF 1097 will be heard on the House floor at 3 pm Monday May 9. Please call or e mail your Representative before then and urge the removal of section 99. At a minimum the last sentence must be amended to do more than merely require future evaluation and should read: “The permit shall expire in three years and shall not be renewed.”

How to contact your legislator: You can quickly locate and contact your legislators by using the State’s legislative website, http://www.leg.state.mn.us

Just click on your legislator’s name and you will be taken to his or her individual web page. Direct calls and letters the leadership of each body will also help. Make sure to copy the Governor on your correspondence with you legislators so he sees your concern and passion.

How to contact the Governor: If the provision makes it through even one legislative body the Governor and MNDNR Commissioner will have an opportunity to have it removed during the conference committee process. It is important to start letting them hear of your outrage now. Follow this link to see options for contacting Governor Mark Dayton:

The Poplar River has been a trout stream for hundreds, and perhaps thousands, of years.

All surface waters of the state are public resources which landowners do not own, but may make reasonable use of under a water appropriation permitting system.

State law limiting consumptive use of surface waters was enacted in the 1930s, long before the business involved here (“LMC”) sought a permit for a small appropriation. LMC drastically increased its taking of the state’s water beginning in 2001, taking between 60 million and 107 million gallons per year despite being permitted to take less than 13 million GPY.

The legislation would increase withdrawals to 150 million or 200 million GPY.

LMC could pipe water from nearby Lake Superior, but chooses not to.

Continued water withdrawals which exceed the existing permitted amount (13 million GPY) threaten to wipe out the trout and steelhead fisheries enjoyed by many anglers.

Anglers should not be forced to sacrifice a public resource to a private business, especially when an alternate water supply is readily available.

The Poplar River has been a trout stream since long before European settlers came to the area. It supported Minnesota’s native brook trout, including the large “coaster” brook trout variety which utilizes the lower river, especially as a spawning and nursery area. Prior to the opening of the ski area it supported a very productive brook trout fishery throughout the entire section of river, even in the steeper reaches. Several angler accounts from the 1920s document a productive wild brook trout fishery in and below the area now occupied by the ski resort (personal communication with S. Person, MNDNR, Grand Marias Area Fisheries Supervisor). Land use development and activities in the lower watershed have degraded fisheries habitat conditions in the lower 2.6 miles, yet the reach below Hwy 61 which is accessible to migratory trout and salmon still manages, for now, to support a popular wild steelhead fishery and a rebounding native “coaster” brook trout fishery.

Why wintertime withdrawals are so destructive:

Lake Superior tributary streams are almost entirely dependent upon surface waters, and lack any significant amounts of cold, stable groundwater. Consequently the period of low, cold winter flows and extremely cold air temperatures is critical to the survival of trout and steelhead fisheries.

When water levels fall too low in winter the pools become too shallow to prevent their freezing solid to the bottom. When this happens virtually all aquatic life is wiped out. Water will then flow on top of this ice and things appear fine, but the fishery will have been decimated. Even less drastic withdrawals from low winter base flows which do not cause complete winter kill aggravate already difficult conditions and substantially reduce survival.

The Poplar River supports a growing “coaster” brook trout population in the lower reaches, downstream of the LMC water withdrawal points. Brook trout are fall spawners and their eggs incubate in the stream gravel during the winter months. Water withdrawals from low winter base flows aggravate tough conditions for brook trout reproduction and survival. Lower winter flows mean lower egg and juvenile brook trout survival and lower population levels year round. Reduced flows which cause streams to freeze to the bottom mean destruction of all eggs, juveniles and food sources. Since resident brook trout are largely 2 years old are less, successive winter kills can nearly exterminate the population.

The Poplar River also provides a productive and popular wild steelhead fishery in the lower reach. While steelhead are spring spawners and thus their eggs are not at risk from the LMC withdrawals, low flow conditions in the winter limit the survival of juvenile steelhead. Obviously a winter “freeze out” would wipe out a couple year classes of steelhead.

That trout and steelhead populations are now relatively low downstream of the pump intakes, as compared to above them, does not mean the lower section could not support more robust populations if water removal ceased. A very productive brook trout fishery flourished here before the ski resort. The current situation may only be evidence that a decade or more of excessive water withdrawals is already limiting these populations.

Appropriation history:

This special legislation is designed to permit LMC to pull large quantities of surface water, including vital base flow, directly from this important North Shore trout stream for snowmaking convenience. While surface water withdrawals from trout streams have been illegal since 1977, the MNDNR in 1986 gave LMC a waiver permitting it to continue its relatively small withdrawal of 13 million gallons, subject to minimum flow requirements to protect the fishery. However, beginning in 2001 LMC began violating its permit, pumping between 60 and 107 million gallons each winter! The MNDNR has tried to work with LMC, giving it time to switch to another water source; it now appears that LMC is unwilling to do so.

LMC has never owned the water which flows through its land. Minnesota’s surface waters are public resources. However, land owners may make “reasonable use” of the surface waters abutting their property. Minnesota has statutorily defined what constitutes “reasonable use”, especially in the context of consumptive water use. Minnesota has regulated consumptive use of its surface water resources for three quarters of a century, and long before LMC came into existence or sought to withdraw any water from the Poplar River. In 1937 MN established a policy “to conserve, protect and utilize the water resources of the state” and it began requiring that written consent or a permit be obtained from the Department of Conservation in order to appropriate surface waters. The permitting system and rules define what reasonable use is.

The “year-round Q90” flow corresponds to the low flow level. This is the rate at which flows are exceeded 90% of the time. The annual Q90 for the Poplar River is 21 cfs.

In 1964 LMC obtained such a permit from the State of MN, Department of Conservation, to appropriate surface water from the Poplar River at the rate of up to 0.55 cubic feet per second (“cfs”). That permit states, “This permit may be terminated by the Commissioner of Conservation, without notice, at any time he deems it necessary for the conservation of the water resources of the state . . . “ (Minnesota Conservation Department permit # 64-846, General provision 6). In 1964 small scale surface water appropriations, such as LMC’s 0.55 cfs appropriation, were permitted from some trout waters. This appropriation amount represents less than 3% of the base flow of the river (based upon “Q90” value of 21 cfs).

The permit (64-0846) was last amended on December 4, 1986. At that time the DNR granted LMC a special waiver to continue water withdrawals from the Poplar River, but subject to restrictions. The permit authorizes LMC to withdraw no more than 12,600,000 gallons per year of water directly from the Poplar River and sets a maximum rate of 1,800 gallons per minute or about 4.1 cubic feet per second (cfs). It permits the use of three separate pumps (“installations”) at up to 600 gallons per minute each.

The existing permit does not release the permittee from other permit and statutory obligations and it specifically states that the DNR may “. . . require the curtailment of appropriation during periods of low water in order to maintain a desirable minimum flow in the stream.” (Permit 64-0846 dated 12-4-1986, Additional condition #4).

The Poplar River is a public water and designated trout stream which flows through the property. Minn. Stat., sec. 103G.285, subd. 5 has prohibited water appropriations from designated trout streams since June 1977, except for temporary appropriations limited to one to two years in duration.

Based upon annual reports submitted by LMC, LMC appears to have complied with the permit restrictions until 2001.

In 2001 LMC drastically increased its withdrawals of water from the Poplar River far beyond permitted amounts. Surface water withdrawals directly from this trout stream jumped to 60 million gallons in 2001. All withdrawals beyond 12.6 million gallons are not covered by the permit. LMC annually took between 60 and 93 million gallons from the stream between 2001 and 2008. In 2009 and 2010 it took approximately 107 million gallons per year of Poplar River water.

In 2002 the MNDNR became aware of these excess withdrawals from the stream. The MNDNR decided to work with LMC and help it look for and secure a more sustainable long-term water source. The MNDNR, believing that LMC was working with the MNDNR in good faith to secure an alternate source (via pumping from Lake Superior), has allowed LMC to continue using Poplar River water as an interim measure. LMC can appropriate water from nearby Lake Superior, but chooses not to.

While LMC is the only entity we are aware of which MN allows to withdraw water from a trout stream (it not being allowed under MN statute and rules), even surface water withdrawals from warm water streams are required to cease when flows stay below the Q90 for 5 days. Such a provision is in the House bill, but the Senate bill specifically prohibits the inclusion of this most minimal protection.

LMC currently may appropriate trout water at a rate of 4 cfs, which is about 20% of the year-round Q90 base flow.

LMC has indicated they may expand its operation in the future and may desire more water to do so. The proposed legislation would allow LMC to double its appropriate rate to 8 cfs, which at times could be almost 40% of the year-round Q90 base flow, and an even larger percentage of the February Q90 base flow.

Summary:

Anglers and citizens should not be forced to continue, much less drastically increase, an unnecessary subsidy to a private business by sacrificing a popular trout and steelhead fishery.

Even if this public resource were to be sacrificed in this way, the Poplar River still does not contain sufficient base flow to ensure as much water as LMC feels it needs to expand operations.

LMC’s excessive water withdrawals from the Poplar River since 2001 are outside the permit. This conduct should not be rewarded with a special exemption permitting it to destroy a public resource.

While the consumptive water use provisions should be deleted in their entirety, if retained as an interim measure they must impose the minimum flow requirements in HF 1097 and an expiration date no greater than 3 years, to provide an incentive for LMC to finally take steps to secure a sustainable long-term solution to its water use desires.


Kentucky Gov. Matt Bevin’s opposition to gun control legislation in the state’s largest cities isn’t shaking the stance of Louisville’s top cop.

Chief Steve Conrad is a staunch supporter of legislation that could help reduce violent crime by keeping guns away from violent people.

That support remains, he said Wednesday, despite comments from Bevin earlier this week in which he scoffed at the need for “more government” to address surging gun violence in Kentucky cities like Louisville.

“People who want to pretend that it’s something that can be legislated … are delusional,” he said during a press event Tuesday.

Conrad sees otherwise.

“I think it’s at least worth the conversation,” he said during an interview Wednesday morning.

Conrad agreed, in part, with Bevin that solving gun violence will take a multifaceted approach. Mayor Greg Fischer, who also supports giving cities the ability to enact their own gun laws, said the same on Tuesday.

“As a community, we need to work together to look at it hard, to soul search,” Conrad said.

The police chief said he supports the Second Amendment. “Obviously, I mean, I carry a gun for a living,” he said.

But, he added, legislation that could bring stricter penalties for felons found with guns, for instance, could be helpful.

“More so than what we’re doing already,” he said. “Having guns in the hand of people who are prohibited, by law, is problematic.”

Gun violence is plaguing Louisville this year like few before. Homicide tallies have reached a record high and reported shootings are up nearly 40 percent, according to police data.

Conrad and Fischer have long called for legislation that would enable cities to enact local gun laws outside state law. State law prevents that. Local governments across Kentucky are currently barred from adopting any type of law regulating guns or gun accessories. Kentucky state lawmakers passed a bill prohibiting such laws in 2012.

Some state legislators want to change that. But there’s little hope in a Republican controlled legislature.

In an interview Tuesday evening, Fischer said reducing crime takes a “comprehensive approach,” which can include new gun control legislation.

Conrad called gun violence a complicated issue.

“I think for complex problem like this it’s important we come at from multiple directions,” he said.