タグ

ブックマーク / gihyo.jp (48)

  • 第1回 PHPでアセンブラを作ってみた | gihyo.jp

    最近、FPGAなどを使ってCPUを自作する記事を目にするようになりました。CPUの命令コードは数字ですから、アセンブラソースを1行1行手で命令コードに変換していく(ハンドアセンブルする)ことになります。昔は、このためにコーディング用紙というものが売っていました。 最近のPICなどのマイコンには開発環境が用意されており、アセンブラなど必要な道具はすべて入っています。ですから、用意されているアセンブラを使うことがあっても、アセンブラを自分で作るという機会はなかなかないと思います。ここでは、アセンブラを作ってみることにしましょう。 PHPでアセンブラを作る アセンブラをどの言語で作るかですが、今回もPHPを使ってみました。フォーム上にソースを入力すると、バイナリが出力されます。対応しているのはPIC16Fの命令セットで、今回のアセンブラプログラムを使って開発環境で作ったものとまったく同じバイナリ

    第1回 PHPでアセンブラを作ってみた | gihyo.jp
    korin
    korin 2021/04/20
  • 第46回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[7] | gihyo.jp

    前回は、4.14カーネルでcgroup v2に導入されたスレッドモードの概要を説明しました。今回は、実際にスレッド化サブツリーを作成して操作を行ってみましょう。 今回の実行例は、デフォルトではcgroupをマウントしないPlamo Linux 7.2環境で試しています。systemdを採用したディストリビューションの場合、カーネルの起動パラメータにcgroup_no_v1=allと指定して、すべてのコントローラがcgroup v2から使えるようにするとcgroup v2の機能が試しやすいでしょう。 そして、今回の実行例はいずれもrootユーザで実行しています。 それでは早速、cgroup v2のツリー中でどのようにスレッド化サブツリーを作り、操作していくのかを見ていきましょう。 スレッド化サブツリーを作るには2つの方法があります。 cgroup.typeファイルへの書き込みによるスレッド化

    第46回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[7] | gihyo.jp
  • 第606回 オープンソースな多機能測定器Pocket Science LabをUbuntuで使う | gihyo.jp

    Pocket Science Lab(PSLab)はオシロスコープやマルチメーター、ロジックアナライザー、シグナルジェネレーターなど多くの機能を備えた、スマートフォンからも操作できるシングルボードコンピューターです。今回はこのPSLabをUbuntuから操作してみましょう。 オープソースハードウェア「Pocket Science Lab」 Pocket Science Lab(PSLab)の最大の特徴のひとつが「オープンソースハードウェア」を謳っていることです。つまりソフトウェアだけでなくハードウェアやファームウェアの仕様やコードも公開されているため、ユーザーが必要に応じて改造・拡張しやすい作りになっているのです。 機能としてはオシロスコープやマルチメーターだけでなく、ロジックアナライザーやシグナルジェネレーター、電源などとして利用できますし、I2C/SPI/UARTの口もあるのでそれらの

    第606回 オープンソースな多機能測定器Pocket Science LabをUbuntuで使う | gihyo.jp
    korin
    korin 2020/02/13
    OSSだったのか。スイッチサイエンスで売ってたな。OSSとかPythonとか書いてあると、意味もなく?欲しくなるのどうにかならないだろうか。
  • 2019年11月29日 Linux 5.5のステージングエリアにIoT用Wi-Fiドライバ「WFX」が追加 | gihyo.jp

    Linux Daily Topics 2019年11月29日Linux 5.5のステージングエリアにIoT用Wi-Fiドライバ「WFX」が追加 Greg Kroah-Hartmanは11月27日、カーネル開発者向けメーリングリスト「LKML」に対し、次期LinuxカーネルLinux 5.5におけるステージングエリアの変更内容について投稿した。 [GIT PULL] Staging / IIO driver patches for 5.5-rc1 :Greg KH このリストの中には米テキサスに拠を置くファブレスメーカーSilicon Labsが開発するWi-Fiトランシーバ「WF200」ファミリをサポートするドライバ「WFX」が含まれている。WF200ファミリは低消費電力でセキュアなIoTネットワークを提供する製品群で、とくに混み合った複雑なRF(Radio Frequency)環境にお

    2019年11月29日 Linux 5.5のステージングエリアにIoT用Wi-Fiドライバ「WFX」が追加 | gihyo.jp
    korin
    korin 2019/12/01
  • 2019年6月14日号 Ubuntuにおける「バージョンによる脆弱性判定」の正しいアプローチ、WSL2のプレビュー開始 | gihyo.jp

    Ubuntu Weekly Topics 2019年6月14日号Ubuntuにおける「バージョンによる脆弱性判定」の正しいアプローチ、WSL2のプレビュー開始 Ubuntuにおける「バージョンによる脆弱性判定」の正しいアプローチ ubuntu-serverメーリングリストにおいて、少しだけ興味深いやりとりが投稿されています。 投稿者の困っている状況を要約すると、「⁠とあるUbuntu環境でセキュリティスキャナを実行したところ、すでにUbuntuでは対処済みになっている特定の脆弱性が存在するものと指摘された。おそらくパッケージのバージョン番号文字列だけを単純にチェックし、upstreamで『解決された』とされるバージョン未満であることが原因だと思うが、コンプライアンス上、カウンターになる十分な証拠が必要になっている」というものです。これは非常によくあるシチュエーションで、原因はセキュリティ

    2019年6月14日号 Ubuntuにおける「バージョンによる脆弱性判定」の正しいアプローチ、WSL2のプレビュー開始 | gihyo.jp
    korin
    korin 2019/06/14
  • 第484回 UbuntuとOpenNebulaでKVMとLXDのインスタンスを起ち上げてみよう | gihyo.jp

    詳細や他に使用できる属性についてはOpenNebula 5.4のリファレンスを参照してください。 作成した定義ファイルをonevnet createコマンドの引数に指定して登録します。 $ onevnet create mynetwork.txt ID: 0 onevnet listコマンドでネットワークリソースを確認できます。 oneadmin@mogami:~$ onevnet list ID USER GROUP NAME CLUSTERS BRIDGE LEASES 0 oneadmin oneadmin mynetwork 0 br0 0 イメージとテンプレートの登録 仮想マシンのディスクイメージファイルと、構成情報をまとめるテンプレートを登録します。 OpenNebulaには仮想マシンイメージの共有や配布を行うMarketPlaceというサービスが用意されています。デフォルトで

    第484回 UbuntuとOpenNebulaでKVMとLXDのインスタンスを起ち上げてみよう | gihyo.jp
  • はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリングまで一気にわかる

    2016年3月18日紙版発売 2016年3月18日電子版発売 五味弘 著 B5変形判/272ページ 定価2,838円(体2,580円+税10%) ISBN 978-4-7741-8035-9 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle 楽天kobo honto 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 Lisp・関数型プログラミングのメリットとは何か――副作用のないプログラミングがまず挙げられます。これでバグが圧倒的に少なくなります。さらにはコードの再利用がしやすいこと,並列処理が得意であるということも。それだけではありません。動的な型付けも特徴ですし,ラムダ計算もクロージャも,さらにはオブジェクト指向までできます。数十

    はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリングまで一気にわかる
  • 第6回 vimの基礎を見直す:聞いたら一生の宝,プログラミングの基礎の基礎 |gihyo.jp … 技術評論社

    みなさんこんにちは、teratail開発チームの橋です。 みなさんはシステム開発をする時、どのようなエディタを利用しますか。 もちろん開発するシステムの規模や言語、プラットフォームによって選択するエディタは変わってきます。VisualStudioやAndroidStudio, Xcode, Eclipse, IntelliJ IDEAなどのIDE(統合開発環境)や、Atom, Sublime TextなどのGUI上で動くテキストエディタ, そしてUNIX系OSで広く利用されているVimEmacsなど、さまざまなものがいろいろな場面で選択されています。 日は、特にUNIX系OSで設定ファイルの編集からシステム開発まで利用されるテキストエディタであるvimについての基礎を見なおしてみましょう。 vimの実際の操作方法や便利なプラグインなどは別の記事に任せるとして、稿ではどういう時にどう

    第6回 vimの基礎を見直す:聞いたら一生の宝,プログラミングの基礎の基礎 |gihyo.jp … 技術評論社
  • 第24回 デザインパターン(2) Iterator | gihyo.jp

    導入 Processingがバージョン3.0(2015年8月29日現在3.0b5)となり、IDEのインタフェイスが大きく変更されました。シンプルで使いやすいように感じます。アイコンも洒落た感じになりました。ただ、テキストエディタの挙動がもう少し洗練されていなかったり、機能面で後方互換ではない部分があります。新しいバージョンのProcessingでは、これまでに作成したProcessingのsketchが動かない場合があるということです。ここで学習する範囲では大きな問題はないと考えていますが、記憶にとどめてください。 Processing3についてのダイアログ 閑話休題。今回はGoFによるデザインパターン23種類のうち、おそらく最も用いられているパターン、Iteratorを学習します。1つひとつ、順に要素を取り扱うという、コンピュータの最も得意とする機能を、上手におこなう目的でまとめられたパ

    第24回 デザインパターン(2) Iterator | gihyo.jp
  • 第11回 設定ファイルの次世代フォーマットUCL | gihyo.jp

    プラットフォームへ、大きく変わる/etc/たち FreeBSDではシステムの設定ファイルは/etc/へ、サードパーティ製ソフトウェアの設定ファイルは/usr/local/etc/にインストールされる仕組みになっています。/etc/以下を調べればそのシステムがどういった動きをするかわかります。設定ファイルはソフトウェアごとに用意されていて、そのフォーマットもソフトウェアごとにさまざまです。 この状況は少しずつですが変わり始めています。早ければ11系のリリース時から、大きな阻害要因がない限りは12系や13系では/etc/以下の設定ファイルは大きく異なるものになっているかもしれません。 この動きの動機は、FreeBSDがサーバオペレーティングシステムから、さまざまなシステムの「プラットフォーム」としてのソフトウェアとして性格を変えてきていることにあります。FreeBSDが登場した20年以上前、F

    第11回 設定ファイルの次世代フォーマットUCL | gihyo.jp
  • 第372回 Ubuntu Makeで簡単にAndroid開発環境を構築する | gihyo.jp

    Ubuntu 15.04のリリースノートにも記載があるように、今回のリリースの新機能の1つにさまざまなアプリやWeb開発を行う開発者向けツールである「Ubuntu Make」の機能強化があります。今回はこのUbuntu Makeを使って、Ubuntu上でAndroid Studioをインストールする方法を紹介します。 なぜUbuntu Makeなのか 読者のほとんどの方はご存知だとは思いますが、Ubuntuは6ヵ月ごとにリリースを行っています。また、一度リリースを行うと、一部の例外パッケージを除きそのリリースにおけるソフトウェアは同じメジャーバージョンを使い続けることになります。このため、5年サポートを行うLTSで提供されるソフトウェアは、5年間同じバージョンになります[1]⁠。 このポリシーはシステムの安定性を維持する上では重要ですが、開発環境として考えたときにツールやライブラリが古くな

    第372回 Ubuntu Makeで簡単にAndroid開発環境を構築する | gihyo.jp
  • 第25回 cron周りのベストプラクティス(2) | gihyo.jp

    前回の(1)はこちらから。 プロジェクトcronを利用する 筆者は普段ゲーム開発のサーバサイドを担当していますが、プロジェクトによってはバッチサーバのcrontabが100行を超えることもあります。イベント、ランキング処理、監視、集計、バックアップ、リカバリ処理などをしっかりやろうとすると、どうしてもそれくらいになってしまいます。 100行とはいかなくても、プロジェクトで使うcrontabの行数が膨らんでくると、サーバで直接crontabを編集することは管理上現実的ではありません。 crontabの記述とリポジトリ管理 では実際のプロジェクトcrontabをどのように管理していけばよいのでしょうか。筆者は次の方針を立てています。 crontabの記述にゆるやかな規約を設け、リポジトリ管理する crontabの自動テストを行う crontabの反映方法をなるべく自動化する crontab

    第25回 cron周りのベストプラクティス(2) | gihyo.jp
  • 第184回 アナログシンセサイザー・ソフトウェアamSynthで音作り | gihyo.jp

    暑い夏には? 筆者の周りも遅ればせながら、夏番となりました[1]⁠。強烈な直射日光を前に、部屋にこもらざるを得ない方もいるのではないでしょうか。室内でできる有意義な行為として知られていることのひとつに、シンセサイザーによる音作りがあります。夏ですし、涼し気なサウンドを合成するのも一興ではないでしょうか。きっとご近所さんも、普段はおかしな音ばかりだしているのに今日はいいわねぇ、素麺の一杯でも差し入れしようかしら、と感心してくれるに違いありません。 …というわけで、筆者の担当回はこれから数回にかけて、Ubuntuで使うことのできるソフトウェアシンセサイザーを扱っていきます。 ソフトウェアシンセサイザーとは シンセサイザーとは、電気工学的な技法を利用して音を合成するもの一般を指します。身近な楽曲に利用されているような狭義のシンセサイザーから人間の音声合成をするもの、かたや玄関のアラームまで、幅

    第184回 アナログシンセサイザー・ソフトウェアamSynthで音作り | gihyo.jp
  • 第256回 新春特別企画・Android上でUbuntu…ではなくDebianを使う | gihyo.jp

    明けましておめでとうございます。Ubuntu Japanese Team代表の小林です。このUbuntu Weekly RecipeおよびUbuntu Weekly Topicsの連載が始まって、今月で丸5年となります。読者のみなさま、編集の高橋様、そして執筆していただいた皆さんに感謝しております。今後とも連載をよろしくお願いいたします。 さて、「⁠記念すべき第256回」ということで、「⁠特別企画でもやりませんか」と執筆陣のひとりである柴田さんに振られました。そこで、前からやってみたかった「AndroidでUbuntuを動かすネタでもやるか!」と思って取りかかったのですが…うまくいかず挫折しました。幸いDebianは問題なく動いていますので、今回はそのセットアップ方法を紹介します。root化されたAndroidデバイスが必要となりますので、誰にでもお勧めできる内容ではないかもしれませんが

    第256回 新春特別企画・Android上でUbuntu…ではなくDebianを使う | gihyo.jp
    korin
    korin 2013/01/11
  • Webサービスつくってるけど何か質問ある?―「ボケて」のゆーすけべーと「nanapi」のけんすうが答えました!(前編) | gihyo.jp

    Webサービスつくってるけど何か質問ある?―「ボケて」のゆーすけべーと「nanapi」のけんすうが答えました!(前編) 秋葉原の書泉ブックタワー9Fのイベントスペースにて、11月30日(金)19時より和田裕介さん著『Webサービスのつくり方 ――「新しい」を生み出すための33のエッセイ』出版記念イベント「Webサービスつくってるけど何か質問ある?」が開催されました。この記事ではその内容についてレポートします。開始時刻になっても和田さんが現れないハプニングはありましたが、イベント開始の数分後に和田さんも会場に姿を現し、その後はつつがなく進行していきました。 知り合ったきっかけは1981年生まれの会 イベントには、『⁠Webサービスのつくり方 ――「新しい」を生み出すための33のエッセイ 』著者であり「君のラジオ」や「ボケて」の開発者としても知られるエンジニアの「ゆーすけべー」こと和田裕介さん

    Webサービスつくってるけど何か質問ある?―「ボケて」のゆーすけべーと「nanapi」のけんすうが答えました!(前編) | gihyo.jp
    korin
    korin 2012/12/12
  • 2010年8月27日 ハイスピードネットワーク向けパケットキャプチャ実装ringmap | gihyo.jp

    heads-up 2010Q2 FreeBSD Status Reportが公開されました。報告されている中から興味深い話題を簡単に紹介します。 Packet-Capturing Stack - ringmap ハイスピードネットワーク向けに特化したFreeBSDパケットキャプチャ実装ringmap(Packet-Capturing Stack)の開発進捗が報告されています。ringmapはzero-copy BPFと同じアイディアのもと、共有メモリを活用することでパケットコピーの必要性を極力削減することを目的としたものです。zero-copy BPFとの違いは、ringmapではキャプチャ中のすべてのパケットコピーを排除する点にあります。その間、ネットワークアダプタのDMAバッファはダイレクトりにユーザスペースへマッピングされることになります。 ringmapの機能はlibpcap経由で

    2010年8月27日 ハイスピードネットワーク向けパケットキャプチャ実装ringmap | gihyo.jp
    korin
    korin 2010/08/28
  • 第12回 OSPFのType-2 LSAはなぜ必要か? | gihyo.jp

    今日は、この中のType-2 LSAがなぜ必要なのかについて考えてみたいと思います。 リンクステートの基はType-1 LSA まず、Type-1(Router-LSA)の役割を説明します。 というか、前回のクイズで「A駅は、B駅とC駅に接続している。B駅との距離は…」という情報を例として記載しましたが、これがまさにType-1 LSAです。実際のType-1 LSAには、以下のような情報が含まれています(ここではわかりやすさを優先して大雑把に書いていますので、詳細は他の技術文献等をご参照ください⁠)⁠。 表の脚注 ※「Link ID」と「Metric」は隣接するルータの数だけ繰り返し記載します。 ※「Metric」を距離と訳すのは適切でないかもしれませんが、とりあえず見逃してください。 前回コラムのクイズで登場した線路の例をルータに置き換えると、図1のような感じになります。 図1 図1

    第12回 OSPFのType-2 LSAはなぜ必要か? | gihyo.jp
    korin
    korin 2010/06/05
  • 第118回 UbuntuとEmacsでプログラミングをはじめよう(後編) | gihyo.jp

    今週はEmacsでのプログラミング環境のまとめとして、Emacsでの編集作業に役立つ便利な拡張機能を紹介します。 分岐したアンドゥの履歴を管理する undo-tree エディタにおいてアンドゥ、リドゥはとても便利な機能ですが、アンドゥした後に新しい入力を行うと、リドゥができないというジレンマがあります。以下のようなケースを想定してみてください。 Aを入力する Aの入力をアンドゥ Bを入力する やっぱりAに戻したい <- これはできない このような、ツリー状に分岐する入力の履歴を管理し、任意のバージョンに戻れる機能を提供するのがundo-tree.elです。以下のようにgitをインストールして、undo-treeを入手してください。 $ sudo apt-get install git-core $ git clone http://www.dr-qubit.org/git/undo-tre

    第118回 UbuntuとEmacsでプログラミングをはじめよう(後編) | gihyo.jp
  • 第1回 NoSQL、そしてCassandraとは | gihyo.jp

    NoSQLミドルウェアの特徴をもう少し細かく挙げてみます。分量の都合もあり個別には触れませんが、それぞれのNoSQLミドルウェアで差別化部分に関してはかなり詳細に説明がされていますので、ぜひそちらを参照してみてください。 高速に動作する リレーションモデルではないデータモデル スケールアウト型アーキテクチャ コモディティサーバによって構築される スキーマフリー SPOF(単一故障点)を持たない 自動的に複数台へレプリケーションする イベンチュアルコンシステンシまたは一貫性の選択が可能 SQLのような強力なクエリ言語を持たず、シンプルな問い合わせしかできない Cassandraとは何か NoSQLミドルウェアの筆頭といえばGoogle BigTableやAmazon Dynamoですが、オープンソースの世界でもいろいろなものが出てきています。その中でも最近特に注目を集めているのが、Apach

    第1回 NoSQL、そしてCassandraとは | gihyo.jp
  • 2009年11月17日 Jail仮想環境を1,000個作ってみる方法 | gihyo.jp

    heads-up 1000 Jails blog - Ivan Voras氏がThe night of 1000 jailsにおいて、FreeBSDでJail仮想環境を実際に1,000個生成して試してみる方法を紹介しています。nullファイルシステムでファイルシステムを用意して環境を作っています。 ブログにはその環境を作るためのPythonスクリプトと、実際の動作の様子がOGG THEORA VIDEOで掲載されています。Firefox 3.5またそれ以降のブラウザであれば動画を閲覧できます。 図1 Ivan Voras氏ブログより - FreeBSD Jails 1000動作結果(jails実行例) 紹介されているブログではFreeBSD 8.0で新しく導入されたVimageは試されておらず、またZFSも利用されていません。基的なJailを1,000環境作って動かしてみるという内容にな

    2009年11月17日 Jail仮想環境を1,000個作ってみる方法 | gihyo.jp
    korin
    korin 2009/11/19