Qstairs

現役AIベンチャーCTOの知見、画像認識(人工知能、Deep Learning)を中心とした技術ノウハウをアップしていきます

広告

【奮闘記】ピッチイベントに登壇!

f:id:qstairs:20170209000813j:plain

10/24にピッチイベントで登壇しました!

登壇者は私含めて4名で、
投資家やメディア関連、起業家等含めて30~40名が聞きに来られていました。

会場はとてもきれいで、前方にスクリーンが3面並ぶという...

これまでの人生で一番緊張した気がします。
緊張しいなので人前で話すのはいつも緊張するのですが笑

私は2番目の登壇でした。

1人目の登壇者の事業説明が終わり、次は私の番。
壇上に行く間、目の前はぼやけていた気がします。

ガクブル状態で吐きそうになりながらも私の事業について何とか説明した後、
コメンテーターの方々や聞いておられた方々にたくさんのコメントや質問をいただきました。

質問の中には突かれると痛い内容もありましたが、
私の考えを素直に話せたと思います。

登壇者4人の事業紹介が終わった後、
色んな方と名刺交換させていただきました。

こんな私のまだマネタイズもできていない事業に対して興味を持っていただけるのはとてもうれしかったです。

今回ピッチイベントにご招待していただいた運営の方、
運営の方をご紹介していただいた方、
私の事業に興味を持っていただいた方々
皆さんに感謝するとともに、
期待を裏切らないよう頑張ります!!

以上

【奮闘記】準フリーランスからフリーランスへ

f:id:qstairs:20170209000813j:plain

久々の投稿です。

10/20をもって常駐による仕事を終了し、
本日から個人受託で家で仕事をします!

これでフリーランス(勝手に作った言葉です)から
働く時間や場所を縛られない真のフリーランスになります。

あくまでもこの選択は
自分が進めたいサービスに対する時間を確保することが目的です。

サービス

では、開発するサービスとは何か。

それは、
頑張るITエンジニアが報われるような世の中を目指したサービス
です。

ITエンジニアは営業のように数値で簡単に評価することはできない職種です。
それにより、人よりも効率的に働いても評価されにくく、
仕方なく働いた時間でしか測れないという残念な状況になっています。

こういった状況を打破すべく、
ITエンジニアの能力や業績を見える化するためのアルゴリズムを作成し、
定量的な数値によってITエンジニアが評価される仕組みを開発していきます。

まずは、ITエンジニアの能力を見える化するサービスを開発しています。

近いうちにサービスについてもこのブログで紹介させていただきます。

以上

【Django】サーバへのデプロイ時に気を付けること(Invalid HTTP_HOST header等)

f:id:qstairs:20160601221351j:plain

はじめに

ローカル環境でWEBアプリを作成し、
さあ、サーバにデプロイだ!
というときに気を付けることを書きます。
#実際に私が引っ掛かってます...


1. サーバ起動のコマンドはいつもと違う
2. 設定ファイルに一手間

1. サーバ起動のコマンドはいつもと違う

ローカルで動かす場合、以下を実行しておけば問題ありませんでした。

python manage.py runserver

ただ、実際に外部サーバで動かす場合は、
以下のように「0.0.0.0:8000」を加える必要があります。

python manage.py runserver 0.0.0.0:8000

2. 設定ファイルに一手間

サーバも起動したことだし、
WEBアプリを確認してみよう
とアクセスすると...

f:id:qstairs:20170830234748p:plain

なんじゃこりゃですね。(^^;

そんな時は、

プロジェクト名/settings.py

の中にある、

ALLOWED_HOSTS = []

を以下のように変更して更新するとちゃんとアクセスできるようになります。

ALLOWED_HOSTS = ['サーバのアドレス', 'localhost', '127.0.0.1']

最後に

今回はデプロイ時の注意点を紹介しました。
今まさに私が作ったWEBアプリをデプロイ中なのでいろいろ躓いている最中です。
さらに気を付けることが判明した時は更新していきます。

以上。

SNSのシェア、いいね、ツイート等のボタン作成方法

f:id:qstairs:20160924110701j:plain

SNSのシェア、いいね、ツイート等のボタン作成方法を備忘録

本家サイトで簡単に作成可能

Twitterボタン | About

ソーシャルプラグイン - ドキュメンテーション - 開発者向けFacebook

以上。

【Django】HTMLのfor文でカウントアップ

f:id:qstairs:20160601221351j:plain

Djangoで開発していますが、
forの中でカウントアップする方法を試行錯誤していました。

30分ぐらい調べたり実装したりしましたが
ようやく実現方法を見つけたので備忘録

{% for item in items %}
  {{ forloop.counter }}    #先頭(1)から1ずつカウントアップしてくれる
  {{ forloop.revcounter }} #末尾から1ずつカウントダウンしてくれる
{%endfor%}

知っていれば一発ですね...

以上

【関連記事】
qstairs.hatenablog.com
qstairs.hatenablog.com
qstairs.hatenablog.com

【Django】Modelから条件に合ったオブジェクトを取得する場合の注意点(filter,get)

f:id:qstairs:20160601221351j:plain

DjangoのModel (django.db.models.Model) で定義したクラスにおいて、
条件に合ったオブジェクトを取得する際、

リスト(複数個)を取得する場合は「filter

一つだけ取得する場合は「get

を使用する。


「get」で条件に合ったオブジェクトが複数個存在する場合、

MultipleObjectsReturned

という例外が発生する

以上

【Django】ログイン処理

f:id:qstairs:20160601221351j:plain

Djangoで簡単なログイン処理について備忘録


とりあえずソースコードは以下

# views.py

def login(request):
  try:
    m = Member.objects.get(username=request.POST['username'])
  except Member.DoesNotExist:
    return render(request, 'login.html', {'response':-2})

  if m.password == request.POST['password']:
    request.session['member_id'] = m.id
    return render(request, '次の画面へ')
  else:
    return render(request, 'login.html', {'response':-1})


処理の流れは以下

ログイン画面で入力したusernameが
Memberテーブルに存在すればMemberオブジェクトを取得
Memberテーブルになければ
except Member.DoesNotExist:
で例外をキャッチし、ログイン画面にエラーコードを返す

Memberオブジェクトを取得後、
ログイン画面で入力したpasswordがMemberのパスワードと一致すれば
セッションにIDを登録して次の画面へ
一致しなければ
ログイン画面にエラーコードを返す


Django記事】
qstairs.hatenablog.com
qstairs.hatenablog.com
qstairs.hatenablog.com

広告