Mi2log*

アメブロギーク・ライフハックを中心に。


テーマ:
image
image

カメラ向けたら止まってくれた。慣れてるなぁ。

裏をちょこちょこ着いてきて油断させるやいなや、色んな所に手を突っ込んでは色んな物を盗み出し、色んな所に潜り込み…とんだ猿野郎君でした。

逃げる後ろ姿かわいい。

AD
いいね!した人  |  コメント(1)

テーマ:
プロフィール・ブログAPIのクエリについていくつか追記しました。

アメーバサービス内で利用されているAPIで、検索に用いられているAPIがいくつかあります。そのうち記事検索用とプロフィール取得が便利そうなのでピックアップしてみました。

2つの検索API

記事検索用と、プロフィール検索用のAPIです。それぞれクエリ列もいくつかありそうですが、ひとまず使える最低限で。

プロフィールAPI

http://api.search.ameba.jp/profile/json/search?content=miumiu3tek&nicknameSnippet=50&contentSnippet=50&jobSnippet=50&titleSnippet=50&blogDescriptionSnippet=50&order=desc&row=1&serviceId=44&requestAddr=10.50.102.9

プロフィールAPIサンプル

dataQuery = {
content:"miumiu3tek",
nicknameSnippet:50,
contentSnippe:50,
jobSnippet:50,
titleSnippet:50,
blogDescriptionSnippet:50,
row:5
}

contentは検索したい文字・IDなどを。それぞれ~Snippetは全体共通で表示(取得)する文字数を限定することが出来ます。プロフィールAPIに限っては指定しないと一部のコンテントが空文字で返ってきます。rowは一度に取得するコンテンツの数。

記事検索API

http://api.search.ameba.jp/blog/json/search?contentSnippet=50&amebaId=miumiu3tek&order=desc&query=テスト&row=5&serviceId=44&requestAddr=10.50.102.9

記事検索APIサンプル

dataQuery = {
amebaId:“miumiu3tek”,
query:"テスト",
contentSnippet:50,
row:5
}

基本はプロフィールと同じ。ただcontentがなく代わりにqueryを使用。amebaIdは指定することで検索するブログを限定できる。無指定の場合はアメブロ全体から。contentSnippetは基本一緒だけど、こちらの場合は指定すると検索にかかった文字をhlword1といったクラス付きspanでラップした文字列を返してくれる。便利!

返されるJSON

{
entryId: 12028231469,
amebaId: "miumiu3tek",
entryCreatedDatetime: 1431953879000,
blogTitle: "雨の日は和む。",
entryTitle: "テスト",
entryContent: "テスト",
imgUrlList: [
"http://stat.ameba.jp/user_images/20150502/02/miumiu3tek/a9/94/j/t02200165_0800060013293421562.jpg"
],
rank: 0,
videoList: null
}

アメーバの画像サーバーを使っていれば画像リストも表示されるので最新記事の画像表示などにも使えますね。

JSONしか取得できない…

これらのAPI、/json/なんてあるものだから期待しちゃいますが、軽く調べた現状ではJSON以外吐き出してくれなそうです。(callbackクエリがあるのかもしれないけど…)そうなるとクロスドメインによる要求が不可能なので、自作・YahooPipesなどでパイプしてあげないと利用ができません。

でも、例えばプロフィール画像の取得などでいえば、Ajaxでクロスドメイン間を取得することになるので手間(YahooPipes等によるJsonp化)としては同じですし、HTMLを取得したり等のアクセスでサーバーやブラウザに負担をかけるより高速にアクセスが出来るなど、多くの利点があります。

Googleみたいなリアルタイム検索を作ってみる

右上の検索フォームで利用しているスクリプトをjQuery用に書き直したもの。

<form id="blogSearchForm" action="javascript:void 0;">
<span id="blogSearchBtn" class="blogSearchBtn"></span>
<input id="blogSearchInput" class="blogSearchInput" type="text" size="20" maxlength="255" name="q" placeholder="検索ワード:2文字以上" >
</form>

JSONからJSONPにするパイプにはYAHOO Pipesを利用。

http://pipes.yahoo.com/pipes/pipesjson2jsonp?u={API-URL}
'use strict';

var url = 'http://api.search.ameba.jp/profile/json/search';

function blogSearch(q, row) {
if (q.length >= 2) {
$.ajax({
url : 'http://pipes.yahoo.com/pipes/pipesjson2jsonp?u=' + url,
dataType : 'jsonp',
jsonp: '_callback',
data : {
amebaId : 'miumiu3tek',
order : 'desc',
row : row,
serviceId : 44,
requestAddr='10.50.102.9',
query : q
}
}).done(function(res) {
let list;
if ( res && (list = res['searchResultList']) ) {
list.some(function() {
var resHTML, res = this,
title = res['entryTitle'],
content = res['entryContent'],
id = res['entryId'],
date = String(new Date(res['entryCreatedDatetime'])).split(' '),
uri = 'entry-' + id + '.html';

resHTML = content && content.replace(/\&amp;|\&lt;|\&gt;|\&quot;/g, function(chr) {
return {
'&amp;': '&',
'&lt;': '<',
'&gt;': '>',
'&quot;': '"'
}[chr];
});
//あとはDOMの作成…
});
};
});
};
};
$('#blogSearchInput')[0].addEventListener('keyup', function() {
blogSearch($('#blogSearchInput')[0].value, 10);
});

その他のAPI

芋づる的にいろんなAPIが見つかりますね。というよりAmebaのサービス全部にあるっぽい。基本は検索用のAPIなので、リアルタイムで取得するものを作る上では役に立ちそうです(ただ一般公開しているものではないと思うので判断はアメーバさん次第…)。クエリなどは返ってくるJSONで確認できます。文字列はローラーで調べるしかないですけど汗

なう検索

http://api.search.ameba.jp/now/json/search

アメーバニュース検索

http://api.search.ameba.jp/news/json/search

Simplog検索

http://api.search.ameba.jp/simplog/json/search

Tellme検索

http://api.search.ameba.jp/tellme/json/search

24log検索

http://api.search.ameba.jp/24log/json/search

ペコリ検索

http://api.search.ameba.jp/pecolly/json/search

まだまだあります。この中ではペコリあたりが大変便利そう。

ペコリ:にくじゃが

その他、なうやブログサービスを利用している人にはガジェットなどの作成に使えそうです。

AD
いいね!した人  |  コメント(2)

テーマ:

アメーバの新サービス。コンセプトは簡単に作れるウェブサイト。商業的なウェブサイトはもちろん、ポートフォリオやブログにも利用できるそうな。現状はまだデザインカスタマイズの出来ないTumblrに近い。内容といえば新規ページを自由に増やしたり、アーカイブページを自分で組み込めたりと自由度はなかなか高い感じ。画像をうまく使えばデザインも凝れそう。なのでユーザビリティはちょっとわかりにくい部分が多い気も。現状では一般個人ユーザーにはカスタマイズ含め若干難易度が高そう。

https://www.amebaownd.com

とはいえ個人的にはアメブロより断然好き。アメブロとの互換性はOwndから一方的っぽいのでこっちをメインとして利用する必要がありそうだけど・・・とりあえず寝て待つ。メインこっちにしたいな。

貫地谷しほりオフィシャルOwnd

https://kanjiyashihori.officialsite.co


シンプルなブログやサイトを作りたいのであれば利用価値があるかもしれません。


image

AD
いいね!した人  |  コメント(0)

テーマ:

いきなり自分で決めたルールをぶち壊し気味(^_^;)とはいえ書きたい記事が色々なかなか纏まらないのもあったり、アメブロで色々な処理の仕方をテスト的に利用してるのもあるので、合間にひとつ、繰り返し処理についての雑談記事。

繰り返し処理をするには?

通常、繰り返し処理を行いたい時は大方の場合for文を使います。ただ、幾つかの言語で高速化のメソッドとして、処理ごとに評価し任意数の処理を行うより、回数が決められる場合は直接インライン化してしまったほうが明らかに高速になります。

for( var i = 0; 10 < i; i++ ){
handler.call( arr[i] );
};

//繰り返しの数がわかっている場合は

handler.call( arr[0] );
handler.call( arr[1] );
handler.call( arr[2] );
handler.call( arr[3] );
...
handler.call( arr[9] );

//インライン化してしまった方が処理が速い

数回であればいいですが、極端に10000回と繰り返す場合はそうもいかないのが現実です。しかし、回数が増えるほどforを使っての繰り返し処理はそれ相当の負担となり、大きな低速化に繋がってしまう。その解決に使えるのがDuff's deviceという定義法です。

Duff's device

var i = 0,
len = obj.length,
n = len % 8,
itr = (len - n) / 8; //hilite
do { //hilite
switch( n ){//hilite
case 8 : handler.call(arr[i++],i);
case 7 : handler.call(arr[i++],i);
case 6 : handler.call(arr[i++],i);
case 5 : handler.call(arr[i++],i);
case 4 : handler.call(arr[i++],i);
case 3 : handler.call(arr[i++],i);
case 2 : handler.call(arr[i++],i);
case 1 : handler.call(arr[i++],i);
};
n = 8; //hilite
}while (itr--); //hilite
  • while文の削除
  • do-whileを追加、併せ変数の変更

何パターンもの書き方が更なる高速化を目指し書かれていますが、基本的な定義はswitch文を使い複数回の同時処理を行えるようしたものです。”初回ループは余り分を、残りは(個数/ループの処理回数)回分のループを行う”といったような流れを組んでいます。

length18の場合

  • 初回、n2なのでcase 2、つまり2つのhandler.call()が処理される

  • 残りはitr = (16/8) = 2nには8が代入されているので、8個のhandler.call()が2回ループする

  • 合計18回のhandler.call()が、スレッド的には3回のループでの処理が可能になる

この関数で便利なところは同時処理数を自由に拡張できるところで、16個でも100個でも記述することが出来ます。

利用するにあたって

ただこの処理は、一度の処理回数を増やせばどうとか、これを使えば爆速化!!みたいなものではないです。ひとつ言えば、大きなループになるほど実力を発揮するものでもあり、必要ループ数に合わせ的確に使えば、処理の高速化が望めるのが利点です。

いいね!した人  |  コメント(2)

テーマ:

なかなか頑張ってくれる現役マイダーリンのケーシチ君です。かれこれ3年くらいのお付き合いしてます。デジイチといえばCanonとNikonの2トップが突っ走る中、小ささと可愛さもあり、尖った技術のPENTAXに心捧げた一人です。(フィルムはKissユーザーだったのはナイショ)レンズも豊富なのでQも買ったりと立派なペンタックスユーザーになってきたわけですが。

このケーシチ君、未だにミラーにヘタレもなく絶好調なわけです。とはいえまだ3年かもしれませんが、K-3もしくはK-Sシリーズでもいい。そろそろ不倫したいんですワタシ。

image
かといって、大した写真を撮りたいわけでもないし(撮れない)、写真にメッセージを込めるくらいなら(撮れない)写真に書くので問題ない。しかし、Kには素敵なと素敵なオートWBが付いている。もちろん後継機にも付いてるはず。でもぶっちゃけK-7で十分。十分すぎる。

問題ないなら、新しいのを買う必要ないやないっ!

せやかて、そうこの彼はISO800超えた辺りからのノイズが半端ない。でもそれって元から露出で抑えればいいし、ISOぶち上げちゃうなら特製として黒を潰しちゃうのもアリ。というか実際あんまり気にならない。てかカメラってそんなもんだよね?てかむしろノイズ好き。ずぎなんだよぉー。
image

ワタシ、もっとあなたと頑張ってみるわ。やっぱり好きみたいあなたのこと。その分Limitedレンズ買ったほうがいい気がしてきた。

image
image

ということで、結局新しいデジイチの買うタイミングで翻弄されるワタシです。ほんとは下取りで新しいタイプに乗り換えるのがベストなのかもしれないけど、買ったものは家に置いておきたいワタシではその買い方は一生無理そうです。ああ、新しいデジイチ欲しい・・・。

image

image
そういえばこれ。有村架純マジックで欲しくなる女子力満点なSD。元より共有するのにもいいですが、付属の液晶いらずになるのは個人的に魅力です。撮影後にiPadminiのRetinaでプレビューがと~ても素敵。apiもあるようなのでもっと手軽にプレビューできるなんか作りたいな。

https://flashair-developers.com/ja/documents/api/commandcgi/
いいね!した人  |  コメント(2)

AD

Amebaおすすめキーワード

Ameba人気のブログ

Amebaトピックス

ランキング

  • 総合
  • 新登場
  • 急上昇