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 - "vs code"
-
Everyone and their dog is making a game, so why can't I?
1. open world (check)
2. taking inspiration from metro and fallout (check)
3. on a map roughly the size of the u.s. (check)
So I thought what I'd do is pretend to be one of those deaf mutes. While also pretending to be a programmer. Sometimes you make believe
so hard that it comes true apparently.
For the main map I thought I'd automate laying down the base map before hand tweaking it. It's been a bit of a slog. Roughly 1 pixel per mile. (okay, 1973 by 1067). The u.s. is 3.1 million miles, this would work out to 2.1 million miles instead. Eh.
Wrote the script to filter out all the ocean pixels, based on the elevation map, and output the difference. Still had to edit around the shoreline but it sped things up a lot. Just attached the elevation map, because the actual one is an ugly cluster of death magenta to represent the ocean.
Consequence of filtering is, the shoreline is messy and not entirely representative of the u.s.
The preprocessing step also added a lot of in-land 'lakes' that don't exist in some areas, like death valley. Already expected that.
But the plus side is I now have map layers for both elevation and ecology biomes. Aligning them close enough so that the heightmap wasn't displaced, and didn't cut off the shoreline in the ecology layer (at export), was a royal pain, and as super finicky. But thankfully thats done.
Next step is to go through the ecology map, copy each key color, and write down the biome id, courtesy of the 2017 ecoregions project.
From there, I write down the primary landscape features (water, plants, trees, terrain roughness, etc), anything easy to convey.
Main thing I'm interested in is tree types, because those, as tiles, convey a lot more information about the hex terrain than anything else.
Once the biomes are marked, and the tree types are written, the next step is to assign a tile to each tree type, and each density level of mountains (flat, hills, mountains, snowcapped peaks, etc).
The reference ids, colors, and numbers on the map will simplify the process.
After that, I'll write an exporter with python, and dump to csv or another format.
Next steps are laying out the instances in the level editor, that'll act as the tiles in question.
Theres a few naive approaches:
Spawn all the relevant instances at startup, and load the corresponding tiles.
Or setup chunks of instances, enough to cover the camera, and a buffer surrounding the camera. As the camera moves, reconfigure the instances to match the streamed in tile data.
Instances here make sense, because if theres any simulation going on (and I'd like there to be), they can detect in event code, when they are in the invisible buffer around the camera but not yet visible, and be activated by the camera, or deactive themselves after leaving the camera and buffer's area.
The alternative is to let a global controller stream the data in, as a series of tile IDs, corresponding to the various tile sprites, and code global interaction like tile picking into a single event, which seems unwieldy and not at all manageable. I can see it turning into a giant switch case already.
So instances it is.
Actually, if I do 16^2 pixel chunks, it only works out to 124x68 chunks in all. A few thousand, mostly inactive chunks is pretty trivial, and simplifies spawning and serializing/deserializing.
All of this doesn't account for
* putting lakes back in that aren't present
* lots of islands and parts of shores that would typically have bays and parts that jut out, need reworked.
* great lakes need refinement and corrections
* elevation key map too blocky. Need a higher resolution one while reducing color count
This can be solved by introducing some noise into the elevations, varying say, within one standard div.
* mountains will still require refinement to individual state geography. Thats for later on
* shoreline is too smooth, and needs to be less straight-line and less blocky. less corners.
* rivers need added, not just large ones but smaller ones too
* available tree assets need to be matched, as best and fully as possible, to types of trees represented in biome data, so that even if I don't have an exact match, I can still place *something* thats native or looks close enough to what you would expect in a given biome.
Ponderosa pines vs white pines for example.
This also doesn't account for 1. major and minor roads, 2. artificial and natural attractions, 3. other major features people in any given state are familiar with. 4. named places, 5. infrastructure, 6. cities and buildings and towns.
Also I'm pretty sure I cut off part of florida.
Woops, sorry everglades.
Guess I'll just make it a death-zone from nuclear fallout.
Take that gators!5 -
I FUCKING HATE IT WHEN I HAVE TO BUILD SOMETHING FROM SOURCE!!!!
So I wanted to install a package with pip. Shouldn't be that difficult, right? RIGHT? Lmao
Things I encountered on this adventure in no particular order:
- multiple undocumented dependencies, only explained on stackoverflow or some github issues
- inconsistent and outdated documentation spread over multiple pages on multiple websites
- Python version can't be too old or too new
- other external software version incompatibilities
- Build process that takes several minutes just to fail, then try again and fail with exactly the same outcome after a few minutes
- fucking SVN is needed?!?!?!
- VS Code is needed for completely manual build ????
- cmd/powershell incompatibilites
- required reboots
At some point I just gave up... Now I don't even remember what I crap I installed that I don't need anymore.
Please for the love of god provide prebuild packages or at least a very SIMPLE build process -_-9 -
Today another story in this stupid company:
A freelancer created a feature to pay orders online . It took him 3 months (!)
Problem: sometimes people pay, but orders are not stored. Every morning, it takes 1 hour to check in db if the orders are stored, and if not, create them manualy
Yes, orders are created after payment.
Manager wants to fix it by creating the order before the payment, in 3 days (!)
Turns out that the freelancer has written a lot of obsolete code, I now have to clean up. 3 fucking months vs 3 fucking days!
And on top, the shoppingcart was stored in localstorage! (Already fixed by now)
Fuck this, I'm getting another wodka4 -
For the love of sex, can someone help me out??!!
There is a VS Code extension that helps in creating a step-by-step tutorial of a codebase. Can someone please tell me its name?!
Google is a bitch today.6 -
Is the CS field creating terms for the sake of creating terms?
Someone mentioned a "closure" in another post. I instinctively knew what they meant by that based upon the code I saw. I had heard the term thrown around before, but it had not yet connected in my mind. I wondered why I had not been exposed enough to care.
So I thought: What does C++ have as far as closures?
I found that C++ has lambdas. Those are definitions for function objects. They do not exist at runtime. But a closure does. The analog is you have classes. They are definitions and do not exist at runtime. But instances of classes do. So at runtime the instance is what you are working with. This is the same as lambdas vs closures in C++. The closure is the runtime counterpart. Why a separate term for what essentially is an instance? Is it because it captures data and code? As far as I know the closure is all data that gets passed around that calls a function. So it is essentially an instance of a lambda.
Another term: memoization. I have yet to see this added to any dictionary in online tools like a browser. Is the term so specific that nobody cares to add it? I mean these are tools programmers use all the time.
My guess is these terms originated a long time ago and I have just not been exposed to the contexts for these terms enough. It just seems like I feel like I have been in the field a long time. But a lot of terms seem alien to me. I also have never seen these terms used at work. Many of the devs I work with actively avoid CS specific terms to not confuse our electrical coworkers. My background started in electrical. So maybe I just didn't do enough CS in college.6 -
So I got a new project idea , an app that takes your image and fits it in a mac window like a border .
Basically when I make a new website or app and I want to post screenshots of it , just the plain screenshot of the app looks bland but if I have a nice aesthetic ✨ mac OS window around it with rounder corners and stuff , it would look very cool . I bet everybody here has seen something like this once or twice. Is there an app that does this already ? takes an image from the user and puts a window around it , with the minimize ,maximize and close buttons and let's the user download the final image . Not necessarily a mac window with there could be option for different types of windows . Even VS code repo on Github has a mac window around it lol . So I would like to make an app that makes this whole process easier instead of requiring you to edit images of your app (in case u don't have windows or a mac for screenshot)
What tools (tech stack )would I require to make a web app for this purpose ?5 -
IDE: JetBrains IDEs with Material theme (Dracula)
Editor: VS Code
They are fast, amazing and beautiful while I write code.2 -
We're using a setup with c# dotnet backend and js (React) front end... and do one in VS and the other in VS code. Any way to get one IDE to handle both properly? It's a huge pain but my manager told me that's just how they do it5
-
VS Code terminal is so bad... it is basically the worst part of VS Code; the devs can never fix it
The terminal in VS Code breaks for me all the time; it is so easy to break it; all it takes is change the size of the terminal window and bam, it is broken
The devs should either fix their shitty terminal or remove it entirely because it confuses people; I literally see wrong output from my program because of their terminal1 -
A year ago I built my first todo, not from a tutorial, but using basic libraries and nw.js, and doing basic dom manipulations.
It had drag n drop, icons, and basic saving and loading. And I was satisfied.
Since then I've been working odd jobs.
And today I've decided to stretch out a bit, and build a basic airtable clone, because I think I can.
And also because I hate anything without an offline option.
First thing I realized was I wasn't about to duplicate all the features of a spreadsheet from scratch. I'd need a base to work from.
I spent about an hour looking.
Core features needed would be trivial serialization or saving/loading.
Proper event support for when a cell, row, or column changed, or was selected. Necessary for triggering validation and serialization/saving.
Custom column types.
Embedding html in cells.
Reorderable columns
Optional but nice to have:
Changeable column width and row height.
Drag and drop on rows and columns.
Right click menu support out of the box.
After that hour I had a few I wanted to test.
And started looking at frameworks to support the SPA aspects.
Both mithril and riot have minimal router support. But theres also a ton of other leightweight frameworks and libraries worthy of prototyping in, solid, marko, svelte, etc.
I didn't want to futz with lots of overhead, babeling/gulping/grunting/webpacking or any complex configuration-over-convention.
Didn't care for dom vs shadow dom. Its a prototype not a startup.
And I didn't care to do it the "right way". Learning curve here was antithesis to experimenting. I was trying to get away from plugin, configuration-over-convention, astronaut architecture, monolithic frameworks, the works.
Could I import the library without five dozen dependancies and learning four different tools before getting to hello world?
"But if you know IJK then its quick to get started!", except I don't, so it won't. I didn't want that.
Could I get cheap component-oriented designs?
Was I managing complex state embedded in a monolith that took over the entire layout and conventions of my code, like the world balanced on the back of a turtle?
Did it obscure the dom and state, and the standard way of doing things or *compliment* those?
As for validation, theres a number of vanilla libraries, one of which treats validation similar to unit testing, which seems kinda novel.
For presentation and backend I could do NW.JS, which would remove some of the complications, by putting everything in one script. Or if I wanted to make it a web backend, and avoid writing it in something that ran like a potato strapped to a nuclear rocket (visual studio), I could skip TS and go with python and quart, an async variation of flask.
This has the advantage that using something thats *not* JS, namely python, for interacting with a proper database, and would allow self-hosting or putting it online so people can share data and access in real time with others.
And because I'm horrible, and do things the wrong way for convenience, I could use tailwind.
Because it pisses people off.
How easy (or hard) would it be to recreate a basic functional clone of the core of airtable?
I don't know, but I have feeling I'm going to find out!1 -
the october of 2020 was the year when i started my first job. 9 months before that, i was under a severe depression and burnout (i guess?) and had made up a decision to quit android dev, an area for which i was passionate and had proven excellence before.
(just having a few good thoughts and going into a little nostalgia in this rant)
DR has been my goto place for every good/bad/shitty thought, so the rants on those days reflected my mental pain ( am gonna go check those after this rant) and confusions.i was so so much confused:
- "College is about to get over, i have to go earn bread for my family, what am gonna do"?
- "My jan Android internship had so shitty people, it was so much fast paced, they exploied me, mistreated me so much. am never gonna do android dev. should i take this shitty TCS offer of INR 300,000? i bet those guys will be nice atleast, they are a freaking mnc"
- "I don't seem to like anything these tcs people have offered me in their video classes. how am gonna survive my daily job life if i don't like these stuff?"
"FUCKING COVID IS THERE!! MY DAD's SHOP HAS CLOSED DOWN, WE ARE ON OUR LAST SAVINGS !! I SHOULD FUCKING DO SOMETHING, BUT A JUST A 22 YEAR OLD NOBODY!!"
this above, was my fight. to me these were the end of the world thoughts.
however the last day of college came, then the next day came, then another , then a week came and went, then months came and went , then years came and went and today after 2 years, i am just amazed at how things handled themselves. all the above points are now totally invalid in my eyes
i was shit scared to even open android studio after that jan internship. however, every thing i learned in between feb to sept ( and that includes my college stuff, some web dev, php, etc) i would find myself comparing it with java and android. and after spending some off screen time with friends nd family getting some relax, i started applying for jobs at startups. I only ever had confidence in java and kotlin , so 50% of the jobs i applied for were that of android dev.
and it was to no one's surprise that one android startup offered to interview me. i remember being terrible at ds algo, programming, java and even android at that time, yet somehow they saw some potential in me and offered me a role. the role they offered me was for an android dev with a salary of almost double the TCS's offer. this was even more terrifying for me because i was already burnt with a startup offerring money and exploiting me.
But my god how things changed .
This small startup company was everything opposite of that exploitive startup.
- From day 1 to my last day in that company, I had seniors who would give me time to understand stuff, ask questions that they would clarify, understand my knowledge and level and give me tasks accordingly, trust me of my time and my words and appreciate me. no one ever called after 6 pm or on weekends and no one ever counted my leaves or asked question about it.
- I was myself very scared at first, that someday they are gonna blame me, find me as some fraud , some masquerader unfit for the role, but these fears slowly went away. i just found myself diving deeper and deeper into code with full passion love and quest for writing bug free stuff.
- slowly and slowly they even stayed putting me as sole devs in management meetings, making me the front spokesperson for android tech in those meetings, the position that gave me so much confidence since, the people taking the top decisions will change their decisions based on my calls. I also felt a pull for exploring stuff outside my domain, sitting in calls of backend devs , react guys and designers, asking them questions and learning their stuff too.
today i laugh at the problems that life had put in front of me at that time. today my opinion on choosing mnc vs startup is not about who pays how much or where the job is most secure, but its about where i find myself motivated and excited to work.
money is not even a factor anymore. everyone (mncs included) is willing to give tons of money to the worthy candidate, so i won't be ever settling for a low paying job. the topmost priority is which company has the culture to let me grow and keep me on heals at the same time.
-----------------------------------------------------
(continued)4