iphone6s plusのカメラでとった動画がMacでQuick Timer Playerだと再生できるのにiMovieで使えない。

Quick Time Playerで開いてmp4に書き出せば、iMovieで使えます。

Catalinaになってからmovファイルのフォーマットが変わったそうです。

参考:MacOSをCatalinaにしたら動画に互換性が無くなったので対処してみた|edueblog.

xbox360 プレイできないディスクゲームをドライブのレーザー出力を変えてプレイできるようにする

xbox360はHDMI端子のない初期型。

レーザー出力のダイヤルを11時方向にした場合、

  • xbox360 リッジレーサー6 2013/9/3発売・・・×あそべない
  • xbox360 Test Drive Unlimited 2007/4/26発売・・・●あそべる
  • xbox360 DEAD OR ALIVE Xtreme 2 2006/11/22(廉価版2007/11/1)発売・・・▲かなり冷やせば動く(※)
  • xbox DEAD OR ALIVE ultimate 1&2 2005/7/28発売・・・●あそべる

参考 ライトオン強襲 -Xbox360 DVDドライブ レーザー調整修理- – オタクだけに、個人的には笑顔で管

※かなり冷やせば動く・・・

  • 本体の後ろにある通気口をふさがない。
  • 机の下とか、空気がこもる場所から出す。
  • あみ棚か何かで本体を持ち上げて、本体の周りの空気の通りを良くする。
  • USB扇風機か何かで本体の天板の真ん中あたりに風を当てて冷やし続ける。

みんなの自動翻訳APIをJavaで使う

Main.java

package minhon_client;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.StringReader;
import java.util.GregorianCalendar;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.xml.sax.InputSource;

import minhon.TranslateFile;

public class Main {
    private static final String USERNAME = "";
    private static final String KEY = "";
    private static final String SECRET = "";

    private static int getTranslateState(TranslateFile tf, String pid) {
    		String translate_result;
	    	translate_result = tf.getStatus(pid);
//	    	System.out.println(translate_result);
	
	    	try {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
	    	    	InputSource is = new InputSource(new StringReader(translate_result));
	    	    	Document document = builder.parse(is);
	    	    String state_str = "";
	    	    state_str = document.getElementsByTagName("state").item(0).getTextContent();
	    	    int state = Integer.parseInt(state_str);
	    	    return state;
	    	} catch (Exception e) {
	    		return -2;
	    	}
    }
    
	public static void main(String[] args) throws Exception {
		String file_path = args[0];
		String translate_result = "";
		Boolean result = false;


		/* 文字列の翻訳 */
//		TranslateLine tl = new TranslateLine(USERNAME, KEY, SECRET);
//		tl.translate("こんにちわ");

		/* APIライブラリの初期化 */
//		minhon.Client c = new minhon.Client(USERNAME, KEY, SECRET);

		/* ファイルの翻訳 */
//		result = c.registTranslateFile(file_path);
//		System.out.println(result);

//		result = c.listTranslateFile();
//		System.out.println(result);
		
//		translate_result = c.getTranslateFile("66834");
//		System.out.println(translate_result);

		// 翻訳ファイルの登録
		TranslateFile tf = new TranslateFile(USERNAME, KEY, SECRET);
		translate_result = tf.regist(file_path);
		System.out.println(translate_result);
		
		 // DocumentBuilderFactory インスタンスを取得
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        
        // StringReaderを使ってXML文字列を読み込む
        InputSource is = new InputSource(new StringReader(translate_result));
        
        // InputSourceからDocumentオブジェクトを生成
        Document document = builder.parse(is);
        String pid = document.getElementsByTagName("pid").item(0).getTextContent();
        	System.out.println("pid:" + pid);
        
        	
        	// 翻訳ファイルのステータスを取得
        	System.out.println("get state of pid:" + pid);
        	int state = 1;
        	int wait_time_ms = 5000;
        	int count_time = 0;
        	while(state!=2) {
        		if (120000 < count_time) {
        			System.out.println("timeout pid:" + pid);
        			break;
        		}
            	Thread.sleep(wait_time_ms);
            state = getTranslateState(tf, pid);
            GregorianCalendar cal = new GregorianCalendar();
        		System.out.println("state pid:" + pid
        				+ " " + "state:" + state
        				+ " " + cal.get(cal.HOUR_OF_DAY) + ":" + cal.get(cal.MINUTE) + ":" + cal.get(cal.SECOND));
            count_time += wait_time_ms;
        	}
        	
        	System.out.println("complete pid:" + pid);

        	// 翻訳ファイルのダウンロード
        	System.out.println("get the file of pid:" + pid);
        	translate_result = tf.download(pid);
        	System.out.println("\"\"\"\n" + translate_result + "\"\"\"");
        	File file = new File(file_path);
        	String new_path = file.getParent() + "/" + file.getName()+"_translated.txt";
        	BufferedWriter fout = new BufferedWriter(new FileWriter(new_path, true));
        	fout.write(translate_result);
        	fout.close();

        	System.out.println("download the file of pid:" + pid + " " + new_path);
	}
	
}
“みんなの自動翻訳APIをJavaで使う” の続きを読む

windows10からmacOSにつながらなくなったときはApple Bonjour

コマンドプロンプトからのsshやフォルダ共有でmacOSにつなげていたのにつながらなくなったら、Apple Bonjourをインストールするとつながります。

WindowsのmDNSはモダンアプリしかサポートしないそうです。

windows-10 ? Windows 10ビルド17134でmDNSを有効にする方法 (web-dev-qa-db-ja.com)

他の方法としてはつながるlinuxにログインしてmacOSにsshすると、windowsからもつながります。

A-Frameの単位

What type of units does A-Frame use?

A-Frame uses meters with a 1:1 ratio since the WebVR API also uses meters. 5 units in A-Frame is equal to 5 meters in real life. Furthermore, when using programs like Blender, configured in imperial or metric mode, measurements will also translate 1:1. 10 feet in Blender will equal 10 feet in real life.

https://aframe.io/docs/1.4.0/introduction/faq.html#what-type-of-units-does-a-frame-use

“A-Frameの単位” の続きを読む

A-Frameの文字を表示する「aframe-html-shader」について

#targetHTMLが表示されたままになる場合、たぶんskyエンティティが作られていません。これはたぶん、A-Frameの描画の都合です。
下記のようにa-skyエンティティを加えてください。

<a-sky color="white"></a-sky>

リンク:https://github.com/mayognaise/aframe-html-shader