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 - "tiles"
-
Not one feature.
All analytics systems in general.
Whether it's implementing some tracking script, or building a custom backend for it.
So called "growth hackers" will hate me for this, but I find the results from analytics tools absolutely useless.
I don't subscribe to this whole "data driven" way of doing things, because when you dig down, the data is almost always wrong.
We removed a table view in favor of a tile overview because the majority seemed to use it. Small detail: The tiles were default (bias!), and the table didn't render well on mobile, but when speaking to users they told us they actually liked the table better — we just had to fix it.
Nokia almost went under because of this. Their analytics tools showed them that people loved solid dependable feature phones and hated the slow as fuck smartphones with bad touchscreens — the reality was that people hated details about smartphones, but loved the concept.
Analytics are biased.
They tell dangerous lies.
Did you really have zero Android/Firefox users, or do those users use blocking extensions?
Did people really like page B, or was A's design better except for the incessant crashing?
If a feature increased signups, did you also look at churn? Did you just create a bait marketing campaign with a sudden peak which scares away loyal customers?
The opinions and feelings of users are not objective and easily classifiable, they're fuzzy and detailed with lots of asterisks.
Invite 10 random people to use your product in exchange for a gift coupon, and film them interacting & commenting on usability.
I promise you, those ten people will provide better data than your JS snippet can drag out of a million users.
This talk is pretty great, go watch it:
https://go.ted.com/CyNo6 -
Ladies and gentlemen, prepare yourselves for a rant with a capital R, this is gonna be a long one.
Our story begins well over a year ago while I was still in university and things such as "professionalism" and "doing your job" are suggestions and not something you do to not get fired. We had multiple courses with large group projects that semester and the amount of reliable people I knew that weren't behind a year and in different courses was getting dangerously low. There were three of us who are friends (the other two henceforth known as Ms Reliable and the Enabler) and these projects were for five people minimum. The Enabler knew a couple of people who we could include, so we trusted her and we let them onto the multiple projects we had.
Oh boy, what a mistake that was. They were friends, a guy and a girl. The girl was a good dev, not someone I'd want to interact with out of work but she was fine, and a literal angel compared to the guy. Holy shit this guy. This guy, henceforth referred to as Mr DDTW, is a motherfucking embarrassment to devs everywhere. Lazy. Arrogant. Standards so low they're six feet under. Just to show you the sheer depth of this man's lack of fucks given, he would later reveal that he picked his thesis topic "because it's easy and I don't want to work too hard". I haven't even gotten into the meat of the rant yet and this dude is already raising my blood pressure.
I'll be focusing on one project in particular, a flying vehicle simulator, as this was the one that I was the most involved in and also the one where shit hit the fan hardest. It was a relatively simple-in-concept development project, but the workload was far too much for one person, meaning that we had to apply some rudimentary project management and coordination skills that we had learned to keep the project on track. I quickly became the de-facto PM as I had the best grasp on the project and was doing a lot of the heavy lifting.
The first incident happened while developing a navigation feature. Another teammate had done the basics, all he had to do was use the already-defined interfaces to check where the best place to land would be, taking into account if we had enough power to do so. Mr DDTW's code:
-Wasn't actually an algorithm, just 90 lines of if statements sandwiched between the other teammate's code.
-The if statements were so long that I had to horizontal scroll to see the end, approx 200 characters long per line.
-Could've probably been 20 normal-length lines MAX if he knew what a fucking for loop was.
-Checked about a third of the tiles that it should have because, once again, it's a series of concatenated if statements instead of an actual goddamn algorithm.
-IT DIDN'T FUCKING WORK!
My response was along the lines of "what the fuck is this?". This dipshit is in his final year and I've seen people write better code in their second semester. The rest of the team, his friend included, agreed that this was bad code and that it should be redone properly. The plan was for Mr DDTW to move his code into a new function and then fix it in another branch. Then we could merge it back when it was done. Well, he kept on saying it was done but:
-It still wasn't an algorithm.
-It was still 90 lines.
-They were still 200 characters wide.
-It still only checked a third of the tiles.
-IT STILL DIDN'T FUCKING WORK!
He also had one more task, an infinite loop detection system. He watched while Ms Reliable did the fucking work.
We hit our first of two deadlines successfully. We still didn't have a decent landing function but everything else was nice and polished, and we got graded incredibly well. The other projects had been going alright although the same issue of him not doing shit applied. Ms Reliable and I, seeing the shitstorm that would come if this dude didn't get his act together, lodged a complaint with the professor as a precautionary measure. Little did I know how much that advanced warning would save my ass later on.
Second sprint begins and I'm voted in as the actual PM this time. We have four main tasks, so we assign one person to each and me as a generalist who would take care of the minor tasks as well as help out whoever needed it. This ended up being a lot of reworking and re-abstracting, a lot of helping and, for reasons that nobody ever could have predicted, one of the main tasks.
These main tasks were new features that would need to be integrated, most of which had at least some mutual dependencies. Part of this project involved running our code, which would connect to the professor's test server and solve a server-side navigation problem. The more of these we solved, the better the grade, so understandably we needed an MVP to see if our shit worked on the basic problems and then fix whatever was causing the more advanced ones to fail. We decided to set an internal deadline for this MVP. Guess who didn't reach it?
Hitting the character limit, expect part 2 SOON7 -
Dev: We need a better name than “Data” for this class. It’s used for displaying a set of tiles with certain coordinates so maybe TileMap would be a bit more declarative?
Manager: No I don’t like that. Data is perfectly fine, this class is for managing data so it’s perfectly declarative you just need to get better at reading code. If you have to change it then DataObject or DataObjectClass might be a bit more specific.
Dev: …14 -
Me, Linux guy, who likes.. really likes..
Visual Studio..Code.
Visual Studio Code.
👍Well done "Tiles Corp.".9 -
A friend was writing a small game. He asked me to take a look at why the FPS where horrible although he was only drawing the background each tick.
He had about 10 different images that were used to draw the background tiles. Each iteration of the game loop he would loop over all tile positions, determine which image to use for this tile, load the image from disk and create a new tile using the image, which then would be drawn and forgot.4 -
I wouldn't say least successful but my current one has an extremely irritating annoyance.
I have to setup a tile server (for those draggable maps in browsers and such) and I've come to the point where I'm skilled enough to at least setup the server. BUT:
- Generating the tiles from a database to PNG pbf files at a max 15 zoom level of only even the goddamn nerherlands will take more than a hundred days and I want the entire goddamn world. (20 core rather powerful server).
The end result is veeery fast.
- The importing is fast enough but generating them on the fly is so painstakingly slow 😫
😖14 -
If I have to draw out a normalized database on paper one more time I think I might split myself into multiple indexes3
-
Just came home from the cinema in zurich switzerland where Samsung installed the largest 4K LED TV. Yes that's not a textile canvas in the picture, it's a wall of led tiles called Samsung ONYX. It's a real pleasure to look at. High contrasts and brilliant color. I'm in love 😍
https://goo.gl/GjsDMx
Samsung Debuts World's First 3D Cinema LED Screen Theater in ...14 -
Nearly, nearly ready to deploy self-hosted maps, fucking awesome!
Aaaand now comes the goddamn styling since these will be vector tiles..
I fucking hate designing/styling and I fucking suck at it too. 10 attempts which all pretty much look like shit.
Fucking great.14 -
Drawing html5 canvas made me go to bathroom to look at the wall tiles and assumed it was a coordinate axis1
-
Friends of mine have a new flat.
It's a nice flat. Cheap. Noone wanted it. 100 square meters.
Reason noone wanted it...
Previous owners were bastards from hell.
Really. Every motherfucking room needed to be completely renovated by the owner.
Door frames were made of wood, nice and old - at least the part that was left of them. Splinters, scratch marks, partially broken out of the wall.
2 windows needed to be fully replaced. Rest of the windows needed to be bleached, PET abrasive cleaning solution and the frames needed repair with resin as they drilled into the frames. Then treatment with sealant of course.
Yes. There was no other solution. After bleaching you recognized the windows were white. Before... Let's not talk about it.
The previous owners even managed to destroy the bathtub.
The kitchen tiles... Fat cleaner. Bleaching. Abrasion. Polishing.
Soooo.
Day of moving.
The apartment is in the 6th floor / level.
Cran / lift was ordered.
16 people wanted to come.
7 people came.
2 including myself couldn't lift heavy stuff nor walk the stairs due to health issues.
Crane broke after first try.
Today. I want to murder the previous owners. After torture and crucification.
I'm feeling levels of pain I couldn't Imagine before.
Only hate and beer let's me keep my shit together.
I REALLY didn't think after renovating and cleaning the flat for my friends in the last several weeks that it could get worse.
Boy. I was wrong.
Thanks for letting me vent here. I really feel devastated currently -.-
And I need to help them tomorrow, too.
Bikini Atoll, tchernobyl and every other atom bomb desaster Zone combined looks better than the chaos in their flat.
Everyone who could lift shoved everything inside.
I solo carried everything that wasn't too large in the room and then, as every room looked like desaster, completely managed the kitchen (cleaning, unpacking, trash, placing everything where it belongs and so on) :( :(4 -
Unpopular opinion: I actually quite like the Windows 10 tile start menu thing, even though I'm on Linux.6
-
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 -
Started teaching my 4 yr old daughter basics of instructions. My drawing room has 2x2 feet tiles. I block some tiles by keeping some object in that. There is a target. My kid has to tell me to turn, go right, left, straight, back to reach target n avoid blocked tiles. We have a good fun time n she is picking up fast :)1
-
Today I went to Yogurtland, the wall tiles looked like a user's busy Github history. When I got to the order counter I said, you guys have been busy on Github, haven't you?
The employee gave me the most confused stare I've ever seen. I just chuckled and walked out. -
When you've got two unpublished side project Android apps that you need to put the polishing touches on, a passion project website that you've half started, a new job that you probably should study for, and you say to yourself: "there's no Windows live tile that does this particular thing that I want. Guess I'll learn how to make them."
Also, is it just me, or should developing live tiles be way more straight forward? I know it's like the least hip thing I could be making, but I've never claimed to be a hip person.2 -
I wouldn't be here on GitHub everyday if it wasn't for these green tiles that attracts not only employers, but yourself. Wish the monthly was still a little bit cheaper for us outside the US.6
-
My God is map development insane. I had no idea.
For starters did you know there are a hundred different satellite map providers?
Just kidding, it's more than that.
Second there appears to be tens of thousands of people whos *entire* job is either analyzing map data, or making maps.
Hell this must be some people's whole *existence*. I am humbled.
I just got done grabbing basic land cover data for a neoscav style game spanning the u.s., when I came across the MRLC land cover data set.
One file was 17GB in size.
Worked out to 1px = 30 meters in their data set. I just need it at a one mile resolution, so I need it in 54px chunks, which I'll have to average, or find medians on, or do some sort of reduction.
Ecoregions.appspot.com actually has a pretty good data set but that's still manual. I ran it through gale and theres actually imperceptible thin line borders that share a separate *shade* of their region colors with the region itself, so I ran it through a mosaic effect, to remove the vast bulk of extraneous border colors, but I'll still have to hand remove the oceans if I go with image sources.
It's not that I havent done things involved like that before, naturally I'm insane. It's just involved.
The reason for editing out the oceans is because the oceans contain a metric boatload of shades of blue.
If I'm converting pixels to tiles, I have to break it down to one color per tile.
With the oceans, the boundary between the ocean and shore (not to mention depth information on the continental shelf) ends up sharing colors when I do a palette reduction, so that's a no-go. Of course I could build the palette bu hand, from sampling the map, and then just measure the distance of each sampled rgb color to that of every color in the palette, to see what color it primarily belongs to, but as it stands ecoregions coloring of the regions has some of them *really close* in rgb value as it is.
Now what I also could do is write a script to parse the shape files, construct polygons in sdl or love2d, and save it to a surface with simplified colors, and output that to bmp.
It's perfectly doable, but technically I'm on savings and supposed to be calling companies right now to see if I can get hired instead of being a bum :P19 -
Imagine coding in here.....
I will definitely go !productive.
Source: https://mobile.twitter.com/i/...
(btw, inside the glass in the left is the bathroom / click the rant for other view)7 -
Working on random room code in Godot. I am placing 1m * 1m scenes (meshes). Right now its just a square block. I need to work on occlusion of rooms. Then connecting rooms. I am going to try a 3d, but made of 3d tiles inside areas. Still trying to decide on what to use for outside terrain. I did find a terrain library that allows for digging holes in the terrain. This is where I will have players build a base and dig underground.
I am thinking a really casual game that you can crank the difficulty if you want. A relaxed rpgish game with some rts flavor to it. If someone wants to just chill they can turn off the rts side. Allow for multiple bases for resource gathering. Maybe do some automation of resource gathering using slaves...err...minions. Gonna stay single player for this iteration. I don't really want to spend time working on net code for this.
For now I just gen random rooms:12 -
Recently I tried implementing a 2d grid you could drag (for performance I decided it would auto genetate new grid tiles)
Gotta say, I have a lot more respect for people who try to build this without a framework, I am building it using JavaScript and pixi.js
But man, drawing graphics is hard 😅
It's worth it though, performance is mad 💪3 -
Technically couldn't get fired seeing as this was a schoolproject, but let's rant anyway!
So for a final assignment we had to create a WordFeud/Scrabble like game in Java with 7 others. We really got to know eachother and had a lot of giggles with the project.
At one moment one of us got bored and decided to photoshop the head of the person who's grading us unto one of the board tiles and we laughed and laughed...
...until we forgot to undo this during the demonstration >.> -
Who says you can't use CMD on a Windows phone?
I managed to crack the screen of my precious Lumia (yes, haters, I <3 winPhone) and now the back and home buttons don't work. Everything must happen by searching it in cortana/search.
You can imagine what going back one level in settings must be like. And every operation is like a command on a shell. No tiles, no swipes, nothing. It feels raw.
I'm using an auxiliary android (ughh) phone for now, but there's no windows phone in the market right now. And the swipe on G-board sucks.
The point of this rant is a question: does anyone know when the surface phone is releasing?6 -
Fucking Android 12 everybody hate it, it's ugly, and what has changed from 11 besides everything you already know. 90% of time pressing volume down + power to take a screen shot will result with volume bar popup first then screenshot, so your screenshot is dirty with volume bar.
They must have adjusted time threshold between how fast/precise press of both buttons is, and now you kind of must be faster and alwas this "I need to press 2 buttons but power must be pressed first"
So fuck you google engineers for ruining Android in every sense. I want revert path, I'm going back to 11!!
It's a first major upgrade that is worse than previous, and those ugly tiles and notifications, cool they are big for what exactly? I still can't operate the phone with hand gloves on the motorcycle with tiny keyboard buttons.
It's like everything is tiny and then grandpa style huge top drawer icons for who knows what with so fucking annoying scrolling text, for fuck sake 11 had is just perfect!5 -
Localhost cloud in port 404 (C4)
Rogue like puzzle game (CF)
Piano tiles like runner game (CD)
Emotional Simulator (C7)
Pastebin client (PFW)
Updates in comments as i remember.6 -
Someone just left a small turd in front of the toilet bowl and stepped on it so now there's smeared shit on the floor tiles in a toilet stall.
Must be all the caffeine I guess.
Oh, and don't stand up too fast after taking a shit apparently, since I can't fathom how that happened.3 -
When the monthly scrum retrospective reaches the 90 minute mark...
You know when people are being stress tested and they break by getting up, run around screaming and ultimately knock themselves unconscious by running into a wall?
That. I felt like doing that.
I swear someone activates some sort of gravity well when these meetings begin because time beings to stretch on and o........n....... while they meetings happen.
I began to list things I think I'd rather be doing than be in that meeting.
1) Tax returns.
2) Prostate exam (not old enough to need one yet but at least I'd be out the meeting).
3) Visiting the dentist.
4) Assembling IKEA furniture.
5) Watching soccer at least they have the decency to give you a break in the middle and I find sports as engaging as a dog turd on the sidewalk.
So bored was I that I began to notice notches and holes in the ceiling tiles and when I remarked upon them others became engrossed in them and began to speculate upon their origins.
I don't know who a speaker is, what department they are from, what product they're working on or what's so important about the algorithm they're working on. There is no context, no explanation and half way through a show and tell I had to check we were still in a show and tell.
I was bored shitless. I actually felt physical pain from boredom, I've not felt that way since I was a child.
I really, really hate that scrum is implemented in this way.
It left me with only half an hour of coding time left and really it sapped my energy and motivation to the point where I just went home early.
Excuse my language, but:
Fucking bloody cunting waste of time, I've had more productive moments in the restroom. They need to piss off or committed seppuku, ideally both. Dante got it wrong the seventh level of hell is this. I'm usually a very calm and balanced individual but yesterday, yesterday I just... Fuck! Argh! Fuck you meeting, fuck you.
If you are the type that schedules meetings like this:
May a thousand Jabberwockies plague your nightmares and be it that the next seventy seven times you lay with a human shall ye experience bitter failure! I hope Cthulhu himself visits his "enlightenment" upon you and you fear sleep henceforth.
I'm bringing a rubix cube or juggling balls into the next meeting so that I can say at least I learned something and it wasn't time wasted.3 -
Is anyone here familiar with hosting maps through vector tiles and displaying them on webpages?
I'm fucking stuck on this and the forums aren't really replying/answering anything.
Any tips/help would be appreciated!10 -
SWE in fintech in MNC, job involves "bigdata' . Get paid >> avg
I FUCKING HATE IT. THIS PLACE IS A REAL DREAM-KILLER.
Size of the big-data ??? <50 GB ! Entire place runs on gimmicks and show off.
PO is a dumb cock sucker with minimal tech idea. He is busy sucking up business users and dictating us to rearrange tiles on reports all day long.
Fed up with all this shit , I decided to give GRE and apply for masters in Computer Vision .
For good GRE verbal score , I need to learn 1100 words , 90% of which I have never heard in my entire life.
WHAT THE ACTUAL FUCK ????????
Will my dream of working as a vision scientist for autonomous cars never come to life ???????
😢😢😢 😢😢😢😢😢😢😢😢😢😢😢
Plz motivate me to get out of this shit-hole -
I'm very much done with searching for this as I've been doing it for a trillion years and still don't have a goddamn good working example.
Does anyone know how one can properly render pbf tiles with a custom style in either leaflet or open layers?
Leaflet VectorGrid is a no go as it can't render any names (streetnames etc) and I can't fucking figure out how to use Leaflet VectorTileLayer.
Leaflet would be preferred as I've written everything with leaflet till now but anything working would be great 😬5 -
Help me think. Apparently, I have generated my little tile world. So it's basically the world map assembled from little tiles, which have their own color (pic1).
When I click on one of the plots, I want to open a 5x5 isometric tileset that represents the selected plot. (pic 2). I would like to define the amount of the mountains/water/sand/farmland by the initial RGB value of the plot. Every plot has its own id, location, position, and RGB. (pic 3). Is this possible at all or shall I look for some different approach?15 -
Not the most exciting bug i solved but i was very happy when i solved it!
we were working on a java game for a school project. Te game itself consists of a maze so we used a double array maze[][] to store all the Tiles of the maze. to move players around we used x and y coordinates. When we started playing we couldn't figure out why we could move through walls and go in weird directions. and finally it hit me,
java uses [y][x] , and mathematics uses (x,y)2 -
Create a p2p version of Google Maps / OpenStreetMap that uses people's browsers to store the map tiles of "their region".
Started already by building a proof-of-concept called p2p-fetch[1] (uses GunDB under the hood) and mixing it with the awesome Leaflet library.
[1] https://github.com/davide/p2p-fetch2 -
Data wrangling is messy
I'm doing the vegetation maps for the game today, maybe rivers if it all goes smoothly.
I could probably do it by hand, but theres something like 60-70 ecoregions to chart,
each with their own species, both fauna and flora. And each has an elevation range its
found at in real life, so I want to use the heightmap to dictate that. Who has time for that? It's a lot of manual work.
And the night prior I'm thinking "oh this will be easy."
yeah, no.
(Also why does Devrant have to mangle my line breaks? -_-)
Laid out the requirements, how I could go about it, and the more I look the more involved
it gets.
So what I think I'll do is automate it. I already automated some of the map extraction, so
I don't see why I shouldn't just go the distance.
Also it means, later on, when I have access to better, higher resolution geographic data, updating it will be a smoother process. And even though I'm only interested in flora at the moment, theres no reason I can't reuse the same system to extract fauna information.
Of course in-game design there are some things you'll want to fudge. When the players are exploring outside the rockies in a mountainous area, maybe I still want to spawn the occasional mountain lion as a mid-tier enemy, even though our survivor might be outside the cats natural habitat. This could even be the prelude to a task you have to do, go take care of a dangerous
creature outside its normal hunting range. And who knows why it is there? Wild fire? Hunted by something *more* dangerous? Poaching? Maybe a nuke plant exploded and drove all the wildlife from an adjoining region?
who knows.
Having the extraction mostly automated goes a long way to updating those lists down the road.
But for now, flora.
For deciding plants and other features of the terrain what I can do is:
* rewrite pixeltile to take file names as input,
* along with a series of colors as a key (which are put into a SET to check each pixel against)
* input each region, one at a time, as the key, and the heightmap as the source image
* output only the region in the heightmap that corresponds to the ecoregion in the key.
* write a function to extract the palette from the outputted heightmap. (is this really needed?)
* arrange colors on the bottom or side of the image by hand, along with (in text) the elevation in feet for reference.
For automating this entire process I can go one step further:
* Do this entire process with the key colors I already snagged by hand, outputting region IDs as the file names.
* setup selenium
* selenium opens a link related to each elevation-map of a specific biome, and saves the text links
(so I dont have to hand-open them)
* I'll save the species and text by hand (assuming elevation data isn't listed)
* once I have a list of species and other details, to save them to csv, or json, or another format
* I save the list of species as csv or json or another format.
* then selenium opens this list, opens wikipedia for each, one at a time, and searches the text for elevation
* selenium saves out the species name (or an "unknown") for the species, and elevation, to a text file, along with the biome ID, and maybe the elevation code (from the heightmap) as a number or a color (probably a number, simplifies changing the heightmap later on)
Having done all this, I can start to assign species types, specific world tiles. The outputs for each region act as reference.
The only problem with the existing biome map (you can see it below, its ugly) is that it has a lot of "inbetween" colors. Theres a few things I can do here. I can treat those as a "mixing" between regions, dictating the chance of one biome's plants or the other's spawning. This seems a little complicated and dependent on a scraped together standard rather than actual data. So I'm thinking instead what I'll do is I'll implement biome transitions in code, which makes more sense, and decouples it from relying on the underlaying data. also prevents species and terrain from generating in say, towns on the borders of region, where certain plants or terrain features would be unnatural. Part of what makes an ecoregion unique is that geography has lead to relative isolation and evolutionary development of each region (usually thanks to mountains, rivers, and large impassible expanses like deserts).
Maybe I'll stuff it all into a giant bson file or maybe sqlite. Don't know yet.
As an entry level programmer I may not know what I'm doing, and I may be supposed to be looking for a job, but that won't stop me from procrastinating.
Data wrangling is fun.1 -
Using grafana together with tinc+promotheus, has been a blast.
Initially I wanted to get into ELK with Kibana and all that, but that required 8G of ram, the instructions to get it running in the open source "mode" was nearly non-existent, together with all the ready docker compose stacks out there simply not working or the images being broken.
I'm sure I could've managed around most of those issues, but the fact it is as hungry as gitlab, made it a literal no-go for the usual server resources my clients host or my own scaled down server recently.
Thankfully I remembered that there's grafana and me having experimented some time ago with tinc, so I can have very lightweight beat'esque prometheus agents deployed listening on tinc local net only, with the typical nginx auth and some whitelists to all of the servers I host and all those of my clients.
The dashboard creation was especially great in grafana (tbf promotheus does actually most of it), literally what I always wanted out of those "complicated" solutions, that do it all, but have no proper query language, complex documentation, heavy collectors with no properly named data points, expensive resource runtimes, ..
with grafana I can just easily put dashboards into folders, create users to look only at certain stats or even dashboards (opened up some interesting contracts actually, because now I can also offer proper monitoring for all things delivered), easily drag and drop around stuff to fit more information (most others fix you to a small 3x2 grid, a too big grid for a TV or simply non resizable tiles, making that one counter take up an entire row) and resize to my hearts desire
tinc of course allows me to easily create private networks that are resistant to failure across any region and the routing is done for me, so I don't have to run around it all that much either
P.S: a damn tiny fly went into one of my now 4 monitors and died right in the middle, because I thought it's just some dirt and I pressed it in while trying to wipe it off, so that monitor now serves as the top most on a vesa mount5 -
Maybe you people will like this story.
The past semester I studied Java in class. First time doing object oriented programming, I had an annoying teacher but got the hang of it. I still miss C from the last year.
As a final project we had to do any program and apply some stuff we saw in class (The program should have an array list, use interfaces, bla bla bla bery simple stuff). It also must have a complete documentation, a manual and a diary explaining what was developed every week. Bonus points if it was in a repository like GitLab.
I wanted to do an RPG game in a matrix, like a rougelike or an old FF game, that should be a map or two, a few monsters and items and that's it. Enough to show what can I do and to have enough excuses to apply everything that the teacher asked. I had a team with two friends who wanted to do the same.
After making accounts in three different pages that apparently would help us to be more organized (One to make charts and two task trackers) I lost all patience and made an account in GitLab, made the basic classes that we had defined in a chart, divided the tasks and put them in to do on GitLab and we started to work.
One of my companions caused a lot of problems. First, he didin't wanted to learn how to use GitLab (I simply asked them to do merge requests) and he insisted to use GitHub. Then he started to say that using the console version was even better (Pretty sure he said thet he never used Git, but maybe was gas poisoning). The GitLab repository never had a single commit to his name.
BUT WAIT IT GETS BETTER all the entire time, he was complaining about the graphical interface of the game, wanting to use some SDK for RPGs that he found. I told him that we will see that at the end, that first we should have all the mechanics done, test it in ASCII in the console and then, if we have time, we will put the visual interface, separated and optional from the main program to avoid problems.
After two weeks where he gave me very simple standard stuff late, half done and through Google Drive, I discovered he was most of the time working on... the graphical interface SDK! He took the job already done by me and the other guy and making a pretty hardcoded integration with the graphical interface and making everything that he tought it would be necesary. Soon enough the GitLab repository was totally outdated and completly useless. He had the totallity of the project in his half broken laptop, and sometimes he gave us a zip with all the code, outdated after a few minutes. Most of the stuff that I made was modified, a lot of the code was totally unknown to what it was and I had no idea even of how the folders were organised.
We had a month to finish it. I got totally disconected from the project and just hoped for the best, sometimes doing a handful of generic and adaptable lines of code for a specific thing (Funny enough, many core mechanics were nonexistent). The other guy managed to work more on the project, mostly fixing the mess that the guy did: apparently he didin't read the documentation of the SDK and just experimented and saw tutorials and tried to figure out how to do what he wanted.
Talking about documentation: we dont had yet. The code wasn't even commented propely. We did all that the last week and some stuff was finished the last night. The program apparently worked but I had no idea.
Thank God, the teacher just looked over everything and was very impressed by the working camera and the FF tiles. I don't think he saw the code or read too much of the documentation, much less when I directly wrote how I lost all access to the project.
I had a 10/10. I didin't complained. Most easy and annoying ten I ever had. I will never do a project with that guy. -
This *is* a question you silly wrong tagging mother fucker, how dare you doubt me?
Alright, no more disclaimer: I like dungeons and dragons, but it's too fucking much in terms of rules and systems and shit, as in just *making* a character can take a long ass while.
And if that's the highest level of all your ANAL preferences then OK, but I'm not you and things only come OUT of my ass, not inwards, I swear.
Anyhoo, I got fed up with it and wrote my own ruleset and setting as a last fuck you to everyone. It's very simple: if you want to be some kinky magical alien hermaphrodite royal prostitute half sewer dragon princess and three quarters bearded female incest child of demons and fairies then FINE, but you get no bonuses for that shit.
Get it? No complex racial level scaling bullshit, FUCK YOU, race and background is just for vibes, end of story.
You get no attribute or skills or shit to distribute on level one. All you get is a prompt: pick three actions, that's it. You wanna be sexy? Pick "seduce". You wanna set turds on fire? Pick "ignite". Are you an edge lord? Pick "summon". Would you be my wife? Pick "heal", "buff" and "smite".
The game is turn based, and each action you can take is effectively a spell. Everyone can cast a basic spell like walk, attack, talk, crouch, etcetera -- that costs no mana. Special crap like flying and firing fucking electricity costs mana, and you can only do those if you either picked the spell on level one or learnt it later from a book/tutor/demonic bargain/whatever.
Which spells are valid for taking at level one is up to the game master; I just tell people to pick three verbs or short sentences, and if they choose something that's too broken like "split the Red Sea" I'm like nah you're not Moses, try again.
Still with me? Good. You get eight points of health, four points of mana, and one point of stamina. They're all energy, and you can use it to power your magery, but spending all your health means you fucking die.
Stamina recharges fully every turn, and is used for the aforementioned basic actions. All of these cost one point of stamina each. If you run out of stamina, you can use mana. Or your BLOOD.
Level one spells cost one mana, level two cost two and so on. You get back one point of mana each turn, and you can fire all the spells you want during it, long as you have mana. Or BLOOD.
That's good and all, but if you spend anywhere over eleven combined points of energy in one go, you spontaneously combust and die, erasing all signs of life in a twenty-meter radius. This is called incineration, and it *will* leave behind a blackened crater from which the dark servants of the Horror Immemorial may or may not crawl out of.
In case you didn't guess by now, your blood doesn't fucking come back unless you eat, sleep or see a healer.
But anyway, the more points you spend into casting a spell -- and remember, basic attack counts as a spell -- the more powerful it is, so the bigger your diceroll can get. My rule is I add one dice for every fourth point of energy spent, so (1d4), (1d4 + 1d6), (1d4 + 1d6 + 1d8), incineration.
Additionally, for every three points of energy spent, your spell can hit one more target. That's right, you like AoE? Then spend more mana, bitch. Oh, and if you're using shit like poison it lasts one more turn for every two points of energy spent.
How do we calculate damage? Diceroll over two and fuck your mother. Armor class? Resistances? Out of my face with that shit. Damage reduction is called "tyranny" and is for dungeon bosses only.
If you live long enough to get to level two, you *do* get attributes. Pick:
- Grit: +2 health, +1 to fighter shit type rolls.
- Cunning: +2 mana, +1 to rogue shit type rolls.
- Allure: +1 stamina, +2 to wizard shit type rolls.
- Spirit: +1 to elemental shit type spells.
- Faith: +1 to benefactor paragon asshole shit type spells.
- Hatred: +1 to demonic murder hobo destructive shit type spells.
On second level, you can pick one of the spells you know to get +1 to it, specifically. Eh, "+1" just means you get a bonus to some diceroll, no time to explain I'm running out of characters what the fuck.
On level three, the cycle repeats. Pick attr, pick spell. DONE.
Oh right, and weapons. Mostly just vibes, pick your fancy and fuck off. Normally, you can hit things one tile away; if you have a BIG melee weapon you can hit from *two* tiles away, and if you have a ranged weapon you can shoot anyone in sight, but you need to spend one point of energy to reload.
And there, all bases covered in less that 5000 characters with some flair to spare, now suck my fucking cock Hasbro.
What was the question? Oh yeah right, I'm gonna GPL this shit and put it in browsers. I think I'm going to write it in Kotlin but I'm open to suggestions. Would you guys like to play it/contribute to it's development for shits and giggles?8 -
Case study on how hard Google Search sucks in 2024: search for "where can I find my likes on facebook android mobile". Search results on mobile:
- Youtube video fragment
- 4 videos
-""Related searches"
- Official instagram help page for likes
- Visually buried third-party neutral & correct help page
- 3 other results, one about desktop, one about iPhone
- image tiles without any added value except to "engage" you
- "People also sought"
Also why the fuck does FB bury your likes 8 clicks away:2 -
Building a Web dashboard. Stats a day tiles etc.
Boss wants to write sql stored procedures to populate tiles.
Azure dB returns tile list, that maps to angular directive names, use nested angular directive that auto compiles a directive by name, then that directives controller calls a sql query which returns the name of the query to call to receive data, formats the data into charts or lists, builds the tile, places it into a gridster tile array and redirects to new tile pages by UI router state names.
I... I think I have gone too far. What have I done. -
OMG, what have I done? I've maxed out the Windows 10 start menu size and filled it with tiles, only to realize that I've basically turned the menu into *Windows 8 Metro Home Screen*. By choice. This is scary.2
-
Did a hackathon on Saturday (2019/10/26) with a local programming group. I set a goal for myself to create a text based map similar to nethack. However, I chose to use QtQuick as my rendering system. I also chose to do render to texture for my tiles rather than just trying to size fonts for my map. I still rendered fonts, but I did so the transparent textures. I only got the basic map working and it only rendered the outside walls. I learned quite a bit about the rendering system of QtQuick though. Now I have a good grounding to do much more complex rendering.
Here is the code I wrote:
https://github.com/Demolishun/... -
Contemplating ideas for a game that will involve some exploration and puzzles (aimed at teaching some low-level computer stuff like binary etc.) Replayed an old 2D game in an emulator, looked at some old adventure games, decided a 2D platformer might work for what I'm aiming for.
So I start making some pixel art, simple things like 32x32 tiles for bricks, some bigge ones for doors etc. And I discuss some ideas with my girlfriend for what kind of scenarios would fit into this game world.
Anyway, she normally draws and paints, but seemed interested in trying pixel art so I gave her a link to Piskel and a rough idea of some decorative items I'd want to put around the map. Within a few hours she created a flower pot with flowers, a coffee machine, a light with lightshade, a small pile of books, and a couple of other things - all shaded and detailed beyond any of my attempts, including lighting going from left to right (which I wanted but didn't specify).
I mean, I could've expected this but pixel art is quite a different beast to drawing or painting as you have to do more with less.
Now I just need to make my game engine. So far I have an SDL program with a flowerpot that you can move around xD1 -
Venkateshwara Marbles & Granites
With a reputation for quality, Venkateshwara Marbles & Granites offers an extensive range of marble and granite options. Whether you need slabs, tiles, or custom cuts, they provide a perfect solution for your flooring, kitchen countertops, and wall coverings. Discover elegance and durability with every product from Venkateshwara Marbles & Granites.2