Skip to main content >閉じる
![アバストが自社のマシンコード逆コンパイラをオープンソース化](https://cdn-ak-scissors.b.st-hatena.com/image/square/cc5222285797e88ae88e38b810e5d2a35ab6c61a/height=288;version=1;width=512/https%3A%2F%2Fcdn2.hubspot.net%2Fhub%2F4650993%2Favast-blog%2FAvast_blog_retargetable_decompiler.jpg%3Fwidth%3D900)
GitHubは、オープンソースで公開している開発者向けのエディタ「Atom」で複数のプログラマがリモートでコードの編集を行える追加機能「Teletype for Atom」のベータ版をリリースしました。 Teletype for AtomをインストールしたAtomでは、Portal(ポータル)と呼ばれる機能が利用できるようになります。自分のAtomをポータルにすることで、ほかのプログラマを自分のAtomエディタに招待できるようになり、複数のプログラマで同一のコードが編集可能になります。 複数のプログラマが自分のエディタから同時にコードを編集可能 以下は公開されたデモ動画から、「Teletype for Atom」の動作を紹介しましょう。 Atomエディタ右下のポータルボタンをクリック。ID番号が生成されます。
いろいろな環境で動くプログラムでは互換性のためにその場しのぎのことをしないといけないことがよくあるけど、歴史が積み重なってくると、アドホックな技の上にアドホックな技が積み上がる喜劇的な状態になることがある。こういう問題は認識するのは簡単だが直すことは誰にもできない。まさに僕がそのような体験をしたのでちょっと説明したい。 僕は仕事としてオープンソースのlldというリンカを書いている。リンカというのはコンパイラが生成したバイナリファイルをつなぎ合わせて最終的な実行ファイルやDLLを作成するプログラムで、知らない人も多いと思うけど、何をコンパイルしても最後にはリンカが動いている。lldは既存プログラムより何倍も速くてビルドが早くなるというので最近は結構人気が高まっていて、FreeBSDなどのいくつかのOSが全面的にスイッチしようとしたり、あるいは大規模プロジェクト(Chromeや、どうもFire
最近golangでCLIツールを作っていたのだけど、Linuxのお作法とかいまいち分かっていなかった。そこでそのあたりのことが学べそうな「ふつうのLinuxプログラミング」を読んだ。 ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミングの王道 作者:青木 峰郎SBクリエイティブAmazon この本はLinuxにおいてC言語でプログラミングする方法を、Linuxでの重要な概念も含めて教えてくれる本。この本を読めばとりあえずC言語を使ってLinux用のプログラムを書き始めることが出来るようになりそうだった。 それでC言語を使わない場合でも役に立つの?ということだけど、非常に役立ちそうで面白かった。なぜなら、単なるプログラミングの方法を教えてくれるだけではなくて、 Linuxの重要な考え方をファイルシステム・プロセス・ストリームという概念にまとめて教えてくれ
初めに LinusによるGitのinitial commitのREADMEの訳です。 社内のSVNからの移行を促すために資料を整備していたのですが、SVNでやっていたことを移し替えたりコマンドを覚えたりするより内部構造を知ったほうが早いことに気づきました。 それで、gitの内部構造についての解説資料を色々見ていたのですが、データ構造については原作者のこのREADMEに言い尽くされている気がします。のみならず、gitを使うものが抱くべき精神性のようなものが示されており、深い感銘を覚えました(ヒャッハー)。 README: ”GIT - 馬鹿コンテンツトラッカー” コミットメッセージ:git, 地獄からきたインフォメーションマネージャ gitの意味 "git" は何を意味することも出来る、お前の気分次第だ。 3文字で、発音可能で、実際のUNIXシステムで共通コマンドとして使われていないものであ
Kotlin が Android の公式言語になることが Goole I/O 2017 で発表されました。 Java プログラマが Kotlin を始めることがこれから多くなると思うので、 Kotlin をスムーズに始められるように次の 3 点についてまとめます。 Javaとほぼ同じところ 新しい考え方が必要でつまづきがちなところ Kotlinならではの便利なこと すべてを一つの投稿にすると長くなるので連載形式とし、本投稿では最初の「Javaと同じところ」について説明します。 Kotlinって何? 本題の前に、 Kotlin について簡単に説明します。 まずは↓の Android のコードを見て下さい。これは Android Studio が生成するテンプレートの Kotlin 版です。 Android アプリ開発者であれば、初見でも概ね何をしているのかわかると思います。 class Ma
[速報]「Kotlin」がAndroidの正式な開発言語に。開発元のJetBrainsとGoogleが「Kotlin財団」の設立も計画。Google I/O 2017 Googleが5月17日(日本時間5月18日未明)から開催中の年次イベント「Google I/O 2017」。初日の基調講演では、新サービス「Google Lens」の紹介や「Google Home」の日本発売、「Cloud TPU」や「TensorFlow Lite」の発表、新興国向けのエントリクラスとなる「Android Go」の発表などが相次いで行われました。 しかしその中でも会場からもっとも大きな歓声があがったであろうと思われるのが、プログラミング言語の「Kotlin」がAndroidの正式な開発言語になると発表されたときでした。 「Kotlinは完全にAndroidのランタイムと互換性があり、既存のコードとも相互運
プログラミングでよく使う英単語のまとめ【随時更新】 随時追加、整理していきます。 名前をつけるときには、名詞、動詞の違い、複数形、過去形などに注意しましょう。 オブジェクト指向では、クラス名は名詞、メソッドは動詞とします。 使ってはいけない言葉 get / set アクセサ (getter / setter) やプロパティによく使われている。 それ以外に使うと混乱を招くのでよくない。 get は軽量な処理と考えるので、中に重い処理は書いてはいけない。 単純な取得/設定以外で使いたくなったら他の言葉を考える。 load, save, commit, store, enable, disable, fetch, register, configure, add, etc... check 意味が広すぎて何をしているかわからない。 できるだけ別の言葉を使う。 具体的に何をしているかに分解して考え
pythonの環境構築について "python 環境構築"でググると20万件くらいヒットしますが、割と内容が古いです。 タイトルにはデータサイエンティストと書いてありますが、データサイエンティスト以外にもanacondaはおすすめです。 2.x or 3.x? 3.xは動かないライブラリが多いので2.x推奨 > 3.xで動かないライブラリがある、くらいまで来ました。 easy_installでpipを入れて、setuptoolsも入れて、でもwheelというのもあって... > 古いです。 virtualenv 必須 > そんなこともないです。 winでは64bitは不具合が多いので32bit推奨 > 古いです。 winでは非公式バイナリからダウンロードしてインストール > お世話になりましたが、最近は使っていません。 2016版 OS毎python環境構築法決定版 Windows: an
Pythonプログラマーというか、元々Python(ときどきR、C言語)で数値シミュレーションをしていた学生が、就職してRubyでWeb開発を行うにあたって勉強したことを書き連ねていくだけの記事です。 もし自分と同じような立場の人(これから後輩としてもどんどん増えていくかも!)がいたら、「ここを押さえておけばRubyは問題なく書けるよ」と教えられるように書いておきます。というのも、レビューを行っていた先輩とのプログラミングのスキルとの開きがあり、先輩も私も「どこが分かってないのか説明できない」状態になってしまってお互いに困ってしまった経験があるからです。 RubyとPythonはよく似ているのですが、思想や見た目で違う部分が多く、片方を勉強するともう片方の理解も深まります。 たまに2ちゃんねるのオカルト板である「見たことある世界によく似た異世界に迷い込んだ」みたいな感覚で、なかなか面白い経
(訳注:2016/9/28、頂きましたフィードバックを元に記事を修正いたしました。) C言語の規格のリビジョン間には微妙な違いがありますが、このことを利用して「C90、C99、C11のどれとしてコンパイルされたかどうかにより、違う挙動をする」というプログラムを作ることが可能です。同様に、C++はほぼC言語の上位互換ですが、C言語とC++で違った結果を生み出すプログラムも存在します。 これは2015年の International Obfuscated C Code Contest (難読Cコード・国際コンテスト)への Don Yangの投稿 において、 C89、C99、C11、C++98、C11のどれとしてコンパイルされるかによって異なる出力を生成するプログラムを作成するのに使われています。C90の場合は、以下のような星形を出力します。 **************************
平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識
こんにちは。エクセルソフトの田淵です。 Xamarin バッドノウハウ大全 from Yoshito Tabuchi の解説です。 はじめに 盛大に Xamarin を dis っていますが、私は Xamarin が大好きです。確かに不安定ですしバグも多いですが、そのバグを潰してくださるアーリーアダプターの方がいなければ、安定したプロダクトにはなりません。今、既に、そしてこれから Xamarin を触ってくださる方に最大級の感謝を送りつつ、各バッドノウハウの詳細を解説していきます。 また、バッドノウハウということで脅しに掛かっていますが、Xamarin を使っている方々は凄い方ばかりなので、触ってみて困ったら Twitter で #JXUG と #Xamarin のタグを付けてツイートしていただくと誰かが拾って回答してくれます。また、facebook のグループ に投げてもらうのもよいです
2016/9/10(土) の「わんくま 横浜勉強会 #08」で @chomado さんと発表したセッションです。 解説エントリーも併せてご覧ください http://ytabuchi.hatenablog.com/entry/2016/09/12/003000 Xamarin.Forms が大変なのは View の調整です。すぐに動くものが必要なプロトタイプやモック、View 要件を調整できる自社アプリやクライアントさんとちゃんと話せて要件を調整できる受託案件などであれば、Xamarin.Forms の利点を最大限生かした効率のよい開発ができます。 私個人としては、地雷を踏む可能性が高くても Xamarin.Forms が大好きなのでこれからも愛を込めてガンガン推していきたいと思います。(Xamarin が Xamarin.Forms を推しているので、どんどん使いやすくなっていくはずという
JavaScriptをOCamlから生成するトランスパイラ「BuckleScript 1.0」、米ブルームバーグがオープンソースで公開。TypeScriptよりタイプセーフかつ効率的で高速と 金融情報などの提供を行っている米ブルームバーグは、OCamlのコードからJavaScriptのコードを生成するトランスパイラ「BuckleScript 1.0」をオープンソースで公開しました。 BuckleScriptはTypeScriptやBabelJSなどからインスパイヤを得て開発されたと説明されていますが、最大の特徴はTypeScriptなどが独自の構文を備えているのに対し、BuckleScriptは既存の言語であるOCamlを採用しているところです。 OCamlはオブジェクト指向型と関数型の両方の特長を備え、特に海外では金融系システムの開発でよく使われているプログラミング言語です。 Buckl
機械学習といえば「Python」です。なぜPythonなのかというと、数値演算や機械学習に関するライブラリがたくさん揃っているからだそう。行列がとても扱いやすいNumPy、グラフ描画が簡単にできるmatplotlib、機械学習のscikit-learnなどなど… 機械学習ではこの3つのライブラリを大いに活用します。 まずは今回はscikit-learnを使った機械学習ではかなり重要になってくる「NumPy」を学びます。 私はPythonもはじめてなのでまずはPythonの概要を把握しつつ、「100 numpy exercises」というNumPyを基礎から学べる問題集を写経して学習したいと思います。 環境構築 まずは環境構築です。詳しくは下記のリンクに飛んで確認いただきたいのですが、Macの場合は、Pythonのバージョン管理システムである「pyenv」と、分析環境を構築するのに便利な「A
Joel Spolsky氏の新サービス「HyperDev」ベータ公開。アカウント不要、Git不要、サーバ申込不要、OSやミドルウェア不要。超簡単なフルスタックのWebアプリ開発環境 元マイクロソフトのプログラマで、エンジニアのコミュニティStackOverflowを立ち上げたジョエル・スポルスキー(Joel Spolsky)氏が、新サービス「HyperDev」をベータ公開しました。 HyperDevはWebブラウザから使えるWebアプリケーションの統合開発環境です。バックエンドにはNode.jsも立ち上がっています。 スポルスキー氏はHyperDevの特長を次のように説明しています。 アカウント作成不要 Git不要、そのほかのバージョンコントロールも不要 ネームサーバなどの操作不要 ホスティングへの申し込み不要 サーバのプロビジョニング不要 OSやLAMPやNode.jsサーバなどあらゆる
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く