ブックマーク / developers.srad.jp (25)

  • JavaScriptで「(a ==1 && a== 2 && a==3)」の結果を真にする手法が議論される | スラド デベロッパー

    JavaScriptで「(a ==1 && a== 2 && a==3)」という式の結果を真にするにはどうすればいいのか、StackOverflowで議論されている。 「aは1でもあり2でもあり3でもある」という状況は一見矛盾しているが、たとえばaをオブジェクトとし、文字列として評価されるごとに異なる結果を返すようにすれば簡単に実現できる。また、ホワイトスペースではなく文字として認識されるハングルの半角スペースを使って同じように見えるが実際は異なる3つの変数を定義するもの、getterを利用するものなど、さまざまな方法が提案されている。

  • 駐車違反切符16万枚の取り消しに成功したチャットボット弁護士 | スラド デベロッパー

    米国・スタンフォード大学の学生が作成したAIチャットボット弁護士「DoNotPay」が駐車違反切符16万枚を取り消させることに成功しているそうだ(VentureBeatの記事、 The Registerの記事、 The Guardianの記事、 Neowinの記事)。 DoNotPayはチャット画面風のユーザーインターフェイスで法律相談ができる無料のWebサービスだ。最初のバージョンは昨秋ロンドンでサービスを開始し、ニューヨークでも今春サービスを開始した。シアトルでも今秋サービス開始予定だという。 ユーザーは切符を切られた際に駐車禁止の標識がはっきりと認識できる状態だったか、駐車場の広さは十分だったかといった簡単な質問に答えるだけで、取り消し可能かどうかをDoNotPayが判定し、手続きの方法などを教えてくれる。これまでに受けた相談は25万件とのことで、取り消しに成功した16万件は全体の6

    taka-oh
    taka-oh 2016/07/03
  • スラドに聞け: 2015年版「読んでおきたいコード」は? | スラド デベロッパー

    他人の書いたコードを読む能力はプログラマーにとって重要とされており、コードリーディングに関する書籍も出版されている。 しかし、オープンソースプロジェクトは数多く、読み慣れない素人には良いコードの選定すら難しい。プログラマーごとにターゲットが異なるため、読んで役立つコードも人それぞれだろう。今年はGoogleAIAppleSwiftMicrosoftのVisual Studio Codeなど、新たにオープンソース化された注目すべきプロジェクトもある。 そこで、あなたの知っている領域において「今年はこのコンパイラのコードがすごかった」「このJavaScriptフレームワークはコードが綺麗」「これはモダンなCコードを書くためにぜひ読むべき」と思うコード・プロジェクトについて語っていただきたい。 2015年と銘打ってはいるが、今年に限らず、少し早めの年末大掃除のつもりで記憶をさかのぼってい

  • プログラミング言語がソフトウェアの品質に与える影響 | スラド デベロッパー

    あるプログラミング言語がその仕事に適したものであるかといった議論は論争に発展しがちだ。時には宗教戦争の様相を呈することがあるものの、プログラミング言語がコーディングプロセスだけでなく完成した製品の特性にも影響することは多くの方が同意するところだろう。これについてカリフォルニア大学デイビス校のコンピューターサイエンス研究者らが、プログラミング言語のソフトウェア品質に与える影響(PDF)に関する調査結果を発表した。研究ではGitHubの729プロジェクト(17言語、29,000人が書いた8,000万行のソースコード、150万コミット)を分析。大きなサンプルサイズを利して混合研究法のアプローチをとり、複数の回帰的モデリングやテキスト解析を組み合わせて静的型付けと動的型付け、型付けの強弱といったプログラミング言語の特徴がソフトウェアの品質に与える影響を調べた。異なる手法による調査結果を組み合わせ、

    プログラミング言語がソフトウェアの品質に与える影響 | スラド デベロッパー
  • プログラミング言語間の相互運用性を高める取り組み | スラド デベロッパー

    ストーリー by hylom 2013年12月06日 15時24分 C/C++となにか、なら話は早いのだが 部門より 近年では目的に応じてさまざまなプログラミングが使われるようになっている。そのような状況の下、異なる言語間での相互運用性を高める取り組みが注目されているようだ(家/.)。 複数の言語を組み合わせてアプリケーションを作るというのは最近では珍しくないが、その場合、「親」となっているプログラムから「子」となっているプログラムをサブルーチンとして呼び出す、という形が一般的だ。しかし、たとえばC++Javaの組み合わせのように、言語の組み合わせによってはさまざまな障害があり、これが難しい場合がある。 ACM Queueに掲載されている元ネタの論文では、障害の一例としてオブジェクトモデルの違い、メモリモデルの違い、例外処理やエラー処理の違い、ミュータビリティや「副作用」の有無などが挙

  • プログラマーがするべきことで最も大変なことは? | スラド デベロッパー

    ソフトウェアの開発は簡単な仕事ではないが、プログラマーに言わせれば(少なくともQuoraやUbuntu Forumsでの不満の声を聞く限り)、プログラミングの仕事にはコードを書くことよりも面倒なことが多いようだ。これらのフォーラムでのコメントからITworldのPhil Johnson氏がまとめたところによると、開発者にとって最も大変なのは変数などに名前をつけることだったという。/.erにもソフトウェア開発者が多いと思われるが、仕事で最も大変なのはどんなことだろうか。 変数やプロシージャ、関数、クラスなどに名前を付けること 家族や友人技術系でない同僚などに自分の仕事を説明すること 完成までの所要時間を見積もること 周囲の人々とうまくやっていくこと ほかの人が書いたコードに関する仕事をすること 自分が必要ないと思う機能を実装すること ドキュメントを書くこと テストを書くこと ソリューション

  • JavaScriptでプログラミングできる小型マイコン | スラド デベロッパー

    Tesselという、JavaScriptでプログラミングできる小型マイコンが登場する模様。現在開発段階で、近々発売する予定という。Raspberry Piに代表される小型・低価格のマイコンが最近話題になっているが、TesselはJavaScriptでプログラミングできるのが特徴。開発環境としてNode.jsベースのシェルやJavaScript用ライブラリが提供されるそうで、またNode.js向けのパッケージシステムであるnpmに対応、多くのパッケージがTessel上で動作するという。 説明を見る限り、Node.jsのランタイムが載っている模様。また、加速度センサやMicroSDカード、RFID、オーディオ、Bluetooth、サーボモーター、リレー、温度/湿度計などのセンサを搭載した拡張ボードおよびそれらを操作するためのライブラリも提供されるという。Arduinoと互換性を提供するモジュー

  • Subversion 1.8リリース、まだまだSVNは死なない | スラド デベロッパー

    先日、Subversion 1.8がリリースされた(SourceForge.JP Magazine記事)。これにあわせて、家/.で「Subversion 1.8がリリースされたけど、まだGitを使うの?」という記事が上がっている。 近年ではGitユーザーが増えているが、Subversionはまだ死んだわけではなく、開発はそれなりに活発に続いている。 Apache Software Foundationの前チェアマンであるGreg Steinによると、「Subversionは1TBのリポジトリがあったとしても、その一部だけをチェックアウトして作業できる。(Gitのように)リポジトリのフルコピーは必要ない」「Gitの場合、リポジトリがたくさん乱立する傾向があるが、Subversionは基的に1つだけだから管理もバックアップもやりやすい」などとSubversionのメリットを主張。 また、S

  • アジャイルがユーザーや顧客企業に嫌われる理由 | スラド デベロッパー

    アジャイル」なソフトウェア開発がここ数年注目されているが、アジャイルなソフトウェア開発において特徴的な反復 (イテレーション) や柔軟性といった手法は、顧客やユーザーにとってはまとまりも終わりも無い開発手法に見えるという。これを取り上げたITWorldのブログが家/.にて話題になっている。 アジャイル開発を好む開発者は多い。イテレーションはユーザのニーズを的確に反映できるだけでなく、対応すべき要件があがってきたとしても問題が大きくなる前に対処することが可能だ。各要件に一つずつ取り組むため、きちんとフィードバックを受けて問題が無いことを確認してから次の要件に着手することもできる。 しかしユーザにとってみると、アジャイル開発は不透明で分かりづらく、故に不安を生んでしまうもののようだ。まるで開発プロセスが無く、開発方針も定まっていないように見えると、アジャイルプロジェクトに加わったとある人は

    アジャイルがユーザーや顧客企業に嫌われる理由 | スラド デベロッパー
  • Webサービスの「α版」はいつリリースすべきか | スラド デベロッパー

    個人製作のWebページだと「工事中」のコンテンツがあっても許される雰囲気があるが、(個人製作の)Webサービスだと「すべての機能が完璧に動作する事」を前提に公開しなければ叩かれるような雰囲気がある(叩かれるという言い方はおかしいかもしれないが)。もちろん「β版」として公開するのもアリかもしれないが、その「β版」もほぼ完成している事が前提になっている。 ただ、個人的には(予期できない)重大なバグ等を防ぎたいので「α版」としていくつか未完成でも公開したいと思ってる。問題なのは、「どのぐらいの完成度でα版リリースをすべきか」という事である。 見た目はあまり気にせずに最低限の機能が動く状態でリリースした方がいいのか、多少荒削りでもデザインを整えてから公開すべきか、/.J 諸兄方の意見を聞きたい。

  • Visual Studio Express 2012では一般的なWindowsアプリ開発ができない | スラド デベロッパー

    @ITにて、次期版のVisual StudioであるVisual Studio 2012の無償版「Visual Studio Express 2012」について、変更される仕様が紹介されている(デジタルアドバンテージ・一色政彦氏による記事)。 これによると、Visual Studio Express 2012ではWebアプリとMetroアプリの開発しか行えないという。今後もWindows Formアプリケーションなどに取り組む場合には、いまのうちにVS 2010 Expressをインストールしてキープしておくのがよろしいのではないかということだ。 Visual Studio Express 2012では「Visual Studio Express 2012 for Windows 8」および「Visual Studio Express 2012 for Web」の2エディションのみが用意さ

  • 標準的なソフトウェア開発環境って? | スラド デベロッパー

    自分はソフトウェア開発に携わってまだ5年であり、今までずっと同じ会社に務めてきた。最近転職したのだが、転職先の開発プロセスの技術の低さに驚いている。 今までの会社では継続的インテグレーション、単体テスト、オートメーション化された回帰テスト、業界標準の(オープンソースではない)バージョンコントロールが採用されていた。また自分もJavaのリリースなど最新のツールを身につけるよう努力していた。しかし現在の会社ではこれらは全て無く、コンパイルされたファイルはそのまま番環境に手動で移され、バージョンコントロールはされていない。使用しているツールはもうサポートが切れて5~7年になる上、Java自体も古い。 このような開発環境はよく見受けられるようなものなのだろうか?最新技術に遅れないようにする環境の方が多いのか、それとも何とかやっていけるならそれで良いという方が多いのだろうか?現在の仕事は業界に入っ

  • 最も影響を受けたプログラミング本は? | スラド デベロッパー

    もし時間を遡り、開発の世界の入り口に立ったばかりの自分に一冊のを勧めるとしたら、どんなにするだろうか? この質問は Q&A サイト StackOverflow では 2008 年に立てられて以来、歴代第 2 位の人気トピックとなっている。このサイトでは 「Code Complete 2nd Edition (邦題: Code Complete 第 2 版―完全なプログラミングを目指して)」「The Pragmatic Programmer: From Journeyman to Master (邦題: 達人プログラマーシステム開発の職人から名匠への道)」「Structure and Interpretation of Computer Programs (邦題: 計算機プログラムの構造と解釈)」「The C Programming Language (邦題: プログラミング言語C)」「

  • 「もっとも高給」といわれるHFTプログラマになるにはどうすればよい? | スラド デベロッパー

    近年金融取引の世界では、コンピュータを使って高速で取引を繰り返す高頻度取引(HFT)が普及している。HFTシステムに携わるエンジニアは「プログラマとしては最高レベル」という高収入が得られるそうで、技術者からの関心も高まっているらしいのだが、家/.にて、このHFTシステムのエンジニアになるにはどのような知識が必要か、ということが話題になっている(Application Development Trends)。 まず、最も必要とされるプログラミング言語はC言語であるという。C言語と並んで使用頻度の高いのはJava、Matlab、Cuda。CudaはGPUで並列処理アルゴリズムをプログラミングするのに使用されるが、その頻度がますます高まっているという。またOSに関しては、「無駄を省いたカスタム仕様のLinuxが基」であるとのこと。 また、必要とされるスキルとしては「C#やJavaと併せてデー

  • プログラミングに最適な椅子は? | スラド デベロッパー

    家/.に「Best Chair For Desktop Coding?」という質問が寄せられている。プログラミングやネットサーフィンで座りっぱなしの夫に、椅子をプレゼントしたいのでオススメを教えて欲しい、との内容である。 座り心地のいい椅子といえば、人間工学に基づいた「アーロンチェア」などが思い浮かぶが、結構な値段がするのが難点だ。 /.Jの皆様はこうした場合、どのような椅子をオススメしますか? また、普段はどんな椅子で仕事/勉強/ハックしてますか? 普通のオフィスチェアを座り心地良くするための工夫、などもあれば是非、お願いします。

  • Cは既に時代遅れ? | スラド デベロッパー

    「どうも周知徹底が不足しているようなので再度のお願いとなりますが、C死ね。」などと言われるように、いつの間にかCは忌避すべき言語に成り下がったらしい。 /.J読者諸兄にはCでのプログラミングに造詣が深い方も多数いらっしゃると思いますが、どうでしょうか? 個人的には、自分が気に入らないからといって他人の志向をとやかくいうのもどうかと思いますが、COBOLerとかFORTRANマンセーな方々の意見も聞いてみたい。

  • 引き継いだプログラム、「自分のもの」にするには ? | スラド デベロッパー

    この仕事に就いてから、比較的大きなプログラム (3 ~ 4 万行程度) を何度か引き継いだことがある。元々の開発者らは、自分の書いたコードでもあるし (その仕様や動きを) よく理解していたが、自分はそこまでとは言えない。実際、プログラムに修正を入れる際は修正そのものよりも修正を入れるべき正しい位置を探すのに多くの時間がかかってしまう。 このように引き継いだプログラム、どうやったら理解できるようになるのだろうか ? 元の開発者らほどこのプログラムを「理解」できないのは自分の力量の問題ではなく、仕方がないことなのだろうか ? 家 /. には「一から作り直したくなるだろうが、それは絶対に避けるべきだ。汚く見えるコードにも、全て理由があったりするものだ。開発時の相談や議論、意思決定までの過程にいなかったからコードが理解できないのである。一から作り直しても、そういった問題への理解は深まったりはしな

  • 最も危険なプログラミングエラーTop 25 | スラド デベロッパー

    ストーリー by hylom 2009年01月14日 17時04分 やはりよく言われている問題が多い、 部門より CWEとSANSが共同で「最も危険なプログラミングエラーTop 25」を取りまとめ、発表した。 このリストはSymantecやMicrosoft、米国国土安全保障省の国家サイバーセキュリティ部門、また日の情報処理推進機構(IPA)など、国際的かつ多岐に渡る組織の協力を得て作成された。パフォーマンス上の問題やセキュリティ上の脆弱性、またサイバー犯罪の原因となり得るプログラミングエラーのうち、特に頻度と危険性の高いとされるものが25点挙げられている。 エラーは大きく「コンポーネント間のコネクションが適切に保護されていない」「危険なリソースマネジメント」「不備のある防衛策」の3種類に分類され、それぞれのエラーには簡単な説明と対処法などが記述されている。挙げられているエラーは「入力デ

  • いいコーディング規約、悪いコーディング規約? | スラド デベロッパー

    格的なソフトウェア開発企業で働くとき、最初の頃にまずコーディング規則や慣習などのガイドラインに目を通したかと思う。基的なガイドラインとして、gotoは原則使用禁止だとか、インデントにはスペースではなくタブを使用すべきであるとか、またはその逆などがあっただろう。ひょっとしたらcontinue禁止や、複数リターン値禁止など、ちょっと変わってるように思える慣習や、あまり直感的とは言えないルールといったものもあったかもしれない。 可読性を高めたり、メンテ性を向上させるには、どんな規約が有効だっただろうか? ドキュメント上では一見良さそうに見えたが、実際はイマイチだったものなどあるだろうか? /.J諸氏が実践してきたコーディング規約で特に有効だったのはどんなものだろうか? 逆に規約のせいで問題が起きてしまったケースなどあるだろうか? 他にも、使える「自分ルール」などもあれば是非。

  • スラッシュドット ジャパン | Linus曰く「Subversionは史上最も無意味なプロジェクト」

    Mona OS開発者ひげぽん氏のブログ記事で今さらながら知ったのですが、かのリーナス・トーヴァルズが、「Subversionは史上最も無意味なプロジェクト」とこきおろしていたそうです。 元ネタはリーナス氏が半年ほど前にGoogleで行ったgitに関する講演(YouTubeビデオ)で、satologのブログ記事によれば ぼくの CVS への憎悪が意味するのは、ぼくが Subversion のことを史上最大の無意味なプロジェクトだと見ているということだ。Subversion がしばらくの間スローガンにしていたのに、「ちゃんとした CVS」みたいなのがあったよね。そんなスローガンでスタートしたら、もうどこにも行くところがない。CVS をちゃんとすることなんて不可能だからだ。 と述べていたとのこと。「CVS が好きな人は精神病院に行ったほうがいい」「tarボールとパッチのほうがはるかに優れたソース

    taka-oh
    taka-oh 2007/12/04
    バージョン管理システムについての議論