はてなキーワード: クエリとは
学歴がよくなくて、就職が困難だったので中小 SIer で働いていた。 (プライム案件を取ってこれる分マシらしい)
レキサルティ、レクサプロ、デパスのお世話になって続けてたけど、結局は薬でどうにかできず、辞めてしまった。
参考程度だけど、未経験の人が 300万 をもらうために、どのようなスキルが必要かを、まとめておく。
ちなみにどれくらいプログラムが書けなかったかというと、競技プログラミングで努力しても AtCoder の黄色になれず青色のままってくらい。
AtCoder でいう、初心者から抜け出せないという、要するにセンスがないということなのだけど、そういう人も居そうなので、参考までに。
未経験のプログラマに対して、これだけ要求されるのだから、未経験の人は覚悟するようにという指針を提供したいので書いた。
基本的に、損害を与えた場合には、それを作業者が補填するという誓約書を結ぶ。
要するに、捨て駒として扱って、失敗したら賠償しろ、という事になる。
このことを認識して、失敗しないように振舞ないと、連帯保証人含めて迷惑をかける事になる。
要するに、低賃金で未経験プログラマを案件にノーリスクで送りこんで、稼ぐための手段です。
基本的に PL (夢想家) → PM (御用聞き) → プログラマ という環境なので、プログラマが自分でディレクションして意思決定する必要がある。
例えば、下請けの場合は、PM の御用聞きの結果の WBS に合わせないと、顧客から DM で 瑕疵担保責任がどうとか言われる。
社内開発の場合は、PL の方から直接、長時間の叱責を受けなくてはならない。
そういう不幸を防ぐためにも、自分でディレクションして、PM の決めた実態を反映していない WBS に合わせて作業するスキルが要求される。
基本的に手戻りは個人の過失になってしまうため、手戻りしないように考え抜いて意思決定をする、というのが重要になる。
これこそ、ガクチカと呼ばれる、頑張れますというスキルなので、学生時代に頑張っておけばよかったなぁ。
こう見せたい、こう表現したい、という事を伝えるには、必然的にデザインの知識が必要になる。
創造的思考とデザインは切っても切り離せない概念で、デザインとは創造なのだから、当たり前である。
ソフトウェアアーキテクチャも、ソフトウェア設計も、コーディングもデザインと言えるかもしれない。
顧客と 1:1 で話す事が DM でもボイチャでも突発的に発生するので、いつ、いかなる時でも論理武装していなければならない。
まぁ、顧客であったり PL であったりはキレるのが仕事なので、それに対して理路整然と説明する必要がある。
なんとなく、では納得しないし、すぐ損害賠償請求とかそういう話にいくので、答えられないと持ち帰りますとお茶を濁して、エマージェンシーになる。
後述する設計能力においても、課題を把握するための言語技術(言語化能力)は重要なファクターだと思う。
C/C++ のシステムプログラムはフレームワークが基本的に無いので、自分で概念を整理して、どのような変更、拡張があるかを考えて設計する必要がある。
この能力が弱いと、手戻りが発生しやすくなり、瑕疵担保責任を問われることになる。
読んだ本の中だと、ボブおじさんの本が、やっぱりしっくりくるなという個人的な感想がある。
UDP で送ってくるデータを受けて 24/365 で停止しない WebAPI への繋ぎ込みという簡単な作業があって、振られた。
リークしてはいけないという事で malloc は禁止で、グローバル変数を利用するという変なルールがあった。
Rust で書けばいいんじゃないかなと思ったけど、Rust 書くのもシンドイし、C/C++ で、しんどくて読みづらいコードを書いた。
あとで保守する人が大変そうだけど、そういうルールを決めたのは PL だしね。
なんか、特殊な PCI Express のカードからベンダーが用意している SDK でデータ引っこ抜いて Web API へつなぎ込む部分をやった。
一応、SDK の使い方をパラ見して 1 日で作ったので、別に負担じゃなかったけど、素人にやらせるんなとは思った。
当たり前だが、DB 作って RestAPI を生やすのは現代のプログラマにとって自然にできなければならない。
なので、新規開発のサブモジュールのバックエンドを任せられた。
だが、ORM の癖を把握したり、発行されるクエリを確認したりするのは、疲れる。 SQL を直書きするのはシンドイ。
結局 SQL を直書きすることにしたけど、あまりいい決断ではなかったと思っている。
それ以外は フレームワーク に乗ってしまっていいので、書き捨てる分には楽だった。
最近だと、TypeScript で Prisma 使うのが、型安全でよさそうだなと思っている。
デプロイを EC2 直でやったり ECS にしたりとしていたので、ベアメタルの知識が必要になった。
要するに systemd のいじり方とか、死活監視の仕方とか。
個人的には、クラウド嫌いなので、ベアメタルの方が安心できる。
Bind で権威DNS を管理して、postfix で絶対止めてはいけないメールサーバを管理するとかもあったけど、出来て当然ではある事だし。
未経験プログラマでも、月単価 100 万以上で顧客に請求してるんだから、会社はそりゃ儲けるだろうと思った。
会社が一人前の経験N年のプログラマといったら、その通りに振舞う必要がある。顧客に責任はないのだから。
当たり前だが、Webディレクション、Webデザイン、Webプログラミング, Webマークアップ は、全て作業者であるプログラマの仕事になる。
個人的には、これが分かれている理由が良く分からないけど、分けたい人がいるんだろう。
デザインで、CSSフレームワークを使うと、その色が出るという事で、全部 CSS は手書きしていた。
tailwind が出た現在では使っていればよかったなと思う。
結局、全く分からない中、手探りでデザインし、コードを書いて、顧客に 1 日 5 ~ 10 回リリースするという行為をした。
顧客は大手企業だったので、自社のエンジニアならもっと出来る、と叱責されまくったけど、だったら自社でやればいいじゃんと思った。
一応、今でもサービスは生きていて、ユニークユーザ数は上がっているらしい。
そして、焼き付け刃だったので、 WAI-ARIA を知らず、アクセシビリティへの配慮が足りない事が問題になってしまった。
これはなんとか保守対応にねじ込めたのでトラブルにならなかったけど、瑕疵担保責任と綱渡りだなと思った。
当たり前だが、リリースサイクルを短くしないと顧客はキレてしまうので、CI/CD を整えないといけない。
今は Github Actions とかあるけど、昔は無くて Bitrise が高いからみたいな理由で Azure Pipelines で CI/CD フローを構築した。
もう Multi Stage Pipeline になってるだろうけど、Release Pipeline が GUI からしか設定できないのが辛みだった。
当然だが、デプロイするためには IaC を整える必要がある。
これを知らずに、コンソールでポチポチしていたので、 IaC 出来てない事がバレた時に色々怒られてしまった。
本来はテストも自動テストを整えて、質保証をしてバグを減らさなければならない。
だが、テストを書くという手間を払えなかったので、人力テストしかできなかった。
一応、リグレッションテストを人力でやりまくったので、バグ発見曲線が結合テストでの IF 不一致しかない、という結果にはなったけど
自動化できれば費用が必要じゃなかったから、怠慢だと、責められてしまった。
未経験でも誓約書を盾に、振られた事全部を出来なくてはならない慣習があるので、プログラマはそんなに良い職業じゃないよ。
甘い考えで、プログラマになろうと思っているのなら、考え直した方がいいです。
書式なしテキストとして貼り付け
「csvを読み込んで~、該当列を指定してsumifs関数を使ったんですけど~、0になるんですよ~」
「ああ、たぶん金額のところがテキストになっているから、csvを読み込みなおして、数値に変換するか、クエリ自体をコピペして別のシートに書式なしテキストとして張り付けて、該当行をvalue関数で変換してからsumifsをつかってやるといいよ」
わたしは聞くに堪えないと思い、説明している最中の同僚の胸倉をつかみ、頬を2回叩いた
「round関数が~」、「マクロで~」、「ピボットを~」、それでも同僚は話すのを止めないので、同僚の髪の後ろの主電源を切ったのち、電源を入れなおす
蛍光灯が明滅し、セミの鳴き声が逆再生され、私の思考も溶けていく
「あたいが読み込まれる~」と新人がつまんねえことを言いながら窓を突き破り、宙へ飲み込まれていく
世界は再起動され、0と1が書き込まれ、新世界が想像されていく
次のツイートにブクマが集まっていたが、論点が整理されていないようなので、主にCookieの出自について記述する。
cookieは命名で失敗し「魔術的な」技術と勘違いされてる。実際はすごくシンプル。①サーバがSet-CookieヘッダでIDを通知する、②クライアントは以降CookieヘッダにそのIDを設定する、③それによりサーバはクライアントを区別できるようになる。ただそれだけ。もったいぶってる説明はほぼ間違ってる。
Cookieという単語に「魔術的な」意味など元々なかったし、本来単なるデータストアである(ゆえにセッションIDも格納できる)。元ツイートの主張はおかしいし、元ツイートが腐しているspeakerdeckの内容はそんなに間違っていない。
結論として、元ツイが「現在のCookie」の話しかしていないから論点がずれている。歴史的なCookieの在り方はデータストアだった。また、現在でも一部でデータストア的に使用されている
なるほどね。それでは1つずつ見ていこう。
現在にフォーカスを当てれば、Cookieは「基本的にセッションIDを格納する場所」と説明すれば良いが(Slideもそう書いてるよ?)、元々はデータストアである。元ツイは歴史的ファクトと現代的実装のスタンダードを混同しているように感じる。2022年に「Cookieっていうのはー、ユーザ名とか個人情報を保存しておける便利なデータストアだよ」っていうと単なるやべー奴だが、1997年から2000年ごろまでは普通にそういった実装がなされていた。性善説の時代だったのである。
「嘘だろ」と言われそうなので、1997年のRFC2109を引用する
https://datatracker.ietf.org/doc/html/rfc2109
POST /acme/shipping HTTP/1.1 Cookie: $Version="1"; Customer="WILE_E_COYOTE"; $Path="/acme"; Part_Number="Rocket_Launcher_0001"; $Path="/acme" [form data]
普通にユーザー名とか買い物かごの中身をCookieに保存している。今この実装をする奴はヤベーが、1997年はそういう時代だったのである。
Cookie: $Version="1"; session_id="1234"; session_id="1111"; $Domain=".cracker.edu"
セッションIDの例もあるが、なんと数字4桁である。今こんなことをしたら確実に徳丸本の角で頭を殴られる。当時のインターネットがいかに性善説の上に成り立っていたか分かるだろう。
この主張も誤りである。例えばja.wikipedia.orgでは、アカウント名や利用者のおおよその住所などをCookieに仕込んでいる。セキュリティ的にザルだと思うなら、ぜひ直接殴り合って欲しい。
元ツイではMagic Cookieを「魔術的なクッキー」と解釈している(なんでも魔法のようにできる多機能な……って感じ?)ようだが、ここでいうMagicとは魔術のことではないだろう。Magic NumberとかMagic WordのMagic(利用者が理解していなくても有効なもの)と考えた方が意味が通る。これはMagic Cookieの語源となったfotune cookieの語義に通じるところもある。
fortune cookieとは。文字が書かれた紙片を封入した焼き菓子である。HTTP Cookieはクライアント・サーバとも内容について問わない(紙片に何を書いてもいい)し、捨てても無視しても構わない(食べなくても割らなくても良い)ためにこの名前がついたのだろう。任意の情報をラップしたものというメタファーとして適切に思えるし、Magicという形容詞も適切であると考える。
1つあたり容量が4kBしかないのも可愛らしい。クッキーでいいんじゃないか。逆に何だったら良かったのか。
そんなに間違ったことは書いていない気がするが……。現在ほとんど使われない技術が書いてあったとして、それが何……?とはなる。Slideはaxiosの使い方を示してるだけだし、2年前の記事に対して「情報が古い」ってツッコミも微妙ではある。
結局何に怒って何を否定しているのかよく分からなかった。SunのX端末を使っていたということなので、最近の事情しか知らないというわけでもなさそうなのだが。
ツリーを眺めているとあまり期待はできなさそうだが、元ツイの人はもう少し丁寧な議論をして欲しいところだ。
13 | はてなブックマーク - 人気エントリー - 2008年11月1日 | https://web.archive.org/web/20170815132626/http://b.hatena.ne.jp/hotentry/20081101 | |
14 | はてなブックマーク - 人気エントリー - 総合 - 2010年5月27日 | https://web.archive.org/web/20190522181226/http://b.hatena.ne.jp/hotentry/all/20100527 | |
15 | 【復旧済み】各カテゴリの特集の一覧に、想定とは異なるものが多数表示される不具合が発生しています - はてなブックマーク開発ブログ | https://bookmark.hatenastaff.com/entry/2019/05/10/134428 | 4668551187895269474 |
16 | コメント一覧ページのデザインリニューアルおよびページ内の一部機能の廃止・整理を行います - はてなブックマーク開発ブログ | https://bookmark.hatenastaff.com/entry/2017/08/08/150000 | 4667408485643465858 |
17 | 簡易はてな記法 - はてなブックマークヘルプ | https://b.hatena.ne.jp/help/entry/textformat | 4669405056148061858 |
18 | eidを使えばもっとURLを短くできる | https://anond.hatelabo.jp/20081219194442 | 11362837 |
19 | URLエンコードについておさらいしてみた - Qiita | https://qiita.com/sisisin/items/3efeb9420cf77a48135d | 347680902 |
20 | はてなブックマークのEIDの桁数が激増したのはいつだろう | https://anond.hatelabo.jp/20190127151652 | |
21 | 重複した URL を正規 URL に統合する | Google 検索セントラル | ドキュメント | Google Developers | https://developers.google.com/search/docs/advanced/crawling/consolidate-duplicate-urls?hl=ja | 4694503810869473858 |
22 | Consolidate Duplicate URLs with Canonicals | Google Search Central | Documentation | Google Developers | https://developers.google.com/search/docs/advanced/crawling/consolidate-duplicate-urls | 4695808187685102274 |
23 | URLが複数存在する同一ページでコメント一覧ページが分散する仕様を、統合されるよう変更しました - はてなブックマーク開発ブログ | https://bookmark.hatenastaff.com/entry/2019/02/28/173401 | 4667408469537322306 |
24 | URLクエリパラメータ(クエリストリング)の意味とは。使い方は? 除外はすべき?[第4回][第4回] | Googleアナリティクスとは/衣袋教授のGoogleアナリティクス入門講座 | Web担当者Forum | https://webtan.impress.co.jp/e/2012/04/26/12663 | 351312146 |
25 | 高木浩光@自宅の日記 - はてなブックマークを禁止する技術的方法, 追記, 追記2 (23日) | http://takagi-hiromitsu.jp/diary/20071222.html | 6889081 |
26 | [B! はてな] はてなブックマーク - about:blank | https://b.hatena.ne.jp/entry/s/b.hatena.ne.jp/entry/about:blank | 4707586658055348514 |
27 | おっ - kikuchi1201 のブックマーク / はてなブックマーク | https://b.hatena.ne.jp/entry/2805/comment/kikuchi1201 | |
28 | はてなブックマークされてる不思議なページ | https://rcmdnk.com/blog/2014/02/24/blog/ | 4671123851382313506 |
29 | はてなブックマークの全文検索機能を改善しました - はてなブックマーク開発ブログ | https://bookmark.hatenastaff.com/entry/2015/06/22/114958 | 4667408538793733762 |
30 | はてなブックマークっていつからOR検索できるようになったの | https://anond.hatelabo.jp/20121006222621 | 241122808 |
31 | 知らなくても困らない!はてなブックマークのアレな使い方 - tipos taronga | https://tt.hatenablog.com/entry/2013/11/16/215703 | 4713084010265175938 |
32 | マイホットエントリー機能のご紹介 - はてなブックマーク開発ブログ | https://bookmark.hatenastaff.com/entry/2013/05/08/131308 | 4667408422829508482 |
33 | マイブックマーク検索の機能を強化し、検索結果の並び替えや絞り込みができるようになりました(PC版ブラウザ) - はてなブックマーク開発ブログ | https://bookmark.hatenastaff.com/entry/2021/09/02/160546 | 4707764769367740738 |
34 | はてなブログスター(星マーク)効果は?1万円購入の圧倒的な効果 | https://blog-support.jp/hatenablog-star/ |
今回書いた増田にも多くのブクマが付き、有難く思う。以下返信。
これは詳しい
ブクマしておく
誰得の詳しいまとめ
おつおつ!!
コメ有難う。おかげで次も書こうという気になる。
有用なツール紹介感謝(ぐぬぬ、向こうのブコメの方が多いと思いつつ)。
参考ページ[FAQ]はてなブックマークの「総合」カテゴリーと「一般」カテゴリーの違いはどこにある?を載せたから大丈夫だろ、という不親切な態度は許されなかった。
門外漢によく知ってるねと褒める時に使う言い方の事例集だ。俺は詳しいんだ。
カラースターの値段が
紫スターすごい
ギブミーカラースターとか言われたら、青1個投げるとちょうど良さそう。
なんかよくわからんけど参考になりそう
まだAPIの解説も残っているんじゃ(すぐに投稿できるとは言っていない)。
GitHubにでも書いたほうが良いのでは
増田への愛(執)着が勝ったが、外部リンクを数件しか貼れず注釈機能が無く字数制限も厳しい環境に投稿して良いのかという葛藤もある。
「錯綜」の解釈を間違っていて一対多の意味を取り違えた。「分散」かな。 & は予約文字というよりも値が途切れ # はブラウザの機能としてサーバに送信されない。 1d. は {2} ではなく {1} (%enc)
指摘を参考に"エントリページ"の章等を修正。URLと引数については、修正後の内容なら以下のようになることを読取っていただけるかなと。
1a例 https://b.hatena.ne.jp/entry/s/anond.hatelabo.jp/20220521220951
1d例 https://b.hatena.ne.jp/entry?url=https%3A%2F%2Fanond.hatelabo.jp%2F20220521220951
API編も期待してる
善処する(GitHubに投稿する方に気持ちが傾いてるが全く触ったことがない上に、VSCodeとWSLとgitを導入してはてなのウィジェットスクリプト解読環境も整えようなどと考えてるので、いつになるか定かでない)。
「はてなフィルター」というウェブサービスも加えて
はてブについて、情報検索したりクエリを投げたりして調べてまとめてみた。自分用メモとして書いたもので、極少数の人しか興味を持たない内容かと思うが、読んでいただければ幸い。
公式等[1・2(参照したページURLを最後に記載。以下同様)]で詳細を確かめられず素人の憶測で説明した箇所がいくつもあり、簡潔明瞭でも網羅的でもない解説だがご容赦を。
1a. https://b.hatena.ne.jp/hotentry/{1}(引数に"all"を入力した場合、1のエイリアス)
1b. https://b.hatena.ne.jp/ctop/{1}(カテゴリトップ[3]が過去に存在していた場合、1aにリダイレクト)
1c. https://b.hatena.ne.jp/hotentry/{1}/{2}
1d. https://b.hatena.ne.jp/hotentry/{1}/daily(1cにリダイレクト。前々日か前日の分が表示される)
1e. https://b.hatena.ne.jp/hotentry/{1}/{3}(?page={4})(()内のパラメータは省略可。以下同様)
1f. https://b.hatena.ne.jp/hotentry/{1}/{3}(?of={5})
2a. https://b.hatena.ne.jp/hotentry.rss
2b. https://b.hatena.ne.jp/hotentry/{1}.rss("all"を入力した場合、2aのエイリアス)
2c. https://b.hatena.ne.jp/hotentry?mode=rss(2aのエイリアス)
2d. https://feeds.feedburner.com/hatena/b/hotentry(2aのエイリアス)[4]
3. https://b.hatena.ne.jp/entrylist/{1}(/{3}?page={4})(ブクマ登録数の閾値を設定するオプションがあったが、2018年3月に廃止された[5])
4a. https://b.hatena.ne.jp/entrylist.rss
4b. https://b.hatena.ne.jp/entrylist/{1}.rss("all"を入力した場合、4aのエイリアス)
{1} | カテゴリID | 省略するとカテゴリ「総合」のページが表示される |
{2} | エントリ登録日 | "YYYYMMDD"の形式で入力。当該月日の24時から一定時間経過後に利用可能になる。有効な最古の値は20050210 |
{3} | 特集名 | 特集[6]は不定期に改廃されるため、値が有効か注意 |
{4} | ページ番号 | |
{5} | オフセット | 表示結果の先頭が、指定した値だけ後ろにずれる。1ページ分表示可 |
エントリは、8種類あるカテゴリ[7]のどれか1つに自動で区分される。そのアルゴリズムは不定期に更新されているようだ[8]。区分に異議がある場合、ユーザが変更申請することもできる[8・9]。
カテゴリは2013年2月に現在の名称・分類になった[10]。分類が現在と同じ8種類になったのは、2008年11月[11]。
なお、2011年以前のエントリはほぼ全て「暮らし」カテゴリに区分されている[12]。2017年から2019年の間に何らかの障害が起きたためと思われる[13・14・15]。
なお「(ブックマーク)エントリ」という呼称は、一般的用法、はてブに登録されたURLとその付帯情報、エントリページの情報等、多様な意味で使われる。
1a. https://b.hatena.ne.jp/entry/(s/){1}("s/"はセキュアサイトのエントリページURLに付加される[16])
1b. https://b.hatena.ne.jp/entry/{2}(正しく処理された場合、1aにリダイレクト)
1c. https://b.hatena.ne.jp/entry/{3}(1aにリダイレクト)
1d. https://b.hatena.ne.jp/entry?url={2}(1aのエイリアス)
{1} | URL | ブクマされたURL(原則として、パーセントエンコード[19]されたもの)の一部を入力 |
{2} | URL | URL(同上)全体を入力 |
{3} | エントリID | 下記参照 |
はてブに登録されたURLはIDと1対1対応する。IDは、当初は1から始まる連番だったが、2018年12月頃から62bit以上の乱数値になった[20]。
余談だが、かつては番号が桁繰上りするたびにキリ番ゲッターがブクマしに集っていたようだ。理由は不明だが、欠番になったキリ番もある(キリ番と前後のエントリページ参照)。
URLとwebページは1対1対応するとは限らない[21][22]ため、エントリ・ブコメは容易に分散する。
その改善のため2019年2月にはてブの仕様が変更され、一定の規則でエントリが収斂されるようになった[23]。現在エントリページは、複数のエントリと1対多対応していて、対応するどのID・URLを引数にしてもアクセスできる。
参考[1]のエントリページに対応するIDを昇順にし、各IDの確認できる最古のエントリをまとめた。非公開や削除済のブクマがあるせいか、完全な日付昇順ではない。
26 | 2005/2/10 | nabeso | http://b.hatena.ne.jp/help |
252298 | 2005/5/24 | nobody | http://b.hatena.ne.jp/help#tag |
261369 | 2005/5/26 | another | http://b.hatena.ne.jp/help#favorite |
308455 | 2005/6/9 | naoya | http://b.hatena.ne.jp/help?mode=design |
361820 | 2005/6/23 | superartlife | http://b.hatena.ne.jp/help#collection |
368560 | 2005/6/24 | kurimax | http://b.hatena.ne.jp/help?mode=button |
369059 | 2005/6/24 | takeshi-s | http://b.hatena.ne.jp/help?mode=button#jugem |
461306 | 2005/7/18 | kidaglass | http://b.hatena.ne.jp/help?mode=button#livedoor |
540219 | 2005/8/9 | kei-s | http://b.hatena.ne.jp/help?mode=tipjar |
990732 | 2006/1/14 | takef | http://b.hatena.ne.jp/help?mode=tipjar#autodiscovery |
1021385 | 2005/12/27 | tosch0718 | http://b.hatena.ne.jp/help#note_about_title |
1051040 | 2006/1/7 | junky0 | http://b.hatena.ne.jp/help?mode=button#seesaa |
1148729 | 2010/7/8 | b01012109 | http://b.hatena.ne.jp/help/ |
1785475 | 2006/4/20 | eiichiman | http://b.hatena.ne.jp/help?mode=design#module |
2361801 | 2006/7/19 | yamifuu | http://b.hatena.ne.jp/help#keybind |
4670135055805666274 | 2020/1/7 | aoyamayuki | https://b.hatena.ne.jp/help/ |
以下に該当するIDやURLを引数として入力すると、エントリの一部または全ての情報の取得に失敗する
{1} | ユーザID | |
{2} | ブクマ日 | "YYYYMMDD"の形式で、当該ユーザがブクマした日付を入力 |
{3} | エントリID | 当該ユーザがブクマしたURLのIDを入力 |
{4} | エントリID | エントリページに対応するどのIDでも入力可 |
はてブの全エントリから検索可能[29]。ただし単語の区切の判定が完璧でないため、連語や複合語等が関わると上手く動かない場合がある(例えば、「更年」で検索したら「更年期障害で欠勤、認められず」というタイトルがヒットしなかった)。
1a. https://b.hatena.ne.jp/search/{1}?q={2}(&sort={3}&users={4}&safe={5}&date_begin={6}&date_end={7}&page={8}&mode={9})
1b. https://b.hatena.ne.jp/t/{2}(1aにリダイレクト)
{1} | 検索範囲 | "tag""title""text"のいずれかを入力 |
{2} | 検索文字列 | ブクマに付帯するタグ・ページタイトル・ページ本文中のいずれかで、指定した文字列を検索する。複数の文字列を"%20""|""-"で連結すると、AND・OR・NOT検索できる[30]。"site:{URL}"の形式で入力すると、URL絞込検索できる |
{3} | 表示順 | "popular"を指定すると、結果がブックマーク登録数降順で表示。デフォルトは新着順 |
{4} | ブクマ件数 | 指定件数以上のエントリで絞込検索する。デフォルト値は3 |
{5} | セーフサーチの有無 | "off"を指定できる。デフォルトはオン |
{6} | 検索期間の始め | "YYYY-MM-DD"形式で指定した日付以降のエントリで、絞込検索 |
{7} | 検索期間の終り | "YYYY-MM-DD"形式で指定した日付以前のエントリで、絞込検索 |
{8} | ページ番号 | |
{9} | "rss"を指定できる | |
{10} | URL | 指定URLで絞込検索 |
{11} | 表示順 | "count""hot"を指定すると登録数降順、"eid"で新着順で表示。デフォルトは、ブクマ3件以上のエントリのみ新着順 |
1a. https://b.hatena.ne.jp/{1}/(?page={2})
1b. https://b.hatena.ne.jp/{1}/?tag={3}(&tag={3}&page={2})
1c. https://b.hatena.ne.jp/{1}/{3}(/{3})(1bのエイリアス)
1d. https://b.hatena.ne.jp/{1}/{4}
1e. https://b.hatena.ne.jp/{1}/?url={5}(&page={2})
1f. https://b.hatena.ne.jp/{1}/bookmark(1aのエイリアス)
2a. https://b.hatena.ne.jp/{1}/bookmark.rss(?page={2})
2b. https://b.hatena.ne.jp/{1}/bookmark.rss?tag={3}(&tag={3}&page={2})
2c. https://b.hatena.ne.jp/{1}/bookmark.rss?date={4}
2d. https://b.hatena.ne.jp/{1}/bookmark.rss?url={5}(&page={2})
2e. https://b.hatena.ne.jp/{1}/rss(2aにリダイレクト)
3. https://b.hatena.ne.jp/{1}/search.data(?limit={6}&offset={7}) [31]
{1} | ユーザID | |
{2} | ページ番号 | |
{3} | タグ | 指定タグで絞込検索。2件以上指定するとAND検索できる |
{4} | ブクマ日 | "YYYYMMDD"形式で指定した日付で絞込検索 |
{5} | URL | 指定URLで絞込検索。部分一致検索可能だが、URIスキームから入力しないと無効 |
{6} | 最大取得件数 | デフォルト値は全件 |
{7} | オフセット | 表示結果の先頭が、指定した値だけ後ろにずれる |
前節とほぼ同様だが、利用可能なオプションが多い[32・33]。
余談だが、カラースターの価値は緑5円・赤12円・青110円・紫890円程度のようだ[34]。
1 | ヘルプトップ - はてなブックマークヘルプ | https://b.hatena.ne.jp/help/ | 4670135055805666274 |
2 | はてブAPIでwebサービスを作りたい全ての人に向けて書きました | https://syncer.jp/hatebu-api-matome | 264997023 |
3 | カテゴリトップ「テクノロジー」を新設し、グローバルナビゲーションの挙動を変更しました - はてなブックマーク開発ブログ | https://bookmark.hatenastaff.com/entry/2015/11/05/151221 | 4667408542014962466 |
4 | はてブのホットエントリーのRSS一覧 - まんとるぽっと | https://www.mantol.net/entry/20120601/1338517941 | 4699737458651148386 |
5 | 【追記あり】トップページやカテゴリページなどのメディア面をリニューアルしました - はてなブックマーク開発ブログ | https://bookmark.hatenastaff.com/entry/2018/03/22/161110 | 4667408571006016450 |
6 | 編集とユーザー活動とエンジニアリングを融合した「特集機能」を始めます - はてなブックマーク開発ブログ | https://bookmark.hatenastaff.com/entry/2015/08/17/150654 | 4667408546846804962 |
7 | [FAQ]はてなブックマークの「総合」カテゴリーと「一般」カテゴリーの違いはどこにある? | https://anond.hatelabo.jp/20200108201212 | |
8 | 【自由研究】はてなブックマークにおける自動カテゴリ分けの傾向と所感 - AQM | https://aqm.hatenablog.jp/entry/2019/08/06/180100 | 4672608930549728738 |
9 | フィードバックフォームおよびカテゴリ変更依頼フォーム設置のお知らせ - はてなブックマーク開発ブログ | https://bookmark.hatenastaff.com/entry/2018/12/11/163453 | 4667408557584232770 |
10 | 新しいトップページの一覧性を高めました - はてなブックマーク開発ブログ | https://bookmark.hatenastaff.com/entry/2013/02/06/000000 | |
11 | 2008-11-07 - はてなブックマーク開発ブログ | https://bookmark.hatenastaff.com/entry/2008/11/07/000000 | |
12 | はてなブックマーク - 人気エントリー - 総合 - 2011年12月5日 | https://b.hatena.ne.jp/hotentry/all/20111205 | |
13 | はてなブックマーク - 人気エントリー - 2008年11月1日 | https://web.archive.org/web/20170815132626/http://b.hatena.ne.jp/hotentry/20081101 |
中小企業によくある社内SE(a.k.a マクロ屋)兼PC周り雑用をやってるんだけど、新しい上司が「全部日報に書け」とうるさい。
営業「先方にメールが届かない」→先方でフィルタリングされていた
いや、わからんじゃない部分はあるんよ。
俺以外の人のために事例を積み上げていくのは大事だと思うよ。
でもそれも最初の1回でよくね?
溜まってきたら事例集作ってもいいしさ。
毎日毎日毎日毎日細かい細かい細かい雑用の日報書いてる暇があったら
他部署から頼まれてるマクロ作ったりクエリ書いたりしたいんじゃが。
そりゃ、お前は中途で入ってきたのに人事で無能すぎて
なんもわからんからせめて日報いっぱい書いての見せて「ちゃんと仕事させてます」したいのもわかるよ。
でもさ、読む人が読んだら「こいつ雑用ばっかりしてるやんけ」ってなると思うよ。
もう辞表書いて家帰って寝てろ、な?
後編
行列はVBAなんかじゃ無理っぽいし、なんかプログラミング言語を覚えようと決める。
とりあえず両方試そうということで、RのためにRとRstudioをインストール。
プログラミングはなんかを製作する目標がないと挫折すると聞いていたので。
深層学習というものが流行ってると聞いて、ちょっと触りを勉強したくなる。
この本は面白かったので、深層学習を目標にプログラミングを覚えよう!
後になって、これはとんでもない間違いだったことに気づく。深層学習と機械学習の違いも判らないまま、RよりPythonを先に触ることに。
教本にしたのはこちら。
「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装」
途中まではまあなんとか。
微分って便利だな。行列計算できるの便利だなっていうところまでいったが、クラスという概念が理解できず、途中からハテナが浮かんで読み進められず。
うん、もうちょっと易しい本を探そうと思って手に取ったのが
「独学プログラマー Python言語の基本から仕事のやり方まで」
なんとか読了。自信をつける。
実は、いまだにコマンドプロンプトとパワーシェルとbashの違いが分かってない。
つづいてPyQに2か月くらい登録してみる。
なかなかPythonが楽しくなってきたが、クラス意味が今一つ掴めないままいったん中断。
この辺で、自分は統計に興味があってもプログラミングに興味がないんじゃないかということに気づく。
なんだかんだもがきながら、PythonもRもモノにならず、日常のちょっとした計算やグラフを作ったりはExcelを使い続ける日々が続く。
あるいは、Excelで成形して、検定かけやすい形式にしてRで検定するとか。
Rに触れてなかったな、Rは完全に独学。「こんなことやりたいなぁ、ググってみるか、ほうなるほど」って感じ。
そんなさなか、放送大学で「Rで学ぶ確率統計」という講義があるのを知り、さっそく入学して受講。
なかなか面白かったし、PythonばっかりでRあんまり触ってなかったからいい刺激になった。
恥ずかしながら、負の二項分布やガンマ分布ってよう知らんかった。
しかし、講義は楽しかったがなにか書けるようになったかというとそんなことはなく、依然として基本はExcel。
まあ、実際csvじゃなく、手書きのデータとかをExcelに打ち込んだりする程度なんでPythonやRを使うまでもなかったというのもあるんだけど。
「Excelパワーピボット 7つのステップでデータ集計・分析を「自動化」する」
パワークエリを覚えたらピボット形式のExcelファイルとか、セルの結合が多用されたExcelファイルを、成形加工するのが非常に楽になった。
しかも、同じフォーマットで記録されてるデータならフォルダにぶち込んで一気にまとめ上げることも可能!
控えめにいって神!
としばらくパワークエリを礼賛してたのだけど、各ステップはPythonのpandasやRのdplyrでも出来ることに気づく。というか最初から気づけ。
こりゃ、一気に覚えちまおう、統計というより、データの前処理だなと思ってUdemyでRの動画を買ってみた。
AIエンジニアが教えるRとtidyverseによるデータの前処理講座
https://www.udemy.com/course/r-tidyverse-preprocess/
すっかりR信者になる。
それまで教本を呼んでもdplyrの便利さが今一つわからなかったのに、パワークエリで具体的にモノを作ると、dplyrに翻訳したら、すいすい。スピード10倍。
便利さにようやく気付く。
そんで、pandasに翻訳したらどうなんだろ?と思ったらもっと速いw
すごいなPython。
Rへの入信はたった数週間。再びPythonに興味。
さて、ゼロから作るディープラーニングを再開しようと思ったけれども、そもそも、機械学習をすっ飛ばして深層学習って無茶だったと反省し、まずは機械学習に。
機械学習のエッセンス -実装しながら学ぶPython,数学,アルゴリズム- (Machine Learning)
で、この本がすごい。
5章あるんだけど、機械学習のアルゴリズムは5章だけなんだなw
それまでは何に割かれてるんだって?数式の証明とか、便利な計算法、例えばニュートン法とかラグランジュ未定乗数法とかw
こんだけ引っ張っておいて、いよいよ本番の第5章もゴリゴリ数式をスクリプトに落とし込んでいってるのに、「これは学習のためでscikit-learnっての使えばたった1行」っていう無慈悲w
いや、ほんと数学の勉強になったし、こうやってゴリゴリやるとなんのためにクラスというものが存在するのかようやくわかった。
線形代数って便利なんだなと。行列をスカラー値のように何の気なしに扱えるようになると、あの頃苦しんでいた実験計画法、タグチメソッド、今読み直したら別の印象があるんじゃないかなと思うようになったり。
この本を読む途中、「マンガでわかる統計学因子分析編」で学んだことが理解の助けになった。
なんたる僥倖。
線形回帰、リッジ回帰、SVM、PCA、k-means、クラスター分析、一気に手札が増えた。
Pythonで学ぶ実験計画法入門 ベイズ最適化によるデータ解析
実験計画法って、fisherの古典的なやつ、ラテン方格に割り付けて、ってやつかと思ったら、線形代数使えればもうなんでもありなのな。
これ、すごいな。
機械学習と実験計画法がここでつながるとか、控えめにいって最高だな。
まだ読了してないので、また後日。
数千名の顧客行×365日の列から成るデータをパワークエリでピボット解除して顧客1名ごと×365のリストを作成しようとしたのね。
そしたら上限の1,048,576 行を超えるんで一部しかできないわというメッセージが出た。
おれは勝った気がしたね。
※なんでわざわざリスト形式に変換するかというと、変換後にさらにピボットテーブルかけて月単位でグループ化することで月ごとの集計をしたいわけ。
むつかしいのよ。
少なくとも今の日本の社会の制度は「家=世帯」をベースに構築されていて、その「世帯」の名前が「姓」なんだ。結構根幹にかかわることなんだよ。
大した伝統じゃないとか言ったって、ちゃんとした社会制度が全国に広がった明治以降はそうなんだから、行政サービスとか公共教育とか福祉とかなんにもなく、曖昧でよかった時代とは違う。
賛成派は自分の姓が大事…というけれども、それだって親のどちらかが犠牲になって姓を統一して世帯として活動してきたから愛着が湧いたわけで、別姓後の次の世代にとってそもそも「家の名前=姓」を大事にするという感覚はかなりロストするだろう。別姓派は、自分の姓を大事にしたかったから別姓にしたかったんじゃないのか?
姓がそもそも国家制度としてあまり重要じゃなくなれば、それこそ守る価値すらなくなると思っている。え?姓、変えたきゃ変えりゃいいやん。なんなら結婚も関係なく変えたきゃいつでも変えられる。それぐらいまで価値を落としたときに成功すると思うが、それは別姓推進派が描いているイメージじゃないと思うんだよな。
そのためには完全に個人ベースの住民データベースが構築され、それが世帯なのかどうかはその条件でクエリーしたときだけ出てくればOKぐらいまで意識と台帳を再構築しないといけない。で、おそらく賛成派はそこまで社会制度を再構築するという気概も意識もなければ知恵もビジョンもない。ただ自分の姓が大事。いや別姓OKにするってことは姓そのものを大事にする必要がないようにするってことなんだよ。たぶんそこがわかってない。それが透けて見えるからあんまり賛成できないんだよな。
もっとも反対派もそこまで反論できる人もいないし、なし崩し的に別姓にして、エイリアスもなんもない制度になってただボロボロになるんだろうなあ、って思う。
サーバから全員分のデータを引っこ抜いてきてブラウザ上でフィルターして自分の情報だけ表示するやつとか
引っこ抜いてきた情報にはパスワードまで含まれていてしかも平文保存されてるとか
まぁネタとしてよく盛り上がったりしたし、都市伝説だろうなぁと思ってたんだけど
例えばつい最近遭遇したのだと
「アカウント指定でデータ取りたいからそういうAPIよろしく」
っていうざっくりした注文すると普通にアカウントの氏名で検索して先頭の1つだけ返してくるようなAPI作りやがる
「クエリは何を投げたらいいの?」
って聞いたら
「氏名を入れてください!」
って自信満々で答えられて「はぁ?」ってなった
小学生でも「同姓同名の人いたらどうするんだろう」って思うだろうに何の疑問も抱いてない
おまけにそういう指摘したら「データベース上でアカウントの氏名をユニークにしました」とかいう対処を平気でやってくる
そりゃマジメにやるなら
「アカウントを一意に識別できるアカウントID(メールアドレスなど)で検索できるAPIをお願いします」
的な依頼をするのが正しいんだろうけど
こういう1から10まで全部指定しないといけなくなると単純にコストがかかりすぎるよね
これ1件だけなら別に良いけど、このレベルで共同作業とかになると苦痛でしか無い
自分が関わるプロダクトだとまだ品質管理できるけど、同じ社内でも発注側がそういうの分かってないままプロダクト化が進んでたりしてヤベーと思ってる
そして日本全体で考えてそういうヤバいシステムが結構あるんじゃないかっていう気がしてきてる
ちょっと前はIT土方とか揶揄されてたけどまだその頃の方が断然マシ
なんだかんだで設計する人がまともだったから上記のようなアホなことはやらないし
プログラマーもそういうまともな人の管理下にあって教育されたりもしてた
多分だけどあの頃のまともな人達はとっくに外資系なりに引き抜かれて
クソの役にも立たないIT土方のプログラマーが管理する側に回ってクソ設計して
プログラマーはプログラミングスクールで勉強してコピペ能力だけを身につけてて
そんで委託・派遣してるから教える人もいないっていうヤバい状況なんじゃないかな
土方で例えるならコンクリート混ぜるのにスマホでYoutuberのDIYを見ながら作って
(コンクリートって養生期間を適切に取らないといけないから天候や運搬時間に応じて水との混合比率変えたり温度管理したりとにかく大変らしいですよ)
ユーザーローカルが、ダミーの氏名・住所などの個人情報を自動生成するWebサービス「個人情報テストデータジェネレーター」の無償提供を始めた。最大1万行を生成し、CSV形式のファイルなどでダウンロードできる。システム開発時の動作テストやセキュリティチェックなどに使えるという。
生成できるのは、氏名や年齢、生年月日、性別、血液型、メールアドレス、電話番号、郵便番号、住所、会社名、クレジットカード番号と期限、マイナンバーの情報。氏名は漢字・平仮名・片仮名・ローマ字などを選択でき、年齢は「20~80歳」など指定した範囲を基に日本の人口比に合わせて出力できる。
データはCSV・TSV形式かExcelファイルでダウンロードできる。生成するデータ数は1件単位で設定できるが、1万行以上はユーザーローカルへの問い合わせが必要だ。
ユーザーローカルへの問い合わせ、ってなんかJSかなんかでローカル処理のクエリ必須、みたいに勘違いしてなんだそりゃと気になったがただの社名だった