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 - "too much vim"
-
Anyone looking for something interesting to do???
Step 1) understand how basic circuitry works on a bread board nothing too fancy. ( Implement NAND, AND, ADDER, SUBTRACTOR)
Step 2) learn about microprocessors and how OS works
Step 3) learn assembly
Step 4)write a basic assembler and understand how loaders and linkers works !
Step 5) write a kernel with very basic features like memory management and process management and some drivers for IO
Step 5) write an emulator for some simple systems .! ex chip-8.
Step 6) read about compiler theory and automata
Step 7) write a basic Python interpreter that compiles (not interpreter) to native assembly.
Step 8) implement TCP stack .
Step 9) learn as much as u can about complexity measurement ), data structures and algorithms using C or C++ it's very important ( familiarity with pointers and thus computer memory )
Step 10) learn any high level language of choice like Python or Ruby.
Step 11) stop debating over tabs vs spaces , emacs vs vim , angular vs vue, php vs Python , OOps vs procedular vs functional ( just know about all of them and when to use but don't fucking debate over which one is superior )..
Step 12) live happily and be healthy.30 -
I'm drunk and I'll probably regret this, but here's a drunken rank of things I've learned as an engineer for the past 10 years.
The best way I've advanced my career is by changing companies.
Technology stacks don't really matter because there are like 15 basic patterns of software engineering in my field that apply. I work in data so it's not going to be the same as webdev or embedded. But all fields have about 10-20 core principles and the tech stack is just trying to make those things easier, so don't fret overit.
There's a reason why people recommend job hunting. If I'm unsatisfied at a job, it's probably time to move on.
I've made some good, lifelong friends at companies I've worked with. I don't need to make that a requirement of every place I work. I've been perfectly happy working at places where I didn't form friendships with my coworkers and I've been unhappy at places where I made some great friends.
I've learned to be honest with my manager. Not too honest, but honest enough where I can be authentic at work. What's the worse that can happen? He fire me? I'll just pick up a new job in 2 weeks.
If I'm awaken at 2am from being on-call for more than once per quarter, then something is seriously wrong and I will either fix it or quit.
pour another glass
Qualities of a good manager share a lot of qualities of a good engineer.
When I first started, I was enamored with technology and programming and computer science. I'm over it.
Good code is code that can be understood by a junior engineer. Great code can be understood by a first year CS freshman. The best code is no code at all.
The most underrated skill to learn as an engineer is how to document. Fuck, someone please teach me how to write good documentation. Seriously, if there's any recommendations, I'd seriously pay for a course (like probably a lot of money, maybe 1k for a course if it guaranteed that I could write good docs.)
Related to above, writing good proposals for changes is a great skill.
Almost every holy war out there (vim vs emacs, mac vs linux, whatever) doesn't matter... except one. See below.
The older I get, the more I appreciate dynamic languages. Fuck, I said it. Fight me.
If I ever find myself thinking I'm the smartest person in the room, it's time to leave.
I don't know why full stack webdevs are paid so poorly. No really, they should be paid like half a mil a year just base salary. Fuck they have to understand both front end AND back end AND how different browsers work AND networking AND databases AND caching AND differences between web and mobile AND omg what the fuck there's another framework out there that companies want to use? Seriously, why are webdevs paid so little.
We should hire more interns, they're awesome. Those energetic little fucks with their ideas. Even better when they can question or criticize something. I love interns.
sip
Don't meet your heroes. I paid 5k to take a course by one of my heroes. He's a brilliant man, but at the end of it I realized that he's making it up as he goes along like the rest of us.
Tech stack matters. OK I just said tech stack doesn't matter, but hear me out. If you hear Python dev vs C++ dev, you think very different things, right? That's because certain tools are really good at certain jobs. If you're not sure what you want to do, just do Java. It's a shitty programming language that's good at almost everything.
The greatest programming language ever is lisp. I should learn lisp.
For beginners, the most lucrative programming language to learn is SQL. Fuck all other languages. If you know SQL and nothing else, you can make bank. Payroll specialtist? Maybe 50k. Payroll specialist who knows SQL? 90k. Average joe with organizational skills at big corp? $40k. Average joe with organization skills AND sql? Call yourself a PM and earn $150k.
Tests are important but TDD is a damn cult.
Cushy government jobs are not what they are cracked up to be, at least for early to mid-career engineers. Sure, $120k + bennies + pension sound great, but you'll be selling your soul to work on esoteric proprietary technology. Much respect to government workers but seriously there's a reason why the median age for engineers at those places is 50+. Advice does not apply to government contractors.
Third party recruiters are leeches. However, if you find a good one, seriously develop a good relationship with them. They can help bootstrap your career. How do you know if you have a good one? If they've been a third party recruiter for more than 3 years, they're probably bad. The good ones typically become recruiters are large companies.
Options are worthless or can make you a millionaire. They're probably worthless unless the headcount of engineering is more than 100. Then maybe they are worth something within this decade.
Work from home is the tits. But lack of whiteboarding sucks.37 -
Stop it with the Linux shilling already.
I'm 27 years old and I love Linux and git and vim just as much as the next guy (yeah fuck you emacs!). I have discovered this place as a room for discussion, advise, humor and rants of course, and I had my good share of giggles.
But lately it seems that every other Post is "look at me I installed Linux" or "hurr durr he doesn't use git" or "windows omfg kill it with fire". And to some degree, those rants have a good point and are absolutely right. However, most of them are not.
This is why you're part of the problem. Constantly shaming and ridiculing any technology that's not hip in nerd culture, regardless of the circumstances. This makes you look just as bad as the peoples you look down upon for writing their code in notepad++ on windows xp with McAfee installed. Even worse, from a professional point of view, it absolutely voids your credibility.
How am I to take you seriously and presume a fair amount of experience and out of the box thinking if all you do is repeat catchphrases and ride the fucking hype train. And yes, I know there are a lot of minors or peoples who are just getting started in the industry. But I have seen enough self-righteous hateful spews from peoples who claim not to be.
Anyway, this is getting long and I think I have made my point. Maybe I am just too old to be joking around that shit all the time anymore. But from what I have seen, I wouldn't hire the biggest part of you. Not because you are bad at what you're doing, but because what you say makes you look absolutely unprofessional.
But then again, this is devrant and I love you all. Have a great week everyone!21 -
Use SSDs.
It's not hard. They've been around for a while, small ones are cheap now and are more than enough for at least 90% of developers. The rest can probably afford 2TB NVMe.
Why waste 60$ on a worthless 500GB HDD that will load the OS in the time that's enough for you to make scrambled eggs?
Instead, use 60$ on a 128GB SSD. Sure, it's smaller, but if speed is important for you, you can forget a bit about saving all of the porn you see online, or about installing every free game from Steam.
SSDs are cheap already. And the performance advantage they give is ENORMOUS. You can have a core i9, 64GB of fastest RAM bla bla bla, but if you don't have an SSD, a Celeron with an SSD will seem faster.
Get one, and NEVER again cry about long loading times of IDEs, unless you feel like 30 seconds for the longest load time is too much. If your time is THAT valuable, then you can afford NVMe SSDs in RAID 10 (which can be done easily in software with btrfs if you're on Linux).
Seriously!
Every day I see posts like "Visual Studio is crap because it installs for 6 hours", or "Android studio starts in 30 minutes", or "Visual Studio Code sucks because it loads for too long compared to vim".
It's as if you only have access to budget 10 year old computers.27 -
Am I the last one here late to the party? Just try out and impressed by VSCode and this is my thoughts about the editors:
- I have been loyal to Sublime Text for like 5+ years, cannot complain much.
- Notepad++ was my first love, but absent on Linux so got to say goodbye.
- VSCode is the latest I try out and very rare one I could spend a couple of hours to dive into its settings to make it easier to use. The extensions are impressive!
- Atom, Bracket, and those blabla of their kind are bullshit.
- Jetbrains products are heavy ass, I can't even take a note!
- Vim is great too, but it's not the thing that I can just "open up and start typing".
- Have no idea about Emacs, but supposedly it's nowhere near its UI-friendly brothers, so I give no patience.27 -
Oh man!!!
I have to uninstall my linux and go back to windows... But I dont want to... C++ in vim is soooooo much more productive...
But goddamm my gaming laptop and its nvidia optimus "technology"!!!!
DAAAMMMM YOOOUUUUU NVIDIA!!!!!!!
PS. Dual booting is a nightmare too with windows 10 so... Yea... Not gonna happen19 -
I watched this video today about the new Xbox adaptive controllers. I had heard about it before, but never knew how capable or functional it actually was.
And watching that video made me realise exactly how much the tech we build , and support helps many people live the lives they wanted.
All the rants about languages , editors , frameworks aside , things like this were built with an idea and an inclusive intension to help. And that's exactly what we all are here for :)
do check the video out it made my day and I'm sure it will make yours too ..
https://youtu.be/MHOYQQTvQu4
Ok now let's get our pitchforks back and go hunt some vim users down.
Bye1 -
Hello everybody. First time ranter, so please be nice.
Starting off with a classic: text editors.
I'm mainly a .net developer, so I mostly use Visual Studio (with vim key bindings), and (g)vim for everything else. However, visual studio code is slowly winning me over. It's sleek, it's pretty, and does a lot of cool stuff. It doesn't do all that vim does though (or does it in ways I don't yet know), and is slightly less customizable. On the other hand, vim sometimes feels like too much overhead for what I use it for.
What do you guys think? What do you use, and what personal gripes do you have?10 -
Primarily IntelliJ IDEs.
I'm using IDEA for Rust & Kotlin, PHPStorm, Datagrip (DB), and sometimes PyCharm CE.
IDEs can feel a bit dirty with how heavy they are, and the lack of customization/control. But at the end of the day there's just nothing that can measure up against IntelliJ's inspections, integrations and project indexing.
My ideal product would be one universal IntelliJ IDE, but combined with the openness of VSCode/Atom, having everything transparently configurable through stylesheets and scripts.
As an editor though.... I use Vim for LaTeX, Markdown, plain text and Haskell code... but not so much for other programming languages.
Vim was my first editor when I moved from C64 to PC development 25 years ago, and while you get used to balancing keybind vimgolfing with being actually productive, i've always found maintaining plugins and profiles too cumbersome -- the reality is that Vim is an awesome TEXT editor, but it's really awful as a CODE editor out of the box.
When you want to try out a new programming language, you don't want to have to mess around with your Vimrc and Vundle and YCM for half a day just so you can comfortably write "Hello World" in Rust or Elixir... you just want to click one install button, press F10 to compile and see if it flies.
Oh, and I use Xed a lot for quickly editing files... because it's the default GUI editor on Mint desktops, and it's quite good at being a basic notepad.1 -
Subaru's Symmetrical AWD is the best thing in the world at the moment. Also, warning: !dev
Tl;dr: I'm getting another RPi3 thanks to awesome engineering.
Got a couple of inches of light snow here, and on my way home I came across a GMC Sierra dually stuck at the bottom of a moderately sized ditch. Naturally, I stopped by in my Forester and offered to tow it out.
With my 20ft tow rope stretched to its full length I was barely touching the road. He signalled that he was ready, and I gunned it. Slowly but surely the truck crawled out of the 6ft deep trench. She crested the hill with much applause (from me and the driver of the truck). As a thanks, he gave me $30.
Looks like I'm gonna get a new Raspberry Pi to play with. I think I'll turn this one into a countertop MAME arcade machine.
And for those of you wondering why I'm praising Symmetrical AWD as opposed to AWD in general, here's a quick lesson in drivetrains:
Most all wheel drive cars power the front wheels most of the time. This saves on fuel economy. The thing is, power is only transmitted to the rear wheels when the front wheels start to lose traction. At that point you're already screwed; only two wheels at any one time are putting useful power to the road.
Symmetrical AWD systems, like you'll find in all Subarus and most performance cars, distribute the vehicle's torque eaqually front-rear at all times. So instead of waiting until the front wheels start slipping, all of the wheels are powered right off the bat.
To make this more devvy: grrrr php, vim is best, I configured the tab key to enter four spaces, js has too many damn frameworks and they're still being pumped out faster than rabbits in a bunny farm.3 -
Wtf computer what do you mean mean it doesn't compile?
"Found : at char (95) expecting key word"
*Inspects code*
... Fucking vim..1 -
I continue to internally read and study about Smalltalk in an effort to see where we might have FUCKED UP and went backwards in terms of software engineering since I do not believe that complex source code based languages are the solution.
So I have Pharo. Nothin to complex really, everything is an object, yet, you do have room for building DSL's inside of it over a simple object model with no issue, the system browser can be opened across multiple screens (morph windows inside of a smalltalk system) for which you can edit you code in composable blocks with no issues. Blocks being a particular part of the language (think Ruby in more modern features) give ample room for functional programming. Thus far we have FP and OO (the original mind you) styles out in the open for development.
Your main code can be executed and instantly ALTER the live environment of a program as it is running, if what you are trying to do is stupid it won't affect the live instance, live programming is ahead of its time, and impressive, considering how old Smalltalk is. GUI applications can be given headless (this is also old in terms of how this shit was first distributed) So I can go ahead and package the virtual machine with the entire application into a folder, and distribute it agains't an organization "but why!!!! that package is 80+ mbs!") yeah cuz it carries the entire virtual machine, but go ahead and give it to the Mac user, or the Linux user, it will run, natively once it is clicked.
Server side applications run in similar fashion to php, in terms of lifecycles of request and how session storage is handled, this to me is interesting, no additional runtimes, drop it on a server, configure it properly and off you go, but this is common on other languages so really not that much of a point.
BUT if over a network a user is using your application and you change it and send that change over the network then the the change is damn near instant and fault tolerant due to the nature of the language.
Honestly, I don't know what went wrong or why we are not bringing this shit to the masses, the language was built for fucking kids, it was the first "y'all too stupid to get it, so here is simple" engine and we still said "nah fuck it, unlimited file system based programs, horrible build engines and {}; all over the place"
I am now writing a large budget managing application in Pharo Smalltalk which I want to go ahead and put to test soon at my institution. I do not have any issues thus far, other than my documentation help is literally "read the source code of the package system" which is easy as shit since it is already included inside. My scripts are small, my class hierarchies cover on themselves AND testing is part of the system. I honestly see no faults other than "well....fuck you I like opening vim and editing 300000000 files"
And honestly that is fine, my questions are: why is a paradigm that fits procedural, functional and OBVIOUSLY OO while including an all encompassing IDE NOT more famous, SELECTION is fine and other languages are a better fit, but why is such environment not more famous?9 -
No Rant:
I guess I will start a religous discussion with it but I want your opinion on what tool I should learn.
Vim or Emacs (or stay with my IDE)?
For all of my programmer life I used IDEs... From Eclipse over CodeBlocks over VS to IntelliJ.
But now I realized that I want to be one of the cool kids. And using plain IntelliJ is uncool. No matter how much I love this tool.
So now I want to invest some time into learning. I never managed to do much in Vim since all code-completions sucked ass, feedback on syntax errors was bad and I never saw how I could be any faster with that shit compared to what IntelliJ does for me.
Will Emacs solve all those problems? Will Emacs make me code 1000 times faster and make having a mouse useless?
Or am I just too dumb for Vim? Can Vim itself do what my IDE does for me? Will it make me look as cool as I want to be?
Or should I stick to IntelliJ and just install Vim bindings?
What is your opinion on Vim vs Emacs vs any IDE?8 -
The new MacBooks look so nice. And Mojave is pretty nice, and dark theme! And the touch bar! The price is quite high but for the first time I'm actually debating getting one... Almost. But:
Why no escape key apple! You were so close! A physical escape key at the cost of your touch bar being 1 inch smaller! Is that too much to ask!
Many programmers use Mac. I can see why, it's a bsd variant, it's almost a Linux box except it's supported and accepted by the non-geeks of the world.
Many programmers use Vim! It's great!
So it stands to reason that a "not insignificant" amount of Mac users use Vim. Why would you do this to us? Or at least offer a "Vim model! With physical escape key, some nice out of the box vim buttons for the touch bar, a greatly inflated pricetag... Yknow, the works!" But nothing?! You almost had me apple.6 -
Random thoughts on more out of the box tools/environments.
Subject: Pharo
Some time ago I had shown one of my coworkers about Pharo and he quickly got the main idea behind it but mentioned how he didn't like the idea of leaving behind his text editor to deal with source code.
Some time last week I showed the dude some cool 3d animations you can do with Pharo while simultaneously manipulating the code to change them in real time. Now that caught his attention particularly and he decided he wanted to know more about the language but in particular the benefits of fucking around with an image based environment rather than a file based.
Both of us reached the conclusion that image based makes file based dev enviroments seem quaint in comparison, but estimated that it was nothing more than a sentiment rather than a fact.
We then considered what could be the advantage/disadvantages of such environments but I couldn't come up with anything other than the system not having something like Vim or VS Code or whatever which people love, but that it makes up for it with some of the craziest IDE tools I had ever seen. Plugins in this case act like source code repos that you can download and activate into your workflow in what feels something similar to VS Code being extended via plugins written in JS, and since the GUI is maleable as it is(because everything is basically just subsets of morp h windows) then extending functionality becomes so intuitive that its funny
Whereas with Emacs(for example) you have to really grind your gears with Elisp or Vimscript in Vim etc etc, with Pharo your plugin system is basicall you just adding classes that will convert your OS looking IDE into something else.
Because of how light the vm machine is, portability is a non issue, and passing pharo programs arround is not like installing Java in which you need the JVM.
Source code versioning, very important, already integrated into every live environment and can be extended to do pushes through simple key bindings with no hassle.
I dunno, I just feel that the tool is too good to be true. I keep trying to push limits into it but thus far I have found: data visualization and image modeling to work fine, web development with Teapot to be a cakewalk and work fine, therr are even packages for Arduino development.
I think its biggest con would be the image based system, but would really need to look into how this is bad by any reason other than "aww man I want vim!" since apparently some psychos already made Emacs and VS code packages for interfacing with Pharo source trees.
Embedded is certainly out of the question for any real project since its garbage collected and not the most performant cookie in the jar.
For Data science I can see some future, seems just as intuitive and interesting as a Jupyter Notebook actually, but the process can't and will not be the same since I still don't know of a way to save playground snippets unless you literally create classes for it, in which case every model you build gets saved inside of an object, sounds possible but, strange since it is not a the most common workflow in jupyter.
Some of the environment is sometimes glitchy, but it does have continuos development and have not found many hassles.
There is a biased factor from my side: I seem to be wired to understand the syntax and simple object model better than in other languages. To me this feels natural as if I was just writing ideas rather than code, mostly because I feel that there really ain't much in terms of syntax, the language gets out of my way and the IDE feels like the most intuitive environment in the world to me. I can see why some people would find it REALLY weird of counterintuitive tho.
Guess I really am a simple dude. -
Any recommendations for a C/C++ IDE for Linux.
I really like PyCharm and IntelliJ for python and java but can't afford to splash out on CLion for C++.
Eclipse is completely out, I have too much of that at work and it is a total pain.
My current solution would be vim and clang but I'd like something more IDE like.10 -
Daily coding would be VS Code.
> Lots of extensions and works well if the project isn't too big.
Quick and cheeky edits is Notepad++.
> "Open in Notepad++"
Serverside edits is vim.
> I don't really know any other terminal editors.
IDE would be the IntelliJ platform.
> Its just built very nicely.
For SQL (which i don't do very much) I took a liking to Azure Data Studio. -
HELP!!!, My ubuntu system exhaust all of it's ram, my system lags too much, I was currently running firefox, vim, postman, react server and node server.26