Jump to content

DevBlox

Member
  • Posts

    251
  • Joined

  • Last visited

Everything posted by DevBlox

  1. So just turning the exe into an app failed? Does running it work with Wine? Because a MacOS app is literally just a folder, you can create one yourself if you have the patience to learn and/or the bottler (I assume that's what you're trying) doesn't work. As for guides, search on winehq, protondb and google. If you're not finding anything about running the game non-natively, you're going to have to figure it out yourself.
  2. Three arduino PWM outputs and three MOSFET's (one for each color), 12v RGB LED strip and some programming knowledge. If you want to have a custom driver for your PC to communicate with it, ++ on that programming knowledge.
  3. Strip a for loop down to bare minimum: for (initialization; condition; action) { // stuff } It's purpose is not meant to be just be a "have an int and increment it" as an index. It can be used for many more things than just that. Consider this for iterating over a linked list: Item *head; for (Item *item = head; item != null; item = item.Next()) { // do things with item } Or this for iterating over a ring: Item *head; for (Item *item = head; item != head; item = item.Next()) { // do things with item } Or this for reading a file until End Of File is hit: byte[] data; // you'd need to allocate first of course for (Result res = file.Read(data); res != EOF; res = file.Read(data)) { // do things with data } Pseudocode for imagining what a for loop does (just in a more attractive notation): /* This */ for (int i = 0; i < some_num; i++) { // stuff } /* Is this underneath */ int i = 0; // initialization Loop: // stuff if i < some_num: // condition i++; // action jump Loop; else jump EndLoop: EndLoop: // continue on This will always be the same, for the linked list or the file reading example. A for loop is merely that construct. Once you get that, you should be more comfortable with it.
  4. I keep forgetting that RPi's are quad cores now and can handle it. I still own the original one and think how the hell will it manage that lol. In short, what you need to be looking at and reading about is systemd. This service is responsible for bootstrapping all the processes in the system, you can use it to set up a service out of what you just posted, and set it to start automatically on startup. Services are written in files similar to that desktop entry file. Read about it, learn about it, and you'll get there. Raspbian is just another Linux distribution (with some extra RPi specific tools), if you're familiar with Linux you'll be fine. Another thing that I would do, is disable the GUI completely and run in terminal mode only. Should save some RAM, which Java really likes (ie your MC server).
  5. I'd definitely use it if I need to, played around with it a bit before. Thing is, only use it when you really need to, and for parts that you really need to. Complete migration to GraphQL is pointless IMO. Classic REST (and friends) are easier on everyone, and I don't want to overcomplicate my life. GraphQL makes sense when you have a situation of data arriving on it's own being much more efficient than polling it, which probably hits the database every time. Difficulty of coding and maintaining included in that efficiency. GraphQL is not supposed to be any easier, it's supposed to save your world when you have that specific resource problem. I have a really good spot (textbook almost) place that GraphQL would insert itself into easily where I work at, but it's not a problem yet, and likely will never be judging by the load, unless management magically decides "we have 3 VM's too many, we're not paying for that" and we have to jinx the load balancers that also do caching. Not really worth all that effort. The time developers spend implementing that will be time wasted not doing features (opportunity cost). This is all business perspective though. It's usually easier to throw money at a problem until it becomes too much money, or too much pain for what it's worth. The enthusiast in me does get pretty mad about it and I kinda wish I'd get to use things like GraphQL more often. But it is how it is. Better yet, I could leave for another company that actually does or needs something innovative. Gotta find one first though. Good on you for giving it a go. I just wonder how much do you think you've gained from it?
  6. You might need to have a correct version of Windows (Like Pro etc) to run Hyper-V, but don't quote me on that. But VirtualBox should run no prob.
  7. @fpo intel_gpu_tools is using libdrm + ioctl calls to interface with the card and get those numbers. The headers and lib are available on every Linux system, all the drivers are underneath it. It supports whatever drivers Linux supports (not only the trifecta of AMD, Intel, Nvidia, but mobile chips, like VC4 on RPi etc). Wikipedia info about DRM here (a quite good overview). Needless to say, it looks a like a perfect point to hook in to, I was a bit concerned about handling all the different stuff out there, look like DRM already handles it, it's just a matter of getting things out of it ?
  8. Getting those numbers shouldn't be as hard as actually making a renderer at all IMO. Tomorrow I'll poke around the open source intel_gpu_tools that I'm using right now (I have a peasantly laptop with just that iGPU for now), it's hard to judge how at first glance on the difficulty, since there are a lot of different tools there that seem to use common code. But it might be a good place to start, with just that, then work up after. It would take some elbow grease for sure. I'd be pretty keen to contribute at least a bit to this myself, as I'm working on a Vulkan renderer now for basic game engine (learning purposes mostly, maybe light gamedev whenever/if the features are there). I'm a few features away from being able to give it "the business" (load a bunch of models and make it burn as much as possible). That point on I'll try to work on optimization (Vulkan is very flexible in that regard) and I'm pretty keen on having a tool to look at it all. Also, next year I'll build an AMD rig (also will be a Linux system), for gaming/development at home, and I'm completely unsure about the state of tools etc on AMD's side (I know they exist, but not how good they are).
  9. It doesn't work in Linux. Should have clarified that, pardon.
  10. Cross-manufacturer GPU monitoring tool. That's what I''m missing now. Tired of using different tools for different GPU's . Something like a resource monitor on Linux, somewhat user friendly. You already have a user over here. Edit to clarify: For Linux, or cross-plaftorm entirely (though it could be a challenge here).
  11. Not hard at all. You open files, read them, decrypt/unmarshal/deserielize as needed, and you can use the data in your program. You do whatever operations you need, and serialize/encrypt/marshal it and write back to a file. Games use archives usually, that you can read and extract data from, just like game engines do. Rarely anyone bothers coming up with their formats anyway, sometimes you can just open them with an archive program outright and take what you want. Front end is just another API, like Windows Forms for example. You put it all together and you have a tool. If you have some sort of specific archive, that developers rolled on their own, you figure out how it's put together, write a decoder, and just use it in your tool. You move and copy files around the same way as you do in the terminal, except that you use API/syscall counterparts.
  12. If you're planning to use whatever you write on something other people will use, you're shooting yourself in the foot outright. Learn to write those things all you want, may be good practice. Invest time only where you actually want to learn something. I have an impression you just one to make this work properly and get on with it. If you want your thing to be secure: learn about it, and just make it (TLS) work.
  13. You're going to make the game from scratch?
  14. What do you want to accomplish? If it's just to get an application to send/retrieve structured data to/from a server, probably the easiest thing would be just to make an HTTP server and use the JSON protocol to pass data around, that's how a good chunk (dare-say majority) of API servers in the world operate. You can accomplish and learn a lot with just that. If you want to just "start somewhere", that is a good place to start.
  15. If you're looking at a .NET executable, you might be able to decompile into C# or VB, from what I remember those often are readable when decompiled, since they decompile from CLR's intermediate language, not pure machine code. Otherwise if it was MinGW, or similar, unless the developers accidentally left debugging symbols in there, you're out of luck... You're going to be stuck reading assembly, you won't reproduce C or C++ (again, unless it's compiled to CLR IR). You can use Dependency Walker to verify what library dependencies are there (I'm guessing you will see clear .NET Framework dependencies if it's a .NET executable). Then the only tool I know of for .NET is Jetbrains DotPeek, not sure if there's a free version, but I used it a lot in my C# coding days. If you're out of luck you can try AIDA64, but that still won't reproduce code.
  16. Having mastery in a language != knowing (being able to code) a language. I know a lot of languages, but now there are maybe 3 or 4 that I use regularly, and there's just 1 I could claim to have mastery in, and even that's debatable, since I'm no longer a developer by title or occupation, I don't code as much as I used to. Some habits are just lost to time.
  17. I definitely prefer readable over short. You end up reading it faster than trying to decipher something. Also, nasty stuff can hide in the complexity, which you will not notice one day or another and bork something (legacy code like that with no unit tests is a "blessing"). Short and readable is ideal (and often possible), but otherwise, definitely readable. I second @trag1c, if you do something disposable/one-off it does not matter one bit if it's beautifully crafted.
  18. Set up a secure VPN that allows you to see the internal network. Then mount drive as usual. Do not expose such a system directly over the internet.
  19. Your manager isn't completely off with his answer, but I think he did evade the question a bit. These things are often just titles, I know some companies where Senior Developers completely lack the skill to be called Seniors, and some Mids that are very skilled, and deserve the title. I think that nobody really knows for sure, everyone has their own definition and you just go by feel. Then again, I'm nor a Recruiter nor a Manager. My own personal categorization/feel of this is: Juniors need guidance to carry out their tasks and learn Mids are perfectly capable to deliver on their own, able to grow on their own Seniors are what they should be - "wise men", knowing pros and cons of different approaches, should guide the team on a path of technical excellence, in both paths of process and implementation. It's all experience and knowledge. What I'm basically trying to say, there is no event or thing, after which *kablamo!* you're a Senior Developer. You just gradually get there.
  20. As per maths, IMO discrete mathematics (logic), is the most important in general, as it is the basis of all programming. Linear algebra is fairly common, as mentioned, others not so much, but are present. It all depends what you work on - one day it might be complex algorithms, other days can be just plugging data to go from point A to point B (and it's the more common of the two). Editory addition: Uni taught me technological fundamentals (assembly, how processors work etc, I struggled with it on my own in my teens), loved that subject, it was super hard to pass (I even failed once), but it's the most awesome thing ever to understand it, I feel it's useful when programming. Then there was some important to understand (at least) maths. I made awesome friends at uni. I've not finished it (maybe someday), but working on the thesis would have been very fun to me. Thinking up an interesting subject and running wild with it - sign me up. Too bad a lot of stuff in uni is just crap you have to endure, your mileage may vary though. Oh, most important - made some great friends. Uni also tried to teach me a lot of things which are just disappointing. Some examples include: UML (I really see no reason to learn spec-accurate UML), bad project management, applying solutions to non-existing problems (example: you have N amount of OOP principles/features to shove into a basic pogram), half-assing those solutions (my problem mostly, I worked as a developer full time all the time, they took back seat, since maths is harder), and a bunch of other unrelated crap that I had to learn (mandatory random subjects). The etc crap is mostly what made me not finish. I was supposed to attend shitty subjects, while I'm happily at work, nah not happening.
  21. Ah. Too bad I can't show you examples (company code). You basically install all the dependencies with npm install and run electron-builder to also install dependencies. Then you can use it to cross-compile binaries to other platforms even. Works like a charm. You get a single executable and that's it! electron-builder: https://github.com/electron-userland/electron-builder EDIT: There's a config you need to cretate for your application, read the docs basically.
  22. I'm not familiar with React-Native, but React is great on it's own, might be worth a try, but if I were to choose between Java and Kotlin, I'd go Kotlin. It's not that different from Java (it runs on the JVM, so it has familiar inner workings), but it is way nicer and cleaner from what I've tried.
  23. You can also find the systemd service definition of plex and set to run after a certain system target state, if it's incorrect. Just pick a state that comes after all the drives are mounted (and everything's in fstab, so you should not need to do it automatically). You can find the file with systemd status plexmediaserver it will just be there with .service extension. And of course you need to enable the service as mentioned, then it will run itself after booting. Only reason I can think of drives not mounting on the Raspberry Pi, is because it might be a bit finicky with device detection. If it detects the drive after the OS is trying to mount it, that could be an issue. I'm sure you could find that info in logs though.
  24. As much RAM as you can reasonably get + SSD. That's it, that's all you need, everything else (good keyboard, screen) is just comfort. It's up to you to see if it's worth upgrading vs buying a new PC. You could still code on a CPU from 5-8 years ago and be fine with it. You're not breaking technological grounds by coding in general, you don't need a beastly computer. I personally code on a ThinkPad T460, i5-6300U, 8 GB RAM, SSD, iGPU only. If it does not break, I will still use it in 5 years. The only desire for me is to get more RAM, so I wouldn't need to close my browser to start a couple of bigger VMs, drooling over the 2x16GB, will get to buying it soon.
  25. You'd best get away with retro-fitting an archive format to do this. I'm not sure about speciality file types for games, I'd avoid making one unless I really need to, and the only reason I'd want to is making the files memory map friendly, in a form that could help to load parts of it directly into memory, so that I could load resources into the game on-demand almost instantaneously (John Carmack would approve).
×