投稿時間:2021-12-28 04:32:43 RSSフィード2021-12-28 04:00 分まとめ(38件)

カテゴリー等 サイト名等 記事タイトル・トレンドワード等 リンクURL 頻出ワード・要約等/検索ボリューム 登録日
AWS AWS Cloud Enterprise Strategy Blog Unshadow IT https://aws.amazon.com/blogs/enterprise-strategy/unshadow-it/ Unshadow IT“Shadow IT or “Rogue IT ーI d venture to say that all IT organizations experience it It s tempting for different parts of the businessーwhen they feel that IT isn t meeting their needs as quickly as they d likeーto find other ways to get things done The problem is that they might be bypassing important security or availability controls … 2021-12-27 18:28:24
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) 【Unity】Windows Surface Go 3でUnityから加速度センサーを取得したい。【C++】 https://teratail.com/questions/375807?rss=all 【Unity】WindowsSurfaceGoでUnityから加速度センサーを取得したい。 2021-12-28 03:45:51
海外TECH Ars Technica Scientists draw inspiration from catchweed to create biodegradable Velcro https://arstechnica.com/?p=1814797 microhook 2021-12-27 18:38:26
海外TECH MakeUseOf How to Create a Restore Point Using the Command Prompt on Windows https://www.makeuseof.com/windows-create-restore-point-command-prompt-powershell/ prompt 2021-12-27 18:15:11
海外TECH DEV Community The Mystical World of Solidity: Intro to Smart Contracts https://dev.to/ogzhanolguncu/the-mystical-world-of-solidity-intro-to-smart-contracts-2p73 The Mystical World of Solidity Intro to Smart ContractsHave you ever wanted to program the Blockchain before but failed If you have don t worry In this tutorial our sole focus will be on Solidity We won t be diving into details about Metamask or how to integrate a smart contract into your web apps Let me be frank throwing lots of technologies or methodologies at the beginning of the learning process makes it a lot harder to digest So in this tutorial we will try to come up with some Lottery smart contract without using fancy tools similar to a real world lottery you place some money and get some amount of money in return if you win Everybody can participate in exchange for some ethers If in the end you are the winner you ll have all the money in the contract Now you might be asking yourself What the hell is ether or But how do I send ether to contract Okay let s start from the first one You probably had heard ether before but if you haven t I will briefly explain Ether is the currency used in the Ethereum blockchain to incentivize miners and stake owners And of course for gas prices gas price is a transaction fee but with a fancy name If you try to interact with a contract or send some ether to another address unique characters similar to our IDs you have to pay some ethers usually in small amounts I know I told you we won t be using anything but Solidity But we need an IDE Editor to write our very first contract and lucky for us there is a development environment called Remix not the library Remix It s an IDE for Ethereum development built on top of the web where you can compile deploy and test your smart contracts There are some steps in Solidity development Create your contract through Remix Hardhat or TruffleCompile your contractTest amp Deploy your contractWe will start off with the first one Navigate to Remix follow the steps below Then paste this Solidity codes and we go over each line and explain what it does SPDX License Identifier GPL pragma solidity gt lt contract Lottery address payable public players address public manager constructor manager msg sender receive external payable require msg value ether players push payable msg sender function getBalance public view returns uint require msg sender manager return address this balance function random public view returns uint return uint keccak abi encodePacked block difficulty block timestamp players length function pickWinner public require msg sender manager require players length gt uint r random uint index r players length players index transfer getBalance delete players The pragma is telling the Solidity compiler to look for certain features or checks No more different then Node or NPM version Then we have the contract if we are looking fora resemblance in other languages it s safe to say contract is a class like keyword Then we have our state variables Those variables will be stored on the blockchain and persist There are only a couple of data types by the way address payable public players address public manager Data Types in Soliditybooleanuintintaddressaddress payable address that receives ether exposes transfer and sendNow that we cleared that out Let s continue We ve defined two variables one for storing users who participated in the lottery and one for the manager itself Since users will be more than one we defined it as an array And since we want all those variables to be accessible outside of the contract we marked them as public By the way there are couple of accessors Accessors in Soliditypublic Everyone can accessexternal Only for external use and can not be invoked within the contractinternal Only for this and derived contract can useprivate Only for this contract not available for derived contractThen we have the constructor optional function and only executed during the contract creation In our constructor we specify the manager will be the one who created the contract If you are asking yourself Where does msg sender come from The msg is a built in variable that carries some metadata about the transaction constructor manager msg sender MSG Variablemsg data bytes calldata complete calldatamsg sender address sender of the message current call msg sig bytes first four bytes of the calldata i e function identifier msg value uint number of wei sent with the messageThen we have receive which is also special function variable just like msg Special Variables and Functions The receive says this contract accepts ether from outside Dead simple receive external payable require msg value ether players push payable msg sender Next up we have require which helps us make assertions We are making sure that anyone willing to participate gotta send exactly ether But why didn t we use if The reason is every contract interaction in Solidity consumes gas transaction fee therefore we have to be rigorous about it Imagine that scenario below receive external payable sprinkling some fairy dust bunch of operations that modifies blockchain if msg value ether players push payable msg sender If you were to send ether instead of you wouldn t get your gas transaction fee back Because if does not revert the contract interaction but require do So if you don t wanna spend peoples ethers for nothing always go with require and make sure they got their ethers back if interaction fails Inside receive if conditions are met we add a participant to players array and increase contracts balance Next up we have getBalance First we make sure the caller is the owner then access the balance of the contract The address this is used to access the contract s address object function getBalance public view returns uint require msg sender manager return address this balance Before we move on we have one more thing we haven t covered yet the view If you are not planning to modify the state you need to pass the view keyword to the function If you are curious about which actions modify the state there they are State modifiersWriting to state variables Emitting events Creating other contracts Sending Ether via calls Calling any function not marked view or pureNext up we have random A pretty generic function that returns random numbers using keccak algorithm If your goal is to create a random number generator function in the blockchain pseudorandom this is the code you eventually end up with function random public view returns uint return uint keccak abi encodePacked block difficulty block timestamp players length Now our contract s final and most important part is pickWinner But before calling pickWinner we need to ensure that caller is the owner and at least three players participated in the lottery To achieve that we use require Then we use random to generate a random number and use a modulo to find a random number between and our players length After the number has been picked we transfer allthe money in the contract to the winner via transfer And for reusability we use delete to reset the players array function pickWinner public require msg sender manager require players length gt uint r random uint index r players length players index transfer getBalance delete players Now that we have completed our contract it s time to compile it Everything is ready for the test in fake EVM Ethereum Virtual Machine We ve deployed our contract from an account then made three different contract calls and sent one ether from each account In the end one of the accounts received the prize sum I purposely didn t show all the functionalities of our contract Like testing out getBalance to check if the caller is the owner or pickWinner without at least three players I highly recommend you to test each function by yourself to get to know Remix and Solidity 2021-12-27 18:47:37
海外TECH DEV Community Rapid Prototyping a GPT-3 App with Flask and PropelAuth https://dev.to/propelauth/rapid-prototyping-a-gpt-3-app-with-flask-and-propelauth-2jne Rapid Prototyping a GPT App with Flask and PropelAuthToday we are going to build a GPT powered front line support bot Teams can sign up and program the bot to answer a set of questions with fixed responses If the bot doesn t recognize the question it will say A human will be with you shortly Where GPT comes in is the ability to interpret a question like Are you open on sundays and realize it s the same as What are your open hours Let s start with a demo of GPT GPT Demo How it worksTo experiment we can use OpenAI s playground The way the playground works is you configure GPT provide a prompt and it will complete your response An easy example from their list of examples uses the prompt Original She no went to the market Standard American English which GPT completes withShe didn t go to the market Pretty cool Now let s get fancier Our GPT PromptThe config we ll use is to copy the Chat example but turn the temperature down to as we don t want a lot of randomness here Let s start our prompt with essentially the description we used above The following are conversations with a chat AI The chat AI is programmed to give fixed responses to common questions If the chat AI is ever presented with a question not in it s list of known questions it responds with A human will be in touch shortly Then we add in the pre programmed questions and responses Question Response What are your hours Our hours are Monday Friday am pm Are you currently hiring We re hiring for cashiers What do you sell We sell clothing and accessories at affordable prices You can see all our products at And finally we give it some examples to learn from Human What are your hours AI Our hours are Monday Friday am pm Human What do you have in store AI We sell clothing and accessories at affordable prices You can see all our products at Human what s the deal hereAI A human will be in touch shortly Human Are you open monday AI Our hours are Monday Friday am pm Human Where are you located AI A human will be in touch shortlyWe should note that this is really not a lot of training data Any ML model will do better the more examples you give it so the more examples you provide the better Let s finish our prompt with an example question and see how GPT responds We ll use an exact copy of one of the questions as a base case to make sure GPT understands the prompt Human Are you currently hiring GPT responded with AI We re hiring for cashiersThis might not seem impressive but we ve basically programmed a primitive chat bot with nothing but text Let s start looking at more difficult prompts Example prompts and responsesIn each of these examples GPT was given only the Human text and it responded with the AI text Human do you have shoes AI We sell clothing and accessories at affordable prices You can see all our products at Human what can I buy AI We sell clothing and accessories at affordable prices You can see all our products at Human can i buy dog food hereAI A human will be in touch shortlyThe above examples are pretty good In the third question it isn t sure so it ends up giving the stock response What happens if we give it extra filler text Human I m running really late are you open on sundays AI Our hours are Monday Friday am pm Human One time I bought a product from a rival store AI We re hiring for cashiersThe first example is perfect but the second one is confusing The prompt isn t so much a question as a statement This is what happens if you don t provide enough training data and forget edge cases like weird random statements Human when s closing time AI Our hours are Monday Friday am pm Human what happens if I show up at pm AI A human will be in touch shortlyApparently the AI doesn t have time for any sass You get the idea though We feed it a prompt and it provides a useful initial response Customizing our questionsUltimately we want our product to be used by different companies which will have different questions To address this we ll end up making a really long prompt which looks like this The following are conversations with a chat AI Question Response questions and responses Human AI examples The following are conversations with a chat AI Question Response questions and responses Human AI examples and so on The idea is that by the end of our long prompt the model should understand the structure of what it s being asked to do When we give it new questions and responses it shouldn t require as much data Note that to avoid specifying this prompt every single time you can see this document on fine tuning Building the backendNow that we know the inputs to GPT we can turn it into an API with Flask Creating a new Flask projectTo get started we ll create a Python virtual environment and install our dependencies We re using Flask as a webserver SQLAlchemy to talk to our DB OpenAI to interact with GPT and propelauth flask for authentication mkdir backend python m venv venv source venv bin activate venv pip install U flask openai Flask SQLAlchemy propelauth flask Calling GPT from PythonOne of the reasons I like Flask is how easy it is to build out an API We can make a simple wrapper around openai s completion API like so from flask import Flask requestimport osimport openaiapp Flask name openai api key os getenv OPENAI API KEY app route test prompt methods POST def test prompt prompt request get json get prompt return complete prompt prompt def complete prompt prompt response openai Completion create engine davinci instruct beta v prompt prompt temperature max tokens top p frequency penalty presence penalty stop n Get and return just the text response return response choices text Let s test our API by running the Flask server with flask run and then hitting it with curl curl X POST d prompt Original She no went to the market nStandard American English H Content Type application json localhost test prompt She didn t go to the market Setting up our DBWe need a durable place to store questions answers ahead of time Since the questions and answers will be tied to a company and not to an individual we ll need an identifier for companies We ll use org id short for organization identifier and then all we need to do is store questions answers for each org id You can use pretty much any database for this task Postgres MySQL Mongo Dynamo SQLite etc We ll use SQLite locally since there s nothing to deploy or manage and we ll use SQLAlchemy as an ORM which will allow our code to also work with other databases later We ve already installed the libraries now let s define our table in a new file models py from flask sqlalchemy import SQLAlchemydb SQLAlchemy class QuestionsAndAnswers db Model We ll see later on that these IDs are issued from PropelAuth org id db Column db String primary key True nullable False Simplest way to store it is just as JSON sqlite doesn t natively have a JSON column so we ll use string questions and answers db Column db String nullable False and hook it up to our application in app py from models import dbapp Flask name app config SQLALCHEMY DATABASE URI sqlite local db app config SQLALCHEMY TRACK MODIFICATIONS Falsedb init app app Finally let s use the command line to create the table venv python gt gt gt from app import app db gt gt gt with app app context db create all gt gt gt Our database is fully set up Next we can create some routes for reading writing questions and answers Adding routes for questions and answersWe need two routes one for creating questions and answers and one for reading them These routes are just simple functions that take the input and save fetch from our database We ll take in the org id as a path parameter and won t worry about verifying it just yet We ll revisit it at the end when we add authentication For now anyone can send a request on behalf of any organization A small warning you will want to decide on what validation to do We are passing these strings directly into our GPT prompt so you may want to filter out things like newline characters which can mess up our prompt app route org lt org id gt questions and answers methods POST def update questions and answers org id TODO validate this input questions and answers request get json questions and answers existing record QuestionsAndAnswers query get org id if existing record existing record questions and answers json dumps questions and answers else db session add QuestionsAndAnswers org id org id questions and answers json dumps questions and answers db session commit return Ok app route org lt org id gt questions and answers methods GET def fetch questions and answers org id questions and answers QuestionsAndAnswers query get or org id return json loads questions and answers questions and answers And let s quickly test our new endpoints curl X POST d questions and answers question What is your phone number for support answer Our support number is open any time between am pm H Content Type application json localhost org questions and answersOk curl localhost org questions and answers questions and answers answer Our support number is open any time between am pm question What is your phone number for support curl v localhost org questions and answers lt HTTP NOT FOUND Great We can set and fetch data for any organization Constructing a custom GPT promptWe can go back and update our test prompt function to Look at an organization s questions and answers Construct a new prompt using those questions and answers as a prefix End the prompt with the user s prompt app route org lt org id gt test prompt methods POST def test prompt org id TODO validate this prompt user specified prompt request get json get prompt db row QuestionsAndAnswers query get or org id q and a json loads db row questions and answers questions and answers full prompt generate full prompt q and a user specified prompt return complete prompt full prompt And finally our generate full prompt function def generate full prompt q and as user specified prompt Generate the table using our data q and a table n join map lambda q and a f q and a question q and a answer q and as Generate positive examples using the exact question answers q and a examples n n join map lambda q and a f Human q and a question nAI q and a answer q and as Generate some negative examples too random negative examples Human help meAI A human will be in touch shortly Human I am so angry right nowAI A human will be in touch shortly Note if you aren t using a fine tuned model your whole prompt needs to be here return f The following are conversations with a chat AI The chat AI is programmed to give fixed responses to common questions If the chat AI is ever presented with a question not in it s list of known questions it responds with A human will be in touch shortly Question Response q and a table q and a examples random negative examples Human user specified prompt AI You can see that in addition to using the same formatting as before we also added some easy examples both positive and negative for the bot to learn from Does it work curl X POST d prompt what movies are playing H Content Type application json localhost org test prompt A human will be in touch shortly curl X POST d prompt can I get support via phone H Content Type application json localhost org test prompt Our support number is open any time between am pmAwesome our bot learned our custom questions and responded accordingly Our backend is still missing authentication and everyone can set questions and answers for any org id Next we ll add PropelAuth to address that BB Authentication with PropelAuthPropelAuth s hosted authentication pages can help us skip a lot of work for our project Out of the box it provides a hosted auth solution that supports users signing up creating organizations and inviting coworkers Importantly it also hosts all the UIs for those tasks so we don t have to Follow the docs to set up and customize our project The default login page looks like this and we can customize it and every other hosted UI like our organization management pages via a simple UI Under User Schema make sure to select BB Support This enables your users to create and manage their own organizations Protecting our routesFollowing the documentation for Flask we need to initialize the library like so from propelauth flask import init authauth init auth YOUR API KEY and then we can protect each of our endpoints with the auth require org member decorator app route org lt org id gt questions and answers methods GET auth require org member def fetch questions and answers org id questions and answers QuestionsAndAnswers query get or org id return json loads questions and answers questions and answers require org member will do a few things Check that a valid access token was provided If not the request is rejected with a status code An access token is a string that uniquely identifies a user Our frontend can fetch them from PropelAuth and our backend can verify them and know which user sent it Find an id for an organization within the request By default it will check for a path parameter org id Check that the user is a member of that organization If not the request is rejected with a status code This is actually all we need to do on the backend We add the decorator to each of our routes and future requests will be rejected if they are either for invalid org ids from user s that aren t in that org or if they are from non users We can test this again with curl which will fail since we haven t specified any authentication information curl v localhost org questions and answers lt HTTP UNAUTHORIZED Building the frontendOur UI needs a few components First we need some way for a user to add questions and responses We ll also want a way for our users to test the bot by submitting questions Normally we d need login pages account management pages organization management pages etc but all those are already taken care of by PropelAuth Creating a Next js appWe ll use Next js as it provides some nice features on top of React We ll also use SWR to query our backend and propelauth react for authentication npx create next app latest frontend cd frontend yarn add swr propelauth reactI ll leave the details of how the UI should look up to you and we ll just look at a few important parts of the frontend Listing organizationsOur users are logging in and creating joining organizations on our hosted PropelAuth pages We need some way to interact with this data as well on our frontend For that we ll use the propelauth react library We ll initialize the library in pages app js by wrapping our application with an AuthProvider import AuthProvider from propelauth react function MyApp Component pageProps return lt AuthProvider authUrl REPLACE ME gt lt Component pageProps gt lt AuthProvider gt export default MyAppThe AuthProvider allows any child component to fetch user information using withAuthInfo We also have information on which organizations the user is a member of We can make a drop down menu which allows users to pick an organization Allow users to select an organizationfunction OrgSelector props isLoggedIn and orgHelper are injected automatically from withAuthInfo below if props isLoggedIn return lt span gt const orgs props orgHelper getOrgs getSelectedOrg will infer an intelligent default in case they haven t selected one yet const selectedOrg props orgHelper getSelectedOrg const handleChange event gt props orgHelper selectOrg event target value return lt select value selectedOrg orgId onChange handleChange gt orgs map org gt lt option value org orgId gt org orgName lt option gt lt select gt export default withAuthInfo OrgSelector In this case we are using selectOrg which we can later get with getSelectedOrg We ll need this when fetching from our backend Fetching data from our backendWhen we set up our backend we said our frontend will pass in an access token That access token is one of the values injected by withAuthInfo Here s a function that uses fetch to pass along an access token async function testPrompt orgId accessToken prompt const response await fetch http localhost org orgId test prompt method POST headers Content Type application json accessTokens are passed in the header Authorization Bearer accessToken body JSON stringify prompt prompt return await response json And here s an example component that makes an authenticated request to test prompt function TestPrompt props const prompt setPrompt useState const response setResponse useState if props isLoggedIn return lt RedirectToLogin gt const submit async e gt e preventDefault const orgId props orgHelper getSelectedOrg orgId const apiResponse await testPrompt orgId props accessToken prompt setResponse apiResponse return lt form onSubmit submit gt lt input type text value prompt onChange e gt setPrompt e target value gt lt button gt Submit lt button gt lt pre gt Server Response response lt pre gt lt form gt export default withAuthInfo TestPrompt And that s really all there is to it Here s my not very pretty version ConclusionWith not a lot of data or code we were able to make a powerful chat bot with BB support As we get more data we can keep improving on our bot 2021-12-27 18:32:07
海外TECH DEV Community JWT explained as Formulas https://dev.to/zaxwebs/jwt-explained-as-formulas-1514 JWT explained as FormulasOkay so this is a rather different way of learning about JWTs But I think if done right it can teach more effectively than a long blog post filled with thousands of words So let s begin What are JWTs JWT or JSON Web Token is structured token format of encoding JSON data in a way that can be cryptographically verified JWT StructureExample JWT eyJhbGciOiJIUzINiIsInRcCIIkpXVCJ eyJzdWIiOiIxMjMNTYODkwIiwibmFtZSIIkpvaGgRGlIiwiaWFIjoxNTEMjMMDIyfQ SflKxwRJSMeKKFQTfwpMeJfPOkyJV adQsswcNotice the dots If you split at dots you get strings that make up the JWT So JWT headerString payloadString signatureString or signature doesn t matter in this case What are these strings headerString base header payloadString base payload They are just base encodings for header amp payload header is a JSON object with metadata type of JWT amp payload is another object with user defined data with some standard keys Note Here base implies baseURL assume them as functions that encode the object to base form the later encodes it in URL friendly manner Similar assumptions ahead To keep things less repetitive ahead let headerPayloadString headerString payloadString We can form JWTs in different ways for educational purpose lets look at a simple one but not used IRL as much The signatureString signature is discussed in following approach sections shaSignature rsaSignature The SHA HMAC ApproachSHA is a hashing algorithm As mentioned this approach not used IRL as much given it s drawbacks discussed later Creating the JWT signing shaSignature sha headerPayloadString sharedSecret shaJWT headerPayloadString shaSignature Verifying the JWTSplit headerPayloadString amp signatureString input signature Calculate signature as sha headerPayloadString sharedSecret If both the input signature and calculated signature match the JWT is valid Why do we not use this Notice how we need to use the same sharedSecret or key for creating signing amp verifying That means if we use an authentication server we have to share the same key between the server and the consumer application This leads to security concerns The RSA SHA approachRSA is public key encryption algorithm consisting of keys a private and public key pair Creating the JWT signing shaXSignature sha headerPayloadString We don t use a key here non HMAC way rsaSignature rsaEncrypt shaXSignature privateKey rsaJWT headerPayloadString rsaSignature Verifying the JWTTake the headerPayloadString and hash everything with SHA Decrypt rsaDecrypt the JWT using the public key and obtain the rsaSignatureCompare the received JWT signature with the calculated one if they match the JWT is valid That Sums it UpVoila You now know the basic mechanics of JWTs I recommended researching a bit more to supplement this post with Hope this helped clear some doubts 2021-12-27 18:28:05
海外TECH DEV Community Typescript - beyond the basics https://dev.to/jarvispact/typescript-beyond-the-basics-2ap0 Typescript beyond the basics IntroThis blog post is for you if you have found yourself like this This is not a Getting Started Tutorial I will not cover the absolute basics or type annotations with types like string number boolean Array or Record I assume that you worked with typescript in the past This blog post starts with a brief explanation of the following concepts type inferenceintersection and union typeskeywords typeof keyof and as consttype narrowingand then goes a bit deeper into the more advanced topics like genericsfixing Object keyswriting a typesafe omit functionTypescript is awesome but i have seen many repositories which dont really use but abuse typescript I hope that you can leverage the knowledge from this blog post to refactor some of your existing typescript code and catch some bugs at build timebenefit from better intellisenseand write lesser types by using the type inference from typescriptOk Let s start Type inferenceHere is an example of the type inference from typescript when declaring an array const array null typeof array string number null const item array typeof item string number nullarray push true Argument of type true is not assignable to parameter of type string number null you can use a type annotation to also support boolean valuesconst array string number null boolean null array push true okAnother example with objects const obj a a b b typeof obj a string b string obj c c Property c does not exist on type a string b string you can use a type annotation to also support other string keys than a and b const obj Key string string a a b b obj c c okWhat is also very interesting is the difference between let and const let aLetString test type stringconst aConstString test type test let aLetNumber type numberconst aConstNumber type const takeString x string gt x const result takeString aConstString typeof result stringHave you noticed that we have passed something of type test to our takeString function The function accepts a argument of type string but lets us pass something of type test without any error Heres why A string literal type can be considered a subtype of the string type This means that a string literal type is assignable to a plain string but not vice versa Examples alway makes it more clear const B B typeof B B type A string const test A B ok type A A const test A B Type B is not assignable to type A Intersection and Union typesHere an example of the amp intersection and union operators type Intersection a string amp b number const test Intersection a a b okconst test Intersection a a Property b is missing in type a string but required in type b number type Union a string a number const test Union a a okconst test Union a okThere is a difference in type and interface for object types You cannot use the amp and operators with interfaces but you can with types Personally i always use types because they have no limitations However you can use the extends keyword or use a type to make a union of existing interfaces interface A a string interface B extends A b number const test B a a b okconst test B a a Property b is missing in type a string but required in type B interface A a string interface B a number type Union A B const test Union a a okconst test Union a ok The keywords typeof keyof and as constMaybe you have seen or used the types typeof and keyof before as const seems to be not used a lot in the wild but i like it a lot const obj a a b b type Obj typeof obj a string b string const obj a a b b type Key keyof typeof obj a b const obj a a b b as const type Obj typeof obj readonly a a readonly b b As you can see the keyword as const also sets the values of the object to string literal types a and b instead of string Lets have a closer look at the as const keyword and a potential use case to replace enums jsx code AQUwOwVwWBhAlCAXATgTAbwFCiHACCAKgDQFEgAiAopdSPABKOgC QAenum Country AT DE CH gets compiled to let Country function Country Country Country AT AT Country Country DE DE Country Country CH CH Country Country If you log the value of Country AT at runtime you will see that the value of it is the number I dont like enums that have a number as the value because now you have this number in your database and without the enum definition in your code you are not able to tell what this number means Enums that have string values are better imho since they have a semantic meaning There is another way to write a enum which uses string values jsx amp ssl amp ssc amp pln amp pc code AQUwOwVwWBhAlCAXATgTAbwFCiHACCAKsALzABEZANAUSACICilNDTzAEpoCehALAenum Country AT AT DE DE CH CH gets compiled to var Country function Country Country AT AT Country DE DE Country CH CH Country Country So how can we use as const to write something like an enum const Country AT AT DE DE CH CH as const const values Object values Country type Country typeof values number gets compiled to const Country AT AT DE DE CH CH I leave it up to you to decide which one you like better In the end it doesnt matter but i like the fact that you have immediate intellisense with the as const variant and dont need to import the enum on every place where you use this enum but you still could if you prefer that enum Country AT AT DE DE CH CH you always need to import the Country enum to use this functionconst doSomethingWithEnum country Country gt country doSomethingWithEnum Country AT ok doSomethingWithEnum AT Argument of type AT is not assignable to parameter of type Country However doSomethingWithEnum AT would lead to working javascript code const Country AT AT DE DE CH CH as const const values Object values Country type Country typeof values number intellisense support and no need to import the country object to use this functionconst doSomethingWithCountry country Country gt country doSomethingWithCountry AT okdoSomethingWithCountry Country AT ok doSomethingWithCountry US Argument of type US is not assignable to parameter of type AT DE CH Apart from the potential replacement of a enum as const can be used for other things as well I will show you another use case within the next section Type narrowingType narrowing can be used to accept different types in a function but then safely narrow down the type and perform different actions for different types const format value string number gt if typeof value string value is of type string and all string functions are available within the if block return Number parseFloat value toFixed else value is of type number and all number functions are available within the else block return value toFixed Typescript has really awesome type inference which lets us narrow the type based on a type of a common property const a value a const b value type AOrB typeof a typeof b const takeAOrB aOrB AOrB gt if typeof aOrB value string const value aOrB typeof value string else const value aOrB typeof value number But we can also narrow it if they have no common property but different proeprties const a a a const b b type AOrB typeof a typeof b const takeAOrB aOrB AOrB gt if a in aOrB const a aOrB typeof a string else const b aOrB typeof b number At some point it becomes practical to introduce a kind or type property which then can be used to distinguish between different types this kind property could also be used in a switch case const a kind a as const value a const b kind b as const value type AOrB typeof a typeof b const takeAOrB aOrB AOrB gt if aOrB kind a const value aOrB typeof value string else const value aOrB typeof value number Ok i think that one was pretty straightforward Now lets dig into generics I have used typescript a long time without ever writing a generic type myself They may look scary but trust me as soon as you know how to use generics it will open up a whole new world for you and unlock some really cool features GenericsGenerics can be hard to understand if you have never worked with a type system before thats why i want to explain it in detail to you Imagine you want to write some function that accepts any value as argument and passes it back as the return value You would need to write a union of every possible type or use any Both are not a good solution for it since the return value will not have the proper type type Primitive string number boolean const identity x Primitive Array lt Primitive gt Record lt string Primitive gt gt x const test identity a typeof test Primitive Primitive Record lt string Primitive gt const test identity typeof test Primitive Primitive Record lt string Primitive gt You would need to perform a type narrowing on the returned value in order to work with it in a type safe manner any would save you from writing a union of every possible type but leads or less to the same result const identity x any gt x const test identity a typeof test anyconst test identity typeof test anyGenerics to the rescue const identity lt T gt x T gt x const test identity lt string gt a typeof test stringconst test identity lt string gt Argument of type number is not assignable to parameter of type string const test identity lt number gt typeof test numberconst test identity lt boolean gt true typeof test booleanBecause it was hard for me to understand what happens here when i saw this syntax the first time let me try to explain with my own words You want to write a util function that one of your co workers can use and this function is the identity function in the examples above There are views on this You as the writer of the functionThe user of this util function your co worker First you need to write this function before your co worker is able to use it That means that at the time you write this function you have no idea which type will be passed to this function by your co worker It could be anything The type is only known once the function is called with some argument Your co worker can even rely on the type inference from typescript and dont specify a type at all const identity lt T gt x T gt x const test identity a typeof test a const test identity typeof test const test identity true typeof test trueThis also leads to the positive side effect that we get even more concrete types So a instead of string instead of numbertrue instead of booleanAwesome You can also restrict the input via the extends keyword Lets see examples on how we could restrict the identity function to only accept a string or union type const identity lt T extends string gt x T gt x const stringTest identity a typeof stringTest a const numberTest identity Argument of type number is not assignable to parameter of type string const identity lt T extends A B C gt x T gt x const test identity A typeof stringTest A const test identity D Argument of type D is not assignable to parameter of type A B C Now we are at a point where we can have a look at a real world example of a function with a generic argument and a constraint This is a util function that i need in every project and after the next section you will probably also have one in every project from now on Fixing Object keysI dont know if you have noticed this already but the builtin function to get the keys of an object Object keys has not the correct typings The problem const obj a a b b type Obj typeof obj a string b string type Key keyof Obj a b const keys Object keys obj typeof keys string I would expect the type of keys to be a b Typescript inferred a single key correctly a b but the type of the return value string of Object keys seems wrong Now that we know what the problem is we can try to write our own wrapper function with proper typing const objectKeys lt T extends Record lt string unknown gt gt obj T gt Object keys obj as Array lt keyof T gt const obj a a b b const keys objectKeys obj typeof keys a b type Key typeof keys number a b What happens here We created a function that accepts a argument with an generic type but we have restricted it to an object type So typescript will complain if you try to pass a string or a Array as argument Since typescript has really good type inference it will know that only a and b are valid keys for this object and pass back this type to us a b If you would add a c key to the object it will pass you back a b c without any changes on the implementation of the function and without writing a type yourself Thats the power of generics A type safe omit functionLets do this in iterations going from an naive approach to a full typesafe approach The logic for the omit function is the same in all iterations We will only change the types Naiveconst omit obj Record lt string unknown gt keysToOmit Array lt string gt gt Object fromEntries Object entries obj filter k gt keysToOmit includes k as Record lt string unknown gt const obj a a b b omit obj c c is a valid argument but it should not be valid const partialObj omit obj a typeof partialObj Record lt string unknown gt const a partialObj a typeof a unknownconst b partialObj b typeof b unknownconst c partialObj c typeof c unknownIn this approach we are not using generics The only typescript support we have is that the first argument needs to be a object and the second should be a array of strings The type of the return value is Record lt string unknown gt which basically means some unknown object a and b on the return type are typed as unknown If we try to access c which was not even present on the input we get unknown and no error Typescript support for keysToOmitconst omit lt T extends Record lt string unknown gt gt obj T keysToOmit Array lt keyof T gt gt Object fromEntries Object entries obj filter k gt keysToOmit includes k as Record lt string unknown gt const obj a a b b omit obj c Type c is not assignable to type a b const partialObj omit obj a typeof partialObj Record lt string unknown gt const a partialObj a typeof a unknownconst b partialObj b typeof b unknownconst c partialObj c typeof c unknownNow we are using generics and by doing so we can provide the user of the function with some intellisense for the keysToOmit argument But the type of the return value is still Record lt string unknown gt Also we still get unknown for a b and c Typings for the return valueconst omit lt T extends Record lt string unknown gt gt obj T keysToOmit Array lt keyof T gt gt Object fromEntries Object entries obj filter k gt keysToOmit includes k as Partial lt T gt const obj a a b b const partialObj omit obj a typeof partialObj Partial lt a string b string gt const a partialObj a typeof a string undefinedconst b partialObj b typeof b string undefinedconst c partialObj c Property c does not exist on type Partial lt a string b string gt We still have the improvements from the last iteration regarding the keysToOmit argument but now also add as Partial lt T gt to the end of the omit function which makes the type of the return value a little more accurate a and b are typed with string undefined which is somehow correct But we now get a error when we try to access c Still not perfect Typesafe approachconst omit lt T extends Record lt string unknown gt K extends Array lt keyof T gt gt obj T keysToOmit K gt Object fromEntries Object entries obj filter k gt keysToOmit includes k as Omit lt T K number gt const obj a a b b const partialObj omit obj a typeof partialObj Omit lt a string b string a gt const a partialObj a Property a does not exist on type Omit lt a string b string a gt const b partialObj b typeof b stringconst c partialObj c Property c does not exist on type Omit lt a string b string a gt Now look at this It is wonderful You have all the benefits of the previous iterations and also the type of the return value is now correct Only b is a valid key and it is typed as string which is also correct Trying to access a on the return value will result in an error because it was removed by our function Trying to access c will also result in an error since it was not even present on the input object ClosingIf you find this interesting you maybe also find my other blog post interesting which really gets wild with generics and type inference Its about the implementation of a validation library with the following main goals You dont have to write a single type You can extract the static type from the schema itself Strongly typed errors Every schema defines all possible errors that can happen Composable and extendable Use create and compose little building blocks to form more complex ones Check it out Lets get schwifty with typescriptThats all for today I hope you learned something new and i would be happy about feedback Ok 2021-12-27 18:09:29
海外TECH DEV Community peviitor.ro - viziune https://dev.to/sebiboga/peviitorro-viziune-3m1e peviitor ro viziuneTot mai multe companii isi activeaza prezenta in online prin website uri de prezentare O componenta importanta este sectiunea de CARIERE Lipsa unui integrator a tuturor locurilor de munca disponibile pe piata fortei de munca ne a incurajat sa implementam un motor de cautare specific pentru locurile de munca CompaniileCompaniile pot sa isi integreze ofertele de locuri de munca in motorul de cautare Practic se poate face integrare intre website ul companiei si motorul de cautare Sursa de date principala pentru motorul de cautare peviitor ro este website ul companiei sectiunea cariere UtilizatoriiCei care sunt in cautarea unui loc de munca prin intermediul acestui motor de cautare vor reusi foarte repede sa afle ofertele de pe piata muncii Despre noiSuntem cativa oameni pasionati de IT care avem curajul sa aducem pe piata muncii ceva diferit Am reusit sa automatizam procesul de culegere a datelor despre locurile de munca disponibile pentru cateva companii Ne propunem sa crestem numarul companiilor integrate cu motorul de cautare in fiecare zi ProblemeDespre problemele rezolvate prin acest motor de cautare ar fi multe de spus insa principalul avantaj este ca utilizatorul nu va mai trebui sa mearga pe sute de mii de website uri si sa isi caute locul de munca visat intrebandu se daca oportunitatea pentru el s a ivit sau inca mai trebuie sa astepte O alta problema rezolvata cu acest motor de cautare este ca oamenii din recrutare nu vor trebui sa introduca de mai multe ori acelasi anunt pe mai multe platforme in speranta ca poate candidatul ideal o sa le bata la usa Despre problemele identificate si uneori nerezolvate iarasi este mult de vorbit insa merita mentionat un detaliu tehnic care nu este acoperit in majoritatea paginilor care descriu locul de munca nu am gasit nici o pagina pana in prezent care sa implementeze obiectul JobPosting din ConcluzieAm dori sa retinem faptul ca implementarea acestui proiect motor de cautare pe langa functionalitatea principala vine sa aduca o standardizare tehnica a prezentarii locurilor de munca DetaliiCateva detalii care merita mentionate sunt nu preluam CV urile candidatilorpentru procesul de a aplica la o pozitie deschisa ducem utilizatorul spre pagina originala unde a fost gasit locul de munca unde potentialul candidat va citi detaliile si daca va dori va urma pasii spre a incepe procesul de recrutarenu facem recrutari pentru alte companiiproiectul este OPEN SOURCE oricine doreste sa se implice VOLUNTAR poate sa se implice respectand procesul definitNe dorim ca in final sa ajungem sa iti oferim oportunitatea pe care o cautai pentru ca tu sa activezi la adevaratul tau potential si chiar daca am inceput proiectul cu viziunea pentru toti vom incerca sa ne adresam cu oportunitatile pentru fiecare adica pentru tine in special cel care vei fi utilizatorul platformei Fie ca esti tu in cautarea unei oportunitati sau vrei sa iti ajuti prietenul sau prietena foloseste cu incredere peviitor ro caci aici gasesti informatiile actualizate splash screen 2021-12-27 18:06:16
海外TECH Engadget The best apps to download on your new smartphone https://www.engadget.com/best-apps-to-download-on-your-new-smartphone-ios-android-180049321.html?src=rss The best apps to download on your new smartphoneYou just got your hands on a new phone Naturally your first inclination is to head to the App Store or the Google Play Store to download your favorite apps to your shiny new device While the Engadget team tries to keep our phones relatively unencumbered there are some apps we can t live without because they make our work and daily lives easier Below you ll find a dozen of the best we think you should try PasswordPasswordIf you only take one piece of advice away from this article it s that you should download a password manager It doesn t have to be the one we recommend here However we like Password for a handful of reasons Not only will it let you generate strong passwords for all your online accounts but it also has built in support for two factor authentication That means you don t need to download a separate app like Authy to make your logins as secure as possible If you have access to a Fastmail account you can also use Password to generate random emails for your logins giving you another way to protect your privacy It s also just a well designed app that s a pleasure to use FireFoxFirefoxIf it s been a few years since you last used Firefox now is a great time to revisit it Partway through last year Mozilla overhauled the Android version of its browser to bring over many of its best desktop features to mobile That release saw Mozilla add more robust support for third party add ons It also brought over its Enhanced Tracking Protection feature which stops trackers from misusing your browsing data Separately with Apple allowing you to change your default browser since the release of iOS there s never been a better time for iPhone users to liberate themselves from Safari HeadspaceHeadspaceI subscribed to Headspace at the start of the pandemic Since then it s become one of the few apps I use every day Yes Headspace is a meditation and mindfulness app but it s also so much more than that You ll find it also has a mix of music designed to help you focus and workouts for unwinding at the end of a long day Across the board everything it offers is excellent and you ll find yourself turning to it for more than just peace of mind HopperHopperIf you plan to fly somewhere soon install Hopper on your phone While it has grown over the years to include a variety of features at its core Hopper is one of the best ways to save money on plane tickets Once you tell the app where and when you want to fly it ll tell you whether you should book your flight now or wait In the latter case it ll notify you when it estimates you ll get the best deal The beauty of Hopper is it will save you from constantly checking websites like Google Flights and Kayak LibbyLibbyIf you want to do more reading in forget about buying books through Amazon and download Libby instead If you re not familiar with the app it allows you to borrow ebooks digital magazines and graphic novels from your local library All you need is a library card which most systems across the US offer for free Sometimes you have to wait to borrow the books you want to read most but you ll find Libby will dramatically expand your reading list Open TableOpen TableWith restaurants reopening in cities throughout the US and the rest of the world there s a good chance you plan to eat out sometime soon ーand so does nearly everyone else That means you ll likely need a reservation to dine at some of the most popular spots in your city In North America the closest you ll find to a single platform that nearly every restaurant uses is Open Table For that reason alone it s a must download if you eat out a lot It s also a handy tool for discovering new spots to visit since you can filter by cuisine and area TransitTransitThere s nothing worse than waiting for a bus on a cold winter s day or watching three go by one after another Avoid both situations with one of the best public transit planning apps on Android and iOS Transit excels where other apps in the category fail thanks to its clean easy to use interface that highlights all the options near you It also has one of the better algorithms for predicting departure times so you ll know exactly when you need to run out of your house or apartment to catch the next bus train or streetcar PaprikaPaprikaPaprika is the best you can spend to make feeding yourself even easier At its core it allows you to download recipes from your favorite websites and make them accessible on all your devices You can also use it to scale the size of the meal you re about to cook and convert between metric and imperial measurements Add to that a meal planner shopping lists and a tool for tracking the ingredients in your pantry and you have an indispensable app for home cooks Pocket CastsPocket CastsWith podcasts becoming ever more popular with each passing year there s a good chance you already have a handful of favorite shows you listen to every week As much as Spotify would like to convince you it has the best podcast app that distinction goes to Pocket Casts We like it because it offers a consistently great experience across every system it supports And if you use a mix of platforms from Apple Google and Microsoft you don t have to worry about syncing either It s also nice to use software that doesn t feel caught between two worlds in the way that Spotify does Pocket Casts isn t trying to be anything more than an app for listening to podcasts That s not something you can say of Spotify and it s often a source of frustration for those who turn to it for music PocketPocketAnother way to read more in is to download Pocket It s among the most popular read it later apps out there allowing you to save articles you find online Much like Pocket Casts what makes this app compelling is that it offers a consistently excellent device agnostic experience making it a great option for those who haven t gone all in on one ecosystem Whether you use Chrome Safari or Edge you can install a browser extension to save articles you stumble upon You can then read them later without distractions on your phone or tablet Just don t forget to make a dent in your Pocket reading list occasionally Telegram SignalTelegramWe understand asking your friends and family to install another messaging app on their phone can sometimes feel like a Sisyphean task but the effort has also never been more worth it In Telegram and Signal you ll find two of the most secure chat apps on the market We especially like Telegram here at Engadget because of how complete it feels from a feature standpoint For example it includes an edit feature that comes in handy when you make a typo and a Secret Chat tool for when you want messages to disappear If you do make the switch to Telegram or Signal you ll also free yourself of the Meta ecosystem That might not seem like much but when Facebook Instagram and WhatsApp went down earlier this year it left many people without a way to communicate with their friends and loved ones TunnelbearTunnelbearAfter a Password manager one of the best tools you can use to safeguard your online privacy is a VPN Again there are many options out there but we like TunnelBear for its simplicity and whimsical ursine theme A VPN isn t as essential as a password manager but you ll want to get one if you frequently find yourself traveling or using the public WiFi at places like cafes and libraries Using a VPN in those contexts will ensure your connection is protected with encryption so that any information you send over remains safe and private SnapseedSnapseedMost recent phones come with great cameras Still even with the latest iPhone Samsung Galaxy or Google Pixel almost every photo can benefit from an edit before you share it The options you have for photo editing apps are nearly endless but if you want something that works well look no further than Snapseed It s an old favorite that offers a comprehensive suite of editing options but never gets bogged down in too many sliders and dials Best of all it makes it easy to save edits to your camera roll and upload them to apps like Instagram 2021-12-27 18:00:49
海外TECH Engadget Amazon’s ‘New World’ is among the year’s biggest money makers on Steam https://www.engadget.com/steam-top-sellers-new-world-battlefield-2042-valheim-destiny-2-apex-legends-180030016.html?src=rss Amazon s New World is among the year s biggest money makers on SteamValve has once again given some insight into the highest earning games of the year on Steam The sixth annual Top Sellers list splits the top games into a few categories and the titles within each are randomly ordered The games in the Platinum category raked in the most cash There are several free to play games at the top since Steam has factored in microtransactions and paid expansions The Platinum tier is dominated by old favorites including Apex Legends PUBG Battlegrounds Counter Strike Global Offensive Dead by Daylight Destiny Rainbow Six Siege Dota and Grand Theft Auto V It s the sixth straight year that Dota CS GO and Grand Theft Auto V have made it into the top tier PUBG Battlegrounds and Rainbow Six Siege each made the cut for the fifth time as well Destiny meanwhile nbsp has featured in the Platinum tier every year since it hit Steam in Battle royale title Naraka Bladepoint and Battlefield are among the four releases from this year that made it into the top Valheim a survival sandbox game made by just five people is also among the biggest money makers as is New World showing that after years of trying and failing Amazon has finally made a hit game The newcomers that landed in the second group of games Gold are FIFA Back Blood Forza Horizon and It Takes Two which won game of the year honors at The Game Awards The older titles in that section are Final Fantasy XIV Online which Square Enix has temporarily stopped selling due to overloaded servers Red Dead Redemption Rust Sea of Thieves Warframe The Elder Scrolls Online War Thunder and Forza Horizon The Silver section meanwhile includes releases such as Halo Infinite Outriders Resident Evil Village and Mass Effect Legendary Edition Cyberpunk which was released in December last year is in that category as are The Sims Monster Hunter World and the bot plagued Team Fortress Some key takeaways include the fact that EA which brought its games back to Steam in had four titles among the top earners including three new releases Apex Legends Battlefield FIFA and It Takes Two Microsoft also had several games in the top few tiers despite them all being available on PC Game Pass Forza Horizon its predecessor and Sea of Thieves are all in the Gold category Halo Infinite made it into Silver even though the multiplayer is free to play and the paid campaign had only been out for a week before Steam stopped tracking earnings for the list Many of these games ーincluding New World Battlefield Mass Effect Legendary Edition and Sea of Thieves ーhave been discounted for the Steam Winter Sale Cyberpunk Valheim and Back Blood are also included in the sale which runs until January th 2021-12-27 18:00:30
海外科学 NYT > Science E.O. Wilson, a Pioneer of Evolutionary Biology, Dies at 92 https://www.nytimes.com/2021/12/27/science/eo-wilson-dead.html E O Wilson a Pioneer of Evolutionary Biology Dies at A Harvard professor for years he was an expert on insects and explored how natural selection and other forces could influence animal behavior He then applied his research to humans 2021-12-27 18:24:07
ニュース BBC News - Home No new Covid rules in England before new year - Javid https://www.bbc.co.uk/news/uk-59804686?at_medium=RSS&at_campaign=KARANGA christmas 2021-12-27 18:47:34
ニュース BBC News - Home Scotland's Covid cases hit record levels over Christmas https://www.bbc.co.uk/news/uk-scotland-59802261?at_medium=RSS&at_campaign=KARANGA december 2021-12-27 18:29:40
ニュース BBC News - Home Breach scores on return from broken back as Harlequins beat Wasps to go second in Premier 15s https://www.bbc.co.uk/sport/rugby-union/59803222?at_medium=RSS&at_campaign=KARANGA Breach scores on return from broken back as Harlequins beat Wasps to go second in Premier sJess Breach makes a try scoring return from her broken back as Harlequins beat Wasps to go second in the Allianz Premier s 2021-12-27 18:04:08
ニュース BBC News - Home Covid-19 in the UK: How many coronavirus cases are there in my area? https://www.bbc.co.uk/news/uk-51768274?at_medium=RSS&at_campaign=KARANGA cases 2021-12-27 18:30:54
ビジネス ダイヤモンド・オンライン - 新着記事 まるでバブルなカーボン・クレジット市場、国際ルール統一に岸田政権は動くのか - 今週のキーワード 真壁昭夫 https://diamond.jp/articles/-/291646 まるでバブルなカーボン・クレジット市場、国際ルール統一に岸田政権は動くのか今週のキーワード真壁昭夫カーボン・クレジットの取引が盛り上がり、既にバブルの様相を呈している。 2021-12-28 03:55:00
ビジネス ダイヤモンド・オンライン - 新着記事 NEC、日立、富士通、NTTデータ…真のブラック度は?勝ち組は?【IT業界インサイダー座談会1】[2021年間ベスト10] - DOLベスト記事アワード https://diamond.jp/articles/-/290838 2021-12-28 03:50:00
ビジネス ダイヤモンド・オンライン - 新着記事 皇室の安定的な存続に必要な発想とは?王位継承者5000人超の英国に学べ - 上久保誠人のクリティカル・アナリティクス https://diamond.jp/articles/-/291748 皇室の安定的な存続に必要な発想とは王位継承者人超の英国に学べ上久保誠人のクリティカル・アナリティクス月日、安定的な皇位継承のあり方を議論する政府の有識者会議が、皇族数の減少への対応策の最終報告書をまとめた。 2021-12-28 03:45:00
ビジネス ダイヤモンド・オンライン - 新着記事 今度は建設工事の調査票書き換え、統計不正事案の「本質」とは - DOL特別レポート https://diamond.jp/articles/-/291787 国土交通省 2021-12-28 03:42:00
ビジネス ダイヤモンド・オンライン - 新着記事 【10分でOK!】カンタン朝食で体を「充電」するノウハウ - 仕事脳で考える食生活改善 https://diamond.jp/articles/-/291605 食生活 2021-12-28 03:40:00
ビジネス ダイヤモンド・オンライン - 新着記事 「明大付属校」が、ほぼ半世紀ぶり世田谷に - 中学受験への道 https://diamond.jp/articles/-/292002 march 2021-12-28 03:37:00
ビジネス ダイヤモンド・オンライン - 新着記事 生まれつき決まっている脳細胞の数が「難易度の高い運動」で増える? - 「脳活」に役立つ生活・健康習慣の知恵 https://diamond.jp/articles/-/291971 生まれつき 2021-12-28 03:35:00
ビジネス ダイヤモンド・オンライン - 新着記事 ひろゆきが語る「投資に頭を使いたくない人がすべきお金のこと」ベスト1 - 1%の努力 https://diamond.jp/articles/-/289911 youtube 2021-12-28 03:30:00
ビジネス ダイヤモンド・オンライン - 新着記事 「育成上手」なリーダーが、部下を「育てよう」としない理由 - 課長2.0 https://diamond.jp/articles/-/290188 「育成上手」なリーダーが、部下を「育てよう」としない理由課長『課長』の著者・前田鎌利氏と『若手育成の教科書』の著者・曽山哲人氏が「若手を育てるための管理職の思考法」をテーマに語り合う対談が実現した。 2021-12-28 03:28:00
ビジネス ダイヤモンド・オンライン - 新着記事 「社会に出ても法律やお金のことがわからない」を解決する2冊 - 独学大全 https://diamond.jp/articles/-/255003 読書 2021-12-28 03:26:00
ビジネス ダイヤモンド・オンライン - 新着記事 ジェフ・ベゾスが「批判ばかりの相手」に放った衝撃名言 - Invent & Wander https://diamond.jp/articles/-/288526 amazon 2021-12-28 03:24:00
ビジネス ダイヤモンド・オンライン - 新着記事 メーカーに就職したい人なら絶対に知っておきたい「バリューチェーン」とは? - 全図解 メーカーの仕事 https://diamond.jp/articles/-/291536 メーカーに就職したい人なら絶対に知っておきたい「バリューチェーン」とは全図解メーカーの仕事メーカー製造業には自動車、電機、食品……などさまざまな業種がありますが、いずれも「商品をつくって顧客に届ける」という点は共通です。 2021-12-28 03:22:00
ビジネス ダイヤモンド・オンライン - 新着記事 【習慣化のプロが教える】 紙とペンだけで「心を整える」方法 - 書く瞑想 https://diamond.jp/articles/-/290235 心を整える 2021-12-28 03:20:00
ビジネス ダイヤモンド・オンライン - 新着記事 『嫌われる勇気』著者が教える、文章がつまらない人の意外な共通点 - 取材・執筆・推敲──書く人の教科書 https://diamond.jp/articles/-/291466 古賀史健 2021-12-28 03:18:00
ビジネス ダイヤモンド・オンライン - 新着記事 【簡単なのに、9割の人が知らないコピーライティング技術100】 ネットショップで【ついで買い】を誘う神テクニック - コピーライティング技術大全 https://diamond.jp/articles/-/290090 【簡単なのに、割の人が知らないコピーライティング技術】ネットショップで【ついで買い】を誘う神テクニックコピーライティング技術大全発売たちまち大重版Amazonランキング第位広告・宣伝、。 2021-12-28 03:16:00
ビジネス ダイヤモンド・オンライン - 新着記事 【就職したことがないのに株式投資で4.5億円!】 これまで経験した株式相場の大暴落 - 賢明なる個人投資家への道 https://diamond.jp/articles/-/290632 【就職したことがないのに株式投資で億円】これまで経験した株式相場の大暴落賢明なる個人投資家への道中学年から株ひと筋で、株式投資歴年以上のベテラン専業投資家、かぶが『賢明なる個人投資家への道』を著した。 2021-12-28 03:14:00
ビジネス ダイヤモンド・オンライン - 新着記事 「金融」に頼る国の悲劇的な末路とは? 国と国民を貧しくする「金融の呪い」の恐ろしすぎる真実 - 世界を貧困に導く ウォール街を超える悪魔 https://diamond.jp/articles/-/291885 「金融」に頼る国の悲劇的な末路とは国と国民を貧しくする「金融の呪い」の恐ろしすぎる真実世界を貧困に導くウォール街を超える悪魔タックスヘイブンの実態を追及するジャーナリスト、ニコラス・シャクソンが、社会、経済、政治を世界的に支配し、大多数の犠牲の下にごく少数の人々だけを富ませてきた金融の闇について解き明かす。 2021-12-28 03:12:00
ビジネス ダイヤモンド・オンライン - 新着記事 玩具を通して心理的安全性を育む。レゴが同僚との心の距離を縮めるワケ - レゴ https://diamond.jp/articles/-/291862 大の大人 2021-12-28 03:10:00
ビジネス ダイヤモンド・オンライン - 新着記事 「失敗を活かせる人、活かせない人」決定的な差 - ハーバードの人の心をつかむ力 https://diamond.jp/articles/-/291886 2021-12-28 03:08:00
ビジネス ダイヤモンド・オンライン - 新着記事 「わからない」って言うことは大事なのよね - 精神科医Tomyが教える 1秒で悩みが吹き飛ぶ言葉 https://diamond.jp/articles/-/291457 「わからない」って言うことは大事なのよね精神科医Tomyが教える秒で悩みが吹き飛ぶ言葉人気シリーズ『精神科医Tomyが教える秒で悩みが吹き飛ぶ言葉』から、きょうのひと言本当は知らないくせに、知ったような顔をして話に乗ってしまう。 2021-12-28 03:06:00
ビジネス ダイヤモンド・オンライン - 新着記事 すごく優秀なのに「がんばって働く意味」がわからなくなった人の話 - チームが自然に生まれ変わる https://diamond.jp/articles/-/291043 2021-12-28 03:04:00
ビジネス ダイヤモンド・オンライン - 新着記事 「マンダラ広告作成法を知っておけば、あらゆる媒体で使える! - 「A4」1枚チラシで今すぐ売上をあげるすごい方法 https://diamond.jp/articles/-/291828 2021-12-28 03:02: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件)