投稿時間:2023-03-30 19:39:04 RSSフィード2023-03-30 19:00 分まとめ(44件)

カテゴリー等 サイト名等 記事タイトル・トレンドワード等 リンクURL 頻出ワード・要約等/検索ボリューム 登録日
IT ITmedia 総合記事一覧 [ITmedia News] 太陽の300億倍、大質量“超巨大ブラックホール” 大きさも過去最大、英大学発見 https://www.itmedia.co.jp/news/articles/2303/30/news221.html itmedia 2023-03-30 18:33:00
IT ITmedia 総合記事一覧 [ITmedia News] りそな、2%ポイント還元のデビットカード 月会費700円で https://www.itmedia.co.jp/news/articles/2303/30/news220.html itmedia 2023-03-30 18:29:00
IT ITmedia 総合記事一覧 [ITmedia Mobile] ドコモの「AQUOS R6」、Android 13にOSアップデート可能に https://www.itmedia.co.jp/mobile/articles/2303/30/news217.html 利用可能 2023-03-30 18:18:00
IT ITmedia 総合記事一覧 [ITmedia News] 富士通、コンビニでの住民票誤交付について謝罪 原因は負荷上昇による“遅延” https://www.itmedia.co.jp/news/articles/2303/30/news216.html itmedia 2023-03-30 18:15:00
IT ITmedia 総合記事一覧 [ITmedia ビジネスオンライン] LDH所属の人気タレント 3位「ATSUSHI」、2位「関口メンディー」、1位は? https://www.itmedia.co.jp/business/articles/2303/30/news203.html atsushi 2023-03-30 18:10:00
TECH Techable(テッカブル) 360度回転するハンドルを搭載!10.9インチiPad用耐衝撃ケースが登場 https://techable.jp/archives/201560 pdaipadbk 2023-03-30 09:00:27
AWS AWS Japan Blog Amazon Route 53 を用いたディザスタリカバリ (DR) のメカニズム https://aws.amazon.com/jp/blogs/news/creating-disaster-recovery-mechanisms-using-amazon-route-53/ amazonroute 2023-03-30 09:13:49
python Pythonタグが付けられた新着投稿 - Qiita test https://qiita.com/ForestSeo/items/8e66311496ad6b9bdd1f toolsproductrangerange 2023-03-30 18:22:34
Ruby Rubyタグが付けられた新着投稿 - Qiita RailsでのN+1問題と向き会ってみる https://qiita.com/disk042/items/ce0ea1774c29cb981df2 rails 2023-03-30 18:15:58
Linux Ubuntuタグが付けられた新着投稿 - Qiita 日付より古いファイルを削除するやり方 https://qiita.com/nnjn-fish/items/17b32f2f3345cfb7c7c5 gconstchardirpathintdays 2023-03-30 18:08:48
Docker dockerタグが付けられた新着投稿 - Qiita [有料級] rails7(turbo), docker, bootstrap5を使ったtodoリストの作り方 (環境構築編) https://qiita.com/streasure0426/items/dae00c2eb2b6c72324a3 docker 2023-03-30 18:47:23
Azure Azureタグが付けられた新着投稿 - Qiita Azure Administrator(AZ-104):Azure でのストレージの実装と管理「Azure Storageの暗号化」 https://qiita.com/fsd-jume/items/21f5da17db39d78481b1 azureadministratoraz 2023-03-30 18:47:15
Ruby Railsタグが付けられた新着投稿 - Qiita [有料級] rails7(turbo), docker, bootstrap5を使ったtodoリストの作り方 (環境構築編) https://qiita.com/streasure0426/items/dae00c2eb2b6c72324a3 docker 2023-03-30 18:47:23
Ruby Railsタグが付けられた新着投稿 - Qiita RailsでのN+1問題と向き会ってみる https://qiita.com/disk042/items/ce0ea1774c29cb981df2 rails 2023-03-30 18:15:58
技術ブログ Developers.IO マウス操作でデータフレームを可視化できるPyGWalkerを試してみた https://dev.classmethod.jp/articles/dataframe-visualization-with-pygwalker/ readme 2023-03-30 09:13:13
技術ブログ Developers.IO MixpanelのデータをChatGPTにAPI連携して仮説立てをさせてみる https://dev.classmethod.jp/articles/mixpanel-chatgpt-api/ chatgpt 2023-03-30 09:02:41
技術ブログ クックパッド開発者ブログ クックパッドは RubyKaigi 2023 にWi-Fi & Rubyists on Rails Sponsorとして協賛しています https://techlife.cookpad.com/entry/2023/03/30/180500 クックパッドはRubyKaigiにWiFiampRubyistsonRailsSponsorとして協賛していますこんにちはCTO室の緑川です。 2023-03-30 18:05:00
海外TECH DEV Community Web3 App Development Using Solidity and Truffle Framework https://dev.to/cryptoneroo/web3-app-development-using-solidity-and-truffle-framework-2p3e Web App Development Using Solidity and Truffle FrameworkWeb App Development Using Solidity and Truffle FrameworkHere are some guidelines for web app development As technology evolves and the internet slowly transitions from web to the new web internet environment which comes with a higher level of security and privacy a lot of developers are beginning to see web app development as the new gold mine as there is a massive amount of untapped potential that exists in the web industry Therefore in this post we would be giving a basic guide to web app development using solidity to develop a smart contract and truffle framework in designing and creating the infrastructure and architecture for the web app Just as it is with creating any other app we need to define the process so as to make the web app development process easy and smooth The following are some basic guidelines needed in creating a web app Define the objective and scope of your projectBefore diving into building a Web platform or a web app it is essential to define the goal and objectives of your platform Based on your requirements determine what kind of blockchain you need whether it is a public or a private blockchain and what consensus mechanism is best suited for your platform You should also decide on the data structure and smart contracts that will power your platform Choose the right development stackOnce you have defined your goals you need to choose the right development stack You can select from a variety of blockchain programming languages including Solidity Java and Go among others Moreover you need to choose the right blockchain platform that hosts your smart contract code such as Ethereum Hyperledger Fabric or Corda Develop and test smart contractsDeveloping smart contracts is a crucial part of building Web platforms Smart contracts are self executing contracts that run on the blockchain and can automate the execution of predefined operations You should write and test your smart contract code before deploying them on the blockchain Design the architecture and infrastructureThis step involves designing the architecture and infrastructure of your Web platform You will need to decide on the type of nodes you will use the consensus mechanism storage and security You should also define the API standards and protocols for your platform Deploy and integrate smart contractsAfter testing you need to deploy your smart contract to the blockchain network Once deployed you can invoke the smart contract methods through APIs and integrate them with your front end You can use blockchain explorer tools to monitor the status and activity of your smart contracts Configure Serverless Infrastructure Configure the serverless infrastructure to host the blockchain and middleware technologies required to run the DApp Ensure data security and privacy As you re handling user data it is essential to ensure that the platform you re building is secure and meets privacy standards Test the platform Once you ve developed and deployed your platform test it thoroughly to ensure it meets your requirements and works as intended These are the basic steps to develop a Web platform However the development process can get more complicated based on the nature and scope of your platform A Practical Example Illustration of Web App DevelopmentWe would go further and take a practical approach using the guidelines we have highlighted above So let s assume we want to create a web app that creates a new user decentralized wallet upon registration on a website generating a referral ID unique to the wallet and enabling the user wallet to quickly get a referral bonus each time the referral ID is used to register a new user on the website Using the guidelines above we would do the following We would choose the blockchain network in which we would carry out the web app development protocol In this case we would use Ethereum Therefore we would develop our smart contract on the Ethereum network and since we are writing our smart contract on the Ethereum network we would be writing our code using solidity an ideal language for the Ethereum network You also need to determine the right framework to use in developing your web app and how it would be deployed In this case we would be using the Truffle framework to completely develop our web app These are the general steps involved in designing the architecture and infrastructure for a web platform The specific tools and technologies used will depend on the specific requirements of your platform Since we have already determined what we are working on and the code language to use we would choose the framework which we will use to design the architecture and infrastructure for the web app In this project we would be using the truffle framework Here are the steps to follow Firstly you create a new Ethereum project using Truffle framework truffle initYou then Install the required dependencies assuming you ve already installed Truffle and NodeJS npm install save dev openzeppelin contracts truffle hdwallet providerThe next step is to input the smart contract code you wrote using solidity that is if you have written a smart contract code already if not you can write the smart contract into the truffle framework to handle user registration referral tracking and bonus payouts Here is an example SPDX License Identifier MITpragma solidity import openzeppelin contracts token ERC IERC sol import openzeppelin contracts token ERC utils SafeERC sol contract ReferralProgram using SafeERC for IERC Safe contract call with ERC tokens struct User address referrer uint bonus bool isRegistered mapping address gt User public users IERC public token The token used to pay for referrals address public owner The owner of the platform event UserRegistered address indexed user address indexed referrer event ReferralBonus address indexed user address indexed referrer uint bonus constructor address tokenAddress token IERC tokenAddress owner msg sender function register address referrer external require users msg sender isRegistered User already registered if referrer address amp amp referrer msg sender users msg sender referrer referrer uint bonus The referral fee in tokens users msg sender bonus bonus users msg sender isRegistered true token safeTransfer referrer bonus emit ReferralBonus msg sender referrer bonus else users msg sender isRegistered true emit UserRegistered msg sender referrer Compile the smart contract truffle compileWrite the test for smart contract SPDX License Identifier MITpragma solidity import truffle Assert sol import truffle DeployedAddresses sol import contracts ReferralProgram sol contract TestReferralProgram ReferralProgram referralProgram ReferralProgram DeployedAddresses ReferralProgram function testUserRegistration public Test user registration with a referral address alice address x address bob address x referralProgram register bob from alice ReferralProgram User memory aliceUser referralProgram users alice ReferralProgram User memory bobUser referralProgram users bob Assert equal aliceUser referrer bob Alice s referrer should be Bob Assert equal bobUser bonus Bob s bonus should be tokens Test the smart contract truffle testCreate a Frontend folder to host the HTML CSS and JavaScript files for our application mkdir Frontendcd FrontendCreate an index html file and add the following code lt DOCTYPE html gt lt html lang en gt lt head gt lt meta charset UTF gt lt title gt Referral Program lt title gt lt head gt lt body gt lt h gt Referral Program lt h gt lt label for register gt Enter referrer address lt label gt lt input type text id referrerAddress gt lt button id register gt Register lt button gt lt script src app js gt lt script gt lt body gt lt html gt Create a style css file and add the following code body padding px font family sans serif h font size px margin bottom px label display block font size px margin bottom px input type text padding px font size px width border px solid ccc border radius px margin bottom px button background color ab padding px px color fff font size px cursor pointer border none border radius px Create an app js file and add the following code const web new Web Web givenProvider const contractAddress YOUR CONTRACT ADDRESS const contractABI inputs internalType address name tokenAddress type address stateMutability nonpayable type constructor inputs internalType address name referrer type address name register outputs stateMutability nonpayable type function inputs internalType address name type address name users outputs internalType address name referrer type address internalType uint name bonus type uint internalType bool name isRegistered type bool stateMutability view type function const referralProgram new web eth Contract contractABI contractAddress document getElementById register addEventListener click async gt const referrerAddress document getElementById referrerAddress value await referralProgram methods register referrerAddress send from window ethereum selectedAddress alert You have successfully registered Start a local web server to host our frontend npm install g http servercd Frontendhttp serverOpen a browser and navigate to http localhost to view our application Enter the referral address and click Register In this process you would be able to test for any errors and then debug if any is found And that s it You have now created a prototype of your decentralized registration and referral platform Do make sure that you replace YOUR CONTRACT ADDRESS with the actual address of the deployed smart contract when implementing this 2023-03-30 09:55:04
海外TECH DEV Community Lesser Known Screen Sharing APIs https://dev.to/dyte/lesser-known-screen-sharing-apis-4g29 Lesser Known Screen Sharing APIs What are screen sharing APIs Screen sharing has become an essential part of many web applications as it enables remote collaboration and support While most developers are familiar with the standard WebRTC APIs for screen sharing there are other lesser known APIs that offer additional functionality and control In this blog post we ll explore four of these screen sharing APIs and provide code snippets to help you get started Although these APIs are limited to Google Chrome for now they certainly are extremely fun to play around with Region Capture APIThe Region Capture API enables you to capture only a portion of the user s screen rather than the entire screen This can be useful if you want to capture a specific region such as a particular application window or a section of a webpage Here s an example of how to use the Region Capture API You define a CropTarget in your web app by calling CropTarget fromElement with the element of your choice as input In the main web app associate mainContentArea with a new CropTargetconst mainContentArea document querySelector mainContentArea const cropTarget await CropTarget fromElement mainContentArea You pass the CropTarget to the video conferencing web app Send the CropTarget to the video conferencing web app const iframe document querySelector videoConferenceIframe iframe contentWindow postMessage cropTarget The video conferencing web app asks the browser to crop the track to the area defined by CropTarget by calling cropTo on the self capture video track with the crop target received from the main web app Ask the user for permission to start capturing the current tab const stream await navigator mediaDevices getDisplayMedia preferCurrentTab true const track stream getVideoTracks Start cropping the self capture video track using the CropTarget received over window onmessage await track cropTo cropTarget Enjoy Transmit remotely the cropped video track with RTCPeerConnection A really cool privacy feature coming soon is cropping in three dimensions With a z index Occluding and occluded contentFor Region Capture only the position and size of the target matter not the z index Pixels occluding the target will be captured and occluded parts of the target will not This is a corollary of Region Capture being essentially cropping One alternative which will be its own future API is Element level Capture that is capture only pixels associated with the target regardless of occlusions Such an API has a different set of security and privacy requirements than simple cropping Google Chrome s Sample Capture Handle APIThe Capture Handle API provides a way for the capturing webpage to communicate with the captured webpage It makes things like navigating between slides using controls on the video call itself possible rather than continuously having to switch between the video call and the presentation webpage Captured sideWeb apps can expose information to would be capturing web apps It does so by calling navigator mediaDevices setCaptureHandleConfig with an optional object consisting of these members handle Can be any string up to characters exposeOrigin If true the origin of the captured web app may be exposed to capturing web apps permittedOrigins Valid values are i an empty array ii an array with the single item or iii an array of origins If permittedOrigins consists of the single item then CaptureHandle is observable by all capturing web apps Otherwise it is observable only to capturing web apps whose origin is in permittedOrigins The following example shows how to expose a randomly generated UUID as a handle and the origin to any capturing web app const config handle crypto randomUUID exposeOrigin true permittedOrigins navigator mediaDevices setCaptureHandleConfig config Capturing sideThe capturing web app holds a video MediaStreamTrack and can read the capture handle information by calling getCaptureHandle on that MediaStreamTrack This call returns null if no capture handle is available or if the capturing web app is not permitted to read it If a capture handle is available and the capturing web app is added to permittedOrigins this call returns an object with the following members handle The string value set by the captured web app with navigator mediaDevices setCaptureHandleConfig origin The origin of the captured web app if exposeOrigin was set to true Otherwise it is not defined The following example shows how to read the capture handle information from a video track Prompt the user to capture their display screen window tab const stream await navigator mediaDevices getDisplayMedia Check if the video track is exposing information const videoTrack stream getVideoTracks const captureHandle videoTrack getCaptureHandle if captureHandle Use captureHandle origin and captureHandle handle Monitor CaptureHandle changes by listening to capturehandlechange events on a MediaStreamTrack object Changes happen when The captured web app calls navigator mediaDevices setCaptureHandleConfig A cross document navigation occurs in the captured web app videoTrack addEventListener capturehandlechange event gt captureHandle event target getCaptureHandle Consume new capture handle Google Chrome s sample Screen Sharing Controls APIThe Screen Sharing Controls API provides a way to customize the UI for screen sharing You can use this API to create your own custom screen sharing controls or to modify the default controls provided by the browser Here s an example of how to use the Screen Sharing Controls API displaySurfaceWeb apps with specialized user journeys which work best with sharing a window or a screen can still ask Chrome to offer windows or screens more prominently in the media picker The ordering of the offer remains unchanged but the relevant pane is pre selected The values for the displaySurface option are browser for tabs window for windows monitor for screens const stream await navigator mediaDevices getDisplayMedia Pre select the Window pane in the media picker video displaySurface window surfaceSwitchingIf surfaceSwitching dom displaymediastreamoptions surfaceswitching is set to include the browser will expose said button If set to exclude it will refrain from showing the user that button const stream await navigator mediaDevices getDisplayMedia video true Ask Chrome to expose browser level UX elements that allow the user to switch the underlying track at any time initiated by the user and without prior action by the web app surfaceSwitching include selfBrowserSurfaceTo protect users from themselves video conferencing web apps can now set selfBrowserSurface dom displaymediastreamoptions selfbrowsersurface to exclude Chrome will then exclude the current tab from the list of tabs offered to the user To include it set it to include const stream await navigator mediaDevices getDisplayMedia video true selfBrowserSurface exclude Avoid Conditional Focus APIThe Conditional Focus API provides a way to capture only the active window or application rather than capturing the entire screen or a region of the screen This can be useful if you want to capture the window the user is currently interacting with while ignoring other windows or the desktop Here s an example of how to use the Conditional Focus API First create the controller const controller new CaptureController Prompt the user to share a tab a window or a screen const stream await navigator mediaDevices getDisplayMedia controller const track stream getVideoTracks const displaySurface track getSettings displaySurface Then you can conditionally set the focus behavior Retain focus if capturing a tab dialed to example com Focus anything else const origin track getCaptureHandle origin if displaySurface browser amp amp origin lt gt controller setFocusBehavior no focus change else if displaySurface monitor controller setFocusBehavior focus captured surface You can call setFocusBehavior arbitrarily many times before the promise resolves or at most once immediately after the promise resolves The last invocation overrides all previous invocations More precisely The getDisplayMedia returned promise resolves on a microtask Calling setFocusBehavior after that microtask completes throws an error Calling setFocusBehavior more than a second after capture starts is no op Google Chrome s Sample ConclusionThese lesser known screen sharing APIs provide additional functionality and control that can be useful in certain situations We hope this blog post has helped you discover new ways to implement screen sharing in your web applications For more information on these APIs check out the Chrome Developer Documentation We at Dyte love experimenting with new browser APIs and fun things to implement if you see any of these screen sharing APIs being beneficial for your use case we would love to help you implement them with Dyte 2023-03-30 09:18:02
海外TECH DEV Community PHOS: A Go channel extension with internal handlers https://dev.to/justlorain/phos-a-go-channel-extension-with-internal-handlers-4lad PHOS A Go channel extension with internal handlers IntroductionChannels are an essential feature of Golang Skilled use of channels can make concurrent programming feel natural This article introduces a channel extension PHOS based on Golang native channels PHOS allows us to perform specific processing on the data sent to the channel PHOS also has rich configuration options that can be customized according to different requirements What is PHOS PHOS is a Golang channel extension with internal handlers and diversified options InstallationNote Before installation make sure your Golang version supports generics Go gt Execute the following command to install PHOS go get github com BNARY GRUP phos Quick StartIn the following example we first define our own built in processor Then we create a PHOS instance add the processor to PHOS s processor chain and finally we can get the result processed by the processor by passing in the data and print it out That is BINARY PHOS gt BINARY PHOS package mainimport context fmt github com BNARY GRUP phos func hello context Context data string string error return data PHOS nil func main ph phos New string defer close ph In ph Handlers append ph Handlers hello ph In lt BINARY res lt ph Out fmt Println res Data User Guide About CreationPHOS is based on generics When creating an instance through the phos New method we can set the generics to process data of a specific type When creating an instance you don t need to specify the buffer size of the channel as you would with a regular channel You can assume that PHOS has an unlimited buffer PHOS also supports many custom options We can append these options when creating an instance through phos New For example ph phos New string phos WithZero phos WithTimeout time Second More supported options will be listed in tables in later chapters About Input and OutputPHOS implements data input and output using a read only and a write only channel InputAfter creating an instance through phos New you can input data to PHOS using the public write only channel In In the quick start example we passed in a string to In Note that the type of the data passed in should be consistent with the generic type used when creating the instance As we mentioned earlier you can input data to PHOS almost without limits without specifying the size of the buffer ph In lt BINARY ph In lt Hello ph In lt Foo OutputWe can also read the data processed by PHOS through the public read only channel Out It should be noted that the output value of Out is encapsulated as a Result type The Data field is the processed result and its type also matches the generic type of the instance The OK field is consistent with the second optional variable usage when we usually get data from the channel which can be used to determine whether data can be read from the channel Note When using PHOS you should not use the second return value of the Out channel but use the OK field of the Result because the second return value of the Out channel will always be true and its erroneous use will cause bugs The Err field will prompt some exceptions that may occur when using PHOS such as timeout exceptions internal processor processing exceptions which will be explained in the following text Result PHOS output result type Result T any struct Data T Note You should use the OK of Result rather than the second return value of PHOS Out channel OK bool Err Error About internal handlersBuilt in processors are one of the most important features of PHOS By setting one or more built in processors PHOS will execute all built in processors for each input data in order and we can pass the result processed by the previous processor to the next processor for further processing through the form of return values A valid processor function signature is as follows func ctx context Context data T T error We can construct a processor chain with PHOS s Handlers public slice field by appending our own custom processors For example we have constructed a processor chain with three processors here Each processor will perform an addition operation on the input data once and finally each input data will be returned to us after being added by three package mainimport context fmt github com BNARY GRUP phos func plusOne context Context data int int error return data nil func main ph phos New int defer close ph In ph Handlers append ph Handlers plusOne plusOne plusOne ph In lt ph In lt ph In lt res lt ph Out res lt ph Out res lt ph Out fmt Println res Data fmt Println res Data fmt Println res Data About error handlingPHOS wraps and classifies exceptions mainly into three types const ErrorType iota TimeoutErr HandleErr CtxErr Timeout exceptionThe timeout mechanism is a core feature of PHOS It specifies the maximum processing time for each data in the built in processor chain If a timeout occurs a timeout exception will be triggered If the timeout exception handler option is not configured the corresponding initial data will be output and the timeout exception will be displayed in the Err field of Result if the timeout exception handler is configured the data processed by the timeout exception handler will be output Internal handlers exceptionIf an exception occurs in any of the Internal handlers in the Internal handlers chain the processor chain will terminate Whether to return the last processed data or the data processed by the exception handler depends on whether the Internal handlers exception handler is configured Similarly the exception will be displayed in the Err field of Result Context ExceptionContext exceptions occur when the WithContext option is configured and triggered At this time the data processing will be terminated immediately and whether to return the initial data or the data processed by the exception handler depends on whether the ErrDoneFunc is configured The exception information will also be displayed in the Err field of Result Zero Value OptionWhen the zero value option is enabled a zero value of the corresponding data type will be returned whenever any of the above exceptions occur This will overwrite the data processing results of the configured timeout exception handler and built in processor exception handler ConfigurationOptionDefaultDescriptionWithContextcontext Background Set context for PHOSWithZerofalseSet zero value for return when error happenedWithTimeouttime Second Set timeout for handlers executionWithErrHandleFuncnilSet error handle function for PHOS which will be called when handle error happenedWithErrTimeoutFuncnilSet error timeout function for PHOS which will be called when timeout error happenedWithErrDoneFuncnilSet err done function for PHOS which will be called when context done happened SummaryThe above is an introduction to PHOS a Golang channel extension with internal handlers and diversified options It is hoped that it can provide you with some help or ideas for your development If there are any mistakes or issues please feel free to leave a comment or send a private message The next article will elaborate on the design and implementation of PHOS If you are interested in PHOS please give it a Star on GitHub Reference List 2023-03-30 09:07:15
海外TECH DEV Community My evaluation of the Scaleway Cloud provider https://dev.to/nfrankel/my-evaluation-of-the-scaleway-cloud-provider-1c8 My evaluation of the Scaleway Cloud providerA couple of years ago I developed an app that helped me manage my conference submission workflow Since then I have been a happy user of the free Heroku plan Last summer Heroku s owner Salesforce announced that it would stop the free plan in November I searched for a new hosting provider and found Scaleway In this post I d like to explain my requirement why I chose them and my experience using them The contextI ve already described the app in previous blog posts especially the deployment part Yet here s a summary in case you want to avoid rereading it The source of truth is Trello where I manage the state of my conference CFPs Backlog Submitted Abandoned Accepted and Published on this blog The done state is when I archive a Published card I wrote the application in Kotlin with Spring Boot It s a webapp that listens to change events from Trello via webhooks An event starts a BPMN workflow based on Camunda The workflow manages my Google Calendar and a Google Sheet file For example when I move a card from Backlog to Submitted it adds the conference to my calendar The event is labeled as Free and has a particular grey color to mark it s a placeholder It also adds a line in the Google Sheet with the status Submitted When I move the card from Submitted to Accepted it changes the Google Calendar event color to default and marks it as Busy It also changes the Google Sheet status to Accepted Why Scaleway As I mentioned in the introduction I was a happy Heroku user One of the great things about Heroku apart from the free plan was the hibernating feature when the app was not in use it switched it off In essence it was scale to zero for web apps The first request in a while was slower but it wasn t an issue for my usage The exciting bit is that scale to zero was not a feature but Heroku s way to keep costs low Outside of Heroku s free plan automatic scaling can only scale down to I m a big fan of Viktor Farcic s YouTube channel DevOps Toolkit At the same time Heroku announced the end of its free plan I watched Scaleway Everything We Expect From A Cloud Computing Service By chance Scaleway offers free credits to startups including the company I m currently working for It didn t take long for me to move the application to Scaleway Deploying on ScalewayBefore describing how to deploy on Scaleway let s explain how I deployed on Heroku The latter provides a Git repo Every push to master triggers a build based on what Heroku can recognize For example if it sees a pom xml it knows it s a Maven project and calls the Maven command accordingly Under the hood it creates a regular Docker container and stores and runs it For the record this approach is the foundation of Buildpacks and Heroku is part of its creators along with VMWare On Heroku developers follow their regular workflow and the platform handles both the build and the deployment parts Scaleway offers a dedicated scale to zero feature for its Serverless Containers offering First you need to have an already built container When I started to use it the container was to be hosted on Scaleway s dedicated Container Registry now it can be hosted anywhere On the UI one chooses the container to deploy fills in environment variables and secrets and Heroku deploys it Main issuesI stumbled upon two main issues using Scaleway so far The GUI is the only way to deploy a container It s a good thing to start with but it doesn t fit regular usage The industry standard is based on build pipelines which compile test create container images store them in a registry and deploy them on remote infrastructure You need to fill in secrets on every deployment GitHub and GitLab both allow configuring deployed containers with environment variables This way one can create a single container but deploy it in different environments You can configure some environment variables as secrets Nobody can read them afterward and they don t appear in logs Scaleway also offers secrets However you must fill them out at every deployment Beyond a couple of them it s unmanageable Bugs and Scaleway s supportIn my short time using Scaleway I encountered two bugs The first bug was a long delay between the time I uploaded a container in Scaleway s registry and the time it was available for deployment It lasted for a couple of days The support was quick to answer the ticket but afterward it became a big mess There were more than a couple of back and forth messages until the support finally acknowledged that the bug affected everybody The worst was one of the messages telling me it was due to an existing running container of mine failing to start i e the bug was on my side The second bug happened on the GUI The deployment form reset itself while I was filling in the different fields I tried to be fast enough when filling but to no avail The same happened as with the previous issue many back and forth and no actual fixing Finally I tried a couple of days after I created the ticket and I informed the support They answered that it was normal because they had fixed it but without telling me Finally I opened a ticket to ask whether an automated deployment option was possible After several messages the support redirected me to a GitHub project The latter offers a GitHub Action that seemed to fulfill my requirement Unfortunately it cannot provide a way to configure the deployed container with environment variables The only alternative the support offers is to embed environment variables in the container including secrets Regardless of the issues the support s relevance ranges from average to entirely useless LoggingAll Cloud providers I ve tried so far offer a logging console My experience is that the console looks and behaves like a regular terminal console the oldest log line is on top and the newest at the bottom and one can scroll through the history limited by a buffer Scaleway s approach is completely different It orders the log lines in the opposite order the newest first and oldest last Worse there s no scrolling but pagination Finally there s no auto refresh One has to paginate back and forth to refresh the view and if new log lines appear pages don t display the same data It severely impairs the developer experience and makes trying to follow the logs hard I tried to fathom why Scaleway implemented the logging console this way and came up with a couple of possible explanations Engineering doesn t eat its own dog foodEngineering doesn t care about Developer ExperienceIt was cheaper this wayProduct said it was a bad Developer Experience but Engineering did it anyway because of one of the reasons above and it has more organizational powerIn any case it reflects poorly on the product ConclusionEven though my usage of Scaleway is free I m pretty unhappy about the deployment part I came for the free credits and the scale to zero capability However the lack of an acceptable automated deployment solution and the support of heterogeneous quality to be diplomatic make me reconsider On the other hand the Scaleway Cloud service itself has been reliable so far My Trello workflow runs smoothly and I cannot complain Scaleway is typical of a not bad product ruined by an abysmally bad Developer Experience If you re developing a product be sure to take care of this aspect of things the perception of your product can take a turn for the worse because of a lack of consideration for developers To go further ScalewayGoogle Cloud RunOriginally published at A Java Geek on March th 2023-03-30 09:03:00
海外TECH Engadget EA is cutting around 800 jobs in company restructuring https://www.engadget.com/ea-is-cutting-around-800-jobs-in-company-restructuring-093534145.html?src=rss EA is cutting around jobs in company restructuringElectronic Arts is reducing its workforce by six percent company CEO Andrew Wilson has announced in a blog post As The Wall Street Journal notes while layoffs are sweeping the tech industry this makes EA the first major video game publisher to announce job cuts that would affect a significant number of people While Wilson didn t specify how many workers will be impacted by the layoffs a filing by the company said it had a workforce that was almost strong Wilson said EA already started telling some of the roughly affected workers that they were going to lose their jobs earlier this year The layoffs will continue over the coming months until early next fiscal year He explained that the job cuts are a result of the company deciding to move away from projects that no longer align with its goals to review its real estate footprint and to restructure some of its teams In certain cases EA will offer the affected worker the opportunity to transition to other roles within the company But those who don t get the offer or choose not to take a new role within EA will be getting severance pay company paid health insurance and career transition services nbsp The video game industry as a whole has been struggling with a slump in player spending since after a couple of years of growth fueled by increased gaming hours during pandemic lockdowns EA has implemented several cost cutting measures over the past months as a result including shutting downApex Legends Mobile and Battlefield Mobile It also reportedly cancelled an unannounced single player game set in the Titanfall and Apex Legends universe In May Puck News reported that EA was actively looking for a buyer or a company willing to undergo a merger The company approached Disney and Comcast Puck said but discussions ultimately broke down nbsp This article originally appeared on Engadget at 2023-03-30 09:35:34
海外TECH Engadget Reddit says it's banning more people than ever in big transparency push https://www.engadget.com/reddit-says-its-banning-more-people-than-ever-in-big-transparency-push-090044914.html?src=rss Reddit says it x s banning more people than ever in big transparency pushReddit s transparency reports go beyond what most social media companies offer providing copious data on content moderation and global legal requests Now the company has introduced a transparency center serving as a hub for safety security and policy information It also announced plans to release transparency reports biannually rather than just once per year and said that in it removed significantly more offensive content including child abuse and revenge porn than in Last year Reddit saw a big jump in moderation and legal requests according to its transparency report Government and law enforcement removal account information requests were up by percent and percent respectively while copyright notices jumped percent nbsp The story was similar on the moderation front Last summer the BBC reported that Reddit was still leaving up thousands of non consensual intimate NCII images aka revenge porn despite making changes to its policy earlier in this year nbsp As a result Reddit joined StopNCII org a database that aims to reduce the spread of revenge porn operated by the nonprofit charity SWGfL s Revenge Porn Hotline We have already seen promising results from this tool and believe it will help us remove this content more quickly a spokesperson told Ars Technica To wit it removed percent more user accounts violating revenge porn policies than it did in and banned percent more subreddits The total number of NCII posts removed was compared to around the year before nbsp The site also removed percent more child sexual abuse materials CSAM than it did in It achieved that by hiring more moderation staff and investing in proactive detection tools By comparison Twitter has reportedly been cutting its global moderation workforce and disbanded its Trust and Safety Council The aim with the transparency center Reddit said was to make it easier for user and other interested parties like policymakers and the media to find information about content moderation legal requests and general platform safety As such there are sections for Reddit s terms amp policies guidelines for law enforcement platform security updates its bug bounty program and past transparency reports The company also said it would publish full transparency reports twice a year rather than annually as it does now Last year it did publish its first mid year transparency report but it only focused on global legal requests Going forward however the mid year reports will cover both legal requests and content moderation data exactly like the current year end wrap ups This article originally appeared on Engadget at 2023-03-30 09:00:44
ラズパイ Raspberry Pi Celebrating the community: Nadia https://www.raspberrypi.org/blog/celebrating-the-community-nadia/ Celebrating the community NadiaWe meet many young people with an astounding passion for tech and we also meet the incredible volunteers and educators who help them find their feet in the digital world Our series of community stories is one way we share their journeys with you Today we re introducing you to Nadia from Maysan Iraq Nadia s achievements The post Celebrating the community Nadia appeared first on Raspberry Pi Foundation 2023-03-30 09:46:37
医療系 医療介護 CBnews 病院薬剤師は全都道府県で不足、薬剤師偏在指標-薬局薬剤師は全国ベースでオーバー、厚労省 https://www.cbnews.jp/news/entry/20230330163554 厚生労働省 2023-03-30 18:25:00
金融 金融庁ホームページ 地域金融機関の事業者支援能力の向上を後押しする取組について公表しました。 https://www.fsa.go.jp/news/r4/ginkou/20230330/20230330.html 金融機関 2023-03-30 10:00:00
金融 金融庁ホームページ 「AIやICT技術を活用した経営改善支援の効率化に向けた調査・研究」に係る最終報告書について公表しました。 https://www.fsa.go.jp/common/about/research/20230330_1/20230330_1.html 調査 2023-03-30 09:59:00
金融 金融庁ホームページ 「業種別の経営改善支援の効率化に向けた委託調査」に係る最終報告書について公表しました。 https://www.fsa.go.jp/common/about/research/20230330_2/20230330_2.html 調査 2023-03-30 09:59:00
海外ニュース Japan Times latest articles Going overboard: The flap over Volodymyr Zelenskyy’s wooden paddle gift explained https://www.japantimes.co.jp/news/2023/03/30/national/going-overboard-flap-volodymyr-zelenskyys-wooden-paddle-gift-explained/ Going overboard The flap over Volodymyr Zelenskyy s wooden paddle gift explainedOnly months after the prime minister s son caused a stir over a shopping spree Kishida is now under fire again for two more minor blunders 2023-03-30 18:17:10
ニュース BBC News - Home Cambridgeshire: Arrests after men shot dead in 'targeted' attacks https://www.bbc.co.uk/news/uk-england-cambridgeshire-65121039?at_medium=RSS&at_campaign=KARANGA cambridgeshire 2023-03-30 09:27:31
ニュース BBC News - Home Margaret Ferrier: MP faces Commons suspension for Covid train trip https://www.bbc.co.uk/news/uk-scotland-scotland-politics-65123054?at_medium=RSS&at_campaign=KARANGA rutherglen 2023-03-30 09:32:57
ニュース BBC News - Home Bankers convicted of helping Putin's friend https://www.bbc.co.uk/news/world-europe-65123083?at_medium=RSS&at_campaign=KARANGA accounts 2023-03-30 09:01:37
ニュース BBC News - Home Chris Kaba: Met Police shooting case referred to CPS https://www.bbc.co.uk/news/uk-england-london-65123767?at_medium=RSS&at_campaign=KARANGA homicide 2023-03-30 09:53:41
ニュース BBC News - Home State pension age rise to 68 will not be brought forward yet https://www.bbc.co.uk/news/business-65120317?at_medium=RSS&at_campaign=KARANGA pension 2023-03-30 09:35:30
ニュース BBC News - Home Kentucky helicopter crash: Deaths feared after military aircraft crash https://www.bbc.co.uk/news/world-65121331?at_medium=RSS&at_campaign=KARANGA kentucky 2023-03-30 09:22:35
ニュース BBC News - Home Council tax would be frozen for a year, Labour propose as campaign launches https://www.bbc.co.uk/news/uk-politics-65116568?at_medium=RSS&at_campaign=KARANGA energy 2023-03-30 09:19:29
ニュース Newsweek ロシアの戦術核配備でベラルーシ政権転覆の恐れ──ロシア高官 https://www.newsweekjapan.jp/stories/world/2023/03/post-101245.php ロシアの戦術核配備でベラルーシ政権転覆の恐れーロシア高官ウクライナに亡命したベラルーシの反体制派の一部は、ウクライナ軍を支援する外国人部隊に加わってロシア軍と戦っているが、この抵抗勢力が、ベラルーシの現独裁政権の転覆を企てる恐れがあると、ロシアの高官が警告した。 2023-03-30 18:28:48
ニュース Newsweek 戦争の焦点は「ウクライナ軍のクリミア奪還作戦」へ 小泉悠×河東哲夫・超分析 https://www.newsweekjapan.jp/stories/world/2023/03/post-101214.php 2023-03-30 18:15:00
マーケティング MarkeZine ANAグループらが「顔認証スタンプラリー」の実証実験を開始 マーケティングにおける有用性を検証 http://markezine.jp/article/detail/41820 実証実験 2023-03-30 18:30:00
マーケティング MarkeZine ダイレクト・ホールディングスが自販機の運用支援サービス「KAKUDAI」を提供開始 http://markezine.jp/article/detail/41821 提供開始 2023-03-30 18:15:00
IT 週刊アスキー JEITA、スマートホームにおけるIoT家電によるデータ収集についてのガイドラインを策定 https://weekly.ascii.jp/elem/000/004/130/4130820/ jeita 2023-03-30 18:50:00
IT 週刊アスキー 自分で組み立てるプラモデル風キーボードスタンド2個セット 上海問屋 https://weekly.ascii.jp/elem/000/004/130/4130808/ 上海問屋 2023-03-30 18:30:00
IT 週刊アスキー SteelSeries、ヘッドセット「Arctis Nova」向けのアクセサリーとしてゲーミングアンプなど3製品を順次発売 https://weekly.ascii.jp/elem/000/004/130/4130825/ arctisnova 2023-03-30 18:30:00
IT 週刊アスキー コクヨが見守りIoT参入。GPSや紛失防止タグなど4製品を新ブランド「Hello! Family.」より展開 https://weekly.ascii.jp/elem/000/004/130/4130823/ family 2023-03-30 18:15:00

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)