ã·ã³ãã«ãªä»çµã¿ã§æ§ã ãªã¯ã¼ã¯ããã¼ã«é©åããããã¨ãã§ãããã¼ã«ã©ã¤ãºæè¨ç®¡çãã¼ã« hoshi 0.8.0 ããªãªã¼ã¹ãã¾ããã hoshi ã«ã¤ãã¦ã¯ãã¡ãã®è¨äºãã覧ãã ããã ä»åã®ä¸»ãªå¤æ´ã¯2ã¤ãããä¸ã¤ã¯hoshi versionå½¢å¼ã§ã®ãããªãã·ã¥ã§ããããâ¦
ããã¾ã§æ å½ãã¦ããããã¸ã§ã¯ãã§ã¯ããã³ãã³ãã¼ã«ã©ã¤ãºæè¨ã®ç®¡çã«é ãæ©ã¾ãããã¨ãããã¾ããã ãã¡ããæ¥æ¬èªã®ã¿å¯¾å¿ããã°ããããã¸ã§ã¯ãã§ããã°ã½ã¼ã¹ã³ã¼ãã«ã¹ãæ¸ãã¨ããã¨ããæããããæéããªãããã¸ã§ã¯ãã§ã¯å®éã«ãããã¦ãâ¦
å¥ãã£ã¹ãã¬ã¤ã«ããã¦ã£ã³ãã¦ãç¾å¨ã®ãã£ã¹ãã¬ã¤ã«ç§»åãããmacOSã¢ã㪠Ukam 0.3.1 ããªãªã¼ã¹ãã¾ããã Ukamã«ã¤ãã¦ã¯ãã¡ãã®è¨äºãã覧ãã ãã iseebi.hatenablog.com å¤æ´å 容 ãµããã£ã¹ãã¬ã¤ã«ç§»åãããå ´åã«ã¦ã£ã³ãã¦ã®ç¸¦ä½ç½®ãæ£ããâ¦
2023å¹´6æã«ã»ã¬ãe-POWER LUXIONã«ä¹ãæãã¦ãããã»ã¬ãã«æ°ããè¨å®ãããæä¸ä½ã¢ãã«ã§ãä¸å®æ¡ä»¶ä¸ã§ãã³ãã«ããæãé¢ãããããã¤ããã2.0ãæè¼ãããã¢ãã«ã ã ãã¨ãã¨2018å¹´æ«ããã»ã¬ã e-POWERã«ä¹ã£ã¦ãããã©ã5å¹´ã®æ®ã¯ã¬ã§è²·ã£ã¦ãã¦â¦
以åãå¥ãã£ã¹ãã¬ã¤ã«ããã¦ã£ã³ãã¦ãç¾å¨ã®ãã£ã¹ãã¬ã¤ã«ç§»åãããmacOSã¢ããªãä½ãã¾ããã iseebi.hatenablog.com ã©ãããã¢ããªã ã£ããã¨ããã®ãå度説æãã¦ããã¨ããã«ããã£ã¹ãã¬ã¤ç°å¢ã§Macã使ã£ã¦ããã¨ãã«ããããã£ã¹ãã¬ã¤ãå¥ã®å ¥â¦
React+TypeScriptã§Google Mapsãçµã¿è¾¼ãã ãã¼ã¸ãä½ãéãããã¾ã§ã¯react-google-mapsã®ãããªã©ã¤ãã©ãªãçµã¿è¾¼ãã§å®è£ ãã¦ãã¾ããã ä¹ ãã¶ãã«Google Mapsã使ã£ãReactã¢ããªã±ã¼ã·ã§ã³ãä½ãã«ããã£ã¦ç¾å¨ã®ç¶æ³ã調ã¹ã¦ã¿ãã¨ãããå ¬å¼ã®ããâ¦
å人ã§è¤æ°å°ã®VPSãéç¨ãã¦ãããããããããªãã®ããµãã¼ãåããã¦OSã®å ¥ãç´ããå¿ è¦ã«ãªã£ãã®ãæ©ã«VPSã®è¦ç´ãããããã¨ã«ãªã£ããå ã 3å°ã®VPSãéç¨ãã¦ãããã1å°æ¸ãããã
å æ¥ãLambdaããIPv6ã§ã¢ã¯ã»ã¹ã§ããããã«ãã ã§æ¸ããã¨ãããIPv4ã¢ãã¬ã¹èª²éãé¿ããããã«LightsailãIPv6 Onlyã®ã¤ã³ã¹ã¿ã³ã¹ã«ãã¦ãã¾ããã LightsailãIPv6/IPv4ãã¥ã¢ã«ã¹ã¿ãã¯ããIPv6 Onlyã«ããã«ã¯ãä¸åº¦åæ¢ããä¸ã§ã¹ãããã·ã§ãããâ¦
AWSã§ã¯å種ãµã¼ãã¹ã®ã°ãã¼ãã«IPv4ã¢ãã¬ã¹ãææåããããã¨ã«ãªããEC2ãªã©ã§ä¸é¨ç¡ææ ããããã®ã®ãåºæ¬çã«ã¯IPã¢ãã¬ã¹ãããæ¦ã500ã600åç¨åº¦ã®èª²éé¡ããããããã«ãªãã¾ããã ç¡åçG Suiteãå»æ¢ãããã®ã§AWS SESã¨Dockerã§ã¡ã¼ã«éåä¿¡â¦
Firebase Authenticationã§ã¯æ§ã ãªèªè¨¼ãç°¡åã«å°å ¥ãããã¨ãã§ããGoogleãAppleãFaccebookã¨ãã£ãããå©ç¨ããããµã¼ãã¹ãçµ±åããèªè¨¼ã®ã»ãã«ãã«ã¹ã¿ã ã®èªè¨¼ã·ã¹ãã ã¨çµ±åãããã¨ãã§ãã¾ãã ãããå©ç¨ãã¦ãDiscordã®ã¢ã«ã¦ã³ãã使ã£ã¦ãã°â¦
mkcertã使ç¨ããã¨ãã¼ã«ã«ã®éçºç°å¢ã§ããlocalhostãhttpsã«ãããã¨ãã§ãã¾ãã[^1] ç°¡åã«ãããã¨ããã¨ãlocalhostãhttpsã«ãããã¨ã«ãªãã¾ãããããã ã¨è¤æ°ã®ãµã¼ãã¹ãæ±ãå ´åã«CookieãLocalStorageãå ±æããä¸å ·åãèµ·ããå ´åãããã¾ãâ¦
M2 MacBook Air(M2, 13ã¤ã³ã)ã«è²·ãæãã¾ããã å使ã£ã¦ããã®ã¯2018å¹´ã¢ãã«ã®MacBook Pro 15ã¤ã³ãã§ããã å人çã«5å¹´è²·ãæããµã¤ã¯ã«ã«ãã¦ããã®ã¨ãæè¿ãã¡ã³ãåãå ´é¢ãå¤ããªãããããintelã¯éçãã¨æã£ã次第ã§ãã å ã ã¢ããªã¨ã³ã¸ãã¢â¦
GCPãFirebaseã«ã¯ã¡ã¼ã«é¢é£ã®ç¾è¡ãµã¼ãã¹ããªããå¤é¨ã®ã¡ã¼ã«ãµã¼ãã¹ã使ç¨ããå¿ è¦ãããã¾ãã ãã®ãããSendGridãAWS SESãªã©ãçµã¿åãããå¿ è¦ãããã¾ãã ä»åã¯AWS SESã使ããã¨ã«ãªã£ãã®ã§ããããã®ããã«ã¢ã¯ã»ã¹ãã¼ãSMTPãã¹ã¯ã¼ããâ¦
åã¯MacBook Proã¨PS5ãåããã£ã¹ãã¬ã¤ã«ç¹ãããã£ã¹ãã¬ã¤ã®å ¥åãã¡ãã¥ã¼ã§åãæ¿ãã¦ä½¿ã£ã¦ããã MacBook Proã®ãã£ã¹ãã¬ã¤ããµããã£ã¹ãã¬ã¤ã¨ãã¦ä½¿ã£ã¦ãããPS5ãèµ·åãã¦ãã£ã¹ãã¬ã¤ã«è¡¨ç¤ºãã¦ããã¨ãã¯MacBookã«æ»ç¥ãµã¤ããåºãããDiscoâ¦
macOSã®ã¢ããªéçºã®ã話ãã èµ·åä¸ã®ã¦ã£ã³ãã¦ãä¸è¦§ããã«ã¯ãCGWindowListCopyWindowInfoã使ãã struct Window: CustomStringConvertible { let rawData: [String: AnyObject] var name: String? { get { return rawData[kCGWindowName as String] asâ¦
20æ¥æ¨æã大ããªãã¥ã¼ã¹ãé£ã³è¾¼ãã§ãã¾ããã2012å¹´ã«æä¾ãçµäºãã¦ããã®ã¾ã¾9å¹´è¿ãå©ç¨ã§ãã¦ããæ§ç¡åçG Suiteã7æ1æ¥ã«å»æ¢ããã¦ãã¾ãã¾ãã www.itmedia.co.jp èªåãé»æã®é ããåå¼·ä¼ã®ã¡ã¼ã«ã¢ãã¬ã¹ããå人ã«ç¬èªãã¡ã¤ã³ã¢ãã¬ã¹ãæâ¦
使ãè¾¼ã¾ããUSB-C Digital AV Multiport ã¢ããã¿ æ¨é¡ã®éããªã®ã§ãããApple USB-C Digital AV Multiport ã¢ããã¿ã¯ãAppleç´æ£ã®USB-CããUSB-AãHDMIãUSB-Cã®å é»ã¢ããã¿ã«å¤æãã¦ãããã¢ããã¿ã§ããMacBookã¦ã¼ã¶ã¼ãªã1æ¬ã¯æã£ã¦ããã¯ãã§ãâ¦
Google Cloud TasksããApp Engine HTTPã¿ã¹ã¯ã§ããã¯ã°ã©ã¦ã³ãå¦çãããã¢ããªã±ã¼ã·ã§ã³ãä½ã£ã¦ããã ãã©ãã£ãã¯åå²ã§æ§åãè¦ãªãããªãªã¼ã¹ãããå ´åãApp Engine HTTPã¯ã©ã®ãã¼ã¸ã§ã³ã®ã¿ã¹ã¯ãå®è¡ããã®ããããããªãã£ãã®ã§å®é¨ãã¦ã¿ãâ¦
macOSç¨ã®ãã¼ã«ã¢ããªã±ã¼ã·ã§ã³ãã¤ã³ã¹ãã¼ã«ããæ¹æ³ãã·ã§ã«ã¹ã¯ãªããã ã£ããITã¨ã³ã¸ãã¢åãã ã£ããè¯ããã§ããã©ãããã§ãªã人ã対象ã ã£ãã®ã§ãããã«GUIãå¿ è¦ã§ãAutomatorã§æ軽ã«ã§ããªããã¨æã£ã¦èª¿ã¹ã¦ã¿ã¾ããã å®è¡ãããã·ã§ã«ã¹â¦
æ¯åãã£ã¦æ¯åå¼ã£ããã£ã¦ãæ°ãããã®ã§ã¡ã¢ãæ¬å½ã¯Terraformã¨ã使ã£ãæ¹ãè¯ããã ãããã©ã ã¨ããããæä½éå¿ è¦ãªãã®ã åæ TypeScript 㧠GCF ãä½ã£ã¦ cloudbuild.yaml ãèªã¾ãã¦ãããã¤ãã
Firebaseã®ãã£ã¼ã«ããä¾ãã°ãããã®ãã¼ã«ã¡ã¼ã«ã¢ãã¬ã¹ã使ããããã¿ã¼ã³ã¯ããããã¨æããä¾ãã°ããããã®ã permissions: { "[email protected]": "read", "[email protected]": "admin" } ã§ããããã¯ã¨ãªãããã¨ãã㨠permissions.iseebi@exâ¦
ãµã¤ãå ¨ä½ããªãã¤ã¬ã¯ãããããã¨ãããã¨ãããã¨æããä¾ãã°ãwwwã§ã¡ã¤ã³ãµã¤ãããã¹ããã¦ãããã©ãApexãã¡ã¤ã³ã«ã¢ã¯ã»ã¹ããã¨ããwwwã«ãªãã¤ã¬ã¯ããããããã¨ãã®å ´åã ãä»ã«ãã¡ãã£ã¨è¤éãªãªãã¤ã¬ã¯ãããããããããã¨ãããã¨ããâ¦
gcloudã§åãæ±ãããã¸ã§ã¯ãã®åãæ¿ãæ¹æ³ãããã¸ã§ã¯ãä½ããã³ã«èª¿ã¹ã¦ãæ°ãããã®ã§ã
æ¨å¹´ã®é ã«è»¢è·ãã¦ãããªã«ã¨ããä¼ç¤¾ã«ãä¸è©±ã«ãªã£ã¦ãã*2ãç§å¦æè¡ã®åã§ç°å¢åé¡ã解決ããã¨ããç®æ¨ãå ã«ããã¿æ¾ãSNS ããªã«ããITã«é¢ãããæ§ã ãªæè¡ã使ã£ã調æ»ããã¸ã§ã¯ããªã©ã®ãããã¯ã/ããã¸ã§ã¯ããæ¨é²ãã¦ããä¼ç¤¾ã ã
æ¯å¹´æä¾ã®æ è¡ã«æ¥ã¦ãã®ã ãã©ãã¡ãã£ã¨æ®æ®µã¨ç°ãªãç¶æ³ã§å°ã£ãã¨ãããã¨ããã£ãã®ã§ã¡ã¢ãå ¼ãã¦ã æè¿ã®æ¥ç£è»ã§ããç¨åº¦ã®ã°ã¬ã¼ãã«ãªãã¨ãã¤ã³ããªã¸ã§ã³ãã«ã¼ã ãã©ã¼ããªããã®ãã¤ãã¦ãããè»ã®ã«ã¼ã ãã©ã¼ãã«ã¡ã©ã«ãªã£ã¦ãã¦ãå¾é¨åº§â¦
ããã¾ã§ãNotificationCenterã®addObserverã¯Swiftã§ãaddObserver(_:selector:name:object:)ã§æ¸ãã¦ããã®ã ãã©ããµã¨ããã¼@objcæ¸ããããªããªããã¨æã£ãã ããã§åç´ã«addObserver(forName:object:queue:using:)ã«ç½®ãæããã®ã ãã©ãããã§ãªã¼â¦
å æ¥ã®è»ä¸æ³è£ åç´¹ä»ã¨ã³ããªã§æ¸ãã¦ããã¨ã¢ã¼ãããã ããæ°æã¡è¶³ä¸ãçãã¦ãããå°ãé·ããã®ã«è²·ãæãããã¨æã£ã¦ããã ããããã»ã¬ãã®3åç®ãçæ¹åããå ´åãããçæ¹ã¨å£ã®éã«ã§ããã¹ãã¼ã¹ã®å¹ ã¯65cmç¨åº¦ãã·ã³ã°ã«ãµã¤ãºã®ã¨ã¢ã¼ãããâ¦
è»ä¸æ³ãã¯ããã¦ããããã£ã³ãã³ã°ã«ã¼ã«ã¤ãã¦ã®æ å ±ãè¦ããã¨ãããªãå¢ãããå½ç¶ãªããè»ãä¹ãæãããã¨ã¯å ¨ç¶èãã¦ããªãã®ã ãã©ãå°æ¥çã«ãã£ã³ãã³ã°ã«ã¼ããã¼ã¹ã«çæ´»ã§ããªãããªã¨ããèããå°ãé ãããããã¨ããã£ãããåç´ã«æ§ããâ¦
*1 ã»ã¬ãe-POWER è»ä¸æ³ããã°3åç®ãä»åã¯è¡ã£ã¦ããè»ä¸æ³æ ãç´¹ä»ã ã¨ãã£ã¦ããç¹ã«10æ11æã¯ã²ã©ãã¦æ¯é±ã©ããã«è»ä¸æ³ã«è¡ã£ã¦ãã¦å ¨é¨æããã¨ããããªãã2ã¶æã§ã常ã«ã©ããã§è»ä¸æ³ãã¦ã人ãã¿ãããªã¤ã¡ã¼ã¸ãä¼ç¤¾å ã§ã§ãããã£ããããâ¦
ããããªæ å ±ãéããªããä½åº¦ãè»ä¸æ³æ ããã¦ããã¨ãããèªåã®ã¹ã¿ã¤ã«ãåºã¾ãã¤ã¤ããã®ã§ãã®ãããã§ä¸åº¦ã¾ã¨ãã¦ã¿ããã¨æãé£è¼ãä»åã¯è»ä¸æ³ã«ä½¿ã£ã¦ããã°ããºã«ã¤ãã¦ã®ã¾ã¨ãã