タグ

Programmingに関するlarkerのブックマーク (613)

  • これだけは覚えたい、ユニットテストを書くための4つのデザイン - Qiita

    もうちょっと規約的なものを「JavaでのUT作成基準を整理してみた」にもまとめてみました。 はじめに 去年、ブログの方に「ふつうのユニットテストのための7つのルール」という記事を書いたのですが、思ったより反響がありました。 あの記事で書いたのはあくまで原理・原則で、それを実現するためにはいくつかのテクニックが必要です。 特に、ああいうルールを作って「ユニットテストを書く事」を厳守するようにしても、 適切なテクニックを知らなければメンテが困難だったり、品質に寄与しなかったり、実行性能が悪いゴミが量産される可能性があります。 じゃあ、どうすれば良いかというと「最初からユニットテストが書きやすいように元のコードを設計する」ということです。 そう。まず身に付けるべきは「テストコードの書き方」では無く「テスト対象コード」すなわち「プロダクトコードの書き方」なのです。 また、ここで言ってる「最初から」

    これだけは覚えたい、ユニットテストを書くための4つのデザイン - Qiita
  • 他人のコードや設計を見て1番これはあり得ないだろと思う実装はありますか?

    回答 (9件中の1件目) qmailという、極端にバグが少なく、安全で高速なSMTPのサーバーがあります。いまはシェアを落としていますが、数年間放置しておいても安定して長期間動くので、まだまだ現在も使われています。 the Internet's MTA of choice このCソースはすごいですよ。putsやprintf, fopenなどの標準Cライブラリの関数は安全ではないという理由で使わず、すべてsubstdioという、stdioのサブセットを独自実装しています。こんなことは普通はしないですね。 作者のDJB氏は、プログラムは全部のパターンをテストできなければならない。全部の...

    他人のコードや設計を見て1番これはあり得ないだろと思う実装はありますか?
  • 「ザクII」を動かすプログラミング教材、20年3月発売 約10万円

    バンダイは9月27日、アニメ「機動戦士ガンダム」の世界観を楽しみながらプログラミングを学べる教材「ZEONIC TECHNICS」(ジオニック テクニクス)を2020年3月に発売すると発表した。価格は9万8890円(税込)。10月11日午後8時から同社の通販サイト「プレミアムバンダイ」などで予約を受け付ける。 ZEONIC TECHNICSは、作中に登場するモビルスーツ「ザクII」をモチーフにしたホビーロボットを組み立てながら、ロボティクスの基礎や、プログラミングの概念を学べるというもの。ジオン軍のモビルスーツを開発、製造していたジオニック社公認の「MS(モビルスーツ)講習キット」という設定だ。 全高は約30センチで、全身17個のサーボモーターや、ジャイロセンサー、対物(距離)センサーを搭載。ザクの象徴ともいえる「モノアイ」を動かしたり、二足歩行したりでき、動きに合わせて効果音も出せる。

    「ザクII」を動かすプログラミング教材、20年3月発売 約10万円
  • Perlゼミ|Perlの基礎をインストールからサンプルで丁寧に解説

    Perlプログラミング入門 - Perlをインストールから学ぶ Perlゼミでは、Perlのインストールからはじめて、Perlプログラミングの基礎を学べる初心者向けの無料Web講座です。Perlの変数、配列、ハッシュ、if文、for文などの基文法、ファイル入出力、日語対応の検索・置換などの正規表現を使ったテキスト処理を学習できます。

    Perlゼミ|Perlの基礎をインストールからサンプルで丁寧に解説
  • プログラムでフィルタ(平滑化、ノイズ除去)の遅れを無くす

    ローパスフィルタ(プログラム)で遅れの確認 サンプル(計測値)にまずは普通?のローパスフィルタを通してEXCELでシミュレーション(グラフ化)してみます。 LPF = (1 - k) * lastLPF + k * raw; lastLPF = LPF; //lastLPF:前回のLPF値 //raw :今回の計測値 フィルタを言語風に書くとこんな感じでしょうか。「前回の補正値」と「今回の計測値」を重み付け平均している感じです。「k」は定数。(0 ≦ k ≦ 1)

    プログラムでフィルタ(平滑化、ノイズ除去)の遅れを無くす
    larker
    larker 2019/07/04
    ローパスフィルタ
  • ゼロからはじめるGo言語(1) Go言語をはじめよう

    連載は、Googleによって開発されたプログラミング言語「Go言語」をゼロからはじめる方のためのものとなっています。今注目を集めているGo言語について、より楽しく学べる連載です。一回目の今回は、Go言語の紹介から、インストール、簡単なプログラムの実行までの手順を紹介します。 Go言語とは? そもそも、Go言語とは『実行が速くて覚えやすいモダンなプログラミング言語』です。2009年にオープンソースのプロジェクトとして発表されました。その後、着実に人気を伸ばしており、特にこの数年、C言語の置き換えとして、様々な基盤ソフトウェアの開発やWebアプリの開発など、様々な分野で利用されています。 マルチプラットフォーム対応なのも嬉しい点です。Windows/macOS/Linux/Android/iOSと主要OSで動作します。また、コンパイル言語であり動作が高速です。PythonRubyなどのスク

    ゼロからはじめるGo言語(1) Go言語をはじめよう
  • プログラマーを30年間やってきた経験から学んだことまとめ

    プログラマーにとって「どうすればより効率よくプログラムを組み上げられるのか」は常に頭を悩まし続ける問題の1つとなっていますが、その道のエキスパートであるエンジニアのジュリオ・ビアソンさんが30年間ソフトウェア開発に携わってきた経験から学んだことについてブログにまとめています。 Julio Biason .Net 4.0 - Things I Learnt The Hard Way (in 30 Years of Software Development) https://blog.juliobiason.net/thoughts/things-i-learnt-the-hard-way/ ビアソンさんは多数ある「学んだこと」を以下の3つに大きくわけてまとめています。 ◆ソフトウェア開発について ◆チーム・仕事について ◆個人的なことについて これからプログラマーになろうとしている、あるいは

    プログラマーを30年間やってきた経験から学んだことまとめ
  • 2つの座標間の距離を求める - Qiita

    2地点の緯度、経度を指定して、その直線距離を求める必要があったのでメモ書き。 <注意> 稀にソースをコピペしてブログ等に載せてる方がいらっしゃいますが、間違いを修正する事もありますので、せめてリンクくらいは貼って頂けると困る人が減るかと思います。 ヒュベニの公式 一般的に使われているヒュベニの公式から求めるものです。 国土地理院とかにある距離計算もこれで求めてるっぽいです。 2024年現在、国土地理院の計算式はBowring(1996)になっています。 参考:経緯度を用いた2地点間の測地線長、方位角を求める計算 【追記】 [2022/05/12] バグ修正 >@rwanda_go_tanさんバグ報告ありがとうございます。 [2023/11/01] composer化してみました。 [2024/01/04] 国土地理院の距離計算が異なっていたので文修正 > @kkddさんありがとうございま

    2つの座標間の距離を求める - Qiita
  • 一時期プログラミングのデザインパターンというものが大流行しましたが、現在ではどのように評価されているのでしょうか?

    回答 (5件中の1件目) この質問にかなり先行して2015年、Quora(家)で投げかけられた質問として、 Why do some functional programmers criticize design patterns in OOP languages as a sign of language deficiency, while Monad is also a design pattern? なぜ、関数型プログラマらは、オブジェクト指向(OOP)言語のデザインパターンを、言語の欠陥の象徴だと批判するのでしょうか?モナドもデザインパターンじゃないんですか? があります。...

    一時期プログラミングのデザインパターンというものが大流行しましたが、現在ではどのように評価されているのでしょうか?
  • 【Android】ViewPagerのページを動的に追加する - Kuwapp's Blog

    ViewPagerのページに表示するデータを最初にセットせずに逐次読み込みたかったので 一番端のページに到達したら新しくデータを追加し新規ページが追加される処理を入れてみた。 流れ ページが端に到達したか確認 ↓ データを追加しAdapterを更新 実装 MainActivity.java public class MainActivity extends FragmentActivity implements OnPageChangeListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初期データ ArrayList<Integer> item

    【Android】ViewPagerのページを動的に追加する - Kuwapp's Blog
    larker
    larker 2019/02/08
    無限スワイプ
  • PHPのハマりポイントのリンク集 - Qiita

    PHPのハマり情報のまとめです。主に罠な仕様、予想外の振る舞い、ドキュメントに詳しくは書いてない振る舞いについての情報をまとめていきます。ここに載ってない情報があればぜひとも教えて下さい。頂いた情報をもとに随時更新していきます。 PHPは引数が足りないときはエラーになるが、引数が多いぶんには何も言わない - Qiita PHPはときどき掛け算ができない - Qiita PHPのDateTime::ISO8601はISO8601ではない - Qiita SplFileObjectのREAD_AHEAD, SKIP_EMPTY, DROP_NEW_LINEPHPのバージョンによって挙動がバラバラな件 - Qiita PHP: iterable型はiterator_to_array()に渡しちゃいけない - Qiita PHPの正規表現で^$より\A\zがいい理由 - Qiita PHP:文字

    PHPのハマりポイントのリンク集 - Qiita
  • pythonでのデータ分析時、死ぬほど調べるTipsをまとめておく。 - プロクラシスト

    こんにちは、ほけきよです。 pythonでデータを取り扱っているとき「あれ、これどうやるんだっけ??」 ってなること、ありませんか?僕は10分に1回程度なります。 いや、覚えろと自分でも思うんですが、覚えられないんですよね。100回くらい同じコマンドを調べてたりする。 物覚えが良くないので、ココを見れば絶対大丈夫なようにしておこうと思い、まとめてみました。 jupyterで最初に開くときに読み込むモジュールたち datetime 日付⇔文字列の変換 datetimeの足し算引き算 json dict型⇔json jsonファイルの入出力 datetimeをjsonにする時、エラーが出る pandas ~以外を表すやつ andとor inf弾く リストをdfにサクッと変換 datetimeとして読み込み 読み込み時にcodecのエラーが出る DataFrameのfor文 numpy lins

    pythonでのデータ分析時、死ぬほど調べるTipsをまとめておく。 - プロクラシスト
  • 【Java初心者向け】throwとthrowsの違いとその使い方

    このページではJavaの例外処理として、throwとthrowsについてご紹介しよう。 とても似ているが、それぞれで意味も使い方も違う。 例外処理を行う上で、どちらも知っておこう。 Javaの例外処理には「throw」、「throws」という処理がある。両方ともその名前の通り処理を「投げる」という意味だ。 名前は同じような「throw」、「throws」であるが、内容はだいぶ違う。それぞれの特徴をよく理解して利用していきたい処理だ。 まずは「throw」についてみてみよう。「throw」は例外を意図的に起こして、例外処理を行わせることができる。 例外を意図的に発生させるメリットとしては、以下サンプルプログラムのように、引数の値が望んでいるものでない場合に例外を発生させ、呼び出し元にエラーメッセージを返すことができるなどがある。 サンプルプログラムで処理を確認してみよう。

    【Java初心者向け】throwとthrowsの違いとその使い方
  • Androidのアニメーション(画像複数) - Qiita

    アニメーション効果 1、アニメーションの画像を用意して、drawableに追加 自分は手書きの123、、、9までの数字を用意しました。 2、アニメーションのanimation-listをdrawableに追加(R.drawable.animation) 3、ImageViewとanimationDrawableの初期化 //ImageView 初期化 animationImage = (ImageView)findViewById(R.id.image); //AnimationDrawable 初期化 animationDrawable = (AnimationDrawable)getResources().getDrawable(R.drawable.animation,null); //animationImage 背景 animationImage.setBackground(an

    Androidのアニメーション(画像複数) - Qiita
  • 【Android】Ripple Effectをコードで適応【Material Design】 - あたも技術ブログ

    今回はちょっとした小ネタになります。 Androidでボタンなどを押したときに出てくる波紋状のエフェクトですが、通常なら以下のようにxmlで記述し、backgroundに設定してあげることで実現することができます。 /values/colors.xml <?xml version="1.0" encoding="utf-8"?> <resources> <color name="btn_color">#ffffaab3</color> <color name="btn_highlight_color">#ff4081</color> </resources> /drawable/btn_ripple.xml <?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk

    【Android】Ripple Effectをコードで適応【Material Design】 - あたも技術ブログ
  • シェルスクリプトを高級言語のような書き味に近づける Tips 集 | 創作メモ帳

    Bash は言わずと知れた歴史あるコマンド言語です。テキストにコマンドの羅列を記述するだけで、手軽にシェルスクリプトとして実行することができます。 シェルスクリプトの実体はシェルコマンドの羅列に過ぎませんが、手続き型プログラミング言語にあるような制御構文も備えています。変数や条件分岐、ループ、関数などです。これらを使えばシェルスクリプトでプログラミングも可能です。 もちろん、現代の一般的なプログラミング言語と比べると機能は限られます。他の言語には見られないシェルスクリプト特有の癖や記法も数多くあり、最近の言語に慣れている人ほど、つまずくポイントが多いです。 しかし、シェルスクリプトだからこその良さもあります。Bash は現在でも多くの OS で標準シェルとして採用されており、普段使っているシェルコマンドを書くだけで動かせる手軽さは何者にも代えがたいです。一度身につけておくと長く使えるお得な

    シェルスクリプトを高級言語のような書き味に近づける Tips 集 | 創作メモ帳
  • Material Design度が高まるRipple Effect対応 - Qiita

    概要 Material Design対応を行っているアプリが増えてきたと感じる今日この頃ですが、みなさんRipple Effectの対応は行っていますか。 Ripple EffectはMaterial Designの中でもキーになる表現効果ですが、APIレベル21(Lollipop)以上のOSでないと標準の仕組みでは扱えないため後回しにしているアプリも多いのではないかと思います。 今回は、私が開発に携わっている女性向けファッションアプリ iQON で、Ripple Effect対応を行った際の話を書きたいと思います。 対応方針 Ripple Effect対応を行う上で、まずは以下のような対応方針を定めました。 1. 標準の仕組みを使って対応させる Ripple Effectはバックポートされたサードパーティ製のLibraryがいくつか存在しますが、今回はそのようなLibraryは使わないで

    Material Design度が高まるRipple Effect対応 - Qiita
  • 【Android】Ripple Effect 実装について - Qiita

    はじめに Androidでタッチフィードバックと言ったらRippleですね 発表されてから時間も立っていますが、Lolipop 〜 Oreoまで(Pieでも多分OK)で動くように対応したのでまとめます。CardViewを使った実装、色の指定について記載します。 クリックした後に灰色の波紋のように広がるタッチフィードバックがRippleです サンプルコード これから紹介するデザインを実装したコードです。この記事に記載していない詳細についてはこちらから確認できます。 動作環境 compileSdkVersion 25 minSdkVersion 19 targetSdkVersion 25 supportLibraryVersion 25.4.0 対象OS Lolipop 〜 Oreo(Pieもおそらく大丈夫)

    【Android】Ripple Effect 実装について - Qiita
  • AlarmManagerを使って一定時間後に処理を行う | mokelab tech sheets

  • Android の AlarmManager を改めて整理してみる - Qiita

    AlarmManager といえば、Android において文字通りアラームやリマインダを実装する際に用いたり、或いはバックグラウンドで定期的に行いたい処理のスケジューリングに用いたり(こちらは JobScheduler に取って代わられた感じですが)、割りと使用する機会が多いものです。 同時に、Android歴史において、バージョンアップに伴って挙動が変更になったりと、割りと罠も多い存在だったりします。 挙動が変更になるたびに「変更への対応方法」を記した記事が出回るので助かるのですが、「今からAndroidアプリの開発を始めます!」という人にとってはそれらを全部拾い集めるのも大変でしょうし、ここらで AlarmManager の変化の歴史と共にざっくりまとめてみたいと思います。 そもそも登録内容が永続化されない罠 AlarmManager を使い始めて最初に面らう点。 AlarmMa

    Android の AlarmManager を改めて整理してみる - Qiita