Labyrinth of Wisdom

-This is My Archive-


【Windows】Shipping Toolで画像が保存できない

Windows標準の画像領域切り取りアプリ、Shipping Toolで画像を切り取った後に保存ができないトラブルが発生しました。

症状を具体的にいうと、「アプリの起動→画像の切り取り」まではできるんですが、保存しようとしても何も動かないという状態です。

結論から言うと、Shipping Toolの保存先が標準でピクチャフォルダになっているのですが、この保存先が見当たらない場合は保存できないみたいです。 自分の普段の環境はノートパソコンに外付けストレージを付けて、そこにドキュメントフォルダやピクチャフォルダを紐づけているんですが、操作した時は外付けストレージを外していたのでこの現象が起こったみたいです。

分かってしまえば単純なんですが、エラーメッセージなどが何も出ないので気付けませんでした。 同じ症状が起こった人は参考にしてみてください。

Visualforceでのコンテンツ表示・非表示の切替え

Visualforceで、ある条件の時に表示非表示にする機能、つまりVisualforce内でIf文みたいなものが出来ないか調べたのでメモ。

結論としてはoutputPanelタグのrendered属性を利用すればできました。renderedがtrueなら表示、falseなら非表示になります。(デフォルトはtrue)

RenderTestPage1で「開けゴマ!」と入力したら次のページに文字が出るという簡単なサンプルを作成してみました。

<!-- RenderTestPage1 -->
<apex:page Controller="RenderTestController">
    合言葉は「開けゴマ!」
    <apex:form>
        <apex:inputText value="{!input}"/>
        <apex:commandLink action="{!nextPage}">次のページへ</apex:commandLink>
    </apex:form>
</apex:page>

inputCheckというメソッドを使用してtrue OR falseを取得する場合と、renderedにif文の数式を書いてやればそこで表示判定をすることも可能です。

<!-- RenderTestPage2 -->
<apex:page Controller="RenderTestController">
    <div>
        <apex:outputPanel rendered="{!inputCheck}">
            正解!
        </apex:outputPanel>
    </div>
    <div>
        <apex:outputPanel rendered="{!IF(input='開けゴマ!',true,false)}">
            正解!
        </apex:outputPanel>
    </div>
</apex:page>
public class RenderTestController{

    // RenderTestPage1での入力値
    public String input {get;set;}

    // コンストラクタ
    public RenderTestController(){

    }

    // 合言葉判定メソッド
    public Boolean getInputCheck(){
        if(input.equals('開けゴマ!')){
            return true;
        }else{
            return false;
        }
    }

    // ページ遷移メソッド
    public PageReference nextPage(){
        return Page.RenderTestPage2.setRedirect(false);
    }
}

画面はこんな感じになります。

f:id:Labyrinth_of_Wisdom:20161102113004p:plain

因みにページ遷移のメソッドにsetRedirect(false)付けてるんですが、なくても出来ちゃうんですよね。 付けてないと変数の保持できなかったはずなのに。。

【資格】ウェブデザイン検定3級合格しました

国家資格のウェブデザイン検定3級合格しました。

ぶっちゃけ3級だとあんまり意味ないと思いますが、国家資格を取った!みたいな感じでテンション上げれるので取得するのもいいんじゃないかと思います。 ちょっと自信も付きますし。

ウェブデザイン検定の有用性については下記参照。

勉強方法

公式サイトにて練習問題過去問が公表されているので、それをひたすら解きました。

ただ問題があるのはいいんですが、問題の解説がついていないので、間違った時に根拠が分からずに理解が深まらなくて困っていました。

そんな時にネットで色々探していると、解説を載せてくれている親切なサイトを発見したのでそれを参考に理解を深めていきました。

これでも不安な人は、下記の本が試験対策テキストとして販売されているみたいなので買ってみてください。

受けた感想

実技試験は過去問でちゃんと練習しててHTMLとCSSの知識がある程度あれば、はっきり言って楽勝だと思います。

ただ意外に難しいのが学科試験。結構幅広い範囲で出題してくるし、過去問や練習問題で見たことがないような内容の問題もいくつか出てきたのでちょっと焦りました。

実際、実技だけ受かって学科に落ちる人も結構多いみたいです。(試験会場も学科の人の方が多かった)

それでも割と手軽に取れる国家資格であることには違いないので、是非チャレンジしてみてください。

【J-HIPHOP】FUNKYMIC and the Saturdays Rism - GOTTA NEED FUNK

GOTTA NEED FUNK

韻シストのMC/HumanBeatBoxerのFUNKYMIC韻シスト加入前に活動していたユニット(から後にバンド)FUNKYMIC and the Saturdays Rismが2006年にリリースしたアルバムがカッコいいです。

プロデューサーであるchop the onionの作るトラックはがっつりファンクを意識したサウンドになっており、その上にFUNKYMICのイナタくもスキルフルなラップが相性抜群に絡み合って、まさにヒップでファンキーなアルバムになってます。

韻シスト加入前から既にFUNKYMICのフロウはほぼ完成しており、ビートに対してのアプローチや声の出し方が独創的で面白いです。

FUNKYMICのルーツを知りたい人にもおすすめの一枚。


おまけで2016年にFUNKYMICのソロアルバムで再びchop the onionとタッグを組んだ一曲がこちら。

パッドを同時に鳴らさない設定について

MPC Softwareでハイハットのオープンとクローズを同時に鳴らしたくない時等に行うパッドの設定方法のメモです。

f:id:Labyrinth_of_Wisdom:20160920222617p:plain

画面の赤枠内、A03のパッドにクローズハイハット、画面の青枠内、A04のパッドにオープンハイハットをアサインしています。

この状態で画面緑枠内をクリック、もしくは使用している機材のPROGRAM EDITボタンを押してください。

そうすると下記のような画面になると思います。

f:id:Labyrinth_of_Wisdom:20160920223204p:plain

この画面の赤枠内、MUTE TARGETに同時に鳴らしたくないパッドを4つまで設定することができます。

今回はA03を鳴らすとA04が鳴らなくなるようにしたいので、A03のMUTE TARGETにA04を指定します。

ハイハット以外にも工夫すれば色々使い道があると思いますので試してみてください。

Akai Professional 音楽制作システム 7GB音源付き MPC Studio Black

Akai Professional 音楽制作システム 7GB音源付き MPC Studio Black

【J-HIPHOP】ハルビンズ弐拾五 - 波華横丁皿三昧

波華横丁皿三昧

大阪アンダーグラウンドの雄、SUPPON RECORDS所属のトラックメーカーユニット、ハルビンズ弐拾五が2007年にリリースしたファーストアルバム。

メンバーはEarMadder,GDEN,Hi-Low★Kickの三名。

この三名の作る、濃く癖のあるトラックにSUPPON RECORDS周辺のMCsが負けないくらい濃いスキルフルなラップを乗せています。 しかもこの作品どうやら一日で作成したっぽいことを曲中で言っており、正直とんでもねえなと。

僕の中でこの作品で一番耳に残るのがMCマリヲのラップ。 ねっとりとしたフロウと声で癖になります。

トラックもラップも癖が強くて実験的なものも多く、オリジナリティ溢れるオルタナティブなラップ作品としてオススメです。

尖ったHIPHOPを聴きたい人は是非。

SOQL文での集計関数

SOQLで集計関数を使用する際に調べたことをメモしていきます。

今回の記事の説明用に下記のサンプルデータを使って例を記載していきます。

売上日/SalesDate 名前/Name 年齢/Age 性別/Gender 売上/Sales
2016-08-01 Tom 26 男性 280,000
2016-08-04 Mary 28 女性 275,000
2016-08-07 John 31 男性 310,000
2016-08-10 Mary 28 女性 360,000
2016-08-13 Tom 26 男性 240,000

SOQLの集計関数

SOQLで集計関数を使うにはAggregateResult型を使用しなければいけません。 まずここがSQLと違うのでハマりやすいポイント。

// 全員の売上の合計を求めるSOQL
AggregateResult[] aResults = [SELECT SUM(Sales__c) summary
                                FROM Hoge__c];

System.debug('売上合計:' + aResults[0].get(summary) + '円');

// 売上合計:1465000円

サンプルでは合計を求めるSUM()を使用していますが、最大値を求めるMAX()等他にも関数があります。 詳細は公式リファレンスを参照。

GROUP BY句

GROUP BYを使うことによって、指定した値別に結果を求めることが出来ます。 今回の例ではGROUP BYで性別を指定しているので、男女別の売上の合計値を求めることが出来ます。

// 男女別に売上の合計を求めるSOQL
AggregateResult[] aResults = [SELECT Gender, SUM(Sales__c) summary
                                FROM Hoge__c
                                GROUP BY Gender];

for(AggregateResult ar : aResults){
    System.debug(ar.Gender + 'の売上合計:' + ar.get(summary) + '円');
}

// 男性の売上合計:830000円
// 女性の売上合計:635000円

HAVING句

Havingを使うことによって、GROUP BYで指定した値別の結果に絞り込み条件を指定することが出来ます。 Whereと似ていますが、Havingはグルーピングした後の値に条件を指定しているので、違いに注意が必要です。 今回の例ではGROUP BYで名前を指定しているので、名前別の売上の合計値を求めることが出来ます。

// 名前別に売上の合計を求めるSOQL(売上合計が500,000円以上のみ)
AggregateResult[] aResults = [SELECT Name, SUM(Sales__c) summary
                                FROM Hoge__c
                                GROUP BY Name
                                Having summary >= 500000];

for(AggregateResult ar : aResults){
    System.debug(ar.Name + 'の売上合計:' + ar.get(summary) + '円');
}

// Tomの売上合計:520000円
// Maryの売上合計:635000円
// Johnは売上合計が500,000円未満なので取得されない

参考