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 - "heaps"
-
I have this little hobby project going on for a while now, and I thought it's worth sharing. Now at first blush this might seem like just another screenshot with neofetch.. but this thing has quite the story to tell. This laptop is no less than 17 years old.
So, a Compaq nx7010, a business laptop from 2004. It has had plenty of software and hardware mods alike. Let's start with the software.
It's running run-off-the-mill Debian 9, with a custom kernel. The reason why it's running that version of Debian is because of bugs in the network driver (ipw2200) in Debian 10, causing it to disconnect after a day or so. Less of an issue in Debian 9, and seemingly fixed by upgrading the kernel to a custom one. And the kernel is actually one of the things where you can save heaps of space when you do it yourself. The kernel package itself is 8.4MB for this one. The headers are 7.4MB. The stock kernels on the other hand (4.19 at downstream revisions 9, 10 and 13) took up a whole GB of space combined. That is how much I've been able to remove, even from headless systems. The stock kernels are incredibly bloated for what they are.
Other than that, most of the data storage is done through NFS over WiFi, which is actually faster than what is inside this laptop (a CF card which I will get to later).
Now let's talk hardware. And at age 17, you can imagine that it has seen quite a bit of maintenance there. The easiest mod is probably the flash mod. These old laptops use IDE for storage rather than SATA. Now the nice thing about IDE is that it actually lives on to this very day, in CF cards. The pinout is exactly the same. So you can use passive IDE-CF adapters and plug in a CF card. Easy!
The next thing I want to talk about is the battery. And um.. why that one is a bad idea to mod. Finding replacements for such old hardware.. good luck with that. So your other option is something called recelling, where you disassemble the battery and, well, replace the cells. The problem is that those battery packs are built like tanks and the disassembly will likely result in a broken battery housing (which you'll still need). Also the controllers inside those battery packs are either too smart or too stupid to play nicely with new cells. On that laptop at least, the new cells still had a perceived capacity of the old ones, while obviously the voltage on the cells themselves didn't change at all. The laptop thought the batteries were done for, despite still being chock full of juice. Then I tried to recalibrate them in the BIOS and fried the battery controller. Do not try to recell the battery, unless you have a spare already. The controllers and battery housings are complete and utter dogshit.
Next up is the display backlight. Originally this laptop used to use a CCFL backlight, which is a tiny tube that is driven at around 2000 volts. To its controller go either 7, 6, 4 or 3 wires, which are all related and I will get to. Signs of it dying are redshift, and eventually it going out until you close the lid and open it up again. The reason for it is that the voltage required to keep that CCFL "excited" rises over time, beyond what the controller can do.
So, 7-pin configuration is 2x VCC (12V), 2x enable (on or off), 1x adjust (analog brightness), and 2x ground. 6-pin gets rid of 1 enable line. Those are the configurations you'll find in CCFL. Then came LED lighting which required much less power to run. So the 4-pin configuration gets rid of a VCC and a ground line. And finally you have the 3-pin configuration which gets rid of the adjust line, and you can just short it to the enable line.
There are some other mods but I'm running out of characters. Why am I telling you all this? The reason is that this laptop doesn't feel any different to use than the ThinkPad x220 and IdeaPad Y700 I have on my desk (with 6c12t, 32G of RAM, ~1TB of SSDs and 2TB HDDs). A hefty setup compared to a very dated one, yet they feel the same. It can do web browsing, I can chat on Telegram with it, and I can do programming on it. So, if you're looking for a hobby project, maybe some kind of restrictions on your hardware to spark that creativity that makes code better, I can highly recommend it. I think I'm almost done with this project, and it was heaps of fun :D12 -
Overheard guy on the bus: "...but I don't understand where variables go in memory."
It took 100% of my will power to not pop over the seat like some muppet to sing song about stacks and heaps.6 -
DigitalOcean have given me heaps of free credit for hosting open source projects / things related to open source projects over the years. They've also given free hosting to various charities I know. Seem like a bunch of genuinely good people.9
-
OK I'm going write some serious heaps of code, my commits will fucking ddos the repository!
All I need is some tunes to drown out the office noise. Hey this song is quite good. Haha Google suggests my favorite song from 2 years ago, let's give that a try next. Oh I didn't know there was a new album out... hmm but I don't like everything... lets find out which 2 songs are good enough to add to a playlist by skipping aimlessly through it. Come to think of it, this style is not really that great for coding, maybe something with less vocals. Oh I know, I'll see if I can find some postmetal goa triphop electroswing dubpsy remix of that on YouTube, that would be enjoyable. No... I like the original better, although I'm a bit bored with it, maybe there's a similar artist hiding in a corner on Bandcamp, or Soundcloud... hey that's a cool mix, I wonder where that sample is from, lets try to find it...4 -
Cause heaps of YouTube tutorials are crap nowadays, I’d like to collect your favorites here. And when you are in need look up good channels here.
I’ll start with mine:
Jacob Sorber (C / Unix)
Creel (general low level stuff)
The Cherno (C++)8 -
Telstra and Vodafone Australia have released unlimited data plans for mobile.
With a base of40GB for $69/month and 40GB for $60/ month respectively.
When you go over the limit, it then throttles you to 1.5Mbps max.
It's a start, better than charging you heaps for going over, but they still have a way to go...6 -
So I noticed people are increasingly putting their preferred pronouns on their social media, email signatures, résumés, etc. I also noticed a certain amount of praise gets ladled onto the ones who are other than their cisgender while heaps of scorn come at those whose pronouns match their apparent gender. Especially if they dare defend an idea that non-cis people are against.
Is this the world we live in now? Or is my little corner of the online world just a non-representative fluke, and non-cis people are actually more tolerant than I’m seeing?7 -
My latest attempt to improve myself as a dev has been learning front end technologies, or as I prefer to call it, throwing heaps of shit at a wall and seeing what sticks and calling it modern design. Fuckers.
Otherwise I usually try to implement small manageable side projects to learn new tools enough to know what they are good for so if I ever do need them I know what to choose.1 -
This pisses me off soooo fucking much.
"We're sowwy but we'll have to ask you to turn off your pretty little adblocker! We can't keep making money off of you by showing you stuff you don't want to see if you don't turn off your adblocker! But it's okay, who doesn't use an adblocker? Just turn it off for our site pleeeease"
Quit it with the quasi-friendly bullshit. If it's okay, why don't you fuck off and let me block whatever I want to block? It's ridiculous how many hoops I have to jump through just so I don't have to see ads on the internet. Even pi-hole doesn't help with this anymore. Now I need an Ad Blocker Blocker Blocker just so I don't have to wade through heaps of obnoxious ads every time I visit a page. It's so goddamn stupid.10 -
One thing my dev years have showed me through various systems:
The world is held together by masses of scripts. And most of them are horribly bad, unmaintainable, extremely complex and usually not replaced on requirement changes, but extended by other terrible scripts to get the desired behaviour.
Windows is based on tons of shitty batch scripts, powershell madness, WSH bullshit and VBS absurdity.
GNU/Linux is build upon trillions of incomprehensible shell scripts, heaps of python gizmo and perl mysteries.
Every complex system I've seen uses batch or shell scripts to fire up its runtime.
And it doesn't seem to get any better, so let's face it, we're doomed.3 -
TL;DR; do your best all you like, strive to be the #1 if you want to, but do not expect to be appreciated for walking an extra mile of excellence. You can get burned for that.
They say verbalising it makes it less painful. So I guess I'll try to do just that. Because it still hurts, even though it happened many years ago.
I was about to finish college. As usual, the last year we have to prepare a project and demonstrate it at the end of the year. I worked. I worked hard. Many sleepless nights, many nerves burned. I was making an android app - StudentBuddy. It was supposed to alleviate students' organizational problems: finding the right building (city plans, maps, bus schedules and options/suggestions), the right auditorium (I used pictures of building evac plans with classes indexed on them; drawing the red line as the path to go to find the right room), having the schedule in-app, notifications, push-notifications (e.g. teacher posts "will be 15 minutes late" or "15:30 moved to aud. 326"), homework, etc. Looots of info, loooots of features. Definitely lots of time spent and heaps of new info learned along the way.
The architecture was simple. It was a server-side REST webapp and an Android app as a client. Plenty of entities, as the system had to cover a broad spectrum of features. Consequently, I had to spin up a large number of webmethods, implement them, write clients for them and keep them in-sync. Eventually, I decided to build an annotation processor that generates webmethods and clients automatically - I just had to write a template and define what I want generated. That worked PERFECTLY.
In the end, I spun up and implemented hundreds of webmethods. Most of them were used in the Android app (client) - to access and upsert entities, transition states, etc. Some of them I left as TBD for the future - for when the app gets the ADMIN module created. I still used those webmethods to populate the DB.
The day came when I had to demonstrate my creation. As always, there was a commission: some high-level folks from the college, some guests from businesses.
My turn to speak. Everything went great, as reversed. I present the problem, demonstrate the app, demonstrate the notifications, plans, etc. Then I describe at high level what the implementation is like and future development plans. They ask me questions - I answer them all.
I was sure I was going to get a 10 - the highest score. This was by far the most advanced project of all presented that day!
Other people do their demos. I wait to the end patiently to hear the results. Commission leaves the room. 10 minutes later someone comes in and calls my name. She walks me to the room where the judgement is made. Uh-oh, what could've possibly gone wrong...?
The leader is reading through my project's docs and I don't like the look on his face. He opens the last 7 pages where all the webmethods are listed, points them to me and asks:
LEAD: What is this??? Are all of these implemented? Are they all being used in the app?
ME: Yes, I have implemented all of them. Most of them are used in the app, others are there for future development - for when the ADMIN module is created
LEAD: But why are there so many of them? You can't possibly need them all!
ME: The scope of the application is huge. There are lots of entities, and more than half of the methods are but extended CRUD calls
LEAD: But there are so many of them! And you say you are not using them in your app
ME: Yes, I was using them manually to perform admin tasks, like creating all the entities with all the relations in order to populate the DB (FTR: it was perfectly OK to not have the app completed 100%. We were encouraged to build an MVP and have plans for future development)
LEAD: <shakes his head in disapproval>
LEAD: Okay, That will be all. you can return to the auditorium
In the end, I was not given the highest score, while some other, less advanced projects, were. I was so upset and confused I could not force myself to ask WHY.
I still carry this sore with me and it still hurts to remember. Also, I have learned a painful life lesson: do your best all you like, strive to be the #1 if you want to, but do not expect to be appreciated for walking an extra mile of excellence. You can get burned for that. -
Here's my idea. In light of all the efforts to teach kids how to do programming, why not start with an introduction to discrete mathematics instead? From a lot of the programs I've seen, the kids are taught different structures such as if else, while, and for loops, but they don't attempt to start teaching them about recursive methods or even other structures such as linked lists, queues, dequeues, binary trees, heaps, different sorts, and other things. Am I just not looking deep enough into those programs? Or are the creators of these programs not wishing to cover those things because they feel like children wouldn't be able to comprehend such things?4
-
Varies wildly, depending on location and company.
Find yourself in the right location (London, for instance, and some other big cities) and there's heaps of companies all competing for good devs - willing to pay great salaries, great pensions, free food, offer working from home, healthy training budgets, etc.
Find yourself in the wrong place, or not willing to travel, and you may have to settle for being the "IT guy" at Bob's budget consulting co. where your main job is resetting Lauren from HR's password every few days, even though she "definitely hasn't forgotten it, it's the computer's fault." -
So after writing the complete backend for the platform I can now work on the burning heaps of frontend that my colleague created. Due date was yesterday so no pressure...2
-
Okay, I realize that it doesn't mean anything, but I've been working on trying to solve this freaking Codility challenge for like a week and while I had a solution that would give me a silver award (the tests that weren't performance-based had me getting the right results, I just timed-out for performance tests), I really wanted to get a gold one. And I FINALLY DID.
https://app.codility.com/cert/view/...
Just in time for having to do a technical phone screen for a company. Maybe I'll go into it feeling like a competent programmer.7 -
Kind of !dev (Because my research uses code for computational power)
Ah, research.
The worst part of doing mathematical research as a high schooler is that there are no real hard-and-fast deadlines because school is constantly getting in the way, so any such deadlines would be quickly overrun, but that means that it is playing second fiddle to absolutely everything else with a deadline (aka everything), including my heaps of other mathematical work that is due once a week that I cannot possibly bash through fast enough to have time to do research. -
Spending a whole day troubleshooting why an environment variable appends in IIS rather than being replaced and what out of all our heaps of shit on our internal server is resetting the original value which is then being appended to. Kicker is, already have a docker solution which handles this use case 100% of time but we're too cheap to upgrade our internal environments from motherfucking Windows server 2008 so we can't use it. Save money at all costs!1
-
God people undoing good work that made a property function correctly drives me fucking nuts
Wtf is wrong with you stupid fucking people ! Do you all want to live in fucking trash heaps ???76 -
Hey everyone,
Hope everyone is doing well & of course staying safe, Well today i'd love to get some opinions and some advice. I've been using Mac OS and Win10 for quite a while now and would love to move on and perhaps try something new :-) Linux Mint or Ubuntu, Would love to know Which one would you recommend? as far as i'm aware it's basically just look and feel that makes the difference? Also what possible skills can i learn from using them? :-)
Thank you for taking the time to read my question! i appreciate it heaps!
Cheers :-)19