今更だが、MacBook Pro late2006 にWindows10 64bitをインストール★

今更だが、MacBook Pro late2006 にWindows10 64bitをインストールしてみました。

macOSから、FATパーテション作って、Windows10入れようとするが

なんと、Windows10のインストールDVDから起動しない(T_T)

しょうがないので、Windows7 64bitをインストール!!

さらに、Windows10にアップグレード!!

 

Windows10のインストールが終わり、ドライバーを入れようとしていると

なんか、動作がおかしい&すごく遅い!!

どうも、ハードディスククラッシュ(T_T)

ハードディスク入替えて、macOSからインストールし直し(T_T)

 

やっと、Windows10にてドライバーインストール!!

ここから、技あり??

ビデオはATI X1600 > iMac Late2006とかと一緒でSnowleopardの中のBootCampドライバーで対応可能!!

私は、インストーラー使わずに、ATISetup.exeを解凍し、

ATISetup\Packages\Drivers\Display\LH6A_INF\CH_75041.inf

を右クリックインストール

お、ちゃんと1440x900になりました。

その他ドライバーは64bitなので、bootcamp5.1.5722からインストールなのですが

当然普通にはインストール出来ません。

コマンドプロンプトを管理者にて起動してBootCamp.msiを手動起動!!

BootCamp\Drivers\Apple\BootCamp.msi

まだ、audioとiSightのドライバーが入らない(T_T)

audioは調べてみるとIDT

なのでiMac Late2006用のBootCamp4.0.4033から流用ですが、やっぱり64bitなので

手動インストール(T_T)

SigmaTelSetup.exeをダブルクリック!

BootCamp\Drivers\IDT SigmaTel\SigmaTelSetup.exe

音、鳴った!!

さらに、AppleiSightInstaller64.exeをダブルクリック!

 BootCamp\Drivers\Apple\x64\AppleiSightInstaller64.exe

 

これにて、ドライバーインストール完了!!

まだまだ、現役で使えるか?

javascript 非同期Ajaxでjson読込!(新元号表示対応)

w2ui gridでのjson読込、書込のつづきぽい(´・ω・`)
javascripでjson読むのAjaxでgetしなきゃなのですが
今どきのAjaxは非同期推奨!!
jQueryのDeferred使って
json読み込んだら処理!を書いてみますた。
(便利!!)
 
拙いコードですがm(_ _)m

var garr;  //json読込用配列<グローバル変数
var deferred = new $.Deferred();  //Deferredオブジェクト作成<グローバル

$(function () {
  getJson();  //Ajax json読込
});

//Deferredオブジェクトに通知がきたら処理
deferred.done(function(){
  console.log(garr);  //読み込んだ配列
});

//Ajax json読込
function getJson(){
  $.ajax({
    type: "GET",
    url: "data/data.json",  //jsonファイル指定
    dataType : "json",
    scriptCharset: 'utf-8'
  }).done(function(data){
    garr = data;  //配列にjsonを入れる。
  }).fail(function(XMLHttpRequest, textStatus, errorThrown){
    alert(errorThrown);
  }).always(function(){
    deferred.resolve(); //ajax処理を終了したことをDeferredオブジェクトに通知
  });
    return deferred;
}

おまけの、和暦出力ファンクション
読み込むjson

{"total":5,"records":[{"recid":"1","gengou":"明治","sdate":"1868\/01\/25"},{"recid":"2","gengou":"大正","sdate":"1912\/07\/30"},{"recid":"3","gengou":"昭和","sdate":"1926\/12\/25"},{"recid":"4","gengou":"平成","sdate":"1989\/01\/08"},{"recid":"5","gengou":"新元号","sdate":"2019\/05\/01"}]}

和暦出力ファンクション

function getGengou() {
  var weeks = new Array('日', '月', '火', '水', '木', '金', '土');

  var now = new Date();  //今日
  var year = now.getFullYear();
  var mon = now.getMonth()+1; //month +1
  var day = now.getDate();
  var week   = weeks[ now.getDay() ];
  var hour = now.getHours();
  var min = now.getMinutes();
  var sec = now.getSeconds();
  if(mon < 10) mon = "0" + mon;
  if(day < 10) day = "0" + day;
  if(hour < 10) hour = "0" + hour;
  if(min < 10) min = "0" + min;
  if(sec < 10) sec = "0" + sec;

  var tmpDate;
  var gstr = '';
  var i = 0;
  var ysub = 0;
  var s = year + "年";
  while(i < garr.records.length){
    tmpDate = new Date(garr.records[i].sdate);  //元号開始日
    if(now.getTime() < tmpDate.getTime()){
      switch(i){
        case 0:
          gstr = garr.records[i].gengou + '以前'+ year + '年' + mon + "月" + day + "日";
          break;
        default:
          if(gstr === ''){
            ysub = year - (Number(garr.records[i-1].sdate.slice(0,4))-1);  //元号差分
            gstr = garr.records[i-1].gengou + ysub + '年' + mon + "月" + day + "日";
          }
          break;
      }
    }else{
      ysub = year - (Number(garr.records[i].sdate.slice(0,4))-1);  //元号差分
      if(now.getTime() >= tmpDate.getTime()) gstr = garr.records[i].gengou + ysub + '年' + mon + "月" + day + "日";
    }
    i=(i+1)|0;
  }
  return gstr;
}

w2ui gridでjson書込のサンプルコードが無いぃぃ

もうすぐ、新元号ななるから新元号対応しよう!
わざわざDBに入れるのもなんだかなぁ~!!
w2ui使ってるからjsonファイルだぁー!!
が、w2ui gridでjson書込のサンプルコードが無いぃぃ
ので書いてみた(´・ω・`)
w2uiってあんまり使われて無いのかなぁ~

DB無しで、元号名称と開始年月日の編集できます。
JSでjson読んで配列にでも突っ込んで利用してくだされ!!

拙いコードですが参考になれば。。。

{"total":5,"records":[{"recid":"1","gengou":"明治","sdate":"1868\/01\/25"},{"recid":"2","gengou":"大正","sdate":"1912\/07\/30"},{"recid":"3","gengou":"昭和","sdate":"1926\/12\/25"},{"recid":"4","gengou":"平成","sdate":"1989\/01\/08"},{"recid":"5","gengou":"新元号","sdate":"2019\/05\/01"}]}
<!DOCTYPE html>
<html>
<head>
  <title>元号名称</title>
  <script src="libs/jquery/jquery-3.3.1.min.js"></script>
  <script type="text/javascript" src="dist/w2ui.min.js"></script>
  <link rel="stylesheet" type="text/css" href="dist/w2ui.min.css" />
</head>
<body>

<div id="grid" style="width: 240px; height: 350px; overflow: hidden;"></div>

<script type="text/javascript">
$(function () {
  w2utils.locale('dist/locale/ja-jp.json');
  w2utils.settings.dateStartYear = 1868;  // start year for date-picker
  w2utils.settings.dateEndYear = Number(w2utils.formatDate((new Date()), 'yyyy'))+2;  // end year for date-picker

  $('#grid').w2grid({ 
    name: 'grid', 
    method: 'GET', // need this to avoid 412 error on Safari
    url  : {
      get : 'data/data.json',  //json読込
      remove : 'json.php',
      save : 'json.php'
    },
    show: { 
      toolbar : true,
      footer : true,
      toolbarColumns : false,
      toolbarSearch : false,
      toolbarInput : false,
      toolbarAdd : true,
      toolbarDelete : true,
      toolbarSave : true,
      searchAll : false
    },
    columns: [        
      { field: 'gengou', caption: '元号名称', size: '120px', sortable: true, editable: { type: 'text' } },
      { field: 'sdate', caption: '開始年月日', size: '120px', sortable: true, editable: { type: 'date' } }
    ],
    onAdd: function (event) {
      var len = w2ui['grid'].records.length;
      var g = 0;
      if(len != 0) g = Math.max.apply( null,w2ui['grid'].records.map(function(o){return o.recid;}) );  //max recid
      w2ui['grid'].add( { recid: g + 1, gengou: '元号名称', sdate: '' } );
    }
  });
});
</script>

</body>
</html>

サーバーのPHP

<?php
$_REQUEST = json_decode($_REQUEST['request'],true);

//jsonを配列に読込
$jsonUrl = "data/data.json"; //JSONファイルの場所とファイル名を記述
if(file_exists($jsonUrl)){
  $json = file_get_contents($jsonUrl);
  $obj = json_decode($json,true);
}else{
  $obj = array( "total"=>0, "records"=>array([]) );  //新規json用配列
}

switch ($_REQUEST['cmd']) {
  case 'save':
    if ( !isset($_REQUEST['changes'][0]) ){
      //form save処理
    }else{
      //grid save処理
      for ( $i=0; $i <= count($_REQUEST['changes'])-1; $i++ ){
          foreach ($_REQUEST['changes'][$i] as $k => $v) {
            if ($k == "recid") {$recid = $v; continue;}
            $array_recid = array_column($obj["records"], "recid");  //recid列
            $result = array_search($recid, $array_recid);  //recid検索
            $obj["records"][$result][$k] = $v;  //配列書込
          }
      }
      $obj["records"] = array_values($obj["records"]);  //indexを詰める
      $obj["total"]=count($obj["records"]);  //total書込
      $arr = json_encode($obj, JSON_UNESCAPED_UNICODE);  //json作成
      file_put_contents($jsonUrl , $arr);  //data file 書込

      $res = Array();
      $res['status']  = 'success';
      $res['message'] = 'save';
      $res['postData']= $_REQUEST;
      outputJSON($res);
    }
    break;
  case 'delete':
      for ( $i=0; $i <= count($_REQUEST['selected'])-1; $i++ ){
        $array_recid = array_column($obj["records"], "recid");  //recid列
        $result = array_search($_REQUEST['selected'][$i], $array_recid);  //recid検索
        unset($obj["records"][$result]);  //指定行削除
      }
      $obj["records"] = array_values($obj["records"]);  //indexを詰める
      $obj["total"]=count($obj["records"]);  //total書込
      $arr = json_encode($obj, JSON_UNESCAPED_UNICODE);  //json作成
      file_put_contents($jsonUrl , $arr);  //data file 書込

      $res = Array();
      $res['status']  = 'success';
      $res['message'] = 'delete';
      $res['postData']= $_REQUEST;
      outputJSON($res);
    break;
  default:
    $res = Array();
    $res['status']  = 'error';
    $res['message'] = 'Command "'.$_REQUEST['cmd'].'" is not recognized.';
    $res['postData']= $_REQUEST;
    outputJSON($res);
    break;
}
//w2ui res
function outputJSON($data) {
  header("Content-Type: application/json;charset=utf-8");
  echo json_encode($data);
}