Dev
ããã¾ã§æ å½ãã¦ããããã¸ã§ã¯ãã§ã¯ããã³ãã³ãã¼ã«ã©ã¤ãºæè¨ã®ç®¡çã«é ãæ©ã¾ãããã¨ãããã¾ããã ãã¡ããæ¥æ¬èªã®ã¿å¯¾å¿ããã°ããããã¸ã§ã¯ãã§ããã°ã½ã¼ã¹ã³ã¼ãã«ã¹ãæ¸ãã¨ããã¨ããæããããæéããªãããã¸ã§ã¯ãã§ã¯å®éã«ãããã¦ãâ¦
å¥ãã£ã¹ãã¬ã¤ã«ããã¦ã£ã³ãã¦ãç¾å¨ã®ãã£ã¹ãã¬ã¤ã«ç§»åãããmacOSã¢ã㪠Ukam 0.3.1 ããªãªã¼ã¹ãã¾ããã Ukamã«ã¤ãã¦ã¯ãã¡ãã®è¨äºãã覧ãã ãã iseebi.hatenablog.com å¤æ´å 容 ãµããã£ã¹ãã¬ã¤ã«ç§»åãããå ´åã«ã¦ã£ã³ãã¦ã®ç¸¦ä½ç½®ãæ£ããâ¦
React+TypeScriptã§Google Mapsãçµã¿è¾¼ãã ãã¼ã¸ãä½ãéãããã¾ã§ã¯react-google-mapsã®ãããªã©ã¤ãã©ãªãçµã¿è¾¼ãã§å®è£ ãã¦ãã¾ããã ä¹ ãã¶ãã«Google Mapsã使ã£ãReactã¢ããªã±ã¼ã·ã§ã³ãä½ãã«ããã£ã¦ç¾å¨ã®ç¶æ³ã調ã¹ã¦ã¿ãã¨ãããå ¬å¼ã®ããâ¦
å æ¥ã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ãå ±æããä¸å ·åãèµ·ããå ´åãããã¾ãâ¦
GCPãFirebaseã«ã¯ã¡ã¼ã«é¢é£ã®ç¾è¡ãµã¼ãã¹ããªããå¤é¨ã®ã¡ã¼ã«ãµã¼ãã¹ã使ç¨ããå¿ è¦ãããã¾ãã ãã®ãããSendGridãAWS SESãªã©ãçµã¿åãããå¿ è¦ãããã¾ãã ä»åã¯AWS SESã使ããã¨ã«ãªã£ãã®ã§ããããã®ããã«ã¢ã¯ã»ã¹ãã¼ãSMTPãã¹ã¯ã¼ããâ¦
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 èªåãé»æã®é ããåå¼·ä¼ã®ã¡ã¼ã«ã¢ãã¬ã¹ããå人ã«ç¬èªãã¡ã¤ã³ã¢ãã¬ã¹ãæâ¦
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ã§åãæ±ãããã¸ã§ã¯ãã®åãæ¿ãæ¹æ³ãããã¸ã§ã¯ãä½ããã³ã«èª¿ã¹ã¦ãæ°ãããã®ã§ã
ããã¾ã§ãNotificationCenterã®addObserverã¯Swiftã§ãaddObserver(_:selector:name:object:)ã§æ¸ãã¦ããã®ã ãã©ããµã¨ããã¼@objcæ¸ããããªããªããã¨æã£ãã ããã§åç´ã«addObserver(forName:object:queue:using:)ã«ç½®ãæããã®ã ãã©ãããã§ãªã¼â¦
趣å³ã§ä½ã£ã GAE/Python Python 2.7 ã®ãµã¼ãã¹ã Python 3.7 ã«ç§»è¡ããã¨ãã«ãã£ããã¨ã®ã¾ã¨ãã§ãã
iOSã®Universal Linksãè¨å®ãã¦ããããã·ãã¥ã¬ã¼ã¿ã§ã¯æ£ããæåãããã®ã®å®æ©ã§ã¯ä¸ååããªãã¨ãããã¨ãèµ·ãã£ãã apple-site-association ã«ã¯ã[Team ID].[Bundle ID] ã®å½¢å¼ã§applinksãè¨è¼ãã¦ãã App Search API Validation Tool ã§ã¯ Erroâ¦
Google Cloud APIã®ä¸ã«ã¯ãgs://[bucket]/[path]ã®å½¢å¼ã«ãªã£ã¦ããCloud Storageã®URLãä¸ãããã¨ãã§ãããã®ããããä»åã¯Googleãã©ã¤ãã«å ¥ã£ã¦ãããã¡ã¤ã«ãCloud Storageã«ã³ãã¼ãã¦gs://ã®URLã¨ãã¦ä½¿ããããã«ãããã£ãã streamããã¾ã使â¦
ä»äºã§Twitterèªè¨¼ããµãã¼ãããã¢ããªãéçºãã¦ãã¾ããããã®èªè¨¼å¦çã«ä½¿ããã¦ããã©ã¤ãã©ãªãã¨ã¦ãå¤ãããã£ã¡ãã£ã¡è¦ååºãã¾ãã£ã¦ããã®ã§å ¥ãæ¿ãããã¨ã«ãªãã¾ããã ããããèããçµæãå°ããªã©ã¤ãã©ãªãæ°ããèµ·ããã¾ãããSimpleTwiâ¦
æ¨æ¥ã®è¨äºã§ãã¢ããªã¯Hardened Runtime対å¿ããããã®ã®ããªã½ã¼ã¹ã¨ãã¦åãè¾¼ã¾ããå®è¡ãã¡ã¤ã«ãHardened Runtimeã«å¯¾å¿ãã¦ããªãç¶æ ã ã£ãããNotarizationã«å¤±æãã¦ãã¾ããã å®ã¯ãHardened Runtimeã¸ã®å¯¾å¿ã¯ã¢ããªã®ãã«ãæã§ã¯ãªããã³ã¼ãâ¦
macOS CatalinaãããmacOSã¢ããªã¯Appleã«ããå ¬è¨¼(Notarization)ãå¿ é åããã¾ããNotarizationã®ããã»ã¹ã§ã¯ã¢ããªã®ãã¤ããªãä¸åº¦Appleã«éã£ã¦ããã«ã¦ã§ã¢ãªã©ã®ãã§ãã¯ãåãã¾ããé°å²æ°ã¯ä»¥ä¸ã®ãã¼ã¸ãããããããã§ãã applech2.com ãã¦ãâ¦
æ¥æ¬æéã®2/14ã®æãApple ããä¸ã¤ã®ã¡ã¼ã«ãå±ããã ãããã®ä¸ã§å¯ã¼ããªããèªãã§ãã¦ãä¸æ°ã«ç æ°ãå¹ã£é£ãã ã2/27 ãã2ãã¡ã¯ã¿èªè¨¼ãå¿ é ã«ãªãã¨ããå 容ãæ¸ããã¦ãããããã¯å¤§ããªåé¡ã«ãªããâ¦ï¼ã¨æã£ã¦ãã¤ã¼ãããã ãããããApple â¦
åã®éã£ã¦ãããªãã£ã¹ã§ã¯ç¤¾å ã®æå¿ã¡ã³ãã¼ãåã£ã¦ä»åºãå¼å½ã注æãã¦ãã¾ããã æ¯æ10æã¡ãã£ã¨åã¾ã§ã«FAXã§æ³¨æãã¦ããã°ããæ¼ä¼ã¿ã¾ã§ã«ãªãã£ã¹ã«å±ãã¦ãããã¨ããä»çµã¿ã§ããã ãããããªãã£ã¹ã®åã«ãã£ã¦ããå¼å½å±ããããããã¡ãâ¦
åã® iTunes ã©ã¤ãã©ãªã«ã¯10年以ä¸ããããã é³æ¥½ãå ¥ã£ã¦ããããä¾ãã°ã«ã©ãªã±ãã©ãã¯ããã©ãCDãªã©ã¯æ®æ®µè´ããªãã®ã§é¤å¤ãã¦ããã iTunes ã§ã¯ãããã¹ãã¼ããã¬ã¤ãªã¹ãã§å®ç¾ãã¦ããããä»åã¯ããããã¡ã¤ã«ãã¼ã¹ã§ããå¿ è¦ãåºã¦ãã(è´ãâ¦
ãã£ãã¾ãã®è¨äºã®Google Cloud SDKã®è¨å®ãåãæ¿ãããã¨åããããªè©±ãgit ãªãã¸ããªãã¨ã«ã¡ã¼ã«ã¢ãã¬ã¹ãåãæ¿ããããã¨ããå ´åã®è¨å®ã
GAE/Python ã«ãã£ã¬ã³ã¸ãã¦ã¿ã¦ããã®ã ããããããã»ããã¢ããã«ççã«ããã£ãã®ã§ã¡ã¢ãã¦ããã gcloud ã³ãã³ãã®ã¤ã³ã¹ãã¼ã« æçµçã«ã¯ä»¥ä¸ã®éãã ã£ããäºåã« Xcode 㨠Xcode Command Line Tools ã®ã¤ã³ã¹ãã¼ã«ã¯çµãã£ã¦ããåæã
æè¿ä»äºã§ããã©ã¤ãã¼ãã§ãPHPããæ¸ãã¦ãªãã®ã§ãä¹ ã ã«PHPãã¿ãã HTMLãå ¥åã§ãããã©ã¼ã ãä½ãããã£ã¦ããã scriptã¿ã°ãonloadãªã©ãã¹ã¯ãªãããå®è¡ããè¦ç´ ãå ¥ã£ã¦ã»ãããªãã£ãã®ã§ããã®ããªãã¼ã·ã§ã³ãæ¸ããã ãã æ£è¦è¡¨ç¾ã¨ãã¦å¦â¦
ã¨ã£ã¦ãç°¡åã ã£ããã©ãå人ã®ã¡ã¢æ¸ãç¨åº¦ã åæè¨å® Pi Zero W ç¨ã® Raspian å ¥ãã¨ããããæåããããã±ã¼ã¸ã¨ãã¯æ´ã£ã¦ãã é£ã°ããã¼ã³ã³ã®è¨å® $ sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 \ 10 D0 3F 94 59 47 46 â¦