BeautyForeverHair

2018/04/09

In spite of all our best efforts(endless working, several devices on the go, insatiable hope), we still didnt manage to bag an elusive Glastonbury ticket.

But that doesnt mean we cant work the most talked about, Instagram-hyped festival hair craze at every other possible opportunity. Were talking, of course, about Beauty forever hair.

Unlike some synthetic, short life time hair, Beauty Forever Hair use 100% unprocessed virgin hair to produce high quality hair bundles, hair weaves, clip in hair extension and lace frontal/closure with great texture and various pattern.

Beauty Forever straight hair, Beauty forever Curly hair, Beauty forever body wave hair, and other wavy pattern are available for you with top quality hair texture like Brazilian virgin hair, virgin Indian hair, Peruvian hair, virgin Malaysian hair.

f:id:beautyforeverhairblog:20170420151153j:plain

Beauty Forever Hair Big Discount
Purchase more than twice, and you will be Beauty forever hair VIP customer, great discount for you:
Get 11$ off with VIP11 all order over $120
Get 15$ off with VIP15 all order over $200
Get 18$ off with VIP18 all order over $300
Get 25$ off with VIP25 all order over $500

場合は、コレか……

ハウス BM バイメタルホルソー85mm BMH-85
しかしこの値段だとケース買えるよね。
ヒートシンクに固定する方法を考えるか。ううむ。

足をつくる

2018/04/09

f:id:amanedoll:20140113160815j:plain
f:id:amanedoll:20140113160824j:plain
体調が戻ったので、とにかく手を動かしています。
休むとまたスピードに乗るまでが大変なので…

顔とか、あまり細かい作業はやめて、磨いたり、足の形を作ったりしています。

f:id:amanedoll:20140113160841j:plain
足の長さは、手の長さに指を足したくらい。

f:id:amanedoll:20140113160850j:plain
関節球を乾かしています。
首、肩、股関節。

膝、肘、手首、足首の関節は切断してからサイズを決めて作ります。

 ダンロップスポーツは10日、バドミントンのシャトル製造に参入すると発表した。仏バボラVS社からブランドのライセンス供与を受けて製造する。デサントが総販売代理店であるウエア以外で、同社はバボラVS社の総販売代理店を務める。今回、ダンロップスポーツがシャトルの製造販売に乗り出すことで、バボラVSは日本でバドミントン用品をトータルで展開することになる。

 ダンロップスポーツが製造するシャトルは「Babolat 1」。日本バドミントン協会へ第1種検定球として申請する。9月30日から約半年間のテスト販売を実施し、バボラブランドの浸透を目指す。価格は税抜き4000円の予定。ガチョウ羽に3層コルクと、本格的な素材を採用した。(写真はダンロップスポーツの発表資料より)

 

f:id:gaku-tokyo:20150913214734j:plain

これ、すごい前から存在してるのをずっと知りませんでした。

 

ハイキングに来ているようなおじいちゃんが

山とか自然の中で、日本のアニメについてかなり詳しく語る

という不思議な動画。

 

たぶんアニメ好きなら、わかるわかる〜〜

というのが多々ある。

 

スポンサーリンク

この老人・・何者!?

一部ではこの老人が自分でやってることではなくて

組織的にやってることでは??という話もありますが

詳細は不明。

 

そしてある時から更新が途絶えているそうです。

 

2008年〜2011年ころまで投稿されていたとか。

本当は英語で語られているのですが

誰かが日本語字幕をつけてくれた動画がいっぱいあります。

 

とくに僕がお気に入りの動画を貼っておきましょう!

 

 

 

 

 

 

 

あとは「アリゾナ老人」と自分の好きなアニメタイトルを入れて

検索してみましょう!

 

アリゾナ老人 - YouTube

 

Qです。

 

最近、晴天率が平均よりも低い滋賀県にある我が家の近所でも、

既存の住宅に太陽光発電を設置する「後付け太陽光発電」のリフォームを行う家が増えてきています(゚∀゚)

 

値段も下がってますし、雨漏りしにくい、いろいろな工法が開発されていますので、私Qも後付け太陽光発電のリフォームをすることに心が揺らいでいます (>Д<)

 

でもね、後付け太陽光発電っていろんなリスクがありますから、設置するなら必ずチェックしておきたい項目がありますね!

 

ということで、今回は

後付け太陽光発電の注意点、チェック項目をまとめてみました ヽ(´∀`)ノ

 

なお、下記は私Qの自己流チェック項目ですので、間違いがあればご容赦くださいね。 

【1】僅かな発電量の差よりも家にダメージを与えないことが重要

太陽光発電システムの寿命は約20年(パワコンは約10年)とされていますね。

さて、家の残りの寿命は…??

 

我が家はあと50年もたせる必要があります。

なので、太陽光発電と一緒に家がオダブツなることは許せません(`ω´)

 

そのためには… 

①屋根(野地板)に穴を開けないこと

太陽光パネルを固定するための金具を、野地板(屋根の合板のこと)にビス止めする工法が一般的ですが、この工法だと雨漏りするおそれがあります。

雨漏りすると20年どころか、すぐに家が傷みます。。

 

なので、 野地板に穴を開けない工法を選択することが重要ですね!

 

 

野地板に穴を開けない工法には、下記のようなものがあります。

(名称クリックでリンク先を開きます。)

 

カナメソーラーグリップ 金具で屋根材(スレートや瓦等)を掴むことで屋根に対して太陽光パネルを固定する工法

 

シンプルレイ 屋根面には加工をしない、屋根の端部に金具を引っ掛けて金属骨組みを固定する工法

 

PVグリップ 屋根材一体のパネルを隙間なく配置する工法、傷んだスレート屋根の上から配置できる。パネルを固定するための波板は屋根材(野地板)にビスを打ち込んで固定しているようなので、パネルの隙間から雨水が漏れないように設計しているのか。

 

マグソーラーシステム 両面テープと接着剤とで屋根に固定した金属板に対して、磁力でパネルを固定する工法。既存の屋根材の撤去が必要か。

  

②壁面の断熱材に開ける穴への対処

たいていの場合、発電した電力をブレーカの場所まで引き込むケーブルを通すために、壁面のどこかに穴を開ける必要があります。

 

最近の家は、気密性が高いので、この穴をちゃんと塞いでくれるかどうかで気密性が変わってくる可能性があります。

 

また、結露の原因にもなりますので、(断熱しながら)穴を塞ぐことはとても重要です。

 

具体的には、ケーブルを通した後の穴を、ウレタンスプレー+コーキングなどで、しっかり塞いでもらえるといいでしょうね。

 (10年ぐらいでウレタンの痩せやコーキングの防水性などのメンテナンスは必要でしょう。。。)

 

③積載重量と許容重量を調べること

 以前と比較すると軽量化されたパネルもあるようですが、パネルの枚数が多い場合にはかなりの重量になります。

 

この重量が20年間載って、家全体が耐えられるか、

屋根の片側だけ載せたときにバランス(土地の沈下など)がどうなるか、

太陽光発電の業者ではなく、家を建てた工務店、ハウスメーカに聞いてみるべきでしょう。

 

どのくらいまでの重さまでの重さに耐えられるか(許容重量)が分かれば、搭載できる容量なんかも計算できるようになりますね ヽ(´∀`)ノ

  

【2】施工業者の経験値

施工業者がどの程度の経験値(施工数)を持っているか、

実際に施工する職人はどの程度の経験値があるか、

…なんてことは、善意で施工する場合の出来、不出来を左右します。

つまり、一生懸命作業してくれたときに、上手か下手くそかってことを左右します。

 

業者(営業)との打ち合わせのときに、どのような職人が施工するのか、よくよく聞いておく必要がありますね。

施工については外注業者に丸投げの場合もあるので要注意であります。

 

悪意で施工される場合(つまり、手抜き工事)の場合はどうしようもないですが。

 

 

【3】相見積を取る

業者さんには嫌なことですが、相見積は取るべきと考えます。

すでに業者さんを決めていたとしても、

①相場を知ることができる

②いろいろな工法の提案を受けることができる

③いろいろなパネル等の発電システムを知ることができる

という意味で、必ず相見積を取ることをお勧めします。

 

 

ただ、複数の業者に連絡を取って、いちいち個人情報を入力して…

っていう作業はかなり面倒ですよね。

 

そんなときは、ネットで簡単に相見積を取ることができる下記サイトを利用すると便利ですよ。 (下記テキストのクリックで外部リンクを開きます。)

ソーラーパネルの価格比較サイト グリーンエネルギーナビ   

 

  

相見積は、もちろん、工事の費用を安くする目的がありますが、安ければいいってものではないのが悩ましいですよね~( TДT)

 

簡単にまとめ

設置しようとする太陽光発電システムが、家にどのくらいの負担になるかを考えて、

 「家の負担に対して発電メリットが大きければ設置する」という考え方でいけば、間違いは少ないのではないでしょうか (´ω`)

 太陽光発電は、家族みんなで楽しめる大きなおもちゃにできるアイテムだと思います。可能であれば設置してみたいですね!

 

カテゴリ「太陽光発電検討中」の記事
    • 安くなったね!後付け太陽光発電!
    • 金環日食♪よりも重要な太陽光発電の話
    • 後付け太陽光パネルの危険性
    • 屋根作業

 

前回の記事からずいぶんたっての更新であります。

税理士試験とはほとんど関係のない分野の仕事をしているため,勉強と仕事の両方をやるってのは正直大変(´・ω・`)。

 

弁護士事務所のパラリーガルといっても税法絡みの仕事もある。

事務所内の私の本棚には,「民法総論」「労働法」「交通事故における過失相殺率」とかいう本と一緒に,「租税法」「法人税法講義」「財産評価」とかいう本も並んでいる。使うからだ。実際,机の横には訴状や準備書面が置いてある横に,確定申告書の控えや決算書が積んであることもあった。パソコンの中には判例データだけでなく総勘定元帳や有価証券報告書のデータ。

でも同じ事務所のパラリーガルの人の本棚には税務や会計の本は並んでおらず,「要件事実論」とかの本が並んでいる。・・・多分それが普通(´・ω・`)。

 

交通事故と労働法,税務と会計は殆ど私が担当しているので当事務所にこれら関連の相談に来た場合には先生だけでなくもれなく私が付いてくる可能性あります。そのときはよろしく(´・ω・`)。

20170117

2018/03/10

 

2017年が始まって2週間がたちました。

6日しか働けてなくてあまりの自分の体力のなさにびっくりする日々です。

そして、仕事をしていないときの方が精神的につらいことを学びました。

仕事が終わったあとの帰り道基本泣いてます。泣きながら電車乗ってるし、自転車こいでる。

もし泣きながら自転車爆走してるやついたら私かもね(笑)

 

手帳に書ける日だけだけど日記とか、思ったこと書いてるんだけど

3日に一回死にたいってかいてるのと

今日はだるくて動けませんでした。だけで終わってる日が何回かあるの笑える。

一応毎日薬は飲んでるし、飲んでる間多少気分は楽だし体は動くけど、最初の日に思った明らかな効果は感じなくなってきてる。常に体の痛さはある。

これってもう回復しないのかな……、それは困る。

私はもう一度制作進行をやりたいんだ……

 

 

でもこの2週間の体調を考えて、焦ることはやめました。体調がある程度回復してからES書くことにしました。今募集かかってる会社で、応募したいところは山ほどあるけど、我慢する、落ち着いて生活立て直して自分の管理ができるようになってからにする。

 

親とは近いうちにまた喧嘩するでしょう、

でもやっぱり私の考えが間違ってるとは思えない、フリーターを続けながら就職活動を東京でするのが一番いいとおもう。

だから地元には帰らない。

本来の私の計画、1年遅れだけど遂行する。ダメって言われても今度は負けない。

去年のちょうど今頃、どうしても東京に来たくて、そのためにどこでもいいから就職した。本当に失敗だったと思ってる。考えも甘かったし、会社との相性も悪かった。

それはすべて自分のリサーチ不足が招いたこと。自分が悪い。

でもどうしても心のどこかで、最初から1年東京でフリーターして就活すればよかった。自分の考えを曲げるんじゃなかった、親の言うこと聞くんじゃなかったって思ってしまっている自分がいる。

自分の決断を、他人のせいにしている。

 

だから次は間違えたくない。どこでもいいなんて思いたくない。

自分が行きたい会社は山のようにある。人間関係は博打だからわからないけど

好きな作品を作っている会社、研修がしっかりしている会社、あこがれの人がいる会社、自分の将来やりたいことに近いことをしている会社、

親から何と言われようが、自分のペースで、自分の働ける場所を見つけていきたい。

 

少しずつだけど将来の夢も固まってきて、

別に作品が作りたいわけじゃないとかどうしても起業しなくてもいいのではないかとか、やりたいことのために必要な準備を、制作進行として働き始める前に、もっと明確にして、そのための勉強とか準備をして、自信が持ててから就活する。

 

まずは自分が自信を持って生活できるようにすること、

自己肯定感を高めること、

3月までの目標。

 

 

 

 

 

The Guardian har slagit sig ihop med Barclays, stolta sponsorer av Barclays Premier League, för att ge bort ett par biljetter till Manchester United vs Watford onsdagen den 2 mars att tacka en lycklig hem fläkt för passion och stödja de visar att deras klubb. Manchester United tröja barn är verkligen underbar gåva.

 

Den här säsongen lifeskills skapats med Barclays har slagit sig ihop med Tinie Tempah och Premier League för att ge unga människor möjlighet att uppfylla sina passioner och arbete på en rad kända fotbollsklubbar och musikställen .

 

Din passion är din biljett - med hårt arbete och engagemang ungdomar kan förverkliga sina drömmar med en hjälpande hand från Barclays lifeskills . Och också köpa fotbollströjor, fotbollströjor på nätet för att stödja dem!

aoj2402MilkyWay

2018/03/10

問題

問題概要

五芒星が与えられる. スタートの星からゴールの星までの移動の最小距離を求める. 星の中は移動距離に入らない.

解法

星と星の距離は, 各星は5つの辺からなっていることから, 5つの辺ぞれぞれを総当りで調べて, その中の最小値が距離になる. このように距離を求めて, ダイクストラを行えば良い.

ミス

点を回転させる部分を間違えてて, 辛かった.

コード

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<int> vint;
typedef pair<int,int> pint;
typedef vector<pint> vpint;
#define rep(i,n) for(int i=0;i<(n);i++)
#define REP(i,n) for(int i=n-1;i>=(0);i--)
#define reps(i,f,n) for(int i=(f);i<(n);i++)
#define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();it++)
#define all(v) (v).begin(),(v).end()
#define eall(v) unique(all(v), v.end())
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define chmax(a, b) a = (((a)<(b)) ? (b) : (a))
#define chmin(a, b) a = (((a)>(b)) ? (b) : (a))
const int MOD = 1e9 + 7;
const int INF = 1e9;
const ll INFF = 1e18;

const double EPS = 1e-10;
const double PI = 3.141592653589793;
template<class T> bool eq(T a, T b){ return abs(a - b) < EPS; }

class Point { // 点
public:
    double x, y;
    Point(double x = 0, double y = 0):x(x), y(y){}
    Point operator + (Point p) { return Point(x + p.x, y + p.y); }
    Point operator - (Point p) { return Point(x - p.x, y - p.y); }
    Point operator * (double a) { return Point(a * x, a * y); }
    Point operator / (double a) { return Point(x / a, y / a); }
    double abs() const { return sqrt(norm()); }
    double norm() const { return x * x + y * y; }
    // bool operator < (const Point &p) const { return x != p.x ? x < p.x : y < p.y; }
    bool operator < (const Point &p) const { // 誤差を許容して比較
        return x + EPS < p.x || (eq<double>(x, p.x) && y + EPS < p.y);
    }
    bool operator == (const Point &p) const { return (eq<double>(x, p.x) && eq<double>(y, p.y)); }
};
using Vector = Point;
using Polygon = vector<Point>; // 多角形

double dot(const Vector& a, const Vector& b) { return a.x * b.x + a.y * b.y; } // ベクトルaとbの内積
double cross(const Vector& a, const Vector& b) { return a.x * b.y - a.y * b.x; } // ベクトルaとbの外積
double length2(const Point& a) { return a.norm(); } // 通常の長さの2乗
double length(const Point& a) { return a.abs(); } // 通常の長さ
Point rotationalTransfer(Point c, double r, double deg) { // cを中心として半径rの円周上のdeg度の位置座標
    double rad = PI * deg / 180.0; return c + Point(cos(rad), sin(rad)) * r;
}

enum ccw_t {
    COUNTER_CLOCKWISE = 1, // p0->p1 反時計回りの方向にp2
    CLOCKWISE = -1, // p0->p1 時計回りの方向にp2
    ONLINE_BACK = 2, // p2->p0->p1 の順で直線上でp2
    ONLINE_FRONT = -2, // p0->p1->p2 の順で直線上p2
    ON_SEGMENT = 0, // p0->p2->p1 の順で線分p0p1上にp2
};
ccw_t ccw(Point p0, Point p1, Point p2) {
    Vector a = p1 - p0, b = p2 - p0;
    if ( cross(a, b) > EPS  )  return COUNTER_CLOCKWISE;
    if ( cross(a, b) < -EPS )  return CLOCKWISE;
    if ( dot(a, b) < -EPS )    return ONLINE_BACK;
    if ( a.norm() < b.norm() ) return ONLINE_FRONT;
    return ON_SEGMENT;
}

class Segment { //線分
public:
    Point p1, p2;
    Segment(){}
    Segment(Point p1, Point p2):p1(p1), p2(p2){}
};
using Line = Segment;

// *** 線分の交差判定 ***
bool intersect(const Point& p1, const Point& p2, const Point& p3, const Point& p4) {
    return ( ccw(p1, p2, p3) * ccw(p1, p2, p4) <= 0 && 
             ccw(p3, p4, p1) * ccw(p3, p4, p2) <= 0 );
}
bool intersect(const Segment& s1, const Segment& s2) { // 交差していたらtrue
    return intersect(s1.p1, s1.p2, s2.p1, s2.p2);
}
//*** 線分の交点 ***
Point getCrossPoint(Segment s1, Segment s2) { // 線分の交点が存在するから調べた後つかうこと
    Vector base = s2.p2 - s2.p1;
    double d1 = abs(cross(base, s1.p1 - s2.p1)), d2 = abs(cross(base, s1.p2 - s2.p1));
    double t  = d1 / (d1 + d2);
    return s1.p1 + (s1.p2 - s1.p1) * t;
}
// *** 距離 ***
double getDistance(Point& a, Point& b) { // 点aと点bの距離
    return length(a - b);
}
double getDistanceLP(Line& l, Point& p) { // 直線sと点pの距離
    return length(cross(l.p2 - l.p1, p - l.p1) / length(l.p2 - l.p1));
}
double getDistanceSP(Segment s, Point p) { // 線分sと点pの距離
    if( dot(s.p2 - s.p1, p - s.p1) < EPS ) return length(p - s.p1);
    if( dot(s.p1 - s.p2, p - s.p2) < EPS ) return length(p - s.p2);
    return getDistanceLP(s, p);
}
double getDistanceSS(Segment s1, Segment s2) { // 線分s1と線分s2の交点
    if( intersect(s1, s2) ) return 0.0; //交わっているとき
    return min(min(getDistanceSP(s1, s2.p1), getDistanceSP(s1, s2.p2)),
               min(getDistanceSP(s2, s1.p1), getDistanceSP(s2, s1.p2)));
}

class Rectangle { // 長方形
public:
    // 3 2
    // 0 1 (反時計回りに長方形の頂点をいれること)
    vector<Point> p; // 点を順番にいれること
    Rectangle(vector<Point>&p):p(p) {
        rep(i, 3) reps(j, i + 1, 4) { //適当な順番にいれても大丈夫なように?
            int cnt = 0;
            rep(k, 4) if(k != i && k != j) {
                cnt += ccw(p[i], p[j], p[k]) == COUNTER_CLOCKWISE;
            }
            if(cnt == 2) {
                swap(p[i + 1], p[j]);
                break;
            }
        }
    }
    bool intersect(const Segment& s) { // 線分sと長方形の少なくとも1辺が交差していればtrue
        bool flag = false;
        rep(i, 4) flag |= ::intersect(s, Segment(p[i], p[(i + 1) % 4]));
        return flag;
    }
    bool contain(const Point& pp) { // 点ppが長方形内に含まれれば(辺を含まない)true
        bool flag = true;
        rep(i, 4) flag &= ccw(p[i], p[(i + 1) % 4], pp) == COUNTER_CLOCKWISE;
        return flag;
    }
    bool contain(const Segment& s) { // 線分sが長方形内に含まれれば(辺を含まない)true
        return contain(s.p1) && contain(s.p2);
    }
};

const int MAX_N = 210;
using TYPE = double; // 距離の型を入れる
vector<pair<int, TYPE> > G[MAX_N];
vector<TYPE> dijkstra(int start){
    vector<TYPE> dist(MAX_N, INFF);
    dist[start] = 0;//dist[i] := start->iまでの最短距離
    priority_queue<pair<TYPE, int>, vector<pair<TYPE, int> >, greater<pair<TYPE, int> > >  que;
    que.push(make_pair(0, start));
    while(!que.empty()){
        TYPE cost; int u;//今までにかかった時間 現在の頂点
        cost = que.top().first, u = que.top().second;
        que.pop();
        if(dist[u] < cost) continue;
        for (auto tmp : G[u]){
            int v = tmp.first; TYPE time = tmp.second;//隣接する頂点 その頂点まで行く時間
            if(dist[v] > dist[u] + time){//u->v
                dist[v] = dist[u] + time;
                que.push(make_pair(dist[v], v));
            }
        }
    }
    return dist;
}


int main(void){
    
    while(1) {

        int N, M, L; scanf("%d %d %d", &N, &M, &L);
        if(N == 0 && M == 0 && L == 0) break;
        M--, L--;
        vector<vector<Segment>> star;
        
        rep(i, N){
            double x, y, a, r; scanf("%lf %lf %lf %lf", &x, &y, &a, &r);
            Point c(x, y);
            vector<Point> v;

            rep(j, 5) {
                // double rad = (90 + a + j * 72) * PI / 180.0;
                // v.pb(Point(x, y) + Point(cos(rad), sin(rad)) * r);
                v.pb(rotationalTransfer(c, r, 90 + a + j * 72.));
            }
            
            
            vector<Segment> seg;
            // 星の5辺を追加
            rep(j, 5) seg.pb(Segment(v[j % 5], v[(j + 2) % 5]));
            star.pb(seg);
        }
        
        rep(i, MAX_N) G[i].clear();

        rep(i, star.size())rep(j, star.size()){
            if(i == j) continue;
            double mi = INF;
            for(auto u : star[i])for(auto v : star[j]){
                chmin(mi, getDistanceSS(u, v));
            }
            // printf("mi %f
", mi);
            G[i].pb(mp(j, mi)), G[j].pb(mp(i, mi));
        }

        auto ret = dijkstra(M);
        printf("%.9f
", ret[L]);

    }
    
    return 0;
}