サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
blog.hybridism.com
Railsアプリケーションで定期的に何かを実行したいという場合、wheneverを使用するという選択肢があるかと思います。wheneverは要するにLinuxのcronの設定をrubyから行えるというもの。environment.rbの設定も引き継いだrubyスクリプトを実行できるので、DBへのアクセスも簡単。 まずはインストール。 sudo gem install whenever Railsディレクトリで wheneverize を実行すると ./config/schedule.rb が作成される。このファイルにcron設定を書く。 schedule.rbの中には書き方のサンプルがあるので多分大丈夫。たとえば sample.rb ってスクリプトを1時間毎00分に動かしたいときは every 1.hours, :at => 0 do set :output, {:error => 'lo
RubyでZipを作成する方法はざっと調べた限りziprubyとrubyzipあたりが使われているっぽい。とりあえずziprubyをチョイスして、ディレクトリを含めた圧縮を実装。 def make_zip(target, zippath) Zip::Archive.open(zippath, Zip::CREATE) do |ar| if File.directory?(target) target = (target + "/").sub("//", "/") Dir::chdir(target) do Dir.glob("**/*") do |file| if File.directory?(file) ar.add_dir(target+file) else ar.add_file(target+file, file) end end end else ar.add_file(tar
随分と前になるけれど、mixiが個人にもAPIを公開しました。 iPhoneアプリの場合だと、公開された中のmixi Graph APIを使用する形になり、このAPIが提供する機能を使用するにはmixiに対してOAuth認証を行って、アクセストークンを取得する必要があります。 で、アクセストークンを取得するまでを作ってみた。githubに公開してます。 mixiOAuth ユーザに認可させる部分はUIWebViewで。UIWebViewのDelegateでレスポンスのURLをつかまえて、クエリからAuthorization Codeを取り出します。そしてHTTPURLConnectionでPOSTし、レスポンスをjson frameworkを使ってparse、リフレッシュトークンとアクセストークンを取得します。 コードはなるべく"iOS開発におけるパターンによるオートマティズム" (木下
GoogleのAPIを使用するためにClientLogin処理、C2DMを使ってみたいのでRubyで実装してみました。ClientLoginで取得するのは他のサービスを使うために必要なAuthのパラメータなので、それを取り出す。 require 'net/https' require 'uri' auth_hash = Hash.new url = URI.parse("https://www.google.com/accounts/ClientLogin") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true https.verify_mode = OpenSSL::SSL::VERIFY_PEER https.verify_depth = 5 req = Net::HTTP::Post.new(url.path)
REXMLを使用してXMLを作成するとき、Elementに子ノードを追加する場合にadd_elementを使用し、同時に属性値も追加していた。しかし何故か&がエスケープされなかった。’はエスケープされるけど。以下コードで調べてみたら、add_elementで属性追加するとエスケープされないけど、add_attributeで追加するとエスケープされることが分かった。 require 'rexml/document' value = "<>&\'\"" sample = REXML::Element.new("a") sample.add_element("b", {"attr" => value}) c_tag = sample.add_element("c") c_tag.add_attribute("attr",value) xml = "" formatter = REXML::For
以下自己責任で。 1. アプリケーションフォルダの「EMOBILE HW Utility」を削除 2. /Macintosh HD/システム/ライブラリ/Extensionsフォルダの「HuaweiDataCardDriver.kext」を削除 3. /Macintosh HD/システム/ライブラリ/Modem Scriptsフォルダの – 「HUAWEI Mobile Connect – 3G Modem」を削除 – 「HUAWEI Mobile.ccl」を削除 4. /Macintosh HD/ライブラリ/Modem Scriptsフォルダの「HUAWEI Mobile Connect – 3G Modem」を削除 5. /Macintosh HD/ライブラリ/StartupItemsフォルダの – 「HWNetMgr」を削除 – 「HWPortDetect」を削除 6. /Macin
さくらVPS借りました。ある意味仕方がなく。色々使う前にいじってみるさ。 いじりはこの辺を参考にしました。 ・ユーザの作成 さくらVPSを契約すると30分ぐらいでrootのパスワードが送られてくるので、さくらVPSのコントロールパネルでリモートコンソールを選び、rootでログイン。まずはユーザを作成する。 $ adduser hogehoge $ passwd hogehoge ・SSH接続のセキュリティ向上設定 SSHの設定は /etc/ssh/sshd_config を編集する。 SSH接続先ポート番号を変更。デフォルトは22だよ。 Port 4569 SSHのプロトコルを2だけ許可。 Protocol 2 SSH接続でrootに直接ログインすることを禁止。 PermitRootLogin no リモートコンソールはシリアルだから関係ないよ。 これでひとまず保存して終了。sshdを再起
便利なscreenについてメモ。 起動後の操作コマンドは以下 ・Ctrl-a c : 新しいウインドウを作成する ・Ctrl-a n : 前方のウインドウに移動 ・Ctrl-a p : 後方のウインドウに移動 ・Ctrl-a w : ウインドウのリストを表示する。 ・Ctrl-a ” : スクリーン上にウインドウのリストを表示する。リスト上はjとkで移動し、Enterで選択。 ・Ctrl-a A : 現在のウインドウに名前をつける ・Ctrl-a k : 現在のウインドウを消去 ・Ctrl-a d : スクリーンからdetachする detach(スクリーンから離脱)しても、reattach(復帰)できます。 ・screen -list : 現在起動中のscreen一覧を表示する ・screen -r (プロセス名) : 指定のscreenへ復帰する screenが固まってしまったら! ・
とあるシステムで親プログラムからforkで子プログラムを起動させ、頃合いをみて親プロセスがその子プロセスをkillするという処理を実装した。しかしpsコマンドでプロセスの状態を確認すると、子プロセスで動作させたと思われるプログラムが defunct .. defunct .. defunct .. と残りまくり。これは何かと訪ねたら調べてたら、どうやら親プロセスでforkして子プロセスを起動すると、親にてProcess.waitを呼ばないとゾンビ(defunct)になってしまうとのこと。 これを回避するには子プロセスに対してProcess.detachを行ってから、Process.killを行う。 例えば pid = fork do 何か処理 end Process.detach(pid) Process.kill(:INT, pid) な感じ。
ちょっとずつエンジンかかってきた
このページを最初にブックマークしてみませんか?
『blog.hybridism.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く