GrabIt

GrabIt is a freeware newsreader for Windows developed by Ilan Shemes.

History
Ilan Shemes has been making GrabIt changes since the program has been introduced. SSL support was introduced in version 1.7.2 Beta.

Uses
The GrabIt program is solely used to read and download binaries from usenet newsgroups.

Features

GrabIt has Yenc and NZB support and can have up to 50 simultaneous connections.

GrabIt is one of the few newsreaders to include a search function. This search function searches all of the newsgroups on the Shemes news service. This is beneficial for the user wanting to find a certain binary or article. The downside to the search is that a user can only do a fixed number of searches without being subscribed to Shemes news service. Also the queries returned will be those listed in the Shemes service and not necessarily of the user's service. As of GrabIt Beta 1.7.2 Beta 3 SSL encryption is now supported.

See also
List of Usenet newsreaders
Comparison of Usenet newsreaders

External links
Homepage of GrabIt
Slyck's Guide to Grabit

Category:Usenet clients
Category:Windows-only freeware


MINNEAPOLIS -- Gov. Mark Dayton criticized the Minnesota Vikings on Tuesday for considering extra fees on season-ticket holders as a way to help cover the team's share of a new $975 million stadium, but the team's owners point out that option was a key part of the deal.

The Democratic governor and Vikings management were allies during the long path to approving a plan for a new, publicly subsidized stadium that was approved by lawmakers this year. But in a letter to team owners Zygi and Mark Wilf, Dayton said he strongly opposed "shifting any part of the team's responsibility for those costs onto Minnesota Vikings fans. This Private Contribution is your responsibility, not theirs."

The team quickly responded with a statement saying permission to sell so-called stadium builder's licenses was a "key component" of legislation that was "vetted by the Legislature, testified to by Vikings and state of Minnesota negotiators" and signed by the governor.

Many NFL teams that built new stadiums in recent years have relied on such fees, also called personal seat licenses, that usually are a one-time charge on top of the cost of a season ticket. The Star Tribune reported this week that the Vikings had raised the prospect in a survey recently emailed to season-ticket holders.

The stadium deal struck earlier this year among the state, Minneapolis and the Vikings requires the team to pay slightly more than half of the nearly billion-dollar price tag.

During a meeting Tuesday night in Rochester, Vikings vice president Lester Bagley said no decision had been made but confirmed that surveys were sent to sponsors, ticket holders and suite holders "to try to gauge their feelings about this," the Post-Bulletin reported. The meeting was held to discuss the stadium's design and construction, but Bagley was asked about the fee option by a season-ticket holder.

The stadium bill, which Dayton signed into law in May, does include language that allows "stadium builder's licenses," but the Vikings would face a significant hurdle if they try to levy such a fee. Any such arrangement must be approved by the Minnesota Sports Facilities Authority, a five-member panel created to oversee stadium construction and operations.

That panel includes three members appointed by Dayton and two by Minneapolis Mayor R.T. Rybak. A spokesman said Tuesday that Rybak agrees with Dayton and is "one thousand percent opposed" to seat licenses.

The state and the city of Minneapolis together are contributing $498 million to stadium construction, with the Vikings paying the rest. Other sources the team could tap for revenue include a loan from the NFL, stadium naming rights and corporate sponsorships.

"We now have a pretty clear statement from the governor," said Michelle Kelm-Helgen, chairwoman of the commission and a Dayton appointee. "The Vikings are only conducting a survey that includes a question about seat licenses. They haven't made a decision, there's been very little discussion about it between the authority and the team. I personally can't imagine how we would move ahead on this issue without a lot of public input, given the depth of concern we're hearing."

Kelm-Helgen is a former Dayton administration staffer who represented him in stadium talks at the Capitol. She said the subject of personal seat licenses was marginal to those negotiations; she also said she didn't recall Dayton raising objections before his letter.

"It was never a major source of contention one way or another," she said. Republican state Sen. Julie Rosen, a lead negotiator for the state, added that "everyone involved knew the deal included seat licenses. There was testimony about it in the committees."

But Dayton wrote in his letter that if the authority doesn't block any seat license plan, he would go back to the Legislature in January and urge that its authority to approve them be rescinded.


---
abstract: '[We obtain some sharp estimates for the $p$-torsion of convex planar domains in terms of their area, perimeter, and inradius. The approach we adopt relies on the use of web functions ([*i.e.*]{} functions depending only on the distance from the boundary), and on the behaviour of the inner parallel sets of convex polygons. As an application of our isoperimetric inequalities, we consider the shape optimization problem which consists in maximizing the $p$-torsion among polygons having a given number of vertices and a given area. A long-standing conjecture by Pólya-Szegö states that the solution is the regular polygon. We show that such conjecture is true within the subclass of polygons for which a suitable notion of “asymmetry measure” exceeds a critical threshold.]{}'
author:
- 'Ilaria FRAGALÀ - Filippo GAZZOLA - Jimmy LAMBOLEY'
title: 'Sharp bounds for the $p$-torsion of convex planar domains'
---

[: 49K30, 52A10, 49Q10.]{}

[ : isoperimetric inequalities, shape optimization, web functions, convex shapes.]{}

Introduction {#intro}
============

Let $\Omega\subset\R^2$ be an open bounded domain and let $p \in (1,+ \infty)$. Consider the boundary value problem $$\label{euler}
\left\{\begin{array}{ll} -\Delta_p u=1\quad & \mbox{in }\Omega\\
u=0\quad & \mbox{on }\partial\Omega\, ,
\end{array}\right.$$ where $\Delta_pu={\rm div}(|\nabla u|^{p-2}\nabla u)$ denotes the $p$-Laplacian. The [*$p$-torsion*]{} of $\Omega$ is defined by $$\label{defi} \t (\Omega):= \integ|\nabla\ou|^p = \int_\Omega u_p\ ,$$ being $u _p$ the unique solution to (\[euler\]) in $\Wp(\Omega)$. Notice that the second equality in (\[defi\]) is obtained by testing (\[euler\]) by $u_p$ and integrating by parts. Since (\[euler\]) is the Euler-Lagrange equation of the variational problem $$\label{energy}
\min_{u\in \Wp(\Omega)}\J(u)\,, \quad \hbox{ where } \J(u)
=\int_{\Omega} \Big ( \frac{1}{p} |\nabla u| ^p - u \Big ) \, ,$$ there holds $$\t(\Omega) = \frac{p}{1-p} \min_{u\in \Wp(\Omega)}\J(u)\, .$$ A further characterization of the $p$-torsion is provided by the equality $\t(\Omega) = S(\Omega)^ {1/(p-1)}$, where $S(\Omega)$ is the best constant for the Sobolev inequality $\|u\|_{L^1(\Omega)} ^p
\leq S(\Omega) \| \nabla u \| _{L^p(\Omega)}  ^p$ on $\Wp(\Omega)$.

The purpose of this paper is to provide some sharp bounds for $\t(\Omega)$, holding for a convex planar domain $\Omega$, in terms of its area, perimeter, and inradius (in the sequel denoted respectively by $|\Omega|$, $|\partial \Omega|$, and $R_\Omega$). The original motivation for studying this kind of shape optimization problem draws its origins in the following long-standing conjecture by Pólya and Szegö: $$\label{PSconj}
\hbox{{\it  Among polygons with a given area and  $N$ vertices,
the regular $N$-gon maximizes $\t$} \, .}$$ A similar conjecture is stated by the same Authors also for the principal frequency and for the logarithmic capacity, see [@posz]. For $N =3$ and $N= 4$ these conjectures were proved by Pólya and Szegö themselves [@posz p. 158]. For $N \geq 5$, to the best of our knowledge, the unique solved case is the one of logarithmic capacity, see the beautiful paper [@sz] by Solynin and Zalgaller; the cases of torsion and principal frequency are currently open. In fact let us remind that, for $N \geq 5$, the classical tool of Steiner symmetrization fails because it may increase the number of sides, see [@h Section 3.3].

The approach we adopt in order to provide upper and lower bounds for the $p$-torsion in terms of geometric quantities, is based on the idea of considering a proper subspace $\Web(\Omega)$ of $\Wp(\Omega)$ and to address the minimization problem for the functional $\J$ on $\Web(\Omega)$. More precisely, we consider the subspace of functions depending only on the distance $d(x)={\rm dist}(x,\partial\Omega)$ from the boundary: $$\Web(\Omega)=\{u\in \Wp(\Omega)\ : \  u(x)=u(d(x))\}\ .$$ Functions in $\Web(\Omega)$ have the same level lines as $d$, namely the boundaries of the so-called [*inner parallel sets*]{}, $\Omega
_t := \{ x \in \Omega \, :\, d(x) > t \}$, which were first used in variational problems by Pólya and Szegö [@posz Section 1.29]. Later, in [@g], the elements of $\Web (\Omega)$ were called [*web functions*]{}, because in case of planar polygons the level lines of $d$ recall the pattern of a spider web. We refer to [@cg; @cg1] for some estimates on the minimizing properties of these functions, and to the subsequent papers [@cfg; @cfg1] for their application in the study of the generalized torsion problem. Actually, the papers [@cfg; @cfg1] deal with the problem of estimating how efficiently $\t (\Omega)$ can be approximated by the [*web p-torsion*]{}, defined as $$\wt (\Omega) := \frac{p}{1-p}\min_{u\in\Web(\Omega)}\J(u)\ .$$ While the value of $\t(\Omega)$ is in general not known (because the solution to problem (\[euler\]) cannot be determined except for some special geometries of $\Omega$), the value of $\wt
(\Omega)$ admits the following explicit expression in terms of the parallel sets $\Omega _t$: $$\label{ice}
\wt(\Omega) = \int_0 ^ {R_\Omega} \frac{|\Omega _t| ^ q}{|\partial
\Omega _t| ^ {q-1}} \, dt\ ,$$ where $q= \frac{p}{p-1}$ is the conjugate exponent of $p$, and $R_\Omega$ is the inradius of $\Omega$ (see [@cfg1]).

Clearly, since $\Web (\Omega) \subset \Wp (\Omega)$, $\wt(\Omega)$ bounds $\t(\Omega)$ from below. On the other hand, when $\Omega$ is convex, $\t(\Omega)$ can be bounded from above by a constant multiple of $\wt (\Omega)$, for some constant which tends to $1$ as $p\to+\infty$. In fact, in [@cfg1] it is proved that, for any $p\in(1, +\infty)$, the following estimates hold and are sharp: $$\label{proven}
\forall\; \Om\in \C, \quad \frac{q+1}{2^q}<\frac{\wt(\Om)}{\t(\Om)}\leq 1$$ where $\C$ denotes the class of planar bounded convex domains; moreover the right inequality holds as an equality if and only if $\Omega$ is a disk. Note that, if $p\to+\infty$, then $q\to1$ and the constant in the left hand side of tends to $1$.

In this paper, we prove some geometric estimates for $\t(\Omega)$ in the class $\C$, which have some implications in the conjecture (\[PSconj\]). More precisely, we consider the following shape functionals:  . Let us remark that the above quotients are invariant under dilations and that convex sets which agree up to rigid motions (translations and rotations) are systematically identified throughout the paper.

Our main results are Theorems \[estimate2\] and \[new\], which give sharp bounds for the functionals when $\Omega$ varies in $\C$. We also exhibit minimizing and maximizing sequences. These bounds are obtained by combining sharp bounds for the web $p$-torsion (see Theorem \[estimate\] and the second part of Theorem \[new\]) with . As a consequence of our results we obtain the validity of some weak forms of Pólya-Szegö conjecture (\[PSconj\]). On the class $\P $ of convex polygons we introduce a sort of “asymmetry measure” such as $$\forall \Om\in\P, \quad \gamma  (\Omega) :=  \frac{| \partial \Omega| }{| \partial \Omega ^\circledast|} \in [1, + \infty)\ ,$$ where $\Omega ^ \circledast$ denotes the regular polygon with the same area and the same number of vertices as $\Omega$. Then, if the $p$-torsion $\tau_p(\Omega)$ is replaced by the web $p$-torsion $w_p(\Omega)$, (\[PSconj\]) holds in the following refined form: $$\label{PSconjweb}
\forall \, \Omega \in \P \, , \quad \wt (\Omega) \leq \gamma
(\Omega) ^ {-q} \wt (\Omega  ^\circledast) \ .$$ Consequently, on the class $\P _N$ of convex polygons with $N$ vertices, conjecture (\[PSconj\]) holds true for those $\Omega$ which are sufficiently “far” from $\Omega ^\circledast$, meaning that $\gamma (\Omega)$ exceeds a threshold depending on $N$ and $p$: $$\label{PSconjnonweb}
\forall \, \Omega \in \P _N\, : \, \gamma (\Omega) \geq \Gamma_{N, p} ,\quad \t (\Omega) <  \t (\Omega ^ \circledast) \ .$$ The value of the threshold $\Gamma_{N,p}$ can be explicitly characterized (see Corollary \[cor2\]) and tends to $1$ as $p \to + \infty$.

The paper is organized as follows. Section \[main\] contains the statement of our results, which are proved in Section \[proofs\] after giving in Section \[geometric\] some preliminary material of geometric nature. Section \[open\] is devoted to some related open questions and perspectives.

Results {#main}
=======

We introduce the following classes of convex planar domains:

$\C$ = the class of bounded convex domains in $\R^2$;

$\C_o$ = the subclass of $\C$ given by tangential bodies to a disk;

$\P$ = the class of convex polygons;

$\P_N$ = the class of convex polygons having $N$ vertices ($N\geq3$).

Tangential bodies to a disk are domains $\Omega \in \C$ such that, for some disk $D$, through each point of $\partial \Omega$ there exists a tangent line to $\Omega$ which is also tangent to $D$. Domains in $\P\cap\C_o$ are circumscribed polygons, whereas domains in $\C_o\setminus\P$ can be obtained by removing from a circumscribed polygon some connected components of the complement (in the polygon itself) of the inscribed disk. In particular, the disk itself belongs to $\C_o$.

Our first results are the following sharp bounds for the $p$-torsion of convex planar domains. We recall that, for any given $p\in (1, +
\infty)$, $q:= \frac{p}{p-1}$ denotes its conjugate exponent.

\[estimate2\] For any $p \in (1, + \infty)$, it holds $$\label{eq:isoDp}
\forall \Om\in\C,\quad
\frac{1}{q+1}<\frac{\t(\Om)|\partial\Om|^q}{|\Om|^{q+1}}<\frac{2^{q+1}}{(q+2)(q+1)}\ .$$ Moreover,

$\bullet$ the left inequality holds asymptotically with equality sign for any sequence of thinning rectangles;

$\bullet$ the right inequality holds asymptotically with equality sign for any sequence of thinning isosceles triangles.

By sequence of thinning rectangles or triangles, we mean that the ratio between their minimal width and diameter tends to 0. We point out that, in the particular case when $p=2$, the statement of Theorem \[estimate2\] is already known. Indeed, the left inequality in (\[eq:isoDp\]) holds true for any simply connected set in $\R^2$ as discovered by Pólya [@polya]; the right inequality in (\[eq:isoDp\]) for convex sets is due to Makai [@makai], though its method of proof, which is different from ours, does not allow to obtain the [*strict*]{} inequality.

Our approach to prove Theorem \[estimate2\] employs as a major ingredient the following sharp estimates for the web $p$-torsion of convex domains, which may have their own interest.

\[estimate\] For any $p\in(1,+\infty)$, it holds $$\label{eq:isoNp}
\forall \Om\in\C,\quad
\frac{1}{q+1}<\frac{\wt(\Om)|\partial\Om|^q}{|\Om|^{q+1}}\leq\frac{2}{q+2}\ .$$ Moreover,

$\bullet$ the left inequality holds asymptotically with equality sign for any sequence of thinning rectangles;

$\bullet$ the right inequality holds with equality sign for $\Omega \in\C_o$.

Let us now discuss the implications of the above results in the shape optimization problem which consists in maximizing $\t$ in the class of convex polygons with a given area and a given number of vertices: $$\label{probl}
\max \Big \{ \t (\Omega) \ : \ \Omega \in {\mathcal P} _N \, ,\
|\Omega | = m \Big \}\,.$$

We recall that, for any $\Omega \in \P$, $\Omega ^ \circledast$ denotes the regular polygon with the same area and the same number of vertices as $\Omega$. Moreover, we set $$\forall \Om\in\P, \quad \gamma  (\Omega) :=  \frac{| \partial \Omega| }{| \partial \Omega ^\circledast|} \, ;$$ notice that by the isoperimetric inequality for polygons (see Proposition \[prop:isop\]), $\gamma(\Om)\in[1,+\infty)$ and $\gamma(\Omega)>1$ if $\Omega \neq \Omega ^\circledast$. With this notation, it is straightforward to deduce from Theorem \[estimate\] the following

\[cor1\] The regular polygon is the unique maximizer of $\wt$ over polygons in $\P$ with a given area and a given number of vertices. More precisely, the following refined isoperimetric inequality holds: $$\label{PSconjweb'}
\forall \, \Omega \in \P \, , \quad \wt (\Omega) \leq \gamma
(\Omega) ^ {-q} \wt (\Omega  ^\circledast) \ .$$

As a consequence, using , we obtain some information on the shape optimization problem (\[probl\]):

\[cor2\] Let $\displaystyle\Gamma_{N,p}:=\Big(\frac{\wt(\Omega^\circledast)}{\t(\Omega^\circledast)}\Big)^{1/q}\frac{2}{(q+1)^{1/q}}$. Then, $$\forall \, \Omega \in \P _N\, , \quad \t (\Omega) <\Gamma_{N, p} ^q \gamma(\Omega) ^ {-q} \t (\Omega ^ \circledast) \ .$$ In particular, the $p$-torsion of the regular $N$-gon is larger than the $p$-torsion of any polygon in $\P_N$ having the same area and an asymmetry measure larger than the threshold $\Gamma_{N,p}$: $$\label{PSconjnonweb'}
\forall \, \Omega \in \P _N\, , \quad\, \gamma(\Omega)\geq\Gamma_{N,p}\, \Rightarrow\, \t(\Omega)<\t(\Omega^\circledast)\ .$$

Some comments on Corollary \[cor2\] are gathered in the next remark.

\(i) Using again (\[proven\]) we infer $$1 <\Gamma_{N,p} < \frac{2}{(q+1) ^ {1/q}}<2\quad\forall N,p\, ,\qquad\lim_{p\to +\infty}\Gamma_{N,p}=1\ .$$ Hence, asymptotically with respect to $p$, the condition $\gamma(\Omega)\geq\Gamma_{N,p}$ appearing in (\[PSconjnonweb’\]) becomes not restrictive. Moreover, if $p=2$, we have $\Gamma_{N,2}\le2/\sqrt{3}\approx1.15$ and the dependence on $N$ of $\Gamma_{N,2}$ can be enlightened by using the numerical values given in [@cg1]:

            $N$              3       4       5       6       7       8       9      10      20
  ----------------------- ------- ------- ------- ------- ------- ------- ------- ------- -------
   $\Gamma_{N,2}\approx$   1.054   1.089   1.108   1.121   1.129   1.135   1.138   1.141   1.149

\(ii) Though the validity of (\[PSconj\]) is known for triangles, in order to give an idea of the efficiency of Corollary \[cor2\], consider the case $N=3$ and $p=2$. The equilateral triangle $$T^\circledast:=\left\{(x,y)\in\R^2;\, y>0\, ,\ -\frac{1}{2}+\frac{y}{\sqrt{3}}<x<\frac{1}{2}-\frac{y}{\sqrt{3}}\right\}$$ satisfies $|T^\circledast|=\frac{\sqrt{3}}{4}$ and $|\partial T^\circledast|=3$. The solution to is explicitly given by $$u(x,y)=\frac{\sqrt{3}}{8}\left(y-\frac{4}{\sqrt{3}}y^2+\frac{4}{3}y^3-4x^2y\right)$$ so that $\tau_2(T^\circledast)=\sqrt{3}/640$. Moreover, by below we find $w_{2}(T^\circledast)=\sqrt{3}/768$ and, in turn, that $\Gamma_{3,2}=\sqrt{10}/3\approx1.054$.

Consider now the isosceles triangles $T_k$ having the basis of length $k>0$ and the two equal sides of length $$\ell_k=\sqrt{\frac{3}{4k^2}+\frac{k^2}{4}}\quad\mbox{so that}\quad|\partial T_k|=k+\sqrt{\frac{3}{k^2}+k^2}\quad\mbox{and}\quad|T_k|
=\frac{\sqrt{3}}{4}=|T^\circledast|\, ,$$ (notice that $T_{1}=T^\circledast$). Therefore, $$\gamma(T_k)=\frac{k+\sqrt{\frac{3}{k^2}+k^2}}{3}$$ and $\gamma(T_k)\ge\Gamma_{3,2}$ if and only if $2\sqrt{10}\,
k^3-10\, k^2+3\ge0$, which approximatively corresponds to $k \not
\in (0.760, 1.301)$.

We conclude this section with a variant of Theorems \[estimate2\] and \[estimate\].

\[new\] For every $p \in (1, + \infty)$, it holds $$\begin{aligned}
& \displaystyle{\forall \Om\in\C,\quad
\frac{1}{(q+2)2^{q-1}}\leq\frac{\t(\Om)}{R_{\Om}^{q}|\Om|}<\frac{2^q}{(q+1)^2}}&
\label{new2}
\\ \noalign{\smallskip}
& \displaystyle{\forall \Om\in\C,\quad
\frac{1}{(q+2)2^{q-1}}\leq\frac{\wt(\Om)}{R_{\Om}^{q}|\Om|}<\frac{1}{q+1}}\, .& \label{new1}\end{aligned}$$ Moreover,

$\bullet$ the left inequality in $(\ref{new2})$ holds with equality sign for balls;

$\bullet$ the left inequality in $(\ref{new1})$ holds with equality sign for $\Omega \in \C_o$;

$\bullet$ the right inequality in $(\ref{new1})$ holds asymptotically with equality sign for a sequence of thinning rectangles.

The right inequality in (\[new2\]) [*is not*]{} sharp. In fact, for $p=2$, one has the sharp inequalities $$\forall \Om\in\C,\quad \frac{1}{8}\leq\frac{\tau _2(\Om)}{R_{\Om}^{2}|\Om|} \leq \frac{1}{3}\, ,$$ see [@posz p. 100] for the left one, and [@makai] for the right one.

Using the isoperimetric inequalities (\[new2\]) and (\[new1\]), one can also derive statements similar to Corollaries \[cor1\] and \[cor2\], where $\gamma(\Om)$ is replaced by another “asymmetry measure” given by $$\widetilde \gamma (\Omega) = \frac{R_{\Omega^\circledast }}{ R_{\Omega}} \ .$$

Geometric preliminaries {#geometric}
=======================

In this section we present some useful geometric properties of convex polygons, which will be exploited to prove Theorem \[estimate\]. First, we recall an improved form of the isoperimetric inequality in the class $\P$, whose proof can be found for instance in [@cfg Theorem 2]. For any $\Omega \in \P$, we set $$\label{COmega}
C_{\Om}:=\sum_{i}\operatorname{cotan}\frac{\theta_{i}}{2}\, ,\, \ \hbox{ being } \theta_{i}
\hbox{ the inner angles of } \Omega\ .$$

\[prop:isop\]For every $\Om\in\P$, it holds $$\label{eq:iso}
|\Om|\leq\frac{|\partial\Om|^2}{4C_{\Om}}\ ,$$ with equality sign if and only if $\Om\in \P \cap \C _o $, namely when $\Omega$ is a circumscribed polygon.

Next, we recall that, denoting by $R_\Omega$ the inradius of any $\Omega \in \P$, for every $t\in[ 0 , R_\Omega]$, the [*inner parallel*]{} sets of $\Omega$ are defined by $$\Om_{t}:=\{x\in\Om\ :\  {\rm dist}(x,\partial\Om)> t\}$$ (notice in particular that $\Om _{R_\Om} = \emptyset$). Then we focus our attention on the behaviour of the map $t \mapsto
C_{\Omega_t}$ on the interval $[0, R_\Omega]$, and on the related expression of Steiner formulae. For every $\Omega \in \P$, we set

$$r_\Omega:= \sup \big \{ t \in [0, R_\Omega] \ :\ \Omega _t \hbox { has the same number of vertices as $\Omega$ } \big \}\ .$$

Clearly, if $r_\Omega<R_\Omega$, the number of vertices of $\Omega_t$ is strictly less than the number of vertices of $\Omega$ for every $t \in[r_\Omega,R_\Omega)$.

\[boh\] For every $\Omega \in \P$ and $t\geq 0$, $\Om_{t}\in\P$ and the map $t\mapsto C_{\Om_{t}}$ is piecewise constant on $[0, R_\Omega)$. Moreover, for every $t \in [0, r_\Omega]$, it holds $$\label{steiner}
|\Om_{t}|=|\Om|-|\partial\Om|t+C_{\Om}t^2 \qquad \textrm{ and }\qquad |\partial\Om_{t}|=|\partial\Om|-2C_{\Om}t.$$ Finally, for every $t \in [0, R_\Omega]$, it holds $$\label{macrosteiner}
|\partial\Om_{t}|\leq |\partial\Om|-2\pi t.$$

For $t$ small enough, the sides of $\Om_{t}$ are parallel and at distance $t$ from the sides of $\Om$, and the corners of $\Om_{t}$ are located on the bisectors of the angles of $\Om$. $r_{\Omega}$ is actually the first time when two of these bisectors intersect at a point having distance $t$ from at least two sides, see Figure \[parallelsets\].

0:(0,0) 1:(-107,0) 21:(-182,200) 2:(-70,-100) 3:(41.5,-100) 4:(145,0) 24:(350,200) 5:(0,-100) 6:(-94,-34) 7:(71,-71)

11:(-53.5,0) 12:(-35,-50) 13:(21,-50) 14:(72.5,0)34:(228,150) 31:(-110,150)

8:(-12.5,33.5) 9:(34.5,33.5) 44:(103,100) 41:(-38,100)

50:(20,30) 51:(90,10)

(fillmode=yes,color=0.8) (fillmode=no,color=0) (width=1) (width=0.5)

(width=0.5) (dash=8)

0:(0,0) 1:(-107,0) 21:(-114.5,20) 2:(-70,-100) 3:(41.5,-100) 4:(145,0) 24:(165,20) 5:(0,-100) 6:(-94,-34) 7:(71,-71)

8:(-12.5,33.5) 9:(34.5,33.5)

11:(-53.5,0) 12:(-35,-50) 13:(21,-50) 14:(72.5,0) 31:(-64,27) 34:(100,27)

(width=1)

(width=0.5)

(width=0.5) (dash=8)

(width=0.5)

(dash=1) 2; 12(0,110) 2; 15(0,110) 3; 12(45,180)

12; 12(0,110) 12; 15(0,110) 13; 12(45,180)

(dash=8)

Therefore, for $t< r_{\Om}$, $\Om_{t}$ has the same angles as $\Om$ (so $C_{\Om_{t}}=C_{\Om}$ by ), and we notice that the perimeter of grey areas in Figure \[fig:Steiner\] is $2t\operatorname{cotan}(\theta_{i}/2)$, and their areas are $t^2\operatorname{cotan}(\theta_{i}/2)$, which gives (still valid for $t=r_{\Om}$ by continuity).

0:(0,0) 1:(-107,0) 21:(-114.5,20) 2:(-70,-100) 3:(41.5,-100) 4:(145,0) 24:(165,20) 5:(-35,-100) 15:(21,-100) 6:(-82,-67) 7:(56,-86)

11:(-53.5,0) 12:(-35,-50) 13:(21,-50) 14:(72.5,0) 31:(-64,27) 34:(100,27)

20:(-30,-80)

(fillmode=yes,color=0.8) (fillmode=no,color=0)

(width=1)

(width=0.5)

(width=0.5) (dash=8)

(width=0.5)

(dash=1) 2; 12(0,110) 2; 15(0,110) 3; 12(45,180)

(dash=8)

Let us now show that the map $t\mapsto C_{\Om_{t}}$ is piecewise constant on $[0, R_\Omega)$, assuming that $r_\Om < R_\Om$. Once $t=r_{\Om}$, $\Om_{t}$ still has sides parallel to the ones of $\Om$ but loses at least one of them. Again, $C_{\Om_{t}}$ is constant for $t\geq r_{\Om}$ until the next value of $t$ such that another intersection of bisectors appears (we now consider bisectors of $\Om_{r_{\Om}}$). The number of discontinuities of $t\mapsto C_{\Om_{t}}$ is finite since $\Om$ has a finite number of sides, and therefore iterating the previous argument, we get that $t\mapsto C_{\Om_{t}}$ is piecewise constant.

Finally, from we infer that $C_\Omega\ge\pi$ for any $\Omega\in\P$, so that follows from the concavity of the map $t\mapsto|\partial\Omega_t|$ on $[0, R_\Omega]$ (see [@bonn Sections 24 and 55]).

A special role is played by polygons $\Omega\in \P$ such that $r_\Omega=R_\Omega$, namely polygons $\Omega$ whose inner parallel sets all have the same number of vertices as $\Omega$ itself. These are [*polygonal stadiums*]{}, characterized by the following

\[def:stadium\] We call $\S$ the class of [*polygonal stadiums*]{}, namely polygons $P ^ \ell \in \P$ such that there exist a circumscribed polygon $P \in  \P \cap \C_o $ having two parallel sides, and a nonnegative number $\ell$ such that, by choosing a coordinate system with origin in the center of the disk inscribed in $P$ and the $x$-axis directed as two parallel sides of $P$, $P ^ \ell$ can be written as $$\label{deco}
P^\ell:=\Big(P_{-}-\Big(\frac{\ell}{2},0\Big)\Big)\bigcup
\Big(\Big[-\frac{\ell}{2},\frac{\ell}{2}\Big]\times\Big(-R_P,R_P\Big)\Big)\bigcup
\Big(P_{+}+\Big(\frac{\ell}{2},0\Big)\Big)\ ,$$ where $P _-$ (resp. $P _+$) denotes the set of points $(x, y)\in P$ with $x<0$ (resp. $x>0$), and $R_P$ is the inradius of $P$, see Figure \[fig:special\].

0:(0,0) 1:(0,100) 2:(-30,100) 3:(-100,53) 4:(-100,-30) 5:(-55,-100) 6:(0,-100)

7:(30,100) 8:(100,53) 9:(100,-60) 10:(25,-100) 11:(0,-100)

12:(0,120) 13:(0,-120)

14:(57,82)

15:(55,49) 16:(-75,79)

21:(0,50) 22:(-15,50) 23:(-50,26) 24:(-50,-15) 25:(-27,-50) 26:(0,-50)

27:(15,50) 28:(50,26) 29:(50,-30) 210:(13,-50) 211:(0,-50)

(width=1) (width=0.5) (dash=8) 0; 99(0,360)

0:(0,0) 100:(75,0) 1:(0,100) 2:(-30,100) 3:(-100,53) 4:(-100,-30) 5:(-55,-100) 6:(0,-100)

7:(180,100) 8:(250,53) 9:(250,-60) 10:(175,-100) 11:(150,-100)

12:(0,120) 13:(0,-120) 21:(-120,0) 22:(280,0)

212:(150,120) 213:(150,-120)

14:(-57,82)

15:(-30,54) 18:(75,110) 17:(-75,79)

16:(0,110) 17:(150,110)

20:(150,0)

(width=1) (width=0.5) (dash=8) 0; 99(90,270) 20; 99(-90,90)

\[speciali\] Let $\Om \in \P$. There holds $r_\Omega = R_\Omega$ if and only if $\Om \in \S$.

We use the same notation as in Definition \[def:stadium\]. Assume that $\Om= P ^ \ell \in \S$. Then the bisectors of the angles of $\Om$ intersect either at $(-\frac{\ell}{2},0)$ or at $(\frac{\ell}{2},0)$, which are at distance $R_{\Om}$ from the boundary, see Figure \[fig:special2\]. In particular, if $\Om$ is circumscribed to a disk, namely if $\ell
= 0$, then the bisectors of the angles of $\Om$ all intersect at the center of the disk. Therefore, $\Om_{t}$ has the same number of sides as $\Om$ if $t<R_{\Om}$.

0:(0,0) 1:(0,100) 2:(-30,100) 3:(-100,53) 4:(-100,-30) 5:(-55,-100) 6:(0,-100)

7:(180,100) 8:(250,53) 9:(250,-60) 10:(175,-100) 11:(150,-100)

12:(0,120) 13:(0,-120)

212:(150,120) 213:(150,-120)

14:(-57,82)

15:(-30,54) 18:(75,110)

16:(0,110) 17:(150,110)

20:(150,0) 21:(0,50) 22:(-15,50) 23:(-50,26) 24:(-50,-15) 25:(-27,-50) 26:(0,-50)

27:(165,50) 28:(200,26) 29:(200,-30) 210:(163,-50) 211:(150,-50)

(width=1) (width=0.5) (dash=8) 0; 99(90,270) 20; 99(-90,90) 20; 49(-180,180) 0; 49(0,360)

Conversely, assume that $R_\Om=r_\Om$. The set $\{x\in\Om\, :\, d(x)=R_\Om\}$ is convex with empty interior, so either it is a point, or a segment. If it is a point, then its distance to each side is the same, and therefore the disk having this point as a center and radius $R_{\Om}$ is tangent to every side of $\Om$, so that $\Om$ is circumscribed to a disk. If it is a segment, we choose coordinates such that this segment is $\left[\left(-\frac{\ell}{2},0\right);\left(\frac{\ell}{2},0\right)\right]$ for some positive number $\ell$. Every point of this segment is at distance $R_{\Om}$ from the boundary, so $\Om$ contains the rectangle $\left(-\frac{\ell}{2},\frac{\ell}{2}\right)\times\left(-R_\Om,R_\Om\right)$. Considering $$P:=\Big(\Om\cap\Big\{x\leq
-\frac{\ell}{2}\Big\}+\Big(\frac{\ell}{2},0\Big)\Big)\bigcup
\Big(\Om\cap\Big\{x\geq
\frac{\ell}{2}\Big\}+\Big(-\frac{\ell}{2},0\Big)\Big),$$ we have that $P$ is circumscribed and $\Om=P^\ell$.

Thanks to Proposition \[speciali\], for any polygonal stadium $P^\ell$, the validity of the Steiner formulae (\[steiner\]) extends for $t$ ranging over the whole interval $[0, R_{P^\ell}]$. Moreover, the value of the coefficients $|P^\ell|$, $|\partial P ^\ell|$ and $C_{P ^ \ell}$ appearing therein, can be expressed only in terms of $|P|$, $R_P$, and $\ell$ (see Section \[proofs\]). It is enough to use the following elementary equalities deriving from decomposition (\[deco\]) $$|P ^ \ell| = |P | + 2 \ell R_P\ , \qquad
|\partial P ^ \ell| = |\partial P | + 2 \ell\ , \qquad C_{P^\ell} =
C_P\ , \qquad R_{P^\ell} = R_P\ ,$$ and the following identities holding for every $P \in \P \cap \C_o$ $$\label{circum}
C_{P}=\frac{|P|}{R_{P}^2} \ , \qquad |\partial P
|=\frac{2|P|}{R_{P}}\ .$$

Finally, we show that the parallel sets of any convex polygon $\Om$ are polygonal stadiums for $t$ sufficiently close to $R_{\Om}$:

\[becomestadium\] For every $\Om\in\P$, there exists $\overline t \in [0, R_\Omega)$ such that the parallel sets $\Om_{t}$ belong to $\S$ for every $t\in\left[\overline{t},R_{\Om}\right)$.

We define $\overline{t}$ as the last time $t<R_{\Om}$ such that $\Om$ loses a side (we may have $\overline{t}=0$). Therefore $\forall t\in\left[\overline{t},R_{\Om}\right], \Om_{t}$ has a constant number of sides, and so is in the class $\S$ by Proposition \[speciali\].

Proofs
======

Proof of Theorem \[estimate\] {#ssect:proof1}
-----------------------------

We first prove Theorem \[estimate\] for $\Om\in\P$, then we prove it for all $\Om\in\C$.

For a given $\Om\in\P$, we wish to compare the value of the energy $\frac{\wt(\Om)|\partial\Om|^q}{|\Om|^{q+1}}$ with the one of its parallel set $\Om_{\eps}$ for small $\eps$. To that aim, we use the representation formula (\[ice\]) for $\wt(\Omega)$, and Steiner’s formulae . In applying them we recall that, by Proposition \[boh\] the map $t\mapsto C_{\Omega_t}$ is piecewise constant for $t\in[0,R_\Omega)$, and in particular it equals $C_\Omega$ on $[0, r_\Omega]$. Taking also into account that $(\Om_{\eps})_{t}=\Om_{\eps+t}$, as $\eps\to0$ we have $$\begin{aligned}
\frac{\wt(\Om_{\eps})|\partial\Om_{\eps}|^q}{|\Om_{\eps}|^{q+1}}&=&
\frac{\int_{0}^{R_{\Om}-\eps}\frac{|(\Om_{\eps})_{t}|^q}{|\partial(\Om_{\eps})_{t}|^{q-1}}dt\, |\partial\Om_{\eps}|^q}{|\Om_{\eps}|^{q+1}} \label{discuss}\\
&=&\frac{\left[\wt(\Om)-\int_{0}^{\eps}\frac{|\Om_{t}|^q}{|\partial\Om_{t}|^{q-1}}dt\right]\left[|\partial\Om|-2C_{\Om}\, \eps\right]^q}
{\left[|\Om|-|\partial\Om|\, \eps\right]^{q+1}}+o(\eps), \notag\\
&=&\frac{|\partial\Om|^q}{|\Om|^{q+1}}\left[\wt(\Om)-\frac{|\Om|^q}{|\partial\Om|^{q-1}}\eps\right]
\left[1-2q\frac{C_{\Om}}{|\partial\Om|}\eps\right]\left[1+(q+1)\frac{|\partial\Om|}{|\Om|}\eps\right]+o(\eps), \notag\\
&=&\frac{\wt(\Om)|\partial\Om|^q}{|\Om|^{q+1}}+\left[(q+1)\frac{|\partial\Om|^{q+1}}{|\Om|^{q+2}}\wt(\Om)-
\frac{|\partial\Om|}{|\Om|}-2q\frac{C_{\Om}\wt(\Om)|\partial\Om|^{q-1}}{|\Om|^{q+1}}\right]\eps+o(\eps), \notag\\ \notag\end{aligned}$$ so that $$\label{comparison}
\frac{\wt(\Om_{\eps})|\partial\Om_{\eps}|^q}{|\Om_{\eps}|^{q+1}}-
\frac{\wt(\Om)|\partial\Om|^q}{|\Om|^{q+1}}=\left[(q+1)\frac{|\partial\Om|^{q+1}}{|\Om|^{q+2}}\wt(\Om)-
\frac{|\partial\Om|}{|\Om|}-2q\frac{C_{\Om}\wt(\Om)|\partial\Om|^{q-1}}{|\Om|^{q+1}}\right]\eps+o(\eps)\, .$$ As we shall see in the next steps, formula will enable us to reach a contradiction if fails.

[*$\bullet$ Step 2: if fails for some convex polygon then it also fails for a polygonal stadium.*]{} Let $\Omega\in\P \setminus \S$, and assume that fails. We have to distinguish two cases.

[*First case:*]{} Assume that $$\label{contra1}
\frac{\wt(\Om)|\partial\Om|^q}{|\Om|^{q+1}}>\frac{2}{q+2}.$$ Using the isoperimetric inequality and (\[contra1\]), one gets $$\left[(q+1)\frac{|\partial\Om|^{q+1}}{|\Om|^{q+2}}\wt(\Om)-\frac{|\partial\Om|}{|\Om|}-
2q\frac{C_{\Om}\wt(\Om)|\partial\Om|^{q-1}}{|\Om|^{q+1}}\right]\ge
\frac{q+2}{2}\frac{|\partial\Om|}{|\Om|}\left[\frac{\wt(\Om)|\partial\Om|^q}{|\Om|^{q+1}}-\frac{2}{q+2}\right]>0\, .$$ Inserting this information into shows that $$\frac{\wt(\Om_{\eps})|\partial\Om_{\eps}|^q}{|\Om_{\eps}|^{q+1}}-\frac{\wt(\Om)|\partial\Om|^q}{|\Om|^{q+1}}>0$$ for sufficiently small $\eps$. In fact, more can be said. By Proposition \[boh\] we know that $C_{\Omega_t}=C_\Omega$ for all $t\in[0,r_\Omega)$. By extending the above argument to all such $t$, we obtain that, if holds, then the map $t\mapsto\frac{\wt(\Om_t)|\partial\Om_t|^q}{|\Om_t|^{q+1}}$ is strictly increasing for $t\in[0,r_\Omega)$. In particular, by , $$\frac{\wt(\Om_{\eps})|\partial\Om_{\eps}|^q}{|\Om_{\eps}|^{q+1}}>\frac{\wt(\Om)|\partial\Om|^q}{|\Om|^{q+1}}>\frac{2}{q+2}
\qquad \forall \eps \in (0, r_\Omega].$$ So, if $\Om_{r_\Om} \in \S$ , we are done since it violates . At $t=r_\Om$ the number of sides of $\Omega_t$ varies. If $\Om_{r_\Om} \notin\S$, we repeat the previous argument to the next interval where $C_{\Omega_t}$ remains constant. Again, the map $t\mapsto\frac{\wt(\Om_t)|\partial\Om_t|^q}{|\Om_t|^{q+1}}$ is strictly increasing on such interval. In view of Proposition \[becomestadium\], this procedure enables us to obtain some polygonal stadium such that holds.

[*Second case:*]{} Assume that $$\label{contra2}
\frac{\wt(\Om)|\partial\Om|^q}{|\Om|^{q+1}}\leq\frac{1}{q+1}.$$ Hence, $$\left[(q+1)\frac{|\partial\Om|^{q+1}}{|\Om|^{q+2}}\wt(\Om)-\frac{|\partial\Om|}{|\Om|}-
2q\frac{C_{\Om}\wt(\Om)|\partial\Om|^{q-1}}{|\Om|^{q+1}}\right]$$ $$=(q+1)\frac{|\partial\Om|}{|\Om|}\left[\frac{|\partial\Om|^q}{|\Om|^{q+1}}\wt(\Om)-\frac{1}{q+1}-
\frac{2q}{q+1}\frac{C_{\Om}\wt(\Om)|\partial\Om|^{q-2}}{|\Om|^q}\right]<0\,
.$$ Inserting this into and arguing as in the previous case, we see that the map $t\mapsto\frac{\wt(\Om_t)|\partial\Om_t|^q}{|\Om_t|^{q+1}}$ is strictly decreasing for $t\in[0,R_\Omega)$. In view of Proposition \[becomestadium\], this proves that there exists some polygonal stadium such that holds.

[*$\bullet$ Step 3: explicit computation for a polygonal stadium.*]{} Let $\Omega= P ^\ell\in\S$ be a polygonal stadium. We are going to derive an explicit expression for the function $$F(\ell):=\frac{\wt(P^{\ell})|\partial P^{\ell}|^q}{|P^{\ell}|^{q+1}}\qquad \forall \, \ell\ge0\, .$$ We point out that, in the special case $\ell = 0$, $\Omega \in \P \cap \C_o$ (namely $\Om$ is a circumscribed polygon), and it is proven in [@cfg1 Proposition 2] that $$\label{eq:energycirc}
\forall \Om\in\C_o,\quad\frac{\wt(\Om)|\partial\Om|^q}{|\Om|^{q+1}}=\frac{2}{q+2}.$$ In particular, formula shows that the upper bound in is achieved when $\Omega\in\C_o$.

We now show that the above formula can be suitably extended also to the case $\ell>0$. Our starting point is the representation formula (\[ice\]). Therein, we use the Steiner formulae ; in particular, by Propositions \[boh\] and \[speciali\], we know that $C_{\Omega_t}\equiv C_\Omega$ for every $t\in[0,R_\Omega)$. Moreover, since $P \in \P \cap \C _o$, we can exploit identities (\[circum\]). Setting for brevity $$A:= | P|\ , \qquad R := R_P\ , \qquad x:= \frac{2 R \ell} {A}\ ,$$ we obtain $$\begin{aligned}
F(\ell)&=&\frac{\left(2\frac{A}{R}+2\ell\right)^q}{\left(A+2R\ell\right)^{q+1}}
\int_{0}^R\frac{\left(A+2R\ell-2\ell t-2\frac{A}{R}t+\frac{A}{R^2}t^2\right)^q}{\left(2\ell+2\frac{A}{R}-2\frac{A}{R^2}t\right)^{q-1}}dt\,
 \notag\\
&=&\frac{(x+2)^q}{(x+1)^{q+1}}\int_0^1\frac{(1+x-xt-2t+t^2)^q}{(x+2-2t)^{q-1}}\, dt \notag\\
&=&\frac{(x+2)^q}{(x+1)^{q+1}}\int_0^1\; \frac{t^q(x+t)^q}{(x+2t)^{q-1}}\, dt\ .\label{FF}\end{aligned}$$ Of course, taking $x=0$ in gives again ; on the other hand, taking $x\to\infty$ gives the asymptotic behaviour for thinning polygonal stadiums.

[*$\bullet$ Step 4*]{}: In view of equality obtained in Step 3, the estimate will be proved for any polygonal stadium, provided we show that for all $q\in(1,+\infty)$ one has < \_0\^1 dt<x(0,+). With the change of variables $t=xs$, the inequalities in become $$\frac{1}{q+1}\frac{(x+1)^{q+1}}{x^{q+2}(x+2)^q}<\int_0^{1/x}\frac{s^q(1+s)^q}{(1+2s)^{q-1}}\, ds<
\frac{2}{q+2}\, \frac{(x+1)^{q+1}}{x^{q+2}(x+2)^q}\qquad\forall x\in(0,+\infty).$$ In turn, by putting $y=1/x$, the latter inequalities become <\_0\^y ds< y(0,+). In order to prove the right inequality in , consider the function $$\Phi(y):=\int_0^y \frac{s^q(1+s)^q}{(1+2s)^{q-1}}\, ds-\frac{2}{q+2}\, \frac{y^{q+1}(1+y)^{q+1}}{(1+2y)^q}\qquad y\in(0,+\infty)$$ and we need to prove that $\Phi(y)<0$ for all $y>0$. This is a consequence of the two following facts: $$\Phi(0)=0\ ,\qquad\Phi'(y)=-\frac{q}{q+2}\frac{y^q(1+y)^q}{(1+2y)^{q+1}}<0\, .$$ In order to prove the left inequality in , consider the function $$\Psi(y):=\int_0^y \frac{s^q(1+s)^q}{(1+2s)^{q-1}}\, ds-\frac{1}{q+1}\, \frac{y^{q+1}(1+y)^{q+1}}{(1+2y)^q}\qquad y\in(0,+\infty)$$ and we need to prove that $\Psi(y)>0$ for all $y>0$. This is a consequence of the two following facts: $$\Psi(0)=0\ ,\qquad\Psi'(y)=\frac{2q}{q+1}\frac{y^{q+1}(1+y)^{q+1}}{(1+2y)^{q+1}}>0\, .$$ Both inequalities in are proved and follows.

We point out that, in the case $q=2$, some explicit computations give the stronger result that the map $$x\mapsto \frac{(x+2)^q}{(x+1)^{q+1}}\, \int_0^1\frac{t^q(x+t)^q}{(x+2t)^{q-1}}\, dt$$ is decreasing. We believe that this is true for any $q$, but we do not have a simple proof of this property.

[*$\bullet$ Step 5: conclusion.*]{} Let $\Omega\in\P$ and assume for contradiction that $\Omega$ violates . Then by Step 2 we know that there exists a polygonal stadium which also violates . This contradicts Step 4, see . We have so far proved that holds for all $\Omega\in\P$. By a density argument we then infer that $$\label{last}
\forall \Om\in\C,\quad \frac{1}{q+1}\le\frac{\wt(\Om)|\partial\Om|^q}{|\Om|^{q+1}}\leq\frac{2}{q+2}.$$

Therefore, in order to complete the proof we need to show that the left inequality in is strict. Assume for contradiction that there exists $\Om\in\C$ such that $$\label{contradiction}
\frac{\wt(\Om)|\partial\Om|^q}{|\Om|^{q+1}}=\frac{1}{q+1}\, .$$ Take any sequence $\Om^k\in\P$ such that $\Om^k\supset\Omega$ and $\Om^k\to\Omega$ in the Hausdorff topology. Similar computations as in , combined with , enable us to obtain $$\frac{\wt(\Om^k_{\eps})|\partial\Om^k_{\eps}|^q}{|\Om^k_{\eps}|^{q+1}}\le
\frac{\left[\wt(\Om^k)-\int_{0}^{\eps}\frac{|\Om^k_{t}|^q}{|\partial\Om^k_{t}|^{q-1}}dt\right]\left[|\partial\Om^k|-2\pi\, \eps\right]^q}
{\left[|\Om^k|-|\partial\Om^k|\, \eps\right]^{q+1}}$$ $$\le\frac{\wt(\Om^k)|\partial\Om^k|^q}{|\Om^k|^{q+1}}+\left[(q+1)\frac{|\partial\Om^k|^{q+1}}{|\Om^k|^{q+2}}\wt(\Om^k)-
\frac{|\partial\Om^k|}{|\Om^k|}-2q\frac{\pi\wt(\Om^k)|\partial\Om^k|^{q-1}}{|\Om^k|^{q+1}}\right]\eps+\alpha\eps^2,$$ where $\alpha$ is some positive constant, depending on $\Om$ but not on $k$. Therefore, since $\Om^k_t\to\Omega_t$ for all $t\in[0,R_\Omega]$, we have $$\begin{aligned}
\frac{\wt(\Om_{\eps})|\partial\Om_{\eps}|^q}{|\Om_{\eps}|^{q+1}}-\frac{\wt(\Om)|\partial\Om|^q}{|\Om|^{q+1}} &=&
\frac{\wt(\Om^k_{\eps})|\partial\Om^k_{\eps}|^q}{|\Om^k_{\eps}|^{q+1}}-\frac{\wt(\Om^k)|\partial\Om^k|^q}{|\Om^k|^{q+1}}+o(1)\\
&\le&\left[o(1)-2q\frac{\pi\wt(\Om^k)|\partial\Om^k|^{q-1}}{|\Om^k|^{q+1}}\right]\eps+\alpha\eps^2+o(1)\\\end{aligned}$$ where $o(1)$ are infinitesimals (independent of $\eps$) as $k\to\infty$. Hence, by letting $k\to\infty$ and taking $\eps$ sufficiently small, we obtain $\frac{\wt(\Om_{\eps})|\partial\Om_{\eps}|^q}{|\Om_{\eps}|^{q+1}}<\frac{1}{q+1}$, which contradicts .

Proof of Theorem \[estimate2\]
------------------------------

The inequalities follow directly from and so we just need to show that they are sharp.

For the right inequality, take a sequence of thinning isosceles triangles $T_k$. Then, by Theorem \[estimate\] we have $$\frac{\wt(T_k)|\partial T_k|^q}{|T_k|^{q+1}}=\frac{2}{q+2}\qquad\mbox{for all }k\, .$$ On the other hand, by [@cfg1 Proposition 3] and we know that $$\lim_{k\to\infty}\frac{\wt(T_k)}{\t(T_k)}=\frac{q+1}{2^q}$$ and therefore $$\lim_{k\to\infty}\frac{\t(T_k)|\partial T_k|^q}{|T_k|^{q+1}}=\frac{2^{q+1}}{(q+2)(q+1)}\, .$$ For the left inequality, we seek an upper bound for $\t(\Omega)$ by using the maximum principle. For all $\ell\in(0,+\infty)$ let $\Omega^\ell=(-\frac{\ell}{2},\frac{\ell}{2})\times(-1,1)$ and let $u_\ell$ be the unique solution to $$-\Delta_p u_\ell=1\quad\mbox{in }\Omega^\ell\ ,\qquad u_\ell=0\quad\mbox{on }\partial\Omega^\ell\ .$$ Let $u_\infty(x,y)=\frac{p-1}{p}(1-|y|^{p/(p-1)})$ so that $$-\Delta_p u_\infty=1\quad\mbox{in }\Omega^\ell\ ,\qquad u_\infty\ge0\quad\mbox{on }\partial\Omega^\ell\ .$$ By the maximum principle, we infer that $u_\infty\ge u_\ell$ in $\Omega^\ell$ so that $$\t(\Omega^\ell)=\int_{\Omega^\ell}u_\ell\le\int_{\Omega^\ell}u_\infty=\frac{2(p-1)}{p}\ell\int_0^1(1-y^{p/(p-1)})\, dy=\frac{2(p-1)}{2p-1}\ell=\frac{2\ell}{q+1}\, .$$ Hence, $$1\ge\liminf_{\ell\to\infty}\frac{\wt(\Omega^\ell)}{\t(\Om^\ell)}\ge\liminf_{\ell\to\infty}\frac{(q+1)\wt(\Omega^\ell)}{2\ell}=1$$ where the last equality follows from Theorem \[estimate\]. Combined with Theorem \[estimate\], this proves that $$\lim_{\ell\to\infty}\frac{\t(\Om^\ell)|\partial\Om^\ell|^q}{|\Om^\ell|^{q+1}}=\frac{1}{q+1}\, .$$

Proof of Theorem \[new\]
------------------------

Since it follows closely the proof of Theorem \[estimate2\], we just sketch it. We first prove the counterpart of Theorem \[estimate\] and we follow the same steps.

[*$\bullet$ Step 1.*]{} Given $\Om\in\P$ and using $R_{\Om_{\eps}}=R_{\Om}-\eps+o(\eps)$ we prove: $$\label{eq:newparallel}
\frac{\wt(\Om_{\eps})}{R_{\Om_{\eps}}|\Om_{\eps}|}-
\frac{\wt(\Om)}{R_{\Om}|\Om|}=\frac{\eps}{R_{\Om}^q|\Om|}\left(w_{p}(\Om)\left[\frac{q}{R_{\Om}}+
\frac{|\partial\Om|}{|\Om|}\right]-\frac{|\Om|^{q}}{|\partial\Om|^{q-1}}\right)+o(\eps)\, .$$

[*$\bullet$ Step 2.*]{} We prove that, if fails for some $\Om\in\P$, then it also fails for a polygonal stadium. To that end, we estimate the sign in with the help of the following classical geometric inequalities (see [@bonn]) $$\forall \Om\in\C, \;\;\frac{|\Om|}{R_{\Om}}<|\partial\Om|\leq\frac{2|\Om|}{R_{\Om}}\;.$$

[*$\bullet$ Step 3.*]{} Again, explicit computations can be done for a polygonal stadium, and with the same notation as in the proof of Theorem \[estimate\], we get: $$\frac{w_{p}(P^\ell)}{R_{P^\ell}^q|P^\ell|}=\frac{1}{x+1}\int_0^1\frac{t^q(x+t)^q}{(x+2t)^{q-1}}\,dt \qquad
\forall P ^ \ell \in {\mathcal S}\,.$$

[*$\bullet$ Step 4.*]{} In view of Step 3, estimate (\[new2\]) is proved for any polygonal stadium, provided for all $q\in(1,+\infty)$ one has < \_0\^1 dt<x(0,+). With the change of variables $t=xs$ and putting $y=1/x$, the inequalities in become <\_0\^y ds<y(0,+). Some tedious but straightforward computations show that $$\frac{y^{q+1}}{2^{q-1}}+\frac{q+1}{(q+2)2^{q-1}}y^q<\frac{y^q(1+y)^q}{(1+2y)^{q-1}}<\frac{q+2}{q+1}y^{q+1}+y^q
\qquad\forall y\in(0,+\infty)$$ and follows after integration over $(0,y)$.

[*$\bullet$ Step 5.*]{} The previous steps leads to for polygons and by density for convex domains. The strict right inequality in can be obtained by reproducing carefully the computations in Step 1, similarly as done in Step 5 of Section \[ssect:proof1\].

Now the counterpart of Theorem \[estimate\] is proved, and we may use in order to get from . Balls realize equality in the left inequality of because the are at the same time circumscribed and maximal for the quotient $w_{p}/\t$.

Some open problems {#open}
==================

We briefly suggest here some perspectives which might be considered, in the light of our results.

In higher dimensions the shape functionals $\t$ and $\wt$ can be defined in the analogous way as for $n=2$. In [@cr2], Crasta proved the following sharp bounds: $$\forall\; \Om\textrm{ bounded convex set }\subset\R^n\,, \qquad \frac{n+1}{2n}<\frac{w_2(\Om)}{\tau_{2}(\Om)}\leq 1\ .$$ Therefore it seems natural to ask: what kind of isoperimetric inequality can be proved for $w_{p}$ and $\tau _p$ among convex sets in $\R^n$? In this direction, let us quote an inequality proven in [@FK], obtained by a strategy similar to our approach, that is by looking at the level sets of the support function: $$\forall\; \Om\textrm{ bounded convex set }\subset\R^n\,, \qquad
\frac{\tau_{2}(\Om)|\partial\Om|}{R_{\Om}|\Om|^2} \geq \frac{\tau_{2}(B)|\partial B|}{R_{B}|B|^2} \qquad(B\mbox{ is a ball of }\R^n\, ).$$ [*Sharp bounds for the principal frequency.*]{} A notion of “web principal frequency” can be defined (in any space dimension) similarly as done for the web torsion, that is $$\lambda_{1}^+(\Om):=\inf\left\{\frac{\int_{\Om}|\nabla u|^2}{\int_{\Om}u^2}\ :\  u\in \mathcal{W}_{2}(\Om)\right\}.$$ Writing the optimality condition in the space $\mathcal{W}_{2}(\Om)$, one can express $\lambda_{1}^+(\Om)$ as $$\lambda_{1}^+(\Om)=\inf\left\{\frac{\int_{0}^{R_{\Om}}\alpha\rho'^2}{\int_{0}^{R_{\Om}}\alpha\rho^2}\ :\ \rho \in H ^ 1 (0, R_\Om)\, ,\   \rho(0)=0\right\}, \textrm{ where }\alpha(t)=|\partial\Om_{t}|.$$ It is clear that $\lambda_{1}^+ (\Om) \geq \lambda_{1}(\Om)$, with equality sign when $\Om$ is a ball. On the other hand, the following questions can be addressed:

$\bullet$ Find a sharp bound from above for the ratio $\lambda_{1}^+(\Om)/\lambda_{1}(\Om)$ among bounded convex subsets of $\R^n$.

$\bullet$ Is it possible to apply successfully the same strategy of this paper, that is find sharp bounds for $\lambda_{1}^+(\Om)$ and then use the estimates on the ratio $\lambda_{1}^+(\Om)/\lambda_{1}(\Om)$, to deduce sharp bounds for $\lambda_{1}(\Om)$? In particular, this approach might allow to retrieve the following known inequalities holding for any bounded convex domain $\Omega \subset \R^2$ (see [@he; @makai; @polya]): $$\displaystyle{\frac{\pi^2}{16}\leq \lambda_{1}(\Om)\frac{|\Om|^2}{|\partial\Om|^2}\leq \frac{\pi^2}{4}} \qquad \hbox{ and } \qquad \displaystyle{\frac{\pi^2}{4}\leq \lambda_{1}(\Om)R_{\Om}^2\leq j_{0}^2\ .}$$

This work was realized thanks to the financial support of the Italian Gruppo Nazionale per l’Analisi Matematica, la Probabilità e le loro Applicazioni, as part of the project “Problemi di ottimizzazione e disuguaglianze geometrico-funzionali”, and by the French Agence Nationale de la Recherche, as part of the project ANR-09-BLAN-0037 “Geometric analysis of optimal shapes”.

[99]{}


Indigenous investors are lining up to get financially involved in the multi-billion dollar Trans Mountain pipeline expansion project.

The $4.5 billion dollars project, purchased by the federal government, is currently on hold.

The pipeline, if built, will see a large increase in the amount of bitumen flowing from the Alberta tar sands to the B.C. coast.

Two consortiums have announced an interesting in buying all, or part of the pipeline and now a third group has joined the discussion.

The Alberta based Iron Coalition wants to buy at least a 50 per cent stake in the pipeline.

The coalition says that 30 Indigenous and Metis organizations in Alberta want to invest.

Chris Stewart Video Journalist / Edmonton Chris Stewart has been in the media for 20 years. He has worked at CBC, Global and CTV as a news camera operator and editor. Chris joined APTN in 2012 in the Saskatoon Bureau and moved to APTN Edmonton bureau in 2015 as a Videojournalist.

Report an Error Tell us your Story

Your Name * Your Email Address * Details * Submit Report


Sharks hang on to beat Kings 2-1 and tie series

SAN JOSE, Calif. (AP) — The San Jose Sharks barely held off the Los Angeles Kings at the end for a second straight home win.

Now the job gets really tough: The Sharks know they need to end the home-team dominance if they have any chance of winning this second-round series.

Brent Burns got San Jose off to a fast start with a quick score and Logan Couture added a power-play goal early in the second period before the Sharks held on for a 2-1 victory Tuesday night to knot their series at two games apiece.

“We knew going into this series we’d have to win one game at Staples Center if we want to win this series,” Couture said. “We’ve done our job at home. We need to go into L.A. and win a game on Thursday. We’re looking forward to it.”

Captain Joe Thornton fueled the fast start with a dominant opening period, setting up Burns for his goal and helping the Sharks break out to a 15-3 shots advantage. San Jose fell into a shell the second half of the game, managing just four shots in the final 36:05 after taking a 2-0 lead.

Antti Niemi made 13 of his 22 saves in the third period to help the Sharks match Los Angeles’ two home wins to open the series with two of their own.

“They were really desperate and they came hard,” Niemi said. “Of course we wanted to start better and keep the puck in their zone, but they came hard. We were able to keep them out.”

Game 5 is Thursday in Los Angeles.

Mike Richards scored a power-play goal and Jonathan Quick made 21 saves for the Kings, who have lost 10 of 11 road games dating to the end of the regular season.

After falling behind 2-0, the Kings showed some fight in a dominant third period. They got on the scoreboard on a power play when Burns was sent off for boarding Anze Kopitar.

Los Angeles wore down San Jose’s penalty killers in the offensive zone and scored when Richards knocked in a rebound of Jeff Carter’s shot.

“I think we battled back and made it close but you don’t get much for making it close,” Kings coach Darryl Sutter said.

The Kings outshot the Sharks 14-2 in the third period, holding San Jose without a shot for nearly 13 minutes, but couldn’t get the equalizer against Niemi.

Couture gave the Sharks a 2-0 lead early in the second period, deflecting a point shot by Boyle past Quick while Colin Fraser was in the penalty box for roughing Andrew Desjardins in the offensive zone.

The Kings started to generate the better scoring chances after that, getting denied a goal midway through the period on an early whistle by an official. Los Angeles was unable to generate a shot on goal during two power plays later in the period with Jake Muzzin, shooting high with an empty net to cost the Kings a golden opportunity at a goal.

“For us, it’s about how they dominated the first half of the game and then we dominated the second half of the game,” defenseman Rob Scuderi said. “But they buried their chances. They play well here and we didn’t learn from Game 3, so that’s on us for not learning from our own mistakes.”

The Sharks opened the game with one of their most dominating periods of the year to the delight of the boisterous crowd chanting “Beat LA! Beat LA!” from the start.

But San Jose had only one goal to show for that start thanks to solid play from Quick and a shot by Tommy Wingels that rang off the crossbar.

Led by the physically imposing line of Thornton, Burns and TJ Galiardi, the Sharks spent almost the entire first period in the Los Angeles zone.

San Jose jumped on top early when Thornton stole the puck from Slava Voynov on the forecheck and fed Burns, who shot was blocked. Thornton came up with the loose puck and slid a perfect cross-ice pass to Burns, who was not denied on his second chance, beating Quick with a one-timer.

“Burns has been shooting the puck real well so it was just a matter of time until he put one in the net,” Thornton said. “After the first shot, the puck just came right back to me. He was open again and I just made the pass.”

The Kings had to feel fortunate that was all San Jose managed for the period as they killed off two penalties and withstood constant pressure from the Sharks.

NOTES: F Kyle Clifford returned for Los Angeles after missing four games with an upper-body injury in place of rookie Tanner Pearson. ... Kings D Matt Greene, who played only five regular season games because of back problems, was in the lineup for the first time this postseason in place of Keaton Ellerby. ... F Tim Kennedy returned to the Sharks lineup in place of Marty Havlat, who left Game 3 after the first period with a lower-body injury.


As a very pleased member of your QUALICO spouse and children, Pacesetter Homes also shares in the prosperous sixty-calendar year home constructing heritage as amongst western Canada’s most thriving builders.

- Austin is rich in its possess numerous lifestyle and offers unlimited options for eating, purchasing and recreation.

A pending listing signifies a vendor has approved an offer from a consumer. In some cases, the seller will settle for backup offers.

Check out our current availabilities and brief transfer-ins to discover the very best home for both you and your household.

Sports activities are a well-liked pastime and interest everywhere you go while in the US, from the most significant towns on the smallest dale, but there are number of locations the place athletics are certainly a method [...]

Thanks for calling Pulte. We might be in contact with you Soon. You'll be able to quickly generate an account with only a password. Advantages of creating your account

Here's a Exceptional chance to purchase a home in Mueller in the mid three hundred's! This spacious, XTRA substantial,1-Bed room condo has an entire watch of downtown and the adjoining pocket park! Personalized cabinetry, wood flooring, granite counters & a private balcony!

There is a thing for everyone here is Austin with an quick-likely Texan kind of Life style. If you are searhing for a whole new homebuilder in Austin, Texas, give us a shout!

Charges, programs, and phrases are successful about the day of publication and subject to vary all of sudden. Square footage/acreage shown is barely an estimate and true sq. footage/acreage will differ. Purchaser must count on his / her own analysis of useable spot. Depictions of homes or other features are artist conceptions. Hardscape, landscape, together with other things proven new homes in austin texas may be decorator tips that aren't A part of the acquisition cost and availability may possibly differ. No watch is promised. Views might also be altered by subsequent development, development, and landscaping growth. This Web page incorporates general specifics of a completely new home Local community(ies) while in the states listed over and it is not a proposal or maybe the solicitation of a proposal for the purchase of a fresh home. This data is just not directed to residents of some other condition that requires registration or permit issuance previous to the publication of this sort of facts.

Recently manufactured homes can be a great choice for home potential buyers, since they generally enable for more Original customization and could also have a brand new home guarantee. You will get more specific data by calling a Austin Real estate property Agent from our directory or directly from a listing web page.

Liz termed me again once she arrived back to operate. She available to carry out FaceTime and clearly show my spouse and I The 2 residences that were accessible. We produced the choice on starting up the getting system righ then. Liz and Cody are already very professional and very responsible. They gave us The boldness we needed due to the fact we were being residing out of home builders austin condition. We extremely advocate David Weekly Homes. The standard of our house is excellent!! Day printed: 2017-07-thirty

To understand why, it can help to begin with Individuals extended, incredibly hot Texas summer afternoons just 6 months ago.

Brett Rhode, an Austin architect who intended the original job, explained the task is remaining reconfigured for apartments.

Lennar will be the leading builder of excellent new homes in by far the most attractive housing markets through the nation. Our home designs show our determination to our consumers by showcasing outstanding new home development plus a devotion to excellence in homebuilding. Each and every new home available presents the simplicity of provided new homes austin selections showcased in our design homes and inventory homes.


9.19 gauche.net - Networking

Provides a set of functions necessary for network communications
based on BSD socket interface.

The API is provided in two different levels. Lower level routines
reflect traditional BSD socket interface, such as bind(2).
Higher level routines provides more convenient way to create
typical connection-oriented server/client sockets.

This module also provides APIs to obtain various information
about hostnames, service ports, and protocols.

Gauche can handle IPv6 if it is compiled
with the --enable-ipv6 configuration option.
To check whether IPv6 is enabled or not,
you can use cond-expand with
gauche.net.ipv6 feature identifier
after loading gauche.net, as shown below.

9.19.1 Socket address

Socket address objects

An abstract base class of socket addresses. Each socket address family
is implemented as a subclass of this class.

Although socket addresses are built-in classes, you can use
make method to create an instance of a
specific socket address family.

Generic Function: sockaddr-familyaddr

Returns a symbol that indicates the family of the socket address
addr.

Generic Function: sockaddr-nameaddr

Returns a string which represents the content of the socket address
addr.

Builtin Class: <sockaddr-in>

AF_INET family socket address. To create an instance of this class,
use make method as follows:

(make <sockaddr-in> :host host :port port)

host can be a string, an integer IP address, a
u8vector IP address, or one of the keywords
:any, :broadcast, :none or :loopback.
If it is a string, it is either a host name or a dotted IP notation.
Gauche uses gethostbyname(3) to obtain the actual IP address from
host parameter. If it is a keyword :any,
or :broadcast, the address
uses INADDR_ANY, or INADDR_BROADCAST
respectively. The keyword :loopback is a synonym to the
IPv4 loopback address "127.0.0.1".

port must be a positive integer indicating the port number.
See also make-sockaddrs below, to create multiple
socket addresses on the machine which may have more than one
protocol stack.

Method: sockaddr-family(addr <sockaddr-in>)

Returns a symbol inet.

Method: sockaddr-name(addr <sockaddr-in>)

Returns a string in the form "a.b.c.d:port",
where "a.b.c.d" is dotted decimal notion of
the IP address and port is the port number.

Method: sockaddr-addr(addr <sockaddr-in>)

Method: sockaddr-port(addr <sockaddr-in>)

Returns the IP address and the port number as an integer, respectively.

Builtin Class: <sockaddr-un>

AF_UNIX family socket address. To create an instance of this class,
use make method as follows:

(make <sockaddr-un> :path path)

path must be a string specifying pathname of the socket.

Method: sockaddr-family(addr <sockaddr-un>)

Returns a symbol unix.

Method: sockaddr-name(addr <sockaddr-un>)

Returns a pathname of the socket address.

Builtin Class: <sockaddr-in6>

AF_INET6 family socket address. This is only available if
gauche is configured with –enable-ipv6 configure option.
The constructor and the slots are the same as <sockaddr-in>.
See also make-sockaddrs below, to create multiple
socket addresses on the machine which may have more than one
protocol stack.

Function: make-sockaddrshost port :optional proto

This is a higher-level utility procedure to create all possible
inet domain socket addresses that point to host:port
of protocol proto. Particularly, if the specified host has
both IPv4 and IPv6 addresses, and the running system supports both,
then both IPv4 and IPv6 socket addresses are returned. If host has
multiple IP addresses, socket addresses are created for each of these
IP address. You can make your network application much more portable
among different network stack configurations.

Passing #f to host creates the local
(server) address. You can also pass a service name (e.g. "http")
instead of an integer, to the port argument.
The value of proto can be either a symbol tcp or udp,
and the default is tcp.

It always returns a list of socket addresses. If the lookup of host
is failed, null list is returned.

Address and string conversion

Function: inet-string->addressaddress

Converts string representating of the internet address address
to an integer address. If address is parsed successfully,
returns two values: the integer address value and the recognized
protocol (the constant value 2 (= AF_INET)
for IPv4 addresses, and 10 (= AF_INET6)
for IPv6 addresses). If address can’t be
parsed, #f and #f are returned.

Like inet-string->address, but fills the given u8vector
buf by the parsed address instead of returning it as
an integer value. The integer representation of inet addresses
is likely to be a bignum, and you can avoid creating bignums
with this function. The given u8vector buf must be mutable.
Returns the protocol on success, or #f on failure.

The caller must provide big enough buffer. If buf
is larger than required, the result is filled from the top
of the u8vector and the rest of the vector remains intact.

Converts the given address to its string representation
of the protocol protocol, which can be either
2 (the constant AF_INET) or 10
(the constant AF_INET6).
An integer or a u8vector can be used as address. If it is
a u8vector, only the necessary portion of the vector is read; i.e.
the vector can be longer than the required length.

9.19.2 High-level network functions

Builtin Class: <socket>

Abstracts a socket, a communication endpoint.

For a connection-oriented socket, you can access the communication
channel by two ports associated to the socket, one for input and
another for output. socket-input-port and socket-output-port
returns those ports, respectively.

The following three functions are convenient ways to create
a connection-oriented socket. Those functions
are to provide an easy methods for typical cases,
but have less control. If you need more than these functions
provide, use low-level interface.

Function: make-client-socket:optional address-spec …

Creates and returns a client socket, connected to the address
specified by address-spec ….

(make-client-socket 'unix path)

The client socket is connected to the unix domain server socket
of address path.

(make-client-socket 'inet hostport)

The client socket is connected to the inet domain server socket
with hostname host and port port. TCP protocol is
assumed. host can be either a hostname, or
a dotted decimal notation of IPv4 address.
If gauche is compiled with –enable-ipv6, IPv6 address notation
can also be used. Port must be an exact integer specifying
a port number, or a string service name (e.g. "http").

If gauche is compiled with –enable-ipv6, and the hostname is given,
and the hostname has both IPv6 and IPv4 addresses, then
IPv6 connection is tried first, and IPv4 is used when IPv6 fails.

(make-client-socket hostport)

This works the same as above. This form is for compatibility with STk.

(make-client-socket sockaddr)

If an instance of <sockaddr> is passed,
a socket suitable for sockaddr is opened and then connected
to the given address.

This function raises an error if it cannot create a socket,
or cannot connect to the specified address.

Creates and returns a server socket, listening the address
specified by address-spec.

(make-server-socket 'unix path [:backlog num])

The socket is bound to a unix domain socket with a name path.
The keyword argument backlog is passed to socket-listen
to specify the maximum number of connection request the server can keep
before accepting them. The default is 5. If your server is very busy
and you see "connection refused" often, you might want to increase it.

The socket is bound to an inet domain TCP socket, listening
port port, which must be a non-negative exact integer
or a string service name (e.g. "http").
If port is zero, the system assigns one of available port numbers.
If a keyword argument reuse-addr? is given and true,
SO_REUSEADDR option is set to the socket before bound to
the port. This allows the process to bind the server socket
immediately after other process releases the port.

Alternatively, you can pass a list of positive exact integers to port.
In that case, Gauche tries to bind each port in the list until it succeeds.

If keyword argument sock-init is given, it should be a procedure
that takes two arguments, a created socket and the socket address.
The procedure is called just after the socket is created. It is
useful to set some special socket options.
The keyword argument backlog is the same as in unix sockets;
see the description above.

Creates one or more sockets that listen at port
on all available network interfaces of host.
You can specify a service name (such as "http") to
port, as well as an integer port number.
Returns a list of opened, bound and listened sockets.

This procedure is particularly useful when the host
has multiple protocol stacks, such as IPv4 and IPv6.
In that case, this procedure may return a list of IPv4 socket(s) and
IPv6 socket(s).
(On some OSes, single socket can listen both IPv4 and IPv6. On
such platform, a list of single socket will be returned.)

The meaning of keyword arguments are the same as of make-server-socket.

You can pass 0 to port, just like make-server-socket,
to let the system choose an available port number. If pass 0 as
port and this procedure returns multiple sockets, it is guaranteed
that all the sockets share the same port number.

Several accessors are available on the returned socket object.

Function: socket-addresssocket

Returns a socket address associated with socket.
If no address has been associated to the socket, #f is returned.

Function: socket-input-portsocket :key (buffering :modest)

Function: socket-output-portsocket :key (buffering :line)

Returns an input and output port associated with socket,
respectively.

The keyword argument buffering specifies the buffering mode
of the port. See File ports, for explanation of the
buffering mode.

Function: socket-closesocket

Closes socket. All the ports associated to
socket are closed as well.
Note: as of release 0.7.2, this procedure does not shutdown
the connection. It is because socket may be referenced
by forked process(es) and you might want to close it without
interfering the existing connection. You can call
socket-shutdown to shutdown the connection explicitly.

socket must be a connected client socket. proc is called
with two arguments, an input port that reads from the socket
and an output port that writes to the socket.
The socket is closed after proc returns or proc
raises an error.

The keyword arguments input-buffering and output-buffering
are, if given, passed as the buffering keyword arguments
of socket-input-port and socket-output-port, respectively.

This is an example of usage of high-level socket functions,
a very simple http client.

9.19.3 Low-level socket interface

These functions provide APIs similar to the system calls.
Those who are familiar to programming with socket APIs will
find these functions useful since you can have more detailed control over
the sockets.

Function: make-socketdomain type :optional protocol

Returns a socket with specified parameters.

Constant: PF_UNIX

Constant: PF_INET

Constant: PF_INET6

These constants are bound to the system’s constants
PF_UNIX, PF_INET and PF_INET6.
You can use those values for domain argument of make-socket.

(PF_INET6 is defined only if the underlying operating
system supports IPv6.)

Constant: AF_UNIX

Constant: AF_INET

Constant: AF_INET6

These constants are bound to AF_UNIX,
AF_INET and AF_INET6.

(AF_INET6 is defined only if the underlying operating
system supports IPv6.)

Constant: SOCK_STREAM

Constant: SOCK_DGRAM

Constant: SOCK_RAW

These constants are bound to SOCK_STREAM, SOCK_DGRAM
and SOCK_RAW, and suitable to pass to the type argument
of make-socket.

Function: socket-fdsocket

Returns an integer system file descriptor of the underlying socket.

Function: socket-statussocket

Returns a internal status of socket, by one of the following
symbols.

none

The socket is just created.

bound

The socket is bound to an address by socket-bind

listening

The socket is listening a connection by socket-listen

connected

The socket is connected by socket-connect or socket-accept.

shutdown

The socket is shutdown by socket-shutdown

closed

The socket is closed by socket-close.

Function: socket-bindsocket address

Binds socket to the local network address address.
It is usually used to associate specific address to the server port.
If binding failed, an error is signaled (most likely the address is
already in use).

For the inet domain address, you can pass address with port=0;
the system assigns the port number and sets the actual address to
the address slot of socket.

Function: socket-listensocket backlog

Listens socket. The socket must be already bound to some
address. backlog specifies maximum number of connection
requests to be queued.

Function: socket-acceptsocket

Accepts a connection request coming to socket.
Returns a new socket that is connected to the remote entity.
The original socket keeps waiting for further connections.
If there’s no connection requests, this call waits for one to come.

You can use sys-select to check if there’s a pending connection
request.

Function: socket-connectsocket address

Connects socket to the remote address address.
This is the way for a client socket to connect to the remote entity.

Function: socket-shutdownsocket how

Shuts down connection of socket. If how is SHUT_RD (or 0),
the receive channel of socket is disallowed.
If how is SHUT_WR (or 1), the send channel of
socket is disallowed.
If how is SHUT_RDWR (or 2), both receive and send channels are
disallowed. It is an error to call this function on a non-connected socket.

If you shut down the send channel of the socket, the remote peer
sees EOF from its receive channel. This is useful if the remote peer
expects EOF before sending something back to you.

Function: socket-getsocknamesocket

Returns a <sockaddr> instance that is the local address of
socket.

Function: socket-getpeernamesocket

Returns a <sockaddr> instance that is the peer address of
socket.

Function: socket-sendsocket msg :optional flags

Function: socket-sendtosocket msg to-address :optional flags.

Interfaces to send(2) and sendto(2), respectively.
Transmits the content of msg through socket.
msg can be either a string or a uniform vector; if you send
binary packets, uniform vectors are recommended.

Returns the nubmer of octets that are actually sent.

When socket-send is used, socket must already be connected.
On the other hand, socket-sendto can be used for non-connected
socket, and the destination address is specified by
a <sockaddr> instance to-address.

The optional flags can be a bitwise OR of the integer
constants MSG_*. See the system’s manpage of send(2)
and sendto(2) for the details.

Function: socket-sendmsgsocket msghdr :optional flags

Sends a packet described by msghdr through socket
using sendmsg(3). The msghdr argument must be a
string or u8vector, and it must be prepared as a binary representation
of struct msghdr. A reliable way to build a msghdr is
to use socket-buildmsg described below.

The flags argument is the same as socket-send and
socket-sendto.

Returns number of octets sent.

This procedure is not yet supported under the Windows native platform.
You can use the feature identifier gauche.os.windows to check
availability of this procedure (see Platform-dependent features).

Function: socket-buildmsgaddr iov control flags :optional buf

Builds a binary representation of struct msghdr which is
suitable to be given to socket-sendmsg.
You have to be familiar with sendmsg(3) system call
to understand this procedure.

The addr argument must be an instance of <sockaddr>
or #f. If it is a sockaddr, the msg_name field
of the msghdr is filled with the address.

The iov argument must be a vector or #f. If it is
a vector, each element must be either a string or a u8vector.
They are used to fill msg_iov field of the msghdr.
Their contents will be concatenated in the kernel to make a payload.

The control argument represents ancillary data, a.k.a. cmsg.
It can be #f if you don’t need ancillary data. Otherwise,
it must be a list in the following form:

((leveltypedata) …)

Where level and type are exact integers,
and data is either a string or a u8vector.
The former two are used to fill cmsg’s cmsg_level
and cmsg_type fields. The data is for
cmsg’s data (cmsg_len is calculated from data).

The flags argument is used to fill msg_flags.

If the buf argument is #f or omitted, new memories
are allocated to construct the msghdr. If a mutable
u8vector is given to buf, socket-buildmsg tries
to use it to construct the msghdr as much as possible; it allocates
memory only if buf is used up.

Returns the constructed msghdr as a u8vector.

This procedure is not yet supported under the Windows native platform.
You can use the feature identifier gauche.os.windows to check
availability of this procedure (see Platform-dependent features).

Function: socket-recv!socket buf :optional flags

Interface to recv(2). Receives a message from socket,
and stores it into buf, which must be a mutable uniform vector.
Returns the number of bytes actually written. socket must
be already connected. If the size of buf isn’t enough to
store the entire message, the rest may be discarded depending on
the type of socket.

The optional flags can be a bitwise OR of the integer
constants MSG_*. See the system’s manpage of recv(2)
for the details.

Function: socket-recvfrom!socket buf addrs :optional flags

Interface to recvfrom(2). Receives a message from
socket, which may be unconnected, and stores it to
a mutable uniform vector buf. Like socket-recv,
if the size of buf isn’t enough to store the entire message,
the rest may be discarded depending on the type of socket.

Returns two values; the number of bytes actually written into
buf, and an instance of a subclass of <sys-sockaddr>
which shows the sender’s address.

The addrs argument must be a list of instances of socket
addresses, optionally its last cdr being #t (as a special
case, if there’s zero addresses to pass, just #t may be given).
The content of each address doesn’t matter; if the protocol family
of one of them matches the sender’s address, the sender’s address
is written into the passed sockaddr object. By listing sockaddrs
of possible families, you can count on socket-recvfrom!
to allocate no memory on successful operation. It is useful if
you call socket-recvfrom! in a speed-sensitive inner loop.

If the sender’s address family doesn’t match any of the addresses
given to addrs, the behavior depends on whether the list is
terminated by () or #t. If it is terminated by (),
(i.e. addrs is a proper list), the sender’s address is simply
discarded and socket-recvfrom! returns #f as the
second value. If the list is terminated by #t,
socket-recvfrom! allocates a fresh sockaddr object and
returns it as the second value.

Two simple cases: If you pass () to addrs, the sender’s
address is always discarded, which is useful if socket is
connected (that is, you already know your sender’s address).
If you pass #t to addrs, a new socket address
object is always allocated for the sender’s address,
which is convenient if you don’t mind memory allocation.

The optional flags can be a bitwise OR of the integer
constants MSG_*. See the system’s manpage of recvfrom(2)
for the details.

Function: socket-recvsocket bytes :optional flags

Function: socket-recvfromsocket bytes :optional flags

Like socket-recv! and socket-recvfrom!, but
these returns the received message as a (possibly incomplete)
string, up to bytes size. Additionally,
socket-recvfrom always allocates a socket address
object for the sender’s address.

The use of these procedures are discouraged, since they
often returns incomplete strings for binary messages.
Using strings for binary data creates many pitfalls.
Uniform vectors (especially u8vectors) are for binary data.
(The reason these procedures return strings is merely historical.)

Variable: MSG_CTRUNC

Variable: MSG_DONTROUTE

Variable: MSG_EOR

Variable: MSG_OOB

Variable: MSG_PEEK

Variable: MSG_TRUNC

Variable: MSG_WAITALL

Pre-defined integer constants to be used as flags values
for socket-send, socket-sendto, socket-recv
and socket-recvfrom. Some of these constants may not be
defined if the underlying operating system doesn’t provide them.

Further control over sockets and protocol layers is possible
by getsockopt/setsockopt interface, as described below.

Function: socket-setsockoptsocket level option value

Function: socket-getsockoptsocket level option rsize

These are the interface to setsockopt() and getsockopt() calls.
The interface is a bit clumsy, in order to allow full access to
those low-level calls.

socket must be a non-closed socket object.
level and option is an exact integer to specify
the level of protocol stack and the option you want to deal with.
There are several variables pre-bound to system constants listed below.

To set the socket option, you can pass either an exact integer or
a string to value. If it is an integer, the value is passed
to setsockopt(2) as C int value. If it is a string, the
byte sequence is passed as is. The required type of value depends on
the option, and Gauche can’t know if the value you passed is expected
by setsockopt(2); it is your responsibility to pass the correct values.

To get the socket option, you need to tell the maximum length of expected
result by rsize parameter, for Gauche doesn’t know the amount
of data each option returns.
socket-getsockopt returns the option value as a byte string.
If you know the option value is an integer, you can pass 0 to rsize;
in that case socket-getsockopt returns the value as an exact integer.

Note about the name: I tempted to name these function socket-{set|get}opt
or socket-{set|get}-option,
but I rather took the naming consistency. Hence duplicated "sock"s.

The following predefined variables are provided.
Note that some of them are not available on all platforms.
See manpages socket(7), tcp(7) or ip(7) of
your system to find out exact specification of those values.

For “level” argument:

Variable: SOL_SOCKET

Variable: SOL_TCP

Variable: SOL_IP

These variables are bound to SOL_SOCKET, SOL_TCP and
SOL_IP, respectively.

For “option” argument:

Variable: SO_KEEPALIVE

Expects integer value. If it is not zero, enables sending of
keep-alive messages on connection-oriented sockets.

Variable: SO_OOBINLINE

Expects integer value. If it is not zero, out-of-band data is
directly placed into the receive data stream. Otherwise
out-of-band data is only passed when the
MSG_OOB flag is set during receiving.

Variable: SO_REUSEADDR

Expects integer value. If it is not zero, socket-bind
allows to reuse local addresses, unless an active listening
socket bound to the address.

Variable: SO_TYPE

Gets the socket type as an integer (like sock_stream).
Can be only used with socket-getsockopt.

Variable: SO_BROADCAST

Expects integer value. If it is not zero, datagram sockets
are allowed to send/receive broadcast packets.

Variable: SO_PRIORITY

Expects integer value, specifying the protocol-defined priority
for all packets to be sent on this socket.

Variable: SO_ERROR

Gets and clears the pending socket error as an integer.
Can be only used with socket-getsockopt.

Function: inet-checksumpacket size

Calculates one’s complement of Internet Checksum (RFC1071) of the
packet, which must be given as a uniform vector. First
size bytes of packet are used for calculation.
Returned value is in network byte order (big-endian).
It is an error if size is greater than the size of packet.

Looks up a host that has an address addr of protocol proto.
addr is a natural string representation of the address;
for ipv4, it is a dotted decimal notation. proto is a
protocol number; only AF_INET is supported currently.
If the host is found, returns a <sys-hostent> object.
Otherwise, returns #f.

An entry of the network service database. Corresponding to
struct servent in C. The following slots are available read-only.

Instance Variable of <sys-servent>: name

The formal name of the service (string).

Instance Variable of <sys-servent>: aliases

A list of alias names of the service (list of strings).

Instance Variable of <sys-servent>: port

A port number registered for this service (exact integer).

Instance Variable of <sys-servent>: proto

A protocol name for this service (string).

Function: sys-getservbynamename proto

Looks up the network service database with a service name name and
a protocol proto. Both name and proto must be a string.
If a service is found, an instance of <sys-servent> is returned.
Otherwise, #f is returned.

Looks up the network service database with a service port port and
a protocol proto. port must be an exact integer, and
proto must be a string.
If a service is found, an instance of <sys-servent> is returned.
Otherwise, #f is returned.

The new interface to keep address information.
Corresponds to struct addrinfo in C.
This is only available if gauche is configured with –enable-ipv6 option.
The following slots are provided.

Instance Variable of <sys-addrinfo>: flags

Instance Variable of <sys-addrinfo>: family

Instance Variable of <sys-addrinfo>: socktype

Instance Variable of <sys-addrinfo>: protocol

Instance Variable of <sys-addrinfo>: addrlen

Instance Variable of <sys-addrinfo>: addr

Function: sys-getaddrinfonodename servname hints

Returns a list of <sys-addrinfo> instances from the given nodename,
servname and hints.
This is only available if gauche is compiled with –enable-ipv6 option.

Function: sys-ntohsinteger

Function: sys-ntohlinteger

Function: sys-htonsinteger

Function: sys-htonlinteger

Utility functions to convert 16bit (s) or 32bit (l) integers
between network byte order (n) and host byte order
(h).

Scheme API to the netdb interface calls those byte order conversion
functions internally, so you don’t usually need them so much as in C
programs. However, it may be useful when you’re constructing or
analyzing binary packets. See also Packing Binary Data to handle
binary data.


package com.albedo.java.common.core.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自定义导出Excel数据注解
 *
 * @author somewhere
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface ExcelField {
	/**
	 * 导出到Excel中的名字.
	 */
	String title() default "";

	/**
	 * 日期格式, 如: yyyy-MM-dd
	 */
	String dateFormat() default "";

	/**
	 * 读取内容转表达式 (如: 0=男,1=女,2=未知)
	 */
	String readConverterExp() default "";

	/**
	 * 如果是字典类型，请设置字典的type值
	 */
	String dictType() default "";

	/**
	 * 导出类型（0数字 1字符串）
	 */
	ColumnType cellType() default ColumnType.STRING;

	/**
	 * 导出时在excel中每个列的高度 单位为字符
	 */
	double height() default 14;

	/**
	 * 导出时在excel中每个列的宽 单位为字符
	 */
	double width() default 16;

	/**
	 * 文字后缀,如% 90 变成90%
	 */
	String suffix() default "";

	/**
	 * 当值为空时,字段的默认值
	 */
	String defaultValue() default "";

	/**
	 * 提示信息
	 */
	String prompt() default "";

	/**
	 * 设置只能选择不能输入的列内容.
	 */
	String[] combo() default {};

	/**
	 * 是否导出数据,应对需求:有时我们需要导出一份模板,这是标题需要但内容需要用户手工填写.
	 */
	boolean isExport() default true;

	/**
	 * 另一个类中的属性名称,支持多级获取,以小数点隔开
	 */
	String targetAttr() default "";

	/**
	 * 字段类型（0：导出导入；1：仅导出；2：仅导入）
	 */
	Type type() default Type.ALL;

	/**
	 * 支持类型，全部，导出，导入
	 */
	enum Type {

		/**
		 * 全部
		 */
		ALL(0),
		/**
		 * 导出
		 */
		EXPORT(1),
		/**
		 * 导入
		 */
		IMPORT(2);
		private final int value;

		Type(int value) {
			this.value = value;
		}

		public int value() {
			return this.value;
		}
	}

	/**
	 * 列类型
	 */
	enum ColumnType {
		/**
		 * 数字
		 */
		NUMERIC(0),
		/**
		 * 字符串
		 */
		STRING(1);
		private final int value;

		ColumnType(int value) {
			this.value = value;
		}

		public int value() {
			return this.value;
		}
	}
}


Inhibitory effects of recombinant porcine interferon-α on high- and low-virulence porcine reproductive and respiratory syndrome viruses.
The inhibitory effects of recombinant porcine interferon alpha (rPoIFN-α) on the propagation of low-virulence PRRSV (lvPRRSV) in MARC-145 cells, and on the progress and severity of high virulence PRRSV (hvPRRSV)-induced infections in pigs, were determined. Pre-treatment of MARC-145 cells with increasing concentrations of rPoIFN-α prior to infection with lvPRRSV decreased the observed cytopathic effects (CPEs) in a concentration-dependent manner. Viral propagation and antibody response were temporarily delayed in swine treated with rPoIFN-α either at the same time as the hvPRRSV challenge was administered or post-challenge. Exposure of challenged animals to rPoIFN-α after the onset of disease symptoms alleviated associated hyperthermia. Variations in lymphocyte subsets indicated that rPoIFN-α treatment might alleviate damage to the immune system or enhance propagation of host cytotoxic T-lymphocytes when the treatment was applied simultaneously with the virus or 1dpc, respectively.


Q:

What are your techniques for storing numpy structures in django database fields and how do you serialize them for http?

I want to publish a small web project that is supposed to contain some of my research results to present it to the scientific community. All my analysis I ran so far have been written in python already, thus I considered to use django web framework to provide the results. This is, because I plan to show some visualization on up-to-date data, so I can run my analysis on new data by a cron directly in django.
there are actually two questions on my mind so far, how I am going to start developing:

How can I easily store numpy arrays in sqlite to keep the structure of the array and which type of django database field suits best?
What is the best way to json.dump the numpy 2d-arrays to be able handle them in d3.js?

As you can see it is quite about putting numpy + django + d3.js together. My first hacking was to store the numpy results as strings, but I think this is not quite the best, since I need to parse them again after pulling them from database. Concerning the second question I already found simplejson.dumps but unfortunately it does not really work on numpy arrays and thus, sometimes I needed to hack something like this
return  HttpResponse('{"array1" : '+simplejson.dumps(list(array1))+'}')

which I actually don't really like.
So to put it together again:
What are your techniques for storing numpy structures in django database fields and how do you serialize them for http?

A:

the best solution depends on a number of further questions, e.g.:

do you need to query the DB for array-content?
if yes, you will probably need to store the arrays as strings and query for strings (regex).
if no, consider serializing with cPickle. cPickle is fast and less verbose than simple strings.
anyway, you'll have to put your array in a text-field.
do you need to read or modify the arrays in python after they are written to the DB?
if yes, cPickle is the way to go. you read it back from the db, recreate the numpy array, read or modify and then encode the array as json.
if no, (and your arrays are not prohibitively big) store the array directly as json and just write the db-record verbatim to the http-respose.


Q:

Why is unistd.h different in MSYS2 and mingw-w64-x86_64-toolchain?

I am running CLion which recommended MinGW. The most current one seems to be MSYS2. At first CLion didn't find gcc, cmake and so on. To do that I had to install mingw-w64-x86_64-toolchain, which creates a mingw64 folder in my msys64 (MSYS2 installation folder) folder.
A software I am trying to compile requires either MSVC functions or POSIX ones, like sysconf. But sysconf is undefined, at least in the unistd.h of mingw-w64-x86_64-toolchain. In the main unistd.h of MSYS2 itself it is available.
So, what's the big difference? Why aren't they the same?

A:

The MSYS2 environment provides two toolchains to target two different runtimes on Windows.

The msys2 toolchain which lives in /usr makes programs that depend on the msys-2.0.dll POSIX emulation layer.
The MinGW toolchain which lives in /mingw32 or /mingw64 creates native Windows programs that basically only have access to the features provided by Microsoft's headers and lirbaries, and not much else.  These programs are easier to redistribute to other users and generally run faster.

If you really need a lot of features of POSIX, you'll probably not be able to use the MinGW toolchain.


Q:

Managing HTML5 DIV Size

So some time ago I developed a web application that allows users to launch a system application and view the debug log of that application in browser.  I used Server Side EventSource to update a
 each time a new line is written to the debug file.  The end result is something like a "tail -f" in browser.  Everything was working pretty well until someone started using the application in a different way where > 10,000 lines are written to the debug file.
Depending on the system and browser, anything over ~8-10k lines causes the browser to hang and respond extremely slowly.  Unfortunately I can not place controls on what is written to the debug file but I thought that I could only display the last 2k lines.  However, this page is brought up immediately after the system application is launched and the user stays on this page until the system application call completes.....  So is there any way to clear what is written to the
 tag in a FIFO manner?  Otherwise, is there a way to improve performance to handle larger data size?  Here are some relevant code snips from the PHP..
This is the page that has the
 that is updated:

This is from stream.php which is called by the previous
if($_SESSION['done'] == 0 ){

clearstatcache();
$currentSize = filesize($file);
//echo "data: Test running, please wait ".$size."\n\n";
if ($size != $currentSize) {

    $fh = fopen($file, "r");
    fseek($fh, $size);
    $dcounter=0;
    sleep(5);
    while ($d = fgets($fh)) {
        //$d=str_replace(' ',' ',$d);
        if (preg_match("/Executing test case:/", $d)) {
            echo "data:
<form name='abort' id='abort' method='post' enctype='multipart/form-data' action='executor_state_change.php'><input type=hidden name=kill value=".$pid."/><input type='button' value='Abort' onclick=openPopup();></form>
\n\n";
        }
        echo "data: ".htmlspecialchars($d)."\n\n";
        if (preg_match("/Please select continue when above instruction is complete/", $d)) {
            $sql="SELECT wait FROM test_procedure_execution WHERE id=".$proc_id.";";
            $sql_result=mysqli_query($con,"$sql");
            $sql_row=mysqli_fetch_row($sql_result);
            if($sql_row[0]==1){
                echo "data: <form name='continue' id='continue' method='post' enctype='multipart/form-data' action='continue.php'><input type=hidden name=test_procedure_execution_id value=".$proc_id." /><input type='submit' value='Continue' onclick='button.style.display =none;'></form>\n\n";
                echo "data: <audio autoplay loop><source src='sounds/alert.wav' type='audio/wav'></audio>\n\n";
            }
        }
        $dcounter++;
        //ob_flush();
        //flush();
    }
    fclose($fh);

    $_SESSION["size"] = $currentSize;
}

A:

After appending the message HTML of the last event to document.getElementById("debug").innerHTML, you should do the processing. Possibly something like this:
var content = document.getElementById("debug").innerHTML + event.data + "
";
var lines = content.split("
");
lines = lines.splice(lines.length - 2000, 2000);
document.getElementById("debug").innerHTML = lines.join("
");


Fluorescence modulation sensing of positively and negatively charged proteins on lipid bilayers.
Detecting ligand-receptor binding on cell membrane surfaces is required to understand their function and behavior. Detection platforms can also provide an avenue for the development of medical devices and sensor biotechnology. The use of fluorescence techniques for such purposes is highly desirable as they provide high sensitivity. Herein, we describe a technique that utilizes the sensitivity of fluorescence without directly tagging the analyte of interest to monitor ligand-receptor interactions on supported lipid bilayers. The fluorescence signal is modulated according to the charge state of the target analyte. The binding event elicits protonation or deprotonation of pH-responsive reporter dyes embedded in the lipid bilayer. Supported lipid membranes containing ortho-conjugated rhodamine B-POPE (1-hexadecanoyl-2-(9Z-octadecenoyl)-sn-glycero-3-phosphoethanolamine), which fluoresces in its protonated but not in its deprotonated form, were utilized as sensor platforms for biotin-avidin and biotin-streptavidin binding events. The membranes contained 5 mol% biotin-PE (1,2-dipalmitoyl-sn-glycero-3-phosphoethanolamine-N-(cap biotinyl) (sodium salt) as a capture ligand. Supported lipid bilayers were formed in the channels of microfluidic devices and the fluorescence intensity of the dye was monitored as protein was introduced. The binding of avidin, which is positively charged at pH 7.2, made the bilayer surface charge more positive, which in turn deprotonated the ortho-rhodamine B dye, reducing its fluorescence. The binding of streptavidin, which is negatively charged at pH 7.2, had the opposite effect. Reducing the ionic strength of the analyte solution by removing 150 mM NaCl from the 10 mM phosphate buffered saline (PBS) solution raised the apparent pKa of the ortho-rhodamine B titration point by about 1 pH unit. This could be exploited in conjunction with bulk solution pH changes to turn the rhodamine B-POPE dye into a sensor for streptavidin involving a decrease, rather than an increase, in the fluorescence response, at pH values below streptavidin's pI value. This study demonstrates the ability to monitor ligand-receptor interactions on supported lipid bilayers through the protonation or deprotonation of reporter dyes for both negatively and positively charged analytes over a range of pH and ionic strength conditions. Specifically, the sensitivity and pH-operating range of this technique can be optimized by modulating the sensing conditions which are employed.


//
//     Generated by class-dump 3.5 (64 bit) (Debug version compiled Oct 15 2018 10:31:50).
//
//     class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2015 by Steve Nygard.
//

#import <CloudKitDaemon/CKDResponseBodyParser.h>

@class NSMutableData;

@interface CKDProtobufResponseBodyParser : CKDResponseBodyParser
{
    BOOL _parsingStandaloneMessage;
    BOOL _isParsing;
    Class _messageClass;
    NSMutableData *_tailParserData;
    unsigned long long _curObjectLength;
}

- (void).cxx_destruct;
@property(nonatomic) BOOL isParsing; // @synthesize isParsing=_isParsing;
@property(nonatomic) unsigned long long curObjectLength; // @synthesize curObjectLength=_curObjectLength;
@property(retain, nonatomic) NSMutableData *tailParserData; // @synthesize tailParserData=_tailParserData;
@property(nonatomic) BOOL parsingStandaloneMessage; // @synthesize parsingStandaloneMessage=_parsingStandaloneMessage;
@property(nonatomic) Class messageClass; // @synthesize messageClass=_messageClass;
- (void)finishWithCompletion:(CDUnknownBlockType)arg1;
- (void)processData:(id)arg1;
- (BOOL)_parseObjects:(BOOL)arg1;
- (BOOL)_parseObjectFromData:(id)arg1 rawData:(id)arg2;
- (id)initWithQoS:(long long)arg1;

@end