タグ

programmingに関するnatu3kanのブックマーク (691)

  • 優秀なプログラマーになるためのコツ

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    優秀なプログラマーになるためのコツ
    natu3kan
    natu3kan 2017/09/27
    そうとう運に恵まれないと自衛するスキルもままならないまま、クソな環境に投げ込まれるので、メンタル強いか、最初からぶっ壊れてて他人を平然で死地に投げ込めるくらいイッっちゃってないとやっていけないと思った
  • Markdownエディタを作って月15万円稼ぐためにやったこと — Inkdrop

    自分でもびっくりしてるいぬさん僕はフリーランスをしながら脱受託を目指してアプリを作って生活しています。だいたい1年のうち7割ぐらいをアプリ作りの時間に充てています。稿では、Inkdropというマルチプラットフォーム対応のMarkdownエディタを一人で開発して月15万円の売上を達成するまでにやった事を包み隠さずにシェアしたいと思います。 Inkdropの月間売上の推移やったこと概要毎日感じるちょっとした問題を見つける自分自身がこれだ!と思えるまでプロトタイプを作るプライベートβ期間でヘビーユーザを作る継続性を重視して価格をつける決済処理はStripeで楽に実装する良いランディングページを作るユーザサポートを最優先にする自分の得た知見を惜しまずブログに書くクオリティで勝負する批判を全て無視する毎日感じるちょっとした問題を見つける僕は別に特別でもなんでもありません。人は意外と同じ事を感じたり

    Markdownエディタを作って月15万円稼ぐためにやったこと — Inkdrop
    natu3kan
    natu3kan 2017/09/25
    そこまでのセルフコントロールできる人なら、本人の興味ある分野なら、なんでも稼ぎに出来そうって思った
  • COBOL「私を殺すと言ってた言語は、みんな死んだよ」 | おごちゃんの雑文

    ITPro方面に火種があったので。 COBOLやVB6との決別、初手は不良資産の一掃 中を読めばいつもに日経コンピュータなんだが… 例によって、日経コンピュータがCOBOLを悪者にしている。まぁ、いつものことなんで、それ自体は割とどうでもいいんだが、見出し詐欺はいけない。何がそうかと言えば、後半の「かんぽ生命」の話。 1200億円の巨費を投じて基幹系システムをNEC製メインフレームから米IBM機に移行し、2017年1月に稼働させたかんぽ生命保険も、ツールで全体の1割に相当する不要資産を廃棄した。NECの独自言語「IDLII」からCOBOLにツールでリライトした。 見出しに「COBOLやVB6との決別」とか言いながら、よく見れば COBOLにした という話だ。見出しと違う話なんで「あれれ?」と思ってTwitterで聞いたりもしたんだが、 かんぽ生命副社長・井戸潔が語る基幹系システム刷新、成功

    natu3kan
    natu3kan 2017/09/24
    ガソリン自動車や火力発電が金になるハードである間は石油が使われ続けるように、金になるハードが残ってる間はCOBOLも生きつづけるんだろうな
  • pythonで小さなツールを作る時のtips - Qiita

    自分で小さいツールを作る時に心に留めているtipsです. 書き始めたときは「どうせ書捨てだし」と思って書き始めると意外と長い間,もしくはいろんなところで使うことになったりするので,気をつけておくと後から楽になるというような小技です.大規模なソフトウェアの開発ではまた違った流儀があると思います. メインルーチンを関数にする 関数名はなんでもいいのですが,自分は趣味で main() という名前の関数を用意し,メインルーチンは全てそこに書くようにしています. #!/usr/bin/env python def main(): print('hello, hello, hello!') if __name__ == '__main__': main() pythonの小さなサンプルコードを見たりすると関数外の部分にベタで実行コードが書かれていたりします.もちろんそれでも動くのですが,以下の2点で後

    pythonで小さなツールを作る時のtips - Qiita
  • Ayo.js について - from scratch

    Ayo.js とは 「Node.js の fork です。」と言ってもまだできたばかりで正直このタイミングで記事にしてもまだ語ることはそんなに多くないです。 ただし、JavaScript界隈が騒ぎになりかけていることは確かです。日でも発言が増えてきたので自分なりにまとめて今時点での話をしようと思います。 ちなみに読み方は好きに読んでくれ、と言われてます。 「アイ・オー」でもいいし、「エイ・ヨー」でも良いとのことです。ネーミング的には昔あった io.js fork騒動を想起させるネーミングになってます。もしも io.js についてご存じない方もいるのであれば、こちらをご参照ください。 yosuke-furukawa.hatenablog.com Ayo.js の目的 https://github.com/ayojs/ayo/blob/zkat/values/VALUES.md ここを見ると

    Ayo.js について - from scratch
    natu3kan
    natu3kan 2017/08/27
    >このように Code of Conduct 違反があったにも関わらず徹底できていないガバナンス体制を見限った人たちが発起人となって fork したのが Ayo.js です。
  • 入社からの半年間でコードレビューで指摘されたことのまとめ - 30歳からのプログラミング

    実務未経験でプログラマとして入社して半年以上が経った。 コードレビューで指摘されたことを備忘録としてまとめておく。 自分なりにまとめたものなので、レビュアーが言いたかったこととニュアンスや解釈がずれている可能性はある。 初歩的な内容ばかりで我ながらうんざりする。 せっかく優秀な同僚ばかりなのだからもっと高度なことを学びたいが、こういう初歩的なことが出来ないのが俺の現状なのだから、仕方ない。 そもそもPullRequestを送ったこともなかったわけだし。入社初日は、一人でPullRequestの出し方を練習していた。 それを考えればまあ、こんなものだろうか。 当たり前のことをちゃんと当たり前に出来るようになって、早く、次のステージに進みたい。 PullRequest(PR) PRのタイトルは分かりやすいものに。必要に応じてチケットの番号なども入れる。 コミットやPRは出来るだけ粒度を細かくす

    入社からの半年間でコードレビューで指摘されたことのまとめ - 30歳からのプログラミング
  • 【急募】PC9801プログラムの解析(リバース)の依頼/外注|その他(システム開発)の仕事 [ID:1559652]

    プロジェクト概要 PC9801で作成されたEXEファイル2の解析(リバース)を実施したいと考えており、 PC9801経験・リバースエンジニアリング経験豊富なシステムエンジニアの方々を募集します。 ※解析対象のプログラムは20年以上前に自社開発したものであり、解析するにあたっての 法的問題等はございません。 ■お仕事の詳細: ▽解析依頼の目的・概要 ソースコード、仕様書等が一切存在せず、保守が不可能となってしまっているため、 現行で動作している2のEXEを解析し、既存プログラムの動作仕様を明らかにすることが目的です。 開発言語等も不明ですが、プログラム自体はCUIベースで単純なロジックのものと 推測しております。 ※対象プログラムの詳細については応募頂いた方に別途ご説明させて頂きます。 ▽現行の環境等 ・PC9801実機(型番はBX02)+ ドットインパクトプリンター(型番不明) ・A

    【急募】PC9801プログラムの解析(リバース)の依頼/外注|その他(システム開発)の仕事 [ID:1559652]
    natu3kan
    natu3kan 2017/08/24
    新しいのイチから作った方が安くなるけど金が出せなくてグダグダになってるパターンか。仕事してみたら手間のわりに額が安すぎてみんな放棄したんだろうなあ。中古のPC9801の機材買って延命が現状だと安く済みそう。
  • リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi

    リトライを肴に一晩酒が飲める古橋です。 大規模なデータに触れることが日常茶飯事になっている今日この頃。この分野のおもしろいところは、いつまで経っても終わらないプログラムを簡単に作れてしまうことかもしれません。エラー処理、リトライそして冪等性*1の3つを抑えていないプログラムは、小規模なデータなら問題ないが、データ量が多くなると使い物にならなくなる可能性が大です。 大規模データをバッチ処理するケース以外でも、リトライは一般にプログラムの信頼性に関わる重要な問題です。 そんなわけで、リトライに関わるいくつかのデザインパターンを、連載でまとめておこうと思います*2。 では、第1回は背景から: なぜリトライが必要なのか プログラムは色々な理由で失敗する。例えば、 A) 通信先のプログラムが高負荷すぎて応答できなかった B) メモリを消費しすぎてメモリ確保に失敗した。またはOOM KIllerに殺さ

    リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi
  • 続・リトライと冪等性のデザインパターン - リトライはいつ成功するか - Blog by Sadayuki Furuhashi

    三度の飯よりエラー処理。古橋です。 大変好評をいただいた序章リトライと冪等性のデザインパターンの続編です。 前回はほぼ前置きでしたが、今回は冪等でない操作を冪等にする具体的なテクニックもまとめていきます。 パターン2:エラーを区別してDELETEを冪等にする リソースに常に一意なIDが振られていれば、Deleteを冪等にするのは難しくない。そもそも同じリソースを2度削除することはできない。 一つ注意するべきなのは、削除されたリソースのIDが再利用されるケースでは、Deleteの冪等性は保証されない。例えば、kill -KILL <pid> コマンドはDelete系のAPIと考えられるが、pidは再利用されるので、何度も繰り返すと意図しないプロセスを殺してしまう可能性がある。 一般にIDの生成は非常に難しい問題だが、Deleteに関してのみ言えば再利用されなければいいので、単調増加する整数(

    続・リトライと冪等性のデザインパターン - リトライはいつ成功するか - Blog by Sadayuki Furuhashi
  • 続々・リトライと冪等性のデザインパターン - あらゆる操作を冪等にする方法 - Blog by Sadayuki Furuhashi

    いつも心に冪等性。古橋です。 リトライと冪等性のデザインパターンの完結編です。 だいぶ間が空いてしまいましたが! 最後に冪等性を実装する汎用的な実装手法についてまとめていきます。 パターン6:操作ログとリクエストIDでUPDATEを冪等にする 同じIDで識別される値がUPDATEされる場合、つまりmutableである値の管理は、一般に冪等に行うのが難しい。 例えば、ユーザーごとに「最後に購入したアイテム」を更新する操作を考えてみると: 1. ユーザーAが最後に購入したアイテムをアイテム1に変更する(UPDATE) 2. ユーザーAが最後に購入したアイテムをアイテム2に変更する(UPDATE) この操作に何の対策もなくリトライを実装した場合、後続のUPDATE処理の結果を古い内容で上書きしてしまう可能性がある: 1. ユーザーAが最後に購入したアイテムをアイテム1に変更する(UPDATE)→

    続々・リトライと冪等性のデザインパターン - あらゆる操作を冪等にする方法 - Blog by Sadayuki Furuhashi
  • 絶対にやってはいけない「Apple IDをテストで13歳未満にすること・・」

    概要 AppleIDの生年月日を13歳未満にすると、 そのアカウントが成長!?して13歳になるまで修正できないというお話(;;) Apple IDとは -> iPhoneとかMacとか使うというに使うアレ 公式サイト説明:https://support.apple.com/ja-jp/apple-id Apple ID とは? Apple ID とは、App Store、Apple MusiciCloud、iMessage、FaceTime などの Apple のサービスを利用する時に使うアカウントのことです。たった一つの Apple ID とパスワードで Apple のすべてのサービスにサインインできます。 詳細 今回やりたかったこと →ファミリー共有のテストをしたい(未成年のアカウントで) 子供のアカウントでアプリで課金したりするときは、親のアカウントに承認リクエストが飛びます。 →

    絶対にやってはいけない「Apple IDをテストで13歳未満にすること・・」
    natu3kan
    natu3kan 2017/08/10
    テストするときは普段使ってるIDじゃなくて、不測の事態のために捨ててもいいIDでやるべきだったんだな。
  • 超高速な開発ができるわけ | Yakst

    あるひとりの人がシステムを作ったが故にそのシステムに精通している場合に、最も生産的な開発が行われる。しかしこれは、ひとりの人がシステムの面倒を見ることを超えてシステムが成長する時には矛盾してしまう。 ある状況下において、特定の開発者たちが他の人の10倍生産性が高くなることがあるのはなぜかについて議論してみましょう。 ヒント : 開発者の話ではなく、状況が大きなカギ。 生産性が非常に高いことにウキウキした気分になるのはいつでしょうか。新しい機能が指先からあふれ出てくる時?それは、私たちが関わるツールのことを知り尽くしている時、あるいはもっと決定的に言うと、自分がシステムを変更しつつある時に起こるのです。自分のバックパック、それも自分で詰め込み、そしてひとつひとつの小袋の中まで何年にもわたる旅行を経て調整してきたバックパックの中身を知っているように、システムを知ることです。それぞれのモジュール

    natu3kan
    natu3kan 2017/08/10
    いろんな人が長時間つづける必要のある仕事であっても、問題が発生しないかぎり属人化しがちなので、他の人が出来るように手間かけて共通化したりマニュアル化するのは大事(実際は時間とコストの都合で属人化する)
  • 「新機能作成時に開発ブランチに細かくmergeしていく戦略」について社内勉強会で発表しました - Hatena Developer Blog

    はてなのアプリケーションエンジニアのid:shiba_yu36です。社内技術勉強会で「新機能作成時に開発ブランチに細かくmergeしていく戦略」という発表をしたので、資料を公開します。 speakerdeck.com 以下、簡単に文字でまとめておきます。 戦略 ユーザーに新機能が見えないようにする工夫をし、新機能のbranchもどんどん開発ブランチにmergeしていく mergeされたものは随時番にリリースされるが、ユーザーに見えない工夫をしているので問題なし PRは可能な限り細かくする 機能が完成したら最後にユーザーに新機能を見えるようなPRを作り、mergeしてリリースする なぜこの戦略を使うのかいろんな失敗を経験して、この戦略を最近使っている。 失敗パターンその1: 巨大PRパターン 失敗パターンその2: 新機能リリースブランチパターン 失敗パターンその1: 巨大PRパターン 新機

    「新機能作成時に開発ブランチに細かくmergeしていく戦略」について社内勉強会で発表しました - Hatena Developer Blog
  • 6歳の子ども向け「プログラミング教室」を実際にやってわかった成功させる方法 - GIGAZINE

    By Tim & Selena Middleton 多くのエンジニア職に携わる人が、Stack Overflowで「子どもにプログラミングを教える方法」について質問しています。大多数は「コンピューターはバカだから、動かすためにはどうすればいいかとても正確に教えてあげなければいけない」というようなアイデアに基づいた解答をしているのですが、この教え方だと「面白さは保証されるが、プログラミングについて理解できるかについては疑念が残る」と考えたトメク・カチャノフスキー氏が、異なるアプローチで「6歳の子どもにプログラミングを教える方法」を実践した結果を、プログラマーがアイデアをシェアするコミュニティ「dev.to」につづっています。 Explaining Programming to 6 Years Old Kids https://dev.to/tkaczanowski/explaining-pr

    6歳の子ども向け「プログラミング教室」を実際にやってわかった成功させる方法 - GIGAZINE
    natu3kan
    natu3kan 2017/08/07
    文章で満足な視覚的イメージができるようになるのって、就学以降って考えると絵で教えるって大切な感じがする。
  • プログラマをクソコードで殴り続けると死ぬ - megamouthの葬列

    ここにクソコードがある。 誰が作ったかはわからぬ。それが、どのような経緯でクソコードとなったのか、 あるいは、最初からクソコードであったのか、それらは全てクソコード自身が知るのみである。 ファーストコンタクト ある日、営業からシステム案件を打診されたので見積もりして欲しい。というメールが来る。 とある企業の既存システムに機能を追加する簡単な案件ですが、なななんとソースや仕様書をご支給いただけます! と、それはサンタにプレゼントが貰えると信じて疑わぬ子供のような真っ直ぐなメールである。 ソースコードが入った圧縮ファイルを受け取ったプログラマは、早速、コードを読んでみる。 そのシステムが当にいいコードで書かれているかを判断するには時間がかかるが、 クソコードであるかはおおよそ30分でわかる。 インデントがタブとスペースどちらかに統一されていないとか、フレームワークの誤用があるとか、またはフレ

    プログラマをクソコードで殴り続けると死ぬ - megamouthの葬列
  • Pythonが2017年の覇権言語に - Rubyは12位に転落

    IEEE Spectrumは18日、独自の指標によって決定した人気プログラミング言語のランキング「The Top Programming Languages 2017」を発表しました(Neowin)。 上記画像がその結果で、スクリプト言語Pythonが1位に、C言語が2位に、Javaが3位になっていることがわかります。Pythonは2016年の3位から1位へのランクアップで、背景にはやはり近年注目を集めるAI機械学習分野のライブラリの充実があるのかもしれません。 2位のJava言語は最近何かと批判を集めがちですが、需要は根強く、特に「仕事」系のプログラミング言語としては相変わらずトップクラスの人気を誇っているようです。 その他、Go言語が9位に上昇した反面、Rubyが12位まで下降しています。 IEEE Spectrumのランキングは、GoogleGitHub、Stack Overfl

    Pythonが2017年の覇権言語に - Rubyは12位に転落
  • 【レポート】『Fate/Grand Order』開発スタッフが語る、技術力がなければ面白いゲームを創れない理由とは…変化に強い構造の作り方 | gamebiz

    【レポート】『Fate/Grand Order』開発スタッフが語る、技術力がなければ面白いゲームを創れない理由とは…変化に強い構造の作り方 GMOアプリクラウドは、6月15日、GMOインターネットグループが運営するコミュニケーションスペース「GMO Yours」にて、「ゲーム開発と技術力」をテーマとしたイベントとして、「現場のエンジニアが語る『Fate/Grand Order』の開発技術からアップデートに関するノウハウまで一挙公開」を開催した。 イベントでは、ゲーム運営や開発に関わっている方々を対象に、『Fate/Grand Order』の開発をリリース当初から支えるサーバーエンジニアと、ディライトワークスの技術力向上のために、日々課題に取り組んでいるテクニカルディレクターによる「面白いゲームの作り方」や「海外展開に向けた取組み」について技術的側面から講演を行った。 稿では、ディライト

    【レポート】『Fate/Grand Order』開発スタッフが語る、技術力がなければ面白いゲームを創れない理由とは…変化に強い構造の作り方 | gamebiz
    natu3kan
    natu3kan 2017/07/13
    スパゲティコードでも、複雑な仕様をなんとか動かせるように実装さえできれば技術力だよな。俗人化せずにマニュアル見れば新しい人ででも対応できればなおよし
  • コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD

    私は時折、コーディングに対する考え方を変えさせられるような、従来と非常に異なるプログラミング言語に出会います。記事では、その中でも特に気に入っている発見をいくつかご紹介したいと思います。 これは、先賢による「関数型プログラミングは世界を変える!」的な投稿ではありません。記事で挙げるのは、もっと「知る人ぞ知る」的なリストです。多くの読者の方にとって、以下の言語やパラダイムは聞いたことのないものが大半だと思いますので、私が経験したように、これらの新しい概念を学ぶ楽しさを感じていただければ幸いです。 注:私は以下の言語の多くに関して最低限の経験しかありません。その発想に引き込まれたのであって、専門的知識は持ち合わせていないため、訂正すべき点や誤りがあればどうぞご指摘ください。また、記事で取り上げていない新しいパラダイムや概念に出会った方は、ぜひお知らせください。 最新情報:記事が r/p

    コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD
  • 「センスがない」のほとんどは、単なる練習不足に過ぎない - GoTheDistance

    4月からプログラミングを教える仕事を定期的に行っていて、集合研修という形が1つ、実験台としてプログラミングに興味がある学生の甥っ子に対してマンツーで教えています。自分の教えている内容がどう伝わるか、どんなイメージ絵を描けばいいのか、どの順番で説明すればよいのか。それらを検証するためです。 で、そんな中、甥っ子がポロッと漏らしました。 「おれ、やっぱりプログラミングのセンスが無いんだと思う。教えてもらっても全くわからないことが多いし...」 「ちげーだろ。お前は単なる練習不足にすぎない。2〜3回しか練習していないのに、どうやってオレと同じレベルで物事が判断できるんだって話。ちょっとしか練習してないのにセンスもクソもない。漢字の書き取りにセンスが必要か? 100回while文書いてみたか? 書いてないだろ? 」 「あ・・・(察し」 センスは練習不足の免罪符じゃない 彼が言っていたセンスがあると

    「センスがない」のほとんどは、単なる練習不足に過ぎない - GoTheDistance
    natu3kan
    natu3kan 2017/06/21
    ブコメみて、センスがないって言葉がそこまで熱中して勉強できないとか、好きじゃないの言い換えだよなあと思った。
  • 今はコードがお偉いさんなんだからMOBは雁首揃えろって話 - アンカテ

    技術なきマネジメントの衰退とその対策 - メソッド屋のブログ Mob Programmingって初めて聞いたけど、とてもいい方法に思える。 コードを書く時に、今現在の仕様はわかっていたとしても、今後どうなるか、どういう方向に発展するのか気になって、ビジネス的にその分野に詳しい人の所に聞きに行ってから書きはじめることがあるし、性能的に大丈夫かDBに詳しい人の意見を聞いたり、何か迷った時に過去のプロジェクトで似たようなケースをどっちの方法で解決したか調べたりすることもある。 書き出すとすぐ終わる短いコードでも、書き出す前に、聞きにいったり議論したりする時間が随分かかっていることもある。この時間をかけないと、結局、後で変更になるので、先に聞きにいくのがベターなんだが、チーム全員集まってひとつのコードを書けば、そういう時間を省略できるような気はする。 だから、これが生産性が高いということは感覚的に

    今はコードがお偉いさんなんだからMOBは雁首揃えろって話 - アンカテ
    natu3kan
    natu3kan 2017/06/20
    Mob Programmingってチーム内のコードの書き方を共通化して、その後の互換性をあげるのにはつかえそうで便利だよね。