ここの人々が彼または彼女の日常生活(別名仕事に関係ない)を助けるのにどんな小さなスクリプト/プログラムを書いたかと思っているだけです。
何が起こっても、画期的かどうか。今のところ、距離と経過時間を指定してランニングペースを計算する小さなpythonスクリプトです。
ここの人々が彼または彼女の日常生活(別名仕事に関係ない)を助けるのにどんな小さなスクリプト/プログラムを書いたかと思っているだけです。
何が起こっても、画期的かどうか。今のところ、距離と経過時間を指定してランニングペースを計算する小さなpythonスクリプトです。
回答:
私のo
鍵は、私のラップトップに落ちました。そのため0
、互いに200 MS 以内のo
2つの0
キーストロークをとして、互いに700 MS以内の2つのキーストロークをとして置き換えるプログラムを書きました。0
、残りを無視。なので、キーボードを交換する前にラップトップを使うことができました。
ワオ; これがとても人気があるとは知らなかった:p
方法について-マイクロソフトはフックと呼ばれる素敵な小さなAPI機能を公開しています。
そのフックを使用します。私が必要なことを行う「フィルター」を書くことができました(ヒント:コールバックウィンドウで1を返すと、キーストロークが処理されません)。
これについて私が実際に知っている理由は、キーロガーを書いていたからではなく、Synergyにプログラムスマイラーを書いたからです。、少し前です。
はい。英数字のキーをランダムな英数字のキーと交換する別のプログラムを書いたのは確かです。本当に面白かったです:D
コードはもうありませんが、おそらく、私が書いた最も有用なスクリプトは、信じられないかもしれませんが、VBAでした。私は彼をチェリーボムと呼んだほど短いヒューズを持っていた迷惑な同僚がいました。顧客が電話をかけて立ち上がってキュービクルの壁を越えて私に怒鳴り始め、私の生産性と士気を損なうと、彼はしばしば腹を立てます。
私はいつもMicrosoft Excelを開いていました。彼がこれを行うと、私はAltキーを押しながらExcelにタブ移動し、ツールバーに桜の爆弾の画像が表示された新しいアイコンが表示されました。私は慎重にそれをクリックします...そして何も起こりません。
しかし、その直後に電話がかかってきて、「ええ、ええ、それは悪いことです。私は調べた方がいいです」のようなことを言います。それから私は起き上がり、チェリーボムに謝罪して立ち去ります。
何が起こったのかというと、NetWareを使用していて、プリミティブメッセージングシステムが組み込まれていました。ボタンをクリックすると、小さなVBAスクリプトが友人にNetWareメッセージを送信し、チェリーボムが再びそこにいたことを伝え、私に電話してください。彼はそれを理解しなかった:)
bashスクリプトが呼び出されたので、私がNディレクトリを/a/very/deeply/nested/path/somewhere
「上」に移動したい場合は、次のように入力できます。up N
#!/bin/bash
LIMIT=$1
P=$PWD
for ((i=1; i <= LIMIT; i++))
do
P=$P/..
done
cd $P
例えば:
/a/very/deeply/nested/path/somewhere> up 4
/a/very>
NBによってgmatt:
上記のすばらしい作業を終えて、bashrcに以下を配置することにより、それをback関数に拡張できます。
function up( )
{
LIMIT=$1
P=$PWD
for ((i=1; i <= LIMIT; i++))
do
P=$P/..
done
cd $P
export MPWD=$P
}
function back( )
{
LIMIT=$1
P=$MPWD
for ((i=1; i <= LIMIT; i++))
do
P=${P%/..}
done
cd $P
export MPWD=$P
}
back
メソッドを組み込んだので、使い切ったときはいつでも簡単に前後に移動できます。これを使用するには、これをbashrcに入れます(たわごとの書式設定について申し訳ありません):function up(){LIMIT = $ 1 P = $ PWD for((i = 1; i <= LIMIT; i ++))do P = $ P / .. done cd $ P export MPWD = $ P} function back(){LIMIT = $ 1 P = $ MPWD for((i = 1; i <= LIMIT; i ++))do P = $ {P%/ ..} done cd $ P export MPWD = $ P}
スーパーリモートリセットボタン。世界の反対側にいるユーザーが早朝にクラッシュする超特殊シミュレーションハードウェアの
ラック(VMEでいっぱいの部屋がGPUよりも少ない時代に遡ります)。ラボに入り、セキュリティを通過するのに1時間かかりました。
しかし、特別なコントローラーに接続したり、ハードウェアを変更したりすることはできませんでした。解決策は、EPSONドットマトリックスプリンターを備えた古いDECワークステーションで、プラスチック定規を紙送りノブにテープで留め、プリンターをリセットボタンの近くに配置しました。
通常のユーザーとしてWSにログインし(rootは許可されず、すべての外部ポートがロックされています)、24の空白行を含むドキュメントを印刷します。これにより、紙送りノブが回転し、ルーラーが超特殊ハードウェアのリセットを押します。
Windows XPでは、C:\でこのコマンドを毎日実行するようにATジョブを設定しました
dir /s /b * > dirlist.txt
これは、Cドライブ上のすべてのファイルの完全パスをリストします。その後、ファイルを見つける必要があるときはいつでも、を使用できますfindstr
。これは、パス全体での正規表現の照合を可能にするため、Windows Explorer Searchを使用するよりも優れています。例えば:
findstr ".jpg" dirlist.txt
findstr /i /r "windows.*system32.*png$" dirlist.txt
これはセットアップするのに非常に高速なソリューションであり、Windowsの新規インストールとインターネット接続がない場合に最適です。
特定のファイルタイプ内でパターンを検索する必要がある場合は、まず確認する必要のあるすべてのファイルをリストしてから、それらのファイル内を検索します。たとえば、画像を反転するJavaまたはPythonプログラムを見つけるには、次のようにします。
findstr "\.java \.py" dirlist.txt > narrowlist.txt
findstr /i /r /f:narrowlist.txt "flip.*image"
デジタルカメラを接続すると自動的に実行されるPythonスクリプトがあります。
カメラのカードからすべての画像をコピーしてバックアップし、Flickrにアップロードします。
Upload -to-Flickrのピースは、uploader.pyから取得されます(クレジットは取得できません)からのものです。
これは、カメラをアンロードするためのPythonコードです。SRCDIRを再帰し、各画像に日時を付けてから、DESTDIRにコピーします。
#!/usr/bin/python
import os
import string
import time
import shutil
###################################################
__SRCDIR__ = "/mnt/camera"
__DESTDIR__ = "/home/pictures/recent"
###################################################
def cbwalk(arg, dirname, names):
sdatetime = time.strftime("%y%m%d%H%M")
for name in names:
if string.lower(name[-3:]) in ("jpg", "mov"):
srcfile = "%s/%s" % (dirname, name)
destfile = "%s/%s_%s" % (__DESTDIR__, sdatetime, name)
print destfile
shutil.copyfile( srcfile, destfile)
###################################################
if __name__ == "__main__":
os.path.walk(__SRCDIR__, cbwalk, None)
私が読んだすべてのWebコミックに行き、新しいコミックをダウンロードするPythonスクリプトを作成しました。私は1日に1回実行するだけで、各サイトに個別にアクセスする必要はありません。/Comics/フォルダーにアクセスするだけです。;)
私の.cmdバックアップスクリプト。それは毎晩私のサーバーで実行され、曜日に応じてバックアップファイルに名前を付けます。1週間分のバックアップにより、私(および私の家族)は何度も救われました。
::バックアップ引数: :: / V検証しますか?(はい・いいえ) :: / R所有者へのアクセスを制限しますか?(はい・いいえ) :: / RSリムーバブルストレージ?(はい・いいえ) :: / HCハードウェア圧縮(オン/オフ) :: / Mバックアップの種類(通常/コピー/差分/増分/毎日) :: / Lログファイルタイプ(f / s / n) :: / D "説明" :: / J "ジョブ名" :: / F "ファイル名" セットローカル ::ネットワークドライブがマウントされていることを確認します コールC:\ bat \ configs \ MapShares-home.cmd 反響する 今日を設定=%DATE:〜0,3% %today%== Monの場合昨日= 0Sunday %today%== Tue set yesterday = 1Mondayの場合 %today%==水が昨日を設定した場合= 2火曜日 %today%== Thuが昨日を設定した場合= 3Wednesday %today%== Friが昨日= 4Thursdayに設定されている場合 %today%== Satが昨日= 5Fridayの場合 %today%== Sunが昨日を設定した場合= 6Saturday configsDir =%〜dp0を設定します storePath = C:\ mybackupsを設定します ::(例:月曜日のCファイル) set title =%yesterday%バックアップセット echo%DATE%%TIME%%title%> "%storePath%\%yesterday%_backup.log" CALL BackupConfigs.bat ::新しいBKFファイルを作成 C:\ WINDOWS \ system32 \ ntbackup.exe backupを呼び出します^ "@%configsDir%\ daily.bks" ^ / V:はい/ R:いいえ/ RS:いいえ/ HC:オフ/ M通常/ L:s ^ / D "%title%" ^ / J "%title%.job" ^ / F "%storePath%\%yesterday%.bkf" ^ >>「%storePath%\%yesterday%_backup.log」 echo%DATE%%TIME%Completed >> "%storePath%\%yesterday%_backup.log" 「%storePath%\%yesterday%.bkf」「V:\ Backups \ NEPTUNE」をコピーします コールC:\ bat \ clean-temps.bat defrag -v C:> "%storePath%\%yesterday%_defrag.log" ::バックアップディレクトリを表示 / D "C:\ bat \ Backups \" checkbkf.batを開始します ENDLOCAL ::一時停止
「backup.sh」は、ディレクトリの内容をタール化し、それを私のGmailアカウントに送信します。
私はチームで毎日使用されるスクリプトを作成しました。以前はIntelで働いていたときに、アクセスデータベースと通信してレジスタ情報のダンプを取得するアプリがありました(チップセットの検証に取り組みました)。(SQLクエリから)この情報を取得し、CSVファイル、HTMLファイル、およびExcelファイルにダンプします。プロセス全体はほぼ2時間かかりました。冗談抜き。なぜそんなに時間がかかったのか分かりません。昼食の1時間前に起動し、昼食に行ってから戻ってきます。
これを行うにはもっと良い方法が必要だと思いました。レジストリデータベースを管理しているチームと話し、SQLコードを入手しました。次に、データを取得してCSV、HTML、およびExcel形式で出力するPerlスクリプトを作成しました。ランタイム?約1〜2秒。速度が大幅に向上しました。
また、2006年にイラクでの展開中にいくつかのスクリプトを書きました(9年間国家警備隊に勤務しました-12月に出ました)。私たちは、ADAで作成され、元はDOSで実行されていた、ULLS-G(Unit Level Logistics System-Ground)と呼ばれるこの古いアプリを使用しました。彼らは、Windows XPのコマンドシェルで実行する場所までハッキングしました。このシステムにはマウスインターフェイスがありませんでした。すべてがキーボード経由で、バッチ機能はありませんでした。それでは、すべての車両オペレーターのライセンスを印刷したいとしますか?ええと...私たちの部隊には150人の兵士がいたので、長い時間がかかりました。誰もが新しい車両で資格を取得し、それをすべてのオペレーターの資格に追加したいとしますか?あなたはそれを一つずつしなければなりませんでした。
SAGEデータベース用のODBCドライバー(ULLS-Gが使用したもの)を見つけることができたので、SAGEデータベースと通信できるPerlスクリプトを作成しました。つまり、1時間以上かかっていたことが、今では数秒しかかかりませんでした。レポート用にスクリプトとドライバーも使用しました。私たちは毎朝大隊までのすべての情報を報告しなければなりませんでした。他のユニットは、毎朝手で情報を書き込みます。私は、同じドライバーを使用してSAGEデータベースと通信し、Excelスプレッドシートをそのように更新したExcelマクロを作成しました。これは、私が書いた中で最も複雑で唯一の Excelマクロです。彼らが私に陸軍表彰メダルを与えたので、それは報われました。ええ、私はperlスクリプトを書いたことで軍にメダルをもらいました:)何人がそれを言えるでしょうか?;)
ゲームサイトKotaku.comから明らかに愚かな[*]コメントを削除する Greasemonkeyスクリプト。
[*]一般的な綴りの間違い、大文字の表記、「LOL」の過度の使用、および同様のヒューリスティックによって識別されます。
alias dir = 'ls -al'は、私のお気に入りのお気に入りのスクリプトです。
スレッド化されたHTMLスクレイパーで、サイトからシリーズ/映画のすべての利用可能な字幕をダウンロードするのは面倒です(ダウンロード後、広告を表示するには、検索後に4回ほどクリックする必要があります)。今、私はただ検索基準を入れてダウンロードを押します。
ドラッグ&ドロップによるファイル名の一括変更。
何年も前に、RegExを受け入れ、それに応じてファイル名を置き換える小さなVBScriptを作成しました。その上に一連のファイルまたはフォルダーをドロップするだけです。それは何年にもわたって非常に役立つことがわかりました。
gist.github.com/15824(コメントはドイツ語です)
5秒ごとにgoogle.comのDNSを検索し、成功した場合は1回、失敗した場合は2回のビープ音を鳴らす、Quick and Dirty Pythonスクリプト。
これは、非常に不安定なホームネットワークで生活しなければならなかったときに書きました。それは私が最初に部屋の向こう側の机の下に頭を向けていたときでも、ネットワークケーブルでいっぱいの両手と口の中に懐中電灯を持ち、ネットワークの状態を即座に知ることができました。
これは、数か月前の私のブログへの投稿から、私が最近の記憶でせき止めた中で最高の小さなハックの1つにクールだと思っていたという考えから抜け出しました。私はそれをここで完全に引用します:
==================
私はバッシュで多くの時間を費やしています。初心者にとって、bashはほとんどのUNIXマシンで見つかるシステムであり、ありがたいことに、いくつかのウィンドウとそこにあるすべてのMacです。一見すると、それはコマンドラインインターフェースにすぎないため、忘れたいと思う時代錯誤のようなものを見るほとんどのユーザーのレーダーからは外れています。
私はbashでほぼすべてを行います。コマンドラインからメールを読みます。そのため、マークアップしたメールを避けています。ディレクトリを移動し、ファイルを編集し、毎日のソースコードのチェックアウトと配信に従事し、ファイルを検索し、ファイル内を検索し、マシンを再起動し、コマンドラインからWebページをときどき参照します。bashは私のデジタル存在の中心です。
問題は、一度に6つのbashウィンドウを開く傾向があることです。今日の仕事では、1人がWebサーバーを実行し、もう1人がデータベースをいじって、3番目、4番目、5番目がさまざまなファイルを編集していました。どうして?ファイル名でオブジェクトの場所を知りたい場合に、このようなアーカイブを検索できると便利です。
これを行うと、コントロールバーに "bash"という名前のウィンドウがたくさん表示されます。あなたがそれらの1つだけを持っている場合はこれで問題ありませんが、6つ以上の場合は苦痛です...そして他に20件のことが起こっています。1つのキーボード/マウスペアの同時コマンドの下に3つのモニターがありますが、それでもまだ必要性を感じています。これらの各ウィンドウには、いくつかのbashターミナルが開いています。
だから私はこれをまとめました。まず、これらの行を.bash_profileに配置します。
export PROMPT_COMMAND='export TRIM=`~/bin/trim.pl`'
export PS1="\[\e]0;\$TRIM\a\]\$TRIM> "
trap 'CMD=`history|~/bin/hist.pl`;echo -en "\e]0;$TRIM> $CMD\007"' DEBUG
私はこのすべてがどのように機能するのか、そしてそれがどのように設定されているのかについて正確に何十ものパラグラフを書きましたが、あなたは本当に興味を持っていません。私を信じて。...
その3行目に「CMD = ; echo ...」を実行した理由については、本の全章があります。多くの人々(他のドメインがホストされているbluehostを含む)はまだ使用しており、トラップの処理方法に大きなバグがある古いバージョンのbashを使用しているため、このままです。現在のbashバージョンを使用していて、調査をしたい場合は、CMDを削除して$ BASH_COMMANDに置き換えることができます。
とにかく、最初に使用するスクリプトはこちらです。マシン名とディレクトリを含む適切なプロンプトを作成し、適切な長さに切り詰めます。
============trim.pl===========
#!/usr/bin/perl
#It seems that my cygwin box doesn't have HOSTNAME available in the
#environment - at least not to scripts - so I'm getting it elsewhere.
open (IN, "/usr/bin/hostname|");
$hostname = <IN>;
close (IN);
$hostname =~ /^([A-Za-z0-9-]*)/;
$host_short = $1;
$preamble = "..." if (length($ENV{"PWD"})>37);
$ENV{"PWD"} =~ /(.{1,37}$)/;
$path_short = $1;
print "$host_short: $preamble$path_short";
==============================
このブログ投稿の上部には、「@ ENVを介してHOSTNAME環境変数を使用しなかったのはなぜですか」などの愚かな質問をする前に、今すぐ読むべき警告があります。シンプル:試してみたすべてのシステムで機能しないため。
さて、本当にクールな部分です。.bash_profileオプションの3行目を覚えていますか?
trap 'CMD=`history|~/bin/hist.pl`;echo -en "\e]0;$TRIM> $CMD\007"' DEBUG
コマンドプロンプトとウィンドウタイトルの両方に出力され、以前と同じコンテナーでtrim.plスクリプトの出力をダンプしていますが、今度は入力したばかりのコマンドが追加されます。これが、すべてを.bashrcで実行したくない理由です。実行したスクリプト(私のマシンでは、manはその1つです)は、すべての行でこの処理をトリガーします。人の出力は、ここで行っていることによって深刻に文字化けします。ターミナルをうまく操作しているわけではありません。
入力したばかりのコマンドを取得するために、bashの履歴を取得して少しダイスアップします。
===========hist.pl============
#!/usr/bin/perl
while (<STDIN>)
{
$line = $_
}
chomp $line;
$line =~ /^.{27}(.*)/;
print $1;
==============================
だから今、私はバジリオンウィンドウを実行していて、彼らは次のようなことを言っています:
castro: /home/ronb blog
Ron-D630: /C/ronb/rails/depot script/server
Ron-D630: /C/ronb/rails/depot mysql -u ron -p
Ron-D630: /C/ronb/rails/depot find . > /C/ronb/system.map
Ron-D630: /C/ronb/rails/depot vi app/views/cart.html.erb
Ron-D630: /C/perforce/depot/ p4 protect
Ron-D630: /C/perforce/depot/ p4 sync -f
Ron-D630: /C/perforce/depot/
画面の下部にある幸せな小さなバーから、一目でどちらがどちらであるかがわかります。また、PS1を設定したので、コマンドの実行が完了するとすぐに、コマンド名は、trim.plの出力だけに置き換えられます。
更新(当日):これ(.bash_profileエントリ)は、.bashrcで試したときにあらゆる種類の地獄を築きました。.bashrcは、bashを言語として呼び出すたびに非インタラクティブスクリプトによって実行されます。私が人間を使おうとしたときにこれを押しました。あらゆる種類のゴミ(私の.bashrcの完全なテキストとエスケープ文字)が、manページの上部に表示されました。すべてをまとめたら、コマンドラインですばやく「man man」を呼び出してこのgemをテストすることをお勧めします。
カスタムガベージを.bashrcから取り出して、それが属する場所に置くときがきたと思います...
ちなみに、私はこのプロセスのある時点で「マントラップ」と入力していることに気づきました。
私の以前の勤務地では、オフィスアワーはばかげていました。それはソフトウェア会社でした、そして私の上司は吸い込まれました。午後5時30分頃(家に帰る時間になったとき)に仕事を渡してくれ、午後11時(理想的な生産時間を過ぎる)まで仕事を終わらせてくれました。または、彼はまだ進行中のコードに迷惑な問題を見つけるでしょう。
そこで、午後7時から午後8時までのランダムな時間にコンピューターの電源をオフにするバッチファイルとスクリプトを作成しました。私が何時間も滞在し、シャットダウンプロセスを中止する必要がある場合に備えて、1分のタイマーがありました。
しかし、午後5時前にデスクを離れたので、チェックアウト時間の前後にがらくたにしたい場合、彼は私を預けることができませんでした。もし彼が私の机に来て私のコンピューターを見ると、彼は私がまだパントリーエリアの近くか近くのミニマートにいてチップや何かをつかんでいると思います。でも、もしその辺りがオフだったら、彼は私の携帯電話に電話してオフィスに戻るように言ったでしょう。
また、私が怠惰に感じて午前10時または午前11時頃に散歩したい場合に備えて、マシンのBIOSを午前8時または午前9時頃にオンにするようにスケジュールしました。私が机に向かって歩いているのを見つけたら、彼は「朝どこにいましたか」と尋ねます。そして私は「私はマーケティングチームとのミーティングにいた」と言います。または「私は朝食を食べに出ていた」。
愚かな犬
私はテクノロジーサマーキャンプで働いていましたが、週末にグループの子供たちごとにこれらの記事を作成しなければなりませんでした。子供たちはそれを受け取り、記念品として持ち帰ります。通常、これらは一連の一般的な文と1〜2個の個別の文で構成されていました。私はこれらの記事の1つを缶詰の文章のバンクから作成するpythonスクリプトを作成し、ユーザーが中央にいくつかのカスタマイズされた文章を追加できるようにしました。これは私と私が秘密にした他のカウンセラーのために膨大な時間を節約しました。自動化されていても、パーソナライズされた部分により多くの時間を費やすことができたので、私たちの記事は多くの「正直な」ものよりもよく見えました。
#! /bin/bash
# check to see if site is up
# if it is, don't worry
# if it's down, restart apache after get a process listing
#
# v.1 Warren M Myers - initial stab
# 31 Aug 06
#
ERRCOD='7'
WHEN=`date +%d%b%y`
REPT="~/psaux.$WHEN.txt"
STARS='********************'
curl -I http://www.shodor.org > /var/tmp/curlret.txt
if [ "$?" = "$ERRCOD" ]; then
# return was unable to connect to host: save ps -aux; mail report
ps -aux > $REPT
echo $STARS
echo 'curl return results'
echo
cat curlret.txt
echo
echo $STARS
echo 'ps -aux results'
cat $REPT
echo
echo $STARS
echo 'restarting apache'
/etc/init.d/apache2 restart
echo 'apache restarted'
echo
echo "ps -aux results saved in $REPT"
fi
rm -f /var/tmp/curlret.txt
"そのボタンをたくさん押す"コントロールボックスをオンラインゲームに追加するGreasemonkeyスクリプト。
これをオートロード関数として使用します。「mycd」と入力するだけで、頻繁にcdするディレクトリのリストが表示されます。私がたまたま知っているなら、「mycd 2」のように言うことができます。リストにディレクトリを追加するには、「mycd / tmp / foo / somedirectory」と入力します。
function mycd {
MYCD=/tmp/mycd.txt
touch ${MYCD}
typeset -i x
typeset -i ITEM_NO
typeset -i i
x=0
if [[ -n "${1}" ]]; then
if [[ -d "${1}" ]]; then
print "${1}" >> ${MYCD}
sort -u ${MYCD} > ${MYCD}.tmp
mv ${MYCD}.tmp ${MYCD}
FOLDER=${1}
else
i=${1}
FOLDER=$(sed -n "${i}p" ${MYCD})
fi
fi
if [[ -z "${1}" ]]; then
print ""
cat ${MYCD} | while read f; do
x=$(expr ${x} + 1)
print "${x}. ${f}"
done
print "\nSelect #"
read ITEM_NO
FOLDER=$(sed -n "${ITEM_NO}p" ${MYCD})
fi
if [[ -d "${FOLDER}" ]]; then
cd ${FOLDER}
fi
}
写真を撮った日付に基づいてディレクトリに写真を保存したい。したがって、メモリカードをスキャンして写真を探し、写真の日付に基づいて必要なハードディスク上にフォルダを作成し、それらをコピーするプログラムを作成しました。
rsyncを使用してローテーションバックアップを実行するシェルスクリプト。また、他のバックアップ前のアクティビティ(おいしいブックマークのダウンロードなど)をサポートする任意の子プログラムの実行もサポートしています。