投稿

コンピュータープログラムの計算モデル

命令モデル 命令を実行する。 C言語、Java プログラムの命令を実行すると、内部の状態が変化し(変化させる)、最後の状態が計算結果となる。 計算途中の状態を意識してプログラミングする必要があるが、把握しづらい。状態は変化していくから。 コンピューターのハードウェアの構造に近い計算モデルなので、効率がよい。 関数モデル 関数を呼び出して値を得る。 Lisp、Haskell 命令モデルの言語でも関数式がサポートされるようになった。Javaのλ(ラムダ)式など。 関数を値として扱うことにより、処理を部品化(モジュール化)する。 値を変数にバインド(束縛)し、変化させない。代入や破壊的メソッドの排除。 代入を排除することで、モジュール性が高まり、テストが容易になり、コードの正しさが証明できる。 参照透過性を確保する。数学的な等式が成立する。 A === Aはアドレス参照でなく値を評価する。 関数型プログラミングはメモリやコンパイルの効率的管理が難しかった。 論理モデル 証明を得る。 Prolog 普及している言語は少ない。利用が進んでない。 ポーランド記法を逆ポーランド記法 ポーランド記法 「1 + 2」 ⇒ 3 (1加えることの2ならば3、1プラス2は3) 逆ポーランド記法 「1 2 +」 ⇒ 3 (1に2を足すならば3) 述語関数 ブール値(true/false)を返す関数のこと。 条件を満たせば「真(true)」そうでなければ「偽(false)」を返す。 代数的データ構造 複数の選択肢から一つだけ選択するデータ構造 例、星 恒星 惑星 衛星

systemd-resolveの設定(Ubuntuなどの動的DNS設定)

systemd-resolveの設定(動的DNS設定) Ubuntuなど、systemd-resolveがデフォルトのDNSリゾルバーとなっているディストリビューションについて。 NetworkManagerやavahi-daemonの無効化、/etc/network/interfacesの設定はしなくて大丈夫です。 なお、下記のDNS設定を行わないと、Firefox Syncに失敗してしまいます。Google Chromeでのウェブ検索には影響はありませんが、Firefoxでは「support.mozilla.org」、「accounts.firefox.com」、「bugzilla.mozilla.org」などのサポートサイトの名前検索に失敗しますので、Mozilla のサービスを使うために、なんだか妙なのですが、Google の DNS を設定しましょう。 /etc/systemd/resolved.conf の編集 設定は下記のファイル順に構築されます。 /etc/systemd/resolved.conf /etc/systemd/resolved.conf.d/*.conf /run/systemd/resolved.conf.d/*.conf /usr/lib/systemd/resolved.conf.d/*.conf $ sudo vi /etc/systemd/resolved.conf おすすめはGoogleのPublic DNSを設定です。Googleを使うユーザーにとってはヒット率が高いようです。 [Resolve] DNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860: 他のDNSとしては、ISPが提供しているDNSサーバーを指定する。プロバイダが提供しているDNSは接続ルータの管理者画面等で確認します。 [Resolve] DNS=xxx.xx.xxx.250 xxx.xx.xxx.254 systemd-resolve サービス再起動 $ sudo systemctl restart systemd-resolved.service 設定確認 GoogleのPublic DNSサーバー( 8.8...

ビックデータ関連技術発表年(Google)

論文発表 2003、Google GFS 2004、Google MapReduce 2006、Google Bigtable 2010、Google Percolator, Dremel(BigQuery) ソフトウェア発表 2007、Google Hadoop First Release 2008、Google HBase First Release 2010、Google Caffeine 2011、Twitter Storm 2012、Dremel Spanner Colossus 2013、Amazon Kinesis 2013、Drill Google検索システム Crawling MapRedece GFS(Google File System) MapRedeceではデータ処理がバッチ処理で行われるため、検索結果への反映までに時間がかかるという問題があった。 MapReduceの実装がHadoop、バッチ処理、Javaライブラリ(HiveQL in Hadoopなど) Dremel(BigQuery)、会話型クエリー、SQLライクの言語、入れ子構造(nested)の扱いが可能、カラム指向 Caffeine Colossus アプリケーションプラットフォーム App Engine Bigtable(NOSQL) BigQuery オープンソース化 Apache Hadoop ← MapRedece Apache HDFS ← GFS Apache HBase ← Bigtable Apache Drill ← Dremel 参考文献 「Google BigQueryではじめる 自前 ビックデータ処理入門」、清野克行、秀和システム、2014

コマンド備忘

パッケージ更新、修復 debian、ubuntuなどaptコマンド $ sudo apt update $ sudo apt upgrade $ sudo apt upgrade -y $ sudo apt update && sudo apt upgrade -y $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get upgrade -y $ sudo apt-get update && sudo apt-get upgrade -y fedoraなどdnfコマンド $ sudo dnf update $ sudo dnf update -y $ sudo dnf update --refresh $ sudo install dnf-plugin-system-upgrade 古いカーネルの削除 古いパッケージの検索 $ dpkg --get-selections |grep linux- 削除実行 $ sudo apt-get remove linux-image-4.4.0-20-generic $ sudo apt-get purge linux-image-4.4.0-20-generic 複数削除 $ sudo apt-get --dry-run autoremove --purge linux-image-extra-4.4.0-{21,22,24,28,31,34,36,38,42,45}-generic $ sudo apt-get autoremove Grubメニューを更新 $ sudo update-grub サービス設定 ubuntu $ systemctl start ssh.service $ sysctl enable ssh.service Proxy設定 /etc/apt/apt.conf Acquire::http::Proxy "http://ip address:port/"; AutoProxy "http://proxy.example.com/wpad.dat...

正規表現

特殊文字、量指定子、オプション 特殊文字 (正規表現 - JScript.NET) https://msdn.microsoft.com/ja-jp/library/cc392180.aspx 正規表現での量指定子 https://msdn.microsoft.com/ja-jp/library/3206d374(v=vs.110).aspx 正規表現のオプション https://msdn.microsoft.com/ja-jp/library/yd1hzczs(v=vs.110).aspx 正規表現 英語のWikipediaの方が解説が詳しく、参照先リンクも多い。 Regular expression - Wikipedia https://en.wikipedia.org/wiki/Regular_expression 正規表現 - Wikipedia https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE Comparison of regular expression engines - Wikipedia https://en.wikipedia.org/wiki/Comparison_of_regular_expression_engines Perl PCRE - Perl Compatible Regular Expressions http://www.pcre.org/ perlre - perldoc.perl.org http://perldoc.perl.org/perlre.html Java Pattern (Java Platform SE 6) https://docs.oracle.com/javase/jp/6/api/java/util/regex/Pattern.html Ruby 正規表現 (Ruby 2.4.0) https://docs.ruby-lang.org/ja/latest/doc/spec=2fregexp.html .NET 正規表現言語 - クイック リファレンス https://msdn.microsoft.com/ja-JP/library/az24scfc(v=v...

Javascript環境、Node.js、nvmインストール

nvmインストール curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash 参考(上記「i nstall.sh」のダウンロード元) creationix/nvm: Node Version Manager - Simple bash script to manage multiple active node.js versions < https://github.com/creationix/nvm > https://github.com/creationix/nvm/blob/master/install.sh nvm/README.markdown at master · creationix/nvm · GitHub https://github.com/creationix/nvm/blob/master/README.markdown nvmインストール済みの場合、バージョンアップ node、nvmのバージョンを確認 $ node -v v0.11.11 $ nvm --version 0.31.7 nvmのバージョンアップ $ sudo git pull origin master $ nvm ls-remote Node.js インストール、バージョンアップ $ node -v v0.11.11 $ nvm install v0.12.18 Node.js バージョン確認、実行バージョン変更 $ nvm use node $ nvm run node --version $ node -v v7.7.2 nodeコマンドのパス確認 $ which node /home/user/.nvm/versions/node/v7.7.2/bin/node $ cd .nvm インストールされているnodeのバージョン(パス確認) $ ls -l versions/node 合計 12 drwxr-xr-x 7 user group 4096  3月 11 18:50 v0.12.18 ...

マルチブートPCでの時刻合わせ

マルチブートPCでの時刻合わせ 設定方法が変更されました。「 /etc/default/rcS」は Ubuntu 17.04、Debian 9 (Stretch)  にはありません。 設定はコマンドで行います。 $  sudo timedatectl set-local-rtc true  (true または 1) 設定結果の確認(status 引数は省略可能) $ timedatectl status       Local time: 金 2017-06-30 00:18:54 JST   Universal time: 木 2017-06-29 15:18:54 UTC         RTC time: 金 2017-06-30 00:18:54        Time zone: Asia/Tokyo (JST, +0900)  Network time on: yes NTP synchronized: yes  RTC in local TZ: yes 「RTC」が「yes」になっていれば、Local Time が利用されている状態です。 下記の Warning が出ますが、Local Time でないと、Windows 10 は上手く設定できませんので、止むを得ずマルチブートのPCで使うLinuxの方も  Local Time  で揃えます。 Warning: The system is configured to read the RTC time in the local time zone.          This mode can not be fully supported. It will create various problems          with time zone changes and daylight saving time adjustments. The RTC ...