1ヶ月近く無更新というひどい状況.
ちなみに,もう一つのほうのブログも実は更新を一切していない.
なんというか.ひどい.
まぁ,ブログは強制されて書くものではないし,こんな感じでもいいんですよ.多分.
今日はタイトルを見てお分かりの通り,酔っ払いの戯言.素面だけどね!
戯言に付き合える人のみ見ていって下さい.お互いのために.
いつも懇意にさせていただいている新大阪コワーキング様でのイベントのレポ.
今回はAndroidアプリ開発に手を出した者としての参加です.(開発者と言えるほど技術無い)
主に話はどんなよいアプリがあるのかという観点でした.ちなみにAndroidの2名以外,全員iPhone.
iPhoneを使ったこともない私はその時点で脱落.ひぎぃ.
途中からは自然にグループ単位で別れて会話.
私は他の参加者の方と勉強会談義をしてました.話していたのはPhone gapの話とかもあったからいいんです.
いいんです!
途中からは初心者の方へのアドバイスをロクにせずに終了となりました.
反省.
今回の勉強会で感じたものとしては
ユーザーと作り手の意識のギャップがやはりあるなというところでした.
個人的には作り手側は結構,既にあるなら作らなくてもいいじゃない的なスタンスがあったりするのかなと思っています.
例えばAndroidとかでカレンダーアプリで鉄板のものがあってそれがそこそこ使えれば,拡張機能を作ることはあるとしても
それと同等の物を今から1から作り始めるかと言われたら微妙なところです.
(そのアプリが無料アプリだったら更に微妙に.勉強のために作るとかはよく聞きますが,
ある程度できるようになったらアイデアを先に形にしたもの勝ちと考えてしまう技術力のない私.)
あとやっぱりデジタルデータに金を払うというのは結構ユーザーの意欲を削ぐことが多いということですね.
だからこそ基本無料,アイテム課金のゲームが多くダウンロードされて使われるわけですが.
反省点としては
今回のイベントの目的としてユーザーが欲しいアプリのネタをとってこようという
意識のもとに参加しましたが,どうにもiPhoneネタとなるとMacを持ってない身としては意識が
別の事柄に向いてしまいました.(Mac買えって?じゃあ下さい.)
今度またこのようなイベントを行うときには自分自身で目標を立ててそのタスクはクリアできるようにしたいものです.
Rのイベントを立ち上げたのにブログを書かないのはちょっともったいないと
思い,久々の更新.
R言語は統計処理の言語としてかなり注目されています.
まずインストールをしてみる.
から自分のOSにあったものをダウンロードする.
とりあえず動かすならLinux,Msc,Windowsでいけるが,
最新のパッケージを使うためにはOSへの対応がしっかりしているもののほうが良い.
パッケージがあるのでsudo apt-get install r-base を端末で入力すれば良い.
exeファイルを実行して次を連打してたら終わり
Macの環境構築は次のページとかが参考になるかと
イベント実施時にわかったことして,
Fedoraで取れる最新版は少し古いものだったりするので,
パッケージのインストールがスムーズに行かなくなる.
(対応した古いパッケージを持ってくる必要がある)
とりあえず動かしてみる.
t<-c(1,2,3,4)
t
[1] 1 2 3 4
データのインポートを直接コンソールで打つのは
しんどいのでRコマンダーというライブラリーを導入する.
[パッケージ]→[パッケージのインストール]を選択
ミラーサイトはJapanのどれかにして,OKを押す.
次に出てくるパッケージというウィンドウでRcmdrを
選択する.
Ubuntu
sudo apt-get install r-cran-*
を実行する.
その後にroot権限でRを動かして(端末でsudo Rと打てばok)
そこでlibrary(Rcmdr)を実行
Macでのインストールに関しては先ほど上げたすつーかさんの
ブログを参照してみてください.
Rコマンダーを入れると外部ファイルからのデータ取得,分析,
検定がGUIで行うことができるので楽.
次のイベントでは検定とか推定の話をできるようにしっかりと勉強中.
プログラミング生放送に参加してきました!
今回はプログラミング生放送の大阪に参加してきました!
以前からいきたいと思っていた勉強会だったので
開始から興奮状態!
しかも,プロ生ちゃんのストラップ+IT勉強会スタンプラリーの
ステッカーをゲット!テンションがストップ高状態でした.
今回の内容は4本の40分公園とLTが6人でした!
本来なら微妙な詳細を書くべきなのですが……
メモが全部飛びましたw
ということでうろ覚えな状態で書かせてもらいます.
まぁ発表自体は動画で見れますのでそちらのほうが手っ取り早いかと.
学生さんが(自分も一応学生といえば学生)かなり多かったです.
結構IT勉強会だと学生が少なかったりするものなのですが.
そして,近畿圏以外からの参加者も多数!
これがプロ生とクラウディアさんの実力か……!
発表の1人目は福岡NFCLabの運営者であるtredyさん!
NFCの歴史からしっかりと学ぶことのできるNFCを知らない人でも
わかりやすいプレゼンでした!
発表の二人目は初音玲さん!
空のテンプレートから作成するWindowsストアアプリという発表でした
初心者はグリッドアプリケーションから入るのではなく,
空のテンプレートから作成したほうが確かに作りやすそうだなぁと
昔から思っていたのですが,わかりやすい説明を聞いて
より一層そう思いました.
発表の3人目は大場@tworksさん!
Delphiが実はWin/Macでクロスコンパイルすることができるという
内容のお話.
一々別のOSに合わせて作ることなく共通のアプリケーションを作成できるという
点は非常に素晴らしいのですが……それをできるソフトウェアが10万……
便利な機能だからね.仕方ないね.
発表の4人目はクラウディアさん!
Windows Azureの魅力についてしっかりと語ってもらいました!
そしてLTに突入!
今回は6名の方のLTがありました.
どの方の発表も非常に興味深く,面白い発表でした!
(べ、別に今思い出そうとしてあんまり思い出せないから一般的なことを書いたわけじゃないよ?本当だよ?)
休憩時間中は3時間並んで買ってきてもらった限定ハッピーターンをいただいたり、様々なお菓子をいただいたりと,なんというか会話よりも菓子を貪っておりました。さすがコミュ障.(自画自賛)
え?クラウディアさんの名刺?もらえませんでしたよ?
理由は……
プレゼン中に思わずツッコミを入れてしまったからじゃないですかね?
相変わらず一言二言三言口が多く,TPOをわきまえた
ちょうどいいテンションになれないコミュ障なmid_fでございました.
多分今頃懇親会していると思う.次回参加までには多少はコミュ障直してきま……無理だな.
MetroStyleDeveloperに参加してきました.
最近,こちらのイベントには参加できていなかったのですが,
久方ぶりに参加.いや,だってそうでもしないとWindows8触れる気にならn(略)
会場はブリーゼタワーのフェンリル株式会社の大阪支社様!フェンリルさんprpr!!(その場にいた人しかピンと来ないネタ)
実にお洒落なオフィスビルでした.
参加している面々はすごい方ばかりで私は入り口から一番近いところで
縮こまっていました.いや,本当に.
主催の遥佐保さんからitスタンプラリーの説明とご挨拶.そして各参加者の
自己紹介がありました.(自己紹介で私の声が自然と小さくなったのは言うまでもない)
内容はWindows8のみぎっかわを触ってみるとのことで蜜葉 優さんが発表してくださいました.
Metroアプリ(Windowsストアアプリとは言わないところが天邪鬼)において
なんだかんだで忘れられている共有,検索,設定の実装をハンズオン形式で!
正直な話,中身のほうが物足りなくなったりするので実装が後回しになったりするので,「さぁやるぞ!」と思っても
数分後には「もうやだよ!別にいらないよ!」と敬遠しがちだったのですが,
段階を踏んだハンズオンで非常にわかりやすかったです!
そして次回は丸山和秀さんによるCSSとjavascriptのお話.
javascriptの実装はしたことはなかったのですが,
非常に興味深い話題です!ぜひ次回も参加したいものです!
そして一部の参加者で近くのラーメン店に.
席の関係上,何人かのグループで分けられるというなんというか
ボッチの私にとっては心が地味にえぐられる
「はい,二人組つくってー」の状態に !
何にもしゃべれないというぎこちない状態の中でしたが
ある方と二人で楽しくお話させてもらいました!(こういうコメントがボッチの証というべきなのか何なのか……)
Microsoftさんは一般の人へのアピールが少ないんじゃないかとか
すごくまじめな話でしたよ.
そしてそのまま解散.
最後に,
今回講師をしていただいた蜜葉 優さん,心優しい参加者の皆様,
そして会場を提供していただいたフェンリル株式会社.
本当にありがとうございました!フェンリルprpr!!!(別れの挨拶.特に意味はない.)
WordPressの講座に出て様々なことを学べた.
特に興味深かったのが,パーマネントリンクについて.
パーマネントリンクは%postname%とかで記事の件名をURLに出すことができる.
それでは/%year/%monthnum/%dayとだけ設定したらどうなるのか?
答えは試してみたら分かることだが,その日に書いた記事がすべてそのURLとなり,
記事が見れず,その日の記事のタイトルのアーカイブしか見れない.
当然だろと言われたら当然だけど機能としてその日の何番目に書いた記事であるかを
最後の部分に/1とか/2とかで書いておいてくれたらいいのになと少し思った.
前回の記事の問題をJavaで解いてみた.問題については前回の記事を参照してください.
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int test=sc.nextInt(); System.out.println(getprimenum(test)); } private static int getprimenum(int prime){ int count=0; int now=2; if(prime==1){return 0;} else{ while(now<prime){ if(primecheck(now)){count++;} now++; } } return count; } private static boolean primecheck(int testprime){ if(testprime==2){return true;} else{ for(int n=2;n<testprime;n++){ if(testprime%n==0)return false; } return true; } } }
考え方に関しても前回の記事を参照.結果としては20MBのメモリ使用率で995msecでクリア.
ちなみにCではメモリ使用率748KB,実行時間は46msec.
同じことに対してのコードであってもこういう風に違うという観点の話を大学でしないことが残念でならない.
プログラミング言語で何をやるかという観点も非常に大事だ.その一方で,プログラミング言語はどのような特性を持ち得ているのか
ということを考えるべきだ.
何をやるかとのたまうことは正直な話,誰にでもできる.
大学が目指すべきはそのアイデアを具体的な形にすることのできる技術についても考えることのできる人材なのだが……
その道は遠そうだと自らの大学のカリキュラムを見て思うのであった.
素数とは、1 と自分自身以外に正の約数を持たない、1 以外の自然数のことをいいます。
自然数 n が与えられるので、 n よりも小さい素数の数は何個存在するかを求めてください。
入力は以下の形式で標準入力から与えられる。
n
11
4
100
25
10000
1229
#include<stdio.h> int prime(int tester); int main(void){ int input; int count=0; int now=2; scanf("%d\n",&input); for(;now<input;now++){ if(prime(now)){count++;} } printf("%d\n",count); return 0; } int prime(int tester){ int count=2; if(tester==2){return 1;} else{ for(;count<tester;count++){ if(tester%count==0){return 0;} } return 1; } }
int prime(int tester);
で宣言をしておく.
そしてメイン関数で2から入力された数までの素数をカウントしている.
int prime(int tester)の中身は純粋な素数判定プログラム.
素数はその数(tester)と1以外では割り切れない数であるので,
2からtester未満の数でtesterを割った時に割り切れないということと同じである.
1が返り値であればtesterは素数.0が返り値であればtesterは素数でないということになっている.
javaとかは余裕があったらまた書いてみる.
知っている方のブログを見ると天下一プログラマコンテストなるものが
あるということを知り,アクセス.
もう終了してはいるが,提出することはできるので挑戦.
まだ8/29日8:00~20:00の予選Cが残っているのでまだまだ本選へのアタックは可能です.
今回は,予選Bの内容を少しやってみることに.
予選B1問目の内容はこちら.
いま、物が有る。
その数は 1 以上 127 以下である。
3 で割ると、 a 余る。 5 で割ると、 b 余る。 7 で割ると、 c 余る。
いくつ物があるとそうなるか小さい順に答えよ。
なんか問題がおかしい気がするが,(いくつものがあるってなんだ?)
とりあえず,入力と出力を見たらなんとなくわかった.
入力は以下の形式で標準入力から与えられる。
a b c
条件を満たす物の数を小さい順に改行区切りで出力せよ。
なお、行の終端には改行が必要である。
そして作ったコードはこちら
#include<stdio.h> int main(void){ int a,b,c; int test=0; int count=0; scanf("%d %d %d\n",&a,&b,&c); while(7*count+c<=127){ test = 7*count+c; if(test==0){count++;continue;} if(test%5==b&&test%3==a){ printf("%d\n",test); } count++; } }
入力の改行を完全に忘れてました.
何回かミスをした後に受理.
ここまでだと,よりスマートにやりそうな人がいそうなので,
プログラミング初心者の人に対しても理解できるように解説してみる.
まず,最初の#includeはおまじない.もう少し説明すると標準入出力を担当するstdio.hを利用する宣言とのことになる.大概のプログラミングでは使うからそこは置いておく.
次に3つの入力を得るための変数が必要になる.今回は範囲が決まっていて整数であるのでint型を3つ用意.testはあとで判定とかに使うための値を代入する変数.
さて,次はwhile文.繰り返し文であるが,7*count+c<=127をクリアしたら中に入っている処理を行うというものである.
今回は処理の回数を減らすために,7で割った時の条件に合致する整数が他の条件に合うかどうかを確認する.
問題としては,count=0かつa=b=c=0のとき,出力する数字は1以上であることが条件であるが,何の対策もしなければ0であってもこのままでは条件を満たしてしまう.次の倍数への対応をするためにcount++をしてcontinue文を入れる.continue文はその時点でその回の繰り返し処理をやめることを意味する.(continue文丘の処理は実行されず,再度繰り返しの条件文を判定し,処理を行う.)
あとは5で割った余りと3で割った余りを考えて,出力させれば終わり.
それではこれをjavaで書いてみる.
import java.util.Scanner; public class ProblemB1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] a = new int[3]; a[0]=sc.nextInt(); a[1]=sc.nextInt(); a[2]=sc.nextInt(); for(int count=0;7*count+a[2]<=127;count++) if(tester(a,7*count+a[2])){ System.out.println(7*count+a[2]); } } public static boolean tester(int[] a,int test){ if(test==0)return false; else if(test%5==a[1]&&test%3==a[0]){return true;} else {return false;} } }
判定の部分をtesterという関数を作ったところ以外はあまり変わりはない.
違いとしては入力を受け付けるところ.
Cでは入力形式の形でscanfをする必要があるが,JavaのほうではnextIntというメソッドで取れる.
1日前に書いた記事だがAndroidコンペを行った.
私自身,大人気のアプリを作り上げたという訳でもないし,他の人たちが素晴らしいと思えるような技術に対しての経験や知識を得ているわけでもない.
しかし,私は今回,IT勉強会スタンプラリーにコミュニティ「Programming∀」を作り,参戦した.
私は,元々最後の学生の年なのだからいろんな勉強会に参加してみようということから多くの勉強に参加させていただいた.時にはしゃべったり,レポを書いたりもしていた.
色んな勉強会を見ているうちにふと思ったことがある.
それは,初心者が参加に大きな壁を感じているということ.
周りの学生を誘ってみても「難しいことを話すんだからどうせ自分なんて……」という人ばかり.(こういうことをいう人たちに限って実際はそのレベルに達しようという努力は私から見て皆無だったりする.あるいは単に私が嫌われているだけか.)
ある人が別の理由を言ってくれた.それはコミュニティが上級者の集まりとなっており,そこに自分が入っていくことが非常に難しく感じるためとのことだ.
なるほど,確かにコミュニティは作られてから時期がたてばたつほど閉塞感が増すものだろう.ある程度のメンバーが固まり,ある程度共通の話題が出来上がり,コミュニケーションが楽になっている一方で新参者には居づらい空気となってしまうことだろう.
現在の多く存在している盛り上がっているコミュニティほどどんなに初心者歓迎と言っていてもやはり初心者が入りづらい何かしらの壁があるのではないかと感じた.
ある日,私はゲームをしていると雑魚キャラが現れ,倒した時にふとひらめいた.
最初っから初心者向けだけで構成するコミュニティで特定の技術とかを極めるのではなく,無節操に手を出すコミュニティがあってもいいのではないか?
勇者は最初はLv1から始まる.そこからどんどんと強くなるために雑魚キャラを倒し,自らの糧としていく.コミュニティに置き換えると今は強い敵キャラ(対抗するべきというものではない.あくまで例え)が氾濫している状態と考えられる.そこで雑魚キャラの立ち位置はあまりなく,実は潜在的に求められているのではないか.
そこから,gimpでお粗末なロゴを作り,参加用のシールを自作して開催予定日を1か月半後として会場をぎりぎりでアポイントメントをとって実行に移した.
ここまで行動を起こして,私はこう考える.
1つぐらい「このコミュニティ,チャレンジしすぎだろ……」というものがあってもいいのではないかと思う.
芸人の世界でも同じだ.全員が全員同じ芸風だったら誰もテレビなんて見ないだろう.
周りから「こんなものがチャレンジかよ.ただの無謀じゃないか.」と笑われてもいい.その人が「こっちの方がもっとチャレンジングで楽しいだろ.」と行動してほしい.
ということで,今後も頑張って活動をしてドラク○でいうようなスライ○のような立ち位置を狙っていきたいと思います.