Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "tips&tricks"
-
Don't do "git pull" quickly. Always do a "git fetch" THEN "git log HEAD..origin" OR "git log -p HEAD..origin". It is like previewing first what you will "git pull".
OR something like (example):
- git fetch
- git diff origin/master
- git pull --rebase origin master
Sometimes it is a trap, you will pull other unknown or unwanted files that will cause some errors after quickly doing a git pull when working in a team. Better safe than sorry.
Other tips and tricks related are welcome 😀
Credits: https://stackoverflow.com/questions...5 -
Like most people I needed some extra cash during uni, so I proceeded to learn CSS + Photoshop (yeah, I know). Followed by PHP and WordPress.
It can be a very shitty platform until you realize that you can stop combining plug-ins from all over the place with dubious code quality and roll your own.
Anyhow I kept at it until I was able to join a niche company doing a quite popular caching plug-in for WP (yeah, W3 Total) when I suddenly became *very* interested in anything and everything performance.
This landed me a very cozy consulting gig in the Nordics - they were using WP for an elephant-traffic website and had run into a myriad of perf issues.
Fixing them and breaking the monolith awarded me with skills in nodejs, linux, asynchronous caching among others.
I was soon in charge with managing the dev boxes for the entire team, and when the main operations dude left, I was promoted to owning the entire platform. (!) Tinkering with Linux for most of my life really came in handy here. (remember Debian potato?)
Used saltstack + aws cloudformation to achieve full parity between all environments. Learned myself some python and all various tips and tricks which in the end amounted to 90% reduction in time-to-first-byte and considerable cost savings.
By the end of the 2yr contract I had turned myself into a fullstack systems engineer and never looked back.
Lawyers not getting along resulted in us having to abandon NewRelic, so I got to learn and deploy the ELK stack as a homegrown replacement, which was super-fun.
Now I work in the engineering effectiveness department of a Swedish fintech unicorn where all languages under the Sun are an option (tho we prefer Python), so the tech stack is unlimited. Infinite tools and technologies, but with strong governing principles and with performance always in mind so as to pick the right tool for the job.
It's like that childhood feeling when you've just dumped a ton of Lego on the floor and are about to build something massive.
I guess the morale here is however disappointed you feel by your current stack - don't. Always strive to make things better, faster, more decoupled, easier to test, etc. and always challenge yourself to go outside the comfort zone.5 -
Can anyone recommend good books for coding algorithms?
Any tips and tricks would also be helpful. Thanks.11 -
Helpful tip to all you freelancers or those with the authority:
Never let a client dictate anything in how you do your job, no matter how simple.
Even if they ask you to make yourself available at a specific time, don't. Instead, tell them times you have available so they have to work with you.
If you give a client an inch, they will always take a mile.3 -
Useful docker aliases
alias dstart='docker start "$@"'
alias dstop='docker stop "$@"'
alias drm='docker rm "$@"'
alias dip='docker inspect --format "{{ .NetworkSettings.IPAddress }}" "$@"'
alias dls="docker ps"
alias dlsa="docker ps -a"
alias dps="docker ps"
alias dimg='docker images "$@"'
alias drestart='docker restart "$@"'
alias dcommit='docker commit "$@"'
alias dinspect='docker inspect "$@"'
alias dlogs='docker logs "$@"'
alias dcp='docker cp "$@"'
alias dinfo='docker info'
alias dcompose='docker-compose "$@"'
alias dlogs='docker logs "$@"'
alias drshell='docker exec -it -u 0 "$@"'10 -
Hey there!
So during my internship I learned a lot about Linux, Docker and servers and I recently switched from a shared hosting to my own VPS. On this VPS I currently have one nginx server running that serves a static ReactJs application. This is temponarily, I SFTP-ed the build files to the server and added a config file for ssl, ciphers and dhparams. I plan to change it later to a nextjs application with a ci/di pipeline etc. I also added a 'runuser' that owns the /srv/web directory in which the webserver files are located. Ssh has passwords disabled and my private keys have passphrases.
Now that I it's been running for a few days I noticed a lot of requests from botnets that tried to access phpmyadmin and adminpanels on my server which gave me quite a scare. Luckily my website does not have a backend and I would never expose phpmyadmin like that if I did have it.
Now my question is:
Do you guys know any good articles or have tips and tricks for securing my server and future projects? Are there any good practices that I should absolutely read and follow? (Like not exposing server details etc., php version, rate limiting). I really want to move forward with my quest for knowledge and feel like I should have a good basis when it comes to managing a server, especially with the current privacy laws in place.
Thanks in advance for enduring my rant and infodump 😅7 -
To anyone asking for tips and tricks to start programming or become good at it, here is your ultimate golden advice: learn how to google and stop asking stupid questions like this before doing a quick research.
Reasons why:
1. You will most likely to learn better if you do your own research before asking for help. Even if you can't solve problem, you will be better and better at googling over time.
2. It is instant source of information. No need to wait for response (except response from server of course).
3. It takes only YOUR time.
4. Much more possible solutions/answers to your problems/questions.
5. Your quality of life will be improved over time. Not only your dev life but your daily life too.rant stop asking stupid questions how long this tags can be qol i am not your personal teacher programming tips tips11 -
How do you get in the zone?
Distraction behavior is my worst enemy. I'm productive once I'm coding, but I will do everything under the sun before I start.
Any tips or tricks you use to overrule your lizard brain?13 -
Next month I'm starting my master studies in embedded systems. Currently I have not any knowledge in this topic (made my bachelor in an other part of IT). Any tips or tricks?
Currently I'm starting learning C++ 😅13 -
Life Hack: don't use alcohol or chemicals, rub off glue residue easily with olive oil / baby oil
Works like a charm and also doesn't break cardboard videogame boxes/ book covers9 -
When I was having Introduction to Programming in the first year of college, the teacher said something that stuck to me:
"Always program as if the guy who ends up mantaining your code will be a violent psychopath who knows where you live."
I later found out that it was a quote by Martin Golding. But it really motivated me to keep decent documentation of every method o.o1 -
Tips n' Tricks #1: how to distinguish real friends from fake ones
Answer: with a real one you don't end up talking about their last computer issues each time you interact with them1 -
If you are selling something for a charitiy: Implement a "round up" button! Let's say someone buys something for 19$, add the possibility to round up the amount to 20$. Surprisingly a lot of people make use of it :-)2
-
Installing Linux (Ubuntu) for the first time from Windows. Any tips/tricks I could use to get used to my new environment?28
-
When you ask the frontend dev for like how to center horizontally and they link you 19 css tips and tricks articles.
I just want my big red "scum gang" button in the middle.5 -
I was looking for a solution in some piece of code for half an hour but then I had to go. I took a photo of the code with my phone and then figured out the solution while I was on the bus :D5
-
@dfox just throwing a suggestion out there. How about creating a weekly tips section in which everyone could share useful insight about different tehnologies/OS/languages? Or even create topics in which people could share such things?2
-
Question: is it a red flag if I'm "not supposed to" blog about tips and tricks I've found at work (not even code level, just organization and general design patterns)? Reason given to me: "we need to be careful about due diligence and intellectual property for our investors to be satisfied". Am I working with idiots?9
-
Since this is a community of developers, thought I'd share something I wrote recently on the UX of shell scripting: https://codeburst.io/13-tips-tricks...
Thoughts are welcome!4 -
This app seems to be mostly web developers so I have a question that will either spark interesting discussion or a blood curdling flame war. Either way:
I'm trying to build a blog site for myself. I'm not a web developer, for the most part I write C software, but I have written web software before. I want to write it, not use a CMS. What are some techniques and tools I should be aware of, so I don't break my keyboard in frustration?11 -
Warning long rambling story cause sleep deprivation
I never really bothered with ssh outside of using putty to remote into my servers and rpi's from my desktop to run updates, install something, or whatever else.
But today I was on a call with my cousin bored cause she was just rambling, so I opened vscode to clean my install of unnecessary extensions I installed and haven't used more than once or twice.
I saw Remote - SSH and as I was bored listening to a teenager complain about high school just like I used to (lol) and responding when she asked me something. I scrolled through the page, then the documentation just casually skimming the text
I setup an ssh key on an rpi I threw manjaro arm following the instructions on their tips and tricks page
I then moved the key to my desktop using winscp (cause lazy)
leading to having a minor hicup of rsa not being an accepted keytype (thanks 'your favorite search engine' for the help)
Finally, I was able to connect using the private key
at this point my cousin went to bed cause she has school tomorrow. But I was still doing stuff with ssh, I created a new ssh connection in VSCode, but had to go to the documentation to figure out how to make it use my fancy new key file, not hard took 30 seconds of looking to get it working.
Now that I was in, I moved to my development folder, created a folder for PiHole, created a compose yml, created a pihole-data folder.
I opened the yml and pasted in a compose from dockerhub.
at this point I thought 'i can't just run this from terminal can I'. and Obviously it worked cause there's literally no reason it wouldn't I'm just stupid to think it might not.
So I created folders and files on a remote system, launched a docker container, checked for package updates after on a linux machine. All from VS-Code on a windows machine.
I know this is simple for some people, i know some people are like 'where's the interesting part'. but ehhh I thought it was cool to get it setup, I now really regret not getting into ssh sooner, and I'm definitely going to uninstall vscode on all my smaller graphical VM's in favor of doing this. and this will definitely help with my headless vm's.
I also will have to thank my cousin, might not have done this if I wasn't stuck at my computer on messenger call with her lol
I'm gonna go to bed now, But I feel accomplished for the first time in a while even if it's for something so simple as setting up anssh key for the first time3 -
Just wondering if anyone out there has had any experience with writing a window manager for x11? I have decided that would be a good project to kinda work on my c++ and so I can learn how x-server works. Any tips, tricks or references you guys have? The project is on my github called zwm.6
-
For all the cheap-ass sys admins:
I wouldn’t pay 100$ a year to apple just to have push notifications when my server fucks up or an user fill my support form but I want to know that in real time but I have iPhone(forget about FCM).
So I downloaded pushbullet to my phone and integrated its API in my server and when something important happen I get completely free notification which (thanks to url schemes in ios) redirect me to my server administration app.
Note: I used xamarin for my management app to be ready for the moment when I switch back to android.2 -
I've finally started playing a MUD game in my spare time. I gotta say, it's kinda awesome. And, BONUS: it looks like I'm actually working since the interface is just a text terminal.2
-
Flask people
so I was given this old flask project, around 3k lines written in py2, the code is simply old and not refactored. So, it's pile of shit. Migrations completely botched as the original author created reference to live data in models.
Very strict line formatting resulting in backslashed ternary conditions.
Even saw manually formatted json responses... _line by line_.
My job is to clean this mess and eventually do as much as possible to freshen the whole project.
Currently just refucktoring the code as it's the only easy thing to do out of everything that could be done (it's still slow process).
Any tricks and tips? currently considering to try upgrading it to py3 but it feels like throwing gunpowder into already burning house.3 -
My best mentor was at my first job at IBM. The senior dev took 2 weeks to pair program with me and get me up to speed on all the applications, tips and tricks, and the different legacy codebases. I learned more in those 2 weeks than my entire 4 years at college lol.2
-
Today I tried teaching a 36 years old student about HTML and layout. My inner self is always restless for practice as an excuse for less talking, but in the end I end up doing even more talking and getting kinda embarrassed.
Good thing is that student understood everything well enough in this 1 hour. I also inserted some good stuff: tips and tricks, conventions mentioned, trends... He even craved for more information.
I'm going to prepare to make further studies more fruitful, because the next synopses won't be as theoretical as today's one.1 -
Current status: Writing a markdown document containing all my tips and tricks for fixing bugs in our apps so we can handover to maintenance. Including files I commonly have to look in, handy keyboard shortcuts, IDE settings and other tools that have made debugging easier. I figure if these guys are having a bunch of legacy apps dumped on them when they have no iOS experience, I should help them out as much as I can before I move projects.1
-
Never knew this one...swipe up on chrome mobile, logged in on Android and you get suggested content, nice! How have I not been using this? This will be a nice time killer for quick reads, interesting.6
-
Hello, anyone got any job search tips and tricks? Generally useful things?
Relevant: Part-time for under 18.3 -
I finally got one of these boards, I still need to figure what to track on it, I already have a planner with me for my day to day
any suggestions?10 -
Thankfully I've been lucky enough to work with many brilliant people. The best being the ones who are enthusiastic about sharing tips, tricks and helpful advice to new people. Little pieces of advice from old colleagues have followed me throughout my career, for sure.
By contrast, people who sit in a dark corner, bemoaning everything and being completely unwilling to help can have enough negative impact to cause talented people to leave. -
Any one with autotrading experience? Is it worth it? How much money do you make? How much money did you put into it at the beginning? What are the hardware requirements? What software do you use? Is it advisable to use your Computer for normal things during the day and for trading durint off times? Any tips and tricks for newbies?6
-
Currently we have zero time for R&D at work, now I have convinced management to let me try and convince them to arrange some time per week/sprint(2 weeks) or month
How should I approache this? And how much time would be optional (enough time for prototyping but still leave more than enough time for the projects we have) ?
Any tips that you have for negotiation/convincing management would be greatly appreciated!! 😁😁3 -
Hmm I'm thinking of reverse engineering an old game client and trying to rebuild the backend server from scratch... In a different language..
Quite a big idea 😅 but it should be very educational! Anyone got some tips and or tricks for reverse engineering? Or some pitfalls I should avoid?4 -
So I was looking into phone app development again (as you do) and I'm working on a simple QoL app for me and my SO that will help us automate some home management and finances stuff. Naturally I delved down the rabbit hole deep and wanted to have push notifications so we don't have to check the app periodically to know when certain things happen... Oh boy... Why is mobile development so convoluted, especially if you don't want to rely on Google Services...
It seems that the most accepted way of doing this is Firebase (FCM). Well me being me, I refuse to use google services for this and I prefer self hosted solutions (for data privacy reasons) which eliminates most products out there.
It also didn't help that my framework of choice is Flutter/Dart, because fuck Android Studio and the insane buggy XML stuff and fuck Android and it's constantly changing APIs...
Well In the end I decided on a rather simple solution and self hosted an AMQP service (RabbitMQ in my case, as I have some experience with it already) and implemented a foreground service in android platform specific code on top of my flutter project to kickstart it and made my phone a queue listener... This now means I can push notifications from my server to the Messaging Queue and it will be pushed into my App automatically!
One thing I found out on this journey was that Android now kills most background services and enforces foreground services to have a visible notification in the status drawer... which I actually approve of. It's a bit annoying that you can start a reliable background service, but I'm absolutely on-board with long running processes started by my apps are constantly visible...
Long story short, I love reinventing all the wheels, especially if it's for free and private... And I also went to sleep at 2AM again because this took longer that I'd like to tune... but it works, and it's google free...
I'm thinking of trying to package this up as a flutter module later, but first I want to do testing on battery life and the general life cycle of the service. RabbitMQ says they have the client library optimized for long-lasting connections and it should be just using a tcp socket, which should pretty much be what all the push notification services are doing anyway. I'm also not completely satisfied with how the permanent notification looks.. it isn't collapsible like some of the other ones from other apps and it's about 2 lines high instead of single line... which is something quite annoying and I'm struggling to find any relevant docs on how this is done other than possible making a custom Notification Style... but I just can't believe that everyone is doing that.. there must be a built-in somewhere -_-... Ugh Android is hell...
Anyway, if any android devs here have some hints, tips and tricks on how to handle this type of background/foreground process stuff and I'm doing something wrong let me know, cause googling this shit is a nightmare too!6 -
Just got my first job as a developer after getting my bachelor in computer science! 😁 Any tips and tricks for a newbie consultant?2
-
What would be the best tips for keeping code clean?
I recently noticed how "unclean" my code is, I try to organize it as much as possible but through that I manage to make the code very messy :/
What are your best tips, advise, tricks... lalala?
Note:
This problem mainly applies to long projects and games :P9 -
What are your tips/tricks for staying up and alert?
Started a new QA job. 3-11am because the client is in another time zone. I'm up but staying up and alert is a challenge. I might need better coffee. Still falling asleep7 -
A cool bash shell script to download (cut) a portion of video from youtube. It depends on youtube-dl and avconv/ffmpeg tools which can be installed from the distribution.
Bash Shell Script (can be named as ytcut):
Note: No error handing implemented
#!/bin/bash
#set -x
_yt_id="$1"
_yt_start_time="$2"
_yt_end_time="$3"
#_yt_format_id="bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio"
# use youtube-dl -F <video id> to get the list of formats available
# Using format id as 22 as the above one didn't work.
_yt_format_id=22
_yt_time_selection_opts="-ss ${_yt_start_time}"
_yt_time_selection_opts="${_yt_time_selection_opts} -to ${_yt_end_time}"
_yt_url=$(youtube-dl -f ${_yt_format_id} -g "${_yt_id}")
_yt_filename=$(youtube-dl --get-filename --restrict-filenames -f ${_yt_format_id} "${_yt_id}")
avconv -y -nostats -loglevel 0 -i "${_yt_url}" ${_yt_time_selection_opts} -codec copy "file:${_yt_filename}"
Example Usage:
ytcut 3dWrKNrWbWQ 0:40 1:402 -
!rant
Just started with Unreal Engine 4, very basic stuff.
Any tips / tricks / suggestions / DOs and DONTs?2 -
How do I get started on freelancer.com or upwork ,with so much competition.any one got tips or tricks?3
-
To the experienced coders here on devrant: Any valuable tip(s) for newbie programmers (independent of language)?
My suggestion: Enable 'format on save' in your IDE. Seriously, how did I survive without this?!5 -
I’d like so advice, sometimes I need to code for pretty much 2-3 days straight
I try to power nap on occasion as I know being tired can have a bit of an effect.
I need to stay alert so I was wondering what tips and tricks people may have to help
As I need to stay away from caffeine now 😒 -
Hello my fellow DevRanters! 😁 A question for those of you who like to learn new stuff constantly, what are your tricks or tips you use to learn more? and enjoy the overall experience (do you write notes, read posts, etc) my reason to ask this is that oftentimes I forget everything I learned after 5 minutes, so maybe I'm doing something wrong5
-
just started trying to master Emmet. I discovered it through https://vscodecandothat.com (thanks to whoever was the first person to post that link on here). any tips/tricks/tools for getting used to Emmet?
-
Hi, everyone.
This is a post created for those of you who want to step up their terminal knowledge, learn new tricks, or just learn the basics.
I found these links that will help you on your path to master the command line on mac.
Links:
1. https://github.com/juanfrans/...
2. https://medium.com/@manujarvinen/...
3. https://computers.tutsplus.com/tuto...
4. https://lifehacker.com/a-command-li...
I hope you found these links useful and you learned one or two tricks!
I appreciate it if you leave a comment and Rant++ this post.3 -
Started new job as software developer in a financial institution... Have to learn c#, c# devs here any good tips??7
-
Heya guys
Looking to get some extra cash so I'd like to strike out on my own a bit as well.. But struggling to get going... Don't really have a network orso to get opportunities...
I've seen sites like upwork promising great results, and I'm about to sign up for them now, to see how it goes...
But my question is, any of you guys have some tips and tricks for me?3 -
Top 12 C# Programming Tips & Tricks
Programming can be described as the process which leads a computing problem from its original formulation, to an executable computer program. This process involves activities such as developing understanding, analysis, generating algorithms, verification of essentials of algorithms - including their accuracy and resources utilization - and coding of algorithms in the proposed programming language. The source code can be written in one or more programming languages. The purpose of programming is to find a series of instructions that can automate solving of specific problems, or performing a particular task. Programming needs competence in various subjects including formal logic, understanding the application, and specialized algorithms.
1. Write Unit Test for Non-Public Methods
Many developers do not write unit test methods for non-public assemblies. This is because they are invisible to the test project. C# enables one to enhance visibility between the assembly internals and other assemblies. The trick is to include //Make the internals visible to the test assembly [assembly: InternalsVisibleTo("MyTestAssembly")] in the AssemblyInfo.cs file.
2. Tuples
Many developers build a POCO class in order to return multiple values from a method. Tuples are initiated in .NET Framework 4.0.
3. Do not bother with Temporary Collections, Use Yield instead
A temporary list that holds salvaged and returned items may be created when developers want to pick items from a collection.
In order to prevent the temporary collection from being used, developers can use yield. Yield gives out results according to the result set enumeration.
Developers also have the option of using LINQ.
4. Making a retirement announcement
Developers who own re-distributable components and probably want to detract a method in the near future, can embellish it with the outdated feature to connect it with the clients
[Obsolete("This method will be deprecated soon. You could use XYZ alternatively.")]
Upon compilation, a client gets a warning upon with the message. To fail a client build that is using the detracted method, pass the additional Boolean parameter as True.
[Obsolete("This method is deprecated. You could use XYZ alternatively.", true)]
5. Deferred Execution While Writing LINQ Queries
When a LINQ query is written in .NET, it can only perform the query when the LINQ result is approached. The occurrence of LINQ is known as deferred execution. Developers should understand that in every result set approach, the query gets executed over and over. In order to prevent a repetition of the execution, change the LINQ result to List after execution. Below is an example
public void MyComponentLegacyMethod(List<int> masterCollection)
6. Explicit keyword conversions for business entities
Utilize the explicit keyword to describe the alteration of one business entity to another. The alteration method is conjured once the alteration is applied in code
7. Absorbing the Exact Stack Trace
In the catch block of a C# program, if an exception is thrown as shown below and probably a fault has occurred in the method ConnectDatabase, the thrown exception stack trace only indicates the fault has happened in the method RunDataOperation
8. Enum Flags Attribute
Using flags attribute to decorate the enum in C# enables it as bit fields. This enables developers to collect the enum values. One can use the following C# code.
he output for this code will be “BlackMamba, CottonMouth, Wiper”. When the flags attribute is removed, the output will remain 14.
9. Implementing the Base Type for a Generic Type
When developers want to enforce the generic type provided in a generic class such that it will be able to inherit from a particular interface
10. Using Property as IEnumerable doesn’t make it Read-only
When an IEnumerable property gets exposed in a created class
This code modifies the list and gives it a new name. In order to avoid this, add AsReadOnly as opposed to AsEnumerable.
11. Data Type Conversion
More often than not, developers have to alter data types for different reasons. For example, converting a set value decimal variable to an int or Integer
Source: https://freelancer.com/community/...2 -
Any game developers out there with some tips for game development? Starting a school project and have decided to do a video game :)
Would be glad to hear your advice and I'm sure there are others out there who would too!10 -
Im a webdev rookie, as our final project we have to create a Drupal website but I can't even change the most basic things and feel like Im producing a song without having audio ... Can't understand how people use this. Right now I much rather use Wix instead. Anyone got some noob tips and tricks?6
-
Anyone have tips/tricks for encouraging teammates to comment on an RFC? It's work enough to write them, would be handy not to have to track people down for something more in depth than an "LGTM".
-
I may be a Matt Might fan boy (according to my SO I am), but here has two great articles about boosting productivity. The one that helped me the most was"crippling" technology.
http://matt.might.net/articles/...
http://matt.might.net/articles/...2 -
What's something you wish someone had told you about one of the languages you know? Tips, tricks, etc?
-
I am doing a lot more freelancing recently, what are your tips on making websites faster. I tend to focus on really small details which slow me down. What are your tips and tricks3
-
What is the easiest and fastest way to start freelancing? These days the road is long enough to start freelancing as a new freelancer. Tips and tricks fellas?
-
!rant.. Ok starting my new job, my first job, as a developer in 20-ish days? You got any tips when arriving at new workplace/things you wish you knew before starting. Not the classic tips of asking questions etc but practical ones you wish you had known before (-:3
-
This post made me feel like I was parallyzed and now I'm superman
http://stackoverflow.com/documentat... -
Any suggestions/tips or tricks how to find linux compatible laptop? I can't buy preinstalled linux laptop (system76, tuxedo, purism, etc) because is not available in my country.7
-
Anyone ever work with Hola Spark? First task at a new job is to integrate with it and any tips, tricks, advice, or lessons learned would be appreciated.
-
want to ask the guru one, is there a way to automate things in netbeans!?
For example, is there something to set to, upon a creation of a new Angular Service, automatically include the js file in index.html and inject the service name in angular application!?2 -
Saw this on Reddit just now, but I figured it would be a pretty good repost here.
Happy building!
Edit: image resolution was crappy, so here's a link
https://reddit.com/r/coolguides/...2 -
Hello there. Best tips n tricks or hack of Xcode for iOS developers then please share that would be great help.1
-
Insider tips and tricks for a PhD, if we have grad students of any sort here. Literally anything at all. I'm enthusiastic but not naively so (I like to think), so let's learn stuff from the vets.1