Lancersでのクロージングがされない場合



ランサーズ
でクライアントと連絡取れなかった場合は下のようになるらしい。
「連絡催促申請はプロジェクト開始後に7日以上、取引相手と連絡が取れなくなったような場合に申請することができます。
ユーザーからの申請を受け、ランサーズが取引相手に対して連絡期限を設定し、連絡催促を実施させていただきます。

万が一、連絡期限を経過しても連絡が取れない場合は、仕事完了報告中の支払い確定や、エスクロー中の計画のエスクロー解除、およびプロジェクトの解除とな り、連絡ができなかったユーザーに対しては自動的にマイナス評価となります。」

これだとクライアントが踏み倒してもそれほど不利にはならないですね。

そのまま踏み倒されると後々よくないので、押さえるとこ押さえられた状況なら多少の赤字なら踏み倒しを許さないという態度をはっきり示したほうが中長期的にはよいかもしれませんね。

用途変更

倉庫または工場をクライミング・ジムに変更しようとした場合は、店舗(スポーツ施設)扱いになるので、官公庁に用途変更の申請をしないといけないらしい。

んで、クライミングジム(店舗という区分)と倉庫/工場は分類が違うので燃えにくい壁(クライミング用のではなく一般的なもの)で仕切らないといけないらしい。まだ、調べ始めでよくわかってないけど端っこなら片面のみ仕切り作ればいいので安くなるってことでいいのかなぁ

クライミングジム予定地

伏見(丹波橋-桃山御陵間)に作る計画だったクライミングジムですが、予定地の間口が7cm足りないという問題を解決できなそうです。

南の向島か宇治方面に建物を探してそちらに1号店を出すのを先にしようと思います。建物探す時間はかかるけど、建築するよりは早いのでオープン時期は計画より前倒しで。

なお、伏見は予定地が空いたら開店予定としばらく先になりそうです。

さくらのVNCコンソール

FirefoxでVPSのisoインストールを行おうとしたところ途中で起動するはずのVNCコンソールが起動しなかった。試しに、リモートコンソールの右にあるVNCコンソールリンクをクリックしてみても”Server returned status code 0”と怒られた。

必要となるJREはインストールしているはずだと思いつつ「ツール->アドオン->プラグイン」とみていくと「Java TM Platform ~」が入っていない。

インストール&Firefox再起動で解決。

 

JavaFXが悪さして長い間プラグインなかったのかな??

BackWPup失敗

BackWPupのJobを走らせたら

 

“The HTTP response test get an error “Peer certificate cannot be authenticated with known CA certificates”

と怒られてバックアップがうまくいかなかった。

オレオレ証明書の期限が切れている状態なのでそのせいかな??

メッセージはオレオレだからと言っているけど仕様変わったらもっと騒いでいる人多そうだし。

->12/26追記

残念ながらメッセージ通り自己認証局はだめだった

 

 

JavaFXの非同期処理中に画面を閉じたら。。。。

バックグラウンドでタスクを動かしている状態でJavaFXの画面を閉じる。

閉じる

すると、裏で走っていたTaskが終わった後もなんか生き残っている。

残骸

 

環境は1.7.0_45に入っているjfxrt.jarでEclipse実行。

ソースは下の感じ。

    @FXML
    private void handleExecAction(ActionEvent event) {
        this.logger.info("start");
        try {
            analizeTask = getAnalizeTask();
            pgBar.progressProperty().unbind();
            pgBar.progressProperty().bind(analizeTask.progressProperty());
            pgLabel.textProperty().bind(analizeTask.messageProperty());
            final ExecutorService exe = Executors.newSingleThreadExecutor();
            exe.submit(analizeTask);

    private Task<String> getAnalizeTask() {
        return new Task<String>() {
            @Override
            protected String call() throws Exception {
                logger.info("start");
                try {

 

とりあえずは、

  1. Applicationクラスにコントローラー持たしておいて
  2. stopメソッドからコントローラーの終了メソッドを呼んで
  3. その中からTaskのcancel呼んで
  4. Taskのキャンセルイベントのハンドラー内で強制終了かけてやる

で回避。

Task内の終了処理をきちんとやろうとするといろいろはまりそうですが。

 

1

    private FXMLController controller;

    @Override
    public void start(Stage stage) throws Exception {

        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/fxml/Scene.fxml"));
        Parent root = (Parent) fxmlLoader.load();
        controller = (FXMLController) fxmlLoader.getController();

2

    @Override
    public void stop() throws Exception {
        controller.destroy();
    }

3

public class FXMLController implements Initializable {    
    public void destroy() {
        if (analizeTask != null)
            analizeTask.cancel();
    }

4

            analizeTask.addEventHandler(WorkerStateEvent.WORKER_STATE_CANCELLED,
                    new EventHandler<WorkerStateEvent>() {
                        @Override
                        public void handle(WorkerStateEvent t) {
                            exe.shutdown();
                        }
                    });

JavaFXでFXMLを使った際のApplicationからcontrollerへのアクセス

FXMLクラスで”fx:controller”(シーンビルダーだとデフォルトで入っているはず)を指定しておいてアプリケーションクラスでFXMLLoader#getControllerを呼べばコントローラを取得できるのであとはごにょごにょすればOK。

注意点は、FXMLLoader#loadを呼んだ後でないとFXMLLoader#getControllerが取得できない(nullになる)こと。

 

(FXML)

<AnchorPane id="AnchorPane" prefHeight="427.0" prefWidth="423.5" 
xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" 
fx:controller="jp.co.epea.FXMLController">
    <children>
        <VBox fx:id="vBox"

 

(Applicationクラス)

public class MainApp extends Application {

  private FXMLController controller;

    @Override
    public void start(Stage stage) throws Exception {

        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/fxml/Scene.fxml"));
        Parent root = (Parent)fxmlLoader.load();
        controller = (FXMLController) fxmlLoader.getController();

 

 

Excel形式の列名に変換

列のインデックスをExcelの列名(AからZでAAに続くやつ)に変換する処理。時々使うのでメモかねて。

colIndexの0がA。

    private static final Character[] COL_STRING = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
            'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };

    public static String toExcelCol(int colIndex) {

        StringBuilder sb = new StringBuilder();
        while (true) {
            int div = colIndex / 26;
            int mod = colIndex % 26;
            sb.insert(0, COL_STRING[mod]);
            if (div == 0)
                break;
            colIndex = div - 1;
        }

        return sb.toString();
    }

colIndexマイナスのチェックなかったりとかとかは適宜修正で。

クライミングジム新しい予定地も。。。

伏見桃山と丹波橋の間に作る予定のボルダリングジムですが、京都市の条例にかかり現状の敷地だと間口が7cm不足するという事態になりました。

敷地の交渉始める段階ですがうまくいかなかったら、まずはもう少し南の向島あたりか宇治あたりに1号店を建てるようになるかもしれません。

ざっくりした図面なのでそっちが間違えているかもしれませんが。。