投稿

2017の投稿を表示しています

The Governor Limit and Savepoint (Salesforce Apex)

Savepoint you set counts against the governor limit for DML statements and rows. Also, rollback is also the same. Rows are the number of records. Savepoints and rollbacks were also counted in records. // // Execute Anonymous 1 // Insert 2 times, SavePoint, Rollback total 4 times. // Result, one record of X company is inserted. // Account a1 = new Account(Name = 'X Company '); insert a1; System.SavePoint sp = Database.setSavePoint(); Account a2 = new Account(Name = 'Y Company'); insert a2; Database.rollback(sp); // Debug log   Number of SOQL queries: 0 out of 100   Number of query rows: 0 out of 50000   Number of SOSL queries: 0 out of 20   Number of DML statements: 4 out of 150    <--- counts   Number of DML rows: 4 out of 10000    <--- same counts because inserted every record   Maximum CPU time: 0 out of 10000   Maximum heap size: 0 out of 6000000   Number of callouts: 0...

Ubuntu 17.10環境への追加パッケージ

パッケージ vim vimと一緒に.viminfo、カラースキーマが設定され、ubuntuのviはもともとvimの簡易版だそうですが、vimインストール後、viコマンドは /etc/alternatives/vi -> /usr/bin/vim.basic にリンクされ、カラフルになります。 Mousepad (Xface test editor) Diodon (GTK+ clipboard manager) vlc (media player) Audacios (audio, media palyer) 音楽ファイルの再生に便利です。 asunder-casept (graphical Audio CD ripper) CDからflacファイルを作成するのに便利です。 VMPK (Virtual MIDI Piano Keyboard) 音を出すための設定 sudo apt install timidity timidity -iA & vmpk & Edit -> Connections MIDI Setup -> Output MIDI Connection -> TiMidity:0 アドオン

Grub再インストール

Debian 9 (Stretch) での例 1, パーティションの確認 ~$ df -Th ファイルシス   タイプ   サイズ  使用  残り 使用% マウント位置 udev           devtmpfs   3.9G     0  3.9G    0% /dev tmpfs          tmpfs      788M  9.4M  778M    2% /run /dev/sda9      ext4        28G  9.9G   17G   38% / tmpfs          tmpfs      3.9G     0  3.9G    0% /dev/shm tmpfs          tmpfs      5.0M  4.0K  5.0M    1% /run/lock tmpfs          tmpfs      3.9G  ...

Fedora 26 環境への追加インストールパッケージ

パッケージ GPaste Mousepad VLCメディアプレーヤー(vlc) Audacios Shotwell Alexandria ブック・コレクション・マネージャ ibus-mozc アドオン Mozc Typing Booster Clipboard Indicator GStreamer Multimedia Codecs GStreamer Multimedia Codecs - Extra AlternateTab Applications Menu

Salesforce、カスタムオブジェクトの外部IDによる紐付け登録

Salesforce、カスタムオブジェクトの外部IDによる紐付け登録 例、マスタ情報のオブジェクトと、明細データのオブジェクトの場合 1,オブジェクトと項目の設定 マスタ情報オブジェクトに外部IDを格納するカスタム項目を、外部IDオプション付きで作成する。 明細データオブジェクトにも同様に外部IDを格納するカスタム項目を、外部IDオプション付きで作成する。 明細データオブジェクトにマスタ情報オブジェクトへの参照関係項目を作成する。 <マスタ情報オブジェクト(Master__c)> マスタコード番号(MasterCode__c) マスタ名称(MasterName__c) 外部ID項目(MasterCodeFK__c) ※マスタコード番号がユニークで外部IDと同一にできるならば作成不要、マスタコード番号項目に外部IDオプションを付けることで大丈夫です。 ※データ型:テキスト ※オプション:外部ID(ユニーク、必須は必要があれば設定) <明細データオブジェクト(LineItem__c)> マスタコード番号(MasterCode__c) 明細項目1(LineItem1__c) 明細項目2(LineItem2__c) 外部ID項目(LineItemFK__c)(こちらは作成する必要がある) マスタ情報参照関係項目(MasterRef__c) 2,データの作成 マスタ情報、明細データともに実データに外部IDを付ける。 "MasterCode__c","MasterName__c","MasterCodeFK__c" "MasterCode__c","LineItem1__c","LineItem2__c","LineItemFK__c" 3,データの投入(DataLoaderでUpsert) マスタ情報データから先にUpsertする。 Upsertをクリックし、マスタ情報データのCSVを指定する。 外部ID(external ID)とのマッチング項目に、作成した外部ID項目(MasterCodeFK__c)を指定する。 マッピングはCSVの外部ID項目と...

Debian 7 (Wheezy) への Grub 再インストール(レガシーBIOS)

環境 1つの HDD にデュアルブート環境を構築、Windows10、Debian7、Debian8、Ubuntu17.04、Fedora26 をインストールしています。 Linux はインストールした各パーティションに GRUB をインストールし、HDD の先頭に MBM (MBRパーティション用のブートマネージャ)をインストールし、電源投入後、起動する OS を選択しています。 HDD ディスク全体は レガシーBIOS、パーティションの先頭にMBR(マスターブートレコード)があります。UEFI、GPT(GUIDパーティションテーブル)ではありません。 現在、Windows10 と Linux を1台のディスクでデュアルブートするには 下記の組み合わせはパターンとなるようです。残念なことに、Windows10 がプレインストールされた PC(現在では一般的)では Linux のディストリビューション選びが難しくなりました。 レガシーBIOS、MBR、セキュアブート無効およびCSMモード(互換モード)有効、高速ブート(Quickboot、Fastboot)無効・・・Windows と、どの Linux ディストリビューションでもデュアルブートできます。昔ながらの構成です。 UEFI BIOS、GPT、セキュアブート有効およびCSMモード(互換モード)有効、高速ブート(Quickboot、Fastboot)無効・・・Windows と、セキュアブートに対応した Linux ディストリビューション(Ubuntu、Fedora、SuSE、Linux Mintなど少数)ならばデュアルブートできます。新しい BIOS である UEFI BIOS の機能が使えますが、Linux ディストリビューションが限定されてしまうという不自由が生じます。UEFI BIOS でセキュアブート無効の場合、Windows10 の起動がサポートされないようです。 UEFI BIOS、GPT、セキュアブート無効およびCSMモード(互換モード)有効、高速ブート(Quickboot、Fastboot)無効・・・Windows10 は諦めることになりますが、Linux は自由に起動できます。 なお、高速ブート(Quickboot、Fastboot)無効でも Windows10 ...

Scala開発、関数型言語での開発メモ

イミュータブルデータを使うことで防御的なプログラミングの必要性が減少する。(p.55) プログラミングには大きく2つの考え方がある。処理を行う手続きに通目する考え方と、処理の結果「何」を得た以下に注目する考え方。(p.56参考) スプレットシートは「何」に注目したソフトウェア。セルを評価する順番や、特定のセルの変更によってどのセルを再計算させるかなど、手続きを書く必要がない(手続き的な指示を行わない)。スプレットシートの計算エンジンが推論してくれる。再計算された結果に注目する。(p.56参考) レックス・スプーン ブラク・エマー エイドリアン・モース フィリップ・ハラー ドン・シム 参考図書 『Scalaプログラミング入門 関数型オブジェクト指向言語の楽しい学び方』(Beginning Scala)、デイビット・ポラック(David Pollak)、大塚庸史訳、日経BP社、2010 『Scala関数型デザイン&プログラミング Scalazコントリビューターによる関数型徹底ガイド』、Paul Chiusano、Rúnar Bjarnason、クイープ訳、インプレス、2015 『Scalaスケーラブルプログラミング 第3版』、Martin Odersky、Lex Spoon、Bill Venners、長尾高弘訳、インプレス、2016

Ubuntu における Firefox Sync、Firefox アカウントの設定

※Ubuntu 17.10では「Resolve」欄に何も設定されていないデフォルトで問題なくなりました。 現象 Ubuntu において、Firefox Syncができない場合や、Firefox アカウントの設定ができない場合(Syncしようとすると真っ白な画面に遷移する)、Ubuntu既定(デフォルト)のDNS設定が原因です。 解決方法としては Mozilla のサービスを使うために、なんだか妙なのですが、Google の DNS を設定すれば解決します。 設定方法 /etc/systemd/resolved.conf の編集 「Resolve」欄にコメント付きで記載されている「DNS=8.8.8.8」「8.8.4.4」はGoogleのDNSです。 この行のコメント「#」を消して有効にするか、行コピーして「#」消して有効にします。 プロバイダーから提供されているDNSサーバーを記述しても構いません。 GoogleのDNSサーバーを設定する例 $ sudo vi /etc/systemd/resolved.conf [Resolve] #DNS= #FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844 DNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844 プロバイダーから提供されているDNSサーバーを設定する例 [Resolve] DNS=192.168.0.1 systemd-resolve サービス再起動 $ sudo systemctl restart systemd-resolved.service 設定確認 「systemd-resolve --status」コマンドで、DNSサーバー「8.8.8.8」「8.8.4.4」が設定されていることを確認します。 もしくはプロバイダーから提供されているDNSサーバーが設定されていることを確認します。下記の例では「192.168.0.1」です。デフォルトゲートウェイとDNSサーバーが同じIPアドレスになっているプロバイダーでよくある例です。 $...

Debian 8 (jessie)、Ubuntu 15.04 (Vivid Vervet) で起動時に a start job running is for dev-disk-uuid xxxxx エラーがでる件

2015/06/12 9:08公開記事 /etc/fstabに定義されている swap パーティションの uuid が古くなってます。 (1) swap の uuid を確認 swapパーティションをsda6 にしている場合 ------------------------------- $ ls -l /dev/disk/by-uuid | grep sda6 lrwxrwxrwx 1 root root 10  6月 12 08:39 13fe0bbc-cb67-4ff8-ab0c-5d1f3ed79e09 -> ../../sda6 ------------------------------- UUID が 13fe0bbc-cb67-4ff8-ab0c-5d1f3ed79e09 であることが分かります。 (2)fstabを編集 UUID 修正します。 ------------------------------- $ sudo vi /etc/fstab # swap was on /dev/sda6 during installation UUID=13fe0bbc-cb67-4ff8-ab0c-5d1f3ed79e09 none            swap    sw              0       0 # UUID=e3724924-14ed-4787-bc84-4d0e6fd7a52f none            swap    sw              0       0 ------------------------------- (3)再起動するか、swapon コマンドで swap を追加してください。 $ swapon -a

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

命令モデル 命令を実行する。 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 ...