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 - "custom image"
-
I absolutely HATE "web developers" who call you in to fix their FooBar'd mess, yet can't stop themselves from dictating what you should and shouldn't do, especially when they have no idea what they're doing.
So I get called in to a job improving the performance of a Magento site (and let's just say I have no love for Magento for a number of reasons) because this "developer" enabled Redis and expected everything to be lightning fast. Maybe he thought "Redis" was the name of a magical sorcerer living in the server. A master conjurer capable of weaving mystical time-altering spells to inexplicably improve the performance. Who knows?
This guy claims he spent "months" trying to figure out why the website couldn't load faster than 7 seconds at best, and his employer is demanding a resolution so he stops losing conversions. I usually try to avoid Magento because of all the headaches that come with it, but I figured "sure, why not?" I mean, he built the website less than a year ago, so how bad can it really be? Well...let's see how fast you all can facepalm:
1.) The website was built brand new on Magento 1.9.2.4...what? I mean, if this were built a few years back, that would be a different story, but building a fresh Magento website in 2017 in 1.x? I asked him why he did that...his answer absolutely floored me: "because PHP 5.5 was the best choice at the time for speed and performance..." What?!
2.) The ONLY optimization done on the website was Redis cache being enabled. No merged CSS/JS, no use of a CDN, no image optimization, no gzip, no expires rules. Just Redis...
3.) Now to say the website was poorly coded was an understatement. This wasn't the worst coding I've seen, but it was far from acceptable. There was no organization whatsoever. Templates and skin assets are being called from across 12 different locations on the server, making tracking down and finding a snippet to fix downright annoying.
But not only that, the home page itself had 83 custom database queries to load the products on the page. He said this was so he could load products from several different categories and custom tables to show on the page. I asked him why he didn't just call a few join queries, and he had no idea what I was talking about.
4.) Almost every image on the website was a .PNG file, 2000x2000 px and lossless. The home page alone was 22MB just from images.
There were several other issues, but those 4 should be enough to paint a good picture. The client wanted this all done in a week for less than $500. We laughed. But we agreed on the price only because of a long relationship and because they have some referrals they got us in the door with. But we told them it would get done on our time, not theirs. So I copied the website to our server as a test bed and got to work.
After numerous hours of bug fixes, recoding queries, disabling Redis and opting for higher innodb cache (more on that later), image optimization, js/css/html combining, render-unblocking and minification, lazyloading images tweaking Magento to work with PHP7, installing OpCache and setting up basic htaccess optimizations, we smash the loading time down to 1.2 seconds total, and most of that time was for external JavaScript plugins deemed "necessary". Time to First Byte went from a staggering 2.2 seconds to about 45ms. Needless to say, we kicked its ass.
So I show their developer the changes and he's stunned. He says he'll tell the hosting provider create a new server set up to migrate the optimized site over and cut over to, because taking the live website down for maintenance for even an hour or two in the middle of the night is "unacceptable".
So trying to be cool about it, I tell him I'd be happy to configure the server to the exact specifications needed. He says "we can't do that". I look at him confused. "What do you mean we 'can't'?" He tells me that even though this is a dedicated server, the provider doesn't allow any access other than a jailed shell account and cPanel access. What?! This is a company averaging 3 million+ per year in revenue. Why don't they have an IT manager overseeing everything? Apparently for them, they're too cheap for that, so they went with a "managed dedicated server", "managed" apparently meaning "you only get to use it like a shared host".
So after countless phone calls arguing with the hosting provider, they agree to make our changes. Then the client's developer starts getting nasty out of nowhere. He says my optimizations are not acceptable because I'm not using Redis cache, and now the client is threatening to walk away without paying us.
So I guess the overall message from this rant is not so much about the situation, but the developer and countless others like him that are clueless, but try to speak from a position of authority.
If we as developers don't stop challenging each other in a measuring contest and learn to let go when we need help, we can get a lot more done and prevent losing clients. </rant>14 -
So I told my wife one week ago: "Yeah, you should totally learn to code as well!"
Yesterday a package arrived, containing a really beautiful hardcover book bound in leather, with a gold foil image of a snake debossed into the cover, with the text "In the face of ambiguity -- Refuse the temptation to guess" on it.
Well, OK, that's weird.
My wife snatches it and says: "I had that custom made by a book binder". I flip through it. It contains the Python 3.9 language reference, and the PEP 8 styleguide.
While I usually dislike paper dev books because they become outdated over time, I'm perplexed by this one, because of how much effort and craftsmanship went in to it. I'm even a little jealous.
So, this morning I was putting dishes into the dishwasher, and she says: "Please let me do that". I ask: "Am I doing anything wrong?"
Wife responds: "Well, it's not necessarily wrong, I mean, it works, doesn't it? But your methods aren't very pythonic. Your conventions aren't elegant at all". I don't think I've heard anyone say the word "pythonic" to me in over a decade.
And just now my wife was looking over my shoulder as I was debugging some lower level Rust code filled with network buffers and hex literals, and she says: "Pffffff unbelievable, I thought you were a senior developer. That code is really bad, there are way too many abbreviated things. Readability counts! I bet if you used Python, your code would actually work!"
I think I might have released something really evil upon the world.29 -
!!pointless story
Bug report comes in from a coworker. "Cloudinary uploads aren't working. I can't sign up new customers."
"I'll look into it" I say.
I go to one of our sites, and lo! No Cloudinary image loads. Well that can't be good.
I check out mobile app -- our only customer-facing platform. None of the images load! Multiple "Oops!" snackbars from 500 errors on every screen / after every action.
"None of our Cloudinary images load, even in the mobile app," I report.
Nobody seems to notice, but they're probably busy.
I go to log into the Cloudinary site, and realize I don't have the credentials.
"What are the Cloudinary credentials, @ceo?" I ask.
I'm met with more silence. I use this opportunity to look through the logs, try different URLs/transforms directly. Oddly, everything seems fine except on our site.
I check Slack again, and see nothing's changed, so I set about trying to guess the credentials.
Let's see... the ceo is basically illiterate when it come to tech, so it's probably not his email. It's a startup, and custom emails for things cost money, and haven't been a thing here forever, so it's probably oen of the CTO's email aliases. he likes dots and full names so that narrows it down. Now for the password.... his are always crappy (so they're "easy to remember") and usually have the abbreviated company name in them. He also likes adding numbers, generally two-digit numbers, and has a thing for 7s and 9s. Mix in some caps, spaces, order...
Took me a few minutes, but I managed to figured it out.
"Nevermind, I guessed them." I reported.
After getting into Cloudinary, I couldn't find anything amiss. Everything looked great. No outage warnings, metrics looked fine, images all loaded. Ex-cto didn't revoke payment or cancel the account.
I checked our app; everything started loading -- albeit slowly.
I checked the aforementioned site; after a few minutes, everything loaded there, too.
Not sure what else to do, and with everything appearing to work, I said "Fixed!" and closed the issue.
About 20 minutes later, the original person said "thanks" -- never did hear anything from the ceo. I've heard him chatting away in the other room the entire time.
Regardless, good thing for crappy passwords, eh?15 -
Update on my previous rants: finally got it working! after spending 2 days compiling the kernel and trying to fix some issues, I just reinstalled my laptop with a fresh antergos image, installed the kernel and both the speaker and headphones work just fine! no distortion, no weird chrome video speed ups, just works - it was probably just something I had installed ages ago to make external usb sound work.
I also used this opportunity to apply the missing grub theme and found this: https://gnome-look.org/content/... it's perfect with almost any custom background too.
Why is this a rant? well some asshat at gnome decided to remove the "global dark theme" option from tweaks, so now thousands of themes are broken if you want the dark theme, since the developers now have to offer the dark theme seperately, well numix-frost has had this reported since the 7th may and no response since, the hack to make it work is to replace the gtk.css with the dark equivalent gtk-dark.css for now..31 -
Wrote a custom printer script in shell.
Went to test the script on some printers.
Neglected to check accuracy of script.
script is supposed to print jpeg.
it doesn't interpret it as an image,
but rather as raw binary in text...
^\<92>Q^H2Ei@0$iA+<89>dl_d<87><8f>Q
mfw each printer in the entire 5 story building
starts printing 500 pages of
RAW
BINARY3 -
This morning I received an image of my custom mouse pad. I almost cried tears of joy. Now for the long wait as it comes from China...18
-
Just now I realized that for some reason I can't mount SMB shares to E: and H: anymore.. why, you might ask? I have no idea. And troubleshooting Windows.. oh boy, if only it was as simple as it is on Linux!!
So, bimonthly reinstall I guess? Because long live good quality software that lasts. In a post-meritocracy age, I guess that software quality is a thing of the past. At least there's an option to reset now, so that I don't have to keep a USB stick around to store an installation image for this crap.
And yes Windows fanbois, I fucking know that you don't have this issue and that therefore it doesn't exist as far as you're concerned. Obviously it's user error and crappy hardware, like it always is.
And yes Linux fanbois, I know that I should install Linux on it. If it's that important to you, go ahead and install it! I'll give you network access to the machine and you can do whatever you want to make it run Linux. But you can take my word on this - I've tried everything I could (including every other distro, custom kernels, customized installer images, ..), and it doesn't want to boot any Linux distribution, no matter what. And no I'm not disposing of or selling this machine either.
Bottom line I guess is this: the OS is made for a user that's just got a C: drive, doesn't rely on stuff on network drives, has one display rather than 2 (proper HDMI monitor recognition? What's that?), and God forbid that they have more than 26 drives. I mean sure in the age of DOS and its predecessor CP/M, sure nobody would use more than 26 drives. Network shares weren't even a thing back then. And yes it's possible to do volume mounts, but it's unwieldy. So one monitor, 1 or 2 local drives, and let's make them just use Facebook a little bit and have them power off the machine every time they're done using it. Because keeping the machine stable for more than a few days? Why on Earth would you possibly want to do that?!!
Microsoft Windows. The OS built for average users but God forbid you depart from the standard road of average user usage. Do anything advanced, either you can't do it at all, you can do it but it's extremely unintuitive and good luck finding manuals for it, or you can do it but Windows will behave weirdly. Because why not!!!12 -
Oh fucking Huawei.
Fuck you.
Inventory:
- Honor 6x (BLN-L22C675)
- Has EMUI4.1 Marshmallow
- Cousin brother 'A' (has bricking XP!)
- Uncle 'K'
- Has Mac with Windows VM
Goal:
- Stock as LineageOS / AOSP
Procedure (fucking seriously):
- Find XDA link to root H6X
- Go to Huawei page and fill out form
- Receive and use bootloader code
- Find latest TWRP
- Flash latest TWRP
- TWRP not working? Bootloops
- XDA search "H6X boot to recovery"
- Find and try modded TWRP
- TWRP fails, no bootloop
- Find & flash TWRP 3.1.0
- Yay! TWRP works
- Find and download LineageOS and SuperSU
- Flash via TWRP
- Yay! Success.
- Attempt boot
- Boot fails. No idea why
- Go back to TWRP
- TWRP gives shitload of errors
"cannot mount /data, storage etc."
- Feel fucked up
- Notice that userdata partition exists,
but FSTAB doesn't take
- Remembers SuperSU modded boot
image and FSTABS!
- Fuck SuperSU
- Attempt to mod boot image
- Doesn't work (modded successfully
but no change)
- Discover Huawei DLOAD
Installer for "UPDATE.APP" OTAs
Note: Each full OTA is 2+ GB zipped
- Find, download, fail on 4+ OTAs
- Discover "UPDATE.APP Extractor"
Runs on Windows
Note: UPDATE.APP custom format
Different per H6X model
- Uses 'K''s VM to test
- My H6X model does not have
a predefined format
- Process to get format requires
TWRP, which is not working
- FAIL HERE
- Discover "Firmware Finder"
Windows app to find Huawei
firmwares
- Tries 'K''s VM
- Fails with 1 OTA
- Downloads another firmware ZIP
- Unzips and tries to use OTA
- Works?!
- Boots successfully?!
- Seems to have EMUI 5.0 Nougat
- Downloads, flashes TWRP
- TWRP not working AGAIN?
- Go back to XDA page
- Find that TWRP on EMUI 5 - NO
- Find rollbacks for EMUI5 -> EMUI4
- Test, fail 2-4 times (Massive OTAs)
- DLOAD accepts this one?!!!
- I HAVE ORIG AGAIN!!!
- Re-unlock and reflash TWRP
- Realise that ROMs aren't working on
EMUI 4.1; Find TWRPs for EMUI5
- Find and fail with 2-3 OTAs
Note: Had removed old OTAs for
space on Chromebook (32GB)
- In anger, flash one with TWRP
instead of DLOAD (which checks
compatability)
- Works! Same wasn't working with
DLOAD
- Find and flash a custom TWRP
as old one still exists (not wiped in
flash)
- Try flashing LineageOS
- LineageOS stuck in boot
- Try flashing AOSP
- Same
- Try flashing Resurruction Remix
- Same
- Realise that need stock EMUI5
vendor
- Realise that the firmware I installed
wasn't for my device so not working
- FUCK NO MORE LARGE DLs
- Try another custom TWRP
- Begin getting '/cust mounting' errs
- Try reflashing EMUI5 with TWRP
- Doesn't work
- Try DLOADing EMUI5
- Like before, incompatability
- DLOAD EMUI4
- Reunlock and reflash TWRP
- WRITE THIS AS A BREAK
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARRRRRRRRRRRRRRRRRRRRRRRRGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHH7 -
Uggg..... I'm trying to encode a binary file in Python which may be an image or may be an executable, and then decode it back into a file (I plan on editing it in the middle, but baby steps for now..) but nothing is working!!
My plan is to:
Open binary file.
Decode as base64, or something else that could easily handle binary.
Convert byte data to string (for editory perpousos - I won't be editing bytes, I'll be doing custom encoding but that's irrelevant for this test)
Convert back to a byte string/array (with .encode(), probably)
Write to file.
I do this, yet the output has been altered... Though I haven't touched anything..
It's so enfuriating.. x.x18 -
Today I'm ranting about Windows. No, it's not "WiNdOwS sUcKs!", it's more like "But why!?"
See, I'm an IT guy for the year, and in my office they use Windows. Now once upon a time, they had Active Directory and all that (well, actually, they still do) but then they got some new computers running Windows 10, and for some reason they just couldn't join them to the domain!
Why can't they, you ask? Well, Microsoft only allows Win 10 Pro and up to join a Domain, and since these computers came with Win 10 Home, that wasn't possible.
Long story short, I now have some 30 computers that need to be upgraded (possibly from 7) to Win 10 Pro, and joined to the Domain.
Thing is, I would like to do that all in one go, so I look into how to automatically setup Windows.
"Ah! Got it, provisioning packages!"
Lest you think they work let me spare you now: they don't. Just like real computers where everything is different, provisioning packages failed to work twice, and after wasting about a week trying to make it work, I gave up.
So now I realized that I need to try a different method, a custom windows image. Issue is, I've got no clue how to make one. See, microsoft decided to go all in on the provisioning packages thing (they do have advantages in certain use cases), and seemed to decide that making custom images was no longer necessary, so they documentation was nearly impossible to find.
But after a lot of searching, I figured out how to do it:
1. Install Windows in a VM.
2. Put it in audit mode.
3. Install your stuff.
4. Create an unattend.xml file with certain customizations.
5. Put the unattend in Windows\System32\Sysprep
6. Generalize the image.
7. Boot WinPE.
8. Open the console.
9. Capture the image.
10. Wait an hour or two.
11. Done!
I'm over simplifying, it was a huge PITA, and yet there were still issues.
Maybe another time I'll talk about those.22 -
About 3 years ago, my girlfriend had this laptop that she got from her University. She had to give the laptop back to get reset, but didn't want to lose all of her data on it, and a backup would be around 750GB.
So I suggested that I would backup the laptop (was thinking to just dd an image and go from there). So I plugged in my mobile USB and external hard drive, and started the imaging process. Given the amount of data and setup, the process should have taken about 5hours. So we left it there for 5h.
Please be mindful that at this stage in my life I knew very little about boot processes, oses, and hardware.
5h after. The laptop screen is black and it ain't responsive. Not sure what happened, the dd process was completed, but the laptop refused to boot into windows. Tried a number of boot tools, and spent a crazy night hacking at the machine. But the university had some of sort of fail safe to not allow anyone to boot into windows if someone opened bios without entering a password. Whatever this was, I spent over 12h trying to either open mount the windows partition with a Ubuntu usb or mount the corrupt dd image on my laptop.
Long story short, after throwing at it a number of fixes. I was able to mount the image, copy out all of her personal data, and reinstall a new version of Windows on her laptop. The university didnt understand why the laptop was already reset. She still mentions this to me anytime I want to take a "custom approach" to software lol2 -
Whelp. I started making a very simple website with a single-page design, which I intended to use for managing my own personal knowledge on a particular subject matter, with some basic categorization features and a simple rich text editor for entering data. Partly as an exercise in web development, and partly due to not being happy with existing options out there. All was going well...
...and then feature creep happened. Now I have implemented support for multiple users with different access levels; user profiles; encrypted login system (and encrypted cookies that contain no sensitive data lol) and session handling according to (perceived) best practices; secure password recovery; user-management interface for admins; public, private and group-based sections with multiple categories and posts in each category that can be sorted by sort order value or drag and drop; custom user-created groups where they can give other users access to their sections; notifications; context menus for everything; post & user flagging system, moderation queue and support system; post revisions with comparison between different revisions; support for mobile devices and touch/swipe gestures to open/close menus or navigate between posts; easily extendible css themes with two different dark themes and one ugly as heck light theme; lazy loading of images in posts that won't load until you actually open them; auto-saving of posts in case of browser crash or accidental navigation away from page; plus various other small stuff like syntax highlighting for code, internal post linking, favouriting of posts, free-text filter, no-javascript mode, invitation system, secure (yeah right) image uploading, post-locking...
On my TODO-list: Comment and/or upvote system, spoiler tag, GDPR compliance (if I ever launch it haha), data-limits, a simple user action log for admins/moderators, overall improved security measures, refactor various controllers, clean up the code...
It STILL uses a single-page design, and the amount of feature requests (and bugs) added to my Trello board increases exponentially with every passing week. No other living person has seen the website yet, and at the pace I'm going, humanity will have gone through at least one major extinction event before I consider it "done" enough to show anyone.
help4 -
TIL one of the first few issues on the ISS was that they had a laptop that wouldn't boot. The (pirated, some say) copy of Norton Ghost they had on a floppy was also suffering from bad sectors, so it wouldn't boot. These guys had an entire floppy image beamed up from base to replace a copy of Norton Ghost. (Some say this was a pirated copy of Norton Ghost, as none of the floppies had the official label, instead all had either hand-written or custom-made labels.)
Then they had codepage issues.1 -
Custom image format update for anyone who is interested…
First blocks of data have been written and the colour table has been compressed from ~170KB to 30 bytes…
Now to decide on my preferred method for pixel indexing, RLE or no RLE… and how should one do the RLE…20 -
Fucking outlook, can't even render simple html.
Our company wanted a custom newsletter to send to our clients. Before vacation I dropped a few guidelines to our designer, how our newsletter should look. 640px width, common fonts for everyone to render properly, stuff like that. To my fucking surprise they managed to create the most designed newsletter I've seen. Custom font, custom letter sizings, negative row gaps, pixel to pixel image locations. After writing custom html for it and managing to get all perfectly in 3 hours, to my surprise I found out, that outlook is broken. FML
Now everything must be redesigned and simplified, just because I was naive enough to think, that all mail clients manage to render simple HTML...11 -
Don't you just love customers?
It al began when they showed us the flyers they were printing for their new products, an some one at our company who doesn't work here anymore had the brilliant idea of copying it to their webshop, as a fucking gimmick... Ooohh man the customer didn't seem to understand it was only visually
They wanted the 3d layering effect to be dynamic, so each product would have its own with custom colours
So it was made
A few weeks later they didn't want the informational text, they wanted links to each product that the layer uses
Sounded like logical so it was made
Again some time later, they noticed that the layers were not textured, but just plain
I argued against it because it would add unnecessary loading time for some 300 by 400 px element but they insisted
So they got what they wanted
A few days later they said that the textures were of low quality, and that we had to create ones with higher quality
Again our management said, yes
We made ~ twice the size of the element in image pixels to create a higher definition image
Then the customer wanted that the layers should change based on some selection menu above it
(At this point we realized that it would no longer be just a fun little gimmick)
So we tried to refactor/rebuild it to remove most if not all the hacks we did just to make the customer happy, that took too long for them (the customer) so we had to revert back to the hacked together version because otherwise we would not be done on time (commanded by management)
But again, we ... I say 'we' as in the company but realistically I've been the only one who has worked on the fucking abomination
But I digress...
A few stupid requests later, some layer images are almost fully transparent PNG images that are almost 1mb in Filesize each (some products have 5 or even more layers) and the god damn thing now has to account for optional layers...
I AM FUCKING SPENT... I'VE JUST CAME BACK FROM VACATION BUT I ALREADY NEED IT AGAIN... FUCKING WORKING 60 HOURS A WEEK JUST TO KEEP ONE CUSTOMER HAPPY WHILE OTHER PROJECTS BREATH ON MY NECK1 -
Custom image format update:
Currently converts a 12KB PNG image into 172KB BIN file, now to compress the fuck out of it!
Update: Fuck should I use a buffer or simple binary data for file structure manipulation....15 -
Spent my long weekend building a custom LAN image hosting thing on a Raspberry Pi because I was sick of emailing myself photos
I need to go outside more6 -
TLDR; sometimes I want to murder my friends.
Pratten: Hey Ethan can you image the robotics programming laptops?
Me: Yeah sure no problem. Let me just make a custom windows iso with all the software we need so I don't have to deal with installers after the fact.
Pratten: Ok great!
Me: *makes custom ISO compiles it and puts it on usbs*
Pratten: hey could you also add drivers station?
Me: uggggg... *Recreates iso and preps bootable flash drives*
Me: IS THERE ANYTHING ELSE YOU NEED?
Pratten: nope that should do it ;;;)
Me: ok great. *flashes laptops and runs install. (they're old so it takes a while)
Pratten: ok good job thanks. Did you install *NOT PREVIOUSLY MENTIONED TOOL SUITE 1* or *NOT PREVIOUSLY MENTIONED NEWER TOLL CHAIN THAT ONLY HE KNOWS HOW TO GET* ? If not I'll have you install those later.
Me: *suicides*8 -
"Let's just add a logging system to our dependency"
No. You fucking idiot. DON'T INCLUDE A CUSTOM LOGGING SYSTEM INTO A DEPENDENCY FOR IMAGE MANIPULATION. I DON'T WANT YOUR FUCKING BULLSHIT LOGGING WHEN I'M FUCKING HANDLING IT MYSELF FOR MY ALREADY EXISTING SOFTWARE!! HOW DUMB CAN YOU STUPID MOTHERFUCKER BE TO TELL ME TO JUST "IGNORE" THE MESSAGES IN THE CONSOLE WHEN I'M BUILDING A FUCKING CLI BASED SOFTWARE??!!1 -
v0.0005a (alpha)
- class support added to lua thanks to yonaba.
- rkUIs class created
- new panel class
- added drawing code for panel
- fixed bug where some sides of the UI's border were failing to drawing (line rendering quark)
v0.0014a (alpha) 11.30.2023 (~2 hours)
- successfully retrieving basic data from save folder, load text into lua from files
- added 'props' property to Entity class
- added a props table to control what gets serialized and what doesn't
- added a save() base method for instances (has to be overridden to be useful beyond the basics)
- moved the lume.serialize() call into the :save() method on the base entity class itself
- serialized and successfully saved an entities property table.
- fixed deserializion bugs involving wrong indexes (savedata[1] not savedata[2])
- moved deserialization from temp code, into line loading loop itself (assuming each item is on one line)
- deser'd test data, and init()'d new player Entity using the freshly-loaded data, and displayed the entity sprite
All in all not a bad session. Understanding filing handling and how to interact with the directory system was the biggest hurdle I was worried about for building my tools.
Next steps will be defining some basic UI elements (with overridable draw code), and then loading and initializing the UI from lua or json.
New projects can be set as subfolders folders in appdata, using 'Setidentity("appname/projectname") to keep things clean.
I'm not even dreading writing basic syntax highlighting!
Idea is to dogfood the whole process. UI is in-engine rendered just like you might see with godot, unity, or gamemaker, that way I have maximum flexibility to style it the way I want. I'm familiar enough with constructing from polygons, on top of stenciling, on top of nine-slicing, on top of existing tweening and special effects, that I can achieve exactly what I want.
Idea is to build a really well managed asset pipeline. Stencyl, as 'crappy' as it appeared, and 'for education' was a master class in how to do things the correct way, it was just horribly bloated while doing it.
Logical tilesets that you import, can rearrange through drag-n-drop, assign custom tile shapes to, physics materials, collisions groups, name, add tag data to, all in one editor? Yes please.
Every other 2D editor is basic-bitch, has you importing images, and at most generates different scales and does the slicing for you.
Code editor? Everything behavior was in a component, with custom fields. All your code goes into a list of events, which you can toggle on and off with a proper toggle button, so you can explicitly experiment, instead of commenting shit out (yes git is better, but we're talking solo amateurs here, they're not gonna be using git out the gate unless they already know what they're doing).
Components all have an image assignable to identify them, along with a description field, and they're arranged in a 2d grid for easy browsing, copying, modifying.
The physics shape editor, the animation editor, the map editor, all of it was so bare bones and yet had things others didn't.
I want that, except without the historic ties to flash, without the overhead of java, and with sexier fucking in-engine rendering of the UI and support for modding and in-engine custom tools.
Not really doing it for anyone except myself, and doubt I'll get very far, but since I dropped looking for easy solutions, I've just been powering through all the areas I don't understand and doing the work.
I rediscovered my love of programming after 3-4 years of learning to hate it, and things are looking up.2 -
I just fucked up real bad:
My phone was giving some error about not being able to install an update. Fair enough, i think to myself, so i try rebooting. Still nothing...
I then remember that i at some point OEM unlocked it for some testing, so i start up adb and see if i can connect during the update process. I can't. This is bad: I can't get into my home environment, nor can i connect with adb
Then i try booting into recovery, but instead of booting to ACTUAL recovery, it boots to some custom made "E-Recovery" made by huawei (my phone is a huawei p9 lite), which only gives me the option to download the update, which crashes, and no way of resetting. However, from here, i am finally able to connect to my internal storage via hisuite to make a backup
Next up: Bootloader
So i next load up the unlocked bootloader to try and manually flash the update. That works great, but it still wont boot normally. So i figure: it must think my device is in fact a different device. At this point i'm pretty fucked: Even though i have my data backed up, i can't manually download the update from huawei's site because i don't have the right keys, and i can't download an OTA because their site sucks and half of the downloads don't work, including the one i need. So now i'm stuck here with a bricked phone because EMUI doesn't know how to install an update.
I then did the stupidest thing i have done to date: i wanted to flash a custom recovery image over the "E-Recovery" in order to do some troubleshooting, but instead of writing
"fastboot (mydeviceid) flash recovery recovery.img"
I wrote
"fastboot (mydeviceid) flash boot recovery.img"
Meaning i flashed my BOOT partition with a custom recovery image that turned out to not be able to run. Great! Now i've totally fucked my boot sequence
I can't call their support line either, because as soon as they realize i've tried to restore it myself, and therefor had my OEM unlocked, they basically just hang up.7 -
I have been spending all day optimizing a wordpess site for pagespeed, looking into how can I optimize the custom scripts which block rendering and I was learning some new things, it was hard but I was making progress. Then comes the senior engineer who installs a plugin and pagespeed went from 60 to 90 on mobile, I was pretty shocked. Then it hit me. IT DELAYS THE LOADING OF EVERY SCRIPT AND IMAGE UNTIL USER INPUT TRICKING THE SCORING SYSTEM. U GET A WHITE SCREEN IF YOU DON'T DO ANYTHING. I told him it's not really faster this way, and he agreed it is not "ethical" but the score is good.
Am I still an idiot naive kid? There is a line between scamming people and quality work, but it keeps getting more blurry.5 -
Just spent a lot of time on custom building an Ubuntu docker container, and forgot to save the image before I accidentally reset the whole thing to blank1
-
Hey guys, could I ask you to upvote my question on stackoverflow or take a look and help me solve this if you can, I'm stuck with this problem for one week : https://stackoverflow.com/questions...
I would really appreciate it7 -
My work product: Or why I learned to get twitchy around Java...
I maintain a Java based test system, that tests a raster image processor. The client is a Java swing project that contains CORBA bindings to the internal API of the raster image processor. It also has custom written UI elements and duplicated functionality that became available in later versions of Java, but because some of the third party tools we use don't work with later versions of Java for some reason, it's not possible to upgrade Java to gain things as simple as recursive directory deletion, yes the version of Java we have to use does not support something as simple as that and custom code had to be written to support it.
Because of the requirement to build the API bindings along with the client the whole application must be built with the raster image processor build chain, which is a heavily customised jam build system. So an ant task calls out to execute a jam task and jam does about 90% of the heavy lifting.
In addition to the Java code there's code for interpreting PostScript files, as these can be used to alter the behaviour of the raster image processor during testing.
As if that weren't enough, there's a beanshell interface to allow users to script the test system, but none of the users know Java well enough to feel confident writing interpreted Java scripts (and that's too close to JavaScript for my comfort). I once tried swapping this out for the Rhino JavaScript interpreter and got all the verbal support in the world but no developer time to design an API that'd work for all the departments.
The server isn't much better though. It's a tomcat based application that was written by someone who had never built a tomcat application before, or any web application for that matter and uses raw SQL strings instead of an orm, it doesn't use MVC in any way, and insane amount of functionality is dumped into the jsp files.
It too interacts with a raster image processor to create difference masks of the output, running PostScript as needed. It spawns off multiple threads and can spend days processing hundreds of gigabytes of image output (depending on the size of the tests).
We're stuck on Tomcat seven because we can't upgrade beyond Java 6, which brings a whole manner of security issues, but that eager little Java updated will break the tool chain if it gets its way.
Between these two components we have the Java RMI server (sometimes) working to help generate image data on the client side before all images are pulled across a UNC network path onto the server that processes test jobs (in PDF format), by reading into the xref table of said PDF, finding the embedded image data (for our server consumed test files are just flate encoded TIFF files wrapped around just enough PDF to make them valid) and uses a tool to create a difference mask of two images.
This tool is very error prone, it can't difference images of different sizes, colour spaces, orientations or pixel depths, but it's the best we have.
The tool is installed in both the client and server if the client can generate images it'll query from the server which ones it needs to and if it can't the server will use the tool itself.
Our shells have custom profiles for linking to a whole manner of third party tools and libraries, including a link to visual studio 2005 (more indirectly related build dependencies), the whole profile has to ensure that absolutely no operating system pollution gets into the shell, most of our apps are installed in our home directories and we have to ensure our paths are correct for every single application we add.
And... Fucking and!
Most of the tools are stored as source bundles in a version control system... Not got or mercurial, not perforce or svn, not even CVS... They use a custom built version control system that is built on top of RCS, it keeps a central database of locked files (using soft and hard locks along with write protecting the files in the file system) to ensure users can't get merge conflicts by preventing other users from writing to the files at all.
Branching is heavy weight and can take the best part of a day to create a new branch and populate the history.
Gathering the tools alone to build the Dev environment to build my project takes the best part of a week.
What should be a joy come hardware refresh year becomes a curse ("Well fuck, now I loose a week spending it setting up the Dev environment on ANOTHER machine").
Needless to say, I enjoy NOT working with Java. A lot of this isn't Javas fault, but there's a lot of things that Java (specifically the Java 6 version we're stuck on) does not make easy.
This is why I prefer to build my web apps in python or node, hell, I'd even take Lua... Just... Compiling web pages into executable Java classes, why? I mean I understand the implementation of how this happens, but why did my predecessor have to choose this? Why?2 -
List of things one of my Python projects needs:
- cross-platform IMA/VFD/VHD/VHDX/qcow/VMDK/IMG/DSK/others image read/extract support that doesn't need admin/root privs (so no, can't use dd or mount)
- custom DB format (for speedups when indexing files and retrieving info based on hash) and converter from previous DB format
- GUI or actually good CLI
- massive speedups
kill me now4 -
I'm worried that this question will probably get downvoted on SO and I cannot post from my account as well, so here it is..
How to play youtube embedded video in mobile over a custom button / svg / image ?
One idea I'm currently working on is to trigger &autoplay=1 onclick but it is only appending that parameter to existing URL?
Please let me know if you have any thoughts, and I'm doing this for only mobile devices only
P.S I cannot use YouTube API11 -
It started when i was about 10 old.
My uncle showed me how to display something in dos-prompt using the echo command in a custom batch-file.
A few commands later, i was able to "program" a flip-book of an ascii ski-driver. Each ascii picture was separated by pressing any key and cls ^^
Aaaaah. Sweet childhood memories!
Later on i used a programming-language for beginners in windows.
This language gave you control of a triangle called "turtle".
My first high-level programming language was Delphi.
Since i had no idea of databases, i created a pseudo database of magic the gathering play-cards. Each card had it's very own windows formular filled up completely with an uncompressed image object displaying the chosen card modally. *sigh*
I scanned each card by using a feed scanner.
Finally, my application consisted of 200 cardimages and forced my PC to swap the required memory from my harddisk.
Boy o boy. I was such a noob! ^^
Over the years i discovered and felt in love with a lot of languages (jsp, java (script), c#, php, ...) and concepts (mvvm, mvc, clean-architecture, tdd, ...)! ;) -
Drupal I'm seriously about to lose my shit.
I want to show one fucking image and one fucking title in my own custom markup.
Feels like I'm trying to create and launch a fucking nuclear weapon.3 -
My worst mistake (though it did help catch a bug which was cool) was not checking that my merge was done properly (we were using a terrible CM tool at the time and you had to merge manually). I had checked in some code that would, among other things, scale an image to a custom window space. I had missed one line of the code I had written to properly calculate the image bounds on window resize. As a result, whenever you would scale the window, the image dimensions would change erratically and screw up other behaviors based on image size. It shipped that way.
-
It's not a real dev regret but it's related to it: Not being able to fix a price or a value for my skills.
It's a real regret.
Just coming out of college I have tried my hand at freelancing at found it real hard to fix a value for what work was offered because I just found it weird to fix a monetary value on something that I've done for free for my entire life ( at school and uni I mean).
To make it worse my first experience was with a grad student who wanted me to complete her project.
Now being from India, I know that we have a stereotype of doing work for a lower price.
But this girl took the cake.
She wanted me to create a custom Image classifier using tensorflow.
It had to train with live images and then detect those images in the live video feed.
It's quite simple but still training the basic network(which would be used to just detect features) would take a decent amount of time and effort.
No pre trained models was also a prerequisite for her.
After hearing all her requirements I asked her what price she was willing to pay.
She said 50$ lump sum.
Being really confused as to what to say to that I just stopped replying.
To this day I have no clue what would be a reasonable price to quote a client like that.
After that I just continued dealing with people I knew personally and am currently doing that as an internship. But entering the proper freelancing system again has become a kinda weird thing in my head now, since I have no clue as to what price to put on my skills.
Is there any advice that any of the more experienced people would give?
Also consider the fact that I'm relatively fresh out of college and have no corporate experience.
Even if you've read my rant and have no advice it's okay. I guess this is a path of self realization after all.3 -
Image aspect ratios are standards. Please don't invent one if you can't commit to the number, the feature, and the app for 5 years.
I don't want to design a custom header image for my Google Doc just so Google can remove the feature in a few months. A company that plays as fast and loose with features as Google should just have a dynamic layout and make room for whatever image I have on hand.1 -
I way under-quoted this custom CMS.
I thought ContentBuilder.js was going to be a better plugin. Documentation is lacking, I've run into a couple bugs, and the thing looks like it was built 10 years ago with iframes for image uploads...Ugh.
On top of that, I didn't realize how much work certain things would be like the drag and drop menu builder. Yea....it took 4 different plugins to find one that works well with nested items.
I'd say I'm 60% through and need to be 90%. I'll probably start cutting corners unfortunately :(2 -
Was working today when all of a sudden the background on my laptop and monitor changed from its usual mostly black image to bright white. Tried to set the desktop background, but it had no effect. Honestly thought I broke my computer for a few minutes.
Turns out one of the ubersichts (custom desktop widgets) was attempting to curl a page that was "Down for server upgrades". Definitely one of the weirder computer issues I've had. -
I was tasked with reviving this mobile app purchased off the shelf. Initially, I was impressed with what I was seeing while perusing the codebase. I'm used to editing laravel projects written by handpicked amateurs. So this felt like a breath of fresh air. Coupled with the fact that I'd recently enquired on this very platform whether anyone has chanced upon an impressive code. All is going well, until
I start finding the multi layers of abstraction and indirection cryptic and obfuscatory; and that is coming from an idealist like me who advocates for "clean" patterns such as event emission. I wonder whether it would have helped if the emission or events were typed for easy listener tracking, instead of a black hole like vm.notifyListeners() (DOESN'T EVEN HAVE AN EVENT NAME!)
With time, I become disgusted by the tons of custom elements with so many parents
My take on production level user of the view model pattern: amazing in theory
One of the architectural decisions made on this project that had me foaming in the mouth, pulling my hair and cursing out the author's generations, past, present and future: can you believe these guys are APPENDING IMAGE DOMAINS TO THE RESOURCE? Ie the domain names are tightly coupled to the images and dictated by the api, instead of the client
If this isn't bad enough, the field names of returned entities/models don't exist on the database, of course because the stupid laravel framework abets this sort of madness by combining eloquent "scopes, attributes, and appends". A trifecta of horrors.
I eventual scaled through the horrors, but not without losing my admiration for the team behind it. App has returned to the shelves, because my company lost patience with my resuscitating it. They have the regular api authentication in place, but that's not good enough. They just had to integrate firebase as well, just because. Meanwhile, this isn't documented anywhere. I stumbled into it during my scuffle with app setup, gradle ish. Eventually got banned by firebase for "sending unusual requests". My company's last straw -
So I'm trying to see if Python adds language features that are easier to use in Linux for quick purposes like converting a raster to sectional image files and compressing them.
Trying to make this multi platform.
So the question then becomes, since I have a testing build location so as not to fuck up my host system, how do I point PyCharm to the python bindings AND the installed lib in its custom location ?
See this kind of setup information is something that would make getting started with things like this much easier and quicker.
Can't tell me there isn't a purpose for this. This seems like a reasonable use-case.9 -
Cereal is one of the most popular breakfast foods worldwide. According to the National Cereal Day website, Americans consume approximately 100 billion bowls of cereal every year. With such a high demand for cereal, manufacturers are constantly looking for ways to make their products stand out. Custom cereal boxes are an excellent way to differentiate your product from competitors. In this article, we will explore the benefits of custom cereal boxes.
Enhanced Brand Recognition
Custom cereal boxes allow your brand to stand out on the shelves. With unique packaging, your product is more likely to catch the attention of potential customers. When a consumer sees a distinctive box design, it becomes easier for them to remember your brand, making it more likely they'll purchase your product in the future. Custom packaging can also reinforce your brand's messaging and values. Whether you want to promote a new product line, a charitable initiative, or just your brand's logo, custom cereal boxes provide an excellent opportunity to showcase your brand in a visually appealing way.
Increased Product Appeal
Custom cereal boxes can make your product more appealing to consumers. Unique designs, vibrant colors, and creative patterns can create an emotional connection with your target audience. Your custom cereal boxes can be used to convey the quality of your product, the nutritional benefits, and the flavor. Consumers will be more likely to pick up your product and try it out if they are attracted to the packaging.
Competitive Advantage
The cereal market is highly competitive, and custom cereal boxes can give your brand an edge over competitors. With unique packaging, your product will stand out among the other cereal boxes on the shelves. Custom cereal boxes can also be used to create a sense of exclusivity, making your product more desirable to consumers. Consumers are more likely to purchase a product that appears to be of higher quality, and custom cereal boxes can help create that perception.
Improved Customer Experience
Custom cereal boxes can improve the customer experience by creating a memorable and enjoyable shopping experience. Unique packaging can create a sense of excitement and anticipation for the consumer. Additionally, custom cereal boxes can provide useful information to the consumer, such as nutritional facts, ingredients, and serving suggestions. Consumers are more likely to have a positive experience with your brand if they feel informed and engaged.
Eco-Friendly Options
Custom cereal boxes can be designed with eco-friendly materials, making them an excellent choice for environmentally conscious consumers. With the rise of eco-friendly products, custom cereal boxes can help your brand appeal to consumers who are looking to make more sustainable choices. Additionally, eco-friendly packaging can reduce waste and promote a positive image for your brand.
In conclusion, custom cereal boxes offer many benefits to cereal manufacturers. From enhanced brand recognition to improved customer experiences, custom packaging can help your brand stand out in a crowded market. Whether you're looking to promote a new product line or create a sense of exclusivity, custom cereal boxes are an excellent tool to help you achieve your marketing goals.
If you are also looking to increase your sales, get custom cereal boxes from OXO Packaging. -
Choosing the Right Boxes of Cereals is Paramount for your Business Success!
There are thousands of different cereals to choose from when it comes to making your own cereal boxes. If you're the type of person who enjoys eating cereals like cereal bars for breakfast, you will want to start your cereal packaging design process as soon as possible. Many people enjoy cereal bars for breakfast or snack foods, but for people who prefer whole cereals for their morning meal, it's important to make your cereal box unique and interesting.
When you're cereal box design is unique and interesting, consumers will notice your attention to detail and know that you care about the quality of your products. Here are five different kinds of designs that are fun to look at and show a little creativity when it comes to making your own cereal boxes.
Customized Cereal Boxes If you're interested in creating unique cereal boxes, the first step to making your own is to choose which design type you'd like to use. Corn cereal boxes with different images on them are some of the most popular designs on the market today.
Making your Own Cereal Box isn’t Difficult
To really get the idea across, consider having a cereal image on one side of the box and a common face on the other. This is the best option for making customized cereal boxes because it uses your most prominent feature to get attention.
Fun Boxes and Bags With cereals being so popular these days, companies have jumped on the bandwagon to create fun cereal packaging for kids. In fact, cereal bags and boxes have become some of the most popular gifts for children. There are fun ways to personalize the bags and boxes to make them even more special.
There are cute characters for babies and colorful ones for older children. Personalizing your cereal boxes with a child's name, a favorite character, or a cartoon character is a great way to encourage children to eat their cereals on a daily basis.
High-quality Boxes of Cereals The highest quality boxes of cereal available are from across the world. Cereal boxes are usually made of rice paper, a thick but flexible material. They're covered in cellophane to prevent moisture from leaking out and are sealed using a special chemical coating. It's no surprise that rice paper boxes are some of the most expensive cereal brands available on the market.
Printing Your Own Labels Most kitchen stores will sell generic printing labels that are used for almost every product. Why not add some personal touches to your own labels? You can purchase blank labels in any printing shop and print your own graphics or text.
Or you can also purchase pre-printed custom labels that come with everything you need to be printed on them. Either way, custom printed boxes, and packaging boxes are an excellent idea for any business.
Custom Cereal Packaging Is Trendy!
Customized packaging When it comes to making custom boxes of cereal, there are so many different types of customization options available to you. Cereal boxes can be customized with your company logo or company slogan or even just a photo of your company headquarters. You can have custom boxes printed with many different types of material. Glass, metal, leather, and even paper are all popular options for customization.
With custom cereal boxes, you can choose the size, shape, and color of the box that you want. You can have it personalized with your own company name, telephone number and even have a short message printed on the box.
There are so many different design options to choose from. Depending on your budget and the time frame for your order, you may want to order your boxes from a custom box manufacturer like Packaging Bee to get a more economical quote and fast turnaround.
Conclusion
All of these options will depend on how quickly you need your products for your business, how much are your costs, and what type of boxes you are using for your packaging. Cereal packaging is an essential aspect of any business, and custom boxes of cereal are a great way to make your products stand out from the competition.
Cereal packaging can help keep your products fresh, and you will never be able to catch somebody off guard if they opened your product and saw it sitting on the shelf. Whether you are shipping boxes of cereal internationally or making them at home, consider making them according to the requirement of the customer.
Resource: https://packagingbee.com/custom-cer...3 -
TL;DR
I'm looking for a good cloud based python IDE. Let's hear suggestions...
Full Story
My employer provides me with a MacBook to use at work, however they use a custom OS X image that has whatever security configuration they decided was essential. Something about the configuration prevents me from running third party Python packages.
During those times that I'm "waiting for work things to compile", I'd love to tinker with a little Python project I'm messing with. Does anyone have any suggestions on cloud based IDEs for Python?
Yes I've Googled it, plenty of results. But anyone have suggestions based on their own user experience?
Thanks ahead of time!6 -
Is antix Linux running some kind of custom build of grub?
It doesn't do a search and I see no reference to uuid in it's config so I'm kind of wandering how it's finding the image ?