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

カテゴリー等 サイト名等 記事タイトル・トレンドワード等 リンクURL 頻出ワード・要約等/検索ボリューム 登録日
AWS AWS Government, Education, and Nonprofits Blog AWS and Howard University announce initiative to prepare students for in-demand cloud careers https://aws.amazon.com/blogs/publicsector/aws-howard-university-announce-initiative-prepare-students-in-demand-cloud-careers/ AWS and Howard University announce initiative to prepare students for in demand cloud careersAWS and Howard University announced an initiative to upskill its students and build pathways to technical careers with cloud computing courses and training resources for educators Learn more about how the collaboration will prepare students for the workforce with hands on experiences how Howard University is launching a master s program with the support of AWS experts and more 2021-05-25 14:42:19
python Pythonタグが付けられた新着投稿 - Qiita 【YOLOv5】スナックエンドウの収穫用に物体検出モデルをつくってみる【Windows】 https://qiita.com/n91-takayuki/items/4ddbbbdefcf6dc363a38 YOLOvは簡単に実装することができるように工夫されていますので是非やってみてください。 2021-05-25 23:39:10
python Pythonタグが付けられた新着投稿 - Qiita DataFrameで元のindexが0からに振りなおされるのでうまく回避したかったんだ https://qiita.com/Sicut_study/items/445e9b49cd682ba1f2f7 DataFrameで元のindexがからに振りなおされるのでうまく回避したかったんだはじめに最近データ分析をやっと実践で勉強するようになり、Pandasをまったく使いこなせないなと実感するようになりました。 2021-05-25 23:31:51
python Pythonタグが付けられた新着投稿 - Qiita RaspiとArduinoとSORACOMで共用駐車場が空いているかを監視させてみた https://qiita.com/lonsdale/items/bbaacfb7864cc22420dc しかし共用駐車場はもちろん外なので、raspiを電池で駆動させないといけない。 2021-05-25 23:22:34
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) C#について質問です。API https://teratail.com/questions/340361?rss=all Googleスプレッドシートを利用してアプリケーションを作りたいのですが、サンプルコードを引用して作成したところ、エラーが消えません。 2021-05-25 23:55:28
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) JavaScriptでkeyの値が一致するものの値を、他の配列に移し替えたい https://teratail.com/questions/340360?rss=all javascript 2021-05-25 23:49:10
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) Beautifulsoup 検索ページに取得したいデータがないときの飛ばし方がわからない https://teratail.com/questions/340359?rss=all Beautifulsoup検索ページに取得したいデータがないときの飛ばし方がわからない問題点raceidlistからfor文で回してスクレイピングをする際にデータが空のページがあるのでaposNoneTypeaposnbspobjectnbsphasnbspnonbspattributenbspaposfindallaposとエラーが出て止まってしまう。 2021-05-25 23:47:16
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) javascript 比較関数:整数a,b,c,d,e,f,gから4番目に大きい数を出力したい。 https://teratail.com/questions/340358?rss=all javascript比較関数整数abcdefgから番目に大きい数を出力したい。 2021-05-25 23:44:29
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) aws cliを使ってスイッチロールしてきたユーザを特定。そのユーザのprofileを取得したい https://teratail.com/questions/340357?rss=all スイッチロール先でも開発にログインしたユーザでnbspAWSnbspCLIを利用したいのですが、このときconfigのprofileをログイン者の情報に書き換える必要があります。 2021-05-25 23:35:33
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) Word2Vecにて学習済みモデルの取得&読み込みエラーについて:FileNotFoundError: [Errno 2] No such file or directory: https://teratail.com/questions/340356?rss=all WordVecにて学習済みモデルの取得読み込みエラーについてFileNotFoundErrorErrnoNosuchfileordirectoryWordVecにて学習済みモデルの取得読み込みをすると下記のようなエラーが表示されます。 2021-05-25 23:33:25
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) python tkinter radiobuttonの値取得について https://teratail.com/questions/340355?rss=all pythontkinterradiobuttonの値取得について前提・実現したいことラジオボタンを設定し、選択した値を取得しようとしていますが、最初に設定した値になってしまいます。 2021-05-25 23:33:20
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) TypeScriptで、インスタンスの作成にUtility Typeを使いたいが型エラーが出る。 https://teratail.com/questions/340354?rss=all TypeScriptで、インスタンスの作成にUtilityTypeを使いたいが型エラーが出る。 2021-05-25 23:31:46
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) phpで画像URLの置換したい https://teratail.com/questions/340353?rss=all wordpress 2021-05-25 23:24:56
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) n次元ポインタはどのように定義(宣言)すればよいのでしょうか? https://teratail.com/questions/340352?rss=all 2021-05-25 23:24:39
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) GO言語のGUIライブラリ「Fyne」がうまく動かない https://teratail.com/questions/340351?rss=all 2021-05-25 23:19:11
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) NoMethodError in Users#show 解決法 https://teratail.com/questions/340350?rss=all NoMethodErrorinUsersshow解決法前提・実現したいことタイトルのエラーが発生し、解決できない状況です。 2021-05-25 23:10:56
Ruby Railsタグが付けられた新着投稿 - Qiita Rails なんでストロングパラメータって必要なの? https://qiita.com/dym330/items/d8ee93e47d46b833d28a 【結果】adminがtrueの状態で保存が可能適切にpermitを記載していた場合ストロングパラメータからadminを消し同様の動作を行ってみますdefuserparamsparamsrequireuserpermitnameemailend【結果】想定外のデータは受け取れない設定になっているため、adminはfalseにて設定されます。 2021-05-25 23:24:50
海外TECH DEV Community Generating unique IDs in a Large scale Distributed environment https://dev.to/apoorvtyagi/generating-unique-ids-in-a-large-scale-distributed-environment-257d Generating unique IDs in a Large scale Distributed environment IntroductionRecently at work We were looking for a way to generate unique IDs across a distributed system that could also be used as the primary keys in the MySQL tables We knew in a single MySQL database we can simply use an auto increment ID as the primary key But this won t work in a sharded MySQL database So I looked at various existing solutions for this and finally learned about Twitter Snowflake a simple bit unique ID generator Why don t you use UUID UUIDs are bit hexadecimal numbers that are globally unique The chances of the same UUID getting generated twice are negligible The problem with UUIDs is that they are very big in size and don t index well When your dataset increases the index size increases as well and the query performance degrades Another problem with UUIDs is related to the user experience Eventually our users will be needed that unique identifiers Imagine that a customer calls Customer Service and is asked to provide the identifier Having to spell a complete UUID is not a pleasant experience Twitter snowflake Twitter snowflake is a dedicated service for generating bit unique identifiers used in distributed computing for objects within Twitter such as Tweets Direct Messages Lists etc These IDs are unique bit unsigned integers which are based on time The full IDs are made up of the following components Epoch timestamp in millisecond bits gives us years with respect to any custom epoch Configured machine node shard Id bits gives us up to total of i e Ids Sequence number bits A local counter per machine that sets to zero after every values The extra reserved bit at the beginning which is set as to make the overall number as positive Since these use the timestamp as the first component therefore they are time sortable as well Another benefit is its High Availability By default bit unsigned integers long will generate an Id whose length is but sometimes it may be too long our use case needed an Id whose length should not be greater than This article will share a simplified version of the unique ID generator that will work for any use case of generating unique IDs in a distributed environment based on the concepts outlined in the Twitter snowflake service Coding time In our case the full ID will be composed of a bit timestamp bit worker number and bit sequence number The remaining bit is the signed bit and it is always set to to make the final value positive Our microservices can use this Random number generator to generate IDs independently This is efficient and fits in the size of a int Bytes or bits Here is the complete code in Java Inspired by Twitter snowflake code credits Step We initialize the number of bits that each component will require public class Snowflake Sign bit Unused always set to private static final int UNUSED BITS private static final int EPOCH BITS private static final int NODE ID BITS private static final int SEQUENCE BITS private static final int maxNodeId int Math pow NODE ID BITS private static final int maxSequence int Math pow SEQUENCE BITS Custom Epoch Fri May GMT private static final int DEFAULT CUSTOM EPOCH private volatile int lastTimestamp private volatile int sequence Class Constructor public Snowflake this nodeId createNodeId this customEpoch DEFAULT CUSTOM EPOCH Here we are taking custom epoch as of Fri May GMT EPOCH BITS will be bits and is filled with a current timestamp in seconds You can also use millisecond if there is a possibility of multiple numbers of requests per second NODE ID BITS will be bits and is filled using the Mac address SEQUENCE BITS will be bits and will act as a local counter which will start from goes till and then resets back to Step Creating a synchronized function to generate the IDs public synchronized int nextId int currentTimestamp int Instant now getEpochSecond customEpoch if currentTimestamp lt lastTimestamp throw new IllegalStateException Invalid System Clock lastTimestamp currentTimestamp return currentTimestamp lt lt NODE ID BITS SEQUENCE BITS nodeId lt lt SEQUENCE BITS sequence Wait why are we doing these Left Shifts amp Logical OR operations This is because Integer is represented by bits and initially all are set to To fill these bits we have to take each component separately so first we took the epoch timestamp and shift it to i e bits to left Doing this has filled the first bits with the first component remember the first bit is always set to zero to make the overall number positive The remaining bits are still and hence again we repeat the same thing with logical OR amp the other two components as well thereby filling all the bits and forming the complete number Step Utility function to generate the node id using the system s MAC address private int createNodeId int nodeId try StringBuilder sb new StringBuilder Enumeration lt NetworkInterface gt networkInterfaces NetworkInterface getNetworkInterfaces while networkInterfaces hasMoreElements NetworkInterface networkInterface networkInterfaces nextElement byte mac networkInterface getHardwareAddress if Objects nonNull mac for byte macPort mac sb append String format X macPort nodeId sb toString hashCode catch Exception ex nodeId new SecureRandom nextInt nodeId nodeId amp maxNodeId return nodeId How it works Let s now understand its working with an example Let s say it s Sun May GMT right now The epoch timestamp for this particular time is First of all we adjust our timestamp with respect to the custom epoch currentTimestamp Adjust for custom epoch So to start our ID the first bits of the ID after the signed bit will be filled with the epoch timestamp Let s this value with a left shift id currentTimestamp lt lt NODE ID BITS SEQUENCE BITS Next we take the configured node ID shard ID and fill the next bits with thatid id nodeId lt lt SEQUENCE BITSFinally we take the next value of our auto increment sequence and fill out the remaining bits id id sequence That gives us our final ID And that s it Primary keys that are unique across our application Summary This article showed you a simple solution of how to generate a snowflake id whose length is gt and lt By the way you can adjust the bit count of the components to adapt to your work NOTE We should keep the generator as a singleton it means that we should only create the single instance of SequenceGenerator per node If not it may generate some duplicate Ids Not only did twitter used it Discord also uses snowflakes with their epoch set to the first second of the year Instagram uses a modified version of the format with bits for a timestamp bits for a shard ID and bits for a sequence number I hope this will help you Thanks for reading Enjoyed what you read You can show some love by buying me a coffee 2021-05-25 14:55:05
海外TECH DEV Community Want to compress your pdf files ? https://dev.to/burakcank/want-to-compress-your-pdf-files-5ff9 Want to compress your pdf files Are you tired of scanning images and trying to shrink them under mbs just so you can send them via email  Look no further I am here to save you from this trouble that kinda rhymed This basic shell script uses ghostscript to compress your scanned pdfs significantly Just yesterday I scanned pages of documents and it was over mbs I searched for a way to compress them under mbs and voila Here I was with only mbs of pdfs Much wow Such compression Why we need it Fast Ez No need to go online Especially no need to upload company top secret documents to any website you see on the Internet Possible huge compression without notable loss Command usage shrinkpdf sh in pdf out pdf Don t forget to install ghostscript If you are in a situation exactly like me where there are pdf files under one folder that you want to compress altogether a simple for loop will suffice import osimport subprocessimport sysinfolder sys argv outfolder compressed infolderos mkdir outfolder for f in os listdir infolder subprocess run shrinkpdf sh os path join infolder f os path join outfolder f Run this python script python shrink py pdfs and all of your pdfs will be put under compressed pdfs All the relevant details and more inside I humbly wanted to let you know such a useful tool exists 2021-05-25 14:41:23
海外TECH DEV Community Persisting Typed Objects with DataStore https://dev.to/yalematta/persisting-typed-objects-with-datastore-apc Persisting Typed Objects with DataStoreIn a previous post we have explored how to use Preferences DataStore to migrate our SharedPreferences And in this post we will focus on Proto DataStore What makes Proto DataStore different While both Preferences and Proto DataStore allow saving data they do this in different ways One important feature is applied only when using Proto DataStore and it is Type Safety With Proto DataStore we don t have to use keys Instead we define a schema using Protocol Buffers And with Protocol Buffers we can persist strongly typed data One of the downsides of SharedPreferences and Preferences DataStore is that there is no way to ensure that keys are accessed with the correct type Using Proto DataStore we know what types are stored and we will just provide them What s Protocol Buffers Protocol Buffers were developed by Google for storing and interchanging all kinds of structured information They are used for serializing structured data It is similar to XML and other similar data formats but it s smaller faster and simpler If you don t know what serialization is it s the process of translating a data structure or object state into a format that can be stored like for example a file or a memory data buffer How Protocol Buffers work We need to define how we want our data to be structured once and the compiler will generate the source code for us to easily read and write the structured data That said with Proto Datastore we will serialize and save our custom data structure using Protocol Buffers and of course deserialize and read the values whenever we need to Let s dive In this simple project we are implementing the same Remember Me functionality as in the previous post We are currently using SharedPreferences to store this value and redirect the user to the Welcome screen once it s checked We will migrate the code to use Proto DataStore To get your hands on the code consider checking this GitHub repo The final code is located in the proto datastore branch Define Protobuf schema ️In order to use Proto Datastore we will need to define our Protobuf schema in a new proto file So instead of creating a model class in Kotlin we will define it in a Protobuf schema instead And there s a new syntax that we need to follow when writing this schema We will install a plugin in Android Studio called Protocol Buffer Editor that will help us write the Proto file Make sure to install it before creating your proto files Once installed we switch to our Project View and under app src main we create a new directory called proto Inside this directory we create a new file user prefs proto where we define our Protocol Buffer schema as follows syntax proto option java package com yalematta datastore demo option java multiple files true message UserPreferences bool remember string username int luckyNumber Let me walk you through this syntax ️⃣SyntaxThere are versions for the Protobuff syntax proto and proto You can check the documention for more info regarding these two different versions In our case we are going to use proto ️⃣OptionsThen we are going to write options First our java package name We need it in order to tell our compiler where to generate our classes from this protocol buffer The second option is java multiple files We will set it to true and this means that we need to create a separate file for each top level message object of this proto file ️⃣MessageThe message keyword defines the data structure And inside it we define the members of this structure As you may have noticed we have different primitive types in this syntax By taking a look at the documentation we can learn that int in Java represents an Integer int a Long and bool is a Boolean We create an object UserPreferences with member fields a bool a string and an int Don t be confused when you see these and These are not actual values but unique numbers to identify our fields in the message binary format and they should not be changed once our message object is in use Dependencies Before we continue let s place this plugin at the top of our build gradle file plugins id com google protobuf version Then we need to add two dependencies one for Protobuf and one for Proto DataStore proto dataStoreimplementation androidx datastore datastore beta implementation com google protobuf protobuf javalite And finally at the end of our build gradle file we configure Protobuf and we sync our project protobuf protoc artifact com google protobuf protoc Generates the java Protobuf lite code for the Protobufs in this project See customizing protobuf compilation for more information generateProtoTasks all each task gt task builtins java option lite Now that we have added this plugin we should be able to see the automatically generated files by this plugin from our user prefs proto file Rebuild the project to see those files inside the java generated folder We find a new UserPrefs folder that represents our proto file and a UserPreferences class that represents our message object Inside it we have java code that implements some getters and setters for this UserPreferences message object Serializer ️To tell DataStore how to read and write the data type we defined in the proto file we need to implement a Serializer The Serializer defines also the default value to be returned if there s no data saved yet Back in our project we create a class called UserPreferencesSerializer which extends Serializer We implement its two methods readFrom and writeTo In these methods we define how we want to read and write this object into our DataStore object UserPreferencesSerializer Serializer lt UserPreferences gt override val defaultValue UserPreferences UserPreferences getDefaultInstance override suspend fun readFrom input InputStream UserPreferences try return UserPreferences parseFrom input catch exception InvalidProtocolBufferException throw CorruptionException Cannot read proto exception override suspend fun writeTo t UserPreferences output OutputStream t writeTo output DataStore Repository ️Next we create our Repository which we call UserPreferencesRepository class UserPreferencesRepository private val userPreferencesStore DataStore lt UserPreferences gt Read from DataStore We create a new variable called userPreferencesFlow of type Flow We use our dataStore to read the data and catch exceptions if there is any and emit the default instance of UserPreferences in that case val userPreferencesFlow Flow lt UserPreferences gt userPreferencesStore data catch exception gt dataStore data throws an IOException when an error is encountered when reading data if exception is IOException Log e TAG Error reading sort order preferences exception emit UserPreferences getDefaultInstance else throw exception Write to DataStore We create the suspend updateUsername function which will update one field from our UserPreferences member values We will call preference toBuilder and we choose the setter method that we need from our generated class suspend fun updateUsername username String userPreferencesStore updateData preferences gt preferences toBuilder setUsername username build P S Don t forget to create a method to update each field Clear DataStore To clear data we can either clear the preferences all together or clear a specific preference by its method from our generated class suspend fun clearDataStore userPreferencesStore updateData preferences gt preferences toBuilder clear build suspend fun clearUsername userPreferencesStore updateData preferences gt preferences toBuilder clearUsername build Call it from the ViewModel In our LoginViewModel we create a variable for our UserPreferences read its data from our DataStore as a Flow and then convert it to LiveData Next we create a new function named saveUserPreferences and we pass to it the values that we want to update We call viewModel scope and run the following code inside a coroutine since our update functions in our Repository are using Kotlin Coroutines class LoginViewModel private val userPreferencesRepository UserPreferencesRepository ViewModel val userPreferencesFlow userPreferencesRepository userPreferencesFlow asLiveData fun saveUserPreferences remember Boolean username String luckyNumber Int viewModelScope launch Dispatchers IO userPreferencesRepository updateRemember remember userPreferencesRepository updateUsername username userPreferencesRepository updateLuckyNumber luckyNumber fun clearUserPreferences viewModelScope launch Dispatchers IO userPreferencesRepository clearDataStore class LoginViewModelFactory private val userPreferencesRepository UserPreferencesRepository ViewModelProvider Factory override fun lt T ViewModel gt create modelClass Class lt T gt T if modelClass isAssignableFrom LoginViewModel class java Suppress UNCHECKED CAST return LoginViewModel userPreferencesRepository as T throw IllegalArgumentException Unknown ViewModel class LoginViewModelFactory is a ViewModelProvider Factory that is responsible to create our instance of LoginViewModel later in our Activity We will pass to it the DataStoreRepository which is need in LoginViewModel s constructor Observe it in the Activity Create DataStore ️In our Activity we first create our userPreferencesDataStore and we initialize it and pass to it a file name as well as our Serializer class private const val DATA STORE FILE NAME user prefs pb val Context userPreferencesStore DataStore lt UserPreferences gt by dataStore fileName DATA STORE FILE NAME serializer UserPreferencesSerializer Migrate from SharedPreferences If we are migrating our existing data from the SharedPreferences when creating our DataStore we should add a migration based on the SharedPreferences name And when creating the dataStore we need to update the DataStore builder and assign to the migrations parameter a new list that contains an instance of our SharedPreferencesMigration Define the mapping logic from SharedPreferences to UserPreferences inside your SharedPreferencesMigration DataStore will be able to migrate from SharedPreferences to DataStore automatically for us const val USER PREFERENCES NAME user preferences private const val DATA STORE FILE NAME user prefs pb val Context userPreferencesStore DataStore lt UserPreferences gt by dataStore fileName DATA STORE FILE NAME serializer UserPreferencesSerializer produceMigrations context gt listOf sharedPrefsMigration context fun sharedPrefsMigration context Context SharedPreferencesMigration context USER PREFERENCES NAME sharedPrefs SharedPreferencesView currentData UserPreferences gt Define the mapping from SharedPreferences to UserPreferences currentData Inside our onCreate function we initialize our ViewModel and we observe our fields values so that whenever this data changes we will update it in its corresponding text field And whenever we click our login button we store the value from our editText and checkBox field and update it in our DataStore using the saveUserPreferences function class LoginActivity AppCompatActivity private lateinit var binding ActivityLoginBinding private lateinit var viewModel LoginViewModel private var rememberMe false private var luckyNumber private lateinit var username String override fun onCreate savedInstanceState Bundle super onCreate savedInstanceState binding ActivityLoginBinding inflate layoutInflater val view binding root setContentView view viewModel ViewModelProvider this LoginViewModelFactory UserPreferencesRepository userPreferencesStore get LoginViewModel class java viewModel userPreferencesFlow observe this userPreferences gt rememberMe userPreferences remember username userPreferences username luckyNumber userPreferences luckyNumber if rememberMe startActivity Intent this WelcomeActivity class java binding login setOnClickListener if binding remember isChecked val name binding username text toString var number luckyNumber if binding luckyNumber text toString isNotEmpty number binding luckyNumber text toString toInt viewModel saveUserPreferences true name number startActivity Intent this WelcomeActivity class java binding remember setOnCheckedChangeListener compoundButton CompoundButton b Boolean gt if compoundButton isChecked viewModel clearUserPreferences Key Takeaways Now that we migrated to Preferences DataStore let s recap DataStore is a replacement for SharedPreferences addressing most of its downsideshas a fully asynchronous API using Kotlin coroutines and Flowguarantees data consistencyhandles data migrationhandles data corruptionDataStore has different implementations Preferences DataStore stores and accesses data using keysProto DataStore ensures Type Safetyrequires defining a schema using Protocol Buffers Up next If this post was of any help to you or if you d like me to write about any specific Android related topics let me know Drop me a DM on Twitter yalematta 2021-05-25 14:28:22
海外TECH DEV Community Best Hosting for Developer (With Free Trial) https://dev.to/goonlinetools/best-hosting-for-developer-with-free-trial-di7 Best Hosting for Developer With Free Trial Hi If you re a web developer you need a web hosting provider that offers the cheapest hosting plan best hosting features and as well as excellent support and full backend access I recommend web hosting company that can serve you faster and reliably each time so that your website visitors can have a great experience Cloudways Days FreeCloudways is a managed hosting provider that emphasizes performance and simplicity From the simple server and application launch to the ongoing server maintenance Cloudways takes away all the hassles of server management so that you can continue to focus on growing your business Linode Free CreditLinode is a cloud hosting provider that focuses on providing Linux powered virtual machines to support a wide range of applications Given its roots many experts do not see it as a beginner friendly DigitalOcean Free CreditDigitalOcean is a cloud infrastructure provider that provides cloud computing services to business entities It is used to scale by deploying DigitalOcean applications that run parallel across multiple cloud servers without compromising performance Vultr Free CreditVultr provides high performance SSD cloud servers that boast a global footprint It aims to create the most reliable and efficient service for launching a blazing fast SSD cloud server I tried these hosting presonally for my sites and every hosting perform well but cloud hosting provider doesn t provide contact support only for server no extra support If you want good contact support and security in cloud hosting then i recommend Cloudways If you manage complete server and server security from your own then you can go with any hosting listed above but i recommend Linode I hope you will choose right hosting 2021-05-25 14:24:58
海外TECH DEV Community Top 10 (+/-) Linux skills for landing a Linux job https://dev.to/asciiden/top-10-linux-skills-for-landing-a-linux-job-1i5m Top Linux skills for landing a Linux job IntroductionHey now you have probably went through numerous job hunting websites and you memorized all the buzzwords Junior Sysadmin Junior Site Reliability Engineer NOC Engineer System support etc that can get you in IT with zero experience or even zero education Well let me tell you you are on the right track However there are some insights that a lot of you don t know as you haven t got a real Linux job Well now except you are on the right track you are on the post as well I am going to note down amp explain the top Linux skills in the opinion of a person who had a Linux job as a first that you should have before rushing into the interview TOP Linux skillsLinux skills But I know a lot of commands already It is not up to the commands you know but the ability to imply them at the right time and know when amp what to use Reading logsYou should always read logs Consider logging like the conversation you have with your friend just after you had a fight Hey man I am not really sure what happened there Yeah there was an error in our communication What do you mean Could you be a little bit more specific Well when you told me to give you reggs from the fridge I was super confused what does reggs mean Yeah sorry man I meant eggs Now lets turn this into a Linux logging conversation Case You type your Nginx server block but you miss spell root as rot You type nginx t and the test fails However you don t pay much attention to the test and do a etc init d nginx reload to turn your new website visible Nginx crashes Oh sh t my Nginx crashed Better check the web server Nginx logs ssh root server ipless var log nginx error logSHIFT G this takes you to the end of the file when using the less command You will see a line with the following context emerg unknown directive rot in etc nginx sites enabled your website Oh I typed rot instead of root in my server block Alrighty lets fix that nano etc nginx sites available your websiteChange rot to root nginx t all is fine etc init d nginx reload all is fineThis is a simple example of how the logs can help you You should always check the logs for each application that you are having a problem with Here comes the investigation skills that are of high importance Investigation skillsOkay you know you have to check logs However there is something additional you probably didn t consider When your application crashes there is a huge possibility it is going to rely on many different technologies That is why you should have an arsenal of plans when something crashes What I usually do is the following Note down the founding errorGoogle the errorCheck var log syslogCheck var log nginx error log if using Nginx Make a connection between the Google results syslog nginx error logGoogle if nginx syslog are related to the founding errorChoose a resolution from Google amp start working on itIn general the investigation skills you need are the curiosity to explore in detail Every small error you bump into GOOGLE IT Understanding the commandsWhen you are working with Linux you will work mainly if not ONLY with commands through the terminal Don t let that scare you but don t be having too much trust in yourself as well When typing commands always google when you are not sure There are many flags to the commands that do a lot of different stuff and some of them can hurt Checking system resourcesLinux is just like any other operating system It has system resources and these resources can impact the performance of our system Here are some commands that can help you understand what is happening with your server top This command is the task manager of Linux free h This command is showing how much memory you have and how much of it is being used df h This command is showing you how much storage you have left throughout your directories du sh This command is showing you how much memory your files directories are taking An example of using this command is du sh var log Check the historyThis is a super short tip always check the history because somebody before you could have already had the same issue you had Linux history is a history of the commands used by the user you are logged in with You simply type the history command and you will get an output with line numbers Understanding basic directory architectureIn Linux there are some main directories which are driving the operating system to function If I try to explain them in a better way than somebody with years of experience I would probably fail to deliver you the quality of content you need For this sole purpose I am teleporting you to the realm of How To Geek The Linux Directory Structure Explained Bonus skills Scripting skillsIt is always great to have more weapons in your arsenal Scripting skills can be of high importance when you have a recurring task that you could automate I personally only know how to script in BASH And it has been enough for me for years already However if you want to step up your game you could look at PERLGOLANGPython Most used Linux StackA Linux stack is a stack of technologies working together to deliver a solution The most used Linux stack is the LAMP stack it consists of LinuxApacheMySQLPHPThe first letter of each of these technologies brings us the LAMP abbreviation MonitoringWhen working with Linux mostly when you are a systems administrator you will have a monitoring system in place to keep track of all the systems you are supporting Some of the most used monitoring software suits are Nagios my personal favorite as I started with it ZabbixNew Relic Know the distribution differencesLinux has many distributions with Ubuntu Debian RHEL being the most popular ones Each different distribution has different spelling of some commands and has its own way of working The best way to understand these differences is to install them separately on a VM and poke around ConclusionIn conclusion the Linux world is a vast and open ocean where you can dive deeper and deeper each day Every time you find yourself understanding something there is more information that comes to light I hope this post lighted up your interest a little amp made you consider raising the bar of your Linux skills I wish you all the best amp happy exploring About the authorI am Dennis going by ASCIIden online and I am a junior DevOps engineer However I don t like the title of DevOps to identify myself with I rather consider myself a futurist amp huge tech enthusiast I am doing IT for about years now and I am learning so much I could not express it with words I am striving to become a helping hand to all juniors in the industry and I am doing my best to provide good and understanding content for you all to enjoy If you want to hit me up for a project or just want to say hi feel free to do it on any of my social media which you can find in my Twitter profile 2021-05-25 14:07:41
Apple AppleInsider - Frontpage News Apple releases two new videos showing viewers how to set up Apple Card Family https://appleinsider.com/articles/21/05/25/apple-releases-two-new-showing-viewers-how-to-set-up-apple-card-family?utm_medium=rss Apple releases two new videos showing viewers how to set up Apple Card FamilyTwo new videos uploaded to Apple s YouTube channel show Apple Card cardholders how to add co owners and participants to their Apple Card Family group The first video titled Apple Card How to add a Co Owner details the process of adding a co owner to your Apple Card Read more 2021-05-25 14:21:01
Apple AppleInsider - Frontpage News Apple Silicon M1 24-inch iMac review: Computing power for the masses https://appleinsider.com/articles/21/05/22/apple-silicon-m1-24-inch-imac-review-computing-power-for-the-masses?utm_medium=rss Apple Silicon M inch iMac review Computing power for the massesStop us if you ve heard this one before ーApple has a new line of colorful iMacs and they re probably going to change computing forever Apple s new inch iMacA month ago Apple continued the inexorable extermination of Intel on the Mac The latest Apple Silicon Mac is an update to the iMac lineup but instead of reusing the enclosure from the previous processor architecture like it has done in the past this time Apple has gone all out to rethink how the iMac looks and feels in its new inch model Read more 2021-05-25 14:36:39
海外TECH Engadget Improve your posture with this $255 height-adjustable standing desk https://www.engadget.com/ec-1-electric-height-adjustable-standing-desk-145526930.html Improve your posture with this height adjustable standing deskThe EC Electric Height Adjustable Standing Desk allows you to control the height of your work surface with a fast convenient raising mechanism 2021-05-25 14:55:26
海外TECH Engadget Rockstar launches a record label to 'elevate' dance music https://www.engadget.com/rockstar-games-launches-record-label-142109847.html culture 2021-05-25 14:21:09
海外TECH Engadget Panasonic's GH5 II refresh boosts 4K video quality and adds live streaming https://www.engadget.com/panasonic-gh5-ii-10-bit-60p-video-140057920.html boosts 2021-05-25 14:00:57
海外TECH Engadget Panasonic's GH6 will offer 10-bit 5.7K 60p video and cost around $2,500 https://www.engadget.com/panasonic-gh6-development-announcement-140038779.html Panasonic x s GH will offer bit K p video and cost around Panasonic has announced the development of the GH it s next flagship Micro Four Thirds camera set to arrive by the end of this year 2021-05-25 14:00:38
海外TECH CodeProject Latest Articles VRCalc++ Object Oriented Scripting Language :: Vincent Radio {Adrix.NT} https://www.codeproject.com/Articles/1272020/VRCalcplusplus-Object-Oriented-Scripting-Language dynamic 2021-05-25 14:43:00
海外科学 NYT > Science A Serene Shore Resort, Except for the SpaceX ‘Ball of Fire’ https://www.nytimes.com/2021/05/24/us/space-x-boca-chica-texas.html A Serene Shore Resort Except for the SpaceX Ball of Fire For years those in a rural Texas village cherished living among nature and wildlife Elon Musk s SpaceX has brought new fears and the promise of an economic boost to one of America s poorest corners 2021-05-25 14:52:49
海外科学 NYT > Science Archaeologists vs. Computer: New Study Fuels Sorting Competition https://www.nytimes.com/2021/05/25/science/archaeologist-neural-network-study.html Archaeologists vs Computer New Study Fuels Sorting CompetitionWhen it came to the tedious task of categorizing pottery fragments a deep learning model was found to be just as accurate and far more efficient as four human experts 2021-05-25 14:06:01
海外科学 NYT > Science Moderna Says Its Covid Vaccine Is Effective for 12- to 17-Year-Olds https://www.nytimes.com/2021/05/25/science/moderna-vaccine-teens-efficacy.html adolescents 2021-05-25 14:41:00
金融 金融庁ホームページ 「基幹系システム・フロントランナー・サポートハブ」支援決定案件について公表しました。 https://www.fsa.go.jp/news/r2/sonota/20210525.html 決定 2021-05-25 15:30:00
ニュース BBC News - Home Covid: Eight Indian variant areas should avoid indoor gatherings https://www.bbc.co.uk/news/uk-england-57232728 indian 2021-05-25 14:44:09
ニュース BBC News - Home Covid: Royal Bolton hospital taking 'urgent action' over virus https://www.bbc.co.uk/news/uk-england-manchester-57242368 bolton 2021-05-25 14:49:50
ニュース BBC News - Home PM's burka comments gave impression of insensitivity - report https://www.bbc.co.uk/news/uk-politics-57239483 islamophobia 2021-05-25 14:07:20
ニュース BBC News - Home John Cena: Fast and Furious star sorry over Taiwan remark backlash https://www.bbc.co.uk/news/world-asia-57241053 taiwan 2021-05-25 14:39:09
ニュース BBC News - Home Belarus plane: What we know and what we don't https://www.bbc.co.uk/news/world-europe-57239521 belarus 2021-05-25 14:31:18
ニュース BBC News - Home We have not got an ideal hand of cards - Southgate https://www.bbc.co.uk/sport/football/57244587 england 2021-05-25 14:15:59
ニュース BBC News - Home Giro d'Italia: Can anyone deny Egan Bernal in the final stages? https://www.bbc.co.uk/sport/cycling/57189490 Giro d x Italia Can anyone deny Egan Bernal in the final stages Back in form after a ruined by injury can anyone deny Tour de France champion Egan Bernal victory in the final week at the Giro d Italia 2021-05-25 14:28:33
北海道 北海道新聞 終電繰り上げで夜間乗車2割減 札幌市地下鉄 「人出減に効果」 https://www.hokkaido-np.co.jp/article/547957/ 札幌市交通局 2021-05-25 23:09:42

コメント

このブログの人気の投稿

投稿時間: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件)