Everything posted by Veiva
- Today...
-
Today...
I crashed my bicycle today after I turned a corner too fast going downhill. The road pavement in that area hasn't been finished a year later, so it's really weird juxtaposition of pavement and yard. Road rash on my hands, arms, side, and right knee. Hurts like a [bleep]. Handlebar is turned nearly 1/8 circle, too. Glad I didn't hit my head but I had my helmet on so I (hope) I would've been ok in such a case. Two vehicles passed me as I got up and didn't even stop. Found that amusing in reflection. There's a reason I wear full gear on my scooter, whatever the weather. If I got beat up that badly going 15 mph, imagine what it's like at 30+ mph. And then I see people on 1000cc bikes wearing a t-shirt, shorts, flip-flops, and a half helmet more often than not... Will get gloves, knee pads, and elbow pads before I go bicycling again, though it won't be for a while. This was the last straw. A few days ago hit the some psychopath hit the gas hard as I began making a left turn (I signal!), and came less than 1 inch from hitting me after I braked. If I braked less than a tenth of a second later, I'd have been in the hospital at best. They kept speeding up after they passed me. I'm tired of bicycling in the same routes anyway. 2,000 miles in my damn neighborhood this year alone. Pathetic.
- Today...
- Today...
-
Today...
I'm going to try and use Bazel. If that fails, I'll use what I used before CMake: Premake. Hopefully I can get Bazel to work. Reproducible builds would be a wonderful addition, for peace of mind. (The compiler I use is Clang. CMake is a build system :P.) In other news, I bicycled 133 minutes today. Shame. One minute too much to be a Ditto-themed time period. (I can't think of a less obnoxious way to phrase it.)
-
Today...
I'm going insane. The return value four-dimensional vector from a method is garbage when called from my application, but fine when called from libraries! I haven't got the faintest idea why and I can't read x86 assembly. If I switch to a three-dimensional vector type, it works. But I need all four components... It's been two days so far I haven't been able to fix this bizarre bug. I have a hack that works around it, but I simply can't settle for it. And what's worse is I can't replicate it in an independent test case. Here's more info on my problem, for the programmers here. edit: The culprit is CMake. If I everything by hand, it works. CMake introduces some state that breaks my code. Well, time to switch from CMake. It sucks anyway.
-
Today...
I've been making various things different than usual for lunch/dinners lately. I make a big batch then freeze the leftovers. Got really tired of always having sandwiches for lunch. Today I made chicken alfredo. It was delicious! Did a simple roux sauce with Parmesan + a little bit of mozzarella. Baked chicken and veggies (spinach, zucchini, jalapenos, green peppers, and onions) in the oven. Mixed it altogether and bam. Got 10 servings out of it. Dreading the dishes, though... A few days ago I made a BBQ beef roast with sweet potato, onions, and carrots, and last week a Thai sweet chili sauce over chicken thighs + veggies. Going to make the chicken one again tomorrow. Altogether, after tomorrow, the meals should last me a couple weeks before I have to make more.
- Today...
- Today...
-
Today...
I can reconstruct the entire visible game state, from NPCs/objects/items in the game world (including identifying animations), GUI state (from buttons to windows to text, and even item icons), camera state (including player location to the exact tile), with 100% accuracy dozens of times per second. Further optimizations should bring that to near 1:1 with the FPS. My opinion is their rendering system is incredibly robust and efficient. Highly optimized for their assets. They can render entire scenes at ultra draw distance in under 100 unique draw calls (i.e., glDrawArrays/glDrawRangeElements). I think your friend was wrong. But to be honest, I've no clue what their client code is like. I've only analyzed the OpenGL calls using tools like apitrace. I'm trying to avoid using copyrighted materials in any form, be it machine code or graphical assets, and thus far I've been successful. Can't speak for OSRS or anything else. I've only researched the NXT client.
-
Today...
I'm only working on this a few hours a week, so probably a couple months. I have to write a mechanism to record draw calls from the client at run time, modify them, and replay them at the end of a frame. Not exactly sure how I'm going to go about it... Probably allocate a giant block of memory, store the draw calls in the block (simple pointer bump for allocations), parse them and emit new draw calls, and then simply reset the 'base' pointer. Should be fast enough to minimize the hit to the framerate.
-
Today...
Thank you :). I use apitrace to dump the OpenGL calls and then process them off-line for now. I have another tool to generate "snapshots" of high-level events like "draw_model", "draw_gui", "draw_item_icon", etc so I can quickly jump to specific frames without having to render the previous 2000+. Ain't no one got time for that. Don't render textures or terrain yet, but I can reconstruct the game world from apitrace files. For example: I plan on exposing GUI customization (colors, maybe different fonts) and some nifty rendering modes (voxel, cel-shaded, RSC). Perhaps things like a smart dungeoneering automapper (extracts doors, etc). If I were to release it I'd need ensure reproducible builds, and have some process where I sign builds, so I can swiftly shut down claims of my software being untrustworthy by allowing a third-party to review the code... Or maybe I'd open-source it, though I fear someone could create a bot using the tech.
-
Today...
I made 6 lbs of fondant. Pink, blue, and chocolate. Hmm. I probably also made a mistake. edit: Wow I got done debugging one of the the gnarliest bugs I've ever encountered. I'm testing some stuff to allow customization of RuneScape's rendering in the NXT client, and one of the prerequisites is building a high-level abstraction of the draw calls. Well, I was calculating the index buffer offset wrong--glDrawElements & family expect the offset to be in bytes, not elements. I was providing it in in elements, which resulted in some really edge-case performance issue. It appears the NVIDIA driver is really slow--we're talking 30+ seconds for a single model--when accessing index buffer elements without proper alignment. Who knew?
-
Today...
I saw my favorite Shakespeare play, "As You Like It," tonight at the Cape Fear Botanical Garden. Last time I saw a play was on a field trip in middle school. I thought it was very well done. I loved the portrayals of Touchstone and Jacques. There was an interesting twist--Celia/Aliena's actor was mute, so Touchstone interpreted the sign language. Was worried for a few on how to get home, but a family friend was able to help. I got up there fine via Lyft around 6:00 pm, but couldn't get an Uber, Lyft, or plain old taxi home (around 10:00 pm). I think it was too far from Fayetteville proper. A sheriff stayed with me while I waited (after the garden closed), I thought that was nice.
- Today...
-
Today...
I like the simplicity of C. It's a good language, just very basic. Does anyone have any good resources on maintaining weight? I'm still losing weight... Down to ~148 lbs from 150 lbs goal (in January), nearly all of it since March (when I started bicycling more). According to my log I've averaged eating ~2,550 calories/day since March 1. However, I've also averaged 45 minutes a day bicycling (~45/minutes day) at ~16 mph. So logically I'd need to eat about 150 more calories day (assuming 1 lb is about 3500 calories), but 2700 calories/day seems like... a lot. 1) I don't bicycle every day. I simply average 45 minutes/day, but it's more like 5-6 days of 60+ minutes. On the days I don't bicycle, I still eat ~2700 calories (or whatever it may be), right? I mean, that seems like it--since days I bicycle more I'd use more energy, and should make up for it on days I bicycle less (or not at all). 2) Is it healthy to eat more more or less different days (say, +/- 300 calories), so long as I average 2700 calories? 3) How do I handle bicycling less? If, for example, I decide to go down to 30 minutes/day average, how do I handle calculating my daily needs without risk of gaining weight?
-
Today...
Neopets, the memories. That's where I learned about HTML + CSS. A lot of it came from this site: http://www.lissaexplains.com/ (Can't believe it still exists!) Pretty much started programming with C because I got a book, C Primer Plus, back in Christmas 2003, around the age of 11. Read it front-to-back when moving from Florida to North Carolina (January 2004). Spent the following many months doing the examples. A year or so later I had a pretty good grasp on C, mostly from that book. I really owe that book book a lot. I still have it, but it's mostly fallen apart from use.
-
Today...
I made a debugger! I use behavior trees in my project, and they've been a pain in the rear to debug recently. Pretty much have been sprinkling them with debug statements, which grows unmanageable and even unhelpful when failure occurs sporadically. Looks like garbage but works wonderfully. I can also add conditional breakpoints from a file, like so: return { { type = 'condition', filename = "amerika/tasks/Test.moon", node = "ProgrammableCheck", check = function(e) return e.hit_type == 'after_process' and e.result == 'failure' end } }The worst part was making the GUI. I enjoyed the crap out of writing the debugger, but the GUI was so damn boring... Two things I hate: GUIs and web development. Funny story: I named it January because I cleaned our house from top-to-bottom in January 2016 (something like 200 cubic feet of stuff I tossed) and have kept it clean since. We had a flea problem, but constant vacuuming and a single application of flea killing insecticide got rid of them all. The debugging API is therefore called "Flea."
-
Today...
My first vehicle was a 1983 Nighthawk 650. It was down all last Summer, but I'm hoping to get it running again this year. It doesn't get great mileage (~40mpg), but it's a little better than a car, and way more fun. Of course, now it's not just me, and it's actually a little cheaper to take my car than to take my bike and my wife's.I had considered a scooter while I was in town, but now I live on a 55mph rural road where most traffic seems to run closer to 65mph. I have a 50cc scooter and only tried going on 55 mph rural roads once. I will not do that again. A Genuine Buddy 170i should be capable of 70 MPH aroundabouts, so I'd try it again if I manage to get one. They're affordable, but the nearest dealer is 100 miles away.
-
Today...
-- Henry David Thoreau, "Life Without Principle" Full-services gas attendants are metaphorically employed to throw stones over a wall. It is an antiquated thought that people must be employed. We are on the edge of a precipice where much labor in the first world--across sectors like transportation and retail--will be eliminated to automation (e.g., robots, AI). This perhaps extends to more skilled fields like law and medicine, where AI can provide speed and accuracy humans could never hope to match. We must re-evaluate what it means to provide value to society. We must look into providing for all citizens a basic quality of life, and jobs should simply be for personal growth--if you want something other than what is considered necessary--not a requirement to survive.
-
Today...
Speaking of gas, I've spent maybe $100 in gas in 3,000 miles on my scooter. If I had a car, I'd just get a motorcycle endorsement and buy a bit faster scooter (I long for a Genuine Buddy) and still spend little on gas. Car for poor weather, or when I need storage, scooter for everything else. Of course, it's easier to die! But that's just half the fun.
- Today...
-
Today...
The control panel will be a separate module with a simple web UI (HTML + CSS + JavaScript) front-end and the MoonScript/OpenResty back-end (serving the web UI, exposing a REST API). The module itself is a front-end to the project, which is a combination of C++ and MoonScript running across multiple machines and communicating via a nifty protocol I developed. I'm not using MoonScript on the "front-end" front-end (i.e., the simple web UI). The project is a bunch of loosely-coupled modules processing large amounts of data to makes decisions, which in turn generates more data, etc. My testing environment is unsuitable for an actual product. I literally have to run "bmashina -e foo.bar.baz" if I want to execute the task "foo.bar.baz," for example, and that's only manageable during testing on a single machine. If I want to supply arguments, I have to write a task that wraps "foo.bar.baz" and passes new arguments. I need a single point to handle all this much more efficiently, and that's what the control panel will be.
-
Today...
I have made incredible progress on my secret project. Over 700 hours logged since late September, plus another few hundred hours collecting data, researching and designing, and running expensive computations on my desktop (only a broad estimate). Today I finished the initial core functionality of a major feature. It passes all the unit tests, so tomorrow I'll integrate it into the module proper. I expect to launch it within the next few weeks. After the current module (2 weeks or so), I have to develop a web front-end (I'd say two weeks or so, I only need a small control panel of sorts). Even though I normally hate web development, I'm looking actually forward to that part because I'll be using MoonScript (a language that compiles to Lua) via OpenResty. The awesome part is I'll be able to use a custom IPC protocol that my project uses via OpenResty because they both are built on LuaJIT! So this means the logic for the control panel will be very simple; pretty much just a front-end for the management events sent over my protocol. I'm very excited. It's feels like when I was a kid on Christmas Eve. But I'm also worried about it failing... edit: Also here's a fresh loaf of the chocolate coffee bread: I drizzled a little chocolate glaze, too.
- Today...