並び順

ブックマーク数

期間指定

  • から
  • まで

321 - 360 件 / 596件

新着順 人気順

グローバル変数の検索結果321 - 360 件 / 596件

  • Rubyにはオブジェクトを汚染する仕組みがあった - Eggshell

    はじめに Ruby 3.0 Advent Calendar 2020 5日目の記事です。 昨日は、【Ruby 3.0 Advent Calendar 2020】Ruby3.0で非推奨から廃止になるメソッドたち【4日目】 - ゲームリンクスの徒然なる日常 です。 また、この記事は2020年ふりかえりアドベントカレンダー 5日目です。昨日の記事は 初学者が Ruby on Rails の広大さに途方にくれたけどなんとかやっていけるようになった話 - いまブログ です。 Ruby 3.0 から $SAFE が普通のグローバル変数になります The feature of $SAFE was completely removed; now it is a normal global variable. The feature of $SAFE was completely removed; now

      Rubyにはオブジェクトを汚染する仕組みがあった - Eggshell
    • Arduino LeonardoでつくるUSB周辺機器で音量調整に挑戦! | Device Plus - デバプラ

      Arduinoは、USBのインターフェースを持っているので、キーボードやマウスなどのパソコンの周辺機器も自作できます。 もちろん、キーボードそのものを作ることもできますが、いきなり作るのは大変です。そこで本記事では、一部のキーボードに付いている音量を調整する部分をArduinoで作ってみます。 Arduinoと可変抵抗器(ポテンショメーター)があれば簡単です。早速、始めましょう。 Arduino Leaonardoの外観 目次 準備 USBを使った通信でパソコンをコントロール エンコーダーにも使用される可変抵抗器 スケッチ全体 プログラムを詳細に見てみよう Arduinoと可変抵抗器をつなげよう まとめ 1. 準備 本記事では次のものを使用します。 可変抵抗器 Arduino IDE 今回はArduino Unoではなく、Arduino Leonardoを使用します。 Arduino Le

        Arduino LeonardoでつくるUSB周辺機器で音量調整に挑戦! | Device Plus - デバプラ
      • プログラムがメモリをどう使うかを理解する(4)

        この記事は このシリーズの4本目です。 前回の記事は こちらです。 まだ色々書きたいことはあるのですが、当初のタイトルである「プログラムがメモリをどう使うか」という観点では、今回で一区切りにします。 プログラムの実行から終了までを追う 前回で スタック・ヒープ・静的領域 という3大領域を認識しました。今回は仕上げとして、プログラムの実行を開始してから終了するまでに、それらがどう確保され、どう利用され、どう解放されていくのかを確認していきましょう。 プログラムを実行する際に、OSからアドレス空間を与えられる プログラムから利用できるメモリにはアドレスが割り振られますが、昨今のOSでは同時に複数のプログラムが動作することが当たり前になっています。昔はわざわざ「マルチタスクOS」と呼んでいましたが、今となってはわざわざそんな呼び方をしなくても当たり前になっていますね。 そうなると心配性な人は「ア

          プログラムがメモリをどう使うかを理解する(4)
        • Nuxt + Composition-API のコンポーネント設計について考えたことなど - ハードルを下げ続けるブログ@task

          急にブログを書く気になったのでいっぱい更新してます。 前回の記事で Nuxt に Composition-API を導入する方法を書きました。 task-kawahara.hatenablog.com 今回は、半年間 Composition-API をつかってきて、どのように コンポーネント設計を行ってきたのかについての記事になります。 Motivation Vuex 辛い問題 Atomic Design よくわからん問題 Clean Architecture のエッセンス コンポーネント設計の方針 ディレクトリ構成 Composables Components あとがき Motivation Vuex store での Global state 管理をやめたい UIとビジネスロジックを切り離して柔軟に設計したい Clean Architecture を読んだから実践したい まずは、Vue

            Nuxt + Composition-API のコンポーネント設計について考えたことなど - ハードルを下げ続けるブログ@task
          • Ruby: Redis.current の廃止と向き合った件 | Webシステム開発/教育ソリューションのタイムインターメディア

            先日 (2/2)、redis gem のバージョン 4.6.0 がリリースされました。 このバージョン 4.6.0 では、いくつかの API が deprecated 扱いになりました。 https://github.com/redis/redis-rb/blob/v4.6.0/CHANGELOG.md#460 我々の Rails アプリケーションのうち、いくつかは Redis.current を使うようになっていたため、この廃止の影響を受けました。この記事では、Redis.current の廃止の経緯と我々の対応策についてご紹介します。 Redis.current ってなんだっけ? これまで、我々のチームでは Rails アプリで利用する redis のコネクションを config/initializers/redis.rb で以下のように設定していました。 この設定をしておくと、Rai

              Ruby: Redis.current の廃止と向き合った件 | Webシステム開発/教育ソリューションのタイムインターメディア
            • net/httpのhandlerにdbなどの依存を持ち込む方法のメモ - podhmo's diary

              昨日の記事のついでに色々goでのwebプログラミングに関する初歩的なことをメモしておこうと思った。 net/httpのhello worldから始めてどういうタイミングでどのライブラリが必要になるかのメモ - podhmo's diary 今回はhandlerに依存を持ち込む方法のメモ。 方法は概ね3つ。後はそれらのバリエーション。 グローバル変数として状態を保持 handlerを関数ではなく特定のstructのメソッドとして定義し、そのstructのフィールドに保持 handlerではなくhandlerを返す関数として定義し、routerに登録するのは返されたクロージャにする ちなみにわかっている人にはこのStack Overflowのページを見せれば終了という気もする。 go - How to pass a parameter to my auth middleware to get

                net/httpのhandlerにdbなどの依存を持ち込む方法のメモ - podhmo's diary
              • Excelでテトリスを実現!VBAは使わずにRPAで作ってみたらいい感じだった【UiPath Forms 23.4】 - Qiita

                テトリスってどうやって動いてるの? そもそもテトリスって何?という方はいないと思いますが、テトリミノと呼ばれるブロックが上から落ちてくるので、それを上まで積まないようにします。ブロックを横1列全て並べると消すことができます。 テトリスってどう動いているのかご存じですか? だいたいの流れを知っていた方が今回の記事の内容が理解しやすいと思いますので、まずはテトリスの作り方をChatGPT先生に聞いてみましょう。 import pygame import random # テトリスの初期設定 pygame.init() WIDTH, HEIGHT = 800, 600 GRID_SIZE = 30 GRID_WIDTH, GRID_HEIGHT = WIDTH // GRID_SIZE, HEIGHT // GRID_SIZE FPS = 30 # 色の設定 BLACK = (0, 0, 0)

                  Excelでテトリスを実現!VBAは使わずにRPAで作ってみたらいい感じだった【UiPath Forms 23.4】 - Qiita
                • 新Edgeでクリック時にmousemoveイベントが発火される問題 | バシャログ。

                  こんにちわ。山崎です。最近更新できておらず、久々の投稿になります。 今回はとあるプロジェクトの開発中に2020年1月15日にリリースされた新Egdeでの不具合を見つけたのでそれについて書いていこうと思います。 何を作っていたのか イベントサイトの会場マップでそのマップをドラッグしたらマップの位置を移動し、 クリックしたら該当の小間番号のモーダルが開き詳細が見られるというものです。 実際のソースコードを載せることはできないので、今回複数の企業が合同セミナーイベントを行うという程でかなり簡易的なものですがdemoを作ってみました。 デモはこちら 画面収録 2020-06-29 16.35.25.mov ソースコード <!DOCTYPE html> <html> <head> <meta charset="utf8"> <title>EdgeとChromeでclick時にmousemoveが発火

                    新Edgeでクリック時にmousemoveイベントが発火される問題 | バシャログ。
                  • Jupyter Notebook のグローバル変数汚染との戦い - Qiita

                    Kaggle Advent Calendar の12日目の記事です。 こんにちは。fkubotaです。今はKaggle Expertです。 さっそくですが、Jupyter Notebook で作業をしている時、グローバル変数に困らされたことはないでしょうか? 僕は業務でもKaggleでもNotebook上で作業をすることが多々あるのですが、結構な頻度で意図しないグローバル変数が原因のバグに出会います。 そこで以下のTweetをしてみました。これが事の始まりです。 aaa = 1 def hoge(b): c = aaa + b return c print(hoge(2)) ↑これ動くの嫌なんですが、どうにかしてエラー吐かせるようにできないですか? 与えた引数の変数しか使えないようにしたいです… — fkubota 🦉 (@the_phi_is_cast) December 6, 202

                      Jupyter Notebook のグローバル変数汚染との戦い - Qiita
                    • SeedってRustのフロントエンドフレームワークが最高だったので紹介したい - Qiita

                      Component毎にローカルな状態を持つことはなく、基本的にグローバル変数一つで状態を管理します。 不安に思われるかもしれませんが、結構これでうまくいくんです。 また、更新処理が必ずUpdate内に集められているので、処理の一覧性が高くてメンテしやすいです。 個人的には、複雑なことを複雑にやってしまうことを戒めるアーキテクチャだと思っています。 Component毎に状態変数持ってたら、どれがどの値を持っているのかデバッグする時大変じゃないですか? 状態は全部同じ変数に格納しちゃえば見やすいですよ、的な 他にもさまざまなメリットがあるのですが、元ネタのElmの記事を検索すると色々出てくると思います Why Elmで検索すると、このアーキテクチャの利点がたくさん出てきます。 Yewとの比較 日本では、Rustのフロントエンドフレームワークと言えば、Yewが有名です。 どちらもフロントエンド

                        SeedってRustのフロントエンドフレームワークが最高だったので紹介したい - Qiita
                      • JavaScriptによる緯度経度と地図のXY(平面直角座標)との変換、および地理学入門

                        要約 緯度経度と地図上の平面直角座標(XY)とを変換するJavaScript関数を作成したのですが、そのプログラムの説明と、緯度経度と地図上の座標(XY)といった問題をを扱うのに最低限必要な「平面直角座標系」「世界測地系」「真北方向角」「XとYの向き」等の地理学の入門知識をまとめました。 ■作成したJavaScript ( latlonxy.js ) の概要 地図表示用のWebフレームワーク(Leaflet等)のJavaScriptから呼出し可能な関数にして、座標変換計算の計算量の多い部分を事前計算して定数値にすることで軽量化しています。 緯度経度から地図上の平面直角座標(XY)に変換し、真北方位角、縮尺係数を算出します。 平面直角座標(XY)から緯度経度に変換します。 以下の図は、国土地理院「電子国土Web」のサーバーの東京の皇居周辺の地図をLeafletを使って表示し、latlonxy

                          JavaScriptによる緯度経度と地図のXY(平面直角座標)との変換、および地理学入門
                        • 結合度 - kawasima

                          https://www.infoq.com/jp/news/2020/04/balancing-coupling-ddd-europe/ https://speakerdeck.com/vladikk/balancing-coupling-in-distributed-systems モジュールやコンポーネント間の結合の度合いは、 強度(Strength) 距離(Distance) 変動性(Volatility) の3つの切り口による評価がある。これらは直交した評価軸ではない。 強度 https://www.linkedin.com/pulse/types-coupling-ahmed-adel/ 昔から出てくる分類 内容結合(Content Coupling): 別のモジュールの内部実装を参照する 共通結合(Common Coupling): グローバル変数を共有する 外部結合(Exte

                            結合度 - kawasima
                          • GTMを利用しページのリロード時にGA4計測を行わない方法

                            GA4ではコンバージョンイベントの条件を発生させるたびに、その回数分だけカウントします。これがメリットになる場合もあれば、デメリットになるケースもあります。デメリットとしては会員登録完了ページをリロードされてしまうと、GA4では2回計測してしまうということです。自社のデータベース上では1件という形で記録されるかと思いますので、リロード分だけ差異が大きくなってしまいます。 そこでGoogle Tag Managerでリロード時にはGA4のタグを動作させないという設定を行うことで、上記の課題を防ぐことができます。その設定方法を見ていきましょう。 今回紹介する方法はリロード時にGA4の計測タグを全ページ動作させない方法になります。特定のページだけ動作させたくない場合は、トリガーにURL条件を指定した上で利用を行いましょう。なおリロードは同じページのURLが2回連続で表示されることを意味し、更新ボ

                              GTMを利用しページのリロード時にGA4計測を行わない方法
                            • Async GeneratorによるJavaScriptイベント処理のリファクタリング: お絵かきアプリを例に - Qiita

                              JavaScriptのもつ言語機能のなかで、なかなか理解が難しいとされるものにPromiseとGeneratorがあります(自分調べ) 。特にこれら2つが組み合わさったAsync Generator( async function* )と for await ... of 構文は使い所が分かりにくいので、具体的にどのようなケースで活用できるのか、お絵描きアプリを例にご紹介します。 なお、Async Generatorそれ自体について、何ぞや?という説明はしておりません。インターネットに転がっている情報(参考: MDN - イテレーターとジェネレーター)をご参照ください。あまりAsyncにフォーカスして詳しく解説されたものはありませんが、Generatorについて抑えられれば、それが非同期関数でも使えるのだなとふわっと理解できるかと思います。 お絵かきアプリのデモ 今回はこのようなお絵かきア

                                Async GeneratorによるJavaScriptイベント処理のリファクタリング: お絵かきアプリを例に - Qiita
                              • WebAssemblyでLISPインタプリタを書いた

                                WebAssemblyでLISPインタプリタを書いた WebAssemblyでLISP 1.5の処理系を書いた。 超高速WebAssembly入門 まずは このページ を読もう。 WebAssemblyのデータ型 WebAssemblyには基本的に整数型と浮動小数点数型しかない。具体的には i32, i64, f32, f64 の4種類。 文字列はC言語のように整数の並びとして表現する。 WebAssemblyのメモリ WebAssemblyにはデータを置く場所として、 スタック、ローカル変数、グローバル変数、メモリがある。 メモリはアドレスを介したアクセスができる。 逆に言えばスタック、ローカル変数、グローバル変数はアドレスを取得できない。 アドレス経由でアクセスしたいものはメモリに置く必要がある。 ;; 初期値0のグローバル変数 (global $gp (mut i32) (i32.c

                                • 週刊Railsウォッチ(20200811山の日短縮版)RSpec Queueでパラレルテスト、カロリーメイトとRubyのコラボ、Rubyのcoercionほか|TechRacho by BPS株式会社

                                  2020.08.11 週刊Railsウォッチ(20200811山の日短縮版)RSpec Queueでパラレルテスト、カロリーメイトとRubyのコラボ、Rubyのcoercionほか こんにちは、hachi8833です。昨日は山の日ということで短縮版でお送りします。 回答しそびれましたが、Ruby 2.7のirbがとてもよくなったので自分も最近pryを使わなくなってました。 Rubyプログラマのみなさんにアンケート!REPL(対話型インタプリタ)はirbとpry、どっちを使ってますか!?何か強いこだわりがあればコメントも一緒にお願いします! — Junichi Ito (伊藤淳一) (@jnchito) August 8, 2020 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)

                                    週刊Railsウォッチ(20200811山の日短縮版)RSpec Queueでパラレルテスト、カロリーメイトとRubyのコラボ、Rubyのcoercionほか|TechRacho by BPS株式会社
                                  • 3.1.3. シーケンス図/Sequence Diagrams — Simulation programming guidebook for C++ 1.0 documentation

                                    3.1.3. シーケンス図/Sequence Diagrams シーケンス図は、プログラムの中の関数呼び出しの入れ子の様子を示した図です (Fig. 1)。 Fig.1 シーケンス図の例 シーケンス図にはライフラインと呼ぶ縦の構造が並びます。 ライフラインの頭部には、シーケンス図の登場人物(participant)を表した長方形を書きます。 これは、典型的には何らかのクラスのオブジェクトですが、 例の図の一番左の線のように(メソッドではない)関数の場合もあります。 縦の短冊状の長方形はアクティベーションと言って、メソッドの実行が続いている 期間を示します。短冊が存在せずに破線が書かれている期間は、そのオブジェクトに 対して何もメソッドが呼ばれていない期間であることを示します。 3.1.3.1. シーケンス図を書く意義 シーケンス図は、処理の順序を示すと共に、処理が行われる場所(オブジ

                                    • 「説明変数」と分かりやすいコードを書くことの価値 - Neo's World

                                      「説明変数」と分かりやすいコードを書くことの価値 過去に「読み手に詳細が伝わらない変数名を書くな」っていう記事を書いたことがあるけど、今回はその発展系というか、焼き直しというか。 過去記事:data とか info とか list とか item とかいう変数名止めろ 名著「リーダブルコード」に「説明変数」という言葉が出てくる。統計学の文脈で「説明変数と目的変数」といった用いられ方がするモノとは全く別の言葉。 今回はこの「説明変数」という言葉を用いて、読み手にとって分かりやすいコードというモノがどうしてそれほど重要視されるのか、というところを整理してみる。 目次 筆者の立ち位置と前提整理 プログラムは「書いている時間」より「実行される時間」「読まれる時間」の方が長い 読み手に伝わりにくいコードが生まれる根本原因 「読み手にどう思わせたいか」が表現できていれば良いコード 悪いコード例から「説

                                      • RISC-Vのコードモデルについて(1. コードモデルとは何なのか) - FPGA開発日記

                                        RISC-Vのコードモデルについていろいろ調べる機会があったのでまとめておく。 参考にしたのは、 www.sifive.com RISC-V Large Code Model Software Workaround https://sifive.cdn.prismic.io/sifive%2F15d1d90e-f60e-42a2-b6bf-c805c6c73b0d_riscv-large-code-model-workaround.pdf 最初の疑問:LUI命令とAUIPC命令の違いは? RISC-Vの仕様書を眺めていると、LUI命令とAUIPC命令というものが定義されている。それぞれビットフィールドを眺めているとそう違いはない。挙動が少し異なるだけだ。 挙動の違いは何かというと、LUI命令はrdレジスタの上位31-20ビットに即値を書き込むが、AUIPC命令はrdレジスタに、現在のPCの

                                          RISC-Vのコードモデルについて(1. コードモデルとは何なのか) - FPGA開発日記
                                        • JavaScriptのスコープ総まとめ | 第1回 スコープの種類とその基本

                                          関数の仮引数とvarは関数スコープだけを生成し、letとconstは関数スコープとブロックスコープの両方を生成します。 ここまでは、各スコープの概要について簡単に紹介しました。次節からは、それぞれのスコープの仕様に基づき、スコープについて知っておきたい基礎的なことをまとめていきます。 グローバルスコープとwindowオブジェクト グローバル変数を宣言するというのは、実際にはグローバルオブジェクト(ブラウザの場合はwindowオブジェクト)のプロパティを追加することになります。 そのため、グローバル変数は、windowオブジェクトのプロパティとしてアクセスできます。 var scope = 'global'; // windowオブジェクトのプロパティとして追加される console.log(window.scope); // -> global なお、letやconstをトップレベルで宣言

                                            JavaScriptのスコープ総まとめ | 第1回 スコープの種類とその基本
                                          • 【書き起こし】Scenario-Based Integration Testing Platform for Microservices &#8211; 森 健太【Merpay Tech Fest 2021】 | メルカリエンジニアリング

                                            【書き起こし】Scenario-Based Integration Testing Platform for Microservices – 森 健太【Merpay Tech Fest 2021】 Merpay Tech Fest 2021は、事業との関わりから技術への興味を深め、プロダクトやサービスを支えるエンジニアリングを知れるお祭りで、2021年7月26日(月)からの5日間、開催しました。セッションでは、事業を支える組織・技術・課題などへの試行錯誤やアプローチを紹介していきました。 この記事は、「Scenario-Based Integration Testing Platform for Microservices」の書き起こしです。 森健太氏:それでは、始めさせていただきます。「Scenario-Based Integration Testing Platform for Mic

                                              【書き起こし】Scenario-Based Integration Testing Platform for Microservices &#8211; 森 健太【Merpay Tech Fest 2021】 | メルカリエンジニアリング
                                            • multiprocessingとグローバル変数

                                              2019/12/10 01:00 ※ 商品のリンクをクリックして何かを購入すると私に少額の報酬が入ることがあります【広告表示】 これは DeNA Advent Calendar 2019 の10日目のエントリーです。 9日目は jukey17 さんの Google.Protobuf.Reflectionを利用してC#でProtocol Buffersを汎用的に解析する話 でした。 動作環境など 本エントリに登場するサンプルのコードは次の環境で動作を確認しています。 macOS: 10.15.1 Python: 3.8.0 リポジトリ: https://github.com/tsuyukimakoto/chore_multiprocessing_py38 Python3.8(macOS)のmultiprocessingについて さて、Pythonには GIL(Global Interpret

                                              • C言語がコンパイル~実行されるまで

                                                記事の内容以下のソースコードがコンパイル~実行されるまでに、何が行われるのかを理解する。 細かいオプションや処理の詳細は追わない。 #include <stdio.h> #define MESSAGE "hello world\n" int main(int argc, char *argv[]) { printf(MESSAGE); return 0; } 検証環境]$ uname -rm 3.10.0-957.10.1.el7.x86_64 x86_64 ]$ gcc --version gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36) Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditi

                                                  C言語がコンパイル~実行されるまで
                                                • 【JavaScript】let、const、varの違いと使い分け方法を徹底解説 - TECH PLAY Magazine

                                                  JavaScriptの変数を使い分けるには、let、var、constの違いを理解する必要があります。それぞれの違いについて3つの役割に分けて解説します。 再宣言、再代入 再宣言は一度宣言した変数名で再度宣言すること。再代入は値が入っている変数に上書きで代入することです。 varは再宣言と再代入のどちらも可能で、constはどちらも不可能。letは再代入できるものの、再宣言できないという違いがあります。 // 再宣言 var hoge1 = 1; var hoge1 = 2; console.log(hoge1);  // 2 let hoge2 = 1; let hoge2 = 2; // ここでエラーが発生 const hoge3 = 1; const hoge3 = 2; // ここでエラーが発生 // 再代入 var hoge1 = 1; hoge1 = 2; console.lo

                                                    【JavaScript】let、const、varの違いと使い分け方法を徹底解説 - TECH PLAY Magazine
                                                  • Gevent チュートリアル

                                                    はじめに このチュートリアルはある程度の Python の知識を前提としていますが、 それ以上の知識は前提としていません。 並列プログラミングの知識も必要ありません。 このチュートリアルの目的は、 gevent を扱う道具を提供し、 読者がすでに持っている一般的な並列プログラミングの問題を手なづけて 非同期プログラムを書き始められるように手助けすることです。 寄稿者 時系列順の寄稿者: Stephen Diehl Jérémy Bethmont sww Bruno Bigras David Ripton Travis Cline Boris Feld youngsterxyf Eddie Hebert Alexis Metaireau Daniel Velkov そして Denis Bilenko に、 gevent の開発とこのチュートリアルを作る上での 指導について感謝します。 この共

                                                    • GASがV8エンジンに対応したのでドキュメント読んだ - Qiita

                                                      GASがV8エンジンに対応したのでドキュメント読んでみた 公式のV8移行ドキュメント Migrating scripts to the V8 runtime を読んだのでメモ だいぶテキトーです。 GASがV8エンジンに対応したのでドキュメント読んでみた 経緯 適用方法 移行 V8移行手順 for each (variable in object) から for (variable in object)に変える Date.prototype.getYear()からDate.prototype.getFullYear()に変える 予約語を避ける constで宣言した変数に再代入しないように書き換える XMLリテラルやXMLオブジェクトはパースする __iterator__関数でカスタムイテレータを作っていたら、ECMAScript 6 iteratorsで書き換える グローバル変数を避ける

                                                        GASがV8エンジンに対応したのでドキュメント読んだ - Qiita
                                                      • Rust で JSON5 を実行するインタプリタを作って自作言語の高速スタートアップをしよう|TechRacho by BPS株式会社

                                                        こんにち自作言語!(挨拶) 世の中のには 2 種類の人がいます。自作言語を作っている人と、これから自作言語を作る人です。(筆者の脳内調査) いや別に自作言語作らない人もいるだろって思いました? こんなタイトルの記事を読んでいるのだからあなたはこのどちらかですよね? どちらでもない? じゃあこれから自作言語を作る人になってください(圧) かく言う私も長年自作言語ワナビーをやっており、ときおり制作に手を付けては放置し、結局なかなか作れずにいるという現状で、ここをどうにか突破したい、と思いこの記事を書いています。 あっちなみに、言うまでもないとは思いますがこの記事における言語=プログラミング言語です。クウェンヤとかシンダールとかエスペラントとかリパラインとかの世界ではないです。ちなみにあっちはよく「人工言語」という言葉が使われるっぽいですね。もっとも「人工言語」は「自然言語」に対比する言葉で、プ

                                                          Rust で JSON5 を実行するインタプリタを作って自作言語の高速スタートアップをしよう|TechRacho by BPS株式会社
                                                        • CSSの代わりにSassを使って、コードのメンテナンス性を高めよう!

                                                          サイトを制作するときに使うCSS。 しかし、サイトのページ数が多かったり、機能が多いとCSSがどんどん複雑になってしまいますよね… 「もっと効率的にCSSを書いて、運用を楽にしたい!」と思うことはありませんか? そんなときに使えるのがSassです。 この記事では、Sassとはどういうものなのか、Sassの使い方、Sassを使うメリットとデメリットについて解説していきます。 Sassとは Sassとは、「Syntactically(文法的に) Awesome(イケてる・すごい) StyleSheet(スタイルシート)」の略です。 Sassはハンプトン・キャトリン氏が設計し、ネイサン・バイゼンバウム氏が開発した、CSSのメタ言語になります。 メタ言語とは、ある言語についてなんらかの記述をするための言語で、特定のルールを加えて具体的な応用を可能にするものです。 つまりSassは、「CSSを拡張し

                                                            CSSの代わりにSassを使って、コードのメンテナンス性を高めよう!
                                                          • (前半)死にかけだが影響力のある10のプログラミング言語

                                                            この記事は、著者の許可を得て配信しています。 https://hillelwayne.com/post/influential-dead-languages/ 先日、歴史上最も重要なプログラミング言語20選という"即席のでたらめな表"を読みました。彼は確かにとんでもないことをやっています。Goを”最も重要なもの"として挙げていますが、ALGOL、Smalltalk、ML は挙げていません。また、Pascalを「ほとんど死んでいる」という理由で省いています。ばかげている!これでは、「歴史的に重要な」という意味の全体的な意味が失われてしまいます。 では、いくつかの "ほとんど死んだ "言語と、それがなぜそんなに重要なのかについて話してみましょう。 免責事項:そう、これらの言語のすべてが死んでいるわけではありませんし、忘れ去られているわけでもありません。ほとんどの人がSmalltalkを聞いたこ

                                                              (前半)死にかけだが影響力のある10のプログラミング言語
                                                            • SprocketsをやめてWebpackerに移行したのでどうやったか公開する - patorashのブログ

                                                              ようやくSprocketsからWebpackerに移行したので、そのためにやったことをまとめておきます。 移行前の状態 Railsのバージョンは6.0系 Sprockets4 CoffeeScript Sass Bootstrap3を使用 yarnは使ってる 筆者(私)はECMAScriptに関してはそこまで詳しくなくて、今後習得していきたいと思っているレベル。 方針 「とにかくWebpackerに移行する」ということを念頭に置き、JavaScriptを完璧にモジュール化する等は目指さない。Webpackerで動けばいい。後でリファクタリングしていくから! Webpackerをざっくり理解する Webpackerはwebpackの設定などをほとんど意識することなく、いい感じに使えるようにしてくれるやつです。 webpackをざっくり理解する じゃあwebpackって何?となるかと思いますが

                                                                SprocketsをやめてWebpackerに移行したのでどうやったか公開する - patorashのブログ
                                                              • 音声インターフェースに最適なビジュアルインタラクションを実現するための APL テクニック - クックパッド開発者ブログ

                                                                こんにちは、 CTO 室の 山田 (@y_am_a_da) です。今回は、 Amazon Presentation Language (APL) という、Amazon Alexa 向けのアプリケーション (以下、スキルと記述します) 上で主にビジュアルの表現や、音声や液晶操作によるユーザーとのインタラクションを実現するために使われている言語についての簡単な紹介と、最近のクックパッドでの実装テクニックについてお話させていただきたいと思います。 APL とは APL とは、先に述べた通り、 Amazon Alexa 向けのスキル上で主にビジュアルの表現などを実現するために使われている言語です。画面に表示するコンポーネントの定義やデザイン、 ユーザーとの簡単なインタラクションを実現するためのロジックを以下のような JSON 形式で記述することができます。 { "document": { "typ

                                                                  音声インターフェースに最適なビジュアルインタラクションを実現するための APL テクニック - クックパッド開発者ブログ
                                                                • Railsでサービスクラスを書く時に知っておきたいこと - Qiita

                                                                  はじめに 普段、Ruby on Railsで開発しています。サービスクラスは元々Railsにないクラスですが、ファットコントローラやファットモデルを解消したりするために導入することがあると思います。 上手く使えばファットなコードをスリムにしてくれる便利なサービスクラスですが、一方でこんなサービスクラスはイヤだなと思うこともあります。 どんなサービスクラスがイヤだと思うのか、どうしてそうなるのか、どうすれば防ぐことができるのか、といったことをポエムとしてお伝えしたいと思います。 サービスクラスとは? chatGPTによると 「ビジネスロジックやデータ処理、外部APIなどの機能を提供するクラスのことです。サービスクラスは、コントローラーから呼び出されることが多く、ビジネスロジックを分離することで、アプリケーションのメンテナンスや拡張性を高めることができます。」 Railsの標準にはないので、a

                                                                    Railsでサービスクラスを書く時に知っておきたいこと - Qiita
                                                                  • 週刊Railsウォッチ(20200825後編)Rubyクラスライブラリをgem化、Rubyテストフレームワークrr、ChromebookでWindowsが動くほか|TechRacho by BPS株式会社

                                                                    2020.08.25 週刊Railsウォッチ(20200825後編)Rubyクラスライブラリをgem化、Rubyテストフレームワークrr、ChromebookでWindowsが動くほか こんにちは、hachi8833です。jnchitoさんのブログで週刊Railsウォッチをおすすめいただきました。ありがとうございます! 今日書いたブログです。これといった銀の弾丸はないかもしれませんが、僕が今までやってきたことはこんな感じです〜。 【Ruby初心者向け】伊藤さんってなんでそんなにRubyについて物知りなんですか?への回答 - give IT a try https://t.co/4xAdq0m27E — Junichi Ito (伊藤淳一) (@jnchito) August 24, 2020 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっ

                                                                      週刊Railsウォッチ(20200825後編)Rubyクラスライブラリをgem化、Rubyテストフレームワークrr、ChromebookでWindowsが動くほか|TechRacho by BPS株式会社
                                                                    • Pythonで全モジュール共通のグローバル変数を扱う方法 - Qiita

                                                                      global val1 def func1(): global val1 val1 = 100 def main(): global val1 func1() print(val1) 扱う変数の量が増えると、行頭のglobal宣言だけで数行埋まってしまいます。 プログラムをクラス化すれば良いのですが、Pythonではクラス変数の前にself.をつけなければいけないという制約があるため、コードが冗長になってしまいます。 また、モジュール外から他のモジュールのグローバル変数にアクセスしようとしても、思うようにいきません。

                                                                        Pythonで全モジュール共通のグローバル変数を扱う方法 - Qiita
                                                                      • [HTML5] Fetch API でファイルをアップロードする - ねこの足跡R

                                                                        正直、ファイルのアップロードは考慮すべきことが多すぎてあまり関わりたくないのですが、そうも行かないのが世の定めw 今回はFetchAPIを利用してサクッとファイルをアップする手法についてまとめます。 サーバ側はPHPで実装しますが、考え方は他の言語でも流用できるのではないかと思います。 基本的な原理 FetchAPI ブラウザ側 サーバ側 入力内容をチェックする ブラウザ側 ファイルが選択されているか ファイル容量 ファイル形式 サーバ側(PHP) ファイルが正常に受信できているか ファイルが送信されていない ファイル受信時にエラーが発生 何らかのアタックを受けている ファイルサイズ ファイル形式(画像ファイルか) サンプル 実行例 コード HTML JavaScript PHP その他 HTMLでファイル形式を制限する PHPでファイル容量を制限する 参考ページ 基本的な原理 Fetch

                                                                          [HTML5] Fetch API でファイルをアップロードする - ねこの足跡R
                                                                        • Goで複雑めなmockをいい感じにする - Nature Engineering Blog

                                                                          Nature エンジニアの的場です。これは第2回 Nature Engineering Blog 祭14日目のエントリです。 表題の通り、外部へのAPIリクエストをそれなりにする機能をテストするときにそのmockをどうやるのがいいかなと自分なりに試行錯誤した結果、今はこうやってますと言う内容を共有しようと思います。 TL;DR テストケース単位で必要十分なレスポンスを返す小さなmockを都度作っていくのが調子が良い。 packageはgockを経て自作のものを使うように。 mockについて mockと言う用語、本エントリでは都合の良い値を返す仮想API、またその設定をすること くらいの意味合いで捉えていただければと思います。 背景 外部APIのmockが必要になるのはバックエンド開発をしていればそれなりに遭遇するケースですが、自分の経験上ではテストスイートの頭などでちょっとしたmockを作

                                                                            Goで複雑めなmockをいい感じにする - Nature Engineering Blog
                                                                          • JavaScriptのスコープ総まとめ | 第1回 スコープの種類とその基本

                                                                            関数の仮引数とvarは関数スコープだけを生成し、letとconstは関数スコープとブロックスコープの両方を生成します。 ここまでは、各スコープの概要について簡単に紹介しました。次節からは、それぞれのスコープの仕様に基づき、スコープについて知っておきたい基礎的なことをまとめていきます。 グローバルスコープとwindowオブジェクト グローバル変数を宣言するというのは、実際にはグローバルオブジェクト(ブラウザの場合はwindowオブジェクト)のプロパティを追加することになります。 そのため、グローバル変数は、windowオブジェクトのプロパティとしてアクセスできます。 var scope = 'global'; // windowオブジェクトのプロパティとして追加される console.log(window.scope); // -> global なお、letやconstをトップレベルで宣言

                                                                              JavaScriptのスコープ総まとめ | 第1回 スコープの種類とその基本
                                                                            • とほほのJavaScriptリファレンス - とほほのWWW入門

                                                                              とほほのJavaScriptリファレンス [戻る] [索引] 基本編 JavaScript って何? JavaScript とは? JavaScript と Java の関係は? ECMAScript とは? JavaScript のバージョン ES5 の新機能 ES5.1 の新機能 ES2015(ES6) の新機能 ES2016(ES7) の新機能 ES2017(ES8) の新機能 ES2018(ES9) の新機能 ES2019(ES10) の新機能 ES2020(ES11) の新機能 ES2021(ES12) の新機能 ES2022(ES13) の新機能 ES2023(ES14) の新機能 まずは始めてみよう 準備するもの 「Hello world!!」と書いてみよう 時刻を表示してみよう 動く時計を表示してみよう JavaScript の書き方 <script>~</script>

                                                                              • 2020-06-23のJS: ECMAScript 2020リリース、Bootstrap 5 alpha、Safari 14 Beta

                                                                                JSer.info #493 - ECMAScript 2020がEcma internationalの119th General Assemblyで承認され、正式にリリースされました。 Ecma latest news Release ES2020 · tc39/ecma262 proposals/finished-proposals.md at master · tc39/proposals ECMAScript 2020では次のような変更が含まれています。 for-in mechanics - for...inやObject.keysの順番が仕様で定義された export * as ns from "mod" - 構文の追加 String.prototype.matchAll - マッチしたすべての文字列をイテレータで返す globalThis - ブラウザのwindow、Node.

                                                                                  2020-06-23のJS: ECMAScript 2020リリース、Bootstrap 5 alpha、Safari 14 Beta
                                                                                • [HTML5] カメラのフロントとリアを切り替える - ねこの足跡R

                                                                                  スマホなどでカメラを操作する際に、リアとフロントのカメラをJavaScriptで切り替える簡単なサンプルです。 カメラのフロントとリアを切り替える 実行例 以下から実際のサンプルをお試しいただけます。 miku3.net フロント、リアカメラが両方の付いた端末で実行してください。 要はスマホですね。 例えばフロントしか無い場合は、切り替えたタイミングでエラー表示が出ます 初回のアクセス時にWebブラウザから、このサイトにカメラの操作を許可して良いか聞かれますので「許可」ボタンをクリックしてください。「ブロック」ボタンを押すと設定を変更するのにメニューの少し深いところに潜る必要がありますのでご注意を。 サンプルコード CSSは別ファイルにしています。 style.css <!DOCTYPE html> <html> <head> <meta charset="utf8"> <title>Ca

                                                                                    [HTML5] カメラのフロントとリアを切り替える - ねこの足跡R